[MPlayer-users] mplayer SVN plays video too fast on FreeBSD
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Tue Dec 8 22:07:58 CET 2009
On Tue, Dec 08, 2009 at 08:29:14PM +0000, Tom Evans wrote:
> Discovered the problem, reverting the following diff fixes it:
>
> ------------------------------------------------------------------------
> r29750 | cladisch | 2009-10-05 08:42:02 +0100 (Mon, 05 Oct 2009) | 1 line
>
> fix calculation of ao_data.bps for sample formats with more than 16 bits
> ------------------------------------------------------------------------
> Index: libao2/ao_oss.c
> ===================================================================
> --- libao2/ao_oss.c (revision 29749)
> +++ libao2/ao_oss.c (revision 29750)
> @@ -396,8 +396,19 @@
> }
>
> ao_data.bps=ao_data.channels;
> - if(ao_data.format != AF_FORMAT_U8 && ao_data.format != AF_FORMAT_S8)
> + switch (ao_data.format & AF_FORMAT_BITS_MASK) {
> + case AF_FORMAT_8BIT:
> + break;
> + case AF_FORMAT_16BIT:
> ao_data.bps*=2;
> + break;
> + case AF_FORMAT_24BIT:
> + ao_data.bps*=3;
> + break;
> + case AF_FORMAT_32BIT:
> + ao_data.bps*=4;
> + break;
> + }
>
> ao_data.outburst-=ao_data.outburst % ao_data.bps; // round down
> ao_data.bps*=ao_data.samplerate;
>
>
> In this case, .format is AF_FORMAT_AC3 (256), which gets masked out
> for this switch, and matches the AF_FORMAT_8BIT (0) case, and so
> doesn't get doubled. I don't know much about sound formats and their
> ilk, so wouldn't like to speculate on what the correct fix would be,
> but to get a working version I've reverted it for now.
Could you try this patch and check if it breaks something (it's probably a good idea to do a make clean):
Index: libaf/af_format.h
===================================================================
--- libaf/af_format.h (revision 29976)
+++ libaf/af_format.h (working copy)
@@ -59,7 +59,7 @@
#define AF_FORMAT_MU_LAW (1<<6)
#define AF_FORMAT_A_LAW (2<<6)
#define AF_FORMAT_MPEG2 (3<<6) // MPEG(2) audio
-#define AF_FORMAT_AC3 (4<<6) // Dolby Digital AC3
+#define AF_FORMAT_AC3 ((4<<6)|AF_FORMAT_16BIT) // Dolby Digital AC3
#define AF_FORMAT_IMA_ADPCM (5<<6)
#define AF_FORMAT_SPECIAL_MASK (7<<6)
More information about the MPlayer-users
mailing list