pipeline hangs when I use omxmjpegdec.

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

pipeline hangs when I use omxmjpegdec.

TomMitchell
Hello,

I am new to this forum (and also beginner in Linux + GStreamer development.).
On a Raspberry pi 3 platform I last year installed GStreamer and I was able to get my application running with omxmjpegdec.
Last week I started with new RPI with fresh install and got all the sources via git.
I was able to compile everything but my application doesn't show video.

Testing via gst-inspect-1.0 and debug macro I see the pipeline hangs:

log:
Pipeline is live and does not need PREROLL ...
0:00:01.159911519   781  0x20e5150 DEBUG            omxvideodec gstomxvideodec.c:2454:gst_omx_video_dec_drain:<omxmjpegdec-omxmjpegdec0> Draining component
0:00:01.160094642   781  0x20e5150 DEBUG            omxvideodec gstomxvideodec.c:2459:gst_omx_video_dec_drain:<omxmjpegdec-omxmjpegdec0> Component not started yet
Got context from element 'autovideosink0': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayEGL\)\ gldisplayegl0";
Setting pipeline to PLAYING ...
New clock: GstSystemClock
...
0:00:01.533287439   781  0x2018d50 DEBUG                    omx gstomx.c:432:gst_omx_component_wait_message:<omxmjpegdec-omxmjpegdec0> video_decode waiting for signal
0:00:01.533338741   781  0x20e5150 DEBUG                    omx gstomx.c:1408:gst_omx_port_release_buffer:<omxmjpegdec-omxmjpegdec0> Releasing buffer 0x70e13e80 (0x70e3f410) to video_decode port 130
0:00:01.533820819   781  0x20e5150 DEBUG                    omx gstomx.c:1454:gst_omx_port_release_buffer:<omxmjpegdec-omxmjpegdec0> Released buffer 0x70e13e80 to video_decode port 130: None (0x00000000)
0:00:01.533873735   781  0x20e5150 DEBUG            omxvideodec gstomxvideodec.c:2374:gst_omx_video_dec_handle_frame:<omxmjpegdec-omxmjpegdec0> Passed frame to component
0:00:01.535035494   781  0x20e5150 DEBUG            omxvideodec gstomxvideodec.c:2454:gst_omx_video_dec_drain:<omxmjpegdec-omxmjpegdec0> Draining component
0:00:01.535098723   781  0x20e5150 DEBUG                    omx gstomx.c:1250:gst_omx_port_acquire_buffer:<omxmjpegdec-omxmjpegdec0> Acquiring video_decode buffer from port 130
0:00:01.535140545   781  0x20e5150 DEBUG                    omx gstomx.c:1372:gst_omx_port_acquire_buffer:<omxmjpegdec-omxmjpegdec0> video_decode port 130 has pending buffers
0:00:01.535174920   781  0x20e5150 DEBUG                    omx gstomx.c:1386:gst_omx_port_acquire_buffer:<omxmjpegdec-omxmjpegdec0> Acquired buffer 0x70e13e98 (0x70e53440) from video_decode port 130: 0
0:00:01.535248982   781  0x20e5150 DEBUG                    omx gstomx.c:1408:gst_omx_port_release_buffer:<omxmjpegdec-omxmjpegdec0> Releasing buffer 0x70e13e98 (0x70e53440) to video_decode port 130
0:00:01.535618926   781  0x20e5150 DEBUG                    omx gstomx.c:1454:gst_omx_port_release_buffer:<omxmjpegdec-omxmjpegdec0> Released buffer 0x70e13e98 to video_decode port 130: None (0x00000000)
0:00:01.535668040   781  0x20e5150 DEBUG            omxvideodec gstomxvideodec.c:2502:gst_omx_video_dec_drain:<omxmjpegdec-omxmjpegdec0> Waiting until component is drained
0:00:01.537982860   781 0x70e3f380 LOG                      omx gstomx.c:615:EmptyBufferDone:<omxmjpegdec-omxmjpegdec0> video_decode port 130 emptied buffer 0x70e13e80 (0x70e3f410)
0:00:01.538051140   781  0x2018d50 LOG                      omx gstomx.c:361:gst_omx_component_handle_messages:<omxmjpegdec-omxmjpegdec0> video_decode port 130 emptied buffer 0x70e13e80 (0x70e3f410)
0:00:01.538099109   781  0x2018d50 DEBUG                    omx gstomx.c:1363:gst_omx_port_acquire_buffer:<omxmjpegdec-omxmjpegdec0> Queue of video_decode port 131 is empty
0:00:01.538132806   781  0x2018d50 DEBUG                    omx gstomx.c:432:gst_omx_component_wait_message:<omxmjpegdec-omxmjpegdec0> video_decode waiting for signal

When I replace the omxmjpegdec with the jpegdec the pipeline and application works fine.

Is this a known problem or have I done something wrong ?
How can I (temporary) solve this problem ?

Best regards,
Tom