Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
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