From de83fbd3a365e5f78f92ef7cab4a424abc31141a Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Fri, 31 Aug 2018 12:24:34 +0200 Subject: omxvideoenc: use subframe base class API Use subframe base class support. --- omx/gstomxvideoenc.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/omx/gstomxvideoenc.c b/omx/gstomxvideoenc.c index 7c7bd95..c98d239 100644 --- a/omx/gstomxvideoenc.c +++ b/omx/gstomxvideoenc.c @@ -1429,9 +1429,19 @@ gst_omx_video_enc_handle_output_frame (GstOMXVideoEnc * self, GstOMXPort * port, } if (frame) { - frame->output_buffer = outbuf; - flow_ret = - gst_video_encoder_finish_frame (GST_VIDEO_ENCODER (self), frame); + if ((buf->omx_buf->nFlags & OMX_BUFFERFLAG_ENDOFFRAME) + || !gst_omx_port_get_subframe (self->enc_out_port)) { + frame->output_buffer = outbuf; + flow_ret = + gst_video_encoder_finish_frame (GST_VIDEO_ENCODER (self), frame); + if (buf->omx_buf->nFlags | ~OMX_BUFFERFLAG_ENDOFFRAME) + GST_WARNING_OBJECT (self, + "OMX_BUFFERFLAG_ENDOFFRAME is missing flags"); + } else { + flow_ret = + gst_video_encoder_finish_subframe (GST_VIDEO_ENCODER (self), frame); + gst_video_codec_frame_unref (frame); + } } else { GST_ERROR_OBJECT (self, "No corresponding frame found"); flow_ret = gst_pad_push (GST_VIDEO_ENCODER_SRC_PAD (self), outbuf); -- cgit v1.2.1