[Spice-devel] [PATCH 1/2] Update comments in spice-gtk regards GstVideoOverlay
Frediano Ziglio
fziglio at redhat.com
Fri Jul 6 06:23:33 UTC 2018
Acked the entire series.
note that this patch is much shorter without space changes.
>
> ---
> 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)
Frediano
More information about the Spice-devel
mailing list