On 2018-04-30 08:20, Daniel Oberhoff wrote:
On 30. Apr 2018, at 15:52, Daniel Oberhoff <danieloberh...@googlemail.com> wrote:

Hello All,

I am fighting since a few days to get the frames from the cuvid decoder using the cuda pixel format transfered to opengl.

What i have done is create textures on gl using glGenTextures and glTexStorage2D. The actual format is NV12 in my case, and i properly allocate two planes with the first one being full size, 1bpp, and the second size halve size (in both dimensions) and 2bpp. The transfer is done with cuGraphicsMapResources, cuGraphicsSubResourceGetMappedArray, cuMemcpy2DAsync, cuGraphicsUnmapResources, running on an allocated stream, followed by cuStreamSynchronize. But when i draw this (i have a yuv aware shader) i am missing all the red information, as if the v channel where 0 everywhere.

Has anyone succeeded in this before? It seems like someone at least has interest in this, given that the needed functions appeared in nv_codec_headers recently.

Ok

So i found i had a very stupid mistake where the code later assumed
triplanar pixel format. Sorry for spamming, works like a charm :).


I'm glad it worked, but to answer your question - I added cuda-gl interop to mpv and the headers were added when I moved mpv to use nv-codec-headers instead of having its own separate loader.

You can look at mpv for a working example, if you still want one.

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

Reply via email to