AR# 72734

2019.1 Zynq UltraScale+ MPSoC VCU - Why do I occasionally see Zynq UltraScale+ MPSoC VCU OMX Encoder crashes when transitioning out of the recording state?

描述

Why do I occasionally see Zynq UltraScale+ MPSoC VCU OMX Encoder crashes when transitioning out of the recording state?

Example Error:

#0 0x0000007fbe8f62e0 in pthread_cond_wait () at /lib/libpthread.so.0
#1 0x0000007fbe709640 in std::condition_variable::wait(std::unique_lock<:mutex>&) () at /usr/lib/libstdc++.so.6
#2 0x0000007f99bc0004 in semaphore::wait() (this=0x7f9c83ba28) at /usr/src/debug/libomxil-xlnx/git-r0/git/base/omx_utils/semaphore.h:78
#3 0x0000007f99bc0004 in locked_queue<:task>::pop() (this=0x7f9c83ba28) at /usr/src/debug/libomxil-xlnx/git-r0/git/base/omx_utils/locked_queue.h:76
<:mutex><:task>#4 0x0000007f99bc0004 in ProcessorFifo::Worker() (this=0x7f9c83b9f0) at /usr/src/debug/libomxil-xlnx/git-r0/git/base/omx_utils/processor_fifo.h:83
#5 0x0000007fbe70f3b4 in () at /usr/lib/libstdc++.so.6
#6 0x0000007fbe8eff40 in () at /lib/libpthread.so.0
#7 0x0000007f1eeab608 in ()

#0 0x0000007fbe8f10b4 in pthread_join () at /lib/libpthread.so.0
#1 0x0000007fbe70f648 in std::thread::join() () at /usr/lib/libstdc++.so.6
#2 0x0000007f95bad604 in ProcessorFifo::~ProcessorFifo() (this=0x7f751dcdc0, __in_chrg=) at /usr/src/debug/libomxil-xlnx/git-r0/git/base/omx_utils/processor_fifo.h:59
#3 0x0000007f95ba9308 in ProcessorFifo::~ProcessorFifo() (this=0x7f751dcdc0, __in_chrg=) at /usr/src/debug/libomxil-xlnx/git-r0/git/base/omx_utils/processor_fifo.h:60
#4 0x0000007f95ba9308 in std::default_delete::operator()(ProcessorFifo*) const (this=, __ptr=0x7f751dcdc0) at /usr/include/c++/7.3.0/bits/unique_ptr.h:78
#5 0x0000007f95ba9308 in std::unique_ptr >::~unique_ptr() (this=0x7f7565fd50, __in_chrg=) at /usr/include/c++/7.3.0/bits/unique_ptr.h:268
#6 0x0000007f95ba9308 in Component::~Component() (this=0x7f7565fae0, __in_chrg=) at /usr/src/debug/libomxil-xlnx/git-r0/git/base/omx_component/omx_component.cpp:232
#7 0x0000007f95bcdf44 in EncComponent::~EncComponent() (this=0x7f7565fae0, __in_chrg=) at /usr/src/debug/libomxil-xlnx/git-r0/git/base/omx_component/omx_component_enc.h:46
#8 0x0000007f95be8514 in WrapComponentDeInit(OMX_HANDLETYPE) (hComponent=0x7f756723d0) at /usr/src/debug/libomxil-xlnx/git-r0/git/base/omx_wrapper/omx_wrapper_enc_entry_point.cpp:56
#9 0x0000007f96713458 in OMX_FreeHandle(OMX_HANDLETYPE) (hComponent=0x7f756723d0) at /usr/src/debug/libomxil-xlnx/git-r0/git/core/omx_core/omx_core.cpp:179
#10 0x0000007f960627ac in () at /usr/lib/gstreamer-1.0/libgstomx.so 

解决方案

This is a known issue with the Zynq UltraScale+ MPSoC VCU - LogiCORE H.264/H.265 Video Codec Unit (VCU) OMX Layer that can occur occasionally when transitioning out of the recording state due to a race condition in the OMX layer.

  • 2018.2 - Users must upgrade to the 2019.1 version (with patches) or 2019.2 and later
  • 2019.1 - Users can download the PetaLinux Recipes and Patch files from (Xilinx Answer 72324) to work around this issue
  • 2019.2 - This issue will be resolved in the 2019.2 release and later versions

链接问答记录

主要问答记录

AR# 72734
日期 09/10/2019
状态 Active
Type 综合文章
Tools
IP