[FFmpeg-devel] Development polices of the FFmpeg

Diego Biurrun diego
Wed Sep 10 18:57:40 CEST 2008


Sorry for butting in late, this has been lying in my drafts folder for
far too long.  Nonetheless I felt I should write something even though
not every one of my opinions is thought out until the end...

On Fri, Aug 29, 2008 at 02:21:28PM -0700, Roman V. Shaposhnik wrote:
> On Fri, 2008-08-29 at 11:42 -0700, Baptiste Coudurier wrote:
> > We all work for the sake of bringing FFmpeg up here, and we all have the
> > same goal, we also have differents commitments and interests, discussing
> > as a "team" is needed, not necessarly in a "pyramid" way (Michael /
> > single dev people), however Michael tends to do everything around here,
> > so this is less obvious IMHO.
> 
> That is really the crux of the problem. I don't think I can be part
> of the Michael's FFmpeg. He obviously doesn't seem very highly of
> me (not without a merit, though: compared to me he IS smarter and he IS
> a better coder -- I'll be the first one to admit that) and we both
> don't need the kind of aggravation we seem cause to each other. On
> the other hand, I would LOVE to be part of the FFmpeg of you, M?ns,
> Mike, Kostya, Diego and a dozen of other developers who I greatly
> respect. I just need to figure out what kind of project it is nowadays.

I think you should calm down a bit and look at the situation afresh.
Yes, FFmpeg is more than its evil overlord, but, by their very nature,
evil overlords are not something you can ignore or work around.

> For example, when Michael throws a moody about something as trivial
> as: ((s->buf[1]>>2)&0x3) == 0 vs. (s->buf[1]&0xC) == 0. Is it something
> that would be of a concern to anybody but him? And if not, should
> he be payed attention to *IN THIS PARTICULAR CASE* (to be extra
> clear this is the case of a code NOT officially maintained by him).

I do not think anybody should "throw a moody" about this, but I do
wonder why you do not incorporate this neat simplification...

> Another example -- should threatening to revert the changes in the
> pieces of code that he doesn't maintain over trivial issues be his
> usual modus operandi, or should there be SOME level of involvement
> of other developers to decide whether such drastic measures are
> really called for, or whether it is better for the project
> to try and resolve issues first (with the code in question being
> in SVN) and only if it fails remove the offending parts.

I do not think such things should be reverted, but I do not see reasons
not to attempt further cleanups.

The question is what the real goal of FFmpeg is.  Perfection or
features?  It is really hard to tell.  We all basically work on this for
the love of coding and multimedia.  I think many of us around here enjoy
striving for the best possible code.

I know that I have stared at the build system for many hours to
reimplement the same functionality in a more elegant and compact way.
Many times, Mans took delight in besting me at the same exercise.
Nonetheless I enjoyed doing it and learned a lot.

That said, we have and we had a lot or working code that is not in
FFmpeg or reached FFmpeg later than it could have.  Examples are

- AAC
- AC-3
- E-AC-3
- QTRLE encoder
- QTRLE low bit support
- many other SoC projects

If you have a look at

http://wiki.multimedia.cx/index.php?title=Interesting_Patches

you will find more stuff including things like WMV3, H.264, AMV, Chinese
AVS encoders, zlib, Bink, G722, SIPR decoders and many other things.

Some of these things have reached FFmpeg in the meantime, others still
have not.  I'm sure many of them would have been incorporated already
into projects with less strict requirements.

So, clearly, tradeoffs are being made.  Michael is extremely strict
about quality.  He is pedantic about details, perfectionist even.  You
prefer a slightly more relaxed attitude.  You are not the first person I
hear uttering this opinion.  What the majority (whatever that may be)
thinks, I do not know.

Personally, I do not have a very strong stance on the issue.  I am a
perfectionist and a pedant myself, but I'm not entirely sure if it's the
right attitude to get things done in a reasonable timeframe.  I try to
be less strict with others than towards myself.

All of this said, FFmpeg is making progress and rapid progress.  This is
undeniable.  So however much it is being slowed down, the pace is still
amazing.  I do not expect this to change, at least not in the near
future.

Whatever gripes people have with FFmpeg or its leadership, there is no
alternative to it and many people accept the way things are handled even
if they may not agree.

> Here's the deal: I used to contribute to FFmpeg much more
> actively a three years ago or so, but then I went through
> a period in my life where any major coding outside of my
> immediate employment was more of a luxury. I'm now back
> on track. I still have lots of interest in doing multimedia
> as my hobby. I also believe that I am capable of being mildly
> helpful to the overall success of the project, even though
> the nature didn't bless me with the kind of gift that 
> somebody like Michael is blessed with. Precisely because
> of that I'm also prepared to happily receive the kind
> of technical guidance that was exemplified by 
> dv100_dct_mode vs. mb->dct_mode change. The only thing that
> I ask for is that I work with a team instead of a single
> individual with his likes and dislikes and the team
> decides over the matters, instead of the individual
> lashing out at you over trivialities. Is it too much
> to ask for in return to the kind of work I am capable
> of? I honestly don't know. But please DO tell me.

Given that Michael does most of the review work, it will be kind of hard
to avoid accepting his preferences.  I also keep insisting that people
do the right thing around the documentation and the build system, but
then again, everybody seems to have learned their way around it and few
issues remain for me to point out...

> Again, sorry for the digression, I just didn't want
> it to look like it is simply about me ramming DVCPRO HD
> code through. There's actually much bigger question
> for me at stake here.

That's understood.

> > Working around here is _not_ easy and we need to encourage ourselves.
> 
> Once again, the only thing I'm asking for that it is a TEAMwork
> instead of a dictatorship.

Well, the nature of evil overlords is that you cannot - by definition -
work around them easily.  To be honest, I don't see the mob sharpening
their pitchfork and keeping tar and feathers handy in expectance of
using them any time soon.

Roman, sometimes you cannot change things, but you can always change
your attitude towards them.  Don't take any of Michael's comments or
flames too seriously or personally.  Just swear or leave the computer
for a while and then get it done.  You can think of sharing a few beers
with your buddies at the next LinuxTag if that cheers you up.

I know it works for me, you might give it a go as well...

> P.S. Thanks for acknowledging my contributions to FFmpeg. Even though
> honestly most of them are trivial compared to what Michael does.

Your contributions are welcome now and will still be welcome in the
future.  It would be a shame to see you go...

Diego




More information about the ffmpeg-devel mailing list