1 /* GStreamer Interleaved RTSP parser 2 * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> 3 * Copyright (C) 2011 Nokia Corporation. All rights reserved. 4 * Contact: Stefan Kost <stefan.kost@nokia.com> 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Library General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Library General Public License for more details. 15 * 16 * You should have received a copy of the GNU Library General Public 17 * License along with this library; if not, write to the 18 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 * Boston, MA 02110-1301, USA. 20 */ 21 22 #ifndef __GST_IRTSP_PARSE_H__ 23 #define __GST_IRTSP_PARSE_H__ 24 25 #include <gst/gst.h> 26 #include <gst/base/gstbaseparse.h> 27 28 G_BEGIN_DECLS 29 #define GST_TYPE_IRTSP_PARSE \ 30 (gst_irtsp_parse_get_type()) 31 #define GST_IRTSP_PARSE(obj) \ 32 (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_IRTSP_PARSE, GstIRTSPParse)) 33 #define GST_IRTSP_PARSE_CLASS(klass) \ 34 (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_IRTSP_PARSE, GstIRTSPParseClass)) 35 #define GST_IS_IRTSP_PARSE(obj) \ 36 (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_IRTSP_PARSE)) 37 #define GST_IS_IRTSP_PARSE_CLASS(klass) \ 38 (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_IRTSP_PARSE)) 39 typedef struct _GstIRTSPParse GstIRTSPParse; 40 typedef struct _GstIRTSPParseClass GstIRTSPParseClass; 41 42 typedef enum 43 { 44 IRTSP_SEARCH_FRAME, 45 IRTSP_PARSE_FRAME, 46 IRTSP_FLUSH_FRAME, 47 IRTSP_SKIP_FRAME 48 } RtspParserState; 49 50 /** 51 * GstIRTSPParse: 52 * 53 * The opaque GstIRTSPParse object 54 */ 55 struct _GstIRTSPParse 56 { 57 GstBaseParse baseparse; 58 59 guint8 target_channel_id; 60 /*< private > */ 61 RtspParserState state; 62 guint16 frame_size; 63 guint current_offset; 64 gboolean discont; 65 }; 66 67 /** 68 * GstIRTSPParseClass: 69 * @parent_class: Element parent class. 70 * 71 * The opaque GstIRTSPParseClass data structure. 72 */ 73 struct _GstIRTSPParseClass 74 { 75 GstBaseParseClass baseparse_class; 76 }; 77 78 GType gst_irtsp_parse_get_type (void); 79 GST_ELEMENT_REGISTER_DECLARE (irtspparse); 80 81 G_END_DECLS 82 #endif /* __GST_IRTSP_PARSE_H__ */ 83