[Ffmpeg-devel] fix ac3 parser with realaudio

Justin Ruggles justinruggles
Fri Feb 9 02:29:22 CET 2007


Justin Ruggles wrote:
> Michael Niedermayer wrote:
> 
>>Hi
>>
>>On Thu, Feb 08, 2007 at 06:50:22PM -0500, Justin Ruggles wrote:
>>
>>
>>>Hi,
>>>
>>>It seems that when the AC-3 parser was modified to add E-AC-3 support,
>>>it stopped working with RealAudio/DolbyNet.  Below is a patch to fix it.
>>
>>[...]
>>
>>
>>>@@ -667,7 +667,7 @@
>>>        return 0;
>>>
>>>    bsid = show_bits_long(&bits, 29) & 0x1f;
>>>-    if(bsid <= 8) {             /* Normal AC-3 */
>>>+    if(bsid <= 10) {             /* Normal AC-3 */
>>>        skip_bits(&bits, 16);       /* crc */
>>>        fscod = get_bits(&bits, 2);
>>>        frmsizecod = get_bits(&bits, 6);
>>>@@ -686,13 +686,14 @@
>>>            skip_bits(&bits, 2);    /* dsurmod */
>>>        lfeon = get_bits1(&bits);
>>>
>>>-        *sample_rate = ac3_sample_rates[fscod];
>>>-        *bit_rate = ac3_bitrates[frmsizecod] * 1000;
>>>+        halfratecod = bsid - 8;
>>>+        *sample_rate = ac3_sample_rates[fscod] >> halfratecod;
>>>+        *bit_rate = (ac3_bitrates[frmsizecod] * 1000) >> halfratecod;
>>
>>
>>this doesnt look correct, what is with bsid<8 ?

but I forgot about what halfratecod would be...

should be:

halfratecod = FFMAX(0, bsid - 8);

-Justin




More information about the ffmpeg-devel mailing list