AR# 72080

2018.2/3 Zynq UltraScale+ MPSoC VCU - Why do I get an error when using GStreamer in reduced latency mode (latency-mode=1) when trying to decode more than 2 streams?

描述

Why do I get an error when using GStreamer in reduced latency mode (latency-mode=1) when trying to decode more than 2 streams?

gst-launch-1.0 -v -e filesrc location="test_rec.mkv" ! matroskademux ! h265parse ! omxh265dec latency-mode=1 internal-entropy-buffers=5 ! fakesink &

Setting pipeline to PAUSED ...
Setting pipeline to PAUSED ...
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLING ...
Pipeline is PREROLLING ...
...
...
/!\ decoder: hardware doesn't have enough resources (142)
[E] [TreatSetStateCommand]: OMX_ALG_ErrorChannelResourceUnavailable
[E] [FillThisBuffer]: OMX_ErrorInvalidState
ERROR: from element /GstPipeline:pipeline0/GstOMXH265Dec-omxh265dec:omxh265dec-omxh265dec0: GStreamer encountered a general supporting library error.
Additional debug info:
../../git/omx/gstomxvideodec.c(3362): gst_omx_video_dec_handle_frame (): /GstPipeline:pipeline0/GstOMXH265Dec-omxh265dec:omxh265dec-omxh265dec0:
OpenMAX component in error state Component doesn't have enough hardware resources available to process the channel (0x90001001)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
[E] [GetParameter]: OMX_IndexParamPortDefinition : OMX_ErrorInvalidState
[E] [GetParameter]: OMX_IndexParamPortDefinition : OMX_ErrorInvalidState
[E] [GetParameter]: OMX_IndexParamPortDefinition : OMX_ErrorInvalidState
[E] [GetParameter]: OMX_IndexParamPortDefinition : OMX_ErrorInvalidState
[E] [SendCommand]: OMX_ErrorInvalidState
[E] [GetParameter]: OMX_IndexParamPortDefinition : OMX_ErrorInvalidState
gst-launch-1.0: base/omx_module/omx_module_dec.cpp:366: void DecModule::FreeDMA(int): Assertion `!handlesOut.Exist(handle)' failed.
...

解决方案

This is a known issue with the Zynq UltraScale+ MPSoC VCU - LogiCORE H.264/H.265 Video Codec Unit (VCU) when using GStreamer with reduced latency mode (latency-mode=1).

The OMX layer was incorrectly setting the VCU to Low Latency mode (latency-mode=2).

  • 2018.2 - Users can download the PetaLinux Recipes and Patch files from (Xilinx Answer 71798) to work around this issue.
  • 2018.3 - Users can download the PetaLinux Recipes and Patch files from (Xilinx Answer 71798) to work around this issue.
  • 2019.1 - This issue is resolved in the 2019.1 release and later versions.

链接问答记录

主要问答记录

AR# 72080
日期 04/04/2019
状态 Active
Type 综合文章
Tools
IP