diff options
author | Nicolas Dufresne <nicolas.dufresne@collabora.com> | 2019-03-25 13:42:25 -0400 |
---|---|---|
committer | Nicolas Dufresne <nicolas@ndufresne.ca> | 2019-04-05 14:53:09 +0000 |
commit | 6bb53e75fb36637131bec823d950ca690e666b9e (patch) | |
tree | 0af1097abb420bda7972e1dda4f149b28f6f3da3 /gst/rtpmanager/rtpsource.h | |
parent | 74a74bfc997543069527642e4805d9e45a3098df (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.h | 9 |
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__ */ |