mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-31 12:36:41 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 1) API
 | |
| ------
 | |
| 
 | |
| * libavcodec is the library containing the codecs (both encoding and
 | |
|   decoding). See libavcodec/apiexample.c to see how to use it.
 | |
| 
 | |
| * libav is the library containing the file formats handling (mux and
 | |
|   demux code for several formats). (no example yet, the API is likely
 | |
|   to evolve).
 | |
| 
 | |
| 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
 | |
| 'config.mak' and a 'config.h' in the parent directory. See the defines
 | |
| generated by ./configure to understand what is needed.
 | |
| 
 | |
| 3) Coding Rules
 | |
| ---------------
 | |
| 
 | |
| 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].
 | 
