Hello ,
after this patch I get stutter in the output video when using h264_cuvid as decoder

With "surfaces" as -1 will result :
CUVIDPARSERPARAMS::ulMaxNumDecodeSurfaces = 5 = CUVID_DEFAULT_NUM_SURFACES CUVIDDECODECREATEINFO::ulNumDecodeSurfaces = 8 = format->min_num_decode_surfaces + 3

As per NVDEC Video Decoder API Programming Guide / Creating a parser , the two values should be equal.

cuvid_handle_video_sequence/pfnSequenceCallback should return a value :
">1: succeeded, and driver should override CUVIDPARSERPARAMS::ulMaxNumDecodeSurfaces with this return value"

Something like:
if(ctx->cuparseinfo.ulMaxNumDecodeSurfaces != cuinfo.ulNumDecodeSurfaces)
        return cuinfo.ulNumDecodeSurfaces;
    else
        return 1;

This solves partially the problem , there's still occasional stutter , a value of 8 is not sufficient.
On my test system 12 is the magic number.

Timo Rothenpieler wrote:
applied with minor amendments.

Turned the if-statements around, we don't do them that way around in ffmpeg code. And switched the surfaces option to have a default of -1, to not rely on a magic value of 25. That could surprise users who happen to request 25 surfaces.

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to