[Spice-devel] [PATCH 1/2] Update comments in spice-gtk regards GstVideoOverlay
Snir Sheriber
ssheribe at redhat.com
Thu Jul 5 15:08:02 UTC 2018
---
Hopfully it's clear to understand the separation i did here without
re-numbering:/
---
src/channel-display-gst.c | 35 +++++++++++++++++++++--------------
1 file changed, 21 insertions(+), 14 deletions(-)
diff --git a/src/channel-display-gst.c b/src/channel-display-gst.c
index ff0ecd8..1ccc788 100644
--- a/src/channel-display-gst.c
+++ b/src/channel-display-gst.c
@@ -570,20 +570,27 @@ static void spice_gst_decoder_destroy(VideoDecoder *video_decoder)
* decoding.
* 3) As soon as the GStreamer pipeline no longer needs the compressed frame it
* will call frame->unref_data() to free it.
- * 4) Once the decompressed frame is available the GStreamer pipeline calls
- * new_sample() in the GStreamer thread.
- * 5) new_sample() then matches the decompressed frame to a SpiceGstFrame from
- * the decoding queue using the GStreamer timestamp information to deal with
- * dropped frames. The SpiceGstFrame is popped from the decoding_queue.
- * 6) new_sample() then attaches the decompressed frame to the SpiceGstFrame,
- * set into display_frame and calls schedule_frame().
- * 7) schedule_frame() then uses gstframe->frame->mm_time to arrange for
- * display_frame() to be called, in the main thread, at the right time for
- * the next frame.
- * 8) display_frame() use SpiceGstFrame from display_frame and
- * calls stream_display_frame().
- * 9) display_frame() then frees the SpiceGstFrame, which frees the SpiceFrame
- * and decompressed frame with it.
+ *
+ * If GstVideoOverlay is used (win_handle was obtained by pipeline creation):
+ * 4) Decompressed frames will be renderd to widget directly from gstreamer's pipeline
+ * using some gstreamer sink plugin which implements the GstVideoOverlay interface
+ * (last step).
+ *
+ * Otherwise appsink is used:
+ * 4) Once the decompressed frame is available the GStreamer pipeline calls
+ * new_sample() in the GStreamer thread.
+ * 5) new_sample() then matches the decompressed frame to a SpiceGstFrame from
+ * the decoding queue using the GStreamer timestamp information to deal with
+ * dropped frames. The SpiceGstFrame is popped from the decoding_queue.
+ * 6) new_sample() then attaches the decompressed frame to the SpiceGstFrame,
+ * set into display_frame and calls schedule_frame().
+ * 7) schedule_frame() then uses gstframe->frame->mm_time to arrange for
+ * display_frame() to be called, in the main thread, at the right time for
+ * the next frame.
+ * 8) display_frame() use SpiceGstFrame from display_frame and
+ * calls stream_display_frame().
+ * 9) display_frame() then frees the SpiceGstFrame, which frees the SpiceFrame
+ * and decompressed frame with it.
*/
static gboolean spice_gst_decoder_queue_frame(VideoDecoder *video_decoder,
SpiceFrame *frame, int latency)
--
2.17.0
More information about the Spice-devel
mailing list