Hi All,
I'm trying to decode a MJPEG stream from IP camera. It works with jpegdec, but I can't get vpudec to work.
# gst-launch souphttpsrc location=http://10.0.0.5:8081 ! queue ! jpegdec ! autovideosink
The stream is MJPEG over HTTP. Does vpu support this type of MJPEG, how can I get it to work? Thanks.
If I run it with vpudec, i got:
/root # gst-launch souphttpsrc location=http://10.0.0.5:8081 ! queue ! vpudec ! autovideosink
/root # gst-launch souphttpsrc location=http://10.0.0.5:8081 ! queue ! vpudec ! autovideosink
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3386): GLib-GObject-WARNING **: cannot register existing type `GstVorbisDec'
(gst-plugin-scanner:3386): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3386): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
Setting pipeline to PAUSED ...
this is powerful mx6q
MFW_GST_V4LSINK_PLUGIN 3.0.1 build on Sep 9 2013 17:35:53.
[INFO] Product Info: i.MX6Q/D/S
vpudec versions :smileyhappy:
plugin: 3.0.1
wrapper: 1.0.28(VPUWRAPPER_ARM_LINUX Build on Sep 9 2013 17:27:45)
vpulib: 5.4.6
firmware: 2.1.5.32515
Pipeline is PREROLLING ...
** (gst-launch-0.10:3385): CRITICAL **: gst_vpudec_chain: assertion `vpudec->context.handle' failed
The assertion is coming from the function which does the decoding task, so there must be something (header?) on the input data that vpudec does not like. Have you tried other MJPEG streams?
Leo
I tested with Sanyo HD2100 IP camera, same result.
Seems all JPEGs from IP cameras are JPEG/EXIF which vpudec doesn't like.