diff options
11 files changed, 69 insertions, 19 deletions
diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po index 1f077674dd..c20342083a 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po @@ -8919,7 +8919,7 @@ msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16303" -msgid "Bicubic" +msgid "Bicubic (B-Spline)" msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp @@ -8972,7 +8972,10 @@ msgctxt "#16313" msgid "VDPAU - Sharpness" msgstr "" -#empty string with id 16314 +#: xbmc/video/dialogs/GUIDialogVideoSettings.cpp +msgctxt "#16314" +msgid "Bicubic (Mitchell)" +msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16315" @@ -9005,7 +9008,10 @@ msgctxt "#16320" msgid "DXVA" msgstr "" -#empty string with id 16321 +#: xbmc/video/dialogs/GUIDialogVideoSettings.cpp +msgctxt "#16321" +msgid "Bicubic (Catmull-Rom)" +msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16322" @@ -9027,7 +9033,10 @@ msgctxt "#16325" msgid "VDPAU - Bob" msgstr "" -#empty string with id 16326 +#: xbmc/video/dialogs/GUIDialogVideoSettings.cpp +msgctxt "#16326" +msgid "Bicubic (0,0.75)" +msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16327" @@ -9044,7 +9053,12 @@ msgctxt "#16329" msgid "VAAPI - Motion compensated" msgstr "" -#empty strings from id 16330 to 16333 +#: xbmc/video/dialogs/GUIDialogVideoSettings.cpp +msgctxt "#16330" +msgid "Bicubic (0,1.)" +msgstr "" + +#empty strings from id 16331 to 16333 #. Description of OSD video settings for deinterlace method with label #16334 #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVDPAU.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVDPAU.cpp index eb74c2511a..437eac480b 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVDPAU.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVDPAU.cpp @@ -152,7 +152,11 @@ bool CRendererVDPAU::Supports(ESCALINGMETHOD method) method == VS_SCALINGMETHOD_AUTO) return true; - if(method == VS_SCALINGMETHOD_CUBIC + if(method == VS_SCALINGMETHOD_CUBIC_B_SPLINE + || method == VS_SCALINGMETHOD_CUBIC_MITCHELL + || method == VS_SCALINGMETHOD_CUBIC_CATMULL + || method == VS_SCALINGMETHOD_CUBIC_0_075 + || method == VS_SCALINGMETHOD_CUBIC_0_1 || method == VS_SCALINGMETHOD_LANCZOS2 || method == VS_SCALINGMETHOD_SPLINE36_FAST || method == VS_SCALINGMETHOD_LANCZOS3_FAST diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/LinuxRendererGL.cpp index 8a8de74551..a9a305b46c 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/LinuxRendererGL.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/LinuxRendererGL.cpp @@ -804,7 +804,11 @@ void CLinuxRendererGL::UpdateVideoFilter() case VS_SCALINGMETHOD_LANCZOS2: case VS_SCALINGMETHOD_SPLINE36: case VS_SCALINGMETHOD_LANCZOS3: - case VS_SCALINGMETHOD_CUBIC: + case VS_SCALINGMETHOD_CUBIC_B_SPLINE: + case VS_SCALINGMETHOD_CUBIC_MITCHELL: + case VS_SCALINGMETHOD_CUBIC_CATMULL: + case VS_SCALINGMETHOD_CUBIC_0_075: + case VS_SCALINGMETHOD_CUBIC_0_1: if (m_renderMethod & RENDER_GLSL) { if (!m_fbo.fbo.Initialize()) @@ -2578,7 +2582,11 @@ bool CLinuxRendererGL::Supports(ESCALINGMETHOD method) method == VS_SCALINGMETHOD_AUTO) return true; - if (method == VS_SCALINGMETHOD_CUBIC || + if (method == VS_SCALINGMETHOD_CUBIC_B_SPLINE || + method == VS_SCALINGMETHOD_CUBIC_MITCHELL || + method == VS_SCALINGMETHOD_CUBIC_CATMULL || + method == VS_SCALINGMETHOD_CUBIC_0_075 || + method == VS_SCALINGMETHOD_CUBIC_0_1 || method == VS_SCALINGMETHOD_LANCZOS2 || method == VS_SCALINGMETHOD_SPLINE36_FAST || method == VS_SCALINGMETHOD_LANCZOS3_FAST || diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/LinuxRendererGLES.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/LinuxRendererGLES.cpp index deb7acd198..590beb0ea0 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/LinuxRendererGLES.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/LinuxRendererGLES.cpp @@ -505,7 +505,7 @@ void CLinuxRendererGLES::UpdateVideoFilter() case VS_SCALINGMETHOD_LANCZOS3_FAST: case VS_SCALINGMETHOD_SPLINE36: case VS_SCALINGMETHOD_LANCZOS3: - case VS_SCALINGMETHOD_CUBIC: + case VS_SCALINGMETHOD_CUBIC_MITCHELL: { if (m_renderMethod & RENDER_GLSL) { @@ -534,6 +534,10 @@ void CLinuxRendererGLES::UpdateVideoFilter() m_renderQuality = RQ_MULTIPASS; return; } + case VS_SCALINGMETHOD_CUBIC_B_SPLINE: + case VS_SCALINGMETHOD_CUBIC_CATMULL: + case VS_SCALINGMETHOD_CUBIC_0_075: + case VS_SCALINGMETHOD_CUBIC_0_1: case VS_SCALINGMETHOD_BICUBIC_SOFTWARE: case VS_SCALINGMETHOD_LANCZOS_SOFTWARE: case VS_SCALINGMETHOD_SINC_SOFTWARE: @@ -1640,7 +1644,7 @@ bool CLinuxRendererGLES::Supports(ESCALINGMETHOD method) return true; } - if(method == VS_SCALINGMETHOD_CUBIC || + if(method == VS_SCALINGMETHOD_CUBIC_MITCHELL || method == VS_SCALINGMETHOD_LANCZOS2 || method == VS_SCALINGMETHOD_SPLINE36_FAST || method == VS_SCALINGMETHOD_LANCZOS3_FAST || diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/ConvolutionKernels.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/ConvolutionKernels.cpp index a0dd3a4b8a..5cc3153976 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/ConvolutionKernels.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/ConvolutionKernels.cpp @@ -34,8 +34,16 @@ CConvolutionKernel::CConvolutionKernel(ESCALINGMETHOD method, int size) Spline36(); else if (method == VS_SCALINGMETHOD_LANCZOS3) Lanczos3(); - else if (method == VS_SCALINGMETHOD_CUBIC) + else if (method == VS_SCALINGMETHOD_CUBIC_B_SPLINE) + Bicubic(1.0, 0.0); + else if (method == VS_SCALINGMETHOD_CUBIC_MITCHELL) Bicubic(1.0 / 3.0, 1.0 / 3.0); + else if (method == VS_SCALINGMETHOD_CUBIC_CATMULL) + Bicubic(0.0, 0.5); + else if (method == VS_SCALINGMETHOD_CUBIC_0_075) + Bicubic(0.0, 0.75); + else if (method == VS_SCALINGMETHOD_CUBIC_0_1) + Bicubic(0.0, 1.0); ToIntFract(); ToUint8(); diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/VideoFilterShaderGL.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/VideoFilterShaderGL.cpp index 66fe82e2e6..e51b716652 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/VideoFilterShaderGL.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/VideoFilterShaderGL.cpp @@ -61,7 +61,11 @@ ConvolutionFilterShader::ConvolutionFilterShader(ESCALINGMETHOD method, bool str m_floattex = CServiceBroker::GetRenderSystem()->IsExtSupported("GL_ARB_texture_float"); - if (m_method == VS_SCALINGMETHOD_CUBIC || + if (m_method == VS_SCALINGMETHOD_CUBIC_B_SPLINE || + m_method == VS_SCALINGMETHOD_CUBIC_MITCHELL || + m_method == VS_SCALINGMETHOD_CUBIC_CATMULL || + m_method == VS_SCALINGMETHOD_CUBIC_0_075 || + m_method == VS_SCALINGMETHOD_CUBIC_0_1 || m_method == VS_SCALINGMETHOD_LANCZOS2 || m_method == VS_SCALINGMETHOD_SPLINE36_FAST || m_method == VS_SCALINGMETHOD_LANCZOS3_FAST) diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/VideoFilterShaderGLES.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/VideoFilterShaderGLES.cpp index 8210b8ee7b..b2cb942f51 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/VideoFilterShaderGLES.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/VideoFilterShaderGLES.cpp @@ -84,7 +84,7 @@ ConvolutionFilterShader::ConvolutionFilterShader(ESCALINGMETHOD method) m_floattex = false; } - if (m_method == VS_SCALINGMETHOD_CUBIC || + if (m_method == VS_SCALINGMETHOD_CUBIC_MITCHELL || m_method == VS_SCALINGMETHOD_LANCZOS2 || m_method == VS_SCALINGMETHOD_SPLINE36_FAST || m_method == VS_SCALINGMETHOD_LANCZOS3_FAST) diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/WinVideoFilter.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/WinVideoFilter.cpp index 25b9fe8da6..fa3651c66e 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/WinVideoFilter.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders/WinVideoFilter.cpp @@ -704,7 +704,7 @@ bool CConvolutionShader1Pass::Create(ESCALINGMETHOD method, const std::shared_pt std::string effectString; switch(method) { - case VS_SCALINGMETHOD_CUBIC: + case VS_SCALINGMETHOD_CUBIC_MITCHELL: case VS_SCALINGMETHOD_LANCZOS2: case VS_SCALINGMETHOD_SPLINE36_FAST: case VS_SCALINGMETHOD_LANCZOS3_FAST: @@ -840,7 +840,7 @@ bool CConvolutionShaderSeparable::Create(ESCALINGMETHOD method, const std::share std::string effectString; switch(method) { - case VS_SCALINGMETHOD_CUBIC: + case VS_SCALINGMETHOD_CUBIC_MITCHELL: case VS_SCALINGMETHOD_LANCZOS2: case VS_SCALINGMETHOD_SPLINE36_FAST: case VS_SCALINGMETHOD_LANCZOS3_FAST: diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/windows/RendererHQ.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/windows/RendererHQ.cpp index 5b2c36ca03..2cb5d2fac5 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/windows/RendererHQ.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/windows/RendererHQ.cpp @@ -25,7 +25,7 @@ bool CRendererHQ::Supports(ESCALINGMETHOD method) if (DX::DeviceResources::Get()->GetDeviceFeatureLevel() >= D3D_FEATURE_LEVEL_9_3 && !m_renderOrientation) { - if (method == VS_SCALINGMETHOD_CUBIC || + if (method == VS_SCALINGMETHOD_CUBIC_MITCHELL || method == VS_SCALINGMETHOD_LANCZOS2 || method == VS_SCALINGMETHOD_SPLINE36_FAST || method == VS_SCALINGMETHOD_LANCZOS3_FAST || @@ -53,7 +53,7 @@ void CRendererHQ::SelectPSVideoFilter() { switch (m_scalingMethod) { - case VS_SCALINGMETHOD_CUBIC: + case VS_SCALINGMETHOD_CUBIC_MITCHELL: case VS_SCALINGMETHOD_LANCZOS2: case VS_SCALINGMETHOD_SPLINE36_FAST: case VS_SCALINGMETHOD_LANCZOS3_FAST: diff --git a/xbmc/cores/VideoSettings.h b/xbmc/cores/VideoSettings.h index bd9ac62f8e..687c84a530 100644 --- a/xbmc/cores/VideoSettings.h +++ b/xbmc/cores/VideoSettings.h @@ -38,7 +38,11 @@ enum ESCALINGMETHOD { VS_SCALINGMETHOD_NEAREST=0, VS_SCALINGMETHOD_LINEAR, - VS_SCALINGMETHOD_CUBIC, + VS_SCALINGMETHOD_CUBIC_B_SPLINE, + VS_SCALINGMETHOD_CUBIC_MITCHELL, + VS_SCALINGMETHOD_CUBIC_CATMULL, + VS_SCALINGMETHOD_CUBIC_0_075, + VS_SCALINGMETHOD_CUBIC_0_1, VS_SCALINGMETHOD_LANCZOS2, VS_SCALINGMETHOD_LANCZOS3_FAST, VS_SCALINGMETHOD_LANCZOS3, diff --git a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp index 28d5b6b0b1..d1423a5d0f 100644 --- a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp @@ -344,7 +344,11 @@ void CGUIDialogVideoSettings::InitializeSettings() entries.clear(); entries.push_back(TranslatableIntegerSettingOption(16301, VS_SCALINGMETHOD_NEAREST)); entries.push_back(TranslatableIntegerSettingOption(16302, VS_SCALINGMETHOD_LINEAR)); - entries.push_back(TranslatableIntegerSettingOption(16303, VS_SCALINGMETHOD_CUBIC)); + entries.push_back(TranslatableIntegerSettingOption(16303, VS_SCALINGMETHOD_CUBIC_B_SPLINE)); + entries.push_back(TranslatableIntegerSettingOption(16314, VS_SCALINGMETHOD_CUBIC_MITCHELL)); + entries.push_back(TranslatableIntegerSettingOption(16321, VS_SCALINGMETHOD_CUBIC_CATMULL)); + entries.push_back(TranslatableIntegerSettingOption(16326, VS_SCALINGMETHOD_CUBIC_0_075)); + entries.push_back(TranslatableIntegerSettingOption(16330, VS_SCALINGMETHOD_CUBIC_0_1)); entries.push_back(TranslatableIntegerSettingOption(16304, VS_SCALINGMETHOD_LANCZOS2)); entries.push_back(TranslatableIntegerSettingOption(16323, VS_SCALINGMETHOD_SPLINE36_FAST)); entries.push_back(TranslatableIntegerSettingOption(16315, VS_SCALINGMETHOD_LANCZOS3_FAST)); |