[Encoder] adjust the input para judgement of iMaxNalSize
Showing the changes to codec/encoder/core/src/encoder_ext.cpp (1 of 1 file). Show all
Unified · Split
| @@ -417,9 +417,8 @@ int32_t ParamValidationExt (SLogContext* pLogCtx, SWelsSvcCodingParam* pCodingPa · 416 unmodified lines | |||
| 417 | return ENC_RETURN_UNSUPPORTED_PARA; | 417 | return ENC_RETURN_UNSUPPORTED_PARA; |
| 418 | } | 418 | } |
| 419 | if ((pCodingParam->uiMaxNalSize != 0) && (pSpatialLayer->sSliceArgument.uiSliceMode != SM_SIZELIMITED_SLICE)) { | 419 | if ((pCodingParam->uiMaxNalSize != 0) && (pSpatialLayer->sSliceArgument.uiSliceMode != SM_SIZELIMITED_SLICE)) { |
| 420 | WelsLog (pLogCtx, WELS_LOG_ERROR, "ParamValidationExt(), invalid uiSliceMode (%d) settings!,MaxNalSize = %d", | 420 | WelsLog (pLogCtx, WELS_LOG_WARNING, "ParamValidationExt(), current layer %d uiSliceMode (%d) settings may not fulfill MaxNalSize = %d", i, |
| 421 | pSpatialLayer->sSliceArgument.uiSliceMode, pCodingParam->uiMaxNalSize); | 421 | pSpatialLayer->sSliceArgument.uiSliceMode, pCodingParam->uiMaxNalSize); |
| 422 | return ENC_RETURN_UNSUPPORTED_PARA; | ||
| 423 | } | 422 | } |
| 424 | CheckProfileSetting (pLogCtx, pCodingParam, i, pSpatialLayer->uiProfileIdc); | 423 | CheckProfileSetting (pLogCtx, pCodingParam, i, pSpatialLayer->uiProfileIdc); |
| 425 | CheckLevelSetting (pLogCtx, pCodingParam, i, pSpatialLayer->uiLevelIdc); | 424 | CheckLevelSetting (pLogCtx, pCodingParam, i, pSpatialLayer->uiLevelIdc); |
| @@ -565,21 +564,22 @@ int32_t ParamValidationExt (SLogContext* pLogCtx, SWelsSvcCodingParam* pCodingPa · 139 unmodified lines | |||
| 565 | return ENC_RETURN_UNSUPPORTED_PARA; | 564 | return ENC_RETURN_UNSUPPORTED_PARA; |
| 566 | } | 565 | } |
| 567 | 566 | ||
| 568 | if (pCodingParam->uiMaxNalSize < (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)) { | 567 | if (pCodingParam->uiMaxNalSize > 0) { |
| 569 | WelsLog (pLogCtx, WELS_LOG_ERROR, | 568 | if (pCodingParam->uiMaxNalSize < (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)) { |
| 570 | "ParamValidationExt(), invalid uiMaxNalSize (%d) settings! should be larger than (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)(%d)", | 569 | WelsLog (pLogCtx, WELS_LOG_ERROR, |
| 571 | pCodingParam->uiMaxNalSize, (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)); | 570 | "ParamValidationExt(), invalid uiMaxNalSize (%d) settings! should be larger than (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)(%d)", |
| 572 | return ENC_RETURN_UNSUPPORTED_PARA; | 571 | pCodingParam->uiMaxNalSize, (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)); |
| 573 | } | 572 | return ENC_RETURN_UNSUPPORTED_PARA; |
| 573 | } | ||
| 574 | 574 | ||
| 575 | if (pSpatialLayer->sSliceArgument.uiSliceSizeConstraint > (pCodingParam->uiMaxNalSize - | 575 | if (pSpatialLayer->sSliceArgument.uiSliceSizeConstraint > (pCodingParam->uiMaxNalSize - |
| 576 | NAL_HEADER_ADD_0X30BYTES)) { | 576 | NAL_HEADER_ADD_0X30BYTES)) { |
| 577 | WelsLog (pLogCtx, WELS_LOG_WARNING, | 577 | WelsLog (pLogCtx, WELS_LOG_WARNING, |
| 578 | "ParamValidationExt(), slice mode = SM_SIZELIMITED_SLICE, uiSliceSizeConstraint = %d ,uiMaxNalsize = %d, will take uiMaxNalsize!", | 578 | "ParamValidationExt(), slice mode = SM_SIZELIMITED_SLICE, uiSliceSizeConstraint = %d ,uiMaxNalsize = %d, will take uiMaxNalsize!", |
| 579 | pSpatialLayer->sSliceArgument.uiSliceSizeConstraint, pCodingParam->uiMaxNalSize); | 579 | pSpatialLayer->sSliceArgument.uiSliceSizeConstraint, pCodingParam->uiMaxNalSize); |
| 580 | pSpatialLayer->sSliceArgument.uiSliceSizeConstraint = pCodingParam->uiMaxNalSize - NAL_HEADER_ADD_0X30BYTES; | 580 | pSpatialLayer->sSliceArgument.uiSliceSizeConstraint = pCodingParam->uiMaxNalSize - NAL_HEADER_ADD_0X30BYTES; |
| 581 | } | ||
| 581 | } | 582 | } |
| 582 | |||
| 583 | } | 583 | } |
| 584 | break; | 584 | break; |
| 585 | default: { | 585 | default: { |