[Bug 684398] New: videomixer attempts to make the same buffer writeable twice

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Sep 19 12:17:43 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=684398
  GStreamer | gst-plugins-good | 0.11.x

           Summary: videomixer attempts to make the same buffer writeable
                    twice
    Classification: Platform
           Product: GStreamer
           Version: 0.11.x
        OS/Version: Windows
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: mrubinstein at weather.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


This problem occurs in a MinGW build of RELEASE-0.11.94. It likely happens on
all systems.

It only happens when background=transparent.

Here's a test pipeline:

videomixer name=mix  background=transparent ! videoconvert ! autovideosink 
videotestsrc ! video/x-raw,format=RGBA, width=200,height=200,framerate=10/1  !
videoconvert ! mix.sink_1  videotestsrc pattern=smpte !
video/x-raw,format=RGBA, width=720,height=480,framerate=10/1  ! videoconvert !
mix.sink_0

The error message:

(gst-launch-1.0:6672): GStreamer-CRITICAL **: gst_buffer_memset: assertion
`gst_buffer_is_writable (buffer)' failed

The problem is in videomixer2.c starting at line 830:

 gst_video_frame_map (&outframe, &mix->info, *outbuf, GST_MAP_READWRITE);

  /* default to blending */
  composite = mix->blend;
  switch (mix->background) {
    case VIDEO_MIXER2_BACKGROUND_CHECKER:
      mix->fill_checker (&outframe);
      break;
    case VIDEO_MIXER2_BACKGROUND_BLACK:
      mix->fill_color (&outframe, 16, 128, 128);
      break;
    case VIDEO_MIXER2_BACKGROUND_WHITE:
      mix->fill_color (&outframe, 240, 128, 128);
      break;
    case VIDEO_MIXER2_BACKGROUND_TRANSPARENT:
      gst_buffer_memset (*outbuf, 0, 0, outsize);
      /* use overlay to keep background transparent */
      composite = mix->overlay;
      break;
  }

The buffer is ref'd by both gst_video_frame_map and gst_buffer_memset.  
The gst_buffer_memset fails.

There is also another problem with this test case.  I'll make a second bug
report.

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