I work with IPNC_RDK_V3.8.0
I read about the H264_Encoder_HDVICP2_UserGuide,
where I get the idea that the GDR may help with the quality of video and make the video stream stable.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I work with IPNC_RDK_V3.8.0
I read about the H264_Encoder_HDVICP2_UserGuide,
where I get the idea that the GDR may help with the quality of video and make the video stream stable.
Hi Yang Zheng,
GDR will not help you to improve the Quality of Video in every scenario. Its a feature which is more useful in Error Resiliency. It also has below silent features which may be useful in some scenarios -
Regards
Gajanan
Thanks for ur help.
I will use RTSP to transport the video stream,GDR can help with the time delay,for there is no more big frame like I Frame.
Is that right?
And I still want to know where should I call control IH264ENC_CTRL_START_GDR.
Regards
yang
Hi yang zheng,
To know how to use it please refer H.264 Encoder User Guide Appendix O. It has all the required details.
Regards
Gajanan
Hi Yang,
Looks like the parameters values dumped have some issues & dumping garbage values. To enable the GDR, you have to enable the below parameters :
Set intraCodingPreset as IH264_INTRACODING_USERDEFINED (1) and
Set intraRefreshMethod as IH264_INTRAREFRESH_GDR (4)
User can set GDR to be started at any picture during encoding session. To
start GDR, user need to set below parameter
IVIDENC2_InArgs::control = IH264ENC_CTRL_START_GDR
GDR Controlling params -
intraRefreshRate This parameter is treated/interpreted as the number of rows to be
intra refreshed per frame.
Supported values are [0, NonZero]
gdrOverlapRows This parameter is the number of rows overlap between successive
GDR frames and value should be less than intraRefreshRate.
Supported values are [0, NonZero].
For more information, please refer H.264 Encoder UserGuide Appendix O.
Regards
Gajanan
Hi Yang,
I agree that you did modified only params which you uploaded in the previous mail. But these params may depend on other params due to which Codec is reporting errors. So please reply with Extended error codes (status[].extErrorCode ) you are getting with the params . And also upload all the params which will help to rectify the wrong params.
Regards
Gajanan
Hi Yang Zheg,
yang zheng said:While the default value is like these
dynamicParams->interCodingParams.interCodingPreset =IH264_INTERCODING_HIGH_SPEED;
dynamicParams->interCodingParams.meAlgoMode =IH264ENC_MOTIONESTMODE_HIGH_SPEED;
dynamicParams->intraCodingParams.intraCodingPreset =IH264_INTRACODING_HIGH_SPEED;
These are not the default values. I think the encodingPreset value is in HighSpeed mode. Change it to User XDM_USER_DEFINED Mode.
This may resolve your problem.
Regards
Gajanan
Hi Yang,
GDR means the Gradual Decoder Refresh. So I or IDR frame is not required because the frame is refreshed in multple frame depending on the requirement.
So instead of I frame, its split into many frames.
So Forcing IDR frame is not required. If I or IDR frame is forced, then GDR will be disabled & needs to be enabled again for next frame after IDR.
Regards
Gajanan
Hi Gajanan,
I need forceIDR to dynamiclly change the resolution ,it's needed. But when I set params to GDR ,it will be an error if I call forceIDR.
If I do not set params to GDR ,it's OK to run forceIDR. So I think if forceIDR can not work when dynamic params set into GDR environment?(even I have't set inArgs->videnc2InArgs.control = IH264ENC_CTRL_START_GDR)
And I have print the extErrorCode, it's
0 , c00, 0, 4000, 0
And
Extended error 8000c000 for reqObjIndex 0.
Regards
yang
Hi Yang,
When ForceIDR is set then ""inArgs->videnc2InArgs.control != IH264ENC_CTRL_START_GDR"". I think what you are doing is correct. But looks like extErrorCode print has some issue. The values does not look correct extErrorCode. So can you recheck the values of extErrorCode??
Based on that we can take decision what is the wrong config issue.
Regards
Gajanan