[Libav-user] Noise on mms-stream playing
Carl Eugen Hoyos
cehoyos at ag.or.at
Wed Feb 6 17:47:31 CET 2013
Carl Eugen Hoyos <cehoyos at ...> writes:
> Alexey Belkevich <belkevich at ...> writes:
>
> > This used to be s16, you have to update your source code.
> >
> > Ok, here it is output of ffmpeg
>
> It appears that my sentence above was unclear - sorry!
Third try:
;-)
> You have to update your source code because FFmpeg does
> not output decoded wma as s16 anymore.
If I understand your use-case correctly, you have written
a software that uses libavcodec internally to decode wma.
Your software works fine with older versions of libavcodec
(FFmpeg 0.11) but not with newer versions of libavcodec
(although ffmpeg - the command line application - still
works fine, its console outputs looks slightly different
though).
The reason is that the wma decoder has changed. wma
internally uses floats, in the past (until FFmpeg 0.11)
these floats were converted to s16 (16 bit integer) inside
the decoder. For clarity reasons, it was decided that it
makes no sense to convert these floats into int's inside
the decoder.
The decoder now outputs (planar) floats (the native wma format),
assuming you need int's (s16) in your application, you now have
to use the aconvert filter (or libswresample directly) to
convert from float to int16.
Please understand that it is not a solution for you to use
0.11 forever because new features are not backported to
old versions of FFmpeg.
I hope that clears it up, Carl Eugen
More information about the Libav-user
mailing list