Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

How to Copy YUY2 for VPP

BobbyS
Novice
1,528 Views

Hello,

 

I am trying to use VPP to convert YUY2 data in system memory into RGB data in video memory.

 

I have most things setup, however I cannot get the YUY2 data moved from the system memory into the input mfxFrameSurface1, so it can be processed by MFXVideoVPP_RunFrameVPPAsync.

I have tried using both In System Memory and In Video Memory flags (and correspondingly tried to set YUV pointers, or memId reference).  However I cannot get either to work.  Any suggestions on how to copy the YUY2 data into video memory for processing?

 

Thanks,
Bobby

0 Kudos
6 Replies
RahulU_Intel
Moderator
1,514 Views

Hi,


Thank you for posting in Intel Communities. We are trying to reproduce your issue from our end. We will get back to you soon with an update.


Regards,

Rahul


0 Kudos
Kevin_O_Intel1
Employee
1,494 Views

That is a supported converstion

Which OS you are using? Which platform?

Can you share the command you used?

Thanks

0 Kudos
BobbyS
Novice
1,486 Views

Kevin,

 

Windows 10 operating system, using the Intel Media SDK.

 

There is quite a bit of code around the entire process.  We basically have a decoding workflow working in which we take a mfxBitstream, then use MFXVideoDECODE_DecodeFrameAsync, which gives us an mfxFrameSurface1, which we can feed to the MFXVideoVPP_RunFrameVPPAsync for processing.  This works for videos that need decoded.

In this case we have raw video YUY2 that does not need decoded.  So how do we get mfxBitstream data (from system memory) into an mfxFrameSurface1 that we can send through MFXVideoVPP_RunFrameVPPAsync?

We would like the resulting output from the VPP process to be in video memory, and run the process on the GPU through hardware acceleration.  In the documentation this pretty well relates to the 

find_unlocked_surface_and_fill_content

function in the pseudo code in the documentation here: https://spec.oneapi.io/versions/1.0-rev-3/elements/oneVPL/source/programming_guide/VPL_prg_vpp.html#vid-process-procedure

Thanks,
Bobby

0 Kudos
Kevin_O_Intel1
Employee
1,425 Views

This should be a reported feature... I will forward your pseudo code to the dev team to see if they have any additional insights.


0 Kudos
Kevin_O_Intel1
Employee
1,325 Views

I’ve confirmed that VPL VPP can support YUY2 input.

 

This test case is reading YUY2 file, copy YUY2 from system memory to video memory, then call MFXVideoVPP_RunFrameVPPAsync, and output the output to a file.

 

I think the key thing is if the surface is lockable or not? If it can be lockable, it should work


0 Kudos
AthiraM_Intel
Moderator
950 Views

Hi,


We have not heard back from you. This thread will no longer be monitored by Intel. If you need further assistance, please post a new question.


Thanks.


0 Kudos
Reply