diff options
author | Olivier Crete <tester@tester.ca> | 2008-03-11 12:40:58 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2008-03-11 12:40:58 +0000 |
commit | fe7b1e82ee5fb0a99cdd2249a0e9513afa45bf88 (patch) | |
tree | f1d736a15026a098c74bb20b2c6b3e8478d4d220 /gst/rtpmanager/rtpsession.h | |
parent | 0b94354a0d2930dfd9ad9dcefb6a68a6b18817c7 (diff) | |
download | gst-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.h | 19 |
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; }; |