Gentoo Archives: gentoo-dev

From: Alexis Ballier <aballier@g.o>
To: gentoo-dev@l.g.o
Cc: lu_zero@g.o
Subject: Re: [gentoo-dev] Re: [gentoo-commits] gentoo-x86 commit in virtual/ffmpeg: ffmpeg-9.ebuild ChangeLog ffmpeg-0.10.2-r1.ebuild
Date: Mon, 11 Feb 2013 02:01:38
Message-Id: 20130210230114.07ab4467@gentoo.org
In Reply to: Re: [gentoo-dev] Re: [gentoo-commits] gentoo-x86 commit in virtual/ffmpeg: ffmpeg-9.ebuild ChangeLog ffmpeg-0.10.2-r1.ebuild by Luca Barbato
1 On Sat, 09 Feb 2013 15:12:15 +0100
2 Luca Barbato <lu_zero@g.o> wrote:
3
4 > On 08/02/13 22:46, Alexis Ballier wrote:
5 > > On Fri, 08 Feb 2013 22:41:04 +0100
6 > > Maciej Mrozowski <reavertm@×××××.com> wrote:
7 > >
8 > >> On Thursday 07 of February 2013 06:52:44 Peter Stuge wrote:
9 > >>
10 > >>> Tomáš Chvátal wrote:
11 > >>>> we as gentoo will provide both while preffered default will be
12 > >>>> what major distros use.
13 > >>>
14 > >>> What kind of careless mainstream attitude is that? Really?
15 > >>
16 > >> Quite the opposite, decision to use implementation A over B was
17 > >> taken with utmost care for user in mind.
18 > >
19 > > Not really. I was promised a discussion that hasn't happened yet.
20 >
21 > I'm available for discussion anytime, I got a little busy in the past
22 > days and I will busy the next 3 days, but I should be available today
23 > evening or now.
24
25 Sorry, I was away this week end...
26
27 > I stated already what I think about the whole discussion in a blog
28 > post.
29
30 I'm not fond of discussions via blog posts and do not think it is
31 the right media. I wrote one only to make it clear the decision was
32 not anything near a general consensus, when Tomás made it sound like it
33 was.
34
35 > To summarize it my take is quite simple, Libav leads the way regarding
36 > the main API,
37
38 This is only because libav people do not care at all about what FFmpeg
39 defines, while FFmpeg seems to care more about its consumers and users
40 by trying to provide a compatible ABI and API. Moreover, this is not
41 true at all when it comes to the parts where supporting both forks is
42 painful: libavfilter and audio resampling. It is pretty clear that the
43 audio resampling wheel was reinvented on the libav part, with a
44 different library name and in 95% of its use cases going from ffmpeg's
45 audio resampling to libav's is mainly a matter of 'sed s/swr/avr/'.
46 Some parts of libavfilter also appeared later in libav, sometimes with
47 a slightly different API, making it really awful to support both forks
48 in applications.
49 (I'm still looking forward a patch for xbmc and upstreamed patches for
50 mplayer btw)
51
52 > it offers a more compact surface for attacks if you are
53 > really concerned about security and usually it is a little more
54 > compact
55
56 If you mean that ffmpeg is libav + ffmpeg additions, then yes.
57 However, if you are concerned by a more compact surface, then libav is
58 not the right answer: you can very well disable selected codecs,
59 (de)muxers, etc at build time. I even started to work on reflecting this
60 into an ebuild some years ago before reaching the conclusion that it
61 would be confusing for little to no gain. This can of course be done if
62 there is some demand, but so far I have not seen any.
63
64 It is funny to see how libav ignores completely ffmpeg even for
65 bugfixes, I stumbled over this recently and it sounded familiar:
66 http://git.libav.org/?p=libav.git;a=commitdiff;h=89f11f498b9c15bc71494a11a7ec560f4adf630d
67 vs
68 http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=1af91978dbab35ba9fdede187577c00d643ae33b
69 now, you can look at the dates, there's a one year lag in libav for
70 reinventing the same bugfix. This is for a format almost nobody uses,
71 but in any case I do not consider this attitude sane.
72
73 > and a bit more tested over a wider range of architectures.
74
75 If you are talking about fate, then I cannot comment. fate started
76 before the split, so I assume the owners of said test machines took
77 them within their respective fork.
78
79 > I'm not for removing ffmpeg overnight since there are features that
80 > might be of use and I'm not so hypocrite to value diversity only when
81 > it is in favor of my interests.
82
83 Nobody talked about removing anything :)
84
85 > That said as long the two project are compatible having one or another
86 > as default is just a matter of making our life easier.
87
88 I fully agree there, but you should be careful with who you include in
89 'our'. In the case of a default then it is clearly 'the users'. Now,
90 considering there are a couple (very few) of packages that do not
91 compile with libav, do you consider having it as default a good idea?
92 Those packages can very well be fixed, but if patches do not go
93 upstream, this is not going to work in the long term. Also, the only
94 reason why I have not pinned those packages to depend only on
95 media-video/ffmpeg is because libav is not the default (not entirely
96 true btw, see later), meaning those that use libav are those that are
97 willing to help and know what they are doing. If people are to get
98 libav by default and then hit compile failures to be told to use
99 ffmpeg, then it is QA 101 that these packages should be depending on
100 media-video/ffmpeg.
101
102 [...]
103 > Few large projects such as VLC and Gstreamer switched to Libav as
104 > their default.
105
106 ... and chrome, mplayer, xbmc use ffmpeg :=)
107 also as I said in another email, I have yet to see a libav based vlc
108 release.
109
110 > Since Libav is the no-frills variant, notwithstanding the interesting
111 > campaign of "we have more security11ein!" less stuff should break
112 > since it is usually more tested and once we gather the samples
113 > triggering a crash usually we do not stop preventing that single
114 > crash but the whole class of possible defect (see my work on mov as
115 > an example).
116
117 Probably true, but I still consider a quick fix disabling the
118 vulnerability to be released quickly is a good thing. A complete
119 rework and fix can be done later, but users should not be exposed for
120 the sake of being perfect. That is what happens with FFmpeg merging from
121 libav. It is, however, sad and annoying to see it done like that
122 (claiming having fixed it and then having a better fix coming from
123 those you first claimed you were better).
124
125 [...]
126 > I hope somebody not Libav nor FFmpeg committer could come up with a
127 > pros-cons list.
128
129 By the way, I do not know why you still consider me a FFmpeg committer,
130 of course I can git clone and commit but someone has to push for me.
131 You should probably search me in FFmpeg's git log, the only things I
132 have done is the usual downstream patches going upstream and writing,
133 years before the split, a qtrle encoder I needed for some course I was
134 teaching.
135 Also, I never understood why you consider Tomás to be neutral: He has
136 been playing with libav almost from day 1, adding the virtual/ffmpeg
137 mess (which was solved since then but it was a real mess wrt useflags),
138 made mplayer use libav as its internal version in our ebuilds despite
139 upstream using ffmpeg (the point of the internal version is to be the
140 same as upstream, so I had to finally do the only sane thing by making
141 it use external ffmpeg, and then nobody cared about porting it to libav
142 until very recently), introduced the libpostproc mess and subtly used
143 the need to change some packages' deps to put libav as the leftmost
144 choice (ie default), insulted me because I did the work of porting a
145 package to recent ffmpeg versions while not understanding this leaves
146 only little work to also support recent libav versions...
147
148 These two posts are interesting for anyone wanting to understand the
149 situation also (1st more from ffmpeg side and 2nd more from libav's):
150 http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html
151 http://codecs.multimedia.cx/?p=370
152
153 Alexis.

Replies