d3d11videosink: Don't clear prepared buffer on unlock_stop()
authorSeungha Yang <seungha@centricular.com>
Tue, 9 May 2023 15:51:31 +0000 (00:51 +0900)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 11 May 2023 00:29:37 +0000 (01:29 +0100)
That can be called between prepare() and render() which results in
unexpected error flow return

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4596>

subprojects/gst-plugins-bad/sys/d3d11/gstd3d11videosink.cpp

index 7a9755c..4fec787 100644 (file)
@@ -1228,8 +1228,6 @@ gst_d3d11_video_sink_unlock_stop (GstBaseSink * sink)
   if (self->window)
     gst_d3d11_window_unlock_stop (self->window);
 
-  gst_clear_buffer (&self->prepared_buffer);
-
   return TRUE;
 }
 
@@ -1442,6 +1440,8 @@ gst_d3d11_video_sink_show_frame (GstVideoSink * sink, GstBuffer * buf)
     ret = GST_FLOW_ERROR;
   }
 
+  gst_clear_buffer (&self->prepared_buffer);
+
   return ret;
 }