[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