[gstreamer-bugs] [Bug 576180] New: [playbin2] Uses unref'd audiosink volume if using gconfaudiosink & audio sink supports volume

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Sat Mar 21 05:29:04 PDT 2009


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=576180

  GStreamer | gst-plugins-base | Ver: git
           Summary: [playbin2] Uses unref'd audiosink volume if using
                    gconfaudiosink & audio sink supports volume
           Product: GStreamer
           Version: git
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: slomo at circular-chaos.org
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


Hi,
playbin2 currently uses an unref'd volume element in the following scenario:

a) playbin2 is created, audio-sink is set to gconfaudiosink. gconfaudiosink
uses pulsesink.
b) Play some file with audio
c) reuse playbin2 for some other files with audio
=> crash as playsink->audiochain->volume points to an invalid memory area.

This is caused by gconfaudiosink creating a new audiosink everytime it goes to
PAUSED (or something like that). The problem now is, that playsink sets
audiochain->volume only when the chain is created, i.e. it will contain the
pulsesink of first file that was played.

The proposed fix would be in gstplaysink.c:1518. If create_chain is FALSE we
should call some kind of update_audio_chain() function that updates the volume
element. Similar issues might also exist for the text/video sinks but I didn't
look at them.

OTOH this proposed fix will only work if the volume element changes only when
the sink is reconfigured. In theory it could change always, so maybe we should
add some callback to the sinks that is called when it's a bin and the children
are changing (is this signal emitted also if a children of a children of a bin
changes?).


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=576180.




More information about the Gstreamer-bugs mailing list