[Libav-user] How to use an existing CUDA context for decoding
joep
joep at groovytunes.nl
Wed May 23 09:24:59 EEST 2018
Hello,
I am trying to create a program that does the following:
1. decode frames with cuvid
2. run CUDA kernels on the decoded frames
3. encode result with nvenc
In order to do step 2, I need the CUDA kernels to access the decoded frame which should be stored in the GPU memory.
For this I think I need to provide the CUDA CUcontext to ffmpeg and give the pointer to the decoded frame to the kernel.
I could not find any documentation about this topic.
In the ffmpeg docs I see the AVCodecContext has hw_device_ctx which is a AVHWDeviceContext.
AVHWDeviceContext has a hwctx field which can be a AVCUDADeviceContext.
AVCUDADeviceContext has a cuda_ctx field which is a CUcontext.
So I think I need to create a AVHWDeviceContext and set it on the AVCodecContext before calling avcodec_open2.
Are my assumptions right?
And how can I create a AVHWDeviceContext with the correct hwctx?
Thanks,
Joep
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20180523/ac70bc94/attachment.html>
More information about the Libav-user
mailing list