[Kdenlive-devel] [PATCH] Update FFV1 profiles
Till Theato
root at ttill.de
Sun Jun 10 21:28:21 UTC 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 06/09/2012 06:19 PM, Dan Dennedy wrote:
> On Sat, Jun 9, 2012 at 1:05 AM, Till Theato <root at ttill.de> wrote:
> On 06/09/2012 04:30 AM, Dan Dennedy wrote:
>>>> On Fri, Jun 8, 2012 at 6:57 PM, Lou <lou at lrcd.com> wrote:
>>>>> On Fri, 8 Jun 2012 08:25:45 -0700 Dan Dennedy
>>>>> <dan at dennedy.org> wrote:
>>>>>
>>>>>> On Thu, Jun 7, 2012 at 10:47 PM, Simon A. Eugster
>>>>>> <simon.eu at gmail.com> wrote:
>>>>>>> Thanks Lou, this worked.
>>>>>>>
>>>>>>> @Devs, I get a message that pcm_s16le is not supported,
>>>>>>> and saw that although ffmpeg does support it, MLT does
>>>>>>> not (or at least it is not listed).
>>>>>>>
>>>>>>> Why is this?
>>>>>>
>>>>>> it does as far as I know, but maybe your MLT is old or
>>>>>> you have an incompatible version of libavcodec:
>>>>>>
>>>>>
>>>>> I also see the "Unsupported audio codec: pcm_s16le" message
>>>>> in Render > AVI DV for example on Arch Linux.
>>>>>
>>>>> $ kdenlive --version Qt: 4.8.2 KDE Development Platform:
>>>>> 4.8.3 (4.8.3) Kdenlive: 0.9.2
>>>>>
>>>>> $ melt --version melt 0.7.8
>>>>
>>>> released Feb. 13, but the fix I noted is dated Feb. 25. The
>>>> newest version is 0.8.0
>
> Hey,
>
> I use latest MLT from git (0.8.1) and have the same problem with
> ffmpeg 0.10.3
>
>> I downloaded the release version of ffmpeg and reproduced the
>> problem. The problem is this commit in MLT:
>
>> commit 0967c0dc30a4e91d26ef72c0d5cd2c69dda8613b Author: Brian
>> Matherly <pez4brian at yahoo.com> Date: Sun Mar 18 14:18:47 2012
>> -0500
>
>> Fix incorrect precompiler conditionals for libav/ffmpeg
>> versions.
>
>> Needed to support ffmpeg 0.9 and 0.10 releases.
>
>> diff --git a/src/modules/avformat/consumer_avformat.c
>> b/src/modules/avformat/consumer_avformat.c index 0b0322e..424ad9f
>> 100644 --- a/src/modules/avformat/consumer_avformat.c +++
>> b/src/modules/avformat/consumer_avformat.c @@ -237,7 +237,7 @@
>> static int consumer_start( mlt_consumer consumer )
>> mlt_properties_set_data( properties, "acodec", codecs, 0,
>> (mlt_destructor) mlt_properties_close, NULL );
>> mlt_properties_set_data( doc, "audio_codecs", codecs, 0, NULL,
>> NULL ); while ( ( codec = av_codec_next( codec ) ) ) -#if
>> LIBAVCODEC_VERSION_INT >= ((53<<16)+(34<<8)+0) +#if
>> LIBAVCODEC_VERSION_INT >= ((54<<16)+(0<<8)+0)
>
>> ...
>
>> Here is a part of the e-mail from Brian explaining the
>> rationale:
>
>> We chose to check for avcodec version 53.34.0 because that is
>> when the encode2 field was added to libav. The problem is that
>> libav and ffmpeg were not consistent with the libavcodec version
>> when they released it. ffmpeg first released it in 0.10 with
>> avcodec 53.60.100 while libav released it with 0.8 at 53.35.0.
>> ffmpeg 0.9 was released without encode2 at 53.42.0 - which breaks
>> because we look for encode2 and it isn't there. So... I recommend
>> that we just switch to checking for 54.0.0 because that is when
>> they both started actually using it.
>
>> ---
>
>> MLT is obviously affected by this libav/ffmpeg fork and their
>> differences in versioning. A couple of months ago I looked for a
>> way to differentiate the two at the time of pre-processing and
>> only came up with something obscure and possibly unreliable: #if
>> defined(FFUDIV). Besides, I really don't want to add a bunch to
>> the ffmpeg vs. libav tests to the already numerous ifdefs. So,
>> the general policy I have taken with MLT is to require a version
>> where it exists in both. So, basically, no, FFmpeg 0.10.3 is not
>> supported, but it already has a 0.11 branch, and it works with
>> git head.
Thanks a lot for looking into it. Totally understandable that you
don't want to add yet another ifdef.
>
> The issue seems to be present on Ubuntu with libav too:
> http://www.kdenlive.org/forum/pcms16le-codec-not-found-even-though-it-there-fixed#comment-17620
>
>
>> Seems a different problem with that particular version of
>> libavcodec indicating that pcm_s16le is usable for decoding only.
>> Looks like the best solution is to patch it at the libav package
>> level as suggested by sunab.
>
>>>>
>>>>>
>>>>> $ ffmpeg ffmpeg version 0.10.3 Copyright (c) 2000-2012 the
>>>>> FFmpeg developers
>>>>
>>>> released May 6. Aggressive adoption of a volatile project
>>>> like FFmpeg is bound to create problems.
>>>>
>>>>> built on May 9 2012 17:51:07 with gcc 4.7.0 20120505
>>>>> (prerelease) configuration: --prefix=/usr
>>>>> --enable-libmp3lame --enable-libvorbis --enable-libxvid
>>>>> --enable-libx264 --enable-libvpx --enable-libtheora
>>>>> --enable-libgsm --enable-libspeex --enable-postproc
>>>>> --enable-shared --enable-x11grab
>>>>> --enable-libopencore_amrnb --enable-libopencore_amrwb
>>>>> --enable-libschroedinger --enable-libopenjpeg
>>>>> --enable-librtmp --enable-libpulse --enable-gpl
>>>>> --enable-version3 --enable-runtime-cpudetect
>>>>> --disable-debug --disable-static libavutil 51. 35.100
>>>>> / 51. 35.100 libavcodec 53. 61.100 / 53. 61.100
>>>>> libavformat 53. 32.100 / 53. 32.100 libavdevice 53.
>>>>> 4.100 / 53. 4.100 libavfilter 2. 61.100 / 2. 61.100
>>>>> libswscale 2. 1.100 / 2. 1.100 libswresample 0.
>>>>> 6.100 / 0. 6.100 libpostproc 52. 0.100 / 52. 0.100
>>>>>
>>>>> $ ffmpeg -codecs | grep pcm_s16le DEA D pcm_s16le
>>>>> PCM signed 16-bit little-endian
>>>>
>>>> $ melt -query audio_codecs | grep pcm_s16le - pcm_s16le
>>>>
>>>>>
>>>>> This ffmpeg is from the repo although I usually compile my
>>>>> own and rarely use the repo version.
>>>>
>>>>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iEYEARECAAYFAk/VEXMACgkQzwEyz7QP6nRSuwCcCP3EZXcodEWpZuAfdbARKDHC
UgYAoKYov6PbaIyFyUDAJEQ0iru5Ulyn
=bLIR
-----END PGP SIGNATURE-----
More information about the Kdenlive
mailing list