aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rtp.h
diff options
context:
space:
mode:
authorRobert Jongbloed <robertj@voxlucida.com.au>2018-01-23 12:13:43 +0000
committerAnders Broman <a.broman58@gmail.com>2018-01-30 05:43:54 +0000
commit94d7500a7d2589548f210ef0e9cb6d9eba796239 (patch)
treea6c08f1c5a8290090f6f9f18c1424a6d90694560 /epan/dissectors/packet-rtp.h
parentd328a58fc6ef90db94bb591b949802abbc91a332 (diff)
SDP/RTP: Support for "bundled" media.
Modern SDP usage (e.g. SIP, WebRTC) can "bundle" multiple RTP media streams on a single port. Thus the RTP dissector has to be able to handle audio and video at the same time, so the gboolean flag in _rtp_info was changed to a bit mask. The SDP parsing was then changed to detect multiple "m=" lines using the same port, and combine their audio/video bit masks, and the rtp_dyn_payload used has all the audio and video payload descriptions. Change-Id: Ifa3c034260f892ed005fe28647d28f3b0b1b05cf Reviewed-on: https://code.wireshark.org/review/25431 Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-rtp.h')
-rw-r--r--epan/dissectors/packet-rtp.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/epan/dissectors/packet-rtp.h b/epan/dissectors/packet-rtp.h
index 18a726fcad..91746721e7 100644
--- a/epan/dissectors/packet-rtp.h
+++ b/epan/dissectors/packet-rtp.h
@@ -30,11 +30,16 @@
#include "packet-btavdtp.h"
+
+#define RTP_MEDIA_AUDIO 1
+#define RTP_MEDIA_VIDEO 2
+#define RTP_MEDIA_OTHER 4
+
struct _rtp_info {
unsigned int info_version;
gboolean info_padding_set;
gboolean info_marker_set;
- gboolean info_is_video;
+ guint32 info_media_types;
unsigned int info_payload_type;
unsigned int info_padding_count;
guint16 info_seq_num;
@@ -177,7 +182,7 @@ struct _rtp_conversation_info
{
gchar method[MAX_RTP_SETUP_METHOD_SIZE + 1];
guint32 frame_number; /* the frame where this conversation is started */
- gboolean is_video;
+ guint32 media_types;
rtp_dyn_payload_t *rtp_dyn_payload; /* the dynamic RTP payload info - see comments above */
guint32 extended_seqno; /* the sequence number, extended to a 32-bit
@@ -200,7 +205,7 @@ void rtp_add_address(packet_info *pinfo,
int other_port,
const gchar *setup_method,
guint32 setup_frame_number,
- gboolean is_video,
+ guint32 media_types,
rtp_dyn_payload_t *rtp_dyn_payload);
/* Add an SRTP conversation with the given details */
@@ -211,7 +216,7 @@ void srtp_add_address(packet_info *pinfo,
int other_port,
const gchar *setup_method,
guint32 setup_frame_number,
- gboolean is_video,
+ guint32 media_types,
rtp_dyn_payload_t *rtp_dyn_payload,
struct srtp_info *srtp_info);
@@ -219,4 +224,4 @@ void srtp_add_address(packet_info *pinfo,
void
bluetooth_add_address(packet_info *pinfo, address *addr, guint32 stream_number,
const gchar *setup_method, guint32 setup_frame_number,
- gboolean is_video, void *data);
+ guint32 media_types, void *data);