From 3642ee846a0eadd8c0554c66dc8d9114307f9d34 Mon Sep 17 00:00:00 2001 From: Leo Liu Date: Fri, 30 May 2014 15:57:29 -0400 Subject: [PATCH] st/omx/enc: enable b frames MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Leo Liu Reviewed-by: Christian König --- src/gallium/state_trackers/omx/vid_enc.c | 6 ++++-- src/gallium/state_trackers/omx/vid_enc.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gallium/state_trackers/omx/vid_enc.c b/src/gallium/state_trackers/omx/vid_enc.c index f828d0508dd..d16fa018186 100644 --- a/src/gallium/state_trackers/omx/vid_enc.c +++ b/src/gallium/state_trackers/omx/vid_enc.c @@ -664,7 +664,8 @@ static OMX_ERRORTYPE vid_enc_MessageHandler(OMX_COMPONENTTYPE* comp, internalReq priv->scale.xWidth : port->sPortParam.format.video.nFrameWidth; templat.height = priv->scale_buffer[priv->current_scale_buffer] ? priv->scale.xHeight : port->sPortParam.format.video.nFrameHeight; - templat.max_references = OMX_VID_ENC_P_PERIOD_DEFAULT; + templat.max_references = (templat.profile == PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE) ? + 1 : OMX_VID_ENC_P_PERIOD_DEFAULT; priv->codec = priv->s_pipe->create_video_codec(priv->s_pipe, &templat); @@ -1120,7 +1121,8 @@ static OMX_ERRORTYPE vid_enc_EncodeFrame(omx_base_PortType *port, OMX_BUFFERHEAD picture_type = PIPE_H264_ENC_PICTURE_TYPE_IDR; priv->force_pic_type.IntraRefreshVOP = OMX_FALSE; priv->frame_num = 0; - } else if (!(priv->pic_order_cnt % OMX_VID_ENC_P_PERIOD_DEFAULT) || + } else if (priv->codec->profile == PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE || + !(priv->pic_order_cnt % OMX_VID_ENC_P_PERIOD_DEFAULT) || (buf->nFlags & OMX_BUFFERFLAG_EOS)) { picture_type = PIPE_H264_ENC_PICTURE_TYPE_P; } else { diff --git a/src/gallium/state_trackers/omx/vid_enc.h b/src/gallium/state_trackers/omx/vid_enc.h index a49f249c792..47e4b963d89 100644 --- a/src/gallium/state_trackers/omx/vid_enc.h +++ b/src/gallium/state_trackers/omx/vid_enc.h @@ -60,7 +60,7 @@ #define OMX_VID_ENC_SCALING_WIDTH_DEFAULT 0xffffffff #define OMX_VID_ENC_SCALING_HEIGHT_DEFAULT 0xffffffff #define OMX_VID_ENC_IDR_PERIOD_DEFAULT 1000 -#define OMX_VID_ENC_P_PERIOD_DEFAULT 1 +#define OMX_VID_ENC_P_PERIOD_DEFAULT 3 #define OMX_VID_ENC_NUM_SCALING_BUFFERS 4 -- 2.30.2