[FFmpeg-devel] [PATCH] (for discussion): ffmpeg_filter: initialize cuvid for filter_complex

Hendrik Leppkes h.leppkes at gmail.com
Tue Feb 14 07:51:25 EET 2017


On Mon, Feb 13, 2017 at 11:00 PM, Timo Rothenpieler
<timo at rothenpieler.org> wrote:
>> It is problem in NVENC.
>>
>> You create first frame before initialization of NVENC in CUVID, so this
>> first frame is not accesible to NVENC until
>> dl_fn->cuda_dl->cuCtxPushCurrent(ctx->cu_context) is called in NVENC.
>>
>> This trivial patch should fix your problem.
>>
>> M.
>
> Very interesting. I don't think this patch is the proper fix though.
> There never should be an active cuda context when returning from a
> function, at least that's the premise under which I wrote all cuda
> related functions so far.
>
> This must mean that before, cuvid or something else must somehow have
> leaked a bound cuda context to nvenc. So that might need fixing as well.
>

Indeed having an implicit context active would be rather fragile, so
best would be to revisit both cuvid and nvenc and make sure contexts
are explicitly pushed and poped wherever needed - but I assume thats
what you have planned to do now already. ;)

This reminds me of this patch from Libav which landed a couple weeks ago:
https://git.libav.org/?p=libav.git;a=commitdiff;h=fb59f87ce72035b940c3f5045884098b9324e1b2

Its hardly complete and only handling it in one place, but its
probably fixing a similar issue.

- Hendrik


More information about the ffmpeg-devel mailing list