[Spice-devel] [PATCH spice-gtk v3 0/6] Always use Playbin to create the pipeline
Victor Toso
victortoso at redhat.com
Tue May 16 14:48:12 UTC 2017
From: Victor Toso <me at victortoso.com>
-- v2->v3:
* Apply acked in
- display-gst: check GstRegistry for decoding elements
* display-gst: include capabilities for h264
- Got the errors from h264parse related to incomplete capabilities. Not
sure how I missed it before. The error points out that video/x-h264
is not enough for h264parse element and it ignores it (meaning that we
could simple ignore capabilities for h264).
- The error is:
h264parse gsth264parse.c:2559:gst_h264_parse_set_caps: video/x-h264
caps without codec_data or stream-format
- But we *do* know the stream-format so I'm adding this to the
capabilites.
* Moved 4/5 to be current 2/6 to avoid an intermediary patch that would
cause regression if used with SPICE_GSTVIDEO_AUTO (Frediano)
* Created 1/6 to avoid creating encoder with wrong codec value (Frediano)
* Move g_sinal_connect() before g_object_set() where playbin is
initialized on 6/6 (Frediano)
* Using a g_warn_if_fail() to be sure we will not be re-assigning the
decoder->appsrc on 6/6 (Frediano)
-- v1-> v2:
Adressing Frediano comments in v1
* Rebased
* Removed caps="" for older version of GStreamer. No clear info on the
issue that one had at that time. Still, video/x-h264 is the stream
format that we receive and an error because of that should really be a
bug in GStreamer.
* Moved v1 02/04 to be v2 01/04 in order to fix more easily the
"cap=%s" problem in v1 01/04
* Free GstSample even while using playbin
* gst_element_ref() GstAppSrc and GstAppSink
-- v1:
Hi,
First time using git-publish [0], sorry if anything goes wrong :)
[0] https://github.com/stefanha/git-publish
The main goal for this series is to have streaming working with hardware
accelerated video decoding whenever is possible.
The best way to achieve that is to let GStreamer do most of the work. Using
Playbin [1] we can create the whole pipeline. We only need to work with
GstAppSrc and GstAppSink to set the encoded data and gather the decoded data.
[1] https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-playbin.html
Trying my best to not break streaming with older versions of GStreamer. Based on
a comment from ceyusa [2], since version 1.9.0 GStreamer is able to use Vaapi
elements automaticaly and for that reason I'm wrapping those changes with
GST_CHECK_VERSION(1,9,0).
[2] https://lists.freedesktop.org/archives/spice-devel/2016-October/032825.html
Cheers,
toso
Victor Toso (6):
display-gst: check codec type before creating decoder
display-gst: remove SPICE_GSTVIDEO_AUTO check
display-gst: include capabilities for h264
display-gst: move "caps=" from struct to pipeline
display-gst: check GstRegistry for decoding elements
display-gst: Use Playbin for GStreamer 1.9.0 onwards
src/channel-display-gst.c | 183 +++++++++++++++++++++++++++++++++++++++-------
1 file changed, 157 insertions(+), 26 deletions(-)
--
2.13.0
More information about the Spice-devel
mailing list