shithub: openh264

Download patch

ref: 4eb2db4be113ec2c3b6b52b7cdad9c8863729438
parent: 1cf8b7ada9e2ac9506d6e8d953f1d389a05b1d2e
parent: 0fefca2d859c2fc056a49917538c7850057cc22e
author: huili2 <[email protected]>
date: Fri Feb 1 04:49:28 EST 2019

Merge pull request #3091 from xiaotiansf/NewBugzilla

Additional fix for Bugzilla reported bug-1522172. Do not try to contin…

--- a/codec/decoder/core/src/decode_slice.cpp
+++ b/codec/decoder/core/src/decode_slice.cpp
@@ -2371,6 +2371,12 @@
     memset (pCurLayer->pRefIndex[LIST_1][iMbXy], 0, sizeof (int8_t) * 16);
     pCtx->bMbRefConcealed = pCtx->bRPLRError || pCtx->bMbRefConcealed || ! (ppRefPicL0[0] && ppRefPicL0[0]->bIsComplete)
                             || ! (ppRefPicL1[0] && ppRefPicL1[0]->bIsComplete);
+
+    if (pCtx->bMbRefConcealed) {
+      SLogContext* pLogCtx = & (pCtx->sLogCtx);
+      WelsLog (pLogCtx, WELS_LOG_ERROR, "Ref Picture for B-Slice is lost, B-Slice decoding cannot be continued!");
+      return GENERATE_ERROR_NO (ERR_LEVEL_SLICE_DATA, ERR_INFO_REFERENCE_PIC_LOST);
+    }
     //predict iMv
     SubMbType subMbType;
     if (pSliceHeader->iDirectSpatialMvPredFlag) {