- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to setup the following chain for video processing.
VPP1 -> VPP2
where VPP1Params.IOPattern =
MFX_IOPATTERN_IN_SYSTEM_MEMORY | MFX_IOPATTERN_OUT_OPAQUE_MEMORY; and
VPP2Params.IOPattern =
MFX_IOPATTERN_OUT_OPAQUE_MEMORY | MFX_IOPATTERN_IN_SYSTEM_MEMORY;
I am using mfxExtOpaqueSurfaceAlloc for the opaque surface alloc information. Now the problem is, when the intel media sdk library implementation is SW based, I am getting correct output after second vpp session is finished. But when the implementation is HW based, program exits with status code -17 (MFX_ERR_DEVICE_FAILED) from MFXVideoVPP_RunFrameVPPAsync function . I am currently running intel media sdk version 1.17.
In the release notes of version 1.19, it is stated in common feature that "Opaque memory usage extended to support external allocator in transcoding pipelines with mixed memory types. ". So, Opaque memory with mixed memory types is not supported prior to version 1.19? And if it is not the case, what might be the possible cause for the error?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Sumit,
As my understanding, the pipeline is VPP1->VPP2, according to your configuration, VPP1 has input of system memory, output of opaque memory which should be the input of the VPP2, so in your configuration, VPP2Params.IOPattern should be MFX_IOPATTERN_IN_OPAQUE_MEMORY | MFX_IOPATTERN_OUT_SYSTEM_MEMORY, so your configuration might be a mistake depends on the mode.
The opaque memory means the system decides the memory, in software mode, all memory goes to system, this is no problem; but in hardware mode, the opaque memory normally means the video memory, this might cause the failure. Could you change to VPP2Params.IOPattern = MFX_IOPATTERN_IN_OPAQUE_MEMORY | MFX_IOPATTERN_OUT_SYSTEM_MEMORY to see if the failure is solved?
Mark
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I made mistake while writing my question. In my code I am giving correct parameters for IOPattern, which is
VPP1Params.IOPattern =
MFX_IOPATTERN_IN_SYSTEM_MEMORY | MFX_IOPATTERN_OUT_OPAQUE_MEMORY
and VPP2Params.IOPattern = MFX_IOPATTERN_IN_OPAQUE_MEMORY | MFX_IOPATTERN_OUT_SYSTEM_MEMORY;
Still i am getting same error ( MFX_ERR_DEVICE_FAILED ).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Sumit,
For your original question, can you try to set up the same memory type to see if you still get the failure?
I don't think the 1.19 doesn't support mix type of memory, I will confirm. What is your whole pipeline, DEC->VPP1->VPP2->ENC?
Mark
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page