Hi,
Sorry im new to g-streamer so appologies if my question is basic, Im writing a plugin for a multi-standard audio decoder (dsp), im finding that my set_caps funtion on my sink pad is not being called so i cannot setup the hardware to the correct data type, my pad is setup as follows: static GstStaticPadTemplate pipe0_sink_factory = GST_STATIC_PAD_TEMPLATE( "pipe0-sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS( "audio/x-ac3; " "audio/x-flac; " "audio/mpeg, " "mpegversion = (int) { 1, 4 }, " "layer = (int) { 1, 3 }; " "audio/pn-realaudio; " "audio/x-vorbis; " "audio/x-wma; " )); and I register my set_caps function in my init function as per the boilerplate code: static void gst_axd_init(GstAxd *axd, GstAxdClass *gclass) { g_print("Initialising AXD plugin\n"); axd->pipe0_sinkpad = gst_pad_new_from_static_template( &pipe0_sink_factory, "pipe0-sink"); gst_pad_set_setcaps_function( axd->pipe0_sinkpad, GST_DEBUG_FUNCPTR(gst_axd_set_caps) ); gst_pad_set_getcaps_function( axd->pipe0_sinkpad, GST_DEBUG_FUNCPTR(gst_pad_proxy_getcaps) ); gst_pad_set_chain_function(axd->pipe0_sinkpad, GST_DEBUG_FUNCPTR(gst_axd_chain)); axd->pipe0_srcpad = gst_pad_new_from_static_template( &pipe0_src_factory, "pipe0-src" ); gst_pad_set_getcaps_function( axd->pipe0_srcpad, GST_DEBUG_FUNCPTR(gst_pad_proxy_getcaps) ); gst_element_add_pad(GST_ELEMENT(axd), axd->pipe0_sinkpad); gst_element_add_pad(GST_ELEMENT(axd), axd->pipe0_srcpad); axd->silent = FALSE; but my 'gst_axd_set_caps' function does appear to get called and I end up at pre-roll without setting up the hardware any help appreciated ??? I invoked my plugin with 'gst-launch filesrc location=test.mp3 ! axd ! alsasink Cheers, Neil _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Neil,
> I invoked my plugin with 'gst-launch filesrc location=test.mp3 ! axd ! > alsasink The problem is not your code, but your pipeline. Filesrc outputs buffers without caps by default. Either add a typefind element or a parser (mpegaudioparse) before your decoder. Cheers Tim _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |