video editor: refine frame skip disabling code
BZ: 65223
Patch 69193 doesn't work well sometimes. So use another
libmix interface to disable frame skip in low bitrate encoding.
Also fix some unintialized varaible in libmix encoder.
Signed-off-by: Elaine Wang <elaine.wang@intel.com>
Change-Id: Ied588d0613d94ab6106309c6d2975fbf4cf71978
Reviewed-on: http://android.intel.com:8080/72104
Reviewed-by: Wang, Elaine <elaine.wang@intel.com>
Reviewed-by: Gu, Wangyi <wangyi.gu@intel.com>
Reviewed-by: Shi, PingX <pingx.shi@intel.com>
Tested-by: Shi, PingX <pingx.shi@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
diff --git a/frameworks/videoedit/stagefrightshells/IntelVideoEditorAVCEncoder.cpp b/frameworks/videoedit/stagefrightshells/IntelVideoEditorAVCEncoder.cpp
index 3e55e52..9076bbd 100644
--- a/frameworks/videoedit/stagefrightshells/IntelVideoEditorAVCEncoder.cpp
+++ b/frameworks/videoedit/stagefrightshells/IntelVideoEditorAVCEncoder.cpp
@@ -178,6 +178,18 @@
CHECK(encStatus == ENCODE_SUCCESS);
LOGV("new H264 encoder params set");
+ if (disableFrameSkip) {
+ VideoConfigBitRate configBitrate;
+ encStatus = mVAEncoder->getConfig(&configBitrate);
+ CHECK(encStatus == ENCODE_SUCCESS);
+ LOGV("got encoder config set");
+
+ configBitrate.rcParams.disableFrameSkip = 1;
+ encStatus = mVAEncoder->setConfig(&configBitrate);
+ CHECK(encStatus == ENCODE_SUCCESS);
+ LOGV("got encoder frame skip/bits stuffing set");
+ }
+
VideoParamsHRD hrdParam;
encStatus = mVAEncoder->getParameters(&hrdParam);
CHECK(encStatus == ENCODE_SUCCESS);
diff --git a/videoencoder/VideoEncoderBase.cpp b/videoencoder/VideoEncoderBase.cpp
index d511ec1..819adfa 100644
--- a/videoencoder/VideoEncoderBase.cpp
+++ b/videoencoder/VideoEncoderBase.cpp
@@ -825,10 +825,10 @@
mComParams.intraPeriod = 30;
mComParams.rcMode = RATE_CONTROL_NONE;
mComParams.rcParams.initQP = 15;
- mComParams.rcParams.minQP = 1;
+ mComParams.rcParams.minQP = 0;
mComParams.rcParams.bitRate = 640000;
- mComParams.rcParams.targetPercentage= 95;
- mComParams.rcParams.windowSize = 500;
+ mComParams.rcParams.targetPercentage= 0;
+ mComParams.rcParams.windowSize = 0;
mComParams.rcParams.disableFrameSkip = 0;
mComParams.rcParams.disableBitsStuffing = 1;
mComParams.cyclicFrameInterval = 30;
@@ -1960,6 +1960,7 @@
bitrateControlParam->window_size = mComParams.rcParams.windowSize;
bitrateControlParam->rc_flags.bits.disable_frame_skip = mComParams.rcParams.disableFrameSkip;
bitrateControlParam->rc_flags.bits.disable_bit_stuffing = mComParams.rcParams.disableBitsStuffing;
+ bitrateControlParam->basic_unit_size = 0;
LOG_I("bits_per_second = %d\n", bitrateControlParam->bits_per_second);
LOG_I("initial_qp = %d\n", bitrateControlParam->initial_qp);