rtpmanager: Update codes based on 1.18.4
[platform/upstream/gst-plugins-good.git] / gst / rtpmanager / gstrtpptdemux.h
index 93be395..4beae86 100644 (file)
@@ -1,5 +1,5 @@
 /* GStreamer
- * Copyright (C) <2007> Wim Taymans <wim@fluendo.com>
+ * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_PT_DEMUX_H__
 #include <gst/gst.h>
 
 #define GST_TYPE_RTP_PT_DEMUX            (gst_rtp_pt_demux_get_type())
-#define GST_RTP_PT_DEMUX(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_PT_DEMUX,GstRTPPtDemux))
-#define GST_RTP_PT_DEMUX_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_PT_DEMUX,GstRTPPtDemuxClass))
+#define GST_RTP_PT_DEMUX(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_PT_DEMUX,GstRtpPtDemux))
+#define GST_RTP_PT_DEMUX_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_PT_DEMUX,GstRtpPtDemuxClass))
 #define GST_IS_RTP_PT_DEMUX(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_PT_DEMUX))
 #define GST_IS_RTP_PT_DEMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_PT_DEMUX))
 
-typedef struct _GstRTPPtDemux GstRTPPtDemux;
-typedef struct _GstRTPPtDemuxClass GstRTPPtDemuxClass;
-typedef struct _GstRTPPtDemuxPad GstRTPPtDemuxPad;
+typedef struct _GstRtpPtDemux GstRtpPtDemux;
+typedef struct _GstRtpPtDemuxClass GstRtpPtDemuxClass;
+typedef struct _GstRtpPtDemuxPad GstRtpPtDemuxPad;
 
-struct _GstRTPPtDemux
+struct _GstRtpPtDemux
 {
-  GstElement parent;  /**< parent class */
+  GstElement parent;  /*< parent class */
 
-  GstPad *sink;       /**< the sink pad */
-  guint16 last_pt;    /**< pt of the last packet 0xFFFF if none */
-  GSList *srcpads;    /**< a linked list of GstRTPPtDemuxPad objects */
+  GstPad *sink;       /*< the sink pad */
+  guint16 last_pt;    /*< pt of the last packet 0xFFFF if none */
+  GSList *srcpads;    /*< a linked list of GstRtpPtDemuxPad objects */
+  GValue ignored_pts; /*< a GstValueArray of payload types that will not have pads created for */
 };
 
-struct _GstRTPPtDemuxClass
+struct _GstRtpPtDemuxClass
 {
   GstElementClass parent_class;
 
-  /* signal emmited when a new PT is found from the incoming stream */
-  void (*new_payload_type) (GstElement * element, gint pt, GstPad * pad);
+  /* get the caps for pt */
+  GstCaps* (*request_pt_map)      (GstRtpPtDemux *demux, guint pt);
+
+  /* signal emitted when a new PT is found from the incoming stream */
+  void     (*new_payload_type)    (GstRtpPtDemux *demux, guint pt, GstPad * pad);
 
   /* signal emitted when the payload type changes */
-  void (*payload_type_change) (GstElement * element, gint pt);
+  void     (*payload_type_change) (GstRtpPtDemux *demux, guint pt);
+
+  void     (*clear_pt_map)        (GstRtpPtDemux *demux);
 };
 
 GType gst_rtp_pt_demux_get_type (void);