Showing the changes to codec/decoder/core/src/au_parser.cpp (1 of 2 files). Show all
Unified · Split
| @@ -1516,11 +1516,18 @@ int32_t ParseVui (PWelsDecoderContext pCtx, PSps pSps, PBitStringAux pBsAux) { · 1515 unmodified lines | ||
| 1516 | 1516 | WELS_READ_VERIFY (BsGetOneBit (pBsAux, &uiCode)); //timing_info_present_flag |
| 1517 | 1517 | pVui->bTimingInfoPresentFlag = !!uiCode; |
| 1518 | 1518 | if (pVui->bTimingInfoPresentFlag) { |
| 1519 | − WELS_READ_VERIFY (BsGetBits (pBsAux, 32, &uiCode)); //num_units_in_tick | |
| 1520 | − pVui->uiNumUnitsInTick = uiCode; | |
| 1519 | + uint32_t uiTmp = 0; | |
| 1520 | + WELS_READ_VERIFY (BsGetBits (pBsAux, 16, &uiCode)); //num_units_in_tick | |
| 1521 | + uiTmp = (uiCode << 16); | |
| 1522 | + WELS_READ_VERIFY (BsGetBits (pBsAux, 16, &uiCode)); //num_units_in_tick | |
| 1523 | + uiTmp |= uiCode; | |
| 1524 | + pVui->uiNumUnitsInTick = uiTmp; | |
| 1521 | 1525 | WELS_CHECK_SE_LOWER_WARNING (pVui->uiNumUnitsInTick, 1, "num_units_in_tick"); |
| 1522 | − WELS_READ_VERIFY (BsGetBits (pBsAux, 32, &uiCode)); //time_scale | |
| 1523 | − pVui->uiTimeScale = uiCode; | |
| 1526 | + WELS_READ_VERIFY (BsGetBits (pBsAux, 16, &uiCode)); //time_scale | |
| 1527 | + uiTmp = (uiCode << 16); | |
| 1528 | + WELS_READ_VERIFY (BsGetBits (pBsAux, 16, &uiCode)); //time_scale | |
| 1529 | + uiTmp |= uiCode; | |
| 1530 | + pVui->uiTimeScale = uiTmp; | |
| 1524 | 1531 | WELS_READ_VERIFY (BsGetOneBit (pBsAux, &uiCode)); //fixed_frame_rate_flag |
| 1525 | 1532 | pVui->bFixedFrameRateFlag = !!uiCode; |
| 1526 | 1533 | } |