shithub: openh264

Download patch

ref: 59dae50b1069dbd532226ea024a3ba3982ab4386
parent: 9b21ece789c066db96be8810f0892560adcd63b8
author: Ethan Hugg <[email protected]>
date: Mon Dec 9 00:16:54 EST 2013

Updated README

--- a/README.md
+++ b/README.md
@@ -1,22 +1,97 @@
 OpenH264
-========
-
-This goal of this project is to build a BSD-licensed open source H.264
-codec that is suitable for use in real time applications such as WebRTC. See
-http://www.openh264.org/ for more details.
+=======
+OpenH264 is a codec library which supports H.264 encoding and decoding. It is suitable for use in real time applications such as WebRTC. See http://www.openh264.org/ for more details.
+ 
+Encoder Features
+------------------------
+- Constrained Baseline Profile up to Level 5.2 (4096x2304)
+- Arbitrary resolution, not constrained to multiples of 16x16
+- Rate control with adaptive quantization, or constant quantization
+- Slice options: 1 slice per frame, N slices per frame, N macroblocks per slice, or N bytes per slice
+- Multiple threads automatically used for multiple slices
+- Temporal scalability up to 4 layers in a dyadic hierarchy
+- Spatial simulcast up to 4 resolutions from a single input
+- Long Term Reference (LTR) frames
+- Memory Management Control Operation (MMCO)
+- Reference picture list modification
+- Single reference frame for inter prediction
+- Multiple reference frames when using LTR and/or 3-4 temporal layers
+- Periodic and on-demand Instantaneous Decoder Refresh (IDR) frame insertion
+- Dynamic changes to bit rate, frame rate, and resolution 
+- Annex B byte stream output
+- YUV 4:2:0 planar input
+ 
+Decoder Features
+------------------------
+- Constrained Baseline Profile up to Level 5.2 (4096x2304)
+- Arbitrary resolution, not constrained to multiples of 16x16
+- Single thread for all slices
+- Long Term Reference (LTR) frames
+- Memory Management Control Operation (MMCO)
+- Reference picture list modification
+- Multiple reference frames when specified in Sequence Parameter Set (SPS)
+- Annex B byte stream input
+- YUV 4:2:0 planar output
+ 
+OS Support
+----------------
+- Windows 64-bit and 32-bit (initial release is only 32-bit, 64-bit will follow soon)
+- Mac OS X 64-bit (initial release does not include this target, will follow soon)
+- Linux 64-bit and 32-bit (initial release is only 32-bit, 64-bit will follow soon)
+- Android 32-bit (initial release does not include this target, will follow soon)
+- iOS 64-bit and 32-bit (not supported yet, may be added in the future)
+ 
+Processor Support
+-------------------------
+- Intel x86 optionally with MMX/SSE (no AVX yet, help is welcome)
+- ARMv7 optionally with NEON (initial release does not include this target, will follow later)
+- Any architecture using C/C++ fallback functions
 
-This repo has no codec code yet (only the code for the website, in the gh-pages
-branch). The code exists, and is used internally in Cisco products. But before
-we can release it and start the public project, we need to do the following
-things:
-
-* Separate the code from its dependencies on Cisco source code which is not
-  intended to be open sourced;
-
-* Check that we won't 0-day other Cisco products by releasing code which
-  has known unpublished security vulnerabilities;
-
-* Make sure all the legal processes necessary before opening code have been
-  completed.
-
-We hope to have these steps completed soon.
+Using the Library
+-----------------------
+Linux makefiles for 32 bit builds are available:
+    : build the decoder library and executable via codec/build/linux/dec/makefile
+    : build the encoder library and executable via codec/build/linux/enc/makefile
+    : build the encoder shared library via processing/build/linux/makefile
+ 
+Windows Visual Studio 2008/2010/2012 projects are available:
+    : build the decoder via the Visual Studio projects in codec/build/win32/dec
+    : build the encoder via the Visual Studio projects in codec/build/win32/dec
+    : build the encoder shared library via the Visual Studio projects in processing/build/win32/
+ 
+NASM needed to be installed for assembly code: workable version 2.07 or above, nasm can downloaded from http://www.nasm.us/
+ 
+API details to be provided later.
+ 
+Using the Test App
+-------------------------
+Linux shell scripts to build the test apps:
+    : build via testbin/AutoBuild_Linux.sh
+    : clean via testbin/AutoClean_Linux.sh
+ 
+Windows batch files to build the test apps:
+    : Visual Studio 2008 use testbin/AutoBuild_Windows_VS2008.bat
+    : Visual Studio 2010 use testbin/AutoBuild_Windows_VS2010.bat
+    : Visual Studio 2012 use testbin/AutoBuild_Windows_VS2012.bat
+ 
+Usage information can be found in testbin/CmdLineReadMe
+Command line options and details to be provided later.
+ 
+Using the Source
+-----------------------
+codec - encoder, decoder, console (test app), build (makefile, vcproj)
+processing - raw pixel processing (used by encoder)
+testbin - autobuild scripts, test app config files, yuv test files
+bin - binaries for library and test app
+ 
+Known Issues
+-------------------
+See the issue tracker on https://github.com/cisco/openh264/issues
+- Encoder errors when resolution exceeds 3840x2160
+- Encoder errors when compressed frame size exceeds half uncompressed size
+- Encoder console app only support multiple of 16 width/height for now
+- Decoder errors when compressed frame size exceeds 1MB
+ 
+License
+----------
+BSD, see LICENSE file for details.