After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 731645 - Vaapi plugins and playbin
Vaapi plugins and playbin
Status: RESOLVED FIXED
Product: gstreamer-vaapi
Classification: Other
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: gstreamer-vaapi maintainer(s)
gstreamer-vaapi maintainer(s)
Depends on:
Blocks: 720305
 
 
Reported: 2014-06-14 09:04 UTC by Lionel Landwerlin
Modified: 2014-07-03 21:17 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
find_preferred_caps_feature: discard caps with ANY features (1.20 KB, patch)
2014-06-14 09:05 UTC, Lionel Landwerlin
reviewed Details | Review
vaapidecode: make decoder work with playbin (2.83 KB, patch)
2014-06-14 09:06 UTC, Lionel Landwerlin
reviewed Details | Review

Description Lionel Landwerlin 2014-06-14 09:04:38 UTC
This bug is the continuation of #719372 to get vaapi plugins to work automatically with playbin.
Attached are 2 patches to make that work on master of gstreamer/gst-plugins-base/gst-plugins-good and gstreamer-vaapi.
Comment 1 Lionel Landwerlin 2014-06-14 09:05:54 UTC
Created attachment 278435 [details] [review]
find_preferred_caps_feature: discard caps with ANY features
Comment 2 Lionel Landwerlin 2014-06-14 09:06:20 UTC
Created attachment 278436 [details] [review]
vaapidecode: make decoder work with playbin
Comment 3 Sebastian Dröge (slomo) 2014-06-22 16:38:11 UTC
Comment on attachment 278435 [details] [review]
find_preferred_caps_feature: discard caps with ANY features

This looks like a bug elsewhere in the code. You should intersect what downstream reports with what you can do, and on that result then decide on the best configuration.

This here looks like the intersection is missing. After intersection all the ANY capsfeatures should be gone. If they are not we need to debug a bit more where they come from.
Comment 4 Sebastian Dröge (slomo) 2014-06-22 16:40:01 UTC
Comment on attachment 278436 [details] [review]
vaapidecode: make decoder work with playbin

Makes sense
Comment 5 Lionel Landwerlin 2014-06-22 19:24:59 UTC
Comment on attachment 278435 [details] [review]
find_preferred_caps_feature: discard caps with ANY features

First patch made obsolete by : http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=9d33b3896968db2abfc5d2cbca8196db09f6bcd5
Comment 6 Gwenole Beauchesne 2014-07-03 21:17:13 UTC
commit 334a0ca8bd20181bcb66ce910c36a54886f99d56
Author: Lionel Landwerlin <llandwerlin@gmail.com>
Date:   Fri Jun 13 21:45:04 2014 +0100

    vaapidecode: make decoder work with playbin
    
    When playbin/decodebin builds the pipeline, it puts decoders and sinks
    into different bins and forwards the queries from bins to bins. So in
    the initials steps the pipeline is built iteratively by playbin and
    looks like this :
    
    [filesrc]
    
    [filesrc] -> [typefind]
    
    [filesrc] -> [typefind] -> [demuxer]
    
    [filesrc] -> [typefind] -> [demuxer] -> [decoder]
    
    At this point the decoder is asked for its SRC caps and it will make a
    choice based on what gst_pad_peer_query_caps() returns. The problem is
    that the caps returns at that point includes caps features like ANY,
    essentially because playbin can plug in additional elements like
    videoscale, videoconv or deinterlace.
    
    This patch adds a another call to
    gst_vaapi_find_preferred_caps_feature() when the decoder decides its
    allocation, to make sure we asks the downstream elements when the
    entire pipeline has been built.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=731645