diff options
author | Surajit Podder <spodder@codeaurora.org> | 2017-11-30 22:28:04 +0530 |
---|---|---|
committer | Santhosh Behara <santhoshbehara@codeaurora.org> | 2018-04-05 13:10:07 +0530 |
commit | 8fca0a2eadc19135a918b949897efaf208ce5427 (patch) | |
tree | a9d36758f048e4db2e546cd4e399d219ea90182a | |
parent | 86ba9484e661cc7c3683268dbade800555d761e9 (diff) | |
download | android_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.cpp | 13 |
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; |