[libav-devel] [FFmpeg-devel] [PATCH 0/20] removal of deprecated features

wm4 nfxjfg at googlemail.com
Thu Aug 6 00:53:50 CEST 2015


On Wed, 5 Aug 2015 21:31:38 +0200
Andreas Cadhalpun <andreas.cadhalpun at googlemail.com> wrote:

> On 04.08.2015 07:57, Reimar Döffinger wrote:
> > I do have on more proposal, but the problem is it needs someone to do the work.
> > For each removed feature, prepare documentation "a monkey could follow" on how
> > to replace it (you could call it a transition guide).
> > Even better, a script that automates it where reasonable.
> 
> I think this is a very good idea.
> 
> > In some cases it is just a matter of copy-pasting some existing wrapper code,
> > particularly if we remove that wrapper code it is useful if people still have
> > it available in the new release.
> > If it's just a few hours of someone's time who even doesn't need to understand
> > the code, I think we can very confidently say "not really our problem" if some
> > applications still use it.
> 
> Agreed.
> 
> > If we that way find out that there are non-trivial cases or cases where the code
> > gets a lot more complicated it might be a hint the new API is still crap and we
> > maybe should come up with something better first.
> 
> A more complete usage list for the deprecated APIs is:
> 
> FF_API_PIX_FMT: 71
> amide avbin avifile bino blender chromium-browser dff dolphin-emu dvbcut
> dvswitch ffdiaporama ffmpeg2theora ffmpegthumbnailer ffmpegthumbs ffms2
> fuse-emulator-utils gazebo gmerlin-avdecoder gmerlin-encoders gnash gpac
> gst-libav1.0 guvcview harvid hedgewars info-beamer jugglemaster karlyriceditor
> kino kodi lightspark lebiniou libam7xxx libavg libde265 libextractor
> libquicktime linphone lives lynkeos.app mlt mplayer mplayer2 mrpt opal
> opencv openmw openscenegraph ovito paraview performous pjproject qutecom
> rbdoom3bfg renpy shotdetect sflphone strigi survex transcode vcmi vlc vtk vtk6
> vxl wxsvg x264 xjadeo xpra yorick-av zoneminder
> 
> FF_API_AVFRAME_LAVC: 53
> alsa-plugins amarok aubio avbin blender chromaprint dff dolphin-emu dvbcut
> ffdiaporama ffmpegthumbnailer ffmpegthumbs fuse-emulator-utils gazebo
> gmerlin-avdecoder gmerlin-encoders goldendict gpac gst-libav1.0 hedgewars
> info-beamer jugglemaster kino libavg libextractor libquicktime lightspark
> linphone mplayer mplayer2 mrpt opal opencv openscenegraph ovito paraview
> performous pianopar qutecom renpy shotdetect spek squeezelite transcode
> vcmi vlc vtk vtk6 vxl xine-lib-1.2 xpra yorick-av zoneminder
> 
> FF_API_GET_BUFFER: 9
> avifile dvswitch gmerlin-avdecoder gst-libav1.0 libavg mplayer mplayer2 openmw
> openscenegraph
> 
> FF_API_AUDIOCONVERT: 7
> alsa-plugins cantata ffdiaporama moc mplayer2 mpv vlc
> 
> FF_API_SWS_CPU_CAPS: 6
> fuse-emulator-utils kodi mlt mplayer2 vlc zoneminder
> 
> FF_API_DEINTERLACE: 5
> blender dff ffmpegthumbnailer ffmpegthumbs vxl
> 
> FF_API_AVFRAME_LAVC(qscale): 3
> ffmpeg2theora kodi xine-lib-1.2
> 
> FF_API_CODEC_ID: 3
> chromium-browser dvswitch ffms2
> 
> FF_API_CONTEXT_SIZE: 3
> mplayer mplayer2 xine-lib-1.2
> 
> FF_API_REQUEST_CHANNELS: 3
> mplayer mplayer2 renpy
> 
> FF_API_AV_REVERSE: 2
> mplayer mplayer2
> 
> FF_API_AVCODEC_RESAMPLE: 2
> mlt mplayer
> 
> FF_API_DESTRUCT_PACKET: 2
> lives openmw
> 
> FF_API_AVFILTERBUFFER: 2
> ffdiaporama pianobar
> 
> FF_API_AVFILTERPAD_PUBLIC: 1
> mplayer
> 
> FF_API_VIMA_DECODER: 1
> mplayer

Well, you sure like to list a lot of projects. But what you don't say
is that many of these are either definitely dead (mplayer2 comes to
mind), or are ancient releases of software which fixed their API usage
later (like my own project, and probably most other reasonable active
projects).

Why do we have to suffer because Debian tries to compile ancient
releases against newer ffmpeg/libav releases? (How does that even make
sense?)

And then there's the category of projects that are "alive", but barely
care about anything unless being severely prodded. I'm not sure why we
should suffer forever just to accommodate these projects. They had more
than enough time.

I feel like I'm repeating myself and others, but I don't remember
whether you acknowledged these arguments.

> Better documentation would surely be helpful.

Many of these are non-trivial. Project authors either update their
code, or the project dies. It's simple. If you don't want this, keep an
old ffmpeg/libav package around for them. But you distro peoples want a
single libavcodec package, no matter how much this fucking tortures
everyone.



More information about the libav-devel mailing list