[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