Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
437d8150
Commit
437d8150
authored
Aug 29, 2007
by
Pierre d'Herbemont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modules/gui/minimal_macosx: Add a minimal_macosx interface and vout that is used by the framework.
parent
2994ae9e
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1670 additions
and
0 deletions
+1670
-0
modules/gui/minimal_macosx/Modules.am
modules/gui/minimal_macosx/Modules.am
+14
-0
modules/gui/minimal_macosx/VLCMinimalVoutWindow.h
modules/gui/minimal_macosx/VLCMinimalVoutWindow.h
+42
-0
modules/gui/minimal_macosx/VLCMinimalVoutWindow.m
modules/gui/minimal_macosx/VLCMinimalVoutWindow.m
+82
-0
modules/gui/minimal_macosx/VLCOpenGLVoutView.h
modules/gui/minimal_macosx/VLCOpenGLVoutView.h
+79
-0
modules/gui/minimal_macosx/VLCOpenGLVoutView.m
modules/gui/minimal_macosx/VLCOpenGLVoutView.m
+369
-0
modules/gui/minimal_macosx/intf.h
modules/gui/minimal_macosx/intf.h
+50
-0
modules/gui/minimal_macosx/intf.m
modules/gui/minimal_macosx/intf.m
+101
-0
modules/gui/minimal_macosx/macosx.c
modules/gui/minimal_macosx/macosx.c
+64
-0
modules/gui/minimal_macosx/voutagl.h
modules/gui/minimal_macosx/voutagl.h
+43
-0
modules/gui/minimal_macosx/voutagl.m
modules/gui/minimal_macosx/voutagl.m
+684
-0
modules/gui/minimal_macosx/voutgl.h
modules/gui/minimal_macosx/voutgl.h
+50
-0
modules/gui/minimal_macosx/voutgl.m
modules/gui/minimal_macosx/voutgl.m
+92
-0
No files found.
modules/gui/minimal_macosx/Modules.am
0 → 100644
View file @
437d8150
# Automake forgets to add a proper tag to libtool with Objective-C files.
# Moreocer Libtool should default tag to CC when none is specified but
# obviously does not. Here is a fix for that.
LIBTOOL=@LIBTOOL@ --tag=CC
SOURCES_minimal_macosx = \
intf.m \
macosx.c \
VLCMinimalVoutWindow.m \
VLCOpenGLVoutView.m \
voutgl.m \
voutagl.m \
$(NULL)
modules/gui/minimal_macosx/VLCMinimalVoutWindow.h
0 → 100644
View file @
437d8150
/*****************************************************************************
* VLCMinimalVoutWindow.h: MacOS X Minimal window for a vout
*****************************************************************************
* Copyright (C) 2001-2004 the VideoLAN team
* $Id$
*
* Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#import <Cocoa/Cocoa.h>
#include <vlc/vlc.h>
@interface
VLCMinimalVoutWindow
:
NSWindow
{
NSRect
rect
;
}
-
(
id
)
initWithContentRect
:(
NSRect
)
contentRect
;
/* @protocol VLCOpenGLVoutEmbedding */
-
(
void
)
addVoutSubview
:(
NSView
*
)
view
;
-
(
void
)
removeVoutSubview
:(
NSView
*
)
view
;
-
(
void
)
enterFullscreen
;
-
(
void
)
leaveFullscreen
;
-
(
BOOL
)
stretchesVideo
;
-
(
void
)
setOnTop
:
(
BOOL
)
ontop
;
@end
modules/gui/minimal_macosx/VLCMinimalVoutWindow.m
0 → 100644
View file @
437d8150
/*****************************************************************************
* VLCMinimalVoutWindow.m: MacOS X Minimal interface window
*****************************************************************************
* Copyright (C) 2001-2004 the VideoLAN team
* $Id$
*
* Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include "intf.h"
#include "voutgl.h"
#include "VLCOpenGLVoutView.h"
#include "VLCMinimalVoutWindow.h"
/* SetSystemUIMode, ... */
#import <QuickTime/QuickTime.h>
#import <Cocoa/Cocoa.h>
@implementation
VLCMinimalVoutWindow
-
(
id
)
initWithContentRect
:(
NSRect
)
contentRect
{
if
(
self
=
[
super
initWithContentRect
:
contentRect
styleMask
:
NSBorderlessWindowMask
backing
:
NSBackingStoreBuffered
defer
:
NO
])
{
rect
=
contentRect
;
[
self
setBackgroundColor
:[
NSColor
blackColor
]];
[
self
setMovableByWindowBackground
:
YES
];
}
return
self
;
}
-
(
void
)
addVoutSubview
:(
NSView
*
)
view
{
[[
self
contentView
]
addSubview
:
view
];
[
view
setFrame
:[[
self
contentView
]
bounds
]];
}
-
(
void
)
removeVoutSubview
:(
NSView
*
)
view
{
[
self
close
];
[
self
release
];
}
-
(
void
)
enterFullscreen
{
SetSystemUIMode
(
kUIModeAllHidden
,
kUIOptionAutoShowMenuBar
);
[
self
setFrame
:[[
self
screen
]
frame
]
display
:
YES
];
}
-
(
void
)
leaveFullscreen
{
SetSystemUIMode
(
kUIModeNormal
,
kUIOptionAutoShowMenuBar
);
[
self
setFrame
:
rect
display
:
YES
];
}
-
(
BOOL
)
stretchesVideo
{
return
NO
;
}
-
(
void
)
setOnTop
:
(
BOOL
)
ontop
{
}
@end
modules/gui/minimal_macosx/VLCOpenGLVoutView.h
0 → 100644
View file @
437d8150
/*****************************************************************************
* VLCOpenGLVoutView.h: MacOS X OpenGL provider
*****************************************************************************
* Copyright (C) 2001-2004 the VideoLAN team
* $Id$
*
* Authors: Colin Delacroix <colin@zoy.org>
* Florian G. Pflug <fgp@phlo.org>
* Jon Lech Johansen <jon-vl@nanocrew.net>
* Derk-Jan Hartman <hartman at videolan dot org>
* Eric Petit <titer@m0k.org>
* Benjamin Pracht <bigben at videolan dot org>
* Damien Fouilleul <damienf at videolan dot org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#import <Cocoa/Cocoa.h>
#include <OpenGL/OpenGL.h>
#include <OpenGL/gl.h>
#include <vlc/vlc.h>
/* Entry point */
int
cocoaglvoutviewInit
(
vout_thread_t
*
p_vout
);
void
cocoaglvoutviewEnd
(
vout_thread_t
*
p_vout
);
int
cocoaglvoutviewManage
(
vout_thread_t
*
p_vout
);
int
cocoaglvoutviewControl
(
vout_thread_t
*
p_vout
,
int
i_query
,
va_list
args
);
void
cocoaglvoutviewSwap
(
vout_thread_t
*
p_vout
);
int
cocoaglvoutviewLock
(
vout_thread_t
*
p_vout
);
void
cocoaglvoutviewUnlock
(
vout_thread_t
*
p_vout
);
/* To commmunicate with the VLC.framework */
@protocol
VLCOpenGLVoutEmbedding
-
(
void
)
addVoutSubview
:(
NSView
*
)
view
;
-
(
void
)
removeVoutSubview
:(
NSView
*
)
view
;
-
(
void
)
enterFullscreen
;
-
(
void
)
leaveFullscreen
;
-
(
BOOL
)
stretchesVideo
;
-
(
void
)
setOnTop
:
(
BOOL
)
ontop
;
/* Do we really want that in protocol? */
@end
/* VLCOpenGLVoutView */
@interface
VLCOpenGLVoutView
:
NSOpenGLView
{
id
<
VLCOpenGLVoutEmbedding
>
container
;
vout_thread_t
*
p_vout
;
NSLock
*
objectLock
;
}
/* Init a new gl view and register it to both the framework and the
* vout_thread_t. Must be called from main thread */
+
(
void
)
autoinitOpenGLVoutViewIntVoutWithContainer
:
(
NSData
*
)
args
;
-
(
id
)
initWithVout
:
(
vout_thread_t
*
)
vout
container
:
(
id
<
VLCOpenGLVoutEmbedding
>
)
container
;
-
(
void
)
detachFromVout
;
-
(
id
<
VLCOpenGLVoutEmbedding
>
)
container
;
-
(
void
)
reshape
;
-
(
void
)
update
;
-
(
void
)
drawRect
:
(
NSRect
)
rect
;
@end
modules/gui/minimal_macosx/VLCOpenGLVoutView.m
0 → 100644
View file @
437d8150
This diff is collapsed.
Click to expand it.
modules/gui/minimal_macosx/intf.h
0 → 100644
View file @
437d8150
/*****************************************************************************
* intf.h: MacOS X interface module
*****************************************************************************
* Copyright (C) 2002-2006 the VideoLAN team
* $Id$
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr>
* Derk-Jan Hartman <hartman at videolan dot org>
* Felix KŸhne <fkuehne at videolan dot org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#include <vlc/vlc.h>
#include <vlc_interface.h>
#include <vlc_playlist.h>
#include <vlc_vout.h>
#include <vlc_aout.h>
#include <vlc_input.h>
#include <Cocoa/Cocoa.h>
/*****************************************************************************
* Local prototypes.
*****************************************************************************/
/* switch this to 1, if you want to use Obj-C with GC */
#define GC_ENABLED 0
/*****************************************************************************
* intf_sys_t: description and status of the interface
*****************************************************************************/
struct
intf_sys_t
{
NSAutoreleasePool
*
o_pool
;
};
modules/gui/minimal_macosx/intf.m
0 → 100644
View file @
437d8150
/*****************************************************************************
* intf.m: MacOS X interface module
*****************************************************************************
* Copyright (C) 2002-2007 the VideoLAN team
* $Id$
*
* Authors: Jon Lech Johansen
<jon-vl
@
nanocrew
.
net
>
* Christophe Massiot
<massiot
@
via
.
ecp
.
fr
>
* Derk-Jan Hartman
<hartman
at
videolan
.
org
>
* Felix Khne
<fkuehne
at
videolan
dot
org
>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include
<stdlib
.
h
>
/* malloc(), free() */
#include
<sys
/
param
.
h
>
/* for MAXPATHLEN */
#include
<string
.
h
>
#include
<vlc
/
vlc
.
h
>
#include
<vlc
_keys
.
h
>
#include
<vlc
_input
.
h
>
#import
<intf
.
h
>
/*****************************************************************************
* Local prototypes.
*****************************************************************************/
static void Run ( intf_thread_t *p_intf );
/*****************************************************************************
* OpenIntf: initialize interface
*****************************************************************************/
int E_(OpenIntf) ( vlc_object_t *p_this )
{
intf_thread_t *p_intf = (intf_thread_t*) p_this;
p_intf->p_sys = malloc( sizeof( intf_sys_t ) );
if( p_intf->p_sys == NULL )
{
return( 1 );
}
memset( p_intf->p_sys, 0, sizeof( *p_intf->p_sys ) );
p_intf->p_sys->o_pool = [[NSAutoreleasePool alloc] init];
p_intf->b_play = VLC_TRUE;
p_intf->pf_run = Run;
return( 0 );
}
/*****************************************************************************
* CloseIntf: destroy interface
*****************************************************************************/
void E_(CloseIntf) ( vlc_object_t *p_this )
{
intf_thread_t *p_intf = (intf_thread_t*) p_this;
free( p_intf->p_sys );
}
/*****************************************************************************
* Run: main loop
*****************************************************************************/
static void Run( intf_thread_t *p_intf )
{
sigset_t set;
/* Do it again - for some unknown reason, vlc_thread_create() often
* fails to go to real-time priority with the first launched thread
* (???) --Meuuh */
vlc_thread_set_priority( p_intf, VLC_THREAD_PRIORITY_LOW );
/* Make sure the "force quit" menu item does quit instantly.
* VLC overrides SIGTERM which is sent by the "force quit"
* menu item to make sure deamon mode quits gracefully, so
* we un-override SIGTERM here. */
sigemptyset(
&
set );
sigaddset(
&
set, SIGTERM );
pthread_sigmask( SIG_UNBLOCK,
&
set, NULL );
[NSApp run];
}
modules/gui/minimal_macosx/macosx.c
0 → 100644
View file @
437d8150
/*****************************************************************************
* macosx.m: Mac OS X module for vlc
*****************************************************************************
* Copyright (C) 2001-2006 the VideoLAN team
* $Id$
*
* Authors: Colin Delacroix <colin@zoy.org>
* Eugenio Jarosiewicz <ej0@cise.ufl.edu>
* Florian G. Pflug <fgp@phlo.org>
* Jon Lech Johansen <jon-vl@nanocrew.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <stdlib.h>
/* malloc(), free() */
#include <string.h>
#include <vlc/vlc.h>
/*****************************************************************************
* External prototypes
*****************************************************************************/
int
E_
(
OpenIntf
)
(
vlc_object_t
*
);
void
E_
(
CloseIntf
)
(
vlc_object_t
*
);
int
E_
(
OpenVideoGL
)
(
vlc_object_t
*
);
void
E_
(
CloseVideoGL
)
(
vlc_object_t
*
);
/*****************************************************************************
* Module descriptor
*****************************************************************************/
vlc_module_begin
();
/* Minimal interface. see intf.m */
set_description
(
_
(
"Mac OS X interface"
)
);
set_capability
(
"interface"
,
100
);
set_callbacks
(
E_
(
OpenIntf
),
E_
(
CloseIntf
)
);
set_category
(
CAT_INTERFACE
);
set_subcategory
(
SUBCAT_INTERFACE_MAIN
);
add_submodule
();
/* Will be loaded even without interface module. see voutgl.m */
set_description
(
"Mac OS X OpenGL"
);
set_capability
(
"opengl provider"
,
100
);
set_category
(
CAT_VIDEO
);
set_subcategory
(
SUBCAT_VIDEO_VOUT
);
set_callbacks
(
E_
(
OpenVideoGL
),
E_
(
CloseVideoGL
)
);
vlc_module_end
();
modules/gui/minimal_macosx/voutagl.h
0 → 100644
View file @
437d8150
/*****************************************************************************
* voutagl.c: MacOS X agl OpenGL provider (used by webbrowser.plugin)
*****************************************************************************
* Copyright (C) 2001-2004 the VideoLAN team
* $Id$
*
* Authors: Colin Delacroix <colin@zoy.org>
* Florian G. Pflug <fgp@phlo.org>
* Jon Lech Johansen <jon-vl@nanocrew.net>
* Derk-Jan Hartman <hartman at videolan dot org>
* Eric Petit <titer@m0k.org>
* Benjamin Pracht <bigben at videolan dot org>
* Damien Fouilleul <damienf at videolan dot org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#include <OpenGL/OpenGL.h>
#include <OpenGL/gl.h>
#include <AGL/agl.h>
#include <vlc/vlc.h>
int
aglInit
(
vout_thread_t
*
p_vout
);
void
aglEnd
(
vout_thread_t
*
p_vout
);
int
aglManage
(
vout_thread_t
*
p_vout
);
int
aglControl
(
vout_thread_t
*
,
int
,
va_list
);
void
aglSwap
(
vout_thread_t
*
p_vout
);
int
aglLock
(
vout_thread_t
*
p_vout
);
void
aglUnlock
(
vout_thread_t
*
p_vout
);
modules/gui/minimal_macosx/voutagl.m
0 → 100644
View file @
437d8150
This diff is collapsed.
Click to expand it.
modules/gui/minimal_macosx/voutgl.h
0 → 100644
View file @
437d8150
/*****************************************************************************
* voutgl.h: MacOS X OpenGL provider
*****************************************************************************
* Copyright (C) 2001-2006 the VideoLAN team
* $Id$
*
* Authors: Colin Delacroix <colin@zoy.org>
* Florian G. Pflug <fgp@phlo.org>
* Jon Lech Johansen <jon-vl@nanocrew.net>
* Eric Petit <titer@m0k.org>
* Benjamin Pracht <bigben at videolan dot org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#import <Cocoa/Cocoa.h>
#import "VLCOpenGLVoutView.h"
#import "voutagl.h"
struct
vout_sys_t
{
NSAutoreleasePool
*
o_pool
;
VLCOpenGLVoutView
*
o_glview
;
vlc_bool_t
b_saved_frame
;
NSRect
s_frame
;
vlc_bool_t
b_got_frame
;
/* Mozilla plugin-related variables */
vlc_bool_t
b_embedded
;
AGLContext
agl_ctx
;
AGLDrawable
agl_drawable
;
int
i_offx
,
i_offy
;
int
i_width
,
i_height
;
WindowRef
theWindow
;
WindowGroupRef
winGroup
;
vlc_bool_t
b_clipped_out
;
Rect
clipBounds
,
viewBounds
;
};
modules/gui/minimal_macosx/voutgl.m
0 → 100644
View file @
437d8150
/*****************************************************************************
* voutgl.m: MacOS X OpenGL provider
*****************************************************************************
* Copyright (C) 2001-2004 the VideoLAN team
* $Id$
*
* Authors: Colin Delacroix
<colin
@
zoy
.
org
>
* Florian G. Pflug
<fgp
@
phlo
.
org
>
* Jon Lech Johansen
<jon-vl
@
nanocrew
.
net
>
* Derk-Jan Hartman
<hartman
at
videolan
dot
org
>
* Eric Petit
<titer
@
m0k
.
org
>
* Benjamin Pracht
<bigben
at
videolan
dot
org
>
* Damien Fouilleul
<damienf
at
videolan
dot
org
>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include "intf.h"
#include "voutgl.h"
int E_(OpenVideoGL) ( vlc_object_t * p_this )
{
vout_thread_t * p_vout = (vout_thread_t *) p_this;
vlc_value_t value_drawable;
if( !CGDisplayUsesOpenGLAcceleration( kCGDirectMainDisplay ) )
{
msg_Warn( p_vout, "no OpenGL hardware acceleration found. "
"Video display will be slow" );
return( 1 );
}
msg_Dbg( p_vout, "display is Quartz Extreme accelerated" );
p_vout->p_sys = malloc( sizeof( vout_sys_t ) );
if( p_vout->p_sys == NULL )
{
msg_Err( p_vout, "out of memory" );
return( 1 );
}
memset( p_vout->p_sys, 0, sizeof( vout_sys_t ) );
var_Get( p_vout->p_libvlc, "drawable",
&
value_drawable );
if( 0 /* Are we in the mozilla plugin ? XXX: get that from drawable */ )
{
p_vout->pf_init = aglInit;
p_vout->pf_end = aglEnd;
p_vout->pf_manage = aglManage;
p_vout->pf_control = aglControl;
p_vout->pf_swap = aglSwap;
p_vout->pf_lock = aglLock;
p_vout->pf_unlock = aglUnlock;
}
else
{
/* Let's use the VLCOpenGLVoutView.m class */
p_vout->pf_init = cocoaglvoutviewInit;
p_vout->pf_end = cocoaglvoutviewEnd;
p_vout->pf_manage = cocoaglvoutviewManage;
p_vout->pf_control= cocoaglvoutviewControl;
p_vout->pf_swap = cocoaglvoutviewSwap;
p_vout->pf_lock = cocoaglvoutviewLock;
p_vout->pf_unlock = cocoaglvoutviewUnlock;
}
p_vout->p_sys->b_got_frame = VLC_FALSE;
return VLC_SUCCESS;
}
void E_(CloseVideoGL) ( vlc_object_t * p_this )
{
vout_thread_t * p_vout = (vout_thread_t *) p_this;
/* Clean up */
free( p_vout->p_sys );
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment