[Bug 774129] New: 'gst_buffer_is_writable' assertion in aacparse

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Nov 9 07:01:58 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=774129

            Bug ID: 774129
           Summary: 'gst_buffer_is_writable' assertion  in aacparse
    Classification: Platform
           Product: GStreamer
           Version: 1.10.0
                OS: All
            Status: NEW
          Severity: major
          Priority: Normal
         Component: gst-plugins-good
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: vinodkesti at yahoo.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Created attachment 339363
  --> https://bugzilla.gnome.org/attachment.cgi?id=339363&action=edit
Patch to resolve 'gst_buffer_is_writable' assertion  in aacparse

When accparse is using read only input buffer. Assertion is dumped. 

gst-launch-1.0 audiotestsrc name=src \
src.! voaacenc ! audio/mpeg,framed=true,stream-format=adts ! tee name=split \
split.! queue ! aacparse ! audio/mpeg,stream-format=adts ! fakesink \
split.! queue ! aacparse ! audio/mpeg,stream-format=raw ! fakesink
--gst-debug=3 -v

GStreamer-CRITICAL **: gst_buffer_resize_range: assertion
'gst_buffer_is_writable (buffer)' failed 
GStreamer-CRITICAL **: gst_buffer_resize_range: assertion
'gst_buffer_is_writable (buffer)' failed 
GStreamer-CRITICAL **: gst_buffer_resize_range: assertion
'gst_buffer_is_writable (buffer)' failed 
GStreamer-CRITICAL **: gst_buffer_resize_range: assertion
'gst_buffer_is_writable (buffer)' failed 
GStreamer-CRITICAL **: gst_buffer_resize_range: assertion
'gst_buffer_is_writable (buffer)' failed 
GStreamer-CRITICAL **: gst_buffer_resize_range: assertion
'gst_buffer_is_writable (buffer)' failed 
GStreamer-CRITICAL **: gst_buffer_resize_range: assertion
'gst_buffer_is_writable (buffer)' failed 
GStreamer-CRITICAL **: gst_buffer_resize_range: assertion
'gst_buffer_is_writable (buffer)' failed 
GStreamer-CRITICAL **: gst_buffer_resize_range: assertion
'gst_buffer_is_writable (buffer)' failed 


On further digging into the code found the aacprase is trying to resize the
buffer without checking write permission. 
Issue is resolved by changing buffer permission using gst_buffer_make_writable
Function. 

  /* As a special case, we can remove the ADTS framing and output raw AAC. */ 
  if (aacparse->header_type == DSPAAC_HEADER_ADTS 
      && aacparse->output_header_type == DSPAAC_HEADER_NONE) { 
    guint header_size; 
    GstMapInfo map; 
    frame->buffer = gst_buffer_make_writable( frame->buffer); 
    ... 
    ... 
  } 

I used gst-plugins-master for testing..

-- 
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