[Bug 720389] New: videodecoder: should release buffer pool sooner

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Dec 13 05:04:08 PST 2013


https://bugzilla.gnome.org/show_bug.cgi?id=720389
  GStreamer | gst-plugins-base | git

           Summary: videodecoder: should release buffer pool sooner
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: julien.isorce at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=264141)
 View: https://bugzilla.gnome.org/attachment.cgi?id=264141
 Review: https://bugzilla.gnome.org/review?bug=720389&attachment=264141

inactivate and unref current negotiated buffer pool when doing a hard reset

Currently in gstvideodecoder.c the last buffer pool negotiated is released in
gst_video_decoder_finalize.

It can cause some leak due to circular ref.

For example for v4l2videodec, the CAPTURE v4l2bufferpool of the underlying
v4l2object has a ref on the decoder:
http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/sys/v4l2/gstv4l2bufferpool.c?id=a1c34b540735a7a23b15cdb77ecba1b28adb93ee

And the videodecoder has also a ref on this capture buffer pool.

=> circular ref.

First I thought about removing this circular ref, but then what do you think
about the above commit ?

So another solution would be to release the buffer pool sooner in
gstvideodecoder.
Actually I think both should be done (remove circular ref in v4l2 and release
buffer pool sooner in gstvideodecoder)

So I suggest to release the buffer pool when doing a hard reset in
gst_video_decoder_reset, which is called when going from and to READY state.

Let me know what do you think about it.

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