Hi All,
I am using iMX6q Sabre board for Smart Devices. I have compiled my code with all gstreamer plugins but still i am getting errors in video streaming.
I have entered the command:
gst-launch filesrc location=test.mp4 typefind=true ! aiurdemux ! vpudec ! filesink
And the error is like this:
ERROR: no element present 'vpudec'
I have also tried some other decoders present here in source code. but I am not able to stream any video.
gst-launch filesrc location=akiyo.mp4 ! mfw_mpeg4aspdecoder ! fbdevsink
and the error is:
MPEG4_ASP_D_01.02.01 build on Dec 8 2011 18:23:35.
MFW_GST_MPEG4ASP_DECODER_PLUGIN 3.0.7 build on Jun 5 2013 12:55:34.
WARNING: erroneous pipeline: could not link mfw_gst_mpeg4asp_decoder_info_t0 to fbdevsink0..
Can anybody help me in solving this issue and tell me how to enable the vpudec & vpuenc.
Thanks..
Solved! Go to Solution.
You still do not have the vpudec. Also, are you following the Multimedia User Guide to enable & compile all GST stuff?
No idea about those logs you are seeing :smileysad:
For step 2, the patch is attached on my previous post. Just prep the package (good plugins), move to the source folder and apply the patch (patch -p1 < patch_name), then compile again (scbuild & scdeploy)
Leo
hi Leo,
I have tried with the 1st step told by you. but again i am getting the error:
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
MAX resolution 1024x768
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstAmrParse'
(gst-plugin-scanner:3270): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstQTMux'
(gst-plugin-scanner:3270): GLib-GObject-CRITICAL **: g_type_set_qdata: assertion `node != NULL' failed
(gst-plugin-scanner:3270): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(gst-plugin-scanner:3270): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstRtpSsrcDemux'
(gst-plugin-scanner:3270): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstAacParse'
(gst-plugin-scanner:3270): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstRTPMux'
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
WARNING: erroneous pipeline: no element "vpudec"
And in case of 2nd step, can you please tell the name of patch u have talked about or can give the link for that, whichever possible.
Thanks
You still do not have the vpudec. Also, are you following the Multimedia User Guide to enable & compile all GST stuff?
No idea about those logs you are seeing :smileysad:
For step 2, the patch is attached on my previous post. Just prep the package (good plugins), move to the source folder and apply the patch (patch -p1 < patch_name), then compile again (scbuild & scdeploy)
Leo
Hello Leonardo,
Could you please point to good-plugins patch that you mentioned for step #2?
Patch you referred is for ffmpeg plugin, I wanted to know if there is patch for gst-plugins-good (as quoted above) to fix following warnings:
-------------
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3270): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
MAX resolution 1024x768
(gst-plugin-scanner:3270): GLib-GObject-WARNING **: cannot register existing type `GstAmrParse'
--------------------
Sorry, I did not read correctly. I am not aware of any patch to fix that warning.
Leo
Hi Leonardo, I added the patch, it failed when applied to gst-plugins-good-0.10.30, but it successfully worked when applied to gst-ffmpeg.
Now I can use software co/dedecs.
Thanks,
i.
You still do not have the Freescale GStreamer plugins. Make sure you have selected the gst-fsl-plugins and build again. Then on the board, search for the FSL elements with gst-inspect (e.g. gst-inspect | grep vpu ).
Leo
hi Leo,
I have build with the gst-fsl-plugin and searched for the FSL elements with gst-inspect, But I am getting the error:
gst-inspect | grep vpu
(gst-plugin-scanner:3349): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-0.10/libgstffmpeg.so': /usr/lib/gstreamer-0.10/libgstffmpeg.so: undefined symbol: GST_FLOW_IS_FATAL
(gst-plugin-scanner:3349): GLib-GObject-WARNING **: cannot register existing type `GstAacParse'
(gst-plugin-scanner:3349): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
MAX resolution 1024x768
(gst-plugin-scanner:3349): GLib-GObject-WARNING **: cannot register existing type `GstQTMux'
(gst-plugin-scanner:3349): GLib-GObject-CRITICAL **: g_type_set_qdata: assertion `node != NULL' failed
(gst-plugin-scanner:3349): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3349): GLib-GObject-WARNING **: cannot register existing type `GstRTPMux'
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_pad_template_new: assertion `caps != NULL' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-plugin-scanner:3349): GLib-GObject-WARNING **: cannot register existing type `GstAmrParse'
(gst-plugin-scanner:3349): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:3349): GLib-GObject-WARNING **: cannot register existing type `GstRtpSsrcDemux'
(gst-plugin-scanner:3349): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
(gst-plugin-scanner:3349): GStreamer-CRITICAL **: gst_element_register: assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed
Oh I see. The are some macros on the set of gst-ffmpeg plugins which somehow are not defined. You have two options:
1. In case you do not need any gst-ffmpegs elements, you can remove all related plugins. In case you have your rootfs NFS mounted ( ./ltib -m clean -p gst-ffmpeg) ,or simple remove it on the board's console (rm /usr/lib/gstreamer-0.10/./libgstffmpeg.so).
2. In case you need them, patch the attached file and build and deploy to the rootfs. The patch uses other defined macros.
Leo
Thanks Leo for the patch!
Just applied it to our i.MX6 Linux BSP.
Harald