summaryrefslogtreecommitdiffstats
path: root/libvo/vo_gl2.c
Commit message (Collapse)AuthorAgeFilesLines
* vo_gl2, vo_matrixview: remove these VOswm42011-10-241-935/+0
| | | | | | | | | | | | | | | | | | | | | Delete the vo_gl2 and vo_matrixview implementations. vo_gl2 was barely useful anymore. It was a hack based on an old vo_gl.c version, and all it did differently was rendering the video in tiles instead of using a single texture. That made it work with some crappy OpenGL implementations. These days all GPUs support textures of at least 2048x2048 pixels, which is enough for HD playback. On the other hand, gl2 suffered from various bugs and deficiencies, all of which are fixed in gl. Its existence also confused users; many thought that gl2 is the next version of gl and attempted to use it, even though it's much worse than gl and they should have used that instead. Should it turn out that tiling is actually useful, it should be implemented in vo_gl, instead of keeping vo_gl2 alive. vo_matrixview was a toy that couldn't even properly display a video. All it did was display a screensaver-like animation that showed "a Matrix-like running-text effect". (mplayer is not a screensaver.)
* video, options: implement better YUV->RGB conversion controlwm42011-10-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rewrite control of the colorspace and input/output level parameters used in YUV-RGB conversions, replacing VO-specific suboptions with new common options and adding configuration support to more cases. Add new option --colormatrix which selects the colorspace the original video is assumed to have in YUV->RGB conversions. The default behavior changes from assuming BT.601 to colorspace autoselection between BT.601 and BT.709 using a simple heuristic based on video size. Add new options --colormatrix-input-range and --colormatrix-output-range which select input YUV and output RGB range. Disable the previously existing VO-specific colorspace and level conversion suboptions in vo_gl and vo_vdpau. Remove the "yuv_colorspace" property and replace it with one named "colormatrix" and semantics matching the new option. Add new properties matching the options for level conversion. Colorspace selection is currently supported by vo_gl, vo_vdpau, vo_xv and vf_scale, and all can change it at runtime (previously only vo_vdpau and vo_xv could). vo_vdpau now uses the same conversion matrix generation as vo_gl instead of libvdpau functionality; the main functional difference is that the "contrast" equalizer control behaves somewhat differently (it scales the Y component around 1/2 instead of around 0, so that contrast 0 makes the image gray rather than black). vo_xv does not support level conversion. vf_scale supports range setting for input, but always outputs full-range RGB. The value of the slave properties is the policy setting used for conversions. This means they can be set to any value regardless of whether the current VO supports that value or whether there currently even is any video. Possibly separate properties could be added to query the conversion actually used at the moment, if any. Because the colorspace and level settings are now set with a single VF/VO control call, the return value of that is no longer used to signal whether all the settings are actually supported. Instead code should set all the details it can support, and ignore the rest. The core will use GET_YUV_COLORSPACE to check which colorspace details have been set and which not. In other words, the return value for SET_YUV_COLORSPACE only signals whether any kind of YUV colorspace conversion handling exists at all, and VOs have to take care to return the actual state with GET_YUV_COLORSPACE instead. To be changed in later commits: add missing option documentation.
* vo_gl: Support 9- and 10-bit YUV input for OpenGL VOsreimar2011-07-061-7/+12
| | | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33502 b3059339-0415-0410-9bf9-f77b7e298cf2 Fix clear/border color of chroma texture for 9- and 10-bit formats. Avoids pink borders for those formats. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33504 b3059339-0415-0410-9bf9-f77b7e298cf2
* vo_gl: don't accept 9/10-bit formats as inputreimar2011-06-291-5/+7
| | | | | | | | | Make mp_get_chroma_shift() simpler/more generic and add an argument to get the per-component bit depth. Use this to check more properly for supported formats in gl and gl2 vos (only 8 and 16 bit are supported, 9 and 10 are not). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33452 b3059339-0415-0410-9bf9-f77b7e298cf2
* sub/OSD: move some related files to sub/Uoti Urpala2011-01-261-1/+1
|
* cleanup: remove NULL checks before free() all over the codecboesch2010-11-141-6/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32624 b3059339-0415-0410-9bf9-f77b7e298cf2
* spelling fixessiretart2010-11-021-1/+1
| | | | | | | | | | Found by the Debian QA tool 'lintian' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31913 b3059339-0415-0410-9bf9-f77b7e298cf2 reintroduce typo in genres.h that was fixed fixed r31913 to match the id3v2 spec git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31920 b3059339-0415-0410-9bf9-f77b7e298cf2
* vo_gl2: Use identical code to -vo gl for -wid modereimar2010-11-021-3/+4
| | | | | | Fixes the same bugs (no video, video at wrong location...). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31750 b3059339-0415-0410-9bf9-f77b7e298cf2
* Merge svn changes up to r31097Uoti Urpala2010-04-261-6/+9
|\
| * Slightly more correct ifdefs for vo_gl2.reimar2010-04-241-6/+9
| | | | | | | | | | | | | | Compiling with both win32 and x11 backend still will not work though. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31069 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r31020Uoti Urpala2010-04-261-21/+18
|\|
| * Check texture dimensions instead of internal format in max texturereimar2010-04-041-3/+3
| | | | | | | | | | | | | | | | | | size check to work around OS X ATI driver bugs: - does not keep format but use an equivalent one (1 becomes 0x8040). - does not set to 0 on failure but to 0x8018 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31013 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Cosmetics/reindent.reimar2010-04-041-14/+13
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31012 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Avoid duplicating a condition.reimar2010-04-041-4/+4
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31011 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Print width before height,reimar2010-04-041-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31010 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Fix width/height mixup in error message.reimar2010-04-041-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31009 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Factor out the YUV->RGB conversion auto-selection and alsoreimar2010-04-041-3/+1
| | | | | | | | | | | | | | | | 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
* | Merge svn changes up to r31004Uoti Urpala2010-04-261-19/+19
|\|
| * Add mpgl prefix to all OpenGL-related function pointers.reimar2010-04-031-19/+19
| | | | | | | | | | | | | | | | | | This is necessary because at least the GetString symbol causes clashes on PPC OSX 10.4, causing -vo gl to always crash. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30987 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30798Uoti Urpala2010-03-101-2/+19
|\|
| * Port yuv=... auto-detection from gl to gl2.reimar2010-02-261-2/+19
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30753 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30375Uoti Urpala2010-01-251-1/+1
|\|
| * Add support for adjustable TV <-> PC level conversion.reimar2010-01-161-1/+1
| | | | | | | | | | | | | | | | This could also be done by modifying contrast and brightness, but this seems a bit more flexible and easier to use. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30335 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30165Uoti Urpala2010-01-081-27/+38
|\|
| * Fix function declarations to avoid casting function pointers.reimar2010-01-011-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30164 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add support for 16-bit per component YUV formats.reimar2009-12-311-1/+2
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30152 b3059339-0415-0410-9bf9-f77b7e298cf2
| * First steps to supporting different YUV->RGB conversion definitions.reimar2009-12-311-1/+1
| | | | | | | | | | | | | | The numbers are possibly still wrong though. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30151 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Put the colourspace-related variables into a separate struct to easereimar2009-12-311-1/+1
| | | | | | | | | | | | | | extracting the code and sharing with other vos. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30149 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Support all planar YUV formats in OpenGL vos.reimar2009-12-301-25/+35
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30139 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30065Uoti Urpala2009-12-291-8/+8
|\|
| * Rename GL_* defines to CONFIG_GL_*reimar2009-12-191-9/+9
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30065 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Make the check for X11 and WIN32 backends for OpenGL separate.reimar2009-12-191-1/+1
| | | | | | | | | | | | This fixes compilation on Windows with X11 but no GLX available. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30063 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30055Uoti Urpala2009-12-181-26/+29
|\|
| * Very preliminary code to allow selecting the OpenGL backend at runtime.reimar2009-12-081-26/+29
| | | | | | | | | | | | | | | | | | Works in the currently supported cases for only Win32 and only X11, the mixed case is not working yet though. But applied anyway since the code is slightly less messy than the current one. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29980 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r29962Uoti Urpala2009-11-231-2/+2
|\|
| * Add support for Windows OpenGL rendering onto a device instead of into a window.reimar2009-11-211-2/+2
| | | | | | | | | | | | | | | | | | Has little use except for experimenting - on Windows 9x it could be used to render on monitors that were not managed by Windows, but that feature was removed in newer Windows versions. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29946 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r29752Uoti Urpala2009-10-061-2/+2
|\| | | | | | | | | | | | | | | | | As part of merging subtitle-in-terminal changes make update_subtitles() only clear existing subtitles if called with the reset argument, and not try to set new ones. Later calls should set the needed new subtitles, and this change avoids some problems with trying to set subtitles when mp_property_sub() in command.c gets called from initialization code before full initialization.
| * Use vo_w32_window directly instead of via the vo_window macro in ↵reimar2009-09-181-2/+2
| | | | | | | | | | | | Windows-only code. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29689 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r29644Uoti Urpala2009-09-041-19/+17
|\|
| * Check setGlWindow return value to fail properly instead of crashing if e.g.reimar2009-09-011-1/+2
| | | | | | | | | | | | | | no OpenGL support is available. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29612 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Make gl2 code capable of windowed aspect and panscan (no user option to ↵reimar2009-08-271-4/+4
| | | | | | | | | | | | enable it yet though). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29567 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Fix video placement with -vo gl2 -fs -wid.reimar2009-08-271-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29565 b3059339-0415-0410-9bf9-f77b7e298cf2
| * -vo gl2 resize does not need to modify its arguments, so pass int instead of ↵reimar2009-08-271-12/+12
| | | | | | | | | | | | | | | | | | int *. In particular, this avoids modifying vo_dwidth/vo_dheight which should only be modified by the "windowing layer" (w32_common, x11_common). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29564 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Remove useless code that has no effect.reimar2009-08-271-3/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29562 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Remove the internal GUIAnton Khirnov2009-07-071-21/+0
| | | | | | | | | | | | | | | | | | The GUI is badly designed and too closely coupled to the internal details of other code. The GUI code is in bad shape and unmaintained for years. There is no indication that anyone would maintain it in the future either. Even if someone did volunteer to implement a better integrated GUI having the current code in the tree probably wouldn't help much. So get rid of it.
* | VO: Don't reset pause status in VO config() functionsUoti Urpala2009-04-021-2/+0
| | | | | | | | | | | | | | | | | | Many VOs kept track of pause status, but reset the value when their config() function was called. However it can be called while playback stays in pause mode. Modify the VOs to not change anything in config(). Also send the VO either VOCTRL_PAUSE or VOCTRL_RESUME when the playback of a new file is starting to make sure they have the right status.
* | Merge svn changes up to r28951Uoti Urpala2009-03-141-1/+1
|\|
| * Make data related to suboption parsing const in libvoreimar2009-03-071-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28863 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28641Uoti Urpala2009-02-181-1/+1
|\| | | | | | | | | | | | | | | Convert vo_x11_border (used in vo_gl/gl2 though the vo_gl_border macro) to use a wrapper macro in old-style VOs which do not provide a VO object argument. Before this function had an explicit global_vo argument in vo_gl/gl2. New vo_vdpau uses it too so use the same mechanism as most other functions.
* | Merge svn changes up to r28537Uoti Urpala2009-02-121-1/+17
|\|
| * Add standard license headers, unify header formatting.diego2009-02-081-1/+17
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28481 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r27979Uoti Urpala2008-11-221-8/+0
|\|
| * Factor common code like -wid handling, vo_gc creation etc. out intoreimar2008-11-191-8/+0
| | | | | | | | | | | | | | x11_common.c git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27961 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r27949Uoti Urpala2008-11-171-3/+0
|\| | | | | | | | | | | | | | | | | Conflicts: common.mak libvo/vo_xv.c libvo/x11_common.c libvo/x11_common.h stream/cache2.c
| * Remove explicit setting of vo_ontop since that is already done by ↵reimar2008-11-151-3/+0
| | | | | | | | | | | | vo_x11_create_vo_window git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27937 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to 27824Uoti Urpala2008-10-251-0/+2
|\| | | | | | | | | | | | | | | | | | | Conflicts: cfg-common-opts.h libmpcodecs/dec_video.c libmpcodecs/vd.c libvo/x11_common.h mplayer.c stream/cache2.c
| * Surround conditionally used function with corresponding #ifdef, fixes:diego2008-10-131-0/+2
| | | | | | | | | | | | | | libvo/vo_gl2.c:681: warning: 'gl_handlekey' defined but not used git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27754 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r27682Uoti Urpala2008-10-021-3/+3
|\| | | | | |