diff options
-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 | 2 |
2 files changed, 3 insertions, 0 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 c22006a5..0c7ee4f8 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 @@ -406,6 +406,7 @@ class venc_dev #endif }; + int nPframes_cache; int stopped; int resume_in_stopped; bool m_max_allowed_bitrate_check; 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 3b337574..0f15a1ed 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 @@ -4177,6 +4177,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"); + intra_period.num_pframes = nPframes_cache; if (!_venc_set_intra_period(intra_period.num_pframes, 0)) { DEBUG_PRINT_ERROR("Failed to set nPframes/nBframes"); return OMX_ErrorUndefined; @@ -5097,6 +5098,7 @@ bool venc_dev::venc_reconfigure_intra_period() if (enableBframes && intra_period.num_bframes == 0) { intra_period.num_bframes = VENC_BFRAME_MAX_COUNT; + nPframes_cache = intra_period.num_pframes; intra_period.num_pframes = intra_period.num_pframes / (1 + intra_period.num_bframes); bframe_implicitly_enabled = true; } else if (!enableBframes && intra_period.num_bframes > 0) { |