AnsweredAssumed Answered

I.mx6Q MJPEG video HW decoding

Question asked by Matija Glavinic Pecotic on May 6, 2018
Latest reply on May 7, 2018 by igorpadykov

Hello,

 

I'm trying to use gst + imxvpu to decode mjpeg stream. This is the gst command which I'm using:

 

gst-launch-1.0 souphttpsrc location=http://IP/mjpg/video.mjpg ! jpegparse ! imxvpudec ! autovideosink

 

The problem with this one is that it is pretty slow, I get 1fps. Camera (AXIS, P3905-R) is configured with 25 fps. Following command displays proper video, although, fps suffers a bit on the higher image quality settings, which is the reason for trying to make use of the hw acc:

 

gst-launch-1.0 souphttpsrc location=http://IP/mjpg/video.mjpg ! jpegdec ! autovideosink

 

As far as I understand documentation, imxvpu should work with baseline mjpeg. Since I havent found what exactly basic mjpeg means, I understand it refers to Baseline DCT, SOF0 == ff c0 from the jpeg codec format. I have inspected my stream, and it is indeed this one.

 

Feeding stream directly to the imxvpudec results with an error:

 

gst-launch-1.0 souphttpsrc location=http://IP/mjpg/video.mjpg ! imxvpudec ! autovideosink
Setting pipeline to PAUSED ...
[INFO] Product Info: i.MX6Q/D/S
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstSoupHTTPSrc:souphttpsrc0: Internal data flow error.
Additional debug info:
gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesrc.c(2933): gst_base_src_loop (): /GstPipeline:pipeline0/GstSoupHTTPSrc:souphttpsrc0:
streaming task paused, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

 

Platform on which I'm running this is a bit behind, it is based on yocto 1.8, gst-launch-1.0 version 1.4.5, GStreamer 1.4.5, imxvpu 0.11.1.

 

I'd be grateful for any advices and pointers.

 

Thanks,

 

Matija

Outcomes