diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-04-04 16:56:30 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-04-04 16:56:30 +0000 |
commit | b8a7ed8a79ed6d9c911bc2be082f86bf2d92c48d (patch) | |
tree | 19dd7fb39e56dc13f5d81f01c726160fdc7d382d /libvo/gl_common.c | |
parent | ad26195a80a3325969d479b5e6bea308e64cf844 (diff) | |
download | mpv-b8a7ed8a79ed6d9c911bc2be082f86bf2d92c48d.tar.bz2 mpv-b8a7ed8a79ed6d9c911bc2be082f86bf2d92c48d.tar.xz |
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
Diffstat (limited to 'libvo/gl_common.c')
-rw-r--r-- | libvo/gl_common.c | 14 |
1 files changed, 14 insertions, 0 deletions
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 @@ -1380,6 +1380,20 @@ static void glSetupYUVFragprog(gl_conversion_params_t *params) { } /** + * \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, * brightness, ... |