Add GStreamer support for video streaming

Submitted by Christophe Fergeau on Dec. 16, 2015, 3:15 p.m.

Details

Reviewer None
Submitted Dec. 16, 2015, 3:15 p.m.
Last Updated June 10, 2016, 1:48 p.m.
Revision 22

Cover Letter(s)

Revision 1
      This patch series adds support for using GStreamer to encode and decode 
the video streams, adding support for VP8 and h264 codecs. As before the 
patches can also be grabbed from the repositories below:

spice:          https://github.com/fgouget/spice
spice-gtk:      https://github.com/fgouget/spice-gtk
xf86-video-qxl: https://github.com/fgouget/xf86-video-qxl
spice-protocol: https://github.com/fgouget/spice-protocol

spice-common:   https://github.com/fgouget/spice-common

(there's also 'extras' branches with more experimental/future patches 
for the curious)


Changes in this round:
* Rebased on the current source.
* configure.ac uses the new m4 macros to check for GStreamer support 
  and the presence of the needed plugins.
* It separates adding checks for the client codec support from 
  specifying which codec to use in the server and from adding VP8 
  support.
    
Revision 2
      The previous submission did not get in. So it's time for a new one. 
Hopefully this is the year this patchset will go in!

This patch series adds support for using GStreamer to encode and decode 
the video streams, adding support for VP8 and h264 codecs. As before the 
patches can also be grabbed from the repositories below:

spice:          https://github.com/fgouget/spice
spice-gtk:      https://github.com/fgouget/spice-gtk
xf86-video-qxl: https://github.com/fgouget/xf86-video-qxl
spice-protocol: https://github.com/fgouget/spice-protocol

(there's also 'extras' branches with more experimental/future patches 
for the curious)


Changes in this round:
* Rebased on the current source.
* When the client has support for GStreamer video codecs it now 
  checks the presence of each supported codec before advertising support 
  for it.

Changes from v6:
* configure.ac uses the new m4 macros to check for GStreamer support 
  and the presence of the needed plugins.
* It separates adding checks for the client codec support from 
  specifying which codec to use in the server and from adding VP8 
  support.
    
Revision 7
      This patch series adds support for using GStreamer to encode and decode
the video streams, adding support for VP8 and h264 codecs.

There have been quite a few changes since the last revision of this
patchset.
 * The VP8 encoding performance has been improved.
 * The zero-copy code for the input frame has been cleaned up.
 * The Spice-Gtk architecture has been modified so the video decoder can 
   avoid dropping frames for inter-frame codecs (such as VP8 and h264) 
   as that causes artifacts. This should avoid the image quality issues 
   that sometimes happened while the bitrate was getting adjusted.
 * The new Spice-gtk architecture also allows GStreamer to work on 
   more frames at once which could help with performance.


As before the patches can also be grabbed from the gst branch of the
repositories below:

spice:          https://github.com/fgouget/spice
spice-gtk:      https://github.com/fgouget/spice-gtk
xf86-video-qxl: https://github.com/fgouget/xf86-video-qxl
spice-protocol: https://github.com/fgouget/spice-protocol

See also gst-sync for the old spice-gtk code. (there's also 'extras'
branches with more experimental/future patches for the curious)


Changes from v9:
* Moved the codec parameters except the bitrate to the pipeline 
  'gst-launch' string. That string is traced so this makes it easier to 
  see exactly how the codecs were configured.
* Updated how the video:codec preference string is handled to use a 
  GArray.
* Changed the VP8 encoder parameters to improve performance based on 
  the realtime profile. Furthermore it turns out that it is important to 
  get the number of physical cores right, and that's something the 
  encoder does not know how to do itself.
* Instead of waiting until the last millisecond to decode frames, 
  Spice-Gtk now lets the video decoders do the queuing. So in the 
  GStreamer case the GStreamer pipeline now does the queuing and 
  calls Spice-Gtk back when it's time to display the frame.
* That last point means mm-time adjustments don't apply to queued 
  frames. That does not really seem to be an issue but could be modified 
  if necessary.

Changes from v8:
* Rebased on the current source.
* Adjusted the Spice protocol version requirement.

Changes from v7:
* When the client has support for GStreamer video codecs it now
  checks the presence of each supported codec before advertising support
  for it.

Changes from v6:
* configure.ac uses the new m4 macros to check for GStreamer support
  and the presence of the needed plugins.
* It separates adding checks for the client codec support from
  specifying which codec to use in the server and from adding VP8
  support.
    
Revision 10
      This patch series adds support for using GStreamer to encode and decode 
the video streams, adding support for VP8 and h264 codecs.

As before the patches can also be grabbed from the gst branch of the
repositories below:

spice:          https://github.com/fgouget/spice
spice-gtk:      https://github.com/fgouget/spice-gtk
xf86-video-qxl: https://github.com/fgouget/xf86-video-qxl
spice-protocol: https://github.com/fgouget/spice-protocol

See also gst-sync for the old spice-gtk code. (there's also 'extras'
branches with more experimental/future patches for the curious)


Patches and changes from v10:

Francois Gouget (26):
  server: Enable adding alternative MJPEG video encoders
  server: Add a GStreamer 1.0 MJPEG video encoder and use it by default
  server: Check the client video codec capabilities
      Fixed the case where the server and client cannot agree on the 
      video codec to use.
  server: Let the administrator pick the video encoder and codec
      The video_codecs GArray is now considered immutable which avoids 
      copying around and avoids having to make the
      RED_WORKER_MESSAGE_SET_VIDEO_CODECS RPC synchronous.
  server: Add VP8 support to the GStreamer video encoder
  server: Use the optimal number of threads for VP8 encoding
      Using the optimal number of cores for the VP8 encoder is now in a 
      separate patch (though skipping it will cause conflicts with 
      patches 14 and 16).
  server: Let the video encoder manage the compressed buffer
  server: Avoid copying the input frame in the GStreamer encoder
      Changed the zero-copy approach to not require ref/unref() of 
      RedDrawable objects to be thread-safe. Thread-safety aspects are 
      instead handled in gstreamer-encoder.c now.
  server: Add h264 support to the GStreamer video encoder
  server: Shape the bit rate of the GStreamer codecs output
  server: Adjust the GStreamer encoder bit rate to the network
  server: Adjust the frame rate based on the GStreamer encoding time
      This patch limits the frame rate (i.e. drops frames) when the 
      server has trouble keeping up with the encoding. This code seems 
      to only be needed in SpiceDeferredFPS mode (so maybe it's in the
      SpiceDeferredFPS code that something should be modified). In 
      any case this patch can be skipped without any impact on the rest 
      of the series.
  server: Give up after a while if GStreamer cannot handle the video
  server: Respect the GStreamer encoder's valid bit rate range
        set_gstenc_bitrate() should now pass the right integer type to 
        g_object_set().
  server: Add support for GStreamer 0.10
      Reduced the number of #ifdefs for GStreamer 0.10 using 
      Christophe's suggestions.
  spiceqxl: Add SpiceVideoCodecs to specify video codec preferences
  Xspice: Add --video-codecs to specify encoder and codec preferences
  spice-gtk: Enable adding alternative video decoders
  spice-gtk: Optimize handling of the decoded frame buffer
  spice-gtk: Rename num_drops_on_receive to arrive_late_count
  spice-gtk: Let the video decoder queue, schedule and drop the frames
  spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264
    - Tweaked some function names in the client's GStreamer decoder to 
      avoid potential name conflicts.
    - Fixed a race condition in the client which would cause it to 
      freeze when hovering madly over the seek barin YouTube videos.
    - As a side effect the new code now schedules the frames rending 
      itself so it can adapt when the mm-time get yanked around.
    - It also does not queue the frames in the pipeline and thus is less 
      likely to lose them when size changes force us to rebuild it.
  spice-gtk: Allow disabling support for the builtin MJPEG video decoder
  spice-gtk: Probe GStreamer before advertising support for a codec
  spice-gtk: Use decodebin as a fallback for the GStreamer video decoder
  spice-gtk: Avoid GAsyncQueue for compatibility with GLib < 2.46
      This patch is optional and avoids the dependency on 
      g_async_queue_push_front() which is missing in GLib < 2.46 
      (e.g. for Debian 8).

Pavel Grunt (1):
  replay: Add an option to change video codec




Changes from v9:
* Moved the codec parameters except the bitrate to the pipeline 
  'gst-launch' string. That string is traced so this makes it easier 
  to see exactly how the codecs were configured.
* Updated how the video:codec preference string is handled to use a 
  GArray.
* Changed the VP8 encoder parameters to improve performance based on 
  the realtime profile. Furthermore it turns out that it is important 
  to get the number of physical cores right, and that's something the 
  encoder does not know how to do itself.
* Instead of waiting until the last millisecond to decode frames, 
  Spice-Gtk now lets the video decoders do the queuing. So in the 
  GStreamer case the GStreamer pipeline now does the queuing and 
  calls Spice-Gtk back when it's time to display the frame.
* That last point means mm-time adjustments don't apply to queued 
  frames. That does not really seem to be an issue but could be 
  modified if necessary.


Changes from v8:
* Rebased on the current source.
* Adjusted the Spice protocol version requirement.


Changes from v7:
* When the client has support for GStreamer video codecs it now
  checks the presence of each supported codec before advertising 
  support for it.


Changes from v6:
* configure.ac uses the new m4 macros to check for GStreamer support
  and the presence of the needed plugins.
* It separates adding checks for the client codec support from
  specifying which codec to use in the server and from adding VP8
  support.
    
Revision 11
      This patch series adds support for using GStreamer to encode and 
decode the video streams, adding support for VP8 and h264 codecs.

As before the patches can also be grabbed from the gst branch of the
repositories below:

spice:          https://github.com/fgouget/spice
spice-gtk:      https://github.com/fgouget/spice-gtk
xf86-video-qxl: https://github.com/fgouget/xf86-video-qxl
spice-protocol: https://github.com/fgouget/spice-protocol

See also gst-sync for the old spice-gtk code. (there's also 'extras'
branches with more experimental/future patches for the curious)


Besides rebases, the changes from v11 are limited to spice-gtk. 
Specifically they fix two compatibility issues:
 * V11 used a GAsyncQueue and relied on g_async_queue_push_front() which 
   is only available in GLib >= 2.46 which is unfortunately not 
   available in Debian 8 and presumably on many other Linux 
   distributions.
 * It also associated the original network message with the 
   corresponding GStreamer buffer using the GstMeta API. This is 
   necessary in order to know where to display the decoded frame as this 
   could change from one frame to the next. However some GStreamer 
   elements have (refcounting) bugs that caused the metadata to be lost 
   in the pipeline. I had a workaround in place that worked on Debian 
   Testing but did not on Debian 8.
   https://bugzilla.gnome.org/show_bug.cgi?id=757254

So in the end I reworked both by putting the metadata in a regular 
GQueue and using the PTS timestamp to match elements in that queue to 
GStreamer's buffers.


Patches and changes from v10:
  server: Check the client video codec capabilities
      Fixed the case where the server and client cannot agree on the 
      video codec to use.
  server: Let the administrator pick the video encoder and codec
      The video_codecs GArray is now considered immutable which avoids 
      copying around and avoids having to make the
      RED_WORKER_MESSAGE_SET_VIDEO_CODECS RPC synchronous.
  server: Use the optimal number of threads for VP8 encoding
      Using the optimal number of cores for the VP8 encoder is now in a 
      separate patch (though skipping it will cause conflicts with 
      patches 14 and 16).
  server: Avoid copying the input frame in the GStreamer encoder
      Changed the zero-copy approach to not require ref/unref() of 
      RedDrawable objects to be thread-safe. Thread-safety aspects are 
      instead handled in gstreamer-encoder.c now.
  server: Adjust the frame rate based on the GStreamer encoding time
      This patch limits the frame rate (i.e. drops frames) when the 
      server has trouble keeping up with the encoding. This code seems 
      to only be needed in SpiceDeferredFPS mode (so maybe it's in the
      SpiceDeferredFPS code that something should be modified). In 
      any case this patch can be skipped without any impact on the rest 
      of the series.
  server: Respect the GStreamer encoder's valid bit rate range
      set_gstenc_bitrate() should now pass the right integer type to 
      g_object_set().
  server: Add support for GStreamer 0.10
      Reduced the number of #ifdefs for GStreamer 0.10 using 
      Christophe's suggestions.
  spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264
    - Tweaked some function names in the client's GStreamer decoder to 
      avoid potential name conflicts.
    - Fixed a race condition in the client which would cause it to 
      freeze when hovering madly over the seek barin YouTube videos.
    - As a side effect the new code now schedules the frames rending 
      itself so it can adapt when the mm-time get yanked around.
    - It also does not queue the frames in the pipeline and thus is less 
      likely to lose them when size changes force us to rebuild it.
  spice-gtk: Avoid GAsyncQueue for compatibility with GLib < 2.46
      This patch is optional and avoids the dependency on 
      g_async_queue_push_front() which is missing in GLib < 2.46 
      (e.g. for Debian 8).
    
Revision 12
      This patch series adds support for using GStreamer to encode and 
decode the video streams, adding support for VP8 and h264 codecs.

As before the patches can also be grabbed from the gst branch of the
repositories below:

spice:          https://github.com/fgouget/spice
spice-gtk:      https://github.com/fgouget/spice-gtk
xf86-video-qxl: https://github.com/fgouget/xf86-video-qxl
spice-protocol: https://github.com/fgouget/spice-protocol

See also gst-sync for the old spice-gtk code. (there's also 'extras'
branches with more experimental/future patches for the curious)

Note also that I added gst-v10, gst-v11 and gst-v12 branches to help 
comparing these revisions.


Changes from v12:

This round focused on performance and reliability in various special 
cases such as low bandwidth operation.

 * The server no longer rebuilds the pipeline from scratch every time 
   the frame size or bitrate changes. The trick to it is to transition 
   to the NULL state (instead of the PAUSED one as before).
 * I also unified configure_pipeline() and reconfigure_pipeline() by 
   moving all the one-time configuration operations to 
   create_pipeline() and tracking the configuration changes to apply.
 * The server can now also apply bitrate changes directly if the codec 
   advertises it can be changed in the PLAYING state. This is the case 
   for the x264enc codec.
 * The server can now detect when the GStreamer pipeline error occurs 
   instead of getting stuck waiting for the compressed buffer.
 * I fixed the value for the error-resilient vp8enc option.
 * I removed the resize-allowed=true vp8enc setting as tests showed the 
   decoder was sometimes not restoring a full-size frame.
 * I removed the 'frame' SpiceGstVideoBuffer field as it was not used.
 * push_raw_frame() now avoids allocating memory for chunk_copy() if 
   zero_copy() was able to take care of the whole frame.

 * The client no longer rebuilds or even reconfigure the pipeline from 
   scratch every time the frame size changes. It turns out that the 
   decoders don't care (unlike the encoders).
 * I have protected the PTS calculation against underflows. This fixes 
   freezes that could occasionally happen with negative latencies near 
   the start of a stream (i.e. in low bandwidth cases).
 * I renamed SpiceFrameMeta to just SpiceFrame since it also contains 
   the sample once the frame has been decoded, and is thus not just 
   metadata. I also cleaned up the naming of the corresponding queues.
 * The GStreamer pipeline sometimes returns multiple buffers with the 
   same PTS. The first buffer would remove its SpiceFrame from the 
   decoding_queue so that the next one would not find a match, thus 
   clearing the decoding_queue in the process. As a result the next 
   buffer would not find a match either, again clearing the 
   decoding_queue in the process, etc. So buffers that have an unknown 
   PTS no longer clear the decoding_queue.
 * When frames are late for display the client now tries to display the 
   least out of date one in the display_queue so there are at least 
   some screen updates.
 * I removed the qos=true appsink option. It's not clear that it was 
   helping so I decided to remove it until there is more evidence that 
   it is needed.
 * I renamed stream_dropped_frame() to 
   stream_dropped_frame_on_playback() to make it clearer that it's 
   unrelated to the stream report data (which is based on arrival time).


Besides rebases, the changes from v11 are limited to spice-gtk. 
Specifically they fix two compatibility issues:
 * v11 used a GAsyncQueue and relied on g_async_queue_push_front() which 
   is only available in GLib >= 2.46 which is unfortunately not 
   available in Debian 8 and presumably on many other Linux 
   distributions.
 * It also associated the original network message with the 
   corresponding GStreamer buffer using the GstMeta API. This is 
   necessary in order to know where to display the decoded frame as this 
   could change from one frame to the next. However some GStreamer 
   elements have (refcounting) bugs that caused the metadata to be lost 
   in the pipeline. I had a workaround in place that worked on Debian 
   Testing but did not on Debian 8.
   https://bugzilla.gnome.org/show_bug.cgi?id=757254

So in the end I reworked both by putting the metadata in a regular 
GQueue and using the PTS timestamp to match elements in that queue to 
GStreamer's buffers.


Patches and changes from v10:
  server: Check the client video codec capabilities
      Fixed the case where the server and client cannot agree on the 
      video codec to use.
  server: Let the administrator pick the video encoder and codec
      The video_codecs GArray is now considered immutable which avoids 
      copying around and avoids having to make the
      RED_WORKER_MESSAGE_SET_VIDEO_CODECS RPC synchronous.
  server: Use the optimal number of threads for VP8 encoding
      Using the optimal number of cores for the VP8 encoder is now in a 
      separate patch (though skipping it will cause conflicts with 
      patches 14 and 16).
  server: Avoid copying the input frame in the GStreamer encoder
      Changed the zero-copy approach to not require ref/unref() of 
      RedDrawable objects to be thread-safe. Thread-safety aspects are 
      instead handled in gstreamer-encoder.c now.
  server: Adjust the frame rate based on the GStreamer encoding time
      This patch limits the frame rate (i.e. drops frames) when the 
      server has trouble keeping up with the encoding. This code seems 
      to only be needed in SpiceDeferredFPS mode (so maybe it's in the
      SpiceDeferredFPS code that something should be modified). In 
      any case this patch can be skipped without any impact on the rest 
      of the series.
  server: Respect the GStreamer encoder's valid bit rate range
      set_gstenc_bitrate() should now pass the right integer type to 
      g_object_set().
  server: Add support for GStreamer 0.10
      Reduced the number of #ifdefs for GStreamer 0.10 using 
      Christophe's suggestions.
  spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264
    - Tweaked some function names in the client's GStreamer decoder to 
      avoid potential name conflicts.
    - Fixed a race condition in the client which would cause it to 
      freeze when hovering madly over the seek barin YouTube videos.
    - As a side effect the new code now schedules the frames rending 
      itself so it can adapt when the mm-time get yanked around.
    - It also does not queue the frames in the pipeline and thus is less 
      likely to lose them when size changes force us to rebuild it.
  spice-gtk: Avoid GAsyncQueue for compatibility with GLib < 2.46
      This patch is optional and avoids the dependency on 
      g_async_queue_push_front() which is missing in GLib < 2.46 
      (e.g. for Debian 8).
    
Revision 14
      This patch series adds support for using GStreamer to encode and 
decode the video streams, adding support for VP8 and h264 codecs.

As before the patches can also be grabbed from the gst branch of the
repositories below:

spice:          https://github.com/fgouget/spice
spice-gtk:      https://github.com/fgouget/spice-gtk
xf86-video-qxl: https://github.com/fgouget/xf86-video-qxl
spice-protocol: https://github.com/fgouget/spice-protocol

See also gst-sync for the old spice-gtk code. (there's also 'extras'
branches with more experimental/future patches for the curious)

Note also that I added gst-v10, gst-v11, gst-v12 and gst-v13 branches to 
help comparing these revisions.

Note that to test GStreamer support with QEMU you probably need to grab 
the patch below and set the video-codecs option to something like 
gstreamer:h264 or gstreamer:vp8.

https://lists.freedesktop.org/archives/spice-devel/2015-May/019771.html


Changes from v13:

Rebased + some changes suggested by Christophe Fergeau.


Changes from v12:

This round focused on performance and reliability in various special 
cases such as low bandwidth operation.

 * The server no longer rebuilds the pipeline from scratch every time 
   the frame size or bitrate changes. The trick to it is to transition 
   to the NULL state (instead of the PAUSED one as before).
 * I also unified configure_pipeline() and reconfigure_pipeline() by 
   moving all the one-time configuration operations to 
   create_pipeline() and tracking the configuration changes to apply.
 * The server can now also apply bitrate changes directly if the codec 
   advertises it can be changed in the PLAYING state. This is the case 
   for the x264enc codec.
 * The server can now detect when the GStreamer pipeline error occurs 
   instead of getting stuck waiting for the compressed buffer.
 * I fixed the value for the error-resilient vp8enc option.
 * I removed the resize-allowed=true vp8enc setting as tests showed the 
   decoder was sometimes not restoring a full-size frame.
 * I removed the 'frame' SpiceGstVideoBuffer field as it was not used.
 * push_raw_frame() now avoids allocating memory for chunk_copy() if 
   zero_copy() was able to take care of the whole frame.

 * The client no longer rebuilds or even reconfigure the pipeline from 
   scratch every time the frame size changes. It turns out that the 
   decoders don't care (unlike the encoders).
 * I have protected the PTS calculation against underflows. This fixes 
   freezes that could occasionally happen with negative latencies near 
   the start of a stream (i.e. in low bandwidth cases).
 * I renamed SpiceFrameMeta to just SpiceFrame since it also contains 
   the sample once the frame has been decoded, and is thus not just 
   metadata. I also cleaned up the naming of the corresponding queues.
 * The GStreamer pipeline sometimes returns multiple buffers with the 
   same PTS. The first buffer would remove its SpiceFrame from the 
   decoding_queue so that the next one would not find a match, thus 
   clearing the decoding_queue in the process. As a result the next 
   buffer would not find a match either, again clearing the 
   decoding_queue in the process, etc. So buffers that have an unknown 
   PTS no longer clear the decoding_queue.
 * When frames are late for display the client now tries to display the 
   least out of date one in the display_queue so there are at least 
   some screen updates.
 * I removed the qos=true appsink option. It's not clear that it was 
   helping so I decided to remove it until there is more evidence that 
   it is needed.
 * I renamed stream_dropped_frame() to 
   stream_dropped_frame_on_playback() to make it clearer that it's 
   unrelated to the stream report data (which is based on arrival time).


Besides rebases, the changes from v11 are limited to spice-gtk. 
Specifically they fix two compatibility issues:
 * v11 used a GAsyncQueue and relied on g_async_queue_push_front() which 
   is only available in GLib >= 2.46 which is unfortunately not 
   available in Debian 8 and presumably on many other Linux 
   distributions.
 * It also associated the original network message with the 
   corresponding GStreamer buffer using the GstMeta API. This is 
   necessary in order to know where to display the decoded frame as this 
   could change from one frame to the next. However some GStreamer 
   elements have (refcounting) bugs that caused the metadata to be lost 
   in the pipeline. I had a workaround in place that worked on Debian 
   Testing but did not on Debian 8.
   https://bugzilla.gnome.org/show_bug.cgi?id=757254

So in the end I reworked both by putting the metadata in a regular 
GQueue and using the PTS timestamp to match elements in that queue to 
GStreamer's buffers.


Patches and changes from v10:
  server: Check the client video codec capabilities
      Fixed the case where the server and client cannot agree on the 
      video codec to use.
  server: Let the administrator pick the video encoder and codec
      The video_codecs GArray is now considered immutable which avoids 
      copying around and avoids having to make the
      RED_WORKER_MESSAGE_SET_VIDEO_CODECS RPC synchronous.
  server: Use the optimal number of threads for VP8 encoding
      Using the optimal number of cores for the VP8 encoder is now in a 
      separate patch (though skipping it will cause conflicts with 
      patches 14 and 16).
  server: Avoid copying the input frame in the GStreamer encoder
      Changed the zero-copy approach to not require ref/unref() of 
      RedDrawable objects to be thread-safe. Thread-safety aspects are 
      instead handled in gstreamer-encoder.c now.
  server: Adjust the frame rate based on the GStreamer encoding time
      This patch limits the frame rate (i.e. drops frames) when the 
      server has trouble keeping up with the encoding. This code seems 
      to only be needed in SpiceDeferredFPS mode (so maybe it's in the
      SpiceDeferredFPS code that something should be modified). In 
      any case this patch can be skipped without any impact on the rest 
      of the series.
  server: Respect the GStreamer encoder's valid bit rate range
      set_gstenc_bitrate() should now pass the right integer type to 
      g_object_set().
  server: Add support for GStreamer 0.10
      Reduced the number of #ifdefs for GStreamer 0.10 using 
      Christophe's suggestions.
  spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264
    - Tweaked some function names in the client's GStreamer decoder to 
      avoid potential name conflicts.
    - Fixed a race condition in the client which would cause it to 
      freeze when hovering madly over the seek barin YouTube videos.
    - As a side effect the new code now schedules the frames rending 
      itself so it can adapt when the mm-time get yanked around.
    - It also does not queue the frames in the pipeline and thus is less 
      likely to lose them when size changes force us to rebuild it.
  spice-gtk: Avoid GAsyncQueue for compatibility with GLib < 2.46
      This patch is optional and avoids the dependency on 
      g_async_queue_push_front() which is missing in GLib < 2.46 
      (e.g. for Debian 8).
    
Revision 15
      This patch series adds support for using GStreamer to encode the video 
streams, adding support for VP8 and h264 codecs.

As before the patches can also be grabbed from the gst branch of the 
repositories below. Note that this time around the required support is 
already present in the client.

spice:          https://github.com/fgouget/spice
xf86-video-qxl: https://github.com/fgouget/xf86-video-qxl
spice-protocol: https://github.com/fgouget/spice-protocol


There's also 'extras' branches with more experimental/future patches for 
the curious, and gst-vNN branches to help comparing the various 
revisions.

Note that to test GStreamer support with QEMU you probably need to grab 
the patch below and set the video-codecs option to something like 
gstreamer:h264 or gstreamer:vp8.

https://lists.freedesktop.org/archives/spice-devel/2015-May/019771.html


Changes from v14:

* In this round the width / height removal is back because I think it 
  is relevant to the discussion around the gstreamer-encoder code for 
  copying the frames.

* I also split that change in two parts : one removing the use of the
  width / height parameters in the MJPEG encoder, and another removing 
  them from the video-encoder API.

* Added a comment and tweaked the warning in 
  is_chunk_stride_aligned().

* Added a comment in line_copy() wrt 0-byte chunks.

* Renamed max_mem to max_block_count in zero_copy().

* I also changed the patchset prefix to 'streaming' as suggested by 
  Pavel Grunt.


Changes from v13:

Rebased + some changes suggested by Christophe Fergeau.
    
Revision 18
      This patch series adds support for using GStreamer to encode the video 
streams, adding support for VP8 and h264 codecs.

As before the patches can also be grabbed from the gst branch of the 
repositories below. Note that this time around the required support is 
already present in the client.

spice:          https://github.com/fgouget/spice
xf86-video-qxl: https://github.com/fgouget/xf86-video-qxl
spice-protocol: https://github.com/fgouget/spice-protocol


There's also 'extras' branches with more experimental/future patches for 
the curious, and gst-vNN branches to help comparing the various 
revisions.

Note that to test GStreamer support with QEMU you probably need to grab 
the patch below and set the video-codecs option to something like 
gstreamer:h264 or gstreamer:vp8.

https://lists.freedesktop.org/archives/spice-devel/2015-May/019771.html


Changes from v15:
* Added a patch to better check for sized frames.

* Added a patch to get rid of RedDrawable.sized_stream to simplify the 
  code.


Changes from v14:

* In this round the width / height removal is back because I think it 
  is relevant to the discussion around the gstreamer-encoder code for 
  copying the frames.

* I also split that change in two parts : one removing the use of the
  width / height parameters in the MJPEG encoder, and another removing 
  them from the video-encoder API.

* Added a comment and tweaked the warning in 
  is_chunk_stride_aligned().

* Added a comment in line_copy() wrt 0-byte chunks.

* Renamed max_mem to max_block_count in zero_copy().

* I also changed the patchset prefix to 'streaming' as suggested by 
  Pavel Grunt.


Changes from v13:

Rebased + some changes suggested by Christophe Fergeau.
    

Revisions

SERIES REVISION IS NOT COMPLETE. We've got 23 out of 24 expected patches.

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v7,01/23] protocol: Add support for the VP8 and h264 video codecs Francois Gouget New
[Spice-devel,v7,02/23] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded
[Spice-devel,v7,03/23] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v7,04/23] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v7,05/23] server: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v7,06/23] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,v7,07/23] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,v7,08/23] server: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v7,09/23] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v7,10/23] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v7,11/23] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v7,12/23] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v7,13/23] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v7,14/23] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v7,15/23] server: Cap the VP8 and h264 video quality to limit the bit rate Francois Gouget New
[Spice-devel,v7,16/23] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v7,17/23] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,v7,18/23] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,v7,19/23] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget Accepted
[Spice-devel,v7,20/23] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,v7,21/23] spice-gtk: Allow disabling support for the builtin MJPEG video decoder Francois Gouget New
[Spice-devel,v7,22/23] spice-gtk: Avoid copying the compressed message data for SpiceGstDecoder Francois Gouget New
[Spice-devel,v7,23/23] spice-gtk: Use decodebin as a fallback for the GStreamer video decoder Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,protocol,v8,01/24] protocol: Add support for the VP8 and h264 video codecs Francois Gouget New 1
[Spice-devel,v8,02/24] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded 1
[Spice-devel,v8,03/24] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v8,04/24] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v8,05/24] server: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v8,06/24] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v8,07/24] server: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v8,08/24] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v8,09/24] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v8,10/24] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v8,11/24] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v8,12/24] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v8,13/24] server: Cap the VP8 and h264 video quality to limit the bit rate Francois Gouget New
[Spice-devel,v8,14/24] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v8,15/24] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v8,16/24] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v8,17/24] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v8,18/24] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,client,v8,19/24] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v8,20/24] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,client,v8,21/24] spice-gtk: Allow disabling support for the builtin MJPEG video decoder Francois Gouget New
[Spice-devel,client,v8,22/24] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v8,23/24] spice-gtk: Avoid copying the compressed message data for SpiceGstDe... Francois Gouget New
[Spice-devel,client,v8,24/24] spice-gtk: Use decodebin as a fallback for the GStreamer video decoder Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,protocol,v8,01/24] protocol: Add support for the VP8 and h264 video codecs Francois Gouget New 1
[Spice-devel,v8.1,02/24] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded
[Spice-devel,v8,03/24] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v8,04/24] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v8,05/24] server: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v8,06/24] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v8,07/24] server: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v8,08/24] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v8,09/24] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v8,10/24] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v8,11/24] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v8,12/24] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v8,13/24] server: Cap the VP8 and h264 video quality to limit the bit rate Francois Gouget New
[Spice-devel,v8,14/24] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v8,15/24] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v8,16/24] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v8,17/24] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v8,18/24] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,client,v8,19/24] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v8,20/24] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,client,v8,21/24] spice-gtk: Allow disabling support for the builtin MJPEG video decoder Francois Gouget New
[Spice-devel,client,v8,22/24] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v8,23/24] spice-gtk: Avoid copying the compressed message data for SpiceGstDe... Francois Gouget New
[Spice-devel,client,v8,24/24] spice-gtk: Use decodebin as a fallback for the GStreamer video decoder Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,protocol,v8.1,01/24] protocol: Add support for the VP8 and h264 video codecs Francois Gouget New
[Spice-devel,v8.1,02/24] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded
[Spice-devel,v8,03/24] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v8,04/24] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v8,05/24] server: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v8,06/24] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v8,07/24] server: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v8,08/24] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v8,09/24] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v8,10/24] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v8,11/24] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v8,12/24] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v8,13/24] server: Cap the VP8 and h264 video quality to limit the bit rate Francois Gouget New
[Spice-devel,v8,14/24] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v8,15/24] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v8,16/24] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v8,17/24] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v8,18/24] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,client,v8,19/24] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v8,20/24] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,client,v8,21/24] spice-gtk: Allow disabling support for the builtin MJPEG video decoder Francois Gouget New
[Spice-devel,client,v8,22/24] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v8,23/24] spice-gtk: Avoid copying the compressed message data for SpiceGstDe... Francois Gouget New
[Spice-devel,client,v8,24/24] spice-gtk: Use decodebin as a fallback for the GStreamer video decoder Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,protocol,v8.1,01/24] protocol: Add support for the VP8 and h264 video codecs Francois Gouget New
[Spice-devel,v8.1,02/24] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded
[Spice-devel,v8,03/24] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v8,04/24] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v8,05/24] server: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v8,06/24] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v8,07/24] server: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v8,08/24] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v8,09/24] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v8,10/24] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v8,11/24] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v8,12/24] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v8,13/24] server: Cap the VP8 and h264 video quality to limit the bit rate Francois Gouget New
[Spice-devel,v8,14/24] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v8,15/24] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v8,16/24] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v8,17/24] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v8,18/24] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,client,v8,19/24] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v8.1,20/24] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,client,v8,21/24] spice-gtk: Allow disabling support for the builtin MJPEG video decoder Francois Gouget New
[Spice-devel,client,v8,22/24] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v8,23/24] spice-gtk: Avoid copying the compressed message data for SpiceGstDe... Francois Gouget New
[Spice-devel,client,v8,24/24] spice-gtk: Use decodebin as a fallback for the GStreamer video decoder Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,protocol,v8.1,01/24] protocol: Add support for the VP8 and h264 video codecs Francois Gouget New
[Spice-devel,v8.1,02/24] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded
[Spice-devel,v8,03/24] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v8.1,04/24] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v8,05/24] server: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v8,06/24] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v8,07/24] server: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v8,08/24] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v8,09/24] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v8,10/24] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v8,11/24] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v8,12/24] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v8,13/24] server: Cap the VP8 and h264 video quality to limit the bit rate Francois Gouget New
[Spice-devel,v8,14/24] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v8,15/24] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v8,16/24] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v8,17/24] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v8,18/24] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,client,v8,19/24] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v8.1,20/24] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,client,v8,21/24] spice-gtk: Allow disabling support for the builtin MJPEG video decoder Francois Gouget New
[Spice-devel,client,v8,22/24] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v8,23/24] spice-gtk: Avoid copying the compressed message data for SpiceGstDe... Francois Gouget New
[Spice-devel,client,v8,24/24] spice-gtk: Use decodebin as a fallback for the GStreamer video decoder Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,protocol,v10,01/27] protocol: Add support for the VP8 and h264 video codecs Francois Gouget New 1
[Spice-devel,v10,02/27] server: Store the opaque pointer in VideoEncoderRateControlCbs Francois Gouget Accepted 1
[Spice-devel,v10,03/27] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded 1
[Spice-devel,v10,04/27] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New 1
[Spice-devel,v10,05/27] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v10,06/27] server: Let the administrator pick the video encoder and codec Francois Gouget New 1
[Spice-devel,v10,07/27] replay: Add an option to change video codec Pavel Grunt Accepted 1
[Spice-devel,v10,08/27] server: Add VP8 support to the GStreamer video encoder Francois Gouget New 1
[Spice-devel,v10,09/27] server: Let the video encoder manage the compressed buffer Francois Gouget New 1
[Spice-devel,v10,10/27] server: Make the RedDrawable refcount thread-safe Francois Gouget New
[Spice-devel,v10,11/27] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v10,12/27] server: Add h264 support to the GStreamer video encoder Francois Gouget New 1
[Spice-devel,v10,13/27] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v10,14/27] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v10,15/27] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New 1
[Spice-devel,v10,16/27] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v10,17/27] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v10,18/27] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v10,19/27] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v10,20/27] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,client,v10,21/27] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v10,22/27] spice-gtk: Rename num_drops_on_receive to arrive_late_count. Francois Gouget Accepted
[Spice-devel,client,v10,23/27] spice-gtk: Let the video decoder queue, schedule and drop the frames Francois Gouget New
[Spice-devel,client,v10,24/27] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,client,v10,25/27] spice-gtk: Allow disabling support for the builtin MJPEG video dec... Francois Gouget Accepted
[Spice-devel,client,v10,26/27] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v10,27/27] spice-gtk: Use decodebin as a fallback for the GStreamer video dec... Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,protocol,v10,01/27] protocol: Add support for the VP8 and h264 video codecs Francois Gouget New 1
[Spice-devel,v10,02/27] server: Store the opaque pointer in VideoEncoderRateControlCbs Francois Gouget Accepted 1
[Spice-devel,v10,03/27] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded 1
[Spice-devel,v10,04/27] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New 1
[Spice-devel,v10,05/27] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v10,06/27] server: Let the administrator pick the video encoder and codec Francois Gouget New 1
[Spice-devel,v10,07/27] replay: Add an option to change video codec Pavel Grunt Accepted 1
[Spice-devel,v10,08/27] server: Add VP8 support to the GStreamer video encoder Francois Gouget New 1
[Spice-devel,v10,09/27] server: Let the video encoder manage the compressed buffer Francois Gouget New 1
[Spice-devel,v10,10/27] server: Make the RedDrawable refcount thread-safe Francois Gouget New
[Spice-devel,v10,11/27] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v10,12/27] server: Add h264 support to the GStreamer video encoder Francois Gouget New 1
[Spice-devel,v10,13/27] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v10,14/27] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v10,15/27] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New 1
[Spice-devel,v10,16/27] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v10,17/27] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v10,18/27] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v10,19/27] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v10,20/27] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,client,v10,21/27] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v10,22/27] spice-gtk: Rename num_drops_on_receive to arrive_late_count. Francois Gouget Accepted
[Spice-devel,client,v10,23/27] spice-gtk: Let the video decoder queue, schedule and drop the frames Francois Gouget New
[Spice-devel,client,v10,24/27] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,client,v10,25/27] spice-gtk: Allow disabling support for the builtin MJPEG video dec... Francois Gouget Accepted
[Spice-devel,client,v10,26/27] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v10,27/27] spice-gtk: Use decodebin as a fallback for the GStreamer video dec... Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,protocol,v10,01/27] protocol: Add support for the VP8 and h264 video codecs Francois Gouget New 1
[Spice-devel,v10,02/27] server: Store the opaque pointer in VideoEncoderRateControlCbs Francois Gouget Accepted 1
[Spice-devel,v10,03/27] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded 1
[Spice-devel,v10,04/27] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New 1
[Spice-devel,v10,05/27] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v10,06/27] server: Let the administrator pick the video encoder and codec Francois Gouget New 1
[Spice-devel,v10,07/27] replay: Add an option to change video codec Pavel Grunt Accepted 1
[Spice-devel,v10,08/27] server: Add VP8 support to the GStreamer video encoder Francois Gouget New 1
[Spice-devel,v10,09/27] server: Let the video encoder manage the compressed buffer Francois Gouget New 1
[Spice-devel,v10,10/27] server: Make the RedDrawable refcount thread-safe Francois Gouget New
[Spice-devel,v10,11/27] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v10,12/27] server: Add h264 support to the GStreamer video encoder Francois Gouget New 1
[Spice-devel,v10,13/27] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v10,14/27] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v10,15/27] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New 1
[Spice-devel,v10,16/27] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v10,17/27] server: Add support for GStreamer 0.10 Christophe Fergeau New 1
[Spice-devel,qxl,v10,18/27] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v10,19/27] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v10,20/27] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,client,v10,21/27] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v10,22/27] spice-gtk: Rename num_drops_on_receive to arrive_late_count. Francois Gouget Accepted
[Spice-devel,client,v10,23/27] spice-gtk: Let the video decoder queue, schedule and drop the frames Francois Gouget New
[Spice-devel,client,v10,24/27] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,client,v10,25/27] spice-gtk: Allow disabling support for the builtin MJPEG video dec... Francois Gouget Accepted
[Spice-devel,client,v10,26/27] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v10,27/27] spice-gtk: Use decodebin as a fallback for the GStreamer video dec... Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v11,01/27] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded
[Spice-devel,v11,02/27] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v11,03/27] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v11,04/27] server: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v11,05/27] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v11,06/27] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v11,07/27] server: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v11,08/27] server: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v11,09/27] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v11,10/27] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v11,11/27] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v11,12/27] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v11,13/27] server: Adjust the frame rate based on the GStreamer encoding time Francois Gouget Accepted
[Spice-devel,v11,14/27] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v11,15/27] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v11,16/27] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v11,17/27] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,xspice,v11,18/27] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v11,19/27] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,client,v11,20/27] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v11,21/27] spice-gtk: Rename num_drops_on_receive to arrive_late_count Francois Gouget New
[Spice-devel,client,v11,22/27] spice-gtk: Let the video decoder queue, schedule and drop the frames Francois Gouget New
[Spice-devel,client,v11,23/27] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,client,v11,24/27] spice-gtk: Allow disabling support for the builtin MJPEG video dec... Francois Gouget New
[Spice-devel,client,v11,25/27] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget Accepted
[Spice-devel,client,v11,26/27] spice-gtk: Use decodebin as a fallback for the GStreamer video dec... Francois Gouget New
[Spice-devel,client,v11,27/27] spice-gtk: Avoid GAsyncQueue for compatibility with GLib < 2.46 Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v12,01/26] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded
[Spice-devel,v12,02/26] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v12,03/26] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v12,04/26] server: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v12,05/26] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v12,06/26] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v12,07/26] server: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v12,08/26] server: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v12,09/26] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v12,10/26] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v12,11/26] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v12,12/26] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v12,13/26] server: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v12,14/26] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v12,15/26] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v12,16/26] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v12,17/26] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v12,18/26] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v12,19/26] spice-gtk: Enable adding alternative video decoders Francois Gouget New
[Spice-devel,client,v12,20/26] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v12,21/26] spice-gtk: Rename num_drops_on_receive to arrive_late_count Francois Gouget New
[Spice-devel,client,v12,22/26] spice-gtk: Let the video decoder queue, schedule and drop the frames Francois Gouget New
[Spice-devel,client,v12,23/26] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New
[Spice-devel,client,v12,24/26] spice-gtk: Allow disabling support for the builtin MJPEG video dec... Francois Gouget New
[Spice-devel,client,v12,25/26] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v12,26/26] spice-gtk: Use decodebin as a fallback for the GStreamer video dec... Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v13,01/29] server: Correctly handle and trace stream report errors Francois Gouget New
[Spice-devel,v13,02/29] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded
[Spice-devel,v13,03/29] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v13,04/29] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v13,05/29] server: Let the administrator pick the video encoder and codec Francois Gouget New 1
[Spice-devel,v13,06/29] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v13,07/29] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v13,08/29] server: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v13,09/29] server: Let the video encoder manage the compressed buffer Francois Gouget New 1
[Spice-devel,v13,10/29] server: Handle and recover from GStreamer encoding errors Francois Gouget New
[Spice-devel,v13,11/29] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v13,12/29] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v13,13/29] server: Shape the bit rate of the GStreamer codecs output Francois Gouget Accepted
[Spice-devel,v13,14/29] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget Accepted
[Spice-devel,v13,15/29] server: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v13,16/29] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New 1
[Spice-devel,v13,17/29] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget Accepted
[Spice-devel,v13,18/29] server: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget Accepted
[Spice-devel,v13,19/29] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v13,20/29] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v13,21/29] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v13,22/29] spice-gtk: Enable adding alternative video decoders Francois Gouget Accepted
[Spice-devel,client,v13,23/29] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v13,24/29] spice-gtk: Rename num_drops_on_receive to arrive_late_count Francois Gouget New
[Spice-devel,client,v13,25/29] spice-gtk: Let the video decoder queue, schedule and drop the frames Francois Gouget New 1
[Spice-devel,client,v13,26/29] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget Accepted
[Spice-devel,client,v13,27/29] spice-gtk: Allow disabling support for the builtin MJPEG video dec... Francois Gouget New
[Spice-devel,client,v13,28/29] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v13,29/29] spice-gtk: Use decodebin as a fallback for the GStreamer video dec... Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v13,01/29] server: Correctly handle and trace stream report errors Francois Gouget New
[Spice-devel,v13,02/29] server: Enable adding alternative MJPEG video encoders Francois Gouget Superseded
[Spice-devel,v13,03/29] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v13,04/29] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v13,05/29] server: Let the administrator pick the video encoder and codec Francois Gouget New 1
[Spice-devel,v13,06/29] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v13,07/29] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v13,08/29] server: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v13,09/29] server: Let the video encoder manage the compressed buffer Francois Gouget New 1
[Spice-devel,v13,10/29] server: Handle and recover from GStreamer encoding errors Christophe Fergeau New
[Spice-devel,v13,11/29] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v13,12/29] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v13,13/29] server: Shape the bit rate of the GStreamer codecs output Francois Gouget Accepted
[Spice-devel,v13,14/29] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget Accepted
[Spice-devel,v13,15/29] server: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v13,16/29] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New 1
[Spice-devel,v13,17/29] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget Accepted
[Spice-devel,v13,18/29] server: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget Accepted
[Spice-devel,v13,19/29] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v13,20/29] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v13,21/29] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v13,22/29] spice-gtk: Enable adding alternative video decoders Francois Gouget Accepted
[Spice-devel,client,v13,23/29] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New
[Spice-devel,client,v13,24/29] spice-gtk: Rename num_drops_on_receive to arrive_late_count Francois Gouget New
[Spice-devel,client,v13,25/29] spice-gtk: Let the video decoder queue, schedule and drop the frames Francois Gouget New 1
[Spice-devel,client,v13,26/29] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget Accepted
[Spice-devel,client,v13,27/29] spice-gtk: Allow disabling support for the builtin MJPEG video dec... Francois Gouget New
[Spice-devel,client,v13,28/29] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New
[Spice-devel,client,v13,29/29] spice-gtk: Use decodebin as a fallback for the GStreamer video dec... Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v14,01/29] server: Correctly handle and trace stream report errors Francois Gouget New
[Spice-devel,v14,02/29] server: Enable adding alternative MJPEG video encoders Francois Gouget Accepted
[Spice-devel,v14,03/29] server: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v14,04/29] server: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v14,05/29] server: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v14,06/29] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v14,07/29] server: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v14,08/29] server: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v14,09/29] server: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v14,10/29] server: Handle and recover from GStreamer encoding errors Francois Gouget New
[Spice-devel,v14,11/29] server: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v14,12/29] server: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v14,13/29] server: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v14,14/29] server: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v14,15/29] server: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v14,16/29] server: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v14,17/29] server: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v14,18/29] server: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget New
[Spice-devel,v14,19/29] server: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v14,20/29] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v14,21/29] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
[Spice-devel,client,v14,22/29] spice-gtk: Enable adding alternative video decoders Francois Gouget New 1
[Spice-devel,client,v14,23/29] spice-gtk: Optimize handling of the decoded frame buffer Francois Gouget New 1
[Spice-devel,client,v14,24/29] spice-gtk: Rename num_drops_on_receive to arrive_late_count Francois Gouget New 1
[Spice-devel,client,v14,25/29] spice-gtk: Let the video decoder queue, schedule and drop the frames Francois Gouget New 1
[Spice-devel,client,v14,26/29] spice-gtk: Add a GStreamer video decoder for MJPEG, VP8 and h264 Francois Gouget New 1
[Spice-devel,client,v14,27/29] spice-gtk: Allow disabling support for the builtin MJPEG video dec... Francois Gouget New 1
[Spice-devel,client,v14,28/29] spice-gtk: Probe GStreamer before advertising support for a codec Francois Gouget New 1
[Spice-devel,client,v14,29/29] spice-gtk: Use decodebin as a fallback for the GStreamer video dec... Francois Gouget New 1

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v15,01/21] mjpeg: Use src_area as the authoritative source for the frame dimensions Francois Gouget Accepted
[Spice-devel,v15,02/21] streaming: Remove the width/height encode_frame() parameters Francois Gouget New
[Spice-devel,v15,03/21] streaming: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v15,04/21] streaming: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v15,05/21] streaming: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v15,06/21] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v15,07/21] streaming: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v15,08/21] streaming: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v15,09/21] streaming: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v15,10/21] streaming: Handle and recover from GStreamer encoding errors Francois Gouget New
[Spice-devel,v15,11/21] streaming: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v15,12/21] streaming: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v15,13/21] streaming: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v15,14/21] streaming: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v15,15/21] streaming: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v15,16/21] streaming: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v15,17/21] streaming: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v15,18/21] streaming: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget New
[Spice-devel,v15,19/21] streaming: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v15,20/21] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v15,21/21] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v15,01/21] mjpeg: Use src_area as the authoritative source for the frame dimensions Francois Gouget Accepted
[Spice-devel,v15,02/21] streaming: Remove the width/height encode_frame() parameters Francois Gouget New
[Spice-devel,v15,03/21] streaming: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v15,04/21] streaming: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v15,05/21] streaming: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v15,06/21] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v15,07/21] streaming: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v15,08/21] streaming: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v15,09/21] streaming: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v15,10/21] streaming: Handle and recover from GStreamer encoding errors Francois Gouget New
[Spice-devel,v15,11/21] streaming: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v15,12/21] streaming: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v15,13/21] streaming: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v15,14/21] streaming: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v15,15/21] streaming: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v15,16/21] streaming: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v15,17/21] streaming: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v15,18/21] streaming: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget New
[Spice-devel,v15,19/21] streaming: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v15,20/21] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v15,21/21] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v15,01/21] mjpeg: Use src_area as the authoritative source for the frame dimensions Francois Gouget Accepted
[Spice-devel,v15,02/21] streaming: Remove the width/height encode_frame() parameters Francois Gouget New
[Spice-devel,v15,03/21] streaming: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v15,04/21] streaming: Check the client video codec capabilities Francois Gouget New
[Spice-devel,v15,05/21] streaming: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v15,06/21] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v15,07/21] streaming: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v15,08/21] streaming: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v15,09/21] streaming: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v15,10/21] streaming: Handle and recover from GStreamer encoding errors Francois Gouget New
[Spice-devel,v15,11/21] streaming: Avoid copying the input frame in the GStreamer encoder Francois Gouget New
[Spice-devel,v15,12/21] streaming: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v15,13/21] streaming: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v15,14/21] streaming: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v15,15/21] streaming: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v15,16/21] streaming: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v15,17/21] streaming: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v15,18/21] streaming: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget New
[Spice-devel,v15,19/21] streaming: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v15,20/21] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v15,21/21] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v16,01/23] streaming: Better check for sized frames Francois Gouget Accepted
[Spice-devel,v16,02/23] streaming: Remove the Drawable.sized_stream field Francois Gouget New 1
[Spice-devel,v16,03/23] mjpeg: Use src_area as the authoritative source for the frame dimensions Francois Gouget New
[Spice-devel,v16,04/23] streaming: Remove the width/height encode_frame() parameters Francois Gouget Accepted
[Spice-devel,v16,05/23] streaming: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v16,06/23] streaming: Check the client video codec capabilities Francois Gouget Accepted
[Spice-devel,v16,07/23] streaming: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v16,08/23] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v16,09/23] streaming: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v16,10/23] streaming: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v16,11/23] streaming: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v16,12/23] streaming: Handle and recover from GStreamer encoding errors Francois Gouget New
[Spice-devel,v16,13/23] streaming: Avoid copying the input frame in the GStreamer encoder Francois Gouget Accepted
[Spice-devel,v16,14/23] streaming: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v16,15/23] streaming: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v16,16/23] streaming: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v16,17/23] streaming: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v16,18/23] streaming: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v16,19/23] streaming: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v16,20/23] streaming: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget New
[Spice-devel,v16,21/23] streaming: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v16,22/23] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v16,23/23] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v16,01/23] streaming: Better check for sized frames Francois Gouget Accepted
[Spice-devel,spice-server,1/4] streaming: Rework red_marshall_stream_data a bit Christophe Fergeau Accepted 1
[Spice-devel,v16,03/23] mjpeg: Use src_area as the authoritative source for the frame dimensions Francois Gouget New
[Spice-devel,v16,04/23] streaming: Remove the width/height encode_frame() parameters Francois Gouget Accepted
[Spice-devel,v16,05/23] streaming: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v16,06/23] streaming: Check the client video codec capabilities Francois Gouget Accepted
[Spice-devel,v16,07/23] streaming: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v16,08/23] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v16,09/23] streaming: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v16,10/23] streaming: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v16,11/23] streaming: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v16,12/23] streaming: Handle and recover from GStreamer encoding errors Francois Gouget New
[Spice-devel,v16,13/23] streaming: Avoid copying the input frame in the GStreamer encoder Francois Gouget Accepted
[Spice-devel,v16,14/23] streaming: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v16,15/23] streaming: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v16,16/23] streaming: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v16,17/23] streaming: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v16,18/23] streaming: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v16,19/23] streaming: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v16,20/23] streaming: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget New
[Spice-devel,v16,21/23] streaming: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v16,22/23] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v16,23/23] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v16,01/23] streaming: Better check for sized frames Francois Gouget Accepted
[Spice-devel,spice-server,2/4] streaming: Remove the Drawable.sized_stream field Christophe Fergeau Accepted
[Spice-devel,v16,03/23] mjpeg: Use src_area as the authoritative source for the frame dimensions Francois Gouget New
[Spice-devel,v16,04/23] streaming: Remove the width/height encode_frame() parameters Francois Gouget Accepted
[Spice-devel,v16,05/23] streaming: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v16,06/23] streaming: Check the client video codec capabilities Francois Gouget Accepted
[Spice-devel,v16,07/23] streaming: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v16,08/23] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v16,09/23] streaming: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v16,10/23] streaming: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v16,11/23] streaming: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v16,12/23] streaming: Handle and recover from GStreamer encoding errors Francois Gouget New
[Spice-devel,v16,13/23] streaming: Avoid copying the input frame in the GStreamer encoder Francois Gouget Accepted
[Spice-devel,v16,14/23] streaming: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v16,15/23] streaming: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v16,16/23] streaming: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v16,17/23] streaming: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v16,18/23] streaming: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v16,19/23] streaming: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v16,20/23] streaming: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget New
[Spice-devel,v16,21/23] streaming: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v16,22/23] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v16,23/23] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v16,01/23] streaming: Better check for sized frames Francois Gouget Accepted
[Spice-devel,spice-server,3/4] streaming: Remove unused detach_stream() argument Christophe Fergeau Accepted
[Spice-devel,v16,03/23] mjpeg: Use src_area as the authoritative source for the frame dimensions Francois Gouget New
[Spice-devel,v16,04/23] streaming: Remove the width/height encode_frame() parameters Francois Gouget Accepted
[Spice-devel,v16,05/23] streaming: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v16,06/23] streaming: Check the client video codec capabilities Francois Gouget Accepted
[Spice-devel,v16,07/23] streaming: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v16,08/23] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v16,09/23] streaming: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v16,10/23] streaming: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v16,11/23] streaming: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v16,12/23] streaming: Handle and recover from GStreamer encoding errors Francois Gouget New
[Spice-devel,v16,13/23] streaming: Avoid copying the input frame in the GStreamer encoder Francois Gouget Accepted
[Spice-devel,v16,14/23] streaming: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v16,15/23] streaming: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v16,16/23] streaming: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v16,17/23] streaming: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v16,18/23] streaming: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v16,19/23] streaming: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v16,20/23] streaming: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget New
[Spice-devel,v16,21/23] streaming: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v16,22/23] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v16,23/23] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New
SERIES REVISION LOOKS STRANGE. Please double-check patch list and the ordering before proceeding.

Patches download mbox

# Name Submitter State A F R T
[Spice-devel,v16,01/23] streaming: Better check for sized frames Francois Gouget Accepted
[Spice-devel,spice-server,4/4] streaming: Simplify is_next_stream_frame() Christophe Fergeau Accepted
[Spice-devel,v16,03/23] mjpeg: Use src_area as the authoritative source for the frame dimensions Francois Gouget New
[Spice-devel,v16,04/23] streaming: Remove the width/height encode_frame() parameters Francois Gouget Accepted
[Spice-devel,v16,05/23] streaming: Add a GStreamer 1.0 MJPEG video encoder and use it by default Francois Gouget New
[Spice-devel,v16,06/23] streaming: Check the client video codec capabilities Francois Gouget Accepted
[Spice-devel,v16,07/23] streaming: Let the administrator pick the video encoder and codec Francois Gouget New
[Spice-devel,v16,08/23] replay: Add an option to change video codec Pavel Grunt New
[Spice-devel,v16,09/23] streaming: Add VP8 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v16,10/23] streaming: Use the optimal number of threads for VP8 encoding Francois Gouget New
[Spice-devel,v16,11/23] streaming: Let the video encoder manage the compressed buffer Francois Gouget New
[Spice-devel,v16,12/23] streaming: Handle and recover from GStreamer encoding errors Francois Gouget New
[Spice-devel,v16,13/23] streaming: Avoid copying the input frame in the GStreamer encoder Francois Gouget Accepted
[Spice-devel,v16,14/23] streaming: Add h264 support to the GStreamer video encoder Francois Gouget New
[Spice-devel,v16,15/23] streaming: Shape the bit rate of the GStreamer codecs output Francois Gouget New
[Spice-devel,v16,16/23] streaming: Adjust the GStreamer encoder bit rate to the network Francois Gouget New
[Spice-devel,v16,17/23] streaming: Adjust the frame rate based on the GStreamer encoding time Francois Gouget New
[Spice-devel,v16,18/23] streaming: Give up after a while if GStreamer cannot handle the video Francois Gouget New
[Spice-devel,v16,19/23] streaming: Respect the GStreamer encoder's valid bit rate range Francois Gouget New
[Spice-devel,v16,20/23] streaming: Dynamically adjust the GStreamer encoder bitrate if possible Francois Gouget New
[Spice-devel,v16,21/23] streaming: Add support for GStreamer 0.10 Francois Gouget New
[Spice-devel,qxl,v16,22/23] spiceqxl: Add SpiceVideoCodecs to specify video codec preferences Francois Gouget New
[Spice-devel,qxl,v16,23/23] Xspice: Add --video-codecs to specify encoder and codec preferences Francois Gouget New