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 727702 - gstreamer: non writable output buffer in do_transform_frame
gstreamer: non writable output buffer in do_transform_frame
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
1.x
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-04-06 10:28 UTC by ticapix
Modified: 2018-11-03 12:20 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
GstVideo.VideoFilter implementation (1.08 KB, text/plain)
2014-04-06 10:29 UTC, ticapix
Details

Description ticapix 2014-04-06 10:28:54 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
Comment 1 ticapix 2014-04-06 10:29:37 UTC
Created attachment 273654 [details]
GstVideo.VideoFilter implementation
Comment 2 ticapix 2014-04-06 10:30:53 UTC
the error on stdout is

(python:11281): GStreamer-CRITICAL **: gst_buffer_fill: assertion 'gst_buffer_is_writable (buffer)' failed
Traceback (most recent call last):
  • File "/home/ticapix/workspace/vhs_restore/src/bug01.py", line 40 in do_transform_frame
    assert ret == 1 AssertionError

Comment 3 ticapix 2014-04-06 13:09:18 UTC
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)
$
Comment 4 Sebastian Dröge (slomo) 2014-04-07 08:01:03 UTC
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.
Comment 5 GStreamer system administrator 2018-11-03 12:20:06 UTC
-- 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.