From 2f836fc787bfa1852494496f5f1c5f184bb065c1 Mon Sep 17 00:00:00 2001 From: Sijia Chen Date: Mon, 12 Oct 2015 21:42:26 -0700 Subject: [PATCH 1/3] add release notes for 1.5 --- RELEASES | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/RELEASES b/RELEASES index 893c6b2e..6d94b423 100644 --- 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 From 9d25161f40c3759e04a0d3c35ff990d53320135a Mon Sep 17 00:00:00 2001 From: Sijia Chen Date: Mon, 12 Oct 2015 16:59:16 -0700 Subject: [PATCH 2/3] add version updates after 1.5 release --- Makefile | 4 ++-- codec/api/svc/codec_ver.h | 8 ++++---- gmpopenh264.info | 2 +- openh264.rc | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 44d73f4b..372a63f1 100644 --- a/Makefile +++ b/Makefile @@ -33,8 +33,8 @@ GMP_API_BRANCH=Firefox39 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 diff --git a/codec/api/svc/codec_ver.h b/codec/api/svc/codec_ver.h index 2943b596..c200bd68 100644 --- 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 diff --git a/gmpopenh264.info b/gmpopenh264.info index 5493eb1c..9669e1ff 100644 --- 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] diff --git a/openh264.rc b/openh264.rc index f19f312b..c8fc2fe6 100644 --- a/openh264.rc +++ b/openh264.rc @@ -24,8 +24,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // 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 @@ BEGIN 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" From 6ca397e7588db5a828e602dafb655b05c73c1729 Mon Sep 17 00:00:00 2001 From: Sijia Chen Date: Thu, 8 Oct 2015 12:23:32 -0700 Subject: [PATCH 3/3] correct a typo along with the in-plan v1.5 release --- codec/api/svc/codec_def.h | 2 +- codec/encoder/plus/src/welsEncoderExt.cpp | 2 +- test/api/encode_decode_api_test.cpp | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/codec/api/svc/codec_def.h b/codec/api/svc/codec_def.h index 0eedc2a4..4f7eb9d8 100644 --- a/codec/api/svc/codec_def.h +++ b/codec/api/svc/codec_def.h @@ -80,7 +80,7 @@ typedef enum { typedef enum { cmResultSuccess, ///< successful cmInitParaError, ///< parameters are invalid - cmUnkonwReason, + cmUnknownReason, cmMallocMemeError, ///< malloc a memory error cmInitExpected, ///< initial action is expected cmUnsupportedData diff --git a/codec/encoder/plus/src/welsEncoderExt.cpp b/codec/encoder/plus/src/welsEncoderExt.cpp index aedf04cc..c48f40e1 100644 --- a/codec/encoder/plus/src/welsEncoderExt.cpp +++ b/codec/encoder/plus/src/welsEncoderExt.cpp @@ -408,7 +408,7 @@ int CWelsH264SVCEncoder ::EncodeFrameInternal (const SSourcePicture* pSrcPic, S } 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); diff --git a/test/api/encode_decode_api_test.cpp b/test/api/encode_decode_api_test.cpp index 6cb1c5c1..73c6a8c8 100644 --- a/test/api/encode_decode_api_test.cpp +++ b/test/api/encode_decode_api_test.cpp @@ -204,7 +204,7 @@ class EncodeDecodeTestAPIBase : public EncodeDecodeTestBase { 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 @@ TEST_P (EncodeDecodeTestAPI, GetOptionLTR_ALLLTR) { 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 @@ class DecodeCrashTestAPI : public ::testing::TestWithParam> 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 @@ class DecodeParseAPI : public ::testing::TestWithParamEncodeFrame (&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 @@ class EncodeTestAPI : public ::testing::TestWithParam, public 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; } };