ffmpeg26 confusion (Was: Heads up audio/video/graphics/multimedia/net/streaming port maintainers - ACTION REQUIRED)

Jan Beich jbeich at FreeBSD.org
Mon Jun 22 23:36:24 UTC 2015


(overquoting strawman ;)

Thomas Zander <riggs at freebsd.org> writes:

> Hi,
>
> if you maintain a port which uses directly or indirectly ffmpeg, i.e.
> it links to at least one of
>
> libavcodec
> libavdevice
> libavfilter
> libavformat
> libavresample
> libavutil
>
> please take a moment, this is important.
>
> Shortly after the release of FreeBSD 10.1 I plan to upgrade ffmpeg to
> the 2.4 branch and import the then-latest release from the 2.4 branch
> into the head of the ports tree. Unlike the recent upgrade from 2.2.
> to 2.3, this one will NOT be painless.

What happened to the schedule? 10.1 was released half a year ago and we're
approaching code freeze for 10.2. Not to mention packages for FreeBSD
releases are built against quaterly branches nowadays. And the next quaterly
is 2015Q3 which should happen in a week.

> ALL the mentioned libraries received a bump in their major version
> numbers, which means that they are not necessarily API compatible with
> the 2.3 series. In particular, this means that several APIs which have
> been deprecated several months/years ago(!) are really gone for good
> in 2.4. One prominent example for this is the removal of
> FF_API_CLOSE_INPUT_FILE in libavformat which breaks e.g. sox and
> transcode builds. In most cases (like the mentioned examples sox and
> transcode) a fix will be easy or even trivial, but you need to be
> proactive and take a look at it.

Not the first time FFmpeg breaks API. ffmpeg0 port is good example or see
http://upstream-tracker.org/versions/ffmpeg.html .

It seems adding ffmpeg24 in r370733 betrayed the quoted plan postponing
the switch to the new API indefinitely. And ports that are not broken by
it end up limited to the feature/bug set of 2.3.x.

Maybe do the following to improve the situation:

(1) Update ffmpeg port to the latest version (2.7.1 currently)
(2) Remove ffmpeg26 port
(3) Add ffmpeg23 port with PORTSCOUT=limit:^2\.3.*
(4) Identify ports that hide ffmpeg dep behind an option
(5) Mass PORTREVISION bump in consumers (API/ABI changes in major versions)
(6) Exp-run with ffmpeg dep enabled if optional
(7) Fix bustage or convert to ffmpeg23
(8) Remove ffmpeg23 if no consumers

> I have prepared a drop-in replacement for the ffmpeg port which uses
> the recent 2.4 release. You can download it from:
> http://people.freebsd.org/~riggs/ffmpeg-2.4.tar.xz

Currently not a drop-in because requires to

- Patch pkg-config usage and installed .pc files
- Prevent mixing headers from unsuffixed ffmpeg version
- Check dependency tree for the port and consumers if mixing ffmpeg libs
- Adjust LIB_DEPENDS, *FLAGS and bump PORTREVISION when FFMPEG_SUFFIX changes

> Please check whether the ports maintained by you build and link with
> this version and prepare a suitable fix if necessary.

What if my port wants a feature only present in the latest version but not
in multimedia/ffmpeg and multimedia/ffmpeg26 ? For one,

https://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=d765e07
https://github.com/hrydgard/ppsspp/issues/5286

Should I add ffmpeg27, backport to ffmpeg26 or ffmpeg (2.3.x) ?

>
> Thanks in advance and best regards
> Riggs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 602 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-multimedia/attachments/20150623/b8cbb290/attachment.sig>


More information about the freebsd-multimedia mailing list