summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSurajit Podder <spodder@codeaurora.org>2017-11-30 22:28:04 +0530
committerSanthosh Behara <santhoshbehara@codeaurora.org>2018-04-05 13:10:07 +0530
commit8fca0a2eadc19135a918b949897efaf208ce5427 (patch)
treea9d36758f048e4db2e546cd4e399d219ea90182a
parent86ba9484e661cc7c3683268dbade800555d761e9 (diff)
downloadandroid_hardware_qcom_sdm845_media-8fca0a2eadc19135a918b949897efaf208ce5427.tar.gz
android_hardware_qcom_sdm845_media-8fca0a2eadc19135a918b949897efaf208ce5427.tar.bz2
android_hardware_qcom_sdm845_media-8fca0a2eadc19135a918b949897efaf208ce5427.zip
mm-video-v4l2: Update correct refresh rate to display
Update logic to update display refresh rate, keeping a default max refresh rate of 60fps. Change-Id: I12224f854e49b89b6b5aedd3766eaa3284a3656d
-rw-r--r--[-rwxr-xr-x]mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
index 3d637ad7..3c84551c 100755..100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
@@ -723,7 +723,7 @@ omx_vdec::omx_vdec(): m_error_propogated(false),
m_profile(0),
client_set_fps(false),
stereo_output_mode(HAL_NO_3D),
- m_last_rendered_TS(0),
+ m_last_rendered_TS(-1),
m_dec_hfr_fps(0),
m_queued_codec_config_count(0),
secure_scaling_to_non_secure_opb(false),
@@ -765,6 +765,10 @@ omx_vdec::omx_vdec(): m_error_propogated(false),
DEBUG_PRINT_HIGH("HFR fps value = %d", m_dec_hfr_fps);
+ if (m_dec_hfr_fps) {
+ m_last_rendered_TS = 0;
+ }
+
property_value[0] = '\0';
property_get("vendor.vidc.dec.log.in", property_value, "0");
m_debug.in_buffer_log |= atoi(property_value);
@@ -8065,7 +8069,7 @@ OMX_ERRORTYPE omx_vdec::fill_buffer_done(OMX_HANDLETYPE hComp,
il_buffer = client_buffers.get_il_buf_hdr(buffer);
OMX_U32 current_framerate = (int)(drv_ctx.frame_rate.fps_numerator / drv_ctx.frame_rate.fps_denominator);
- if (il_buffer && m_dec_hfr_fps > 0) {
+ if (il_buffer && m_last_rendered_TS >= 0) {
OMX_TICKS ts_delta = (OMX_TICKS)llabs(il_buffer->nTimeStamp - m_last_rendered_TS);
// Convert fps into ms value. 1 sec = 1000000 ms.
OMX_U64 target_ts_delta = m_dec_hfr_fps ? 1000000 / m_dec_hfr_fps : ts_delta;
@@ -8117,8 +8121,9 @@ OMX_ERRORTYPE omx_vdec::fill_buffer_done(OMX_HANDLETYPE hComp,
}
}
}
- if (refresh_rate > m_dec_hfr_fps) {
- refresh_rate = m_dec_hfr_fps;
+ OMX_U32 fps_limit = m_dec_hfr_fps ? (OMX_U32)m_dec_hfr_fps : 60;
+ if (refresh_rate > fps_limit) {
+ refresh_rate = fps_limit;
}
DEBUG_PRINT_LOW("frc set refresh_rate %f, frame %d", refresh_rate, proc_frms);
OMX_U32 buf_index = buffer - m_out_mem_ptr;