[FFmpeg-devel] [FFmpeg-cvslog] avcodec/nvenc: Enable recovery point SEI for intra refresh mode

Martin Storsjö martin at martin.st
Tue Feb 4 15:23:04 EET 2025


On Tue, 4 Feb 2025, Timo Rothenpieler wrote:

> On 04/02/2025 13:25, Martin Storsjö wrote:
>> On Mon, 3 Feb 2025, Zhao Zhili wrote:
>> 
>>> ffmpeg | branch: master | Zhao Zhili <zhilizhao at tencent.com> | Thu Jan 23 
>>> 22:17:29 2025 +0800| [1438f6997db70945173f01aea1768e3b27ce2679] | 
>>> committer: Zhao Zhili
>>> 
>>> avcodec/nvenc: Enable recovery point SEI for intra refresh mode
>>> 
>>> Otherwise all frames can be dropped after seek without the
>>> output_corrupt/showall flags.
>>> 
>>> Signed-off-by: Zhao Zhili <zhilizhao at tencent.com>
>>> Reviewed-by: Timo Rothenpieler <timo at rothenpieler.org>
>>> 
>>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/? 
>>>> a=commit;h=1438f6997db70945173f01aea1768e3b27ce2679
>>> ---
>>> 
>>> libavcodec/nvenc.c | 2 ++
>>> 1 file changed, 2 insertions(+)
>>> 
>>> diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
>>> index c52e47734e..c359c2bc8a 100644
>>> --- a/libavcodec/nvenc.c
>>> +++ b/libavcodec/nvenc.c
>>> @@ -1281,6 +1281,7 @@ static av_cold int 
>>> nvenc_setup_h264_config(AVCodecContext *avctx)
>>>         h264->intraRefreshPeriod = cc->gopLength;
>>>         h264->intraRefreshCnt = cc->gopLength - 1;
>>>         cc->gopLength = NVENC_INFINITE_GOPLENGTH;
>>> +        h264->outputRecoveryPointSEI = 1;
>> 
>> This change breaks building with older versions of nv-codec-headers 
>> installed.
>
> Even the 8.1 SDK has this, which is the oldest version still supported by 
> FFmpeg:
> https://github.com/FFmpeg/nv-codec-headers/blob/sdk/8.1/include/ffnvcodec/nvEncodeAPI.h#L1279

Sorry, I quoted the wrong part of the patch.

The case in NV_ENC_CONFIG_H264 does indeed exist in older SDKs, but the 
one in NV_ENC_CONFIG_HEVC doesn't seem to exist in 8.1, or in 11.1 either.

// Martin


More information about the ffmpeg-devel mailing list