diff --git a/gst-libs/gst/video/gstbasevideoencoder.c b/gst-libs/gst/video/gstbasevideoencoder.c index 70e6fa7924..bd644a6de1 100644 --- a/gst-libs/gst/video/gstbasevideoencoder.c +++ b/gst-libs/gst/video/gstbasevideoencoder.c @@ -357,6 +357,7 @@ gst_base_video_encoder_chain (GstPad * pad, GstBuffer * buf) GstBaseVideoEncoder *base_video_encoder; GstBaseVideoEncoderClass *klass; GstVideoFrame *frame; + GstFlowReturn ret = GST_FLOW_OK; if (!gst_pad_is_negotiated (pad)) { return GST_FLOW_NOT_NEGOTIATED; @@ -389,12 +390,12 @@ gst_base_video_encoder_chain (GstPad * pad, GstBuffer * buf) base_video_encoder->frames = g_list_append (base_video_encoder->frames, frame); - klass->handle_frame (base_video_encoder, frame); + ret = klass->handle_frame (base_video_encoder, frame); done: g_object_unref (base_video_encoder); - return GST_FLOW_OK; + return ret; } static GstStateChangeReturn diff --git a/gst-libs/gst/video/gstbasevideoencoder.h b/gst-libs/gst/video/gstbasevideoencoder.h index 7b9f23b422..7d60a64dd2 100644 --- a/gst-libs/gst/video/gstbasevideoencoder.h +++ b/gst-libs/gst/video/gstbasevideoencoder.h @@ -90,7 +90,7 @@ struct _GstBaseVideoEncoderClass gboolean (*start) (GstBaseVideoEncoder *coder); gboolean (*stop) (GstBaseVideoEncoder *coder); gboolean (*finish) (GstBaseVideoEncoder *coder, GstVideoFrame *frame); - gboolean (*handle_frame) (GstBaseVideoEncoder *coder, GstVideoFrame *frame); + GstFlowReturn (*handle_frame) (GstBaseVideoEncoder *coder, GstVideoFrame *frame); GstFlowReturn (*shape_output) (GstBaseVideoEncoder *coder, GstVideoFrame *frame); GstCaps *(*get_caps) (GstBaseVideoEncoder *coder);