diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-11-30 16:17:12 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-11-30 16:17:12 -0800 |
commit | a08399b1c97af8b667a17ff403c06e587ab00f46 (patch) | |
tree | ee7c4efeee116fb044fa65e51893fb96cde41291 /mm-video-v4l2/vidc/venc | |
parent | 0e845d8be0046ea074c76dfa24ceac50e26fc2f5 (diff) | |
parent | b57ee31689ac5714cfbdca218fd285ff3bb0d5d8 (diff) | |
download | media-a08399b1c97af8b667a17ff403c06e587ab00f46.tar.gz |
Merge "mm-video-v4l2: Allow disabling implicit B-Frames"
Diffstat (limited to 'mm-video-v4l2/vidc/venc')
-rw-r--r-- | mm-video-v4l2/vidc/venc/inc/video_encoder_device_v4l2.h | 1 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp | 14 |
2 files changed, 10 insertions, 5 deletions
diff --git a/mm-video-v4l2/vidc/venc/inc/video_encoder_device_v4l2.h b/mm-video-v4l2/vidc/venc/inc/video_encoder_device_v4l2.h index 48c0d909..9885b8c6 100644 --- a/mm-video-v4l2/vidc/venc/inc/video_encoder_device_v4l2.h +++ b/mm-video-v4l2/vidc/venc/inc/video_encoder_device_v4l2.h @@ -474,6 +474,7 @@ class venc_dev bool venc_set_profile(OMX_U32 eProfile); bool venc_set_level(OMX_U32 eLevel); bool venc_set_intra_period(OMX_U32 nPFrames, OMX_U32 nBFrames); + bool _venc_set_intra_period(OMX_U32 nPFrames, OMX_U32 nBFrames); bool venc_set_target_bitrate(OMX_U32 nTargetBitrate); bool venc_set_ratectrl_cfg(OMX_VIDEO_CONTROLRATETYPE eControlRate); bool venc_set_session_qp_range(OMX_QCOM_VIDEO_PARAM_IPB_QPRANGETYPE *qp_range); diff --git a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp index 383f20bb..f1eecbe6 100644 --- a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp +++ b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp @@ -4133,7 +4133,7 @@ bool venc_dev::venc_empty_buf(void *buffer, void *pmem_data_buf, unsigned index, m_sVenc_cfg.inputformat != V4L2_PIX_FMT_NV12_UBWC)) { if (bframe_implicitly_enabled) { DEBUG_PRINT_HIGH("Disabling implicitly enabled B-frames"); - if (!venc_set_intra_period(intra_period.num_pframes, 0)) { + if (!_venc_set_intra_period(intra_period.num_pframes, 0)) { DEBUG_PRINT_ERROR("Failed to set nPframes/nBframes"); return OMX_ErrorUndefined; } @@ -5103,16 +5103,20 @@ bool venc_dev::venc_reconfigure_intra_period() bool venc_dev::venc_set_intra_period(OMX_U32 nPFrames, OMX_U32 nBFrames) { - DEBUG_PRINT_LOW("venc_set_intra_period: nPFrames = %u, nBFrames: %u", (unsigned int)nPFrames, (unsigned int)nBFrames); - int rc; - struct v4l2_control control; - char property_value[PROPERTY_VALUE_MAX] = {0}; if ((streaming[OUTPUT_PORT] || streaming[CAPTURE_PORT]) && (intra_period.num_bframes != nBFrames)) { DEBUG_PRINT_ERROR("Invalid settings, Cannot change B frame count dynamically"); return false; } + return _venc_set_intra_period(nPFrames, nBFrames); +} + +bool venc_dev::_venc_set_intra_period(OMX_U32 nPFrames, OMX_U32 nBFrames) +{ + int rc; + struct v4l2_control control; + char property_value[PROPERTY_VALUE_MAX] = {0}; if (m_sVenc_cfg.codectype != V4L2_PIX_FMT_H264 && m_sVenc_cfg.codectype != V4L2_PIX_FMT_HEVC) { |