[FFmpeg-devel] [PATCH] wmapro decoder

Baptiste Coudurier baptiste.coudurier
Mon Jun 22 22:15:15 CEST 2009


Sascha Sommer wrote:
> Hi,
> 
> On Sonntag, 21. Juni 2009, Vitor Sessak wrote:
>> Sascha Sommer wrote:
>>> Hi Vitor,
>>>
>>> thanks for your comments.
>>>
>>>>> The code still outputs shorts. Float produced clicks all around the
>>>>> place. I'm not sure yet if the problem is in my code or in ffmpeg.
>>>> It looks like it works for me, see attached.
>>> So your code does not produce clicks at second 16-18 for you with the
>>> sample file you mentioned below? It does for me when I'm using ffmpeg to
>>> produce a 16-bit wav file and play that back with MPlayer.
>> That's due to the lack of clipping. The attached patch is bit-exact for
>> wav output for me for the sample
>> http://samples.mplayerhq.hu/A-codecs/WMA9/wmapro/Beethovens%20nionde%20symf
>> oni%20(Scherzo)-2.wma .
>>
>> Note that outputting floats can make the "Output buffer too small" error 
>> twice as bad, since the decoder will need an output buffer twice the size.
> 
> The patch is similar to the one you submitted the first time, isn't it? 
> Shouldn't it add clipping for audioconvert.c ?
> 
> The problem here is that float audio ranges from -1.0 to 1.0 and the converter 
> multiplies with 1<<15 so the audio will be from -32768 to 32768. The later 
> value written as int16 becomes -32768. This causes the annoying clicks.
> That means we need to clip the float values in the wmapro decoder and we need 
> to clip the integer values in audioconvert.c
> 
> The output buffer too small problem also needs to be fixed some day. Will it 
> be ok to increase the audio buffer or is this also a candidate for 
> avcodec_decode_audio4()?

Maybe we should use get_buffer for audio as well.

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
FFmpeg maintainer                                  http://www.ffmpeg.org



More information about the ffmpeg-devel mailing list