mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 17:20:36 +00:00
rtprtxsend: Update statistics before pushing
If an element queries the number of retransmission buffers pushed *while* the push is still taking place (and before the object lock is taken just after) it would end up with the wrong statistic being reported. Increment it just before the push, avoids races when getting statistics https://bugzilla.gnome.org/show_bug.cgi?id=768723
This commit is contained in:
parent
da025dc810
commit
91f5b4eaa2
1 changed files with 3 additions and 2 deletions
|
@ -767,11 +767,12 @@ gst_rtp_rtx_send_src_loop (GstRtpRtxSend * rtx)
|
||||||
GST_LOG_OBJECT (rtx, "pushing rtx buffer %p", data->object);
|
GST_LOG_OBJECT (rtx, "pushing rtx buffer %p", data->object);
|
||||||
|
|
||||||
if (G_LIKELY (GST_IS_BUFFER (data->object))) {
|
if (G_LIKELY (GST_IS_BUFFER (data->object))) {
|
||||||
gst_pad_push (rtx->srcpad, GST_BUFFER (data->object));
|
|
||||||
|
|
||||||
GST_OBJECT_LOCK (rtx);
|
GST_OBJECT_LOCK (rtx);
|
||||||
|
/* Update statistics just before pushing. */
|
||||||
rtx->num_rtx_packets++;
|
rtx->num_rtx_packets++;
|
||||||
GST_OBJECT_UNLOCK (rtx);
|
GST_OBJECT_UNLOCK (rtx);
|
||||||
|
|
||||||
|
gst_pad_push (rtx->srcpad, GST_BUFFER (data->object));
|
||||||
} else if (GST_IS_EVENT (data->object)) {
|
} else if (GST_IS_EVENT (data->object)) {
|
||||||
gst_pad_push_event (rtx->srcpad, GST_EVENT (data->object));
|
gst_pad_push_event (rtx->srcpad, GST_EVENT (data->object));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue