1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-30 19:22:11 +00:00
Commit Graph

59 Commits

Author SHA1 Message Date
wm4
a0b43a11e4 vo_gl3: make it work on OpenGL 2.1
Now vo_gl3 should work with standard OpenGL 2.1, as long as the
GL_ARB_texture_rg extension is available. Optional features, which
require features that are always in OpenGL 3.0, but are available
as extensions only in OpenGL 2.1, are automatically disabled.

The force-gl2 suboption, which was an unreliable hack to run vo_gl3
in an OpenGL 2.1 context, is removed.

Significant changes are done to the extension loader to make it easier
to identify optional OpenGL features.

Context creation is a bit changed to simplify the code and to handle
the fallback better if OpenGL 3 context creation fails, and creating
an OpenGL legacy context is attempted.

Based on the initial work by Rudolf Polzer <divverent@xonotic.org>,
which included making the shader GLSL 1.20 compatible, and more.
2012-10-03 03:17:38 +02:00
Stefano Pigozzi
7fd43b0bcd osx: fix build
adapt the osx VOs to build against the latest changes.
2012-08-08 21:23:28 +02:00
wm4
168293e0ae osd: minor simplification of vo_osd_changed()
vo_osd_changed() was a weird function: it was used both to query and
mutate state, which is a bad combination. The VOs used it to query
and reset the state, and the mplayer frontend mostly used it to set
the state. In some cases, the frontend did both (that code used a
variable "int hack" to backup the state and set it again).

Simplify it and make the VOs use a vo_osd_has_changed() function to
query whether the OSD bitmaps have to be recreated. vo_osd_changed()
on the other hand is now used to update state only. The OSD change
state is reset when osd_draw_text() is called.

Update vo_corevideo.m to use vo_osd_resized() as well (forgotten change
from libass-OSD merge).

Simplify osd_set_text() and its usages.
2012-08-01 18:23:28 +02:00
Stefano Pigozzi
38e705b3e4 vo_corevideo: remove font_load code
This was probably forgotten in the commit that removed the dependency on
freetype.
2012-08-01 08:44:58 +02:00
Stefano Pigozzi
02add991fb vo_corevideo, vo_sharedbuffer: put private state in vo->priv
These VOs were already using a struct for all private data but the
struct variable itself was static. Change them to store the address in
vo->priv. Also change them to use the new automatic private data
allocation and option parsing mechanism.
2012-07-27 16:52:22 +03:00
Stefano Pigozzi
768e06b0ac vo_corevideo: restructure this video output
Restructure this video output to be similar to vo_gl, even if simpler
and less feature complete (for example it's still missing EOSD
support). Ideally, it should act as a decent fallback in the case
where something breaks in the OSX support of vo_gl.

Here's a summary of what changed:

 * Remove the shared buffer code since it wasn't using any function
   from the CoreVideo API. Moreover, its presence in vo_corevideo was
   forcing the non-GUI related code to perform more image copies than
   necessary. Equivalent shared-buffer functionality will be added in
   a separate new VO in the next commit (this means OSX GUIs will need
   to specify a different VO).

 * Clean up the code to conform a bit more to the mplayer2
   conventions. Enforce 80 column wrapping, use a private struct for
   file variables, use the new libvo api.

 * Add OSD rendering using OpenGL instead of writing directly on the
   video image data.

 * Simplify the logic for the rendering function when dealing with
   panscan.

 * Add VOCTRL_REDRAW_FRAME support.

 * Add colormatrix support by using the built-in API provided by
   CoreVideo.
2012-04-26 21:03:10 +03:00
Stefano Pigozzi
d12b9b611a vo_corevideo: use cocoa_common to display the window
Change vo_corevideo to use cocoa_common to create and manage the
window. This doesn't affect external OSX GUIs, since they don't use
vo_corevideo window management, but only read the image data from the
shared buffer.
2012-04-26 21:03:10 +03:00
Stefano Pigozzi
237f44db44 vo_corevideo: use soft tabs (4 spaces) 2012-04-26 21:03:10 +03:00
Stefano Pigozzi
4a8ee6d9a4 vo_corevideo: fix key interpretation with modifiers
When interpreting a key event, use the "charactersIgnoringModifiers"
method of the event in order to extract Alt+key combinations while
keeping the normal meaning of "key". When the right alt modifier is
pressed use the "characters" method to allow AltGr behavior to be used
to generate different characters.
2011-11-26 20:04:16 +02:00
Uoti Urpala
23cb829072 input: move all key code lists to input/keycodes.h
Move the definitions of all special key codes (those not passed by
ASCII value) to input/keycodes.h. Before they were spread between
osdep/keycodes.h, input/joystick.h, input/mouse.h and input/ar.h, plus
some special values in input.h. This was especially inconvenient as
the codes had to be coordinated to not conflict between the files.

The change requires a bit of ugliness as appleir.c includes
<linux/input.h> which contains various conflicting KEY_* definitions.
Work around this by adding a special preprocessor variable which can
be used to avoid defining these in keycodes.h.
2011-05-02 00:43:31 +03:00
Stefano Pigozzi
b10b2b5b2c vo_corevideo: add key_modifier_alt only when pressing left option key 2011-03-18 21:59:38 +02:00
Stefano Pigozzi
e94a9076dc vo_corevideo: fix menubar showing 2 apples on snow leopard 2011-03-11 20:32:57 +02:00
Stefano Pigozzi
cf664986ae vo_corevideo: support modifier keys in keyboard input 2011-03-03 13:27:30 +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
cc6428a72c vo_corevideo: Move variable into the only function it's used in
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31826 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:46 +02:00
reimar
2e6847a352 vo_corevideo: move mouse hiding to check_events
Move mouse hiding code to check_events, this allows mouse hiding
to continue to work with -idle -fixed-vo, after the video has
finished but the last frame is still displayed.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31825 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:46 +02:00
reimar
902417b999 vo_corevideo: Make the Quit menu entry work
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31824 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:46 +02:00
reimar
5a1689d894 vo_corevideo: simplify check_events
Simplify check_events: avoid seemingly pointless untilDate argument.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31823 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:46 +02:00
reimar
d612a71f39 vo_corevideo: change window-closing handling
Change window-closing handling so it works properly if the
KEY_CLOSE_WIN is rebound to e.g. skip to next file or not
bound at all.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31822 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:46 +02:00
reimar
59524e7a3f vo_corevideo, vo_quartz: remove useless kQuitCmd
Remove kQuitCmd, it has no purpose or effect at all.

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

Remove unused kQuitCmd from vo_quartz.
While just as useless as for corevideo, the "Quit"
menu item at least works through kHICommandQuit here.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31812 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:45 +02:00
reimar
79662b6f19 vo_corevideo: indentation fixes
Cosmetics: indentation fixes.

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

Fix indentation.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31810 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:45 +02:00
reimar
465839a395 vo_corevideo: Avoid some code duplication.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31809 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:45 +02:00
reimar
f4f8c1f7e9 vo_corevideo: Simplify update_screen_info
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31806 b3059339-0415-0410-9bf9-f77b7e298cf2

Avoid some code duplication in update_screen_info.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31807 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:45 +02:00
reimar
0a5ff5eef3 vo_corevideo: avoid dangerous casts
Declare variables with proper types to avoid dangerous pointer casts.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31805 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:45 +02:00
reimar
5f5a12a939 vo_corevideo.m: remote useless parentheses and casts
Remove useless ().

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

Remove yet more useless ()

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

Remove pointless casts.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31804 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:45 +02:00
reimar
2fa911a6f5 vo_corevideo: Send KEY_CLOSE_WIN instead of KEY_ESC for quit
Send KEY_CLOSE_WIN instead of KEY_ESC when the user requested
corevideo to quit, KEY_ESC might have been rebound to something else.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31801 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:14:45 +02:00
Uoti Urpala
f38efd166e Merge svn changes up to r31097 2010-04-26 19:23:32 +03:00
Uoti Urpala
837c48ddee Merge svn changes up to r31020 2010-04-26 18:06:00 +03:00
Uoti Urpala
4785c2617e Merge svn changes up to r30967 2010-04-26 17:42:20 +03:00
reimar
14c018a80f Avoid duplicating mouse-movement command-generation code.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31091 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-25 16:13:57 +00:00
reimar
2f629d7969 Deduplicate enable_mouse_movements declaration.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31089 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-25 15:49:46 +00:00
reimar
a55acacbda Fix RGB support for corevideo: corevideo can only support
ARGB and BGRA, which depending on endianness matches only one
of RGB32 and BGR32.
Also add RGB24 support which works independent of endianness,


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31016 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-05 13:11:06 +00:00
reimar
c0b8b92d99 Enable OSD also for BGR32, the code is the same as for RGB32.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31015 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-05 07:22:21 +00:00
reimar
a8a98ee6d1 Implement VOCTRL_DRAW_IMAGE instead of the deprecated draw_frame, avoiding
an extra memcpy in case of stride mismatch.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31014 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-05 07:15:22 +00:00
diego
3e7a2bd8c3 Refactor OS X foreground process setting into a separate function.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30964 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-26 15:02:14 +00:00
Uoti Urpala
efcc9ad712 Merge svn changes up to r30055 2009-12-18 18:54:42 +02:00
adrian
2a33cd01f6 Add support for -geometry to corevideo.
Based on a patch by Tim Wojtulewicz (timwoj at ieee dot org).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30043 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-15 20:38:54 +00:00
adrian
5f0b5dcaa9 Add -xineramascreen support to corevideo vo. Still prefer corevideo's own device_id parameter if it's set.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30042 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-15 20:25:50 +00:00
Uoti Urpala
7fd3eb0f74 Merge svn changes up to r29752
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.
2009-10-06 04:48:00 +03:00
adrian
7bc4102a08 Fix vo_corevideo with shared buffer after r29606: Only do GUI dependent display config if shared buffer is not enabled.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29699 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-20 19:07:57 +00:00
Uoti Urpala
e1ecc43152 Merge svn changes up to r29684 2009-09-16 22:28:12 +03:00
reimar
76d4cd713f Factor out duplicated code to set play video scaled by a certain factor.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29646 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-04 18:43:28 +00:00
reimar
5f76d2416b Subopt parser subopts should now be const.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29645 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-04 18:21:28 +00:00
Uoti Urpala
0e1b7765be Merge svn changes up to r29644 2009-09-04 19:49:35 +03:00
reimar
1b3c42472d Make glContext a local variable, it is not needed outside the function
where it is allocated, reference counting takes care of freeing it.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29617 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-01 21:16:58 +00:00
reimar
9ad17fad92 Add a dealloc function to corevideo to reduce the memleaks from
(for my sample) about 12 MB to 2 MB.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29616 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-01 21:12:33 +00:00
reimar
cb9e32c88c Fix some of the major memleaks of vo_corevideo with -fixed-vo
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29615 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-01 20:09:01 +00:00
reimar
7b7302b096 Make shm_fd a local variable and close it when we need it no longer, thus
fixing a file descriptor leak.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29609 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-01 12:12:45 +00:00
reimar
0f7fe32725 Reduce vo_corevideo memleaks by initializing static context etc. only once
in preinit and freeing the video-specific data before reallocating in config.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29608 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-01 10:48:47 +00:00