This is my first post here, so if there is anything wrong with the post, please let me know:)
I'm trying to use msdk video memory implementation for decoding h264 and getting output as RGB using d3d11.
I'm able to decode h264 into nv12 and then use vpp to convert frames to RGB via system memory vpp output. Process is as follows:
h264 in system memory -> mfx -> nv12 in d3d11 video memory ->
vpp -> system memory -> app
I want to use video memory for both processes above but I'm not able to get vp-processed RGB data from video memory successfully. I used samples so far but none of them have any information about getting RGB output from video memory surfaces.
Currently my vppparames io pattern is as follows:
VPPParams.IOPattern = MFX_IOPATTERN_IN_VIDEO_MEMORY | MFX_IOPATTERN_OUT_SYSTEM_MEMORY;
I'm able to get RGB output using above(with some artifacts but that's another subject). I want to use vpp with:
VPPParams.IOPattern = MFX_IOPATTERN_IN_VIDEO_MEMORY | MFX_IOPATTERN_OUT_VIDEO_MEMORY;
In summary, is it possible to get RGB output from video memory allocated using MFX_IOPATTERN_OUT_VIDEO_MEMORY. If so how?
Sorry for the late response and I think you might refer to our sample code which was designed for demo and validation purpose.
I recommend to check our tutorial code which is a simple code to isolate each feature around the programming model:
You might look at this code first to see if it answers your question:
Let me know if you have any questions.
Thanks for the help, much appreciated!
The sample you provided, "simple_vpp_vmem.cpp", is about resize+denoise but not color conversion nv12->rgb. I was able to do color conversion though, if anyone interested, I'd be happy to provide more information.