shithub: openh264

Download patch

ref: 10179539cf10988573d77f770bf488e0534a5663
parent: af6a9a838fa18a827ea5684b72374ccf9f0e6ddb
parent: 6ca397e7588db5a828e602dafb655b05c73c1729
author: HaiboZhu <haibozhu@cisco.com>
date: Fri Oct 16 12:47:04 EDT 2015

Merge pull request #2157 from sijchen/mb

Sync from release 1.5 on API and release notes, etc.

--- a/Makefile
+++ b/Makefile
@@ -33,8 +33,8 @@
 CCASFLAGS=$(CFLAGS)
 STATIC_LDFLAGS=-lstdc++
 
-VERSION=1.4
-SHAREDLIBVERSION=0
+VERSION=1.5
+SHAREDLIBVERSION=1
 
 ifeq (,$(wildcard $(SRC_PATH)gmp-api))
 HAVE_GMP_API=No
--- a/RELEASES
+++ b/RELEASES
@@ -1,6 +1,34 @@
 
 Releases
 -----------
+v1.5.0
+------
+- Correct a typo in codec return value (github issue#2046, cmUnkonwReason -> cmUnknownReason)
+- Added Codec demo and auto build script for WP8
+- Decoder support of 'Constrained High Profile' of H.264
+- Encoder support of CABAC of H.264
+- Encoder support of input frame rate 60
+- Improved syntax of gaps_in_frame_num_value_allowed_flag in encoder
+- Improved memory usage for multi-threading in encoder
+- Added VUI info for base layer in encoder
+- Added encoder interface to get external setting of iMaxQp and iMinQp for rate control
+- Bug fixes for Rate Control, multi-threading and simulcasting in encoder
+- Bug fixes for NoDelay API, ParseOnly functions, error-concealment off functiond and error-detection in decoder
+- Bug fixes for UT
+- Fixes to avoid valgrind warnings, potential crash and calculation overflow
+- Merged files for decoder/encoder and remove unused files
+- Improvements on build scripts, UT, error-protection in decoder, input param checking in encoder, assembly for 64bit support, downsampling, logging and documentation
+
+Note:
+'Constrained High Profile' = 'Constrained Baseline Profile' plus:
+- CABAC
+- Intra 8x8 mode support
+- 8x8 transform
+- QP scaling matrices
+- QP per chroma component
+- Mono 4:0:0 (experimental)
+- Weighted prediction
+
 v1.4.0
 ------
 - Decoder new interface of DecodeFrameNoDelay
--- a/codec/api/svc/codec_def.h
+++ b/codec/api/svc/codec_def.h
@@ -80,7 +80,7 @@
 typedef enum {
   cmResultSuccess,          ///< successful
   cmInitParaError,          ///< parameters are invalid
-  cmUnkonwReason,
+  cmUnknownReason,
   cmMallocMemeError,        ///< malloc a memory error
   cmInitExpected,           ///< initial action is expected
   cmUnsupportedData
--- a/codec/api/svc/codec_ver.h
+++ b/codec/api/svc/codec_ver.h
@@ -4,12 +4,12 @@
 
 #include "codec_app_def.h"
 
-static const OpenH264Version g_stCodecVersion  = {1, 4, 1, 0};
-static const char* const g_strCodecVer  = "OpenH264 version:1.4.1.0";
+static const OpenH264Version g_stCodecVersion  = {1, 5, 0, 0};
+static const char* const g_strCodecVer  = "OpenH264 version:1.5.0.0";
 
 #define OPENH264_MAJOR (1)
-#define OPENH264_MINOR (4)
-#define OPENH264_REVISION (1)
+#define OPENH264_MINOR (5)
+#define OPENH264_REVISION (0)
 #define OPENH264_RESERVED (0)
 
 #endif  // CODEC_VER_H
--- a/codec/encoder/plus/src/welsEncoderExt.cpp
+++ b/codec/encoder/plus/src/welsEncoderExt.cpp
@@ -408,7 +408,7 @@
   } else if ((kiEncoderReturn != ENC_RETURN_SUCCESS) && (kiEncoderReturn == ENC_RETURN_CORRECTED)) {
     WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_ERROR, "unexpected return(%d) from EncodeFrameInternal()!",
              kiEncoderReturn);
-    return cmUnkonwReason;
+    return cmUnknownReason;
   }
 
   UpdateStatistics (pSrcPic->uiTimeStamp, pBsInfo->eFrameType, pBsInfo->iFrameSizeInBytes, kiCurrentFrameMs);
--- a/gmpopenh264.info
+++ b/gmpopenh264.info
@@ -1,4 +1,4 @@
 Name: gmpopenh264
 Description: GMP Plugin for OpenH264.
-Version: 1.4
+Version: 1.5
 APIs: encode-video[h264], decode-video[h264]
--- a/openh264.rc
+++ b/openh264.rc
@@ -24,8 +24,8 @@
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,4,1,0
- PRODUCTVERSION 1,4,1,0
+ FILEVERSION 1,5,0,0
+ PRODUCTVERSION 1,5,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -43,12 +43,12 @@
             VALUE "Comments", "Cisco OpenH264 codec"
             VALUE "CompanyName", "Cisco Systems Inc."
             VALUE "FileDescription", "Cisco OpenH264 codec"
-            VALUE "FileVersion", "1.4.1.0"
+            VALUE "FileVersion", "1.5.0.0"
             VALUE "InternalName", "openh264.dll"
             VALUE "LegalCopyright", "� 2011-2015 Cisco and/or its affiliates. All rights reserved."
             VALUE "OriginalFilename", "openh264.dll"
             VALUE "ProductName", "Cisco OpenH264 codec"
-            VALUE "ProductVersion", "1.4.1.0"
+            VALUE "ProductVersion", "1.5.0.0"
         END
     END
     BLOCK "VarFileInfo"
--- a/test/api/encode_decode_api_test.cpp
+++ b/test/api/encode_decode_api_test.cpp
@@ -204,7 +204,7 @@
     if (0 == iCheckTypeIndex)
       ASSERT_TRUE (rv == cmResultSuccess);
     else if (1 == iCheckTypeIndex)
-      ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
+      ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnknownReason);
   }
 
   void EncDecOneFrame (const int iWidth, const int iHeight, const int iFrame, FILE* pfEnc) {
@@ -990,7 +990,7 @@
     if (m_LTR_Recover_Request.uiFeedbackType == IDR_RECOVERY_REQUEST) {
       ASSERT_TRUE (info.eFrameType == videoFrameTypeIDR);
     }
-    ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
+    ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnknownReason);
     m_LTR_Recover_Request.uiFeedbackType = LTR_RECOVERY_REQUEST;
     m_LTR_Recover_Request.iCurrentFrameNum = rand() % 2 == 1 ? -rand() % 10000 : rand() % 10000;
     m_LTR_Recover_Request.uiIDRPicId = rand() % 2 == 1 ? -rand() % 10000 : rand() % 10000;
@@ -2277,7 +2277,7 @@
     memset (buf_.data(), iRandValue, (frameSize >> 2));
     memset (buf_.data() + (frameSize >> 2), rand() % 256, (frameSize - (frameSize >> 2)));
     int rv = encoder_->EncodeFrame (&EncPic, &info);
-    ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
+    ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnknownReason);
   }
  protected:
   unsigned char* ucBuf_;
@@ -2562,7 +2562,7 @@
       ASSERT_TRUE (iSize == iFrameSize);
     }
     int rv = encoder_->EncodeFrame (&EncPic, &info);
-    ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason);
+    ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnknownReason);
   }
 
   void prepareParam (int iLayerNum, int iSliceNum, int width, int height, float framerate, SEncParamExt* pParam) {
@@ -3505,7 +3505,7 @@
     if (0 == iCheckTypeIndex)
       ASSERT_TRUE (rv == cmResultSuccess) << "rv=" << rv;
     else if (1 == iCheckTypeIndex)
-      ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnkonwReason) << "rv=" << rv;
+      ASSERT_TRUE (rv == cmResultSuccess || rv == cmUnknownReason) << "rv=" << rv;
   }
 };