|
|
|
@ -8,8 +8,8 @@ |
|
|
|
|
demux code for several formats). (no example yet, the API is likely |
|
|
|
|
to evolve). |
|
|
|
|
|
|
|
|
|
2) Integrating libavXXX in your GPL'ed program |
|
|
|
|
---------------------------------------------- |
|
|
|
|
2) Integrating libavcodec or libav in your GPL'ed program |
|
|
|
|
--------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
You can integrate all the source code of the libraries to link them |
|
|
|
|
statically to avoid any version problem. All you need is to provide a |
|
|
|
@ -19,20 +19,48 @@ generated by ./configure to understand what is needed. |
|
|
|
|
3) Coding Rules |
|
|
|
|
--------------- |
|
|
|
|
|
|
|
|
|
ffmpeg is programmed in ANSI C language. GCC extension are |
|
|
|
|
tolerated. TAB size is 4. The identation is the one specified by |
|
|
|
|
'indent -i4 -kr'. |
|
|
|
|
ffmpeg is programmed in ANSI C language. GCC extensions are |
|
|
|
|
tolerated. Indent size is 4. The TAB character should not be used. |
|
|
|
|
|
|
|
|
|
The presentation is the one specified by 'indent -i4 -kr'. |
|
|
|
|
|
|
|
|
|
Main priority in ffmpeg is simplicity and small code size (=less |
|
|
|
|
bugs). |
|
|
|
|
|
|
|
|
|
Comments: for functions visible from other modules, use the JavaDoc |
|
|
|
|
format (see examples in libav/utils.c) so that a documentation can be |
|
|
|
|
generated automatically. |
|
|
|
|
|
|
|
|
|
4) Submitting patches |
|
|
|
|
--------------------- |
|
|
|
|
|
|
|
|
|
When you submit your patch, try to send a unified diff (diff '-u' |
|
|
|
|
option). I cannot read other diffs :-) |
|
|
|
|
|
|
|
|
|
Run the regression tests before submitting a patch so that you can |
|
|
|
|
verify that there is no big problems. |
|
|
|
|
|
|
|
|
|
Except if your patch is really big and adds an important feature, by |
|
|
|
|
submitting it to me, you accept implicitely to put it under my |
|
|
|
|
copyright. I prefer to do this to avoid potential problems if |
|
|
|
|
licensing of ffmpeg changes. |
|
|
|
|
|
|
|
|
|
5) Regression tests |
|
|
|
|
------------------- |
|
|
|
|
|
|
|
|
|
Before submitting a patch (or commiting with CVS), you should at least |
|
|
|
|
test that you did not break anything. |
|
|
|
|
|
|
|
|
|
The regression test build a synthetic video stream and a synthetic |
|
|
|
|
audio stream. Then there are encoded then decoded with all codecs or |
|
|
|
|
formats. The CRC (or MD5) of each generated file is recorded in a |
|
|
|
|
result file. Then a 'diff' is launched with the reference results and |
|
|
|
|
the result file. |
|
|
|
|
|
|
|
|
|
Run 'make test' to test all the codecs. |
|
|
|
|
|
|
|
|
|
Run 'make libavtest' to test all the codecs. |
|
|
|
|
|
|
|
|
|
[Of course, some patches may change the regression tests results. In |
|
|
|
|
this case, the regression tests reference results shall be modified |
|
|
|
|
accordingly]. |
|
|
|
|