[rhythmbox: 1/2] encoder: update completion status only once on cancellation




commit 9cd62fe3db5a397a3c0c99b99102d05c2c9eb384
Author: crvi <crvisqr gmail com>
Date:   Sun Mar 28 23:44:57 2021 +0530

    encoder: update completion status only once on cancellation

 backends/gstreamer/rb-encoder-gst.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/backends/gstreamer/rb-encoder-gst.c b/backends/gstreamer/rb-encoder-gst.c
index b9551216c..a9823c34d 100644
--- a/backends/gstreamer/rb-encoder-gst.c
+++ b/backends/gstreamer/rb-encoder-gst.c
@@ -575,9 +575,12 @@ sink_open_cb (GObject *source_object, GAsyncResult *result, gpointer data)
        GError *error = NULL;
 
        if (g_task_propagate_boolean (G_TASK (result), &error) == FALSE) {
-               set_error (encoder, error);
+               /* this would have already been done as part of cancel action */
+               if (encoder->priv->cancelled == FALSE) {
+                       set_error (encoder, error);
+                       rb_encoder_gst_emit_completed (encoder);
+               }
                g_error_free (error);
-               rb_encoder_gst_emit_completed (encoder);
        } else {
                if (encoder->priv->outstream != NULL) {
                        g_object_set (encoder->priv->sink, "stream", encoder->priv->outstream, NULL);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]