diff options
author | David Schleef <ds@schleef.org> | 2013-02-11 11:54:46 -0800 |
---|---|---|
committer | Josep Torra <n770galaxy@gmail.com> | 2013-03-10 11:59:31 +0100 |
commit | bfbd34163606c50676fb1b0ac053e92fc20ff552 (patch) | |
tree | 18cd52a637bde44ce1c6107e84be1585ead039a6 | |
parent | deb7f9600492535ca6db4d7000a37038c6119d02 (diff) | |
download | gstreamer-plugins-base-bfbd34163606c50676fb1b0ac053e92fc20ff552.tar.gz |
videodecoder: warn if frame list gets long
Decoders that get unparsed input are internally leaking nearly
every incoming buffer. This checks that case.
-rw-r--r-- | gst-libs/gst/video/gstvideodecoder.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c index 6104f4b2e..0ce27fac0 100644 --- a/gst-libs/gst/video/gstvideodecoder.c +++ b/gst-libs/gst/video/gstvideodecoder.c @@ -2516,6 +2516,12 @@ gst_video_decoder_decode_frame (GstVideoDecoder * decoder, GST_LOG_OBJECT (decoder, "dts %" GST_TIME_FORMAT, GST_TIME_ARGS (frame->dts)); GST_LOG_OBJECT (decoder, "dist %d", frame->distance_from_sync); priv->frames = g_list_append (priv->frames, frame); + + if (g_list_length (priv->frames) > 10) { + GST_WARNING_OBJECT (decoder, "decoder frame list getting long: %d frames," + "possible internal leaking?", g_list_length (priv->frames)); + } + frame->deadline = gst_segment_to_running_time (&decoder->input_segment, GST_FORMAT_TIME, frame->pts); |