blob: 23ec8b8e955e0268bba324188920090bdf22f686 [file] [log] [blame]
Thomas Vander Stichelef4464002006-05-22 14:56:29 +00001/* GStreamer
Wim Taymans5e276952008-11-25 18:03:02 +00002 * Copyright (C) <2005> Wim Taymans <wim.taymans@gmail.com>
Wim Taymans9a5c8cd2005-08-18 10:33:15 +00003 *
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üller230cf412012-11-04 00:07:18 +000016 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000018 */
19
Thomas Vander Stichele7a4f8652005-12-01 14:30:01 +000020#ifndef __GST_RTP_H263P_PAY_H__
21#define __GST_RTP_H263P_PAY_H__
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000022
23#include <gst/gst.h>
Wim Taymanse84b8db2011-11-11 12:32:41 +010024#include <gst/rtp/gstrtpbasepayload.h>
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000025#include <gst/base/gstadapter.h>
26
27G_BEGIN_DECLS
28
Thomas Vander Stichele7a4f8652005-12-01 14:30:01 +000029#define GST_TYPE_RTP_H263P_PAY \
30 (gst_rtp_h263p_pay_get_type())
31#define GST_RTP_H263P_PAY(obj) \
32 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_H263P_PAY,GstRtpH263PPay))
33#define GST_RTP_H263P_PAY_CLASS(klass) \
Stefan Kost1def6692006-06-01 21:07:26 +000034 (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_H263P_PAY,GstRtpH263PPayClass))
Thomas Vander Stichele7a4f8652005-12-01 14:30:01 +000035#define GST_IS_RTP_H263P_PAY(obj) \
36 (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_H263P_PAY))
Stefan Kost1def6692006-06-01 21:07:26 +000037#define GST_IS_RTP_H263P_PAY_CLASS(klass) \
Thomas Vander Stichele7a4f8652005-12-01 14:30:01 +000038 (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_H263P_PAY))
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000039
Thomas Vander Stichele7a4f8652005-12-01 14:30:01 +000040typedef struct _GstRtpH263PPay GstRtpH263PPay;
41typedef struct _GstRtpH263PPayClass GstRtpH263PPayClass;
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000042
Antoine Tremblay0ff05f82007-05-21 08:57:18 +000043typedef enum
44{
45 GST_FRAGMENTATION_MODE_NORMAL = 0,
46 GST_FRAGMENTATION_MODE_SYNC = 1
47} GstFragmentationMode;
48
Thomas Vander Stichele7a4f8652005-12-01 14:30:01 +000049struct _GstRtpH263PPay
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000050{
Wim Taymans249d0082011-11-11 12:25:01 +010051 GstRTPBasePayload payload;
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000052
Antoine Tremblay0ff05f82007-05-21 08:57:18 +000053 GstAdapter *adapter;
Wim Taymans2428a1c2008-10-27 11:03:53 +000054 GstClockTime first_timestamp;
55 GstClockTime first_duration;
Antoine Tremblay0ff05f82007-05-21 08:57:18 +000056 GstFragmentationMode fragmentation_mode;
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000057};
58
Thomas Vander Stichele7a4f8652005-12-01 14:30:01 +000059struct _GstRtpH263PPayClass
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000060{
Wim Taymans249d0082011-11-11 12:25:01 +010061 GstRTPBasePayloadClass parent_class;
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000062};
63
Benjamin Otte3342b162010-03-17 18:23:00 +010064GType gst_rtp_h263p_pay_get_type (void);
65
Thomas Vander Stichele7a4f8652005-12-01 14:30:01 +000066gboolean gst_rtp_h263p_pay_plugin_init (GstPlugin * plugin);
Wim Taymans9a5c8cd2005-08-18 10:33:15 +000067
68G_END_DECLS
69
Thomas Vander Stichele7a4f8652005-12-01 14:30:01 +000070#endif /* __GST_RTP_H263P_PAY_H__ */