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.

Capture FPS drops when Windows Media Player is running

Ramashankar
New Contributor III
674 Views

Hi,

I developed an application for capturing the desktop screen by referring sample_decode example. What I am observing is that:

1. While using HW Decoding + System Memory option, my capture rate is around 250 FPS. But if I start playing any video file (checked with a .mp4 file having 1280x720 AVC video) in Windows Media Player while capturing is ON, then capture rate is dropped to 15-20 FPS only.

2. While using HW Decoding + D3D11 Memory option, my capture rate is around 90-100 FPS. And if I start playing video file in Windows Media Player while capturing is ON, then capture rate is dropped to 10-12 FPS only.

Note: this capture rate drop does not occur if I play same file in VLC player.

So my question is:
1. Why capture rate is dropped when media player is running? Is capture decoder using any resource which is being used by windows media player also? How to avoid this frame drop?
2. Why capture speed is slow with video memory, but faster with system memory? I was assuming that HW decoding + D3D11 memory combination would be best in performance.
 
To reproduce this issue, please run the sample_decode.exe with following option in both case (when media player is running and when media player is not running)
[sample_decode.exe capture -w 1920 -h 1080 -p "22d62c07e672408fbb4cc20ed7a053e4" -r]
you can observe the frame drop scenario.
 

My environment details:

IMSDK version: 6.0.0.349

Sample decode version: 6.0.0.49

OS: Windows 8.1

Desktop resolution: 1920x1080

System analyzer log is attached.

0 Kudos
4 Replies
Ramashankar
New Contributor III
674 Views

Hi,

There is no reply yet!

Do I need to provide any further information here regarding my query? 

 

0 Kudos
Sravanthi_K_Intel
674 Views

Hi Ramashaknar - Apologies for the delay. The engineer working on screen capture is on vacation, hence the delay. 

(1) It's a known limitation and is captured in the Release Notes. Unfortunately, there is no fix for it yet - the limitation is due to WMP using a specific rendering mode which blocks native intel acceleration.

(2) If you measured the perf with and without video memory using this command line "sample_decode.exe capture -w 1920 -h 1080 -p "22d62c07e672408fbb4cc20ed7a053e4" -r", then the missing "-hw" flag can be the reason why video memory is slower than system memory, Add the flag and you should see the difference. If you have any further questions, please send the exact command lines used so that we can easily replicate here.

Thanks again for your patience, hope this helps.

0 Kudos
Ramashankar
New Contributor III
674 Views

Hi Shravanthi,

Thanks for your reply.

(1). Ok. I gone through SDK release note (mediasdk_release_notes.pdf) and screen capture release note (mediasdkscreencap-man.pdf) now and found this:

a. Protected content capturing: Plug-in does not support protected content capturing. Performance degradations might be observed if there is running application with OPM (Output Protection Manager) session even without actual protected content playing is open.

b. Performance decrease during entering and exiting fullscreen mode: A performance decrease for a several frames might be observed during starting and stopping fullscreen mode of any application.

So is it limitation (a)? If so, can you please let me know (if possible) some more common apps which may run under this mode so that I get informed in advance and prepare my software accordingly.

(2). Regarding missing -hw flag, I was assuming that decoder will always run in hw acceleration mode only by default. until I don't mention "-sw" flag explicitly. Is it not so?

Anyway, I run it again with -hw flag but result is same: HW decoding with System memory is having better performance than HW decoding with Video memory (d3d11).

Commands are:

A. [sample_decode.exe capture -hw -d3d11 -w 1920 -h 1080 -p "22d62c07e672408fbb4cc20ed7a053e4"]

B. [sample_decode.exe capture -hw -w 1920 -h 1080 -p "22d62c07e672408fbb4cc20ed7a053e4"]

Note: I made little changes in sample_decode app, just to print the capture fps even when rendering is OFF. 

Thanks.

0 Kudos
Ramashankar
New Contributor III
674 Views

Hi Shravanthi, and all,

Waiting for your further update, specially on query no 2. Can you please guide further?

Thanks.

0 Kudos
Reply