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;
}
};