Community
cancel
Showing results for 
Search instead for 
Did you mean: 
keiyuen__feng
Beginner
160 Views

the question of mfxExtScreenCaptureParam when using screen capture plu-in

Jump to solution
 
Hello, thank you very much for checking this question. When I use screen capture plu-in, the mfxExtScreenCaptureParam parameter is not added, and when I add the mfxExtScreenCaptureParam parameter and set it, it will report an error.

without  mfxExtScreenCaptureParam :

//...........mfxExtScreenCaptureParam..............

mfxVideoParam par;

.........................

 mfxExtScreenCaptureParam extScPar;
 mfxExtBuffer *mfxextbuf,*dirtymfxextbuf;
 mfxExtDirtyRect mfxexdirRect;
 memset(&mfxexdirRect, 0, sizeof(mfxexdirRect));
 memset(&mfxextbuf, 0, sizeof(mfxextbuf));
 memset(&extScPar, 0, sizeof(extScPar));
 extScPar.Header.BufferId = MFX_EXTBUFF_SCREEN_CAPTURE_PARAM;
 extScPar.Header.BufferSz = sizeof(mfxExtScreenCaptureParam);
 extScPar.EnableDirtyRect = 1;
 extScPar.DisplayIndex = 0;
 extScPar.EnableCursorCapture = 0;
 mfxextbuf= (mfxExtBuffer*)&extScPar;
 //mfxexdirRect = &mfxextbuf;
 mfxexdirRect.Header.BufferId = MFX_EXTBUFF_DIRTY_RECTANGLES;
 mfxexdirRect.Header.BufferSz = sizeof(mfxExtScreenCaptureParam);
 dirtymfxextbuf = (mfxExtBuffer*)&mfxexdirRect;
// par.NumExtParam = 1;
 //par.ExtParam = &mfxextbuf;
 //...........mfxExtScreenCaptureParam..............
 
 mfxSts = MFXVideoDECODE_Init(mfxSes, &par);
36704 2018-9-12 19:28:26:399     par.Protected=0
36704 2018-9-12 19:28:26:399     par.IOPattern=MFX_IOPATTERN_OUT_VIDEO_MEMORY
36704 2018-9-12 19:28:26:399     par.NumExtParam=0
36704 2018-9-12 19:28:26:399     par.ExtParam=0000000000000000
36704 2018-9-12 19:28:26:399     par.reserved2=0
36704 2018-9-12 19:28:26:399 function: MFXVideoDECODE_Init(84.0707 msec, status=MFX_WRN_PARTIAL_ACCELERATION) -

 

using  mfxExtScreenCaptureParam :

mfxVideoParam par;

..........................

//...........mfxExtScreenCaptureParam..............
 mfxExtScreenCaptureParam extScPar;
 mfxExtBuffer *mfxextbuf,*dirtymfxextbuf;
 mfxExtDirtyRect mfxexdirRect;
 memset(&mfxexdirRect, 0, sizeof(mfxexdirRect));
 memset(&mfxextbuf, 0, sizeof(mfxextbuf));
 memset(&extScPar, 0, sizeof(extScPar));
 extScPar.Header.BufferId = MFX_EXTBUFF_SCREEN_CAPTURE_PARAM;
 extScPar.Header.BufferSz = sizeof(mfxExtScreenCaptureParam);
 extScPar.EnableDirtyRect = 1;
 extScPar.DisplayIndex = 0;
 extScPar.EnableCursorCapture = 0;
 mfxextbuf= (mfxExtBuffer*)&extScPar;
 //mfxexdirRect = &mfxextbuf;
 mfxexdirRect.Header.BufferId = MFX_EXTBUFF_DIRTY_RECTANGLES;
 mfxexdirRect.Header.BufferSz = sizeof(mfxExtScreenCaptureParam);
 dirtymfxextbuf = (mfxExtBuffer*)&mfxexdirRect;
 par.NumExtParam = 1;
 par.ExtParam = &mfxextbuf;
 //...........mfxExtScreenCaptureParam..............
 
 mfxSts = MFXVideoDECODE_Init(mfxSes, &par);
43912 2018-9-12 19:37:54:239     par.Protected=0
43912 2018-9-12 19:37:54:239     par.IOPattern=MFX_IOPATTERN_OUT_VIDEO_MEMORY
43912 2018-9-12 19:37:54:239     par.NumExtParam=1
43912 2018-9-12 19:37:54:239     par.ExtParam=00000070B0CFC7A8
43912 2018-9-12 19:37:54:239     par.ExtParam[0]=00000070B0CFC750
43912 2018-9-12 19:37:54:239     par.ExtParam[0].BufferId=1095779155
43912 2018-9-12 19:37:54:239     par.ExtParam[0].BufferSz=64
43912 2018-9-12 19:37:54:239     par.reserved2=0
43912 2018-9-12 19:37:54:239 function: MFXVideoDECODE_Init(0.0306667 msec, status=MFX_ERR_INVALID_VIDEO_PARAM) -
 
how can i to solve this problem??thankyou for your help!best wishes for u!
 
 
 
0 Kudos
1 Solution
Mark_L_Intel1
Moderator
160 Views

Hi Keiyuen,

Sorry for the late response, could you tell me which processor, OS and MSDK release you are using?

We have drop the screen capture support in recently release, so I want to double check.

Mark

View solution in original post

14 Replies
Mark_L_Intel1
Moderator
161 Views

Hi Keiyuen,

Sorry for the late response, could you tell me which processor, OS and MSDK release you are using?

We have drop the screen capture support in recently release, so I want to double check.

Mark

View solution in original post

keiyuen__feng
Beginner
160 Views

Intel(R) Media Server Studio 2017 - System Analyzer (64-bit)


The following versions of Media SDK API are supported by platform/driver
[opportunistic detection of MSDK API > 1.23]:

        Version Target  Supported       Dec     Enc
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.0     HW      Yes             X       X
        1.0     SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.1     HW      Yes             X       X
        1.1     SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.2     HW      Yes             X       X
        1.2     SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.3     HW      Yes             X       X
        1.3     SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.4     HW      Yes             X       X
        1.4     SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.5     HW      Yes             X       X
        1.5     SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.6     HW      Yes             X       X
        1.6     SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.7     HW      Yes             X       X
        1.7     SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.8     HW      Yes             X       X
        1.8     SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.9     HW      Yes             X       X
        1.9     SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.10    HW      Yes             X       X
        1.10    SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.11    HW      Yes             X       X
        1.11    SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.12    HW      Yes             X       X
        1.12    SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.13    HW      Yes             X       X
        1.13    SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.14    HW      Yes             X       X
        1.14    SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.15    HW      Yes             X       X
        1.15    SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.16    HW      Yes             X       X
        1.16    SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.17    HW      Yes             X       X
        1.17    SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.18    HW      Yes             X       X
        1.18    SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.19    HW      Yes             X       X
        1.19    SW      Yes             X       X
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.20    HW      Yes             X       X
        1.20    SW      No
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.21    HW      Yes             X       X
        1.21    SW      No
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.22    HW      Yes             X       X
        1.22    SW      No
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.23    HW      Yes             X       X
        1.23    SW      No
DriverDDIMain = 947
DriverDDIMain10 = 947
DriverDDIMainLP = 966
DriverDDIMain10LP = 966
        1.24    HW      Yes             X       X
        1.24    SW      No

Graphics Devices:
        Name                                         Version             State
        Intel(R) HD Graphics 530                     22.20.16.4749       Active
        NVIDIA GeForce GTX 960M                      23.21.13.8912       Active

System info:
        CPU:    Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz
        OS:     Microsoft Windows 10 ?????
        Arch:   64 ?

Installed Media SDK packages (be patient...processing takes some time):
        Intel(R) Media SDK 2017 R1
        Intel(R) Media Samples 6.0.0.49
        Samples for Intel(R) Media SDK 2017 for Windows*
        Intel(R) Media SDK 2016 R2

Installed Media SDK DirectShow filters:

Installed Intel Media Foundation Transforms:
        Intel(R) Hardware M-JPEG Decoder MFT : {00C69F81-0524-48C0-A353-4DD9D54F9A6E}
        Intel(R) Hardware VP8 Sync Decoder MFT : {451E3CB7-2622-4BA5-8E1D-44B3C41D0924}
        Intel(R) Hardware VP8 Decoder MFT : {6D856398-834E-4A89-8EE5-071BB3F58BE4}

 

Analysis complete... [press ENTER]

 

keiyuen__feng
Beginner
160 Views

Liu, Mark (Intel) wrote:

Hi Keiyuen,

Sorry for the late response, could you tell me which processor, OS and MSDK release you are using?

We have drop the screen capture support in recently release, so I want to double check.

Mark

just as above,thank you for your replay

Mark_L_Intel1
Moderator
160 Views

Hi Keiyuen,

From your replied info, it looks like you install Media Server Studio 2017 for Windows.

Since you are using a core processor, you should install Media SDK 2017 for Windows, it should include the screen capture support:

https://software.intel.com/sites/default/files/managed/ba/5b/mediasdk_release_notes_2017.pdf

Media Server Studio are generally used for server environment(Windows Server), it should not be used in this case anyway.

Mark

keiyuen__feng
Beginner
160 Views

Liu, Mark (Intel) wrote:

Hi Keiyuen,

From your replied info, it looks like you install Media Server Studio 2017 for Windows.

Since you are using a core processor, you should install Media SDK 2017 for Windows, it should include the screen capture support:

https://software.intel.com/sites/default/files/managed/ba/5b/mediasdk_re...

Media Server Studio are generally used for server environment(Windows Server), it should not be used in this case anyway.

Mark

Hello, I'm glad to hear from you. My SDK is installed in intel_Media_SDK_2017_R1.msi on the default path, C: Program Files (x86) IntelSWTools Intel (R) _Media_SDK_2017.0.1 tools\ mediasdk_sys_analyzer\ mediasdk_system_64.exe, and the beginning of Media Studio_ Server (R) will appear after running. - System Analyzer (64 - bit), I didn't install Intel (R) Media Server Studio 2017, but I installed Intel_Media_SDK_2017_R1. msi...I don't know how to solve the above problem.thank you for your help!!

Mark_L_Intel1
Moderator
160 Views

Hi Keiyuen,

Yes, this is my mistake. It looks like your installation should support screen capture. My apology.

Please make sure the environment INTELMEDIASDKROOT points to the right directory before you do anything further.

You should be able to go to the following site and download the old version of MSDK sample to see if you can check with the old screen capture sample:

https://software.intel.com/en-us/intel-media-server-studio-support/code-samples

I also noticed you have a second discrete graphic card in your system, this could introduce complications. You can also try to force your system with integrated graphic only to see if the problem is solved. 

Mark

keiyuen__feng
Beginner
160 Views

Liu, Mark (Intel) wrote:

Hi Keiyuen,

Yes, this is my mistake. It looks like your installation should support screen capture. My apology.

Please make sure the environment MFX_HOME points to the right directory before you do anything further.

You should be able to go to the following site and download the old version of MSDK sample to see if you can check with the old screen capture sample:

https://software.intel.com/en-us/intel-media-server-studio-support/code-...

I also noticed you have a second discrete graphic card in your system, this could introduce complications. You can also try to force your system with integrated graphic only to see if the problem is solved. 

Mark

 
Hello liu, I closed my Invid card, but the program still reported an error, you give the link address is linux environment inside the application, my application environment needs is windows, so I want to know what to do under windows, I hope to get your help, thank you!

 

Mark_L_Intel1
Moderator
160 Views

Hi Feng,

Our sample can always be used in both Linux and Windows. 

Let me know if you can't use it in Windows.

Mark

keiyuen__feng
Beginner
160 Views

Liu, Mark (Intel) wrote:

Hi Feng,

Our sample can always be used in both Linux and Windows. 

Let me know if you can't use it in Windows.

Mark

Hello, I'm glad to receive your reply. My question description, as mentioned above, runs without mfxExtScreen Capture Param, reports errors with mfxExtScreen Capture Param, and I run with win10 and win7. Can you give me an example of using mfxExtScreen Capture Param? Thank you. I want to do a remote control. I want to get desktop change data on Win7. These small amounts of data are easy to transmit over wireless networks. I'd love to get your help. Thank you.

Mark_L_Intel1
Moderator
160 Views

Hi Feng,

As I said, we don't support this feature anymore since moving to Windows 10 and new releases. So I have limited resource to get the code for screen capture.

Could you go to the following page to see if you can find the screen capture sample code in the older sample releases?

https://software.intel.com/en-us/intel-media-server-studio-support/code-samples

Mark

keiyuen__feng
Beginner
160 Views

thankyou for your replay,Although the problem hasn't been solved, thank you all the same.

Liu, Mark (Intel) wrote:

Hi Feng,

As I said, we don't support this feature anymore since moving to Windows 10 and new releases. So I have limited resource to get the code for screen capture.

Could you go to the following page to see if you can find the screen capture sample code in the older sample releases?

https://software.intel.com/en-us/intel-media-server-studio-support/code-...

Mark

Ramashankar
New Contributor III
160 Views

Hi Feng,

There could be two possibilities for your issue.

1. As per the screen capture manual, you need to allocate pool of frame surfaces and attach dirty rect buffer before calling MFXVideoDECODE_Init(). So are you following this?

2. There is incorrect code in your sample attached.

 mfxexdirRect.Header.BufferSz = sizeof(mfxExtScreenCaptureParam);  ====> wrong

it should be 

 mfxexdirRect.Header.BufferSz = sizeof(mfxExtDirtyRect);

Hope it may help

Ramashankar
New Contributor III
160 Views

Snapshot from mediasdkscreencap-man.pdf (API version 1.19):

Screen capture with DirtyRect detection using decode plug-in:
Example 3 shows the pseudo code of the video screen capturing with DirtyRect feature usage procedure using plugin. The following describes a few key points:
 Capturing procedure with DirtyRect detection is almost like typical screen capture pipeline described by Screen capture procedure using decode plug-in section above;
 DirtyRect feature should be turned on during MFXVideoDECODE_Init function call by setting corresponded parameter (EnableDirtyRect) in the provided extended buffer mfxExtScreenCaptureParam;
 mfxExtDirtyRect extended buffer should be attached to the provided surfaces into the MFXVideoDECODE_DecodeFrameAsync function. Detected dirty rectangles will be reported into this extended buffer after MFXVideoCORE_SyncOperation function call.

mfxSession session;
MFXInit(MFX_IMPL_HARDWARE, 1.17, &session);
MFXVideoUSER_Load(session, MFX_PLUGINID_CAPTURE_HW, version);
mfxVideoParam par; //input parameters structure
mfxExtScreenCaptureParam extScPar; //input extended parameters structure
extScPar.Header.BufferId = MFX_EXTBUFF_SCREEN_CAPTURE_PARAM;
extScPar.Header.BufferSz = sizeof(extPar);
extScPar.EnableDirtyRect = 1;
//Atach extended parameter structure to the input parameters:
mfxExtBuffer* buffers = (mfxExtBuffer*) &extScPar;
par.ExtParam = &buffers;
par.NumExtParam = 1;
MFXVideoDECODE_QueryIOSurf(session, &in, &request);
//allocate surface pool with mfxExtDirtyRect buffer attached to each surface
allocate_pool_of_frame_surfaces_and_attach_dirtyrect_buf(request.NumFrameSuggested);
MFXVideoDECODE_Init(session, &in);
sts=MFX_ERR_MORE_DATA;
for (;;) {
find_unlocked_surface_from_the_pool(&work);
sts=MFXVideoDECODE_DecodeFrameAsync(session,NULL,work,&disp,&syncp);
if (sts==MFX_ERR_MORE_SURFACE) continue;
… // other error handling
if (sts==MFX_ERR_NONE) {
MFXVideoCORE_SyncOperation(session, syncp, INFINITE);
do_something_with_decoded_frame_and_dirty_rect_info(disp);
}
}
MFXVideoDECODE_Close(session);
free_pool_of_frame_surfaces();
MFXClose(session)

 

keiyuen__feng
Beginner
160 Views

thank you very much!

Reply