1
mirror of https://github.com/mpv-player/mpv synced 2024-11-03 03:19:24 +01:00
Commit Graph

362 Commits

Author SHA1 Message Date
wm4
75eab4f72a video, options: implement better YUV->RGB conversion control
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.
2011-10-16 21:11:11 +03:00
wm4
20256a8a64 vo_gl: fix image corruption with PBOs when playing 10 bit video
vo_gl.c hardcoded the assumption that YUV formats always use 1 byte per
component. This corrupted the output when playing 10 bit h264 video.

Only the PBO code path was affected. PBOs are normally unused, unless ATI
is detected, or the force-pbo option is used.
2011-10-06 17:03:23 +03:00
reimar
950003b0c3 vo_gl: fix YUY2/YVYU colorspace mixup
Second GL_YCBCR_MESA format is YVYU, not YUY2.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33694 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-07-06 13:01:07 +03:00
reimar
48fdd3d926 vo_gl: Support 9- and 10-bit YUV input for OpenGL VOs
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
2011-07-06 07:31:54 +03:00
reimar
57f48fc1bf vo_gl: don't accept 9/10-bit formats as input
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
2011-06-29 10:49:41 +03:00
reimar
c246c09b03 vo_gl: fix "gamma" equalizer setting
The "gamma" setting only changed red gamma. Fix it to change all of
red, green and blue gamma.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32895 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-04-12 18:41:26 +03:00
reimar
7c8cb100af vo_gl: mark llvmpipe as a software renderer
llvmpipe, while only slow instead of insanely slow, is a software
renderer. Recognize it as such and disable -vo gl_nosw on it.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32719 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-01-29 02:48:58 +02:00
Uoti Urpala
c9026cb321 sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
cboesch
fe3c4810e1 cleanup: remove NULL checks before free() all over the code
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32624 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-14 13:11:20 +02:00
reimar
111757c3f4 vo_gl: create stereo-capable window when using Quadbuffer 3D
Select a stereo pixel format for window when Quadbuffer OpenGL was
selected as 3D mode.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32620 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-14 12:32:00 +02:00
reimar
91565a3d77 vo_gl.c: Use early return instead of large if block
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31887 b3059339-0415-0410-9bf9-f77b7e298cf2

Reindent.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31888 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:15:01 +02:00
reimar
0edb9e62d0 vo_gl: Make OSD rendering code more readable
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31886 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:15:01 +02:00
reimar
ccb01cc877 vo_gl: Make it possible to select GL_NEAREST scaling
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31743 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:44 +02:00
reimar
93336619b2 vo_gl: add helper macros to build the yuv conversion type number
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31742 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:44 +02:00
reimar
4f15b55c9b vo_gl: Cosmetics: create luma texture first
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31740 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:44 +02:00
Uoti Urpala
8115fedc97 vo_gl: remove unused label 2010-11-02 04:14:43 +02:00
cehoyos
b3c3a40c6e vo_gl: remove "broken" comment from quadbuffer stereo
Independent tests indicate that GLX_STEREO is working fine on
supported hardware.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31647 b3059339-0415-0410-9bf9-f77b7e298cf2

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31648 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:20 +02:00
reimar
4e151f79e9 vo_gl: Some small whitespace and {} cosmetics
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31639 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:20 +02:00
reimar
14d00a65e9 vo_gl: Try to get a quadbuffered visual for corresponding 3D mode
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31638 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:20 +02:00
reimar
42a8c42eb2 vo_gl: cleanup
Move declaration to where it is actually used.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31636 b3059339-0415-0410-9bf9-f77b7e298cf2

Use a more sensible variable name.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31637 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:20 +02:00
reimar
ccb6675fbd vo_gl: Add initial stereo support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31633 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:20 +02:00
reimar
30d7c19b69 vo_gl: Fix -geometry with -wid behaviour (y position was flipped)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31600 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:13:00 +02:00
reimar
c107c484b6 vo_gl: More sensible behaviour for -geometry with -wid
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31428 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:10:24 +02:00
reimar
be6a58d455 vo_gl, csputils: dual-license under LGPL v2.1
Dual-license gl_common and vo_gl under the LGPL v2.1 or later as
an alternative to the GPL license.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31375 b3059339-0415-0410-9bf9-f77b7e298cf2

Allow LGPL for csputils as well, they were previously part of gl_common
and are still an important part of it.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31376 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:07:42 +02:00
reimar
1a1e6e5a69 vo_gl: Remove nonsense commented-out function header
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31340 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-10-27 20:31:20 +03:00
Uoti Urpala
5aa7c02984 Merge svn changes up to r31284 2010-06-02 17:59:10 +03:00
reimar
49c904b517 Treat a NULL renderer string as indication for software renderer.
Usually it means OpenGL will not work at all.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31284 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-30 13:51:24 +00:00
Uoti Urpala
2f1a518d45 Merge svn changes up to r31211
The merged cache2.c changes are known to have problems. Will merge
further fixes to them before merging this to the master branch.
2010-05-30 16:14:55 +03:00
Uoti Urpala
6f199ab3d9 Merge svn changes up to r31169 2010-05-30 15:27:58 +03:00
reimar
3009c1eff4 Fix OpenGL autodetection to not leave values at -1.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31207 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-24 17:36:23 +00:00
reimar
a7eab84efa Default to rectangle=1 on Mesa DRI R200 drivers, much faster and less buggy.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31151 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-09 21:36:10 +00:00
reimar
89957c3f6a Minor code cleanup.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31150 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-09 21:29:21 +00:00
reimar
c9123e5a2d yuv=5 supports brightness and contrast adjustment.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31149 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-09 21:25:38 +00:00
Uoti Urpala
eee666c3b5 Merge svn changes up to r31133 2010-05-07 21:19:53 +03:00
reimar
fa6239aea0 Also print OpenGL renderer string with vendor and version with -v
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31127 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-01 22:49:05 +00:00
reimar
ce4d38385c 100l, open the customtex also in binary mode, not just the program.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31106 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-30 17:12:52 +00:00
Uoti Urpala
f38efd166e Merge svn changes up to r31097 2010-04-26 19:23:32 +03:00
Uoti Urpala
8df340271e Merge svn changes up to r31040 2010-04-26 18:38:11 +03:00
Uoti Urpala
837c48ddee Merge svn changes up to r31020 2010-04-26 18:06:00 +03:00
Uoti Urpala
e913d6c5da Merge svn changes up to r31004 2010-04-26 17:55:05 +03:00
reimar
a9ff7793e3 Support for auto-selecting the OpenGL backend.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31086 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-25 10:53:01 +00:00
reimar
3a34dbc927 Add reinitialization support. Necessary for fullscreen on OSX.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31085 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-25 10:44:53 +00:00
reimar
e0183c56b1 Remove unnecessary check.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31078 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-25 09:25:23 +00:00
reimar
8b8fd879ac Set SDL window title.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31076 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-25 08:40:28 +00:00
reimar
a83117e972 Window resizing support for -vo gl with SDL backend.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31075 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-25 08:35:35 +00:00
reimar
5c4cc997ca Disable OSD support by default if the necessary OpenGL functionality is missing.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31065 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-24 16:58:24 +00:00
reimar
abfa4e2ae9 SDL support with related crash-resilience fixes.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31064 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-24 16:52:06 +00:00
reimar
3158a326fe Open cutomtex file in binary mode to avoid potential issues on
Windows.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31036 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-13 05:54:44 +00:00
reimar
b8a7ed8a79 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
2010-04-04 16:56:30 +00:00
reimar
2cebf8eeb7 Add mpgl prefix to all OpenGL-related function pointers.
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
2010-04-03 07:08:07 +00:00