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.

How to use mfxExtVppAuxData

Peter_Maksimov
Beginner
1,204 Views
mediasdk-man.pdf says:

Header.BufferId- Must be MFX_EXTBUFF_VPP_AUXDATA
SpatialComplexity- Spatial complexity that resulted from scene change detection
TemporalComplexity- Temporal complexity that resulted from scene change detection
SceneChangeRate- Scene change detection rate (0-255) that indicates the likelihood of scene change
RepeatedFrame- If true, indicates that the current frame repeated the previous one

I'm tring to attach this buffer to mfxVideoParam::ExtParam and put it to MFXVideoVPP_Init but I have
MFX_ERR_INVALID_VIDEO_PARAM result after call.

My question is How to use mfxExtVppAuxData structure?

Can somebody help me to understand this feature?
0 Kudos
1 Solution
Nina_K_Intel
Employee
1,204 Views
Hi Peter,

mfxExtVppAuxData contains per-frame information.RunFrameVPPAsync will fill this structure if it is passed as an argument. Then user can additionally attach the structure to mfxEncodeCtrl structure so that encoder makes use of this information.

At VPP initialization stage you need to enableMFX_EXTBUFF_VPP_SCENE_ANALYSIS by using DOUSE option, you may also change parameters of scene change alogrithm by attaching anMFX_EXTBUFF_VPP_SCENE_ANALYSIS extended buffer.

Sample_vpp under \samples of Media SDK package shows how to perform these steps.

I hope this helps to understand the feature.

Regards,
Nina

View solution in original post

0 Kudos
6 Replies
Nina_K_Intel
Employee
1,205 Views
Hi Peter,

mfxExtVppAuxData contains per-frame information.RunFrameVPPAsync will fill this structure if it is passed as an argument. Then user can additionally attach the structure to mfxEncodeCtrl structure so that encoder makes use of this information.

At VPP initialization stage you need to enableMFX_EXTBUFF_VPP_SCENE_ANALYSIS by using DOUSE option, you may also change parameters of scene change alogrithm by attaching anMFX_EXTBUFF_VPP_SCENE_ANALYSIS extended buffer.

Sample_vpp under \samples of Media SDK package shows how to perform these steps.

I hope this helps to understand the feature.

Regards,
Nina
0 Kudos
wqpaul
Beginner
1,204 Views
Nina,

My code still doesn't work. The aux always get zero value, Can you help to check my code?

Thanks
Paul

mfxExtVPPFrameRateConversion conversion;
memset(&conversion, 0, sizeof(conversion));
conversion.Header.BufferId = MFX_EXTBUFF_VPP_FRAME_RATE_CONVERSION;
conversion.Header.BufferSz = sizeof(conversion);
conversion.Algorithm = MFX_FRCALGM_DISTRIBUTED_TIMESTAMP;

mfxU32 vppDoUses[2] = {MFX_EXTBUFF_VPP_SCENE_ANALYSIS, MFX_EXTBUFF_VPP_DENOISE};
mfxExtVPPDoUse doUse;
memset(&doUse, 0, sizeof(doUse));
doUse.Header.BufferId = MFX_EXTBUFF_VPP_DOUSE;
doUse.Header.BufferSz = sizeof(doUse);
doUse.NumAlg = 2;
doUse.AlgList = vppDoUses;

mfxExtBuffer* extBuffers[2];
extBuffers[0] = &doUse.Header;
extBuffers[1] = &conversion.Header;
mVppParam.NumExtParam = 2;
mVppParam.ExtParam = extBuffers;

sts = mVpp->Init(&mVppParam);




mfxExtVppAuxData aux;
memset(&aux, 0, sizeof(aux));
aux.Header.BufferId = MFX_EXTBUFF_VPP_AUXDATA;
aux.Header.BufferSz = sizeof(aux);
sts = mVpp->RunFrameVPPAsync(surface, vppSync.surface, &aux, &vppSync.sync);

0 Kudos
wqpaul
Beginner
1,204 Views
One more comment, this aux doesn't work on the Hardware version, but do work on the software version.
My laptop is Thinkpad X220 win7 with HD3000 display card.
Is anyway I can upgrade the display card driver?
0 Kudos
Petter_L_Intel
Employee
1,204 Views
Hi Paul,

We have confirmed the behavior you describe. It looks like this may be a bug in our HW implementation of this feature. We are currently investigating how to resolve this. I will update this forum thread as soon as I know more about the resolution.

Can you tell me the version of the graphics driver you have installed on your machine?

Thanks for reporting the issue and helping us improve the Media SDK product.

Regards,
Petter
0 Kudos
wqpaul
Beginner
1,204 Views
Intel HD3000
8.15.10.2538
0 Kudos
Petter_L_Intel
Employee
1,204 Views
Hi Paul,

I have an update on this topic. The Scene Change Detection feature does not work on current or previous generation Intel platforms. We have no plans on resolving the issue. Also, we will likely deprecate the feature on both SW and HW in upcoming Media SDK API release.

So, I'm sorry to say, but I would discourage you from using this feature in your application.

Regards,
Petter
0 Kudos
Reply