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 681719 - audiovisualizer does not handle VideoMeta
audiovisualizer does not handle VideoMeta
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.11.x
Other Linux
: Normal blocker
: 1.1.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 681760 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-08-13 06:01 UTC by Matthew Waters (ystreet00)
Modified: 2013-04-01 20:16 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
port to VideoMeta and provide vfuncs for negotiation (17.50 KB, patch)
2012-08-13 12:20 UTC, Matthew Waters (ystreet00)
none Details | Review
add vfuncs for negotiation (14.66 KB, patch)
2012-08-13 13:46 UTC, Matthew Waters (ystreet00)
none Details | Review
handle non-existant pool in default allocation query (1.80 KB, patch)
2013-03-14 00:30 UTC, Matthew Waters (ystreet00)
committed Details | Review

Description Matthew Waters (ystreet00) 2012-08-13 06:01:04 UTC
This makes it hard to use for hardware acceleration.
Comment 1 Wim Taymans 2012-08-13 11:50:07 UTC
commit c6e19d5df2740aa7f940af1ff255166e619c5b00
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Mon Aug 13 13:47:01 2012 +0200

    visual: add support for GstVideoFrame
    
    Add support for GstVideoMeta and GstVideoFrame.
    Remove some redundant fields that are also in GstVideoInfo
    Disable the shader code, it looks broken.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681719
Comment 2 Matthew Waters (ystreet00) 2012-08-13 12:20:19 UTC
Created attachment 221012 [details] [review]
port to VideoMeta and provide vfuncs for negotiation

This patch provides the option for the subclass to decide the allocation query parameters (decide_allocation). There may be other vfuncs that would be useful to copy from BaseTransform as well such as query, start, stop or even prepare_output_buffer.

Most of the code was copy-pasted from either BaseTransform or VideoFilter.
Comment 3 Matthew Waters (ystreet00) 2012-08-13 12:29:45 UTC
It seems that Wim beat me to it :)
Comment 4 Wim Taymans 2012-08-13 13:43:13 UTC
Could you update to the current code?
Comment 5 Matthew Waters (ystreet00) 2012-08-13 13:46:52 UTC
Created attachment 221022 [details] [review]
add vfuncs for negotiation
Comment 6 Matthew Waters (ystreet00) 2012-08-13 13:48:21 UTC
*** Bug 681760 has been marked as a duplicate of this bug. ***
Comment 7 Stefan Sauer (gstreamer, gtkdoc dev) 2012-08-15 09:29:10 UTC
Wim, what looks broken on the shader code. So far it was working.
Comment 8 Wim Taymans 2013-01-29 09:22:27 UTC
I changed a couple of things.

commit ef8e17f993283252f06151c8a2d6035a9dc12e7a
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Tue Jan 29 10:18:06 2013 +0100

    visualizer: improve allocation
    
    Based on patch by Matthew Waters
    
    Add private data
    Add decide_allocation vmethod
    Refactor bufferpool negotiation
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681719
Comment 9 Tim-Philipp Müller 2013-03-13 01:15:36 UTC
This makes totem crash almost instantly for me:

(totem:7009): GStreamer-CRITICAL **: gst_query_set_nth_allocation_pool: assertion `index < array->len' failed

(totem:7009): GStreamer-CRITICAL **: gst_query_set_nth_allocation_pool: assertion `index < array->len' failed
**
ERROR:gstaudiovisualizer.c:992:default_prepare_output_buffer: assertion failed: (priv->pool != NULL)
Comment 10 Matthew Waters (ystreet00) 2013-03-14 00:30:50 UTC
Created attachment 238835 [details] [review]
handle non-existant pool in default allocation query

This should fix it.
Comment 11 Tim-Philipp Müller 2013-04-01 20:15:04 UTC
Thanks!


commit 4f1ba51c4bf1b04867976ad081057c2d06ae36bb
Author: Matthew Waters <ystreet00@gmail.com>
Date:   Thu Mar 14 11:15:29 2013 +1100

    visualizer: handle non-existant pool in the default allocation query
    
    gst_query_set_nth_allocation_pool() requires there to be a pool in the
    query already. This is not always the case when we get the query from
    upstream.  Use gst_query_add_allocation_pool() instead in such case.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=681719