Codebase list libnice / 242b113
Use GstPushSrc as a base class Olivier CrĂȘte 11 years ago
2 changed file(s) with 10 addition(s) and 15 deletion(s). Raw diff Collapse all Expand all
4949
5050 static GstFlowReturn
5151 gst_nice_src_create (
52 GstBaseSrc *basesrc,
53 guint64 offset,
54 guint length,
52 GstPushSrc *basesrc,
5553 GstBuffer **buffer);
5654
5755 static gboolean
9290 GST_PAD_ALWAYS,
9391 GST_STATIC_CAPS_ANY);
9492
95 G_DEFINE_TYPE (GstNiceSrc, gst_nice_src, GST_TYPE_BASE_SRC);
93 G_DEFINE_TYPE (GstNiceSrc, gst_nice_src, GST_TYPE_PUSH_SRC);
9694
9795 enum
9896 {
105103 static void
106104 gst_nice_src_class_init (GstNiceSrcClass *klass)
107105 {
106 GstPushSrcClass *gstpushsrc_class;
108107 GstBaseSrcClass *gstbasesrc_class;
109108 GstElementClass *gstelement_class;
110109 GObjectClass *gobject_class;
112111 GST_DEBUG_CATEGORY_INIT (nicesrc_debug, "nicesrc",
113112 0, "libnice source");
114113
114 gstpushsrc_class = (GstPushSrcClass *) klass;
115 gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_nice_src_create);
116
115117 gstbasesrc_class = (GstBaseSrcClass *) klass;
116 gstbasesrc_class->create = GST_DEBUG_FUNCPTR (gst_nice_src_create);
117118 gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_nice_src_unlock);
118119 gstbasesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_nice_src_unlock_stop);
119120
261262
262263 static GstFlowReturn
263264 gst_nice_src_create (
264 GstBaseSrc *basesrc,
265 guint64 offset,
266 guint length,
265 GstPushSrc *basesrc,
267266 GstBuffer **buffer)
268267 {
269268 GstNiceSrc *nicesrc = GST_NICE_SRC (basesrc);
270269
271270 GST_LOG_OBJECT (nicesrc, "create called");
272
273 nicesrc->offset = offset;
274271
275272 GST_OBJECT_LOCK (basesrc);
276273 if (nicesrc->unlocked) {
3838 #define _GSTNICESRC_H
3939
4040 #include <gst/gst.h>
41 #include <gst/base/gstbasesrc.h>
41 #include <gst/base/gstpushsrc.h>
4242
4343 #include <nice/nice.h>
4444
5959
6060 struct _GstNiceSrc
6161 {
62 GstBaseSrc parent;
62 GstPushSrc parent;
6363 GstPad *srcpad;
6464 NiceAgent *agent;
6565 guint stream_id;
6666 guint component_id;
6767 GMainContext *mainctx;
6868 GMainLoop *mainloop;
69 guint64 offset;
70 GstFlowReturn flow_ret;
7169 GQueue *outbufs;
7270 gboolean unlocked;
7371 GSource *idle_source;
7775
7876 struct _GstNiceSrcClass
7977 {
80 GstBaseSrcClass parent_class;
78 GstPushSrcClass parent_class;
8179 };
8280
8381 GType gst_nice_src_get_type (void);