GNOME Bugzilla – Bug 727702
gstreamer: non writable output buffer in do_transform_frame
Last modified: 2018-11-03 12:20:06 UTC
Hi, I have a issue with Gstreamer 1.0 using the GstVideo.VideoFilter class. The buffer of the outframe is not writable. How data is supposed to be written back on the frame ? (afaiu, do_tranform_frame_ip should not be used to modify buffer, but only to do read-only operation, right ?) Sample code attached, used with python2
Created attachment 273654 [details] GstVideo.VideoFilter implementation
the error on stdout is (python:11281): GStreamer-CRITICAL **: gst_buffer_fill: assertion 'gst_buffer_is_writable (buffer)' failed Traceback (most recent call last):
+ Trace 233440
assert ret == 1 AssertionError
list and version of installed packages under debian $ dpkg -l | grep gst | grep 1.0 ii gir1.2-gst-plugins-base-1.0 1.2.3-1 amd64 Description: GObject introspection data for the GStreamer Plugins Base library ii gir1.2-gstreamer-1.0 1.2.3-1 amd64 Description: GObject introspection data for the GStreamer library ii gstreamer1.0-alsa:amd64 1.2.3-1 amd64 GStreamer plugin for ALSA ii gstreamer1.0-gnonlin 1.2.0-1 amd64 non-linear editing module for GStreamer ii gstreamer1.0-gnonlin-dbg 1.2.0-1 amd64 non-linear editing module for GStreamer ii gstreamer1.0-libav:amd64 1.2.3-1 amd64 libav plugin for GStreamer ii gstreamer1.0-libav-dbg:amd64 1.2.3-1 amd64 libav plugin for GStreamer (debug symbols) ii gstreamer1.0-plugins-bad:amd64 1.2.3-1+b1 amd64 GStreamer plugins from the "bad" set ii gstreamer1.0-plugins-bad-dbg:amd64 1.2.3-1+b1 amd64 GStreamer plugins from the "bad" set (debug symbols) ii gstreamer1.0-plugins-base:amd64 1.2.3-1 amd64 GStreamer plugins from the "base" set ii gstreamer1.0-plugins-base-dbg:amd64 1.2.3-1 amd64 GStreamer plugins from the "base" set ii gstreamer1.0-plugins-good:amd64 1.2.3-1 amd64 GStreamer plugins from the "good" set ii gstreamer1.0-plugins-good-dbg:amd64 1.2.3-1 amd64 GStreamer plugins from the "good" set ii gstreamer1.0-plugins-ugly:amd64 1.2.3-2 amd64 GStreamer plugins from the "ugly" set ii gstreamer1.0-plugins-ugly-dbg:amd64 1.2.3-2 amd64 GStreamer plugins from the "ugly" set (debug symbols) ii gstreamer1.0-pulseaudio:amd64 1.2.3-1 amd64 GStreamer plugin for PulseAudio ii gstreamer1.0-tools 1.2.3-1 amd64 Tools for use with GStreamer ii gstreamer1.0-x:amd64 1.2.3-1 amd64 GStreamer plugins for X11 and Pango ii libgstreamer-plugins-bad1.0-0:amd64 1.2.3-1+b1 amd64 GStreamer development files for libraries from the "bad" set ii libgstreamer-plugins-base1.0-0:amd64 1.2.3-1 amd64 GStreamer libraries from the "base" set ii libgstreamer1.0-0:amd64 1.2.3-1 amd64 Core GStreamer libraries and elements ii libgstreamer1.0-0-dbg:amd64 1.2.3-1 amd64 Core GStreamer libraries and elements ii python-gst-1.0 1.2.0-1 amd64 GStreamer GObject Introspection overrides for Python ii python3-gst-1.0 1.2.0-1 amd64 GStreamer GObject Introspection overrides for Python (Python 3) ii python3-gst-1.0-dbg 1.2.0-1 amd64 GStreamer GObject Introspection overrides for Python (Python 3, debug extensions) $
That looks like another bug with PyGi, where it increases the refcount of buffers unnecessarily, and thus makes them non-writable (buffers with refcount > 1 are considered not writable). The buffer in the transform function is owned by the callee and thus nothing in PyGi should increase the refcount.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/53.