summaryrefslogtreecommitdiff
path: root/gst/rtpmanager/rtpsource.h
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2019-03-25 13:42:25 -0400
committerNicolas Dufresne <nicolas@ndufresne.ca>2019-04-05 14:53:09 +0000
commit6bb53e75fb36637131bec823d950ca690e666b9e (patch)
tree0af1097abb420bda7972e1dda4f149b28f6f3da3 /gst/rtpmanager/rtpsource.h
parent74a74bfc997543069527642e4805d9e45a3098df (diff)
rtpsession: Send as many nack seqnum as possible
In order to do that, we now split the nacks registration from the actual FB nack packet construction. We then try and add as many FB Nacks as possible into the active packets and leave the remaining seqnums in the RTPSource. In order to avoid sending outdated NACK later on, we save the seqnum calculated deadline and cleanup the outdated seqnums before the next RTCP send. Fixes #583
Diffstat (limited to 'gst/rtpmanager/rtpsource.h')
-rw-r--r--gst/rtpmanager/rtpsource.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/gst/rtpmanager/rtpsource.h b/gst/rtpmanager/rtpsource.h
index e292074d5..dff7b313f 100644
--- a/gst/rtpmanager/rtpsource.h
+++ b/gst/rtpmanager/rtpsource.h
@@ -198,6 +198,7 @@ struct _RTPSource {
gboolean send_nack;
GArray *nacks;
+ GArray *nack_deadlines;
gboolean pt_set;
guint8 pt;
@@ -301,8 +302,10 @@ gboolean rtp_source_has_retained (RTPSource * src,
gconstpointer data);
void rtp_source_register_nack (RTPSource * src,
- guint16 seqnum);
-guint32 * rtp_source_get_nacks (RTPSource * src, guint *n_nacks);
-void rtp_source_clear_nacks (RTPSource * src);
+ guint16 seqnum,
+ GstClockTime deadline);
+guint16 * rtp_source_get_nacks (RTPSource * src, guint *n_nacks);
+GstClockTime * rtp_source_get_nack_deadlines (RTPSource * src, guint *n_nacks);
+void rtp_source_clear_nacks (RTPSource * src, guint n_nacks);
#endif /* __RTP_SOURCE_H__ */