Commit 63517d0e authored by Thibault Saunier's avatar Thibault Saunier 🌵

videoencoder: Release video frame when ->handle return ERROR or DROPPED

https://bugzilla.gnome.org/show_bug.cgi?id=760666
parent 62053852
......@@ -212,7 +212,9 @@ static void gst_video_encoder_init (GstVideoEncoder * enc,
GstVideoEncoderClass * klass);
static void gst_video_encoder_finalize (GObject * object);
static void
gst_video_encoder_release_frame (GstVideoEncoder * enc,
GstVideoCodecFrame * frame);
static gboolean gst_video_encoder_setcaps (GstVideoEncoder * enc,
GstCaps * caps);
static GstCaps *gst_video_encoder_sink_getcaps (GstVideoEncoder * encoder,
......@@ -1479,6 +1481,11 @@ gst_video_encoder_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
ret = klass->handle_frame (encoder, frame);
if (ret == GST_VIDEO_ENCODER_FLOW_DROPPED || ret == GST_FLOW_ERROR) {
GST_INFO_OBJECT (encoder, "Dropping frame %p", frame);
gst_video_encoder_release_frame (encoder, frame);
}
done:
GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment