MFX_FRCALGM_FRAME_INTERPOLATION

MFX_FRCALGM_FRAME_INTERPOLATION

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.

AttachmentSize
Download sdk.zip13.1 KB
4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Tony Pabon (Intel)'s picture

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

-Tony

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

Attachments: 

AttachmentSize
Download sys.zip1012 bytes
Tony Pabon (Intel)'s picture

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.

-Tony

Login to leave a comment.