From 48ae90aff89804838f084492c2340ba85944aa94 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 11 Jul 2012 08:10:18 +0200 Subject: [PATCH] dvb: More fixups to 1.0 Not tested yet ! Conflicts: sys/dvb/gstdvbsrc.c --- sys/dvb/dvbbasebin.c | 34 +++++++++++----------------------- sys/dvb/gstdvbsrc.c | 1 + 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/sys/dvb/dvbbasebin.c b/sys/dvb/dvbbasebin.c index 223ba8a2ac..e2ba8c489b 100644 --- a/sys/dvb/dvbbasebin.c +++ b/sys/dvb/dvbbasebin.c @@ -107,7 +107,7 @@ static void dvb_base_bin_handle_message (GstBin * bin, GstMessage * message); static void dvb_base_bin_pat_info_cb (DvbBaseBin * dvbbasebin, const GstStructure * pat); static void dvb_base_bin_pmt_info_cb (DvbBaseBin * dvbbasebin, - GstStructure * pmt); + const GstStructure * pmt); static GstPad *dvb_base_bin_request_new_pad (GstElement * element, GstPadTemplate * templ, const gchar * name, const GstCaps * caps); static void dvb_base_bin_release_pad (GstElement * element, GstPad * pad); @@ -121,6 +121,13 @@ static void dvb_base_bin_uri_handler_init (gpointer g_iface, static void dvb_base_bin_program_destroy (gpointer data); +#define dvb_base_bin_parent_class parent_class +G_DEFINE_TYPE_EXTENDED (DvbBaseBin, dvb_base_bin, GST_TYPE_BIN, + 0, + G_IMPLEMENT_INTERFACE (GST_TYPE_URI_HANDLER, + dvb_base_bin_uri_handler_init)); + + static DvbBaseBinStream * dvb_base_bin_add_stream (DvbBaseBin * dvbbasebin, guint16 pid) { @@ -174,26 +181,6 @@ dvb_base_bin_get_program (DvbBaseBin * dvbbasebin, gint program_number) static guint signals [LAST_SIGNAL] = { 0 }; */ -GST_BOILERPLATE_FULL (DvbBaseBin, dvb_base_bin, GstBin, GST_TYPE_BIN, - dvb_base_bin_setup_interfaces); - -static void -dvb_base_bin_base_init (gpointer klass) -{ - GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - - element_class->request_new_pad = dvb_base_bin_request_new_pad; - element_class->release_pad = dvb_base_bin_release_pad; - - gst_element_class_add_static_pad_template (element_class, &program_template); - gst_element_class_add_static_pad_template (element_class, &src_template); - - gst_element_class_set_details_simple (element_class, "DVB bin", - "Source/Bin/Video", - "Access descramble and split DVB streams", - "Alessandro Decina "); -} - static void dvb_base_bin_class_init (DvbBaseBinClass * klass) { @@ -231,6 +218,7 @@ dvb_base_bin_class_init (DvbBaseBinClass * klass) bin_class->handle_message = dvb_base_bin_handle_message; element_class = GST_ELEMENT_CLASS (klass); + element_class->change_state = dvb_base_bin_change_state; element_class->request_new_pad = dvb_base_bin_request_new_pad; element_class->release_pad = dvb_base_bin_release_pad; @@ -346,8 +334,8 @@ dvb_base_bin_init (DvbBaseBin * dvbbasebin) /* Expose tsparse source pad */ pad = gst_element_get_static_pad (dvbbasebin->tsparse, "src"); - gst_pad_add_buffer_probe (pad, G_CALLBACK (dvb_base_bin_ts_pad_probe_cb), - dvbbasebin); + gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM, + dvb_base_bin_ts_pad_probe_cb, dvbbasebin, NULL); ghost = gst_ghost_pad_new ("src", pad); gst_element_add_pad (GST_ELEMENT (dvbbasebin), ghost); diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c index 251773a1f1..00eddc4215 100644 --- a/sys/dvb/gstdvbsrc.c +++ b/sys/dvb/gstdvbsrc.c @@ -1020,6 +1020,7 @@ gst_dvbsrc_create (GstPushSrc * element, GstBuffer ** buf) } g_mutex_unlock (&object->tune_mutex); + return retval; } -- 2.34.1