summaryrefslogtreecommitdiffstats
path: root/gst/rtpmanager/rtpsession.h
diff options
context:
space:
mode:
authorOlivier Crete <tester@tester.ca>2008-03-11 12:40:58 +0000
committerWim Taymans <wim.taymans@gmail.com>2008-03-11 12:40:58 +0000
commitfe7b1e82ee5fb0a99cdd2249a0e9513afa45bf88 (patch)
treef1d736a15026a098c74bb20b2c6b3e8478d4d220 /gst/rtpmanager/rtpsession.h
parent0b94354a0d2930dfd9ad9dcefb6a68a6b18817c7 (diff)
downloadgst-plugins-bad-fe7b1e82ee5fb0a99cdd2249a0e9513afa45bf88.tar.gz
gst-plugins-bad-fe7b1e82ee5fb0a99cdd2249a0e9513afa45bf88.tar.bz2
gst-plugins-bad-fe7b1e82ee5fb0a99cdd2249a0e9513afa45bf88.zip
gst/rtpmanager/rtpsession.*: Implement collision and loop detection in rtpmanager.
Original commit message from CVS: Patch by: Olivier Crete <tester at tester dot ca> * gst/rtpmanager/rtpsession.c: (find_add_conflicting_addresses), (check_collision), (obtain_source), (rtp_session_create_new_ssrc), (rtp_session_create_source), (rtp_session_process_rtp), (rtp_session_process_sr), (rtp_session_process_rr), (rtp_session_process_sdes), (rtp_session_process_bye), (rtp_session_send_bye_locked), (rtp_session_send_bye), (rtp_session_on_timeout): * gst/rtpmanager/rtpsession.h: Implement collision and loop detection in rtpmanager. Fixes #520626. * gst/rtpmanager/rtpsource.c: (rtp_source_reset), (rtp_source_init): * gst/rtpmanager/rtpsource.h: Add method to reset stats.
Diffstat (limited to 'gst/rtpmanager/rtpsession.h')
-rw-r--r--gst/rtpmanager/rtpsession.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/gst/rtpmanager/rtpsession.h b/gst/rtpmanager/rtpsession.h
index 59703300..e14e2da3 100644
--- a/gst/rtpmanager/rtpsession.h
+++ b/gst/rtpmanager/rtpsession.h
@@ -140,6 +140,20 @@ typedef struct {
} RTPSessionCallbacks;
/**
+ * RTPConflictingAddress:
+ * @address: #GstNetAddress which conflicted
+ * @last_conflict_time: time when the last conflict was seen
+ *
+ * This structure is used to account for addresses that have conflicted to find
+ * loops.
+ */
+
+typedef struct {
+ GstNetAddress address;
+ GstClockTime time;
+} RTPConflictingAddress;
+
+/**
* RTPSession:
* @lock: lock to protect the session
* @source: the source of this session
@@ -149,6 +163,8 @@ typedef struct {
* @activecount: the number of active sources
* @callbacks: callbacks
* @user_data: user data passed in callbacks
+ * @stats: session statistics
+ * @conflicting_addresses: GList of conflicting addresses
*
* The RTP session manager object
*/
@@ -187,6 +203,9 @@ struct _RTPSession {
RTPSessionStats stats;
+ GList *conflicting_addresses;
+ gboolean change_ssrc;
+
/* for mapping clock time to NTP time */
GstClockTime base_time;
};