gstrtspconnection: messages_bytes not decreased
authorJoakim Johansson <joakimj@axis.com>
Thu, 3 Oct 2019 10:03:09 +0000 (12:03 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 24 Oct 2019 12:00:36 +0000 (13:00 +0100)
The watch->messages_bytes is not decreased when the write operation
from the backlog is only partly successfull.

This commit decreases the watch->messages_bytes for the successfully
sent messages.

Fixes #679

gst-libs/gst/rtsp/gstrtspconnection.c

index efa32e8..606192e 100644 (file)
@@ -3979,6 +3979,7 @@ gst_rtsp_source_dispatch_write (GPollableOutputStream * stream,
           /* all data of this message is sent, check body and otherwise
            * skip the whole message for next time */
           bytes_written -= (msg->data_size - msg->data_offset);
+          watch->messages_bytes -= (msg->data_size - msg->data_offset);
           msg->data_offset = msg->data_size;
 
           if (msg->body_data) {
@@ -3992,6 +3993,7 @@ gst_rtsp_source_dispatch_write (GPollableOutputStream * stream,
           if (bytes_written + msg->body_offset >= body_size) {
             /* body written, drop this message */
             bytes_written -= body_size - msg->body_offset;
+            watch->messages_bytes -= body_size - msg->body_offset;
             msg->body_offset = body_size;
             drop_messages++;
 
@@ -4003,11 +4005,13 @@ gst_rtsp_source_dispatch_write (GPollableOutputStream * stream,
             gst_rtsp_serialized_message_clear (msg);
           } else {
             msg->body_offset += bytes_written;
+            watch->messages_bytes -= bytes_written;
             bytes_written = 0;
           }
         } else {
           /* Need to continue sending from the data of this message */
           msg->data_offset += bytes_written;
+          watch->messages_bytes -= bytes_written;
           bytes_written = 0;
         }
       }