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
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.

mediasdk encoding problem on windows



I encountered some problems when using INDE Media SDK for Windows for transcoding on win7, really looking forward to get some opinions on what may gone wrong.In my application, I created 3 non-joint sessions for decoding,vpp and encoding, each of them running in different thread, they share the same allocator and video surfaces passed between one another.It worked just fine on CentOS with vaapi allocator,but on windows, a few errors occured:

1,About dx9 device create. I created a D3D9 allocator, the code is transplanted from media sample fault occured when called the D3D9 api:  m_pD3D9->lpVtbl->CreateDeviceEx  to create a deviceEx, i changed the code from creating d3d9EX handle to creating d3d9 handle, the allocator  worked. I'm thinking whether the DX9 version caused this problem or something else. I' m not familiar to directX coding, appreciate it if you can give me some clues.

2,About dx9 surface sharing. The API videoService->lpVtbl->CreateSurface(videoService, request->Info.Width, request->Info.Height, 0,  format,
        D3DPOOL_DEFAULT, as->m_surfaceUsage, target, (IDirect3DSurface9**)&dxMids.first, &dxMids.second) returned  fail with shared handle as the last parameter.when i set it to NULL, it returned S_OK.In my application, I need sharing dx9 surface with Opencl, without the sharing handle, the cl_d3d9 sharing API will fail.

3,About Encoding sync.The Decoding and VPP worked all right in the pipeline I described above, but in Encoding thread , the 1st sync_operation returned  DEVICE_FAIL, after that, it stuck in DEVICE_BUSY status.Is this relevant to the modify I made in problem 1? 

Here is the result running sys analyzer:

Intel Media SDK System Analyzer (64 bit)

The following versions of Media SDK API are supported by platform/driver:

        Version Target  Supported       Dec     Enc
        1.0     HW      Yes             X       X
        1.0     SW      Yes             X       X
        1.1     HW      Yes             X       X
        1.1     SW      Yes             X       X
        1.3     HW      Yes             X       X
        1.3     SW      Yes             X       X
        1.4     HW      Yes             X       X
        1.4     SW      Yes             X       X
        1.5     HW      Yes             X       X
        1.5     SW      Yes             X       X
        1.6     HW      Yes             X       X
        1.6     SW      Yes             X       X
        1.7     HW      Yes             X       X
        1.7     SW      Yes             X       X
        1.8     HW      Yes             X       X
        1.8     SW      Yes             X       X

Graphics Devices:
        Name                                         Version             State
        Intel(R) HD Graphics 4600                 Active

System info:
        CPU:    Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
        OS:     Microsoft Windows 7


Hope to get a reply soon, thank you!



0 Kudos
2 Replies
Hi There 1. Have you refer Intel Media Samples \sample_common\src\d3d_device.cpp to create device ? 2. About surface sharing, you can refer to Intel Media Samples \sample_plugins\rotate_opencl\src\opencl_filter_dx9.cpp. And run sample_multi_transcode.exe with OpenCL parameter for a test. 3. Because decode using VDBOX in GPU, vpp using EUs, and encode will both using VDBox and EUs. Maybe relevant to problem 1 Thanks Zachary
0 Kudos

Hi Tianruo,

Could you please clarify a few items:

- In your system config, does the system you are running the experiment have a monitor connected?

- If you changed from D3D9 to D3D11, do you still observe the same issue?

- Are you able to reproduce the error when you run multi-session transcode pipeline using our validated application sample_multi_transcode? (You can find it here for download - 

Do let me know the answers for above, we may be able to identify the issue.

0 Kudos