[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