Merge pull request #1812 from huili2/cropping_error
return error for cropping data error
This commit is contained in:
@@ -104,6 +104,7 @@ ERR_INFO_INVALID_POC_TYPE,
|
|||||||
ERR_INFO_INVALID_MB_SIZE_INFO,
|
ERR_INFO_INVALID_MB_SIZE_INFO,
|
||||||
ERR_INFO_REF_COUNT_OVERFLOW,
|
ERR_INFO_REF_COUNT_OVERFLOW,
|
||||||
ERR_INFO_CROPPING_NO_SUPPORTED,
|
ERR_INFO_CROPPING_NO_SUPPORTED,
|
||||||
|
ERR_INFO_INVALID_CROPPING_DATA,
|
||||||
ERR_INFO_INVALID_SLICEGROUP,
|
ERR_INFO_INVALID_SLICEGROUP,
|
||||||
ERR_INFO_INVALID_SLICEGROUP_MAP_TYPE,
|
ERR_INFO_INVALID_SLICEGROUP_MAP_TYPE,
|
||||||
ERR_INFO_INVALID_FRAME_NUM,
|
ERR_INFO_INVALID_FRAME_NUM,
|
||||||
|
|||||||
@@ -1081,14 +1081,16 @@ int32_t ParseSps (PWelsDecoderContext pCtx, PBitStringAux pBsAux, int32_t* pPicW
|
|||||||
WELS_READ_VERIFY (BsGetUe (pBs, &uiCode)); //frame_crop_right_offset
|
WELS_READ_VERIFY (BsGetUe (pBs, &uiCode)); //frame_crop_right_offset
|
||||||
pSps->sFrameCrop.iRightOffset = uiCode;
|
pSps->sFrameCrop.iRightOffset = uiCode;
|
||||||
if ((pSps->sFrameCrop.iLeftOffset + pSps->sFrameCrop.iRightOffset) > ((int32_t)pSps->iMbWidth * 16 / 2)) {
|
if ((pSps->sFrameCrop.iLeftOffset + pSps->sFrameCrop.iRightOffset) > ((int32_t)pSps->iMbWidth * 16 / 2)) {
|
||||||
WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING, "frame_crop_left_offset + frame_crop_right_offset exceeds limits!");
|
WelsLog (& (pCtx->sLogCtx), WELS_LOG_ERROR, "frame_crop_left_offset + frame_crop_right_offset exceeds limits!");
|
||||||
|
return GENERATE_ERROR_NO (ERR_LEVEL_PARAM_SETS, ERR_INFO_INVALID_CROPPING_DATA);
|
||||||
}
|
}
|
||||||
WELS_READ_VERIFY (BsGetUe (pBs, &uiCode)); //frame_crop_top_offset
|
WELS_READ_VERIFY (BsGetUe (pBs, &uiCode)); //frame_crop_top_offset
|
||||||
pSps->sFrameCrop.iTopOffset = uiCode;
|
pSps->sFrameCrop.iTopOffset = uiCode;
|
||||||
WELS_READ_VERIFY (BsGetUe (pBs, &uiCode)); //frame_crop_bottom_offset
|
WELS_READ_VERIFY (BsGetUe (pBs, &uiCode)); //frame_crop_bottom_offset
|
||||||
pSps->sFrameCrop.iBottomOffset = uiCode;
|
pSps->sFrameCrop.iBottomOffset = uiCode;
|
||||||
if ((pSps->sFrameCrop.iTopOffset + pSps->sFrameCrop.iBottomOffset) > ((int32_t)pSps->iMbHeight * 16 / 2)) {
|
if ((pSps->sFrameCrop.iTopOffset + pSps->sFrameCrop.iBottomOffset) > ((int32_t)pSps->iMbHeight * 16 / 2)) {
|
||||||
WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING, "frame_crop_top_offset + frame_crop_right_offset exceeds limits!");
|
WelsLog (& (pCtx->sLogCtx), WELS_LOG_ERROR, "frame_crop_top_offset + frame_crop_right_offset exceeds limits!");
|
||||||
|
return GENERATE_ERROR_NO (ERR_LEVEL_PARAM_SETS, ERR_INFO_INVALID_CROPPING_DATA);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pSps->sFrameCrop.iLeftOffset = 0; // frame_crop_left_offset
|
pSps->sFrameCrop.iLeftOffset = 0; // frame_crop_left_offset
|
||||||
|
|||||||
Reference in New Issue
Block a user