Media (Intel® oneAPI Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools from Intel. This includes Intel® oneAPI Video Processing Library and Intel® Media SDK.

Intel Media SDK and openCL filter

shashwat_D_
Beginner
184 Views

Hi,

I've developed a pipeline as shown below:

HEVC Decoder -->  YUV1  -->  openCL Filter  -->  YUV2  -->  HEVC Encoder

Here openCL Filter is not a plugin for QSV, its a separate module. YUV1 and YUV2 frames reside in DX surface.

For openCL filter, if I don't memcpy the frame surface and pass the same surface pointer to the openCL Filter, the output YUV2 gets corrupted. Whereas if i memcpy the YUV1 surface to a unsigned char buffer then apply filter and again memcpy back the result to YUV2 surface the application works but performance is degraded drastically.

Can someone please clarify:

1. Why passing the pointer YUV1->data.y to openCL Filter doesn't work?

2. Is there any work around to remove memcpys?

P.S.: The application is developed in C.

Thnks

Shashwat

0 Kudos
2 Replies
Robert_I_Intel
Employee
184 Views

Shashwat,

Could you please take a look at this tutorial https://software.intel.com/en-us/articles/sharing-surfaces-between-opencl-and-directx-11-on-intel-processor-graphics and make sure that you apply all the recommendations there.

shashwat_D_
Beginner
184 Views

Thanks robert for the link. 

Reply