Problem with vpudec.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Problem with vpudec.

Jump to solution
9,906 Views
pinkisaharan
Contributor II

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..

Labels (1)
1 Solution
6,952 Views
LeonardoSandova
Specialist I

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

View solution in original post

11 Replies
6,952 Views
pinkisaharan
Contributor II

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

0 Kudos
Reply
6,953 Views
LeonardoSandova
Specialist I

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

6,952 Views
ak
Contributor I

Hello Leonardo,

Could you please point to good-plugins patch that you mentioned for step #2?

0 Kudos
Reply
6,952 Views
ak
Contributor I

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'

--------------------

0 Kudos
Reply
6,952 Views
LeonardoSandova
Specialist I

Sorry, I did not read correctly. I am not aware of any patch to fix that warning.

Leo

0 Kudos
Reply
6,952 Views
ieio
Contributor IV

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.

0 Kudos
Reply
6,952 Views
LeonardoSandova
Specialist 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

0 Kudos
Reply
6,952 Views
pinkisaharan
Contributor II

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

0 Kudos
Reply
6,952 Views
LeonardoSandova
Specialist I

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

6,952 Views
harald_krapfenb
Contributor III

Thanks Leo for the patch!

Just applied it to our i.MX6 Linux BSP.

Harald