|  |  | @@ -1136,7 +1136,7 @@ suffices. If you have problems using SDL, verify that | 
		
	
		
			
			|  |  |  | @file{sdl-config} can be launched from the MSYS command line. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @item You can install FFmpeg in @file{Program Files/FFmpeg} by typing | 
		
	
		
			
			|  |  |  | @file{make install}. Don't forget to copy @file{SDL.dll} to the place | 
		
	
		
			
			|  |  |  | @file{make install}. Do not forget to copy @file{SDL.dll} to the place | 
		
	
		
			
			|  |  |  | you launch @file{ffplay} from. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @end itemize | 
		
	
	
		
			
				|  |  | @@ -1182,7 +1182,7 @@ so they can be used with Visual C++: | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @enumerate | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @item Install Visual C++ (if you haven't done so already). | 
		
	
		
			
			|  |  |  | @item Install Visual C++ (if you have not done so already). | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @item Install MinGW and MSYS as described above. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -1206,7 +1206,7 @@ create Visual-C++-compatible import libraries. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @item Type the command | 
		
	
		
			
			|  |  |  | @code{./configure --enable-shared --disable-static --enable-memalign-hack} | 
		
	
		
			
			|  |  |  | to configure and, if that didn't produce any errors, | 
		
	
		
			
			|  |  |  | to configure and, if that did not produce any errors, | 
		
	
		
			
			|  |  |  | type @code{make} to build FFmpeg. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @item The subdirectories @file{libavformat}, @file{libavcodec}, and | 
		
	
	
		
			
				|  |  | @@ -1228,8 +1228,8 @@ Application Wizard, uncheck the "Precompiled headers" option. | 
		
	
		
			
			|  |  |  | @item Write the source code for your application, or, for testing, just | 
		
	
		
			
			|  |  |  | copy the code from an existing sample application into the source file | 
		
	
		
			
			|  |  |  | that Visual C++ has already created for you. (Note that your source | 
		
	
		
			
			|  |  |  | filehas to have a @code{.cpp} extension; otherwise, Visual C++ won't | 
		
	
		
			
			|  |  |  | compile the FFmpeg headers correctly because in C mode, it doesn't | 
		
	
		
			
			|  |  |  | filehas to have a @code{.cpp} extension; otherwise, Visual C++ will not | 
		
	
		
			
			|  |  |  | compile the FFmpeg headers correctly because in C mode, it does not | 
		
	
		
			
			|  |  |  | recognize the @code{inline} keyword.)  For example, you can copy | 
		
	
		
			
			|  |  |  | @file{output_example.c} from the FFmpeg distribution (but you will | 
		
	
		
			
			|  |  |  | have to make minor modifications so the code will compile under | 
		
	
	
		
			
				|  |  | @@ -1262,7 +1262,7 @@ set to "Multi-threaded DLL". | 
		
	
		
			
			|  |  |  | the application. Hopefully, it should compile and run cleanly. If you | 
		
	
		
			
			|  |  |  | used @file{output_example.c} as your sample application, you will get a | 
		
	
		
			
			|  |  |  | few compiler errors, but they are easy to fix. The first type of error | 
		
	
		
			
			|  |  |  | occurs because Visual C++ doesn't allow an @code{int} to be converted to | 
		
	
		
			
			|  |  |  | occurs because Visual C++ does not allow an @code{int} to be converted to | 
		
	
		
			
			|  |  |  | an @code{enum} without a cast. To solve the problem, insert the required | 
		
	
		
			
			|  |  |  | casts (this error occurs once for a @code{CodecID} and once for a | 
		
	
		
			
			|  |  |  | @code{CodecType}).  The second type of error occurs because C++ requires | 
		
	
	
		
			
				|  |  | @@ -1327,7 +1327,7 @@ and/or SDL, xvid, faac, faad2 packages from Cygwin Ports, | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @subsection Crosscompilation for Windows under Cygwin | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | With Cygwin you can create Windows binaries that don't need the cygwin1.dll. | 
		
	
		
			
			|  |  |  | With Cygwin you can create Windows binaries that do not need the cygwin1.dll. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | Just install your Cygwin as explained before, plus these additional | 
		
	
		
			
			|  |  |  | "Devel" packages: | 
		
	
	
		
			
				|  |  | @@ -1358,7 +1358,7 @@ Old stuff: | 
		
	
		
			
			|  |  |  | François Revol - revol at free dot fr - April 2002 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | The configure script should guess the configuration itself, | 
		
	
		
			
			|  |  |  | however I still didn't test building on the net_server version of BeOS. | 
		
	
		
			
			|  |  |  | however I still did not test building on the net_server version of BeOS. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | FFserver is broken (needs poll() implementation). | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -1408,14 +1408,14 @@ designated struct initializers (@samp{struct s x = @{ .i = 17 @};}) | 
		
	
		
			
			|  |  |  | compound literals (@samp{x = (struct s) @{ 17, 23 @};}) | 
		
	
		
			
			|  |  |  | @end itemize | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | These features are supported by all compilers we care about, so we won't | 
		
	
		
			
			|  |  |  | accept patches to remove their use unless they absolutely don't impair | 
		
	
		
			
			|  |  |  | These features are supported by all compilers we care about, so we will not | 
		
	
		
			
			|  |  |  | accept patches to remove their use unless they absolutely do not impair | 
		
	
		
			
			|  |  |  | clarity and performance. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | All code must compile with GCC 2.95 and GCC 3.3. Currently, FFmpeg also | 
		
	
		
			
			|  |  |  | compiles with several other compilers, such as the Compaq ccc compiler | 
		
	
		
			
			|  |  |  | or Sun Studio 9, and we would like to keep it that way unless it would | 
		
	
		
			
			|  |  |  | be exceedingly involved. To ensure compatibility, please don't use any | 
		
	
		
			
			|  |  |  | be exceedingly involved. To ensure compatibility, please do not use any | 
		
	
		
			
			|  |  |  | additional C99 features or GCC extensions. Especially watch out for: | 
		
	
		
			
			|  |  |  | @itemize @bullet | 
		
	
		
			
			|  |  |  | @item | 
		
	
	
		
			
				|  |  | @@ -1440,7 +1440,7 @@ bugs). | 
		
	
		
			
			|  |  |  | Comments: Use the JavaDoc/Doxygen | 
		
	
		
			
			|  |  |  | format (see examples below) so that code documentation | 
		
	
		
			
			|  |  |  | can be generated automatically. All nontrivial functions should have a comment | 
		
	
		
			
			|  |  |  | above them explaining what the function does, even if it's just one sentence. | 
		
	
		
			
			|  |  |  | above them explaining what the function does, even if it is just one sentence. | 
		
	
		
			
			|  |  |  | All structures and their member variables should be documented, too. | 
		
	
		
			
			|  |  |  | @example | 
		
	
		
			
			|  |  |  | /** | 
		
	
	
		
			
				|  |  | @@ -1486,18 +1486,18 @@ please use av_log() instead. | 
		
	
		
			
			|  |  |  | (#ifdef etc) by default so it does not interfere with other developers' | 
		
	
		
			
			|  |  |  | work. | 
		
	
		
			
			|  |  |  | @item | 
		
	
		
			
			|  |  |  | You don't have to over-test things. If it works for you, and you think it | 
		
	
		
			
			|  |  |  | You do not have to over-test things. If it works for you, and you think it | 
		
	
		
			
			|  |  |  | should work for others, then commit. If your code has problems | 
		
	
		
			
			|  |  |  | (portability, triggers compiler bugs, unusual environment etc) they will be | 
		
	
		
			
			|  |  |  | reported and eventually fixed. | 
		
	
		
			
			|  |  |  | @item | 
		
	
		
			
			|  |  |  | Do not commit unrelated changes together, split them into self-contained | 
		
	
		
			
			|  |  |  | pieces. Also dont forget that if part B depends on part A but A doesnt | 
		
	
		
			
			|  |  |  | depend on B, then A can and should be commited first and seperately from B. | 
		
	
		
			
			|  |  |  | Keeping changes well split into self contained parts makes reviewing and | 
		
	
		
			
			|  |  |  | understanding them on svn log at the time of commit and later when | 
		
	
		
			
			|  |  |  | debugging a bug much easier. | 
		
	
		
			
			|  |  |  | Also if you have doubt about spliting or not spliting, dont hesitate to | 
		
	
		
			
			|  |  |  | pieces. Also do not forget that if part B depends on part A, but A does not | 
		
	
		
			
			|  |  |  | depend on B, then A can and should be committed first and separate from B. | 
		
	
		
			
			|  |  |  | Keeping changes well split into self-contained parts makes reviewing and | 
		
	
		
			
			|  |  |  | understanding them on the commit log mailing list easier. This also helps | 
		
	
		
			
			|  |  |  | in case of debugging later on. | 
		
	
		
			
			|  |  |  | Also if you have doubts about splitting or not splitting, do not hesitate to | 
		
	
		
			
			|  |  |  | ask/disscuss it on the developer mailing list. | 
		
	
		
			
			|  |  |  | @item | 
		
	
		
			
			|  |  |  | Do not change behavior of the program (renaming options etc) without | 
		
	
	
		
			
				|  |  | @@ -1519,12 +1519,12 @@ please use av_log() instead. | 
		
	
		
			
			|  |  |  | developer has his own indentation style, you should not change it. Of course | 
		
	
		
			
			|  |  |  | if you (re)write something, you can use your own style, even though we would | 
		
	
		
			
			|  |  |  | prefer if the indentation throughout FFmpeg was consistent (Many projects | 
		
	
		
			
			|  |  |  | force a given indentation style - we don't.). If you really need to make | 
		
	
		
			
			|  |  |  | force a given indentation style - we do not.). If you really need to make | 
		
	
		
			
			|  |  |  | indentation changes (try to avoid this), separate them strictly from real | 
		
	
		
			
			|  |  |  | changes. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | NOTE: If you had to put if()@{ .. @} over a large (> 5 lines) chunk of code, | 
		
	
		
			
			|  |  |  | then either do NOT change the indentation of the inner part within (don't | 
		
	
		
			
			|  |  |  | then either do NOT change the indentation of the inner part within (do not | 
		
	
		
			
			|  |  |  | move it to the right)! or do so in a separate commit | 
		
	
		
			
			|  |  |  | @item | 
		
	
		
			
			|  |  |  | Always fill out the commit log message. Describe in a few lines what you | 
		
	
	
		
			
				|  |  | @@ -1540,7 +1540,7 @@ please use av_log() instead. | 
		
	
		
			
			|  |  |  | Do NOT commit to code actively maintained by others without permission. | 
		
	
		
			
			|  |  |  | Send a patch to ffmpeg-devel instead. If noone answers within a reasonable | 
		
	
		
			
			|  |  |  | timeframe (12h for build failures and security fixes, 3 days small changes, | 
		
	
		
			
			|  |  |  | 1 week for big patches) then commit your patch if you think it's OK. | 
		
	
		
			
			|  |  |  | 1 week for big patches) then commit your patch if you think it is OK. | 
		
	
		
			
			|  |  |  | Also note, the maintainer can simply ask for more time to review! | 
		
	
		
			
			|  |  |  | @item | 
		
	
		
			
			|  |  |  | Subscribe to the ffmpeg-cvslog mailing list. The diffs of all commits | 
		
	
	
		
			
				|  |  | @@ -1559,9 +1559,9 @@ please use av_log() instead. | 
		
	
		
			
			|  |  |  | always check values read from some untrusted source before using them | 
		
	
		
			
			|  |  |  | as array index or other risky things. | 
		
	
		
			
			|  |  |  | @item | 
		
	
		
			
			|  |  |  | Developers who have provided a public gpg key shall only receive | 
		
	
		
			
			|  |  |  | passwords or other sensitive information related to ffmpeg encrypted | 
		
	
		
			
			|  |  |  | with their gpg key or in another secure way | 
		
	
		
			
			|  |  |  | Developers who have provided a public GPG key shall only receive | 
		
	
		
			
			|  |  |  | passwords or other sensitive information related to FFmpeg encrypted | 
		
	
		
			
			|  |  |  | with their GPG key or in another secure way. | 
		
	
		
			
			|  |  |  | @item | 
		
	
		
			
			|  |  |  | Remember to check if you need to bump versions for the specific libav | 
		
	
		
			
			|  |  |  | parts (libavutil, libavcodec, libavformat) you are changing. You need | 
		
	
	
		
			
				|  |  | @@ -1579,8 +1579,8 @@ please use av_log() instead. | 
		
	
		
			
			|  |  |  | it has a fourcc, add it to @file{libavformat/avienc.c}, even if it | 
		
	
		
			
			|  |  |  | is only a decoder. | 
		
	
		
			
			|  |  |  | @item | 
		
	
		
			
			|  |  |  | Do not change code to hide warnings without ensuring that the underlaying | 
		
	
		
			
			|  |  |  | logic is correct and thus the warning was inappropriate | 
		
	
		
			
			|  |  |  | Do not change code to hide warnings without ensuring that the underlying | 
		
	
		
			
			|  |  |  | logic is correct and thus the warning was inappropriate. | 
		
	
		
			
			|  |  |  | @end enumerate | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | We think our rules are not too hard. If you have comments, contact us. | 
		
	
	
		
			
				|  |  | @@ -1589,7 +1589,7 @@ Note, these rules are mostly borrowed from the MPlayer project. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @section Submitting patches | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | First, (@pxref{Coding Rules}) above if you didn't yet. | 
		
	
		
			
			|  |  |  | First, (@pxref{Coding Rules}) above if you did not yet. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | When you submit your patch, try to send a unified diff (diff '-up' | 
		
	
		
			
			|  |  |  | option). I cannot read other diffs :-) | 
		
	
	
		
			
				|  |  | @@ -1602,7 +1602,7 @@ Run the regression tests before submitting a patch so that you can | 
		
	
		
			
			|  |  |  | verify that there are no big problems. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | Patches should be posted as base64 encoded attachments (or any other | 
		
	
		
			
			|  |  |  | encoding which ensures that the patch won't be trashed during | 
		
	
		
			
			|  |  |  | encoding which ensures that the patch will not be trashed during | 
		
	
		
			
			|  |  |  | transmission) to the ffmpeg-devel mailing list, see | 
		
	
		
			
			|  |  |  | @url{http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -1615,20 +1615,21 @@ and has no lrint()') | 
		
	
		
			
			|  |  |  | All patches posted to ffmpeg-devel will be reviewed, unless they contain a | 
		
	
		
			
			|  |  |  | clear note that the patch is not for SVN. | 
		
	
		
			
			|  |  |  | Reviews and comments will be posted as replies to the patch on the | 
		
	
		
			
			|  |  |  | mailinglist. The patch submitter then has to take care of every comment, | 
		
	
		
			
			|  |  |  | mailing list. The patch submitter then has to take care of every comment, | 
		
	
		
			
			|  |  |  | that can be by resubmitting a changed patch or by disscussion. Resubmitted | 
		
	
		
			
			|  |  |  | patches will themselfs be reviewed like any other patch. If at some point | 
		
	
		
			
			|  |  |  | patches will themselves be reviewed like any other patch. If at some point | 
		
	
		
			
			|  |  |  | a patch passes review with no comments then it is approved, that can for | 
		
	
		
			
			|  |  |  | simple and small patches happen immedeatly while large patches will generally | 
		
	
		
			
			|  |  |  | simple and small patches happen immediately while large patches will generally | 
		
	
		
			
			|  |  |  | have to be changed and reviewed many times before they are approved. | 
		
	
		
			
			|  |  |  | After a patch is approved it will be applied to ffmpeg svn | 
		
	
		
			
			|  |  |  | After a patch is approved it will be committed to the repository. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | We will review all submitted patches, but sometimes we are quite busy so | 
		
	
		
			
			|  |  |  | especially for large patches this can take several weeks. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | When resubmitting patches, please do not make any significant changes | 
		
	
		
			
			|  |  |  | unrelated to the comments such patches will be rejected, Instead submit | 
		
	
		
			
			|  |  |  | such significant changes or new features as seperate patches. | 
		
	
		
			
			|  |  |  | not related to the comments received during review. Such patches will | 
		
	
		
			
			|  |  |  | be rejected. Instead, submit  significant changes or new features as | 
		
	
		
			
			|  |  |  | separate patches. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @section Regression tests | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | 
 |