[gst-devel] assertion `GST_IS_CAPS (caps)' failed
bertrand haut
bertrand.haut at gmail.com
Mon May 15 15:28:51 CEST 2006
I'm trying to port a working plugin for gstreamer 0.8 to gstreamer
0.10. The caps of this plugin are
GST_STATIC_CAPS ("video/x-raw-yuv, "
"width=(int)720, "
"height=(int)576, "
"format=(fourcc){YUY2}"
)
At this moment the chain function is simply :
static GstFlowReturn
gst_undiscret_chain (GstPad *pad, GstBuffer *buf)
{
Gstundiscret *filter;
filter = GST_UNDISCRET (GST_OBJECT_PARENT (pad));
GstBuffer * out_buf;
out_buf = gst_buffer_new_and_alloc (GST_BUFFER_SIZE(buf));
GST_BUFFER_TIMESTAMP (out_buf) = GST_BUFFER_TIMESTAMP (buf);
GST_BUFFER_DURATION (out_buf) = GST_BUFFER_DURATION (buf);
gst_buffer_set_caps (out_buf, GST_PAD_CAPS (filter->srcpad));
memcpy (GST_BUFFER_DATA (out_buf), GST_BUFFER_DATA(buf)
,GST_BUFFER_SIZE(buf) );
gst_buffer_unref (buf);
return gst_pad_push (filter->srcpad, out_buf);
}
If I launch this plugin with
gst-launch-0.10 v4l2src ! undiscret ! xvimagesink
I got the following error message :
berti at neptune:~/code/canal1$ gst-launch-0.10 v4l2src ! undiscret ! xvimagesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
(gst-launch-0.10:30194): GStreamer-CRITICAL **:
gst_caps_get_structure: assertion `GST_IS_CAPS (caps)' failed
(gst-launch-0.10:30194): GStreamer-CRITICAL **: gst_structure_get_int:
assertion `structure != NULL' failed
(gst-launch-0.10:30194): GStreamer-CRITICAL **: gst_caps_intersect:
assertion `GST_IS_CAPS (caps1)' failed
(gst-launch-0.10:30194): GStreamer-CRITICAL **: gst_caps_is_empty:
assertion `GST_IS_CAPS (caps)' failed
(gst-launch-0.10:30194): GStreamer-CRITICAL **: gst_caps_unref:
assertion `caps != NULL' failed
ERROR: from element /pipeline0/xvimagesink0: Could not write to resource.
Additional debug info:
xvimagesink.c(518): gst_xvimagesink_xvimage_new (): /pipeline0/xvimagesink0:
could not get shared memory of 0 bytes
Execution ended after 327741000 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
FREEING pipeline ...
berti at neptune:~/code/canal1$
Why are there such errors ?
note that if I launch
gst-launch-0.10 v4l2src ! undiscret ! fakesink
or if I replace the two last line with
return gst_pad_push (filter->srcpad, buf);
it works.
I'm simply trying to copy the data from one buffer to a second in
order to insert my code which will be a function working on
unsigned char * g_out = (unsigned char *) (GST_BUFFER_DATA(out_buf))
I assume this should be simple.
Thanks for any help.
--
Bertrand Haut
pgp key:B9514013C02E33FA
More information about the gstreamer-devel
mailing list