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 | 417 | return ENC_RETURN_UNSUPPORTED_PARA; |
| 418 | 418 | } |
| 419 | 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 | 421 | pSpatialLayer->sSliceArgument.uiSliceMode, pCodingParam->uiMaxNalSize); |
| 422 | − return ENC_RETURN_UNSUPPORTED_PARA; | |
| 423 | 422 | } |
| 424 | 423 | CheckProfileSetting (pLogCtx, pCodingParam, i, pSpatialLayer->uiProfileIdc); |
| 425 | 424 | CheckLevelSetting (pLogCtx, pCodingParam, i, pSpatialLayer->uiLevelIdc); |
| @@ -565,21 +564,22 @@ int32_t ParamValidationExt (SLogContext* pLogCtx, SWelsSvcCodingParam* pCodingPa · 139 unmodified lines | ||
| 565 | 564 | return ENC_RETURN_UNSUPPORTED_PARA; |
| 566 | 565 | } |
| 567 | 566 | |
| 568 | − if (pCodingParam->uiMaxNalSize < (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)) { | |
| 569 | − WelsLog (pLogCtx, WELS_LOG_ERROR, | |
| 570 | − "ParamValidationExt(), invalid uiMaxNalSize (%d) settings! should be larger than (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)(%d)", | |
| 571 | − pCodingParam->uiMaxNalSize, (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)); | |
| 572 | − return ENC_RETURN_UNSUPPORTED_PARA; | |
| 573 | − } | |
| 567 | + if (pCodingParam->uiMaxNalSize > 0) { | |
| 568 | + if (pCodingParam->uiMaxNalSize < (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)) { | |
| 569 | + WelsLog (pLogCtx, WELS_LOG_ERROR, | |
| 570 | + "ParamValidationExt(), invalid uiMaxNalSize (%d) settings! should be larger than (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)(%d)", | |
| 571 | + pCodingParam->uiMaxNalSize, (NAL_HEADER_ADD_0X30BYTES + MAX_MACROBLOCK_SIZE_IN_BYTE)); | |
| 572 | + return ENC_RETURN_UNSUPPORTED_PARA; | |
| 573 | + } | |
| 574 | 574 | |
| 575 | − if (pSpatialLayer->sSliceArgument.uiSliceSizeConstraint > (pCodingParam->uiMaxNalSize - | |
| 575 | + if (pSpatialLayer->sSliceArgument.uiSliceSizeConstraint > (pCodingParam->uiMaxNalSize - | |
| 576 | 576 | NAL_HEADER_ADD_0X30BYTES)) { |
| 577 | − WelsLog (pLogCtx, WELS_LOG_WARNING, | |
| 577 | + WelsLog (pLogCtx, WELS_LOG_WARNING, | |
| 578 | 578 | "ParamValidationExt(), slice mode = SM_SIZELIMITED_SLICE, uiSliceSizeConstraint = %d ,uiMaxNalsize = %d, will take uiMaxNalsize!", |
| 579 | 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 | 584 | break; |
| 585 | 585 | default: { |