mplayer SVN plays video too fast on FreeBSD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]<

 



On Tue, Dec 8, 2009 at 9:07 PM, Reimar D?ffinger
<Reimar.Doeffinger at gmx.de> wrote:
> 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)
>


I've been running with this patch for last week or so, no problems as far.

Cheers

Tom


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux