--- src/about | 191 +++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 167 insertions(+), 24 deletions(-)
diff --git a/src/about b/src/about index cb18e8b..9326f4a 100644 --- a/src/about +++ b/src/about @@ -2,39 +2,182 @@ FFMPEG_ABOUT_NAVBAR <h1>About Libav</h1> -<p>The project is made of several components: +<p> Libav is friendly and community driven effort to provide its users +with a set of portable, functional and performant libraries for dealing +with multimedia formats of all sorts. It originates from the <a +href="http://ffmpeg.org">FFmpeg</a> codebase, but goes its own way these +days, providing its users with reliable releases and a clear vision how +to go forward. </p> + +<p> As an attempt to help with the confusion around the recent +happenings around FFmpeg, this article presents our views on the +situation. </p> + +<h2>Some Background</h2> + +<p> A significant number of +<a href="http://article.gmane.org/gmane.comp.video.ffmpeg.devel/123868"> +<b>active</b> FFmpeg developers</a> feel very unhappy about the way +FFmpeg was driven and managed in general and were particularly unhappy +with the project leader. Many attempts to resolve and reconcile the +issues internally were attempted but unfortunately, all of them failed. </p> -<ul> -<li><tt>ffmpeg</tt> is a command line tool to convert multimedia files -between formats.</li> +<p> Over the last few years, more and more flames and bickering spread +over the ffmpeg-devel mailing list. Important features and fixes were +delayed or outright rejected on the grounds of not being +perfect. Moreover, project and review rules were applied very +inconsistently. Many people were angered and demotivated by this, up to +the point of abandoning the project. </p> + +<p> In 2010 the situation escalated. A controversial commit resulted in +a vote over the leadership position. The result was that the leader +would stay, but must follow the same rules as everybody else and amend +his behavior. The surrounding flames resulted in one of the most active +and experienced developers leaving the project. Multiple developers +tried to compose the situation by mediating between the disgruntled and +demotivated developers and Michael. </p> + +<p> A few months later we came to the conclusion that the situation had +not changed for the better. At first, we decided against forking because +most active developers expressed their interest to join it, including +the server administrators. We therefore tried to <a +href="http://lwn.net/Articles/423702/"> preserve the project as it +was</a>. The ensuing flames were expected, but unfortunately a number of +people who had not been actively following the discussions protested and +sided for the former leader. For a time there were two trees sharing one +mailing list, IRC channel with much hostility between them. </p> + +<h2>The founding of libav.org</h2> + +<p> Later we have learned that the FFmpeg founder, who owns the domain, +still favors the now-demoted project leader. We of course respect his +opinion, which convinced us to fork "properly" under the name Libav with +its own website, mailing lists, IRC channel and repositories, thus +completely separating from the old FFmpeg project. In it, we hope to +accomplish what was missing in the former development process -- a +friendly environment, free of pointless flames over trivialities, for +making THE multimedia library even better than it is now. </p> -<li><tt>ffserver</tt> is a multimedia streaming server for live -broadcasts.</li> +<h2>Our vision for the future</h2> -<li><tt>ffplay</tt> is a simple media player based on <a -href="http://www.libsdl.org/">SDL</a> and the Libav libraries.</li> +<p> We strive to implement and provide useful and innovative features in +a timely fashion, provide stable release and interact to the best of our +abilities with our downstream such as distributors and end users. For +instance, most of the ffmpeg-mt work has been merged into Libav <a +href="http://git.libav.org/?p=libav.git;a=commit;h=37b00b47cbeecd66bb34c5c7c534d016d6e8da24"> +for quite some time</a>. This work is still ongoing, we are still +working hard to fix the remaining issues such as with multi-threaded +h264 decoding. </p> -<li><tt>ffprobe</tt> is a is a simple multimedia stream analyzer.</li> +<p> We are happy to learn that the now arisen competition has finally +lead FFmpeg to merge important and long requested features such as <a +href="http://article.gmane.org/gmane.comp.video.ffmpeg.devel/129927"> +frame based multi-threaded decoding</a> based on +<a href="http://gitorious.org/~astrange/ffmpeg/ffmpeg-mt/">ffmpeg-mt</a>, +something Michael strongly refused to merge during our attempts to +reconcile with him. </p> -<li><tt>libavutil</tt> is a library containing functions for -simplifying programming, including random number generators, data -structures, mathematics routines, core multimedia utilities, and much -more.</li> +<h1>Organization of Libav</h1> -<li><tt>libavcodec</tt> is a library containing decoders and encoders -for audio/video codecs.</li> +<h2>Committers</h2> -<li><tt>libavformat</tt> is a library containing demuxers and -muxers for multimedia container formats.</li> +<p> We started with a small number of committers for practical +reasons. One bad example we had in mind was the experience with the +MythTV project where inexperienced git users made a lot of beginner +errors after the switch. The likely consequence is that the project will +switch back to Subversion. </p> -<li><tt>libavdevice</tt> is a library containing input and output -devices for grabbing from and rendering to many common multimedia -input/output software frameworks, including Video4Linux, Video4Linux2, -VfW, and ALSA.</li> +<p> The list of committers was chosen for multiple reasons. One is +available time, the committers must do a lot of patch monkeying and +should be able to ensure that the patch queue does not slow down +development. Another is git experience, we wish to avoid mistakes and +the fate of MythTV. -<li><tt>libavfilter</tt> is a library containing media filters.</li> +<p> While the initial committers are trusted and mostly experienced with +git, mistakes are inevitable. The point is not that the committers be +infallible and incapable of making mistakes but rather that there should +be fewer mistakes and when mistakes occur, that they be fixed quickly +and effectively. </p> + +<p> The list of committers is not fixed and we continue to extend +it. New patch monkeys will be chosen by trust and competence through +consensus in the current committer team. Committers are trusted not to +break the review rules. Being a committer is a duty, not a privilege. +</p> + + +<h2>Review process</h2> + +<p> Reviews should be done on a best-effort basis by a person competent +in the area touched by the patch. The rule "no commits without review" +ensures that another set of qualified eyes looks over code prior to +commit. Adopting that policy for all developers - maintainers, +committers or first time contributors - puts everybody on equal footing. +</p> + +<p> If a patch touches a part of Libav that nobody knows well, then +review is still done on a best-effort basis. In such a case it is not +possible to guarantee the same quality as when expert (in the field) +reviewers are available, but general code quality and portability can +still be maintained. A review shall then verify that the code does what +the author intended and that the change is sensible and beneficial. +</p> -<li><tt>libswscale</tt> is a library performing highly optimized image -scaling and color space/pixel format conversion operations.</li> +<p> We aim to make the lifetime of a patch or a branch minimal. To this +end, the amount of nitpicking on patches should be +minimized. Documentation typos or small coding style errors can be +changed by committers without a new round of review or a new patch +submission by the original contributor. Likewise, large patches should +not live in separate branches forever. Instead, committers and reviewers +should actively reach out to integrate branches into the main tree +(i.e. we want to avoid another ffmpeg-mt situation). </p> + + +<h2>Personal Conflict Resolution</h2> + +<p> Conflicts, especially personal ones, have been the bane of the +FFmpeg project for many years. The current way of letting conflicts +continue and continue to escalate creates nothing but downward spirals +and unhappiness. </p> + +<p> Personal conflicts shall be assisted by mediators in the +future. When a conflict between two (or more) people arises and +threatens to spiral downwards, anybody may ask for a mediator to step +in. The role of the mediator is to pull the fighters apart, calm them +down, listen to each side and try to restore and aid civil communication +towards a resolution. </p> + +<p> If reasonable communication fails, a mediator can ask for people to +be moderated on the mailing lists so that mails arrive with a delay and +combatants have a chance to calm down. Suitable mediator candidates +should be calm, level-headed, respected and more or less neutral in the +topic at hand. Being uncontroversial as a person and being a good +communicator is a plus. + + +<h2>Code of Conduct</h2> + +In order to foster a friendly and cooperative atmosphere where technical +collaboration can flourish we expect all members of the FFmpeg community to be + +<ul> +<li> courteous, polite and respectful in their treatment of others, </li> +<li> helpful and constructive in suggestions and criticism, </li> +<li> stay on topic for the communication medium that is being used, </li> +<li> be tolerant of differences in opinion and mistakes that inevitably get + made by everyone. </li> </ul> + +Plus, we expect everybody to not + +<ul> +<li> flame and troll, </li> +<li> insult, </li> +<li> be offtopic or </li> +<li> disruptive of our communication channels. </li> +</ul> + +While we hope to keep disciplinary action to a minimum, repeated violations of +this policy will result in offenders getting temporarily or permanently removed +from our communication channels. -- 1.7.0.4 _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
