Showing the changes to codec/decoder/plus/src (1 of 2 files). Show all
Unified · Split
| @@ -458,7 +458,10 @@ DECODING_STATE CWelsDecoder::DecodeFrame2 (const unsigned char* kpSrc, · 457 unmodified lines | ||
| 458 | 458 | return dsInvalidArgument; |
| 459 | 459 | } |
| 460 | 460 | if (CheckBsBuffer (m_pDecContext, kiSrcLen)) { |
| 461 | − return dsOutOfMemory; | |
| 461 | + if (ResetDecoder()) | |
| 462 | + return dsOutOfMemory; | |
| 463 | + | |
| 464 | + return dsErrorFree; | |
| 462 | 465 | } |
| 463 | 466 | if (kiSrcLen > 0 && kpSrc != NULL) { |
| 464 | 467 | #ifdef OUTPUT_BIT_STREAM |
| @@ -513,6 +516,8 @@ DECODING_STATE CWelsDecoder::DecodeFrame2 (const unsigned char* kpSrc, · 48 unmodified lines | ||
| 513 | 516 | if (m_pDecContext->iErrorCode & dsOutOfMemory) { |
| 514 | 517 | if (ResetDecoder()) |
| 515 | 518 | return dsOutOfMemory; |
| 519 | + | |
| 520 | + return dsErrorFree; | |
| 516 | 521 | } |
| 517 | 522 | //for AVC bitstream (excluding AVC with temporal scalability, including TP), as long as error occur, SHOULD notify upper layer key frame loss. |
| 518 | 523 | if ((IS_PARAM_SETS_NALS (eNalType) || NAL_UNIT_CODED_SLICE_IDR == eNalType) || |
| @@ -611,7 +616,10 @@ DECODING_STATE CWelsDecoder::DecodeParser (const unsigned char* kpSrc, · 92 unmodified lines | ||
| 611 | 616 | return dsInvalidArgument; |
| 612 | 617 | } |
| 613 | 618 | if (CheckBsBuffer (m_pDecContext, kiSrcLen)) { |
| 614 | − return dsOutOfMemory; | |
| 619 | + if (ResetDecoder()) | |
| 620 | + return dsOutOfMemory; | |
| 621 | + | |
| 622 | + return dsErrorFree; | |
| 615 | 623 | } |
| 616 | 624 | if (kiSrcLen > 0 && kpSrc != NULL) { |
| 617 | 625 | #ifdef OUTPUT_BITSTREAM |