fix 961370 -- review request #50
Showing the changes to codec/decoder/core/src/au_parser.cpp (1 of 1 file). Show all
Unified · Split
| @@ -206,6 +206,16 @@ uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeade · 205 unmodified lines | ||
| 206 | 206 | pCurNal = &pCtx->sPrefixNal; |
| 207 | 207 | |
| 208 | 208 | if (iNalSize < NAL_UNIT_HEADER_EXT_SIZE) { |
| 209 | + pCtx->iErrorCode |= dsBitstreamError; | |
| 210 | + | |
| 211 | + PAccessUnit pCurAu = pCtx->pAccessUnitList; | |
| 212 | + uint32_t uiAvailNalNum = pCurAu->uiAvailUnitsNum; | |
| 213 | + ForceClearCurrentNal (pCurAu); | |
| 214 | + | |
| 215 | + if (uiAvailNalNum > 1) { | |
| 216 | + pCurAu->uiEndPos = uiAvailNalNum - 2; | |
| 217 | + pCtx->bAuReadyFlag = true; | |
| 218 | + } | |
| 209 | 219 | return NULL; |
| 210 | 220 | } |
| 211 | 221 | |
| @@ -250,6 +260,14 @@ uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeade · 38 unmodified lines | ||
| 250 | 260 | |
| 251 | 261 | if (pNalUnitHeader->eNalUnitType == NAL_UNIT_CODED_SLICE_EXT) { |
| 252 | 262 | if (iNalSize < NAL_UNIT_HEADER_EXT_SIZE) { |
| 263 | + pCtx->iErrorCode |= dsBitstreamError; | |
| 264 | + | |
| 265 | + ForceClearCurrentNal (pCurAu); | |
| 266 | + | |
| 267 | + if (uiAvailNalNum > 1) { | |
| 268 | + pCurAu->uiEndPos = uiAvailNalNum - 2; | |
| 269 | + pCtx->bAuReadyFlag = true; | |
| 270 | + } | |
| 253 | 271 | return NULL; |
| 254 | 272 | } |
| 255 | 273 | |