[Bug 736896] [REGRESSION] pygobject 3.13 now copies the GstStructure when getting them from a GstCaps, making it impossible to properly modify structures from caps in place.

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Oct 20 11:36:29 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=736896
  GStreamer | gstreamer (core) | git

Will Manley <gnome> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gnome at williammanley.net

--- Comment #13 from Will Manley <gnome at williammanley.net> 2014-10-20 18:36:22 UTC ---
8517504 in pygobject also causes the refcount in Gst.Sample to be incremented
making it impossible to modify the buffer contained within the Gst.Sample. 
This is making stb-tester unable to modify GstBuffers contained within
GstSamples[1] provided from appsink, even if I copy the buffers into a fresh
GstSample[2].

[1]: https://github.com/drothlis/stb-tester/blob/master/stbt/__init__.py#L1551
[2]: https://github.com/drothlis/stb-tester/blob/master/stbt/__init__.py#L1495

Example demonstrating old-behaviour with pygobject at 8517504^:

    In [1]: from gi.repository import Gst

    In [2]: Gst.init()
    Out[2]: []

    In [3]: s = Gst.Sample.new(Gst.Buffer.new_wrapped("Hello"))

    In [4]: s.get_buffer().mini_object.is_writable()
    Out[4]: True

    In [5]: buf = s.get_buffer()

    In [6]: buf.mini_object.is_writable()
    Out[6]: True

Example demonstrating new behaviour with pygobject at 8517504:

    In [1]: from gi.repository import Gst

    In [2]: Gst.init()
    Out[2]: []

    In [3]: s = Gst.Sample.new(Gst.Buffer.new_wrapped("Hello"))

    In [4]: s.get_buffer().mini_object.is_writable()
    Out[4]: True

    In [5]: buf = s.get_buffer()

    In [6]: buf.mini_object.is_writable()
    Out[6]: False

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list