1 2Releases 3----------- 4v2.2.0 5------ 6- Add support for B-slice error concealment 7- Thread decoding support for multi-slice frame 8- SIMD optimization for loongson platform 9- Support the arm64 compilation on Windows and MacOS platform 10- Some Bug fixes for B-frame decoding 11- Some minor bug fixes 12 13v2.1.1 14------ 15- release x86 and x64 libraries for android platform 16- release arm and arm64 libraries for linux platform 17- Bug fixes 18 19v2.1.0 20------ 21- Experimentally support for multi-thread decoding(default disabled,and may result in random problems if enabled) 22- Assembly optimization for loongson platform 23- Update meson version to 5 24- Some minor bug fixes 25 26v2.0.0 27------ 28- B-frame decoding support for Main and High Profile with two test cases 29- Add support for loongson(https://en.wikipedia.org/wiki/Loongson) platform 30- Add clang support for arm/arm64/x86 for NDK version over 17 31- Enable stack protector 32- Add some test cases 33- Avoid using C++/CX code for threads for Windows Phone/Windows Store/UWP 34- Remove extra visual studio projects for the decoder 35- Remove check for working compiler in NDK 36- Bug fixes 37 38v1.8.0 39------ 40- Add meson build for Linux/Windows platform 41- Disable background detection for screen route 42- Add a workaround for Visual Studio 2013 C++ x64 compiler bug on AVX2. That bug will cause crash and has been fixed in Visual Studio 2014 43- Change the default profile from baseline to high if user does not set it and CABAC is specified 44- Skip frames that are marked as IDR due to scene change and simultaneously marked as skip frame to reduce bit rate 45- Refine threshold calculation algorithms for rate control in lower frame rate to get better effect 46- Encoder return with a specific return value instead of uninitialize encoder when input resolution is invalid 47- Refine strategy on level change to avoid frequent IDR. Encoder will not be reset if level is changed to a smaller one 48- Support to set the min and max QP values on screen content mode 49- Fix a memory issue that may cause encoder crash when temporal layer change 50- Corrected some statistics information 51- Refine error concealment algorithms to improve user experience 52- Support to get information about current output picture is reference picture or not on decoder side 53- Bug fix for decoder when 8x8 prediction mode is enabled on the input bitstream 54- Enable NEON for ChromeOS devices 55- Support for Fuchsia operating systerm 56- Support for building arm64 with MSVC 57- Remove some warnings when building with MSVC 58- Fix clang compiler error when building arm assembly funtions 59- Bug fixes for unit test 60 61v1.7.0 62------ 63- Changed SPS/PPS strategy option name,See enum ENCODER_OPTION 64- Changed NAL size length parameter from static array to pointer to support more NALs.See struct SParserBsInfo 65- Changed semaphores to condition variables on apple platform 66- Changed version update mechanism as Major.Minor.patch,like 1.7.0 67- Supported to force IDR independently for each layer in simulcast AVC case.See API ForceIntraFrame() 68- Supported LTR request independently for each layer in simulcast AVC case.See struct SLTRRecoverRequest and SLTRMarkingFeedback 69- Supported to set sample aspect ratio in VUI on encoder side. See struct SSpatialLayerConfig 70- Supported to set profile and level, changed the default level as 4.1 if the user doesn’t set it. See enum ELevelIdc 71- Supported to get profile and level info on decoder side.See enum DECODER_OPTION 72- Supported for enable/disable AVX2 build option. Build option: HAVE_AVX2 73- Supported to set decoder statistics log interval, Add DECODER_OPTION_STATISTICS_LOG_INTERVAL.See DECODER_OPTION. 74- Supported for AU delimiter NAL on decoder side. AU delimiter refers to section 7.3.2.4 75- Supported for x86 PIC assembly and build option. Build option: ENABLEPIC. git issues:#2263 #2534 76- Supported for Cygwin x86_64 build 77- Supported to get sample aspect ratio by GetOption on decoder. Add option: DECODER_OPTION_GET_SAR_INFO 78- Set constraint_set4_flag constraint_set5_flag to align to CHP definition in latest H264 standard 79- Improved VUI support on decoder side 80- Improved decoder statistics info output 81- Refined the return value when failed in memory allocation 82- Added SSSE3 motion compensation routines 83- Added AVX2 motion compensation routines 84- Optimization on some of SSE2/MMX functions 85- Refactor rate control for RC_BUFFERBASED_MODE and RC_QUALITY_MODE mode 86- Added more unit tests for random resolution input,slice mode switch,profile/level setting 87- Refined logs 88- Bug fixes for 4:0:0 format support on decoder 89- Bug fixes for complexity calculation for screen content mode 90- Bug fixes for loadbalancing turn on, git issue:#2618 91- Bug fixes for parser subsps, scalling list, parser longer bitstream 92 93v1.6.0 94------ 95- Adjusted the encoder API structures 96- Removed the unused data format in decoder API 97- Encoder support of simulcast AVC 98- Added support of video signal type present information 99- Added support of encoder load-balancing 100- Improved encoder multi-threads, rate control and down-sampling 101- Fixed the frame size constraint in encoder 102- Bug fixes for rate control, multi-threading, simulcasting in encoder 103- Bug fixes for interface call, return value check, memory leak in decoder 104- Bug fixes for UT and statistic information 105- Bug fixes for assembly code 106- Remove the unused and redundant code 107- Improvements on UT, memory allocation failed protection, error-protection in decoder, input parameters checking in encoder, assembly for AVX2 support, assembly code performance, logging and documentation 108- Correct some typos in source code and documents 109 110v1.5.3 111------ 112- Bug fixes for GMP Plugin 113 114v1.5.2 115------ 116- Fix GMP Plugin causing the Browser crash on Android 117 118v1.5.1 119------ 120- Bug fixes for GMP Plugin 121 122v1.5.0 123------ 124- Correct a typo in codec return value (github issue#2046, cmUnkonwReason -> cmUnknownReason) 125- Added Codec demo and auto build script for WP8 126- Decoder support of 'Constrained High Profile' of H.264 127- Encoder support of CABAC of H.264 128- Encoder support of input frame rate 60 129- Improved syntax of gaps_in_frame_num_value_allowed_flag in encoder 130- Improved memory usage for multi-threading in encoder 131- Added VUI info for base layer in encoder 132- Added encoder interface to get external setting of iMaxQp and iMinQp for rate control 133- Bug fixes for Rate Control, multi-threading and simulcasting in encoder 134- Bug fixes for NoDelay API, ParseOnly functions, error-concealment off functiond and error-detection in decoder 135- Bug fixes for UT 136- Fixes to avoid valgrind warnings, potential crash and calculation overflow 137- Merged files for decoder/encoder and remove unused files 138- Improvements on build scripts, UT, error-protection in decoder, input param checking in encoder, assembly for 64bit support, downsampling, logging and documentation 139 140Note: 141'Constrained High Profile' = 'Constrained Baseline Profile' plus: 142- CABAC 143- Intra 8x8 mode support 144- 8x8 transform 145- QP scaling matrices 146- QP per chroma component 147- Mono 4:0:0 (experimental) 148- Weighted prediction 149 150v1.4.0 151------ 152- Decoder new interface of DecodeFrameNoDelay 153- Added new encoder and decoder statistics 154- Added option for generating pdb in windows builds 155- Added new rate control mode (RC_TIMESTAMP_MODE) for inconstant frame rate input 156- Added new Sps/Pps strategies for real-time video 157— Added support for simulcast avc 158- Improvements in code structure, assembly, input parameter checking, logging, UT and comments 159- In gmp-openh264, return decoder error correctly and other fixes 160- Decoder bug fixes when for Error Concealment disabled 161- Bug fixes for ParseOnly functions 162- Bug fixes for encoding large frame size (>32767MBs) 163- Fixes to avoid valgrind warnings, potential crash and calculation overflow 164 165----------- 166v1.3.1 167------ 168- Fixed and enhanced protection to avoid crash when reading lossy bitstreams 169- Adjust the default mode of Error Concealment used by gmp-openh264 170 171----------- 172v1.3.0 173------ 174- Removed manual API document, now using wiki: https://github.com/cisco/openh264/wiki (0af48e5 for v1.3.0) 175- Added API version in API header files 176- Added pkg-config file 177- Added decoder support of parsing only (bParseOnly) for only parsing bit stream but not decoding 178- Added timestamp and max nal size in gmp-openh264.cpp when calling encoding 179- Added timestamp info in decoder input and return structure 180- Added support of level 9 in decoder 181- Added total length of the encoded frame in encoder return structure 182- Added SetOption(ENCODER_OPTION_SVC_ENCODE_PARAM_BASE,&base) for encoder 183- Set constraint set 0 and 1 flags for non-scalable 184- Improved error concealment algorithms and provide more modes of error-concealment 185- Improved rate control algorithms and reference selection algorithms for screen content encoding 186- Added encoder and decoder statistics interface 187- Improved input parameter checking and logging 188- Bug fixes, warning reductions, and test improvements 189 190----------- 191v1.2.0 192------ 193- Add and modify encoder APIs related to rate control and screen content encoding 194- Remove PauseFrame in encoder APIs 195- Improve rate control and compression ratio for screen content encoding 196- Improve error concealment algorithm 197- Improve validation of input parameters 198- Add ARM64 assembly 199- bug fixes 200 201----------- 202v1.1.0 203------ 204- Modify some APIs (see API doc for detail) 205- Improve the compression ratio of screen content encoding 206- ARM64 assembly support for most of core functions in encoder & decoder 207- Modify error concealment logic to always return decoding error info until IDR picture comes 208- fix some bugs 209 210 211Binaries 212----------- 213These binary releases are distributed under this license: 214http://www.openh264.org/BINARY_LICENSE.txt 215 216v2.2.0 217http://ciscobinary.openh264.org/libopenh264-2.2.0-android-arm.6.so.bz2 218http://ciscobinary.openh264.org/libopenh264-2.2.0-android-arm64.6.so.bz2 219http://ciscobinary.openh264.org/libopenh264-2.2.0-android-x86.6.so.bz2 220http://ciscobinary.openh264.org/libopenh264-2.2.0-android-x64.6.so.bz2 221http://ciscobinary.openh264.org/libopenh264-2.2.0-ios.a.bz2 222http://ciscobinary.openh264.org/libopenh264-2.2.0-linux32.6.so.bz2 223http://ciscobinary.openh264.org/libopenh264-2.2.0-linux64.6.so.bz2 224http://ciscobinary.openh264.org/libopenh264-2.2.0-linux-arm.6.so.bz2 225http://ciscobinary.openh264.org/libopenh264-2.2.0-linux-arm64.6.so.bz2 226http://ciscobinary.openh264.org/libopenh264-2.2.0-osx-arm64.6.dylib.bz2 227http://ciscobinary.openh264.org/libopenh264-2.2.0-osx-x64.6.dylib.bz2 228http://ciscobinary.openh264.org/openh264-2.2.0-win32.dll.bz2 229http://ciscobinary.openh264.org/openh264-2.2.0-win64.dll.bz2 230 231v2.1.1 232http://ciscobinary.openh264.org/libopenh264-2.1.1-android-arm.so.bz2 233http://ciscobinary.openh264.org/libopenh264-2.1.1-android-arm.so.sig.bz2 234http://ciscobinary.openh264.org/libopenh264-2.1.1-android-arm64.so.bz2 235http://ciscobinary.openh264.org/libopenh264-2.1.1-android-arm64.so.sig.bz2 236http://ciscobinary.openh264.org/libopenh264-2.1.1-android-x86.so.bz2 237http://ciscobinary.openh264.org/libopenh264-2.1.1-android-x86.so.sig.bz2 238http://ciscobinary.openh264.org/libopenh264-2.1.1-android-x64.so.bz2 239http://ciscobinary.openh264.org/libopenh264-2.1.1-android-x64.so.sig.bz2 240http://ciscobinary.openh264.org/libopenh264-2.1.1-ios.a.bz2 241http://ciscobinary.openh264.org/libopenh264-2.1.1-ios.a.sig.bz2 242http://ciscobinary.openh264.org/libopenh264-2.1.1-linux32.6.so.bz2 243http://ciscobinary.openh264.org/libopenh264-2.1.1-linux32.6.so.sig.bz2 244http://ciscobinary.openh264.org/libopenh264-2.1.1-linux64.6.so.bz2 245http://ciscobinary.openh264.org/libopenh264-2.1.1-linux64.6.so.sig.bz2 246http://ciscobinary.openh264.org/libopenh264-2.1.1-linux-arm.6.so.bz2 247http://ciscobinary.openh264.org/libopenh264-2.1.1-linux-arm.6.so.sig.bz2 248http://ciscobinary.openh264.org/libopenh264-2.1.1-linux-arm64.6.so.bz2 249http://ciscobinary.openh264.org/libopenh264-2.1.1-linux-arm64.6.so.sig.bz2 250http://ciscobinary.openh264.org/libopenh264-2.1.1-osx32.6.dylib.bz2 251http://ciscobinary.openh264.org/libopenh264-2.1.1-osx64.6.dylib.bz2 252http://ciscobinary.openh264.org/openh264-2.1.1-win32.dll.bz2 253http://ciscobinary.openh264.org/openh264-2.1.1-win64.dll.bz2 254 255v2.1.0 256http://ciscobinary.openh264.org/libopenh264-2.1.0-android-arm.so.bz2 257http://ciscobinary.openh264.org/libopenh264-2.1.0-android-arm.so.sig.bz2 258http://ciscobinary.openh264.org/libopenh264-2.1.0-android-arm64.so.bz2 259http://ciscobinary.openh264.org/libopenh264-2.1.0-android-arm64.so.sig.bz2 260http://ciscobinary.openh264.org/libopenh264-2.1.0-ios.a.bz2 261http://ciscobinary.openh264.org/libopenh264-2.1.0-ios.a.sig.bz2 262http://ciscobinary.openh264.org/libopenh264-2.1.0-linux32.5.so.bz2 263http://ciscobinary.openh264.org/libopenh264-2.1.0-linux32.5.so.sig.bz2 264http://ciscobinary.openh264.org/libopenh264-2.1.0-linux64.5.so.bz2 265http://ciscobinary.openh264.org/libopenh264-2.1.0-linux64.5.so.sig.bz2 266http://ciscobinary.openh264.org/libopenh264-2.1.0-osx32.5.dylib.bz2 267http://ciscobinary.openh264.org/libopenh264-2.1.0-osx64.5.dylib.bz2 268http://ciscobinary.openh264.org/openh264-2.1.0-win32.dll.bz2 269http://ciscobinary.openh264.org/openh264-2.1.0-win64.dll.bz2 270 271v2.0.0 272------ 273http://ciscobinary.openh264.org/libopenh264-2.0.0-android.so.bz2 274http://ciscobinary.openh264.org/libopenh264-2.0.0-android.so.sig.bz2 275http://ciscobinary.openh264.org/libopenh264-2.0.0-ios.a.bz2 276http://ciscobinary.openh264.org/libopenh264-2.0.0-ios.a.sig.bz2 277http://ciscobinary.openh264.org/libopenh264-2.0.0-linux32.5.so.bz2 278http://ciscobinary.openh264.org/libopenh264-2.0.0-linux32.5.so.sig.bz2 279http://ciscobinary.openh264.org/libopenh264-2.0.0-linux64.5.so.bz2 280http://ciscobinary.openh264.org/libopenh264-2.0.0-linux64.5.so.sig.bz2 281http://ciscobinary.openh264.org/libopenh264-2.0.0-osx32.5.dylib.bz2 282http://ciscobinary.openh264.org/libopenh264-2.0.0-osx64.5.dylib.bz2 283http://ciscobinary.openh264.org/openh264-2.0.0-win32.dll.bz2 284http://ciscobinary.openh264.org/openh264-2.0.0-win64.dll.bz2 285 286v1.8.0 287------ 288http://ciscobinary.openh264.org/libopenh264-1.8.0-android19.so.bz2 289http://ciscobinary.openh264.org/libopenh264-1.8.0-android19.so.sig.bz2 290http://ciscobinary.openh264.org/libopenh264-1.8.0-ios.a.bz2 291http://ciscobinary.openh264.org/libopenh264-1.8.0-ios.a.sig.bz2 292http://ciscobinary.openh264.org/libopenh264-1.8.0-linux32.4.so.bz2 293http://ciscobinary.openh264.org/libopenh264-1.8.0-linux32.4.so.sig.bz2 294http://ciscobinary.openh264.org/libopenh264-1.8.0-linux64.4.so.bz2 295http://ciscobinary.openh264.org/libopenh264-1.8.0-linux64.4.so.sig.bz2 296http://ciscobinary.openh264.org/libopenh264-1.8.0-osx32.4.dylib.bz2 297http://ciscobinary.openh264.org/libopenh264-1.8.0-osx64.4.dylib.bz2 298http://ciscobinary.openh264.org/openh264-1.8.0-win32.dll.bz2 299http://ciscobinary.openh264.org/openh264-1.8.0-win64.dll.bz2 300 301v1.7.0 302------ 303http://ciscobinary.openh264.org/libopenh264-1.7.0-android19.so.bz2 304http://ciscobinary.openh264.org/libopenh264-1.7.0-android19.so.sig.bz2 305http://ciscobinary.openh264.org/libopenh264-1.7.0-ios.a.bz2 306http://ciscobinary.openh264.org/libopenh264-1.7.0-ios.a.sig.bz2 307http://ciscobinary.openh264.org/libopenh264-1.7.0-linux32.4.so.bz2 308http://ciscobinary.openh264.org/libopenh264-1.7.0-linux32.4.so.sig.bz2 309http://ciscobinary.openh264.org/libopenh264-1.7.0-linux64.4.so.bz2 310http://ciscobinary.openh264.org/libopenh264-1.7.0-linux64.4.so.sig.bz2 311http://ciscobinary.openh264.org/libopenh264-1.7.0-osx32.4.dylib.bz2 312http://ciscobinary.openh264.org/libopenh264-1.7.0-osx64.4.dylib.bz2 313http://ciscobinary.openh264.org/openh264-1.7.0-win32.dll.bz2 314http://ciscobinary.openh264.org/openh264-1.7.0-win64.dll.bz2 315 316v1.6.0 317------ 318http://ciscobinary.openh264.org/libopenh264-1.6.0-android19.so.bz2 319http://ciscobinary.openh264.org/libopenh264-1.6.0-ios.a.bz2 320http://ciscobinary.openh264.org/libopenh264-1.6.0-linux32.3.so.bz2 321http://ciscobinary.openh264.org/libopenh264-1.6.0-linux64.3.so.bz2 322http://ciscobinary.openh264.org/libopenh264-1.6.0-osx32.3.dylib.bz2 323http://ciscobinary.openh264.org/libopenh264-1.6.0-osx64.3.dylib.bz2 324http://ciscobinary.openh264.org/openh264-1.6.0-win32msvc.dll.bz2 325http://ciscobinary.openh264.org/openh264-1.6.0-win64msvc.dll.bz2 326 327v1.5.0 328------ 329http://ciscobinary.openh264.org/libopenh264-1.5.0-android19.so.bz2 330http://ciscobinary.openh264.org/libopenh264-1.5.0-ios.a.bz2 331http://ciscobinary.openh264.org/libopenh264-1.5.0-linux32.so.bz2 332http://ciscobinary.openh264.org/libopenh264-1.5.0-linux64.so.bz2 333http://ciscobinary.openh264.org/libopenh264-1.5.0-osx32.dylib.bz2 334http://ciscobinary.openh264.org/libopenh264-1.5.0-osx64.dylib.bz2 335http://ciscobinary.openh264.org/openh264-1.5.0-win32msvc.dll.bz2 336http://ciscobinary.openh264.org/openh264-1.5.0-win64msvc.dll.bz2 337 338v1.4.0 339------ 340http://ciscobinary.openh264.org/libopenh264-1.4.0-android19.so.bz2 341http://ciscobinary.openh264.org/libopenh264-1.4.0-linux32.so.bz2 342http://ciscobinary.openh264.org/libopenh264-1.4.0-linux64.so.bz2 343http://ciscobinary.openh264.org/libopenh264-1.4.0-osx32.dylib.bz2 344http://ciscobinary.openh264.org/libopenh264-1.4.0-osx64.dylib.bz2 345http://ciscobinary.openh264.org/openh264-1.4.0-win32msvc.dll.bz2 346http://ciscobinary.openh264.org/openh264-1.4.0-win64msvc.dll.bz2 347 348v1.3.1 349------ 350http://ciscobinary.openh264.org/libopenh264-1.3.1-android19.so.bz2 351http://ciscobinary.openh264.org/libopenh264-1.3.1-linux32.so.bz2 352http://ciscobinary.openh264.org/libopenh264-1.3.1-linux64.so.bz2 353http://ciscobinary.openh264.org/libopenh264-1.3.1-osx32.dylib.bz2 354http://ciscobinary.openh264.org/libopenh264-1.3.1-osx64.dylib.bz2 355http://ciscobinary.openh264.org/openh264-1.3.1-win32msvc.dll.bz2 356http://ciscobinary.openh264.org/openh264-1.3.1-win64msvc.dll.bz2 357 358v1.3.0 359------ 360http://ciscobinary.openh264.org/libopenh264-1.3.0-android19.so.bz2 361http://ciscobinary.openh264.org/libopenh264-1.3.0-linux32.so.bz2 362http://ciscobinary.openh264.org/libopenh264-1.3.0-linux64.so.bz2 363http://ciscobinary.openh264.org/libopenh264-1.3.0-osx32.dylib.bz2 364http://ciscobinary.openh264.org/libopenh264-1.3.0-osx64.dylib.bz2 365http://ciscobinary.openh264.org/openh264-1.3.0-win32msvc.dll.bz2 366http://ciscobinary.openh264.org/openh264-1.3.0-win64msvc.dll.bz2 367 368v1.2.0 369------ 370http://ciscobinary.openh264.org/libopenh264-1.2.0-android19.so.bz2 371http://ciscobinary.openh264.org/libopenh264-1.2.0-linux32.so.bz2 372http://ciscobinary.openh264.org/libopenh264-1.2.0-linux64.so.bz2 373http://ciscobinary.openh264.org/libopenh264-1.2.0-osx32.dylib.bz2 374http://ciscobinary.openh264.org/libopenh264-1.2.0-osx64.dylib.bz2 375http://ciscobinary.openh264.org/openh264-1.2.0-win32msvc.dll.bz2 376http://ciscobinary.openh264.org/openh264-1.2.0-win64msvc.dll.bz2 377 378v1.1.0 379------ 380http://ciscobinary.openh264.org/libopenh264-1.1.0-android19.so.bz2 381http://ciscobinary.openh264.org/libopenh264-1.1.0-linux32.so.bz2 382http://ciscobinary.openh264.org/libopenh264-1.1.0-linux64.so.bz2 383http://ciscobinary.openh264.org/libopenh264-1.1.0-osx32.dylib.bz2 384http://ciscobinary.openh264.org/libopenh264-1.1.0-osx64.dylib.bz2 385http://ciscobinary.openh264.org/openh264-1.1.0-win32msvc.dll.bz2 386http://ciscobinary.openh264.org/openh264-1.1.0-win64msvc.dll.bz2 387 388v1.0.0 389------ 390 391http://ciscobinary.openh264.org/libopenh264-1.0.0-android19.so.bz2 392http://ciscobinary.openh264.org/libopenh264-1.0.0-linux32.so.bz2 393http://ciscobinary.openh264.org/libopenh264-1.0.0-linux64.so.bz2 394http://ciscobinary.openh264.org/libopenh264-1.0.0-osx64.dylib.bz2 395http://ciscobinary.openh264.org/openh264-1.0.0-win32msvc.dll.bz2 396http://ciscobinary.openh264.org/openh264-1.0.0-win64msvc.dll.bz2 397 398 399 400 401