Mercurial > mplayer.hg
annotate libvo/vo_corevideo.h @ 34338:4a507d3a039a
Add highly experimental support for OpenGL ES.
It only supports EGL/X11, uses/supports only ES v1,
will crash if certain features are used, compiling
without desktop GL installed is not tested and
possibly more caveats.
However it is close enough to be able to display
a video on a BeagleBoard via OpenGL.
Performance could not be tested properly since I do
not have a display that is compatible with the
BeagleBoard output...
author | reimar |
---|---|
date | Sat, 10 Dec 2011 20:55:31 +0000 |
parents | 98f341e62270 |
children | 3702a2b88d12 |
rev | line source |
---|---|
15289 | 1 /* |
29210 | 2 * CoreVideo video output driver |
28446
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
3 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
4 * Copyright (c) 2005 Nicolas Plourde <nicolasplourde@gmail.com> |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
5 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
6 * This file is part of MPlayer. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
7 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
8 * MPlayer is free software; you can redistribute it and/or modify |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
11 * (at your option) any later version. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
12 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
13 * MPlayer is distributed in the hope that it will be useful, |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
16 * GNU General Public License for more details. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
17 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
18 * You should have received a copy of the GNU General Public License along |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
19 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
21 */ |
15289 | 22 |
32126 | 23 #ifndef MPLAYER_VO_COREVIDEO_H |
24 #define MPLAYER_VO_COREVIDEO_H | |
25 | |
15289 | 26 #import <Cocoa/Cocoa.h> |
27 #import <QuartzCore/QuartzCore.h> | |
29207
5044f4496791
Replace QuickTime.h #include with Carbon.h, which is really needed.
diego
parents:
28446
diff
changeset
|
28 #import <Carbon/Carbon.h> |
15289 | 29 |
25157
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
30 // MPlayer OS X VO Protocol |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
31 @protocol MPlayerOSXVOProto |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
32 - (int) startWithWidth: (bycopy int)width |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
33 withHeight: (bycopy int)height |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
34 withBytes: (bycopy int)bytes |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
35 withAspect: (bycopy int)aspect; |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
36 - (void) stop; |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
37 - (void) render; |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
38 - (void) toggleFullscreen; |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
39 - (void) ontop; |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
40 @end |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
41 |
15611 | 42 @interface MPlayerOpenGLView : NSOpenGLView |
15289 | 43 { |
44 //Cocoa | |
45 NSWindow *window; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29210
diff
changeset
|
46 |
15289 | 47 //CoreVideo |
25180 | 48 CVPixelBufferRef frameBuffers[2]; |
15289 | 49 CVOpenGLTextureCacheRef textureCache; |
50 CVOpenGLTextureRef texture; | |
15729 | 51 NSRect textureFrame; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29210
diff
changeset
|
52 |
31744 | 53 GLfloat lowerLeft[2]; |
54 GLfloat lowerRight[2]; | |
55 GLfloat upperRight[2]; | |
56 GLfloat upperLeft[2]; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29210
diff
changeset
|
57 |
15289 | 58 BOOL mouseHide; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29210
diff
changeset
|
59 |
15570 | 60 //menu command id |
61 NSMenuItem *kHalfScreenCmd; | |
62 NSMenuItem *kNormalScreenCmd; | |
63 NSMenuItem *kDoubleScreenCmd; | |
64 NSMenuItem *kFullScreenCmd; | |
65 NSMenuItem *kKeepAspectCmd; | |
66 NSMenuItem *kAspectOrgCmd; | |
67 NSMenuItem *kAspectFullCmd; | |
68 NSMenuItem *kAspectWideCmd; | |
69 NSMenuItem *kPanScanCmd; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29210
diff
changeset
|
70 |
28010
0a0f63090e60
factorize mouse hiding and screensaver disabling code
gpoirier
parents:
25180
diff
changeset
|
71 //timestamps for disabling screensaver and mouse hiding |
0a0f63090e60
factorize mouse hiding and screensaver disabling code
gpoirier
parents:
25180
diff
changeset
|
72 int lastMouseHide; |
0a0f63090e60
factorize mouse hiding and screensaver disabling code
gpoirier
parents:
25180
diff
changeset
|
73 int lastScreensaverUpdate; |
29564
4ae3d2d7946e
Use MPlayer's standard aspect handling functions in corevideo
reimar
parents:
29263
diff
changeset
|
74 @public |
4ae3d2d7946e
Use MPlayer's standard aspect handling functions in corevideo
reimar
parents:
29263
diff
changeset
|
75 float winSizeMult; |
15289 | 76 } |
77 | |
78 - (BOOL) acceptsFirstResponder; | |
79 - (BOOL) becomeFirstResponder; | |
80 - (BOOL) resignFirstResponder; | |
81 | |
82 //window & rendering | |
24076 | 83 - (void) preinit; |
84 - (void) config; | |
15289 | 85 - (void) prepareOpenGL; |
86 - (void) render; | |
87 - (void) reshape; | |
88 - (void) setCurrentTexture; | |
89 - (void) drawRect: (NSRect *) bounds; | |
15611 | 90 |
91 //vo control | |
15289 | 92 - (void) fullscreen: (BOOL) animate; |
93 - (void) ontop; | |
94 - (void) panscan; | |
15327 | 95 - (void) rootwin; |
15289 | 96 |
15611 | 97 //menu |
98 - (void) initMenu; | |
99 - (void) menuAction:(id)sender; | |
100 | |
15289 | 101 //event |
102 - (void) keyDown: (NSEvent *) theEvent; | |
103 - (void) mouseMoved: (NSEvent *) theEvent; | |
104 - (void) mouseDown: (NSEvent *) theEvent; | |
24077
9ce03980ed0c
added double click support in vo_macosx. Patch by Ulion <ulion2002@gmail.com>
nplourde
parents:
24076
diff
changeset
|
105 - (void) mouseUp: (NSEvent *) theEvent; |
15289 | 106 - (void) rightMouseDown: (NSEvent *) theEvent; |
24077
9ce03980ed0c
added double click support in vo_macosx. Patch by Ulion <ulion2002@gmail.com>
nplourde
parents:
24076
diff
changeset
|
107 - (void) rightMouseUp: (NSEvent *) theEvent; |
15289 | 108 - (void) otherMouseDown: (NSEvent *) theEvent; |
24077
9ce03980ed0c
added double click support in vo_macosx. Patch by Ulion <ulion2002@gmail.com>
nplourde
parents:
24076
diff
changeset
|
109 - (void) otherMouseUp: (NSEvent *) theEvent; |
15289 | 110 - (void) scrollWheel: (NSEvent *) theEvent; |
111 - (void) mouseEvent: (NSEvent *) theEvent; | |
112 - (void) check_events; | |
24075 | 113 @end |
32126 | 114 |
115 #endif /* MPLAYER_VO_COREVIDEO_H */ |