[Bug 767934] New: vaapidecoder_h265: critical memory leak
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Wed Jun 22 02:41:06 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=767934
Bug ID: 767934
Summary: vaapidecoder_h265: critical memory leak
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gstreamer-vaapi
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: zzoon at igalia.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
CC: bsreerenj at gmail.com, vjaquez at igalia.com
GNOME version: ---
Once I play h265 media like below,
GST_DEBUG="GST_TRACER:7" GST_TRACERS="leaks" gst-play-1.0 video-h265.mkv
During quit to play, it results in below.
0:00:01.573694986 12176 0x19bbe60 TRACE GST_TRACER :0::
object-alive, type-name=(string)GstCaps, address=(gpointer)0x7f65bc056c50,
description=(string)image/jpeg; video/mpeg, mpegversion=(int)2,
profile=(string){ simple, main }; video/x-h264, profile=(string){ main, high,
constrained-baseline, multiview-high, stereo-high }; video/x-h265,
profile=(string)main; video/x-vp8; video/x-wmv, wmvversion=(int)3,
format=(string)WVC1, profile=(string)advanced; video/x-wmv, wmvversion=(int)3,
profile=(string){ simple, main }, ref-count=(uint)1;
0:00:01.573747091 12176 0x19bbe60 TRACE GST_TRACER :0::
object-alive, type-name=(string)GstPad, address=(gpointer)0x7f65c4025b50,
description=(string)<vaapidecode:src>, ref-count=(uint)2;
0:00:01.573771883 12176 0x19bbe60 TRACE GST_TRACER :0::
object-alive, type-name=(string)GstPad, address=(gpointer)0x7f65c4025910,
description=(string)<vaapidecode:sink>, ref-count=(uint)2;
0:00:01.573792458 12176 0x19bbe60 TRACE GST_TRACER :0::
object-alive, type-name=(string)GstVaapiDecode,
address=(gpointer)0x7f65bc0431a0, description=(string)<vaapidecode>,
ref-count=(uint)1;
It shows GstVaapiDecode object is not released, it leads to that other caps and
pads are not released either. I think this leak causes a problem during seek,
too.
As far as I investigate, gst_vaapidecode_release is not being called enough,
which is doing unref GstVaapiDecode object.
Because dpb picture, which has a ref to surface proxy, is not released properly
during reset or close.
IMHO, we should re-implement the logic to remove all dpb pictures during reset
in h265 decoder, I guess current logic is wrong.
--
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