diff options
author | Robert Jongbloed <robertj@voxlucida.com.au> | 2018-01-23 12:13:43 +0000 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-01-30 05:43:54 +0000 |
commit | 94d7500a7d2589548f210ef0e9cb6d9eba796239 (patch) | |
tree | a6c08f1c5a8290090f6f9f18c1424a6d90694560 /epan/dissectors/packet-rtp.h | |
parent | d328a58fc6ef90db94bb591b949802abbc91a332 (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.h | 15 |
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); |