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.

Intel Media SDK and Windows service

Vassili_Yakovlev
Beginner
1,178 Views
Hi,

How can Iinitialize Videoencoder withhardware implementation in Windows service (running in session 0) ? (Windows7 and Windows Server 2008).

0 Kudos
1 Solution
Anthony_P_Intel
Employee
1,178 Views
Hi Vassili,

I agree with your concerns/comments. I believe the root of the issue is that the design/architecture of a Microsoft Direct3D device, which is necessary for communication to graphics accelerator device.

The only other solution I can think of would be for Intel to provide private APIs that access hardware without using OS API, and I believe this is not allowed for secure Windows OS design.

I will continue to drive this through internal Intel channels, but it might help if you were to ask Microsoft for help directly, as the root of the issue isn't really "Intel Media SDK", but is instead "use of a Microsoft Graphics Accelerator device from within a Microsoft system (session 0) service". That way, you could explain why your scenario can not use their proposed solution.

Tony

View solution in original post

0 Kudos
9 Replies
Anthony_P_Intel
Employee
1,178 Views
Hi,

I do not believe this usage model would work, as there are some technicalconcerns with Windows services (running in session 0) using some OS APIs that are required for Media SDK. One suggestion that may allow this issue to be avoided would be to have the service launch a new separate process (with a differnent 'user' and as an 'interactive session').

This may take some experimentation and some time to get definitive answers. If I find any more information on this, I will update this thread.

-Tony

0 Kudos
Anthony_P_Intel
Employee
1,177 Views
Hi,

While researching this requestI found the following on the Internet, which describes some of the technical issues with creating this kind of service that wants to use graphics hardware acceleration. If any better suggestion is discovered, I will share it here.

http://www.eggheadcafe.com/microsoft/Win32-DirectX-Graphics/29149697/run-directx-9-as-a-serviceheadless.aspx

-Tony
0 Kudos
Vassili_Yakovlev
Beginner
1,178 Views
Thank you Tony,

The service I develop, which will use Intel Media SDK, particularly video encoding with hardware acceleration, doesn't need to use desktop to show video, it does just a video encoding and saving it on hard drive as files. I'm aware that the graphic drivers absent in session 0, because it doesn't need to use GUI. But I'm wondering why Intel or/and Microsoft will not make available hardware acceleration for session 0? May be my scenario of using Intel Media SDK andvideo encoding isn't general, but it exists, and there is need to do so - service running in session 0 to encode live video streams from different camera's, there is no need in GUI application for doing that.

I'm afraid that most of solutions presented by some developers, described in link you mentioned in your reply, not applicable in our scenario. I'll do search further for suitable solution and hope for help from Intel as well.

Vassili
0 Kudos
Anthony_P_Intel
Employee
1,179 Views
Hi Vassili,

I agree with your concerns/comments. I believe the root of the issue is that the design/architecture of a Microsoft Direct3D device, which is necessary for communication to graphics accelerator device.

The only other solution I can think of would be for Intel to provide private APIs that access hardware without using OS API, and I believe this is not allowed for secure Windows OS design.

I will continue to drive this through internal Intel channels, but it might help if you were to ask Microsoft for help directly, as the root of the issue isn't really "Intel Media SDK", but is instead "use of a Microsoft Graphics Accelerator device from within a Microsoft system (session 0) service". That way, you could explain why your scenario can not use their proposed solution.

Tony
0 Kudos
Vassili_Yakovlev
Beginner
1,178 Views
Hi Anthony,

Of course, I've tried to reach people at Microsoft with this issue, still without result. But I think that there will be more effectwhen Intel contact Microsftwith a such questions rather than just adeveloper, like me ;-)
0 Kudos
rtfss1gmail_com
Beginner
1,178 Views
Hi,
I believeIntel could/(should?) provide a direct driver for Intel GPUs (exposing compute (i.e. OpenCL next year wih Ivi Bridge and Quick Sync also).. Nvidia has solved this problem exactly using a TCC driver that doesn't expose graphics but compute capabilities of gpus (i.e. OpenCL and CUDA)..
So as I expect Intel to support OpenCL with IvyBridge and having next years lots ofgamer PCs with Ivi bridge and discrete cards for gaming you should expose at least headless OpenCL support (see new support in OpenCL inAMD APP 2.5 and Nvidia since years) if not this TCC like support..
As said you could expose QuickSync via this driver also..
thanks
0 Kudos
IDZ_A_Intel
Employee
1,178 Views
The same question was addressed in other thread.
0 Kudos
IDZ_A_Intel
Employee
1,178 Views
Since Windows 8 is supposed to have full access to the DirectX APIs from within a session 0 service, I have started a new thread (question) on whether or not the Media SDK will in a new version be able to leverage this. Thread is here #106521.


Thanks.

- Jay
0 Kudos
Andreas_L_
Beginner
1,178 Views

We also ran into this issue under Windows 7 and spent some time already looking for workarounds.

In our use case we do not actually use the Media SDK within the service, but within a process that is started by the service. There are a lot of opinions on the web whether this should be possible or not. There is a tutorial that looks promising, but we had no success with that.

So the only option might be Windows 8, what would be unfortunate because we also want to support Windows 7 and implementation wise the distinction would be a hassle.

0 Kudos
Reply