videoencoder: _get_oldest_frame: return a reference
authorEdward Hervey <edward.hervey@collabora.co.uk>
Tue, 1 May 2012 14:12:40 +0000 (16:12 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 1 May 2012 14:59:06 +0000 (16:59 +0200)
gst-libs/gst/video/gstvideoencoder.c

index 5e5527c..1f05f9d 100644 (file)
@@ -1642,22 +1642,21 @@ gst_video_encoder_get_latency (GstVideoEncoder * encoder,
  *
  * Get the oldest unfinished pending #GstVideoCodecFrame
  *
- * Returns: oldest unfinished pending #GstVideoCodecFrame
+ * Returns: (transfer full): oldest unfinished pending #GstVideoCodecFrame
  *
  * Since: 0.10.36
  */
 GstVideoCodecFrame *
 gst_video_encoder_get_oldest_frame (GstVideoEncoder * encoder)
 {
-  GList *g;
+  GstVideoCodecFrame *frame = NULL;
 
   GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
-  g = encoder->priv->frames;
+  if (encoder->priv->frames)
+    frame = gst_video_codec_frame_ref (encoder->priv->frames->data);
   GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
 
-  if (g == NULL)
-    return NULL;
-  return (GstVideoCodecFrame *) (g->data);
+  return (GstVideoCodecFrame *) frame;
 }
 
 /**