rtpsession: take the lock when changing stats
authorMiguel París Díaz <mparisdiaz@gmail.com>
Mon, 23 May 2016 08:18:48 +0000 (10:18 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Fri, 17 Jun 2016 09:52:29 +0000 (12:52 +0300)
https://bugzilla.gnome.org/show_bug.cgi?id=766025

gst/rtpmanager/rtpsession.c

index 620d623..553d793 100644 (file)
@@ -4091,9 +4091,9 @@ done:
       result =
           sess->callbacks.send_rtcp (sess, source, buffer, output->is_bye,
           sess->send_rtcp_user_data);
-      sess->stats.nacks_sent += data.nacked_seqnums;
 
       RTP_SESSION_LOCK (sess);
+      sess->stats.nacks_sent += data.nacked_seqnums;
       on_sender_ssrc_active (sess, source);
       RTP_SESSION_UNLOCK (sess);
     } else {
@@ -4101,8 +4101,11 @@ done:
           " empty_buffer: %d, "
           " do_not_suppress: %d may_suppress: %d", sess->callbacks.send_rtcp,
           empty_buffer, do_not_suppress, data.may_suppress);
-      if (!empty_buffer)
+      if (!empty_buffer) {
+        RTP_SESSION_LOCK (sess);
         sess->stats.nacks_dropped += data.nacked_seqnums;
+        RTP_SESSION_UNLOCK (sess);
+      }
       gst_buffer_unref (buffer);
     }
     g_object_unref (source);