summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mm-video-v4l2/vidc/venc/inc/video_encoder_device_v4l2.h1
-rw-r--r--mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp2
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) {