summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2013-02-11 11:54:46 -0800
committerJosep Torra <n770galaxy@gmail.com>2013-03-10 11:59:31 +0100
commitbfbd34163606c50676fb1b0ac053e92fc20ff552 (patch)
tree18cd52a637bde44ce1c6107e84be1585ead039a6
parentdeb7f9600492535ca6db4d7000a37038c6119d02 (diff)
downloadgstreamer-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.c6
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);