From b8a7ed8a79ed6d9c911bc2be082f86bf2d92c48d Mon Sep 17 00:00:00 2001 From: reimar Date: Sun, 4 Apr 2010 16:56:30 +0000 Subject: Factor out the YUV->RGB conversion auto-selection and also enable auto-selection of ATI fragment shaders since they should do accurate conversions now. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31006 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/gl_common.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'libvo/gl_common.c') diff --git a/libvo/gl_common.c b/libvo/gl_common.c index 07593989ae..e8b66e1ccc 100644 --- a/libvo/gl_common.c +++ b/libvo/gl_common.c @@ -1379,6 +1379,20 @@ static void glSetupYUVFragprog(gl_conversion_params_t *params) { free(yuv_prog); } +/** + * \brief detect the best YUV->RGB conversion method available + */ +int glAutodetectYUVConversion(void) { + const char *extensions = mpglGetString(GL_EXTENSIONS); + if (strstr(extensions, "GL_ARB_fragment_program")) + return YUV_CONVERSION_FRAGMENT; + if (strstr(extensions, "GL_ATI_text_fragment_shader")) + return YUV_CONVERSION_TEXT_FRAGMENT; + if (strstr(extensions, "GL_ATI_fragment_shader")) + return YUV_CONVERSION_COMBINERS_ATI; + return YUV_CONVERSION_NONE; +} + /** * \brief setup YUV->RGB conversion * \param parms struct containing parameters like conversion and scaler type, -- cgit v1.2.3