diff options
author | Lang Dai <langx.dai@intel.com> | 2016-06-02 20:51:54 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-06-02 20:51:54 +0000 |
commit | f0ce47785460c71e30efd546b9317d0b4bb62deb (patch) | |
tree | 784f265249b3253a2991b8c3ad9ef79cc1e4423a | |
parent | e57872a25271f414c8b231bc735f9092fc6c217f (diff) | |
parent | f75cf2c23758e265bd54ad71ea2d07f52b7e0f1f (diff) | |
download | libmix-f0ce47785460c71e30efd546b9317d0b4bb62deb.tar.gz |
Update mLowDelay value when startVA
am: f75cf2c237
* commit 'f75cf2c23758e265bd54ad71ea2d07f52b7e0f1f':
Update mLowDelay value when startVA
Change-Id: I7387ae5d2251da41aa2ef60eb598f96372b706a6
-rw-r--r-- | videodecoder/VideoDecoderAVC.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/videodecoder/VideoDecoderAVC.cpp b/videodecoder/VideoDecoderAVC.cpp index ca4b123..077710c 100644 --- a/videodecoder/VideoDecoderAVC.cpp +++ b/videodecoder/VideoDecoderAVC.cpp @@ -681,6 +681,15 @@ Decode_Status VideoDecoderAVC::startVA(vbp_data_h264 *data) { //Use high profile for all kinds of H.264 profiles (baseline, main and high) except for constrained baseline VAProfile vaProfile = VAProfileH264High; + if (mConfigBuffer.flag & WANT_ADAPTIVE_PLAYBACK) { + // When Adaptive playback is enabled, turn off low delay mode. + // Otherwise there may be a 240ms stuttering if the output mode is changed from LowDelay to Delay. + enableLowDelayMode(false); + } else { + // for baseline profile or constrained high profile, enable low delay mode automatically + enableLowDelayMode((data->codec_data->profile_idc == 66) || (data->codec_data->profile_idc == 100 && data->codec_data->constraint_set4_flag == 1 && data->codec_data->constraint_set5_flag == 1)); + } + // TODO: determine when to use VAProfileH264ConstrainedBaseline, set only if we are told to do so if ((data->codec_data->profile_idc == 66 || data->codec_data->constraint_set0_flag == 1) && data->codec_data->constraint_set1_flag == 1) { @@ -716,15 +725,6 @@ void VideoDecoderAVC::updateFormatInfo(vbp_data_h264 *data) { ITRACE("updateFormatInfo: current size: %d x %d, new size: %d x %d", mVideoFormatInfo.width, mVideoFormatInfo.height, width, height); - if (mConfigBuffer.flag & WANT_ADAPTIVE_PLAYBACK) { - // When Adaptive playback is enabled, turn off low delay mode. - // Otherwise there may be a 240ms stuttering if the output mode is changed from LowDelay to Delay. - enableLowDelayMode(false); - } else { - // for baseline profile or constrained high profile, enable low delay mode automatically - enableLowDelayMode((data->codec_data->profile_idc == 66) || (data->codec_data->profile_idc == 100 && data->codec_data->constraint_set4_flag == 1 && data->codec_data->constraint_set5_flag == 1)); - } - if ((mConfigBuffer.flag & USE_NATIVE_GRAPHIC_BUFFER) && mStoreMetaData) { pthread_mutex_lock(&mFormatLock); } |