134 files changed, 31073 insertions, 30287 deletions
diff --git a/tvapi/libtv/tv/AutoBackLight.cpp b/tvapi/libtv/tv/AutoBackLight.cpp index c87635a..98bf02d 100644 --- a/tvapi/libtv/tv/AutoBackLight.cpp +++ b/tvapi/libtv/tv/AutoBackLight.cpp @@ -22,60 +22,60 @@ AutoBackLight::AutoBackLight( CVpp *mVpp, CTvin *pTvin ) { - mAutoBacklightSource = SOURCE_TYPE_TV; - myVpp = mVpp; - myTvin = pTvin; - mCur_source_default_backlight = 100; - mCur_sig_state == SIG_STATE_NOSIG; - mAutoBacklight_OnOff_Flag = false; - mCurrent_backlight = 100; - mCur_dest_backlight = 100; + mAutoBacklightSource = SOURCE_TYPE_TV; + myVpp = mVpp; + myTvin = pTvin; + mCur_source_default_backlight = 100; + mCur_sig_state == SIG_STATE_NOSIG; + mAutoBacklight_OnOff_Flag = false; + mCurrent_backlight = 100; + mCur_dest_backlight = 100; } AutoBackLight::~AutoBackLight() { - mAutoBacklight_OnOff_Flag = false; + mAutoBacklight_OnOff_Flag = false; } bool AutoBackLight::isAutoBacklightOn() { - return mAutoBacklight_OnOff_Flag; + return mAutoBacklight_OnOff_Flag; } void AutoBackLight::updateSigState(int state) { - mCur_sig_state = state; - LOGD("updateSigState = %d", mCur_sig_state); + mCur_sig_state = state; + LOGD("updateSigState = %d", mCur_sig_state); } void AutoBackLight::startAutoBacklight( tv_source_input_type_t source_type ) { - mAutoBacklightSource = source_type; - mCur_source_default_backlight = myVpp->GetBacklight(source_type); - mCurrent_backlight = mCur_source_default_backlight; - myVpp->SetBacklight(mCur_source_default_backlight, source_type, 1); - - /* - mDefault_auto_bl_value = def_source_bl_value; - dynamicGamma = mDefault_auto_bl_value * mCur_source_default_backlight / 100; - // this if should not happen - if (dynamicGamma > mCur_source_default_backlight) { - dynamicGamma = mCur_source_default_backlight; - } - */ - - if (!mAutoBacklight_OnOff_Flag) { - mAutoBacklight_OnOff_Flag = true; - this->run(); - } + mAutoBacklightSource = source_type; + mCur_source_default_backlight = myVpp->GetBacklight(source_type); + mCurrent_backlight = mCur_source_default_backlight; + myVpp->SetBacklight(mCur_source_default_backlight, source_type, 1); + + /* + mDefault_auto_bl_value = def_source_bl_value; + dynamicGamma = mDefault_auto_bl_value * mCur_source_default_backlight / 100; + // this if should not happen + if (dynamicGamma > mCur_source_default_backlight) { + dynamicGamma = mCur_source_default_backlight; + } + */ + + if (!mAutoBacklight_OnOff_Flag) { + mAutoBacklight_OnOff_Flag = true; + this->run(); + } } void AutoBackLight::stopAutoBacklight() { - if (mAutoBacklight_OnOff_Flag) { - mAutoBacklight_OnOff_Flag = false; - myVpp->SetBacklight(mCur_source_default_backlight, mAutoBacklightSource, 1); - } + if (mAutoBacklight_OnOff_Flag) { + mAutoBacklight_OnOff_Flag = false; + myVpp->SetBacklight(mCur_source_default_backlight, mAutoBacklightSource, 1); + } } /** @@ -87,90 +87,90 @@ void AutoBackLight::stopAutoBacklight() */ void AutoBackLight::adjustDstBacklight() { - if (mCur_sig_state == SIG_STATE_STABLE) { - //the node is used to adjust current ts is static or dynamtic frame - char temp_str = 0; - int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR); - if (fd <= 0) { - LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n"); - return; - } - - if (read(fd, &temp_str, 1) > 0) { - - if (temp_str == 'N') { - mCur_dest_backlight = mCur_source_default_backlight; - } else if (temp_str == 'Y') { - int pwm = HistogramGet_AVE(); - if (pwm <= 20) { - mCur_dest_backlight = 14; - } else if (pwm > 20 && pwm <= 160) { - mCur_dest_backlight = 57; - } else { - mCur_dest_backlight = 100; - } - //LOGD("pwm = %d, mCur_dest_backlight = %d", pwm, mCur_dest_backlight); - } - } - close(fd); - } else { - mCurrent_backlight = mCur_dest_backlight = mCur_source_default_backlight; - myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); - } - - /* - if (pwm > 0) - pwm_max = pwm; - else - pwm_min = pwm; - pwm = 255 - pwm; - int average = (pwm_min + pwm_max) / 2; - dynamicGammaOffset = (pwm - average) / 10; - dynamicGammaOffset = dynamicGammaOffset * mDefault_auto_bl_value / 100; - - //the node is used to adjust current ts is static or dynamtic frame - char temp_str = 0; - int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR); - if (fd <= 0) { - LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n"); - return; - } - - if (read(fd, &temp_str, 1) > 0) { - if (temp_str== 'N') { - mCur_dest_backlight = mCur_source_default_backlight; - } - else if (temp_str == 'Y') { - mCur_dest_backlight = dynamicGamma + dynamicGammaOffset; - - if (mCur_dest_backlight > mCur_source_default_backlight) { - mCur_dest_backlight = mCur_source_default_backlight; - } - else if (mCur_dest_backlight < 0) { - mCur_dest_backlight = 0; - } - } - } - close(fd); - */ + if (mCur_sig_state == SIG_STATE_STABLE) { + //the node is used to adjust current ts is static or dynamtic frame + char temp_str = 0; + int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR); + if (fd <= 0) { + LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n"); + return; + } + + if (read(fd, &temp_str, 1) > 0) { + + if (temp_str == 'N') { + mCur_dest_backlight = mCur_source_default_backlight; + } else if (temp_str == 'Y') { + int pwm = HistogramGet_AVE(); + if (pwm <= 20) { + mCur_dest_backlight = 14; + } else if (pwm > 20 && pwm <= 160) { + mCur_dest_backlight = 57; + } else { + mCur_dest_backlight = 100; + } + //LOGD("pwm = %d, mCur_dest_backlight = %d", pwm, mCur_dest_backlight); + } + } + close(fd); + } else { + mCurrent_backlight = mCur_dest_backlight = mCur_source_default_backlight; + myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); + } + + /* + if (pwm > 0) + pwm_max = pwm; + else + pwm_min = pwm; + pwm = 255 - pwm; + int average = (pwm_min + pwm_max) / 2; + dynamicGammaOffset = (pwm - average) / 10; + dynamicGammaOffset = dynamicGammaOffset * mDefault_auto_bl_value / 100; + + //the node is used to adjust current ts is static or dynamtic frame + char temp_str = 0; + int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR); + if (fd <= 0) { + LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n"); + return; + } + + if (read(fd, &temp_str, 1) > 0) { + if (temp_str== 'N') { + mCur_dest_backlight = mCur_source_default_backlight; + } + else if (temp_str == 'Y') { + mCur_dest_backlight = dynamicGamma + dynamicGammaOffset; + + if (mCur_dest_backlight > mCur_source_default_backlight) { + mCur_dest_backlight = mCur_source_default_backlight; + } + else if (mCur_dest_backlight < 0) { + mCur_dest_backlight = 0; + } + } + } + close(fd); + */ } void AutoBackLight::adjustBacklight() { - if (mCurrent_backlight == mCur_dest_backlight) { - return; - } else if ((mCurrent_backlight - mCur_dest_backlight) > -2 && (mCurrent_backlight - mCur_dest_backlight) < 2) { - mCurrent_backlight = mCur_dest_backlight; - myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); - } else if (mCurrent_backlight < mCur_dest_backlight) { - mCurrent_backlight = mCurrent_backlight + 2; - myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); - } else if (mCurrent_backlight > mCur_dest_backlight) { - mCurrent_backlight = mCurrent_backlight - 2; - myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); - } - - //LOGD("mCurrent_backlight = %d", mCurrent_backlight); + if (mCurrent_backlight == mCur_dest_backlight) { + return; + } else if ((mCurrent_backlight - mCur_dest_backlight) > -2 && (mCurrent_backlight - mCur_dest_backlight) < 2) { + mCurrent_backlight = mCur_dest_backlight; + myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); + } else if (mCurrent_backlight < mCur_dest_backlight) { + mCurrent_backlight = mCurrent_backlight + 2; + myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); + } else if (mCurrent_backlight > mCur_dest_backlight) { + mCurrent_backlight = mCurrent_backlight - 2; + myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); + } + + //LOGD("mCurrent_backlight = %d", mCurrent_backlight); } /** @@ -179,34 +179,34 @@ void AutoBackLight::adjustBacklight() */ int AutoBackLight::HistogramGet_AVE() { - int hist_ave = 0; - tvin_parm_t vdinParam; - if (0 == myTvin->VDIN_GetVdinParam(&vdinParam)) { - if (vdinParam.pixel_sum != 0) { - hist_ave = vdinParam.luma_sum / vdinParam.pixel_sum; - LOGD("[hist_ave][%d].", hist_ave); - return hist_ave; - } - LOGE("vdinParam.pixel_sum is zero, so the value is infinity\n"); - return -1; - } - LOGE("VDIN_GetVdinParam get data error!!!\n"); - return -1; + int hist_ave = 0; + tvin_parm_t vdinParam; + if (0 == myTvin->VDIN_GetVdinParam(&vdinParam)) { + if (vdinParam.pixel_sum != 0) { + hist_ave = vdinParam.luma_sum / vdinParam.pixel_sum; + LOGD("[hist_ave][%d].", hist_ave); + return hist_ave; + } + LOGE("vdinParam.pixel_sum is zero, so the value is infinity\n"); + return -1; + } + LOGE("VDIN_GetVdinParam get data error!!!\n"); + return -1; } bool AutoBackLight::threadLoop() { - int sleeptime = 50;//ms - int adjustBacklightCount = 0; - while ( mAutoBacklight_OnOff_Flag ) { - usleep ( sleeptime * 1000 ); - adjustBacklightCount++; - if (adjustBacklightCount == 24) { - adjustBacklightCount = 0; - adjustDstBacklight(); - } - adjustBacklight(); - } - - return false;//return true, run again, return false,not run. + int sleeptime = 50;//ms + int adjustBacklightCount = 0; + while ( mAutoBacklight_OnOff_Flag ) { + usleep ( sleeptime * 1000 ); + adjustBacklightCount++; + if (adjustBacklightCount == 24) { + adjustBacklightCount = 0; + adjustDstBacklight(); + } + adjustBacklight(); + } + + return false;//return true, run again, return false,not run. } |