summaryrefslogtreecommitdiff
path: root/gst/rtpmanager/rtpsource.h
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>2010-03-05 15:46:48 +0100
committerWim Taymans <wim.taymans@collabora.co.uk>2010-03-10 11:21:18 +0100
commitf336ea283feaaf2d67985b41af0544dbc3a26c2c (patch)
treeb084ce48dfbac07a419d1de067da3877e7f82bad /gst/rtpmanager/rtpsource.h
parent38f2b4735d07554c6243e8bf568ba2cbf7db5803 (diff)
rtpsession: Move SSRC conflicts lists into RTPSource
We will also need to track SSRC conflicts in remote sources. See #607615
Diffstat (limited to 'gst/rtpmanager/rtpsource.h')
-rw-r--r--gst/rtpmanager/rtpsource.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/gst/rtpmanager/rtpsource.h b/gst/rtpmanager/rtpsource.h
index f15e86214..7cba4e326 100644
--- a/gst/rtpmanager/rtpsource.h
+++ b/gst/rtpmanager/rtpsource.h
@@ -101,9 +101,24 @@ typedef struct {
} RTPSourceCallbacks;
/**
+ * 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;
+
+/**
* RTPSource:
*
* A source in the #RTPSession
+ *
+ * @conflicting_addresses: GList of conflicting addresses
*/
struct _RTPSource {
GObject object;
@@ -151,6 +166,8 @@ struct _RTPSource {
gpointer user_data;
RTPSourceStats stats;
+
+ GList *conflicting_addresses;
};
struct _RTPSourceClass {
@@ -219,4 +236,13 @@ gboolean rtp_source_get_last_rb (RTPSource *src, guint8 *fraction
void rtp_source_reset (RTPSource * src);
+gboolean rtp_source_find_add_conflicting_address (RTPSource * src,
+ GstNetAddress *address,
+ GstClockTime time);
+
+void rtp_source_timeout (RTPSource * src,
+ GstClockTime current_time,
+ GstClockTime collision_timeout);
+
+
#endif /* __RTP_SOURCE_H__ */