mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 07:58:51 +00:00
dvb: More fixups to 1.0
Not tested yet ! Conflicts: sys/dvb/gstdvbsrc.c
This commit is contained in:
parent
7a72c961de
commit
48ae90aff8
2 changed files with 12 additions and 23 deletions
|
@ -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,
|
static void dvb_base_bin_pat_info_cb (DvbBaseBin * dvbbasebin,
|
||||||
const GstStructure * pat);
|
const GstStructure * pat);
|
||||||
static void dvb_base_bin_pmt_info_cb (DvbBaseBin * dvbbasebin,
|
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,
|
static GstPad *dvb_base_bin_request_new_pad (GstElement * element,
|
||||||
GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
|
GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
|
||||||
static void dvb_base_bin_release_pad (GstElement * element, GstPad * pad);
|
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);
|
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 *
|
static DvbBaseBinStream *
|
||||||
dvb_base_bin_add_stream (DvbBaseBin * dvbbasebin, guint16 pid)
|
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 };
|
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 <alessandro@nnva.org>");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dvb_base_bin_class_init (DvbBaseBinClass * klass)
|
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;
|
bin_class->handle_message = dvb_base_bin_handle_message;
|
||||||
|
|
||||||
element_class = GST_ELEMENT_CLASS (klass);
|
element_class = GST_ELEMENT_CLASS (klass);
|
||||||
|
|
||||||
element_class->change_state = dvb_base_bin_change_state;
|
element_class->change_state = dvb_base_bin_change_state;
|
||||||
element_class->request_new_pad = dvb_base_bin_request_new_pad;
|
element_class->request_new_pad = dvb_base_bin_request_new_pad;
|
||||||
element_class->release_pad = dvb_base_bin_release_pad;
|
element_class->release_pad = dvb_base_bin_release_pad;
|
||||||
|
@ -346,8 +334,8 @@ dvb_base_bin_init (DvbBaseBin * dvbbasebin)
|
||||||
|
|
||||||
/* Expose tsparse source pad */
|
/* Expose tsparse source pad */
|
||||||
pad = gst_element_get_static_pad (dvbbasebin->tsparse, "src");
|
pad = gst_element_get_static_pad (dvbbasebin->tsparse, "src");
|
||||||
gst_pad_add_buffer_probe (pad, G_CALLBACK (dvb_base_bin_ts_pad_probe_cb),
|
gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM,
|
||||||
dvbbasebin);
|
dvb_base_bin_ts_pad_probe_cb, dvbbasebin, NULL);
|
||||||
ghost = gst_ghost_pad_new ("src", pad);
|
ghost = gst_ghost_pad_new ("src", pad);
|
||||||
gst_element_add_pad (GST_ELEMENT (dvbbasebin), ghost);
|
gst_element_add_pad (GST_ELEMENT (dvbbasebin), ghost);
|
||||||
|
|
||||||
|
|
|
@ -1020,6 +1020,7 @@ gst_dvbsrc_create (GstPushSrc * element, GstBuffer ** buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
g_mutex_unlock (&object->tune_mutex);
|
g_mutex_unlock (&object->tune_mutex);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue