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.

MFX_FRCALGM_FRAME_INTERPOLATION

Dmitry_Gurulev
Beginner
523 Views

Hi All,

I have a trouble with FRC - it seems to me the MFX_FRCALGM_DISTRIBUTED_TIMESTAMP is not working when combined with MFX_FRCALGM_FRAME_INTERPOLATION (mfxExtVPPFrameRateConversion::Algorithm == 6). During 25->50 conversion I have correct frame number, but times is wrong - I have one valid time stamp and then MFX_TIMESTAMP_UNKNOWN on the frame with MFX_ERR_MORE_SURFACE. When I clear MFX_FRCALGM_FRAME_INTERPOLATION flag I have correct behavior - valid time stamps on every frame.

What I need to do to make MFX_FRCALGM_FRAME_INTERPOLATION work with  MFX_FRCALGM_DISTRIBUTED_TIMESTAMP as it described in mediasdk-man.pdf, page 121?

PS mediasdk_tracer output is attached.

0 Kudos
3 Replies
Anthony_P_Intel
Employee
523 Views

Hi,

I see in your log that the MFX session seems to be getting created with API 1.1, and the MFX_FRCALGM_FRAME_INTERPOLATION feature is only available with API 1.6 or newer.  Please be sure to initialize the session with the latest API version.

Also, the platform you are using does not support creation of interpolated frames.  (This is one of the few 'optional' filter operations that does not have an un-accelerated (software) implementation in the Intel Media SDK.).  The feature is only available if the hardware and graphics drivers support advanced/interpolated frame-rate conversion for the rates requested.  When you used VPP with API 1.6 session, you should see MFX_WRN_FILTER_SKIPPED, and behavior shoudl be the same as if you had set only MFX_FRCALGM_DISTRIBUTED_TIMESTAMP (no frame content interpolation will occur).

-Tony

0 Kudos
Dmitry_Gurulev
Beginner
523 Views

Hi Tony,

I create MFX session with zero as version ptr - mfx_.Init(MFX_IMPL_AUTO, 0). The man says - "or zero, if not specified" and "If the desired version is not specified, the default is to use the API version from the SDK release, with which an application is built". If I understand this correctly, the mfx_.Init(MFX_IMPL_AUTO, 0) invocation will give me HW mode and 1.6 version on my configuration. And this is what I get when I check impl. and version via QueryIMPL\QueryVersion. BTW. I check the mfxVersion version = { 6, 1 }; for initialization - no changes, no luck.

What platform I need to have this feature being supported? Is there an official description of such constrains?

I have no MFX_WRN_FILTER_SKIPPED warning during VPP initialization, and observable behaviour of (MFX_FRCALGM_FRAME_INTERPOLATION | MFX_FRCALGM_DISTRIBUTED_TIMESTAMP) is exactly the same as MFX_FRCALGM_PRESERVE_TIMESTAMP.

PS System info is attached

0 Kudos
Anthony_P_Intel
Employee
523 Views

Hi Dmitry,

I'm unable to comment on future products, but I can say that none of the currently available products (including the Intel 3rd Generation Intel Core(TM) Processor you are using) currently support the feature.

I am a bit confused by the initialzation behavior you are observing and I'm continuing to investigate. (You should not be seeing QueryIMPL=HARDWARE and QueryVersion=1.6).

Thank you for reporting the behavior.

0 Kudos
Reply