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



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.