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.

Using Intel Media SDK 2013 under Windows 8 Service (session 0)

Hendrik_W_
Beginner
1,337 Views

I am planning to develop a windows service(running in session 0) which will use Intel Media SDK VPP features.

In the previous version of Intel Media SDK graphics hardware acceleration is not supported in windows service session 0 due to some technical concerns of windows OS.

Windows 8 now support graphics hardware acceleration under windows service.

Could anyone confirm that Intel Media SDK 2013 have full hardware acceleration capabilities under a windows service (session 0) ?

one more question
Intel Media SDK 2013 enhanced support for DirectX 11, in the sample code I only find the decoder and encoder sample which using DirectX 11.
Is it possible to use DirectX 11 on Intel Media SDK VPP ?

Any suggestions are highly appreciated.

Many thanks,
Hendrik

0 Kudos
14 Replies
Petter_L_Intel
Employee
1,337 Views

Hi Hendrik,

Correct, Using Windows 8 developers can now utilize Media SDK 2013 in a Windows service. But note that the core requirement to enable this use case is the use of DirectX11 device and D3D11 surfaces.

The samples part of Media SDK 2013 showcase how to setup DirectX11 pipelines for some common use cases. There are also some simple samples part of the new Media SDK tutorial, showing how to utilize DirectX11 in a "headless" fashion.
http://software.intel.com/en-us/articles/intel-media-sdk-tutorial

Yes, DirectX11 works fine with with all Media SDK components, including VPP.

Regards,
Petter 

0 Kudos
Hendrik_W_
Beginner
1,337 Views

Hi Petter ,

 Thank you so much for your information.
  I will give it a try.

Regards,
Hendrik 

0 Kudos
Hendrik_W_
Beginner
1,337 Views

Hi Petter ,

I made a slightly changes of my program based on the sample code simple_4_vpp_resize_procamp - d3d provided in this tutorial (http://software.intel.com/en-us/articles/intel-media-sdk-tutorial).

My program takes input from webcam (YUY2) --> MEDIA SDK VPP --> Output(NV12)
I use the API version 1.4 and MFX_IMPL_VIA_D3D11.
Intel HD Graphics 4000 Driver version 9.17.10.2932.

My program works well under desktop mode standard application(I can see the correct output data).

When I try it under Windows service although all the VPP steps return MFX_ERR_NONE , but the output of MEDIA SDK VPP was green color(I check through the output data and found out that the value of Y , U and V channel are all zero).

So far I am sure that I fed the correct input data into MEDIA SDK VPP.

Am I missing some steps when running the MEDIA SDK VPP ?
Or is there any tools that can let me debug deeper into the program , so I can check why the output data is a green color image ?

Many thanks,
Hendrik

0 Kudos
Petter_L_Intel
Employee
1,337 Views

Hi Hendrik,

that is interesting and surprising. Could you share some more details on how you implemented the Windows service so that we can try to reproduce on our side?

Regards,
Petter 

0 Kudos
Hendrik_W_
Beginner
1,337 Views

Hi Petter , 

Sorry for the late reply..
I am not sure what really cause this problem, It could be some bug on my program..
I am kinda busy lately , so I can't provide any detail right now
I will update you or may be provide you part of my code as soon as possible.. 

Many Thanks,
Hendrik 

0 Kudos
Hendrik_W_
Beginner
1,337 Views

Hi Petter , 

To narrow down my problem and to make sure that the problem is not on my windows service, 
I decided to try the sample code simple_4_vpp_resize_procamp - d3d provided in this tutorial (http://software.intel.com/en-us/articles/intel-media-sdk-tutorial). 


I use  foreman_cif.yuv as my input data (please check the attach file but you could also download it from here http://trace.eas.asu.edu/yuv/ ;) .

I only changed the mfxU16 inputWidth = 352;  mfxU16 inputHeight = 288;  to fit my input data. 

All the VPP steps return MFX_ERR_NONE , but suprisingly the output frame was green color(the value of Y , U and V channel are all zero). 

BTW my computer only support D3D_FEATURE_LEVEL_11_0.

Any suggestion ?

Many Thanks,

Hendrik 

0 Kudos
Petter_L_Intel
Employee
1,337 Views

Hi Hendrik,

D3D_FEATURE_LEVEL_11_0 is a problem if you are trying to run DX11 pipeline using Media SDK. DX11 surface usage with Media SDK is only supported in Windows 8 (= D3D_FEATURE_LEVEL_11_1)

But from from your description is seems you are running a DX9 pipeline? If so, I'm not sure what is going on, since you are not running the workload inside a service, right?

Regards,
Petter 

0 Kudos
Hendrik_W_
Beginner
1,337 Views

Hi Petter ,

Yes, my workload is not in a service.

I am just trying to run the sample code simple_4_vpp_resize_procamp - d3d

How to make sure that I am using DX11 pipeline ?

so far I set the MFX_IMPL_VIA_D3D11 and API Version 1.6

My system running Windows 8 Pro 64 bits with Intel HD Graphics 4000 driver version 9.17.10.2932 

but after calling the D3D11CreateDevice function I checked the return Feature level is D3D_FEATURE_LEVEL_11_0.

I am wondering why my computer doesn't support D3D_FEATURE_LEVEL_11_1 ?

Thanks,

Hendrik 

0 Kudos
Petter_L_Intel
Employee
1,337 Views

Hi Hendrik,

It is quite strange that your Win8 system does not report support for feature level 11.1. I have a hard time guessing what the issue may be since this is a fundamental OS/DirectX capability. More info by Microsoft here: http://msdn.microsoft.com/en-us/library/windows/desktop/hh404562(v=vs.85).aspx

Are you running an unmodified version of the "simple_4_vpp_resize_procamp - d3d" opened from the DX11 Visual Studio solution file?

Device creation using D3D11CreateDevice() with feature levels set up to 11.1 should not fail on Windows 8.

I'm assuming you are you using Visual Studio 2012?

Regards,
Petter 

0 Kudos
Hendrik_W_
Beginner
1,337 Views

Hi Petter , 

Yes I am running the "simple_4_vpp_resize_procamp - d3d" opened from DX11 Solution file. The only things I modified is the inputWidth and inputHeight variables in order to fit my input data.

I am using Visual Studio Ultimate 2012.

D3D11CreateDevice() return S_OK but the returned feature level is D3D_FEATURE_LEVEL_11_0 not D3D_FEATURE_LEVEL_11_1.

I am just googled and found out that Intel HD Graphics 4000 does'nt support Direct 3D 11.1

could it be the problem ?

Thanks,

Hendrik

0 Kudos
Petter_L_Intel
Employee
1,337 Views

Hi Hendrik,

I would not worry much about the returned feature level array from D3D11CreateDevice(). If the call to D3D11CreateDevice() succeeds when using D3D_FEATURE_LEVEL_11_1 you should be fine. 

The current Intel HD Graphics 4000 driver does support DX11 surface usage via Media SDK when using Win8. The DirectX11.1 web discussions on this topic are misleading.

Regarding your issue. I looked at the "simple_4_vpp_resize_procamp - d3d" and observe similar issue. Thanks for reporting this bug. We will improve future Media SDK tutorial code drop.

In the meantime the issue can be resolved by commenting out the following line from the code:
    VPPRequest[1].Type |= WILL_READ; 

Regards,
Petter 

0 Kudos
Hendrik_W_
Beginner
1,337 Views

Hi Petter,

Commenting   VPPRequest[1].Type |= WILL_READ;  solved this issue.

Many thanks,

Hendrik

0 Kudos
j_miles
Beginner
1,337 Views

Hendrik W. wrote:

Commenting   VPPRequest[1].Type |= WILL_READ;  solved this issue.

Hi Hendrik,

After doing the above correction, did everything also work when running it as a Windows 8 service (under session 0)?
Did you have to do additional changes to the Media SDK parts (the sample) to get it to work as a service?

I think there are many other forum readers (which have been previously frustrated by the limitations of Windows 7 and Media SDK and DirectX in this situation) that would be interested in any details you can share on getting Media SDK to run as a session 0 service (on Win8).

Thanks

 - Jay

0 Kudos
Hendrik_W_
Beginner
1,337 Views

Hi jay  , 
  There's no need to comment " VPPRequest[1].Type |= WILL_READ; " again
  This issue has been solved in the 18 April 2013 update of media sdk tutorial 
  You can download the latest tutorial here (http://software.intel.com/en-us/articles/intel-media-sdk-tutorial) .
  Please make sure you use the most recent Intel graphics driver.

Regards,
Hendrik

  
 
  
   

0 Kudos
Reply