History

fix Bug-1479669 and Bug-1479831 in Bugizllia. When key colocated Ref Picture is lost or does not exist. B-Slice decoding has to be stoped.

xiaotiansf committed 8 years ago

Commit 55c15431 parent ae7bac24 files · +62 −21Browse files

Showing the changes to codec/decoder/core/src/decode_slice.cpp (1 of 4 files). Show all

Unified · Split

codec/decoder/core/src/decode_slice.cpp+11−2
@@ -1415,16 +1415,25 @@ int32_t WelsDecodeMbCabacBSlice (PWelsDecoderContext pCtx, PNalUnit pNalCur, uin · 1414 unmodified lines
14151415 pCtx->bMbRefConcealed = pCtx->bRPLRError || pCtx->bMbRefConcealed || ! (ppRefPicL0[0] && ppRefPicL0[0]->bIsComplete)
14161416 || ! (ppRefPicL1[0] && ppRefPicL1[0]->bIsComplete);
14171417
1418+
14181419 if (pSliceHeader->iDirectSpatialMvPredFlag) {
14191420
14201421 //predict direct spatial mv
1421− PredMvBDirectSpatial (pCtx, pMv, ref);
1422+ SubMbType subMbType;
1423+ int32_t ret = PredMvBDirectSpatial (pCtx, pMv, ref, subMbType);
1424+ if (ret != ERR_NONE) {
1425+ return ret;
1426+ }
14221427 } else {
14231428 //temporal direct mode
14241429 ComputeColocated (pCtx);
1425− PredBDirectTemporal (pCtx, pMv, ref);
1430+ int32_t ret = PredBDirectTemporal (pCtx, pMv, ref);
1431+ if (ret != ERR_NONE) {
1432+ return ret;
1433+ }
14261434 }
14271435
1436+
14281437 //reset rS
14291438 pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp; //??????????????? dqaunt of previous mb
14301439 for (i = 0; i < 2; i++) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t