Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 1 | /* GStreamer |
Wim Taymans | 49e501a | 2007-12-10 15:34:19 +0000 | [diff] [blame] | 2 | * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com> |
Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 3 | * |
| 4 | * This library is free software; you can redistribute it and/or |
| 5 | * modify it under the terms of the GNU Library General Public |
| 6 | * License as published by the Free Software Foundation; either |
| 7 | * version 2 of the License, or (at your option) any later version. |
| 8 | * |
| 9 | * This library is distributed in the hope that it will be useful, |
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 12 | * Library General Public License for more details. |
| 13 | * |
| 14 | * You should have received a copy of the GNU Library General Public |
| 15 | * License along with this library; if not, write to the |
Tim-Philipp Müller | 230cf41 | 2012-11-04 00:07:18 +0000 | [diff] [blame] | 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, |
| 17 | * Boston, MA 02110-1301, USA. |
Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 18 | */ |
| 19 | |
| 20 | #ifndef __GST_RTP_PT_DEMUX_H__ |
| 21 | #define __GST_RTP_PT_DEMUX_H__ |
| 22 | |
| 23 | #include <gst/gst.h> |
| 24 | |
| 25 | #define GST_TYPE_RTP_PT_DEMUX (gst_rtp_pt_demux_get_type()) |
Tim-Philipp Müller | 10d6ba4 | 2007-08-23 21:39:58 +0000 | [diff] [blame] | 26 | #define GST_RTP_PT_DEMUX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_PT_DEMUX,GstRtpPtDemux)) |
| 27 | #define GST_RTP_PT_DEMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_PT_DEMUX,GstRtpPtDemuxClass)) |
Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 28 | #define GST_IS_RTP_PT_DEMUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_PT_DEMUX)) |
| 29 | #define GST_IS_RTP_PT_DEMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_PT_DEMUX)) |
| 30 | |
Tim-Philipp Müller | 10d6ba4 | 2007-08-23 21:39:58 +0000 | [diff] [blame] | 31 | typedef struct _GstRtpPtDemux GstRtpPtDemux; |
| 32 | typedef struct _GstRtpPtDemuxClass GstRtpPtDemuxClass; |
| 33 | typedef struct _GstRtpPtDemuxPad GstRtpPtDemuxPad; |
Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 34 | |
Tim-Philipp Müller | 10d6ba4 | 2007-08-23 21:39:58 +0000 | [diff] [blame] | 35 | struct _GstRtpPtDemux |
Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 36 | { |
| 37 | GstElement parent; /**< parent class */ |
| 38 | |
| 39 | GstPad *sink; /**< the sink pad */ |
| 40 | guint16 last_pt; /**< pt of the last packet 0xFFFF if none */ |
Tim-Philipp Müller | 10d6ba4 | 2007-08-23 21:39:58 +0000 | [diff] [blame] | 41 | GSList *srcpads; /**< a linked list of GstRtpPtDemuxPad objects */ |
Mathieu Duponchelle | 82d0950 | 2017-11-28 01:11:54 +0100 | [diff] [blame] | 42 | GValue ignored_pts; /**< a GstValueArray of payload types that will not have pads created for */ |
Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 43 | }; |
| 44 | |
Tim-Philipp Müller | 10d6ba4 | 2007-08-23 21:39:58 +0000 | [diff] [blame] | 45 | struct _GstRtpPtDemuxClass |
Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 46 | { |
| 47 | GstElementClass parent_class; |
| 48 | |
Wim Taymans | 03bf43d | 2007-04-11 13:49:54 +0000 | [diff] [blame] | 49 | /* get the caps for pt */ |
Tim-Philipp Müller | 10d6ba4 | 2007-08-23 21:39:58 +0000 | [diff] [blame] | 50 | GstCaps* (*request_pt_map) (GstRtpPtDemux *demux, guint pt); |
Wim Taymans | 03bf43d | 2007-04-11 13:49:54 +0000 | [diff] [blame] | 51 | |
Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 52 | /* signal emmited when a new PT is found from the incoming stream */ |
Tim-Philipp Müller | 10d6ba4 | 2007-08-23 21:39:58 +0000 | [diff] [blame] | 53 | void (*new_payload_type) (GstRtpPtDemux *demux, guint pt, GstPad * pad); |
Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 54 | |
| 55 | /* signal emitted when the payload type changes */ |
Tim-Philipp Müller | 10d6ba4 | 2007-08-23 21:39:58 +0000 | [diff] [blame] | 56 | void (*payload_type_change) (GstRtpPtDemux *demux, guint pt); |
Wim Taymans | 2a8cfc6 | 2007-05-23 13:08:52 +0000 | [diff] [blame] | 57 | |
Tim-Philipp Müller | 10d6ba4 | 2007-08-23 21:39:58 +0000 | [diff] [blame] | 58 | void (*clear_pt_map) (GstRtpPtDemux *demux); |
Wim Taymans | f0d1ab1 | 2007-04-03 09:13:17 +0000 | [diff] [blame] | 59 | }; |
| 60 | |
| 61 | GType gst_rtp_pt_demux_get_type (void); |
| 62 | |
| 63 | #endif /* __GST_RTP_PT_DEMUX_H__ */ |