videodecoder: warn if frame list gets long
authorDavid Schleef <ds@schleef.org>
Mon, 11 Feb 2013 19:54:46 +0000 (11:54 -0800)
committerDavid Schleef <ds@schleef.org>
Mon, 11 Feb 2013 19:56:14 +0000 (11:56 -0800)
Decoders that get unparsed input are internally leaking nearly
every incoming buffer.  This checks that case.

gst-libs/gst/video/gstvideodecoder.c

index e128b7b..8e935c3 100644 (file)
@@ -2658,6 +2658,12 @@ gst_video_decoder_decode_frame (GstVideoDecoder * decoder,
 
   gst_video_codec_frame_ref (frame);
   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);