Bug#803822: gst-libav1.0: FTBFS with FFmpeg 2.9

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Tue Jan 19 19:17:06 UTC 2016


On 19.01.2016 08:45, Sebastian Dröge wrote:
> On Di, 2016-01-19 at 00:14 +0100, Andreas Cadhalpun wrote:
>> However, I don't understand your reasoning for not applying the patch
>> removing use of FF_API_EMU_EDGE.
>> It's only used in ffmpeg for backwards compatibility and thus
>> removing this from gst-libav1.0 now should work fine.
>> Or did you encounter any problems?
> 
> snowenc.c is still using it in some way, look for FF_API_EMU_EDGE in
> the code. I didn't look closer though, maybe it can be removed, maybe
> not.

However, that doesn't matter for gst-libav1.0, because it never sets
CODEC_FLAG_EMU_EDGE.
It only checks this flag when decoding, which is not necessary anymore.
So I still think applying this patch wouldn't cause any problem.

>> It would be nice to apply this patch now, as it seems to be the only
>> API still used by gst-libav1.0, which is going to be removed on the
>> next soversion bump.
> 
> In version.h
> #define FF_API_EMU_EDGE          (LIBAVCODEC_VERSION_MAJOR < 58)
> 
> master is still at 57 so it probably will be after 2.9 (or will it be
> called 3.0?) that this happens.

Yes, it will only happen after the next release (which will probably
be called 3.0).

> In any case, once that is removed it's
> also trivial to make gst-libav build again.

Sure. But I fear it'll require me to open a bug again next time, someone
to review the diff again, and finally to upload a fixed version.

It would be so much smoother if this was just fixed as part of the natural
flow of new upstream versions way before the deprecated APIs get removed...

>> For the bump after the next one, there are some more deprecated APIs
>> to deal with:
>>  * FF_API_MPV_OPT
>>  * FF_API_QUANT_BIAS
>>  * FF_API_RC_STRATEGY
>>  * FF_API_CODED_FRAME
> 
> done
> 
>>  * FF_API_MOTION_EST
>>  * FF_API_AVPICTURE
> 
> done

There's (a lot) more to be done about this one:
gstavdeinterlace.c, gstavdemux.c, gstavmux.c, gstavscale.c and gstavviddec.c
still use AVPicture.
Also gstavutils.c seems to contain (modified) copies of avpicture_* functions,
which should be replaced with av_image_* functions.

>>  * FF_API_AVPACKET_OLD_API
> 
> done
> 
>> Just mentioning it, in case you get bored again. ;)
> 
> The others can get done once it's time, it's mostly a matter of
> removing some lines of code in those cases. Unless you feel like
> providing patches :)

I might write some patches, when I get bored. :)

>> What remains is to get a fixed gst-libav1.0 version into sid.
>> Can you give an estimate, when this will happen?
> 
> We're going to release 1.6.3 some time this week, when I upload that to
> sid I'll include the patches.

Thanks.

> Why so impatient? ffmpeg 2.9/3.0 is not
> even released yet, no snapshot is in experimental, nothing :)

Sorry, I didn't want to seem impatient.
However, my goal is to have most (if not all) reverse dependencies fixed,
when the new upstream version gets released, so that the transition can
happen soon after.

Best regards,
Andreas



More information about the pkg-gstreamer-maintainers mailing list