1 /* 2 * Copyright 2007 Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com> 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 16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 * Boston, MA 02110-1301, USA. 18 */ 19 20 #ifndef __GST_PCAP_PARSE_H__ 21 #define __GST_PCAP_PARSE_H__ 22 23 #include <gst/gst.h> 24 #include <gst/base/gstadapter.h> 25 26 G_BEGIN_DECLS 27 28 #define GST_TYPE_PCAP_PARSE \ 29 (gst_pcap_parse_get_type ()) 30 #define GST_PCAP_PARSE(obj) \ 31 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PCAP_PARSE, GstPcapParse)) 32 #define GST_PCAP_PARSE_CLASS(klass) \ 33 (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PCAP_PARSE, GstPcapParseClass)) 34 #define GST_IS_PCAP_PARSE(obj) \ 35 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PCAP_PARSE)) 36 #define GST_IS_PCAP_PARSE_CLASS(klass) \ 37 (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PCAP_PARSE)) 38 39 typedef struct _GstPcapParse GstPcapParse; 40 typedef struct _GstPcapParseClass GstPcapParseClass; 41 42 typedef enum 43 { 44 PCAP_PARSE_STATE_CREATED, 45 PCAP_PARSE_STATE_PARSING, 46 } GstPcapParseState; 47 48 typedef enum 49 { 50 LINKTYPE_ETHER = 1, 51 LINKTYPE_RAW = 101, 52 LINKTYPE_SLL = 113 53 } GstPcapParseLinktype; 54 55 /** 56 * GstPcapParse: 57 * 58 * GstPcapParse element. 59 */ 60 61 struct _GstPcapParse 62 { 63 GstElement element; 64 65 /*< private >*/ 66 GstPad * sink_pad; 67 GstPad * src_pad; 68 69 /* properties */ 70 gint64 src_ip; 71 gint64 dst_ip; 72 gint32 src_port; 73 gint32 dst_port; 74 GstCaps *caps; 75 gint64 offset; 76 77 /* state */ 78 GstAdapter * adapter; 79 gboolean initialized; 80 gboolean swap_endian; 81 gboolean nanosecond_timestamp; 82 gint64 cur_packet_size; 83 GstClockTime cur_ts; 84 GstClockTime base_ts; 85 GstPcapParseLinktype linktype; 86 87 gboolean newsegment_sent; 88 }; 89 90 struct _GstPcapParseClass 91 { 92 GstElementClass parent_class; 93 }; 94 95 GType gst_pcap_parse_get_type (void); 96 97 G_END_DECLS 98 99 #endif /* __GST_PCAP_PARSE_H__ */ 100