[Kdenlive-devel] [PATCH] Update FFV1 profiles

Dan Dennedy dan at dennedy.org
Sat Jun 9 16:19:41 UTC 2012


On Sat, Jun 9, 2012 at 1:05 AM, Till Theato <root at ttill.de> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> 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.

> 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/TA8QACgkQzwEyz7QP6nSUdACgk2Dq2CzUkuhvTHQfaJIvr//F
> bYYAn2l2Y4XalwBjyvYtXDA1eQba2m6s
> =/PB2
> -----END PGP SIGNATURE-----
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Kdenlive-devel mailing list
> Kdenlive-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/kdenlive-devel



-- 
+-DRD-+




More information about the Kdenlive mailing list