Showing the changes to codec/decoder (2 of 2 files). Show all
Unified · Split
| @@ -0,0 +1,18 @@ | |||
| 1 | typedef struct H264Aux H264Aux; | ||
| 2 | |||
| 3 | struct H264Aux { | ||
| 4 | SPictReoderingStatus; | ||
| 5 | SPictInfo pics[16]; | ||
| 6 | |||
| 7 | SWelsDecoderContext ctx; | ||
| 8 | SLogContext logctx; | ||
| 9 | SBufferInfo info; | ||
| 10 | SWelsLastDecPicInfo pic; | ||
| 11 | SVlcTable vlctbl; | ||
| 12 | SDecoderStatistics stat; | ||
| 13 | uint8_t *data[3]; | ||
| 14 | }; | ||
| 15 | |||
| 16 | int h264decode(H264Aux *a, u8int *buf, int sz, uvlong *timestamp); | ||
| 17 | void h264flush(H264Aux *a); | ||
| 18 | char *h264err2s(int err); | ||
| @@ -404,7 +404,7 @@ void CreateImplicitWeightTable (PWelsDecoderContext pCtx) { · 403 unmodified lines | |||
| 404 | //fix Bugzilla 1485229 check if pointers are NULL | 404 | //fix Bugzilla 1485229 check if pointers are NULL |
| 405 | if (pCtx->sRefPic.pRefList[LIST_0][0] && pCtx->sRefPic.pRefList[LIST_1][0]) { | 405 | if (pCtx->sRefPic.pRefList[LIST_0][0] && pCtx->sRefPic.pRefList[LIST_1][0]) { |
| 406 | if (pSliceHeader->uiRefCount[0] == 1 && pSliceHeader->uiRefCount[1] == 1 | 406 | if (pSliceHeader->uiRefCount[0] == 1 && pSliceHeader->uiRefCount[1] == 1 |
| 407 | && int64_t(pCtx->sRefPic.pRefList[LIST_0][0]->iFramePoc) + int64_t(pCtx->sRefPic.pRefList[LIST_1][0]->iFramePoc) == 2 * int64_t(iPoc)) { | 407 | && (int64_t)(pCtx->sRefPic.pRefList[LIST_0][0]->iFramePoc) + (int64_t)(pCtx->sRefPic.pRefList[LIST_1][0]->iFramePoc) == 2 * (int64_t)(iPoc)) { |
| 408 | pCurDqLayer->bUseWeightedBiPredIdc = false; | 408 | pCurDqLayer->bUseWeightedBiPredIdc = false; |
| 409 | return; | 409 | return; |
| 410 | } | 410 | } |