diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index 80ac1c1677..6d83a39b34 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -273,7 +273,7 @@ static void gst_rtp_session_request_key_unit (RTPSession * sess, static GstClockTime gst_rtp_session_request_time (RTPSession * session, gpointer user_data); static void gst_rtp_session_notify_nack (RTPSession * sess, - guint16 seqnum, guint16 blp, gpointer user_data); + guint16 seqnum, guint16 blp, guint32 ssrc, gpointer user_data); static RTPSessionCallbacks callbacks = { gst_rtp_session_process_rtp, @@ -2419,7 +2419,7 @@ gst_rtp_session_request_time (RTPSession * session, gpointer user_data) static void gst_rtp_session_notify_nack (RTPSession * sess, guint16 seqnum, - guint16 blp, gpointer user_data) + guint16 blp, guint32 ssrc, gpointer user_data) { GstRtpSession *rtpsession = GST_RTP_SESSION (user_data); GstEvent *event; @@ -2434,7 +2434,8 @@ gst_rtp_session_notify_nack (RTPSession * sess, guint16 seqnum, while (TRUE) { event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, gst_structure_new ("GstRTPRetransmissionRequest", - "seqnum", G_TYPE_UINT, (guint) seqnum, NULL)); + "seqnum", G_TYPE_UINT, (guint) seqnum, + "ssrc", G_TYPE_UINT, (guint) ssrc, NULL)); gst_pad_push_event (send_rtp_sink, event); if (blp == 0) diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c index 1eda78f4d9..99df67381d 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -2368,10 +2368,10 @@ rtp_session_process_nack (RTPSession * sess, guint32 sender_ssrc, seqnum = GST_READ_UINT16_BE (fci_data); blp = GST_READ_UINT16_BE (fci_data + 2); - GST_DEBUG ("NACK #%u, blp %04x", seqnum, blp); + GST_DEBUG ("NACK #%u, blp %04x, SSRC 0x%08x", seqnum, blp, media_ssrc); RTP_SESSION_UNLOCK (sess); - sess->callbacks.notify_nack (sess, seqnum, blp, + sess->callbacks.notify_nack (sess, seqnum, blp, media_ssrc, sess->notify_nack_user_data); RTP_SESSION_LOCK (sess); diff --git a/gst/rtpmanager/rtpsession.h b/gst/rtpmanager/rtpsession.h index 76691c7b51..7056bf389f 100644 --- a/gst/rtpmanager/rtpsession.h +++ b/gst/rtpmanager/rtpsession.h @@ -147,12 +147,13 @@ typedef GstClockTime (*RTPSessionRequestTime) (RTPSession *sess, * @sess: an #RTPSession * @seqnum: the missing seqnum * @blp: other missing seqnums + * @ssrc: SSRC of requested stream * @user_data: user data specified when registering * * Notifies of NACKed frames. */ typedef void (*RTPSessionNotifyNACK) (RTPSession *sess, - guint16 seqnum, guint16 blp, gpointer user_data); + guint16 seqnum, guint16 blp, guint32 ssrc, gpointer user_data); /** * RTPSessionCallbacks: