Wireshark  4.3.0
The Wireshark network protocol analyzer
tap-rtp-analysis.h
Go to the documentation of this file.
1 
19 #ifndef __TAP_RTP_ANALYSIS_H__
20 #define __TAP_RTP_ANALYSIS_H__
21 
22 #include <epan/address.h>
23 #include <epan/packet_info.h>
24 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif /* __cplusplus */
33 
34 /****************************************************************************/
35 /* structure that holds the information about the forward and reversed direction */
36 typedef struct _bw_history_item {
37  double time;
38  uint32_t bytes;
40 
41 #define BUFF_BW 300
42 
43 typedef struct _tap_rtp_stat_t {
44  bool first_packet;
45  /* use (flags & STAT_FLAG_FIRST) instead */
46  /* all of the following fields will be initialized after
47  * rtppacket_analyse has been called
48  */
49  uint32_t flags; /* see STAT_FLAG-defines below */
50  uint16_t seq_num;
51  uint64_t timestamp; /* The generated "extended" timestamp */
52  uint64_t seq_timestamp; /* The last in-sequence extended timestamp */
53  double bandwidth;
54  bw_history_item bw_history[BUFF_BW];
55  uint16_t bw_start_index;
56  uint16_t bw_index;
57  uint32_t total_bytes;
58  uint32_t clock_rate;
59  double delta;
60  double jitter;
61  double diff;
62  double skew;
63  double sumt;
64  double sumTS;
65  double sumt2;
66  double sumtTS;
67  double time;
68  double start_time;
69  double lastnominaltime;
70  double lastarrivaltime;
71  double min_delta;
72  double max_delta;
73  double mean_delta;
74  double min_jitter;
75  double max_jitter;
76  double max_skew;
77  double mean_jitter;
78  uint32_t max_nr;
79  uint16_t start_seq_nr;
80  uint16_t stop_seq_nr;
81  uint32_t total_nr;
82  uint32_t sequence;
83  bool under;
84  int seq_cycles;
85  uint16_t pt;
86  int reg_pt;
87  uint32_t first_packet_num;
88  unsigned last_payload_len;
90 
91 typedef struct _tap_rtp_save_data_t {
92  uint32_t timestamp;
93  unsigned int payload_type;
94  size_t payload_len;
96 
97 #define PT_UNDEFINED -1
98 
99 /* status flags for the flags parameter in tap_rtp_stat_t */
100 #define STAT_FLAG_FIRST 0x001
101 #define STAT_FLAG_MARKER 0x002
102 #define STAT_FLAG_WRONG_SEQ 0x004
103 #define STAT_FLAG_PT_CHANGE 0x008
104 #define STAT_FLAG_PT_CN 0x010
105 #define STAT_FLAG_FOLLOW_PT_CN 0x020
106 #define STAT_FLAG_REG_PT_CHANGE 0x040
107 #define STAT_FLAG_WRONG_TIMESTAMP 0x080
108 #define STAT_FLAG_PT_T_EVENT 0x100
109 #define STAT_FLAG_DUP_PKT 0x200
110 
111 /* forward */
112 struct _rtp_info;
113 
114 /* function for analysing an RTP packet. Called from rtp_analysis and rtp_streams */
115 extern void rtppacket_analyse(tap_rtp_stat_t *statinfo,
116  const packet_info *pinfo,
117  const struct _rtp_info *rtpinfo);
118 
119 #ifdef __cplusplus
120 }
121 #endif /* __cplusplus */
122 
123 #endif /* __TAP_RTP_ANALYSIS_H__ */
Definition: tap-rtp-analysis.h:36
Definition: packet_info.h:44
Definition: packet-rtp.h:29
Definition: tap-rtp-analysis.h:91
Definition: tap-rtp-analysis.h:43
double time
Definition: tap-rtp-analysis.h:67
bool first_packet
Definition: tap-rtp-analysis.h:44
double start_time
Definition: tap-rtp-analysis.h:68