*****************************************************************************/
#include <errno.h> /* ENOMEM */
-#include <vlc/vlc.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc_common.h>
+#include <vlc_plugin.h>
#include <vlc_vout.h>
#import <QuartzCore/QuartzCore.h>
set_shortname( "OpenGLLayer" );
set_category( CAT_VIDEO );
set_subcategory( SUBCAT_VIDEO_VOUT );
- set_description( _("Core Animation OpenGL Layer (Mac OS X)") );
+ set_description( N_("Core Animation OpenGL Layer (Mac OS X)") );
set_capability( "video output", 20 );
add_shortcut( "opengllayer" );
set_callbacks( CreateVout, DestroyVout );
uint8_t *pp_buffer[2]; /* one last rendered, one to be rendered */
int i_index;
- vlc_bool_t b_frame_available;
+ bool b_frame_available;
CGLContextObj glContext;
return VLC_EGENERIC;
}
}
- p_sys->b_frame_available = VLC_FALSE;
+ p_sys->b_frame_available = false;
p_sys->i_index = 0;
p_vout->p_picture[0].i_planes = 1;
{
vout_sys_t *p_sys = p_vout->p_sys;
- p_vout->p_sys->b_frame_available = VLC_FALSE;
-
- [CATransaction performSelectorOnMainThread:@selector(begin)
- withObject:nil waitUntilDone:YES];
+ p_vout->p_sys->b_frame_available = false;
- [p_sys->o_layer performSelectorOnMainThread:@selector(removeFromSuperlayer)
- withObject:nil waitUntilDone:YES];
- [CATransaction performSelectorOnMainThread:@selector(commit)
- withObject:nil waitUntilDone:YES];
+ [p_vout->p_sys->o_cocoa_container performSelectorOnMainThread:@selector(removeVoutLayer:) withObject:p_vout->p_sys->o_layer waitUntilDone:YES];
// Should be done automatically
[p_sys->o_layer release];
p_sys->i_index = i_new_index;
p_pic->p->p_pixels = p_sys->pp_buffer[p_sys->i_index];
CGLUnlockContext(p_sys->glContext);
+
+ p_sys->b_frame_available = true;
}
}
static void DisplayVideo( vout_thread_t *p_vout, picture_t *p_pic )
{
vout_sys_t *p_sys = p_vout->p_sys;
-
- [p_sys->o_layer performSelectorOnMainThread:@selector(setNeedsDisplay)
- withObject:nil waitUntilDone:NO];
-
- p_sys->b_frame_available = VLC_TRUE;
+
+ [p_sys->o_layer performSelectorOnMainThread:@selector(display)
+ withObject:nil waitUntilDone:YES];
}
/*****************************************************************************
glFlush();
CGLUnlockContext( glContext );
-
- p_vout->p_sys->b_frame_available = VLC_FALSE;
}
- (CGLContextObj)copyCGLContextForPixelFormat:(CGLPixelFormatObj)pixelFormat