Open Source Development Policies and Procedures for MLT by Dan Dennedy Policies -------- Any contribution to the "core" module must assign copyright to Ushodaya Enterprises Limited because they need license control over that module. The framework and libmvsp client libraries are covered under LGPL. melted, melt, melted-console, and melted-client applications are covered under GPL. Modules should strive to be LGPL to make them available through the framework as LGPL. Comments in the framework and libmvsp header files must be C-style, not C++. Coding Style: There are not a lot of rules, but we prefer brackets on their own line, indents using tabs, liberal usage of spaces in statements and expressions, and no hard line length. The code in src/framework serves as a good example. Commit messages must be prefaced with the name of the changed files. This makes the Subversion log more useful as a ChangeLog. For example, docs/policies.txt: added policy about commit message Increment the version number in ./configure, mlt.h, and melt.1 on the first commit after a release as well as just prior to a new release. This way we can track if someone is using an unreleased version from the source code repository. Do not write messages to stdout. stdout is reserved for writing streams that can be redirected: e.g. raw DV in consumer_libdv. I recommended to use the mlt_log API. For something quick and dirty, use stderr. Procedures ---------- Update services.txt when you add or update a service. Setting Copyright on Appropriated Code: You do not want to be accused of copying someone's code and changing copyright or license without permission. The license is straightforward: you must retain the original author's license unless you receive explicit permission. There are a few ways to approach the copyright declaration depending upon the intermingling and changes. If you heavily comingle original and new code or lightly modifiy the original code, you can retain the original's copyright including the years, and then add your copyright for the current year. If you can separate the MLT integration from the core subroutines, then you can put the core subroutines into a separate file with the original copyright and just copyright the MLT integration code as your own. However, if you have heavily modified the original code beyond nearly all recognition, you can copyright it as your own and attribute the original author as inspiration. A producer should validate its input and return NULL on failure. A filter or transition should express the image format it wants before calling mlt_frame_get_image(). It should expect to receive what it requested as long as it is yuv422, rgb24, or rgb24a and you are using the imageconvert filter (typically via the loader producer and its loader.ini file). Bug Reporting: First preference is to use the SourceForge tracker: http://sourceforge.net/tracker/?group_id=96039&atid=613414 Second preference is in the mailing list: mlt-devel@lists.sourceforge.net