[Ffmpeg-devel] fix ac3 parser with realaudio

Justin Ruggles justinruggles
Fri Feb 9 02:40:37 CET 2007


Justin Ruggles wrote:
> 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

geez, maybe I should stop coding for the day. :)  Since bsid is
unsigned, the above wouldn't work.  Here is a new patch...

-Justin

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ffmpeg-ac3_parser.diff
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070208/a0841033/attachment.asc>



More information about the ffmpeg-devel mailing list