From f37fceac7afb458aebf9e957923ff7d0bdc41119 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Jul 2016 20:39:18 +0100 Subject: [PATCH] mmalrender: Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- .../VideoRenderers/HwDecRender/MMALRenderer.cpp | 13 ++++++++++++- .../VideoRenderers/HwDecRender/MMALRenderer.h | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po index d2d8704b79e00..26a64c053f43b 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po @@ -8943,7 +8943,7 @@ msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16313" -msgid "VDPAU - Sharpness" +msgid "Sharpness" msgstr "" #empty string with id 16314 diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp index b9413d65563d4..aaa72a328a667 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp @@ -580,6 +580,7 @@ CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer"), m_processThread(this, m_frameInterval = 0.0; m_frameIntervalDiff = 1e5; m_vsync_count = ~0U; + m_sharpness = -2.0f; m_vout_width = 0; m_vout_height = 0; m_vout_aligned_width = 0; @@ -1019,6 +1020,15 @@ void CMMALRenderer::RenderUpdate(int index, int index2, bool clear, unsigned int goto exit; } + // if sharpness setting has changed, we should update it + if (m_sharpness != m_videoSettings.m_Sharpness) + { + m_sharpness = m_videoSettings.m_Sharpness; + char command[80], response[80]; + sprintf(command, "scaling_sharpness %d", ((int)(50.0f * (m_sharpness + 1.0f) + 0.5f))); + vc_gencmd(response, sizeof response, command); + } + if (omvb && omvb->m_state == MMALStateBypass) { // dummy buffer from omxplayer @@ -1156,7 +1166,8 @@ bool CMMALRenderer::Supports(ERENDERFEATURE feature) feature == RENDERFEATURE_ZOOM || feature == RENDERFEATURE_ROTATION || feature == RENDERFEATURE_VERTICAL_SHIFT || - feature == RENDERFEATURE_PIXEL_RATIO) + feature == RENDERFEATURE_PIXEL_RATIO || + feature == RENDERFEATURE_SHARPNESS) return true; return false; diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h index 4b77f90589f64..8eff794bb5fdf 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h @@ -179,6 +179,7 @@ class CMMALRenderer : public CBaseRenderer, public CThread, public IRunnable RENDER_STEREO_MODE m_display_stereo_mode; bool m_StereoInvert; bool m_isPi1; + float m_sharpness; CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout;