After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 751607 - Reconsider decision to use libav or ffmpeg
Reconsider decision to use libav or ffmpeg
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-libav
git master
Other Linux
: Normal normal
: 1.5.90
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 752172 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2015-06-28 13:30 UTC by Sebastian Dröge (slomo)
Modified: 2015-08-16 13:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Sync submodule if it still points to libav.org (857 bytes, patch)
2015-07-07 13:51 UTC, Sebastian Dröge (slomo)
needs-work Details | Review

Description Sebastian Dröge (slomo) 2015-06-28 13:30:33 UTC
It seems that since libav and ffmpeg split, quite a few things changed... and nowadays Debian seems to be the last Linux distro still using libav. Which also might change soonish https://wiki.debian.org/Debate/libav-provider/ffmpeg

The reasoning on the Debian wiki might help to decide something for us here, and also that it seems like nobody is using libav anymore.
Comment 1 Sebastian Dröge (slomo) 2015-06-28 16:55:15 UTC
FWIW, gst-libav (git master) seems to work fine with ffmpeg 2.7.1 (last release). (after fixing up the build system a bit and ignoring a new format id that causes problems)
Comment 2 Edward Hervey 2015-06-29 09:59:33 UTC
If it's API compatible, I have no objections for one of the other. The split has forced both teams to improve downstream-listening and general API stability (unlike before the split). The situation is much better than years ago.

=> OK for me
Comment 3 Olivier Crête 2015-06-29 20:09:58 UTC
++ from me too, ffmpeg seems to be the better maintained branch these days. It possibly would make sense to have some way to build with either, for example with a configure switch, will make it easier to compare them in the future if we care to switch again.
Comment 4 Sebastian Dröge (slomo) 2015-06-29 20:51:10 UTC
If you build an external ffmpeg/libav, you can already do that now without problems. Just in-tree is a bit ugly because of the git submodule stuff.
Comment 5 Nicolas Dufresne (ndufresne) 2015-06-30 01:54:13 UTC
Goog to know about comment 4. My recent experience is that I had to fix a bug in libav and submit upstream for something already fixed fixed in ffmpeg. Upstream was responsive though.
Comment 6 Sebastian Dröge (slomo) 2015-06-30 08:13:02 UTC
Let's try for 1.5.3 then? Or better wait until 1.7?

I've been running with ffmpeg locally for a bit now, including build system stuff.
Comment 7 Sebastian Dröge (slomo) 2015-07-01 13:49:55 UTC
Let's do it for 1.5.3 then, I'll push the change tonight if nobody complains until then. On IRC it seemed like people don't care or are in favor of the change.
Comment 8 Tim-Philipp Müller 2015-07-01 14:09:14 UTC
Regardless of any particular merits or one or the other, I think it makes sense to go where the momentum is and where the distros are going. It's not really our battle to fight unless there are very specific and persuasive reasons to stick to one or to other.
Comment 9 Sebastian Dröge (slomo) 2015-07-01 20:13:11 UTC
commit 97f58baecd660767c13b039a1c525b30c8b95d5f
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Tue Jun 30 12:05:46 2015 +0200

    Switch from libav v11.4 to ffmpeg n2.7.1
    
    ffmpeg seems to be the one of the two forks, which is most widely used by
    Linux distributions and in general. Also Google is using it for e.g. Chrome
    and has engineers working on finding and fixing security issues in it.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=751607
Comment 10 A Ashley 2015-07-07 11:03:38 UTC
For me this breaks git-update because the existing submodule checkout is pointing to the old libav repo.

It would be nice if either the build system was able to detect that it needs a git submodule sync, or if there was some documentation warning developers of the
need to fix their gst-libav packages when doing a git pull.
Comment 11 Sebastian Dröge (slomo) 2015-07-07 11:28:32 UTC
Can you check what exactly is necessary for you here? Is
> git submodule sync
enough? Or more than that?
Comment 12 A Ashley 2015-07-07 13:43:35 UTC
(In reply to Sebastian Dröge (slomo) from comment #11)
> Can you check what exactly is necessary for you here? Is
> > git submodule sync
> enough? Or more than that?

To fix my repo I did:

    git submodule sync
    git submodule update
Comment 13 Sebastian Dröge (slomo) 2015-07-07 13:51:01 UTC
Created attachment 307013 [details] [review]
Sync submodule if it still points to libav.org
Comment 14 Sebastian Dröge (slomo) 2015-07-07 13:51:33 UTC
So something like this... just need to remove the bashisms.

Can you confirm that this works for you? Also someone please sanity check :)
Comment 15 Olivier Crête 2015-07-07 14:17:54 UTC
Review of attachment 307013 [details] [review]:

This will just happen if you run autogen.sh, which I expect people won't do on existing checkouts. Maybe you should instead create a new gst-libs/ext/ffmpeg submodule, so if the wrong one has been checked out, it just won't build.

Untested bashism-free version, with a subshell:
(cd gst-libs/ext/libav; git remote -v | grep -q ffmpeg.org) && git submodule sync
Comment 16 Tim-Philipp Müller 2015-07-07 14:41:04 UTC
Note also that autogen.sh is autogenerated from common/autogen.sh.in via common/update-common -> common/update-autogen
Comment 17 Sebastian Dröge (slomo) 2015-07-08 08:55:37 UTC
So how should we do this? Seems like all solutions are ugly :)
Comment 18 Tim-Philipp Müller 2015-07-08 09:05:03 UTC
Could put a check into configure(.ac) - which will in a git checkout automatically be re-generated in maintainer mode. And then just error out in configure and print the command?
Comment 19 Tim-Philipp Müller 2015-07-09 14:17:35 UTC
*** Bug 752172 has been marked as a duplicate of this bug. ***