libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] libcvd/progs/video_iOS video/Camera.h video/Cam...


From: Gerhard Reitmayr
Subject: [libcvd-members] libcvd/progs/video_iOS video/Camera.h video/Cam...
Date: Wed, 11 May 2011 16:25:11 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    libcvd
Changes by:     Gerhard Reitmayr <gerhard>      11/05/11 16:25:11

Added files:
        progs/video_iOS/video: Camera.h Camera.m EAGLView.h EAGLView.m 
                               main.m video-Info.plist video-Prefix.pch 
                               videoAppDelegate.h videoAppDelegate.m 
                               videoViewController.h 
                               videoViewController.m 
        progs/video_iOS/video/en.lproj: InfoPlist.strings MainWindow.xib 
                                        videoViewController.xib 
        progs/video_iOS/video.xcodeproj: project.pbxproj 

Log message:
        simple iOS video capture and render application for experimenting

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/Camera.h?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/Camera.m?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/EAGLView.h?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/EAGLView.m?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/main.m?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/video-Info.plist?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/video-Prefix.pch?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/videoAppDelegate.h?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/videoAppDelegate.m?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/videoViewController.h?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/videoViewController.m?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/en.lproj/InfoPlist.strings?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/en.lproj/MainWindow.xib?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video/en.lproj/videoViewController.xib?cvsroot=libcvd&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/libcvd/progs/video_iOS/video.xcodeproj/project.pbxproj?cvsroot=libcvd&rev=1.1

Patches:
Index: video/Camera.h
===================================================================
RCS file: video/Camera.h
diff -N video/Camera.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/Camera.h      11 May 2011 16:25:07 -0000      1.1
@@ -0,0 +1,20 @@
+#import <Foundation/Foundation.h>
+#import <AVFoundation/AVFoundation.h>
+#import <CoreMedia/CoreMedia.h>
+
address@hidden CameraDelegate;
+
address@hidden Camera : NSObject <AVCaptureVideoDataOutputSampleBufferDelegate>
+{
+       AVCaptureSession *captureSession;
+       AVCaptureDeviceInput *videoInput;
+       AVCaptureVideoDataOutput *videoOutput;
+}
+
address@hidden(nonatomic, assign) id<CameraDelegate> delegate;
+
address@hidden
+
address@hidden CameraDelegate
+- (void)processNewCameraFrame:(CVImageBufferRef)cameraFrame;
address@hidden

Index: video/Camera.m
===================================================================
RCS file: video/Camera.m
diff -N video/Camera.m
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/Camera.m      11 May 2011 16:25:08 -0000      1.1
@@ -0,0 +1,79 @@
+#import "Camera.h"
+
address@hidden Camera
+
+- (id)init; 
+{
+       if (!(self = [super init]))
+               return nil;
+       
+       // Grab the back-facing camera
+       AVCaptureDevice *backFacingCamera = nil;
+       NSArray *devices = [AVCaptureDevice 
devicesWithMediaType:AVMediaTypeVideo];
+       for (AVCaptureDevice *device in devices) 
+       {
+               if ([device position] == AVCaptureDevicePositionBack) 
+               {
+                       backFacingCamera = device;
+               }
+       }
+       
+       // Create the capture session
+       captureSession = [[AVCaptureSession alloc] init];
+       
+       // Add the video input  
+       NSError *error = nil;
+       videoInput = [[[AVCaptureDeviceInput alloc] 
initWithDevice:backFacingCamera error:&error] autorelease];
+       if ([captureSession canAddInput:videoInput]) 
+       {
+               [captureSession addInput:videoInput];
+       }
+       
+       // Add the video frame output   
+       videoOutput = [[AVCaptureVideoDataOutput alloc] init];
+       [videoOutput setAlwaysDiscardsLateVideoFrames:YES];
+       // Use RGB frames instead of YUV to ease color processing - different 
color formats here
+       [videoOutput setVideoSettings:[NSDictionary 
dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] 
forKey:(id)kCVPixelBufferPixelFormatTypeKey]];
+       //[videoOutput setVideoSettings:[NSDictionary 
dictionaryWithObject:[NSNumber 
numberWithInt:kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange] 
forKey:(id)kCVPixelBufferPixelFormatTypeKey]];
+       [videoOutput setSampleBufferDelegate:self 
queue:dispatch_get_main_queue()];
+
+       if ([captureSession canAddOutput:videoOutput])
+       {
+               [captureSession addOutput:videoOutput];
+       }
+       else
+       {
+               NSLog(@"Couldn't add video output");
+       }
+
+       // Start capturing - different resolutions
+    //  [captureSession setSessionPreset:AVCaptureSessionPresetHigh];
+    //  [captureSession setSessionPreset:AVCaptureSessionPresetMedium];
+       [captureSession setSessionPreset:AVCaptureSessionPreset640x480];
+       if (![captureSession isRunning])
+       {
+               [captureSession startRunning];
+       };
+       
+       return self;
+}
+
+- (void)dealloc 
+{
+       [captureSession stopRunning];
+
+       [captureSession release];
+       [videoOutput release];
+       [videoInput release];
+       [super dealloc];
+}
+
+- (void)captureOutput:(AVCaptureOutput *)captureOutput 
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer 
fromConnection:(AVCaptureConnection *)connection
+{
+       CVImageBufferRef pixelBuffer = 
CMSampleBufferGetImageBuffer(sampleBuffer);
+       [self.delegate processNewCameraFrame:pixelBuffer];
+}
+
address@hidden delegate;
+
address@hidden

Index: video/EAGLView.h
===================================================================
RCS file: video/EAGLView.h
diff -N video/EAGLView.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/EAGLView.h    11 May 2011 16:25:09 -0000      1.1
@@ -0,0 +1,35 @@
+//
+//  EAGLView.h
+//  OpenGLES_iPhone
+//
+//  Created by mmalc Crawford on 11/18/10.
+//  Copyright 2010 Apple Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import <OpenGLES/ES1/gl.h>
+#import <OpenGLES/ES1/glext.h>
+#import <OpenGLES/ES2/gl.h>
+#import <OpenGLES/ES2/glext.h>
+
address@hidden EAGLContext;
+
+// This class wraps the CAEAGLLayer from CoreAnimation into a convenient 
UIView subclass.
+// The view content is basically an EAGL surface you render your OpenGL scene 
into.
+// Note that setting the view non-opaque will only work if the EAGL surface 
has an alpha channel.
address@hidden EAGLView : UIView {
address@hidden
+    // The OpenGL ES names for the framebuffer and renderbuffer used to render 
to this view.
+    GLuint defaultFramebuffer, colorRenderbuffer;
+}
+
address@hidden (nonatomic, retain) EAGLContext *context;
+// The pixel dimensions of the CAEAGLLayer.
address@hidden (readonly) GLint framebufferWidth;
address@hidden (readonly) GLint framebufferHeight;
+
+- (void)setFramebuffer;
+- (BOOL)presentFramebuffer;
+
address@hidden

Index: video/EAGLView.m
===================================================================
RCS file: video/EAGLView.m
diff -N video/EAGLView.m
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/EAGLView.m    11 May 2011 16:25:09 -0000      1.1
@@ -0,0 +1,140 @@
+//
+//  EAGLView.m
+//  OpenGLES_iPhone
+//
+//  Created by mmalc Crawford on 11/18/10.
+//  Copyright 2010 Apple Inc. All rights reserved.
+//
+
+#import <QuartzCore/QuartzCore.h>
+
+#import "EAGLView.h"
+
address@hidden EAGLView (PrivateMethods)
+- (void)createFramebuffer;
+- (void)deleteFramebuffer;
address@hidden
+
address@hidden EAGLView
+
address@hidden context, framebufferWidth, framebufferHeight;
+
+// You must implement this method
++ (Class)layerClass
+{
+    return [CAEAGLLayer class];
+}
+
+//The EAGL view is stored in the nib file. When it's unarchived it's sent 
-initWithCoder:.
+- (id)initWithCoder:(NSCoder*)coder
+{
+    self = [super initWithCoder:coder];
+       if (self) {
+        CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer;
+        
+        eaglLayer.opaque = TRUE;
+        eaglLayer.drawableProperties = [NSDictionary 
dictionaryWithObjectsAndKeys:
+                                        [NSNumber numberWithBool:FALSE], 
kEAGLDrawablePropertyRetainedBacking,
+                                        kEAGLColorFormatRGBA8, 
kEAGLDrawablePropertyColorFormat,
+                                        nil];
+    }
+    
+    return self;
+}
+
+- (void)dealloc
+{
+    [self deleteFramebuffer];    
+    [context release];
+    
+    [super dealloc];
+}
+
+- (void)setContext:(EAGLContext *)newContext
+{
+    if (context != newContext) {
+        [self deleteFramebuffer];
+        
+        [context release];
+        context = [newContext retain];
+        
+        [EAGLContext setCurrentContext:nil];
+    }
+}
+
+- (void)createFramebuffer
+{
+    if (context && !defaultFramebuffer) {
+        [EAGLContext setCurrentContext:context];
+        
+        // Create default framebuffer object.
+        glGenFramebuffers(1, &defaultFramebuffer);
+        glBindFramebuffer(GL_FRAMEBUFFER, defaultFramebuffer);
+        
+        // Create color render buffer and allocate backing store.
+        glGenRenderbuffers(1, &colorRenderbuffer);
+        glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer);
+        [context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer 
*)self.layer];
+        glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, 
&framebufferWidth);
+        glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, 
&framebufferHeight);
+        
+        glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 
GL_RENDERBUFFER, colorRenderbuffer);
+        
+        if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != 
GL_FRAMEBUFFER_COMPLETE)
+            NSLog(@"Failed to make complete framebuffer object %x", 
glCheckFramebufferStatus(GL_FRAMEBUFFER));
+    }
+}
+
+- (void)deleteFramebuffer
+{
+    if (context) {
+        [EAGLContext setCurrentContext:context];
+        
+        if (defaultFramebuffer) {
+            glDeleteFramebuffers(1, &defaultFramebuffer);
+            defaultFramebuffer = 0;
+        }
+        
+        if (colorRenderbuffer) {
+            glDeleteRenderbuffers(1, &colorRenderbuffer);
+            colorRenderbuffer = 0;
+        }
+    }
+}
+
+- (void)setFramebuffer
+{
+    if (context) {
+        [EAGLContext setCurrentContext:context];
+        
+        if (!defaultFramebuffer)
+            [self createFramebuffer];
+        
+        glBindFramebuffer(GL_FRAMEBUFFER, defaultFramebuffer);
+        
+        glViewport(0, 0, framebufferWidth, framebufferHeight);
+    }
+}
+
+- (BOOL)presentFramebuffer
+{
+    BOOL success = FALSE;
+    
+    if (context) {
+        [EAGLContext setCurrentContext:context];
+        
+        glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer);
+        
+        success = [context presentRenderbuffer:GL_RENDERBUFFER];
+    }
+    
+    return success;
+}
+
+- (void)layoutSubviews
+{
+    // The framebuffer will be re-created at the beginning of the next 
setFramebuffer method call.
+    [self deleteFramebuffer];
+}
+
address@hidden

Index: video/main.m
===================================================================
RCS file: video/main.m
diff -N video/main.m
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/main.m        11 May 2011 16:25:09 -0000      1.1
@@ -0,0 +1,17 @@
+//
+//  main.m
+//  video
+//
+//  Created by Gerhard Reitmayr on 07/04/2011.
+//  Copyright 2011 TU Graz. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+int main(int argc, char *argv[])
+{
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+    int retVal = UIApplicationMain(argc, argv, nil, nil);
+    [pool release];
+    return retVal;
+}

Index: video/video-Info.plist
===================================================================
RCS file: video/video-Info.plist
diff -N video/video-Info.plist
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/video-Info.plist      11 May 2011 16:25:09 -0000      1.1
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
+<plist version="1.0">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>en</string>
+       <key>CFBundleDisplayName</key>
+       <string>${PRODUCT_NAME}</string>
+       <key>CFBundleExecutable</key>
+       <string>${EXECUTABLE_NAME}</string>
+       <key>CFBundleIconFile</key>
+       <string></string>
+       <key>CFBundleIdentifier</key>
+       <string>TUG.${PRODUCT_NAME:rfc1034identifier}</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>6.0</string>
+       <key>CFBundleName</key>
+       <string>${PRODUCT_NAME}</string>
+       <key>CFBundlePackageType</key>
+       <string>APPL</string>
+       <key>CFBundleShortVersionString</key>
+       <string>1.0</string>
+       <key>CFBundleSignature</key>
+       <string>????</string>
+       <key>CFBundleVersion</key>
+       <string>1.0</string>
+       <key>LSRequiresIPhoneOS</key>
+       <true/>
+       <key>NSMainNibFile</key>
+       <string>MainWindow</string>
+       <key>UIStatusBarHidden</key>
+       <true/>
+       <key>UISupportedInterfaceOrientations</key>
+       <array>
+               <string>UIInterfaceOrientationPortrait</string>
+               <string>UIInterfaceOrientationLandscapeLeft</string>
+               <string>UIInterfaceOrientationLandscapeRight</string>
+       </array>
+</dict>
+</plist>

Index: video/video-Prefix.pch
===================================================================
RCS file: video/video-Prefix.pch
diff -N video/video-Prefix.pch
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/video-Prefix.pch      11 May 2011 16:25:09 -0000      1.1
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'video' target in the 'video' 
project
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_3_0
+#warning "This project uses features only available in iPhone SDK 3.0 and 
later."
+#endif
+
+#ifdef __OBJC__
+    #import <UIKit/UIKit.h>
+    #import <Foundation/Foundation.h>
+#endif

Index: video/videoAppDelegate.h
===================================================================
RCS file: video/videoAppDelegate.h
diff -N video/videoAppDelegate.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/videoAppDelegate.h    11 May 2011 16:25:10 -0000      1.1
@@ -0,0 +1,21 @@
+//
+//  videoAppDelegate.h
+//  video
+//
+//  Created by Gerhard Reitmayr on 07/04/2011.
+//  Copyright 2011 TU Graz. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
address@hidden videoViewController;
+
address@hidden videoAppDelegate : NSObject <UIApplicationDelegate> {
+
+}
+
address@hidden (nonatomic, retain) IBOutlet UIWindow *window;
+
address@hidden (nonatomic, retain) IBOutlet videoViewController *viewController;
+
address@hidden

Index: video/videoAppDelegate.m
===================================================================
RCS file: video/videoAppDelegate.m
diff -N video/videoAppDelegate.m
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/videoAppDelegate.m    11 May 2011 16:25:10 -0000      1.1
@@ -0,0 +1,75 @@
+//
+//  videoAppDelegate.m
+//  video
+//
+//  Created by Gerhard Reitmayr on 07/04/2011.
+//  Copyright 2011 TU Graz. All rights reserved.
+//
+
+#import "videoAppDelegate.h"
+
+#import "EAGLView.h"
+
+#import "videoViewController.h"
+
address@hidden videoAppDelegate
+
+
address@hidden window=_window;
+
address@hidden viewController=_viewController;
+
+- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+    // Override point for customization after application launch.
+    self.window.rootViewController = self.viewController;
+    return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+    /*
+     Sent when the application is about to move from active to inactive state. 
This can occur for certain types of temporary interruptions (such as an 
incoming phone call or SMS message) or when the user quits the application and 
it begins the transition to the background state.
+     Use this method to pause ongoing tasks, disable timers, and throttle down 
OpenGL ES frame rates. Games should use this method to pause the game.
+     */
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+    /*
+     Use this method to release shared resources, save user data, invalidate 
timers, and store enough application state information to restore your 
application to its current state in case it is terminated later. 
+     If your application supports background execution, this method is called 
instead of applicationWillTerminate: when the user quits.
+     */
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+    /*
+     Called as part of the transition from the background to the inactive 
state; here you can undo many of the changes made on entering the background.
+     */
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+    /*
+     Restart any tasks that were paused (or not yet started) while the 
application was inactive. If the application was previously in the background, 
optionally refresh the user interface.
+     */
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+    /*
+     Called when the application is about to terminate.
+     Save data if appropriate.
+     See also applicationDidEnterBackground:.
+     */
+}
+
+- (void)dealloc
+{
+    [_window release];
+    [_viewController release];
+    [super dealloc];
+}
+
address@hidden

Index: video/videoViewController.h
===================================================================
RCS file: video/videoViewController.h
diff -N video/videoViewController.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/videoViewController.h 11 May 2011 16:25:10 -0000      1.1
@@ -0,0 +1,24 @@
+//
+//  videoViewController.h
+//  video
+//
+//  Created by Gerhard Reitmayr on 07/04/2011.
+//  Copyright 2011 TU Graz. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import <OpenGLES/EAGL.h>
+
+#import <OpenGLES/ES1/gl.h>
+#import <OpenGLES/ES1/glext.h>
+
+#import "Camera.h"
+
address@hidden videoViewController : UIViewController<CameraDelegate> {
address@hidden
+    EAGLContext *context;
+    Camera * camera;
+    GLuint videoFrameTexture;
+}
address@hidden

Index: video/videoViewController.m
===================================================================
RCS file: video/videoViewController.m
diff -N video/videoViewController.m
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/videoViewController.m 11 May 2011 16:25:10 -0000      1.1
@@ -0,0 +1,146 @@
+//
+//  videoViewController.m
+//  video
+//
+//  Created by Gerhard Reitmayr on 07/04/2011.
+//  Copyright 2011 TU Graz. All rights reserved.
+//
+
+#import <QuartzCore/QuartzCore.h>
+
+#import "videoViewController.h"
+#import "EAGLView.h"
+
address@hidden videoViewController ()
address@hidden (nonatomic, retain) EAGLContext *context;
address@hidden
+
address@hidden videoViewController
+
address@hidden context;
+
+- (void)awakeFromNib
+{
+    EAGLContext *aContext = [[EAGLContext alloc] 
initWithAPI:kEAGLRenderingAPIOpenGLES1];
+        
+    if (!aContext)
+        NSLog(@"Failed to create ES context");
+    else if (![EAGLContext setCurrentContext:aContext])
+        NSLog(@"Failed to set ES context current");
+    
+       self.context = aContext;
+       [aContext release];
+       
+    [(EAGLView *)self.view setContext:context];
+    [(EAGLView *)self.view setFramebuffer];
+
+    glGenTextures(1, &videoFrameTexture);
+    glBindTexture(GL_TEXTURE_2D, videoFrameTexture);
+       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+       // This is necessary for non-power-of-two textures
+       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+    camera = [[Camera alloc] init];
+       camera.delegate = self;    
+}
+
+- (void)dealloc
+{    
+    // Tear down context.
+    if ([EAGLContext currentContext] == context)
+        [EAGLContext setCurrentContext:nil];
+    
+    [context release];
+    [camera release];
+    [super dealloc];
+}
+
+- (void)didReceiveMemoryWarning
+{
+    // Releases the view if it doesn't have a superview.
+    [super didReceiveMemoryWarning];
+    
+    // Release any cached data, images, etc. that aren't in use.
+}
+
+- (void)viewDidUnload
+{
+       [super viewDidUnload];
+
+    // Tear down context.
+    if ([EAGLContext currentContext] == context)
+        [EAGLContext setCurrentContext:nil];
+       self.context = nil;     
+}
+
+- (void)drawFrame
+{
+    [(EAGLView *)self.view setFramebuffer];
+    
+    // Replace the implementation of this method to do your own custom drawing.
+    // Replace the implementation of this method to do your own custom drawing.
+    static const GLfloat squareVertices[] = {
+        0, 0,
+        320,0,
+        0, 240,
+        320, 240
+    };
+    
+       static const GLfloat textureVertices[] = {
+        0, 0,
+        1, 0,
+        0, 1,
+        1, 1
+    };
+    
+    glClear(GL_COLOR_BUFFER_BIT);
+    
+    glMatrixMode(GL_PROJECTION);
+    static const GLfloat proj[] = {
+        0, -1.f/180, 0, 0,
+        -1.f/120, 0, 0, 0,
+        0, 0, 1, 0,
+        1, 1, 0, 1
+    };
+    glLoadMatrixf(proj);
+    glMatrixMode(GL_MODELVIEW);
+    glLoadIdentity();
+    
+    glEnable(GL_TEXTURE_2D);
+    glBindTexture(GL_TEXTURE_2D, videoFrameTexture);
+    // Update attribute values.
+    glVertexPointer(2, GL_FLOAT, 0, squareVertices);
+    glEnableClientState(GL_VERTEX_ARRAY);
+    glTexCoordPointer(2, GL_FLOAT, 0, textureVertices);
+    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+    
+    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
+    
+    glDisableClientState(GL_VERTEX_ARRAY);
+    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+    glDisable(GL_TEXTURE_2D);
+    
+    [(EAGLView *)self.view presentFramebuffer];
+}
+
+- (void)processNewCameraFrame:(CVImageBufferRef)cameraFrame;
+{
+       CVPixelBufferLockBaseAddress(cameraFrame, 0);
+       int bufferHeight = CVPixelBufferGetHeight(cameraFrame);
+       int bufferWidth = CVPixelBufferGetWidth(cameraFrame);
+    
+       // Using BGRA extension to pull in video frame data directly
+       glBindTexture(GL_TEXTURE_2D, videoFrameTexture);
+       glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, bufferWidth, bufferHeight, 0, 
GL_BGRA, GL_UNSIGNED_BYTE, CVPixelBufferGetBaseAddress(cameraFrame));
+    
+    // do some vision stuff !
+    // release image data
+    CVPixelBufferUnlockBaseAddress(cameraFrame, 0);
+    // render video texture
+       [self drawFrame];
+}
+
+
address@hidden

Index: video/en.lproj/InfoPlist.strings
===================================================================
RCS file: video/en.lproj/InfoPlist.strings
diff -N video/en.lproj/InfoPlist.strings
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/en.lproj/InfoPlist.strings    11 May 2011 16:25:11 -0000      1.1
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+

Index: video/en.lproj/MainWindow.xib
===================================================================
RCS file: video/en.lproj/MainWindow.xib
diff -N video/en.lproj/MainWindow.xib
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/en.lproj/MainWindow.xib       11 May 2011 16:25:11 -0000      1.1
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+       <data>
+               <int key="IBDocument.SystemTarget">1056</int>
+               <string key="IBDocument.SystemVersion">10H574</string>
+               <string key="IBDocument.InterfaceBuilderVersion">1248</string>
+               <string key="IBDocument.AppKitVersion">1038.35</string>
+               <string key="IBDocument.HIToolboxVersion">461.00</string>
+               <object class="NSMutableDictionary" 
key="IBDocument.PluginVersions">
+                       <string 
key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+                       <string key="NS.object.0">106</string>
+               </object>
+               <object class="NSArray" 
key="IBDocument.IntegratedClassDependencies">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <string>IBUIWindow</string>
+                       <string>IBUICustomObject</string>
+                       <string>IBUIViewController</string>
+                       <string>IBProxyObject</string>
+               </object>
+               <object class="NSArray" key="IBDocument.PluginDependencies">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+               </object>
+               <object class="NSMutableDictionary" key="IBDocument.Metadata">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <object class="NSArray" key="dict.sortedKeys" id="0">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                       </object>
+                       <reference key="dict.values" ref="0"/>
+               </object>
+               <object class="NSMutableArray" key="IBDocument.RootObjects" 
id="1000">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <object class="IBProxyObject" id="841351856">
+                               <string 
key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+                               <string 
key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+                       </object>
+                       <object class="IBProxyObject" id="191355593">
+                               <string 
key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+                               <string 
key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+                       </object>
+                       <object class="IBUICustomObject" id="664661524">
+                               <string 
key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+                       </object>
+                       <object class="IBUIViewController" id="692423605">
+                               <string 
key="IBUINibName">videoViewController</string>
+                               <object class="IBUISimulatedOrientationMetrics" 
key="IBUISimulatedOrientationMetrics">
+                                       <int 
key="IBUIInterfaceOrientation">1</int>
+                                       <int key="interfaceOrientation">1</int>
+                               </object>
+                               <bool key="IBUIWantsFullScreenLayout">YES</bool>
+                               <string 
key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+                               <bool key="IBUIHorizontal">NO</bool>
+                       </object>
+                       <object class="IBUIWindow" id="380026005">
+                               <nil key="NSNextResponder"/>
+                               <int key="NSvFlags">1316</int>
+                               <object class="NSPSMatrix" key="NSFrameMatrix"/>
+                               <string key="NSFrameSize">{320, 460}</string>
+                               <object class="NSColor" 
key="IBUIBackgroundColor">
+                                       <int key="NSColorSpace">1</int>
+                                       <bytes key="NSRGB">MSAxIDEAA</bytes>
+                               </object>
+                               <bool 
key="IBUIClearsContextBeforeDrawing">NO</bool>
+                               <string 
key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+                               <bool key="IBUIVisibleAtLaunch">YES</bool>
+                               <bool key="IBUIResizesToFullScreen">YES</bool>
+                       </object>
+               </object>
+               <object class="IBObjectContainer" key="IBDocument.Objects">
+                       <object class="NSMutableArray" key="connectionRecords">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBConnectionRecord">
+                                       <object 
class="IBCocoaTouchOutletConnection" key="connection">
+                                               <string 
key="label">delegate</string>
+                                               <reference key="source" 
ref="841351856"/>
+                                               <reference key="destination" 
ref="664661524"/>
+                                       </object>
+                                       <int key="connectionID">4</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object 
class="IBCocoaTouchOutletConnection" key="connection">
+                                               <string 
key="label">window</string>
+                                               <reference key="source" 
ref="664661524"/>
+                                               <reference key="destination" 
ref="380026005"/>
+                                       </object>
+                                       <int key="connectionID">5</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object 
class="IBCocoaTouchOutletConnection" key="connection">
+                                               <string 
key="label">viewController</string>
+                                               <reference key="source" 
ref="664661524"/>
+                                               <reference key="destination" 
ref="692423605"/>
+                                       </object>
+                                       <int key="connectionID">11</int>
+                               </object>
+                       </object>
+                       <object class="IBMutableOrderedSet" key="objectRecords">
+                               <object class="NSArray" key="orderedObjects">
+                                       <bool 
key="EncodedWithXMLCoder">YES</bool>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">0</int>
+                                               <reference key="object" 
ref="0"/>
+                                               <reference key="children" 
ref="1000"/>
+                                               <nil key="parent"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2</int>
+                                               <reference key="object" 
ref="380026005"/>
+                                               <object class="NSMutableArray" 
key="children">
+                                                       <bool 
key="EncodedWithXMLCoder">YES</bool>
+                                               </object>
+                                               <reference key="parent" 
ref="0"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-1</int>
+                                               <reference key="object" 
ref="841351856"/>
+                                               <reference key="parent" 
ref="0"/>
+                                               <string key="objectName">File's 
Owner</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">3</int>
+                                               <reference key="object" 
ref="664661524"/>
+                                               <reference key="parent" 
ref="0"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-2</int>
+                                               <reference key="object" 
ref="191355593"/>
+                                               <reference key="parent" 
ref="0"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">10</int>
+                                               <reference key="object" 
ref="692423605"/>
+                                               <reference key="parent" 
ref="0"/>
+                                       </object>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" 
key="flattenedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool 
key="EncodedWithXMLCoder">YES</bool>
+                                       <string>-1.CustomClassName</string>
+                                       <string>-2.CustomClassName</string>
+                                       <string>10.CustomClassName</string>
+                                       
<string>10.IBEditorWindowLastContentRect</string>
+                                       <string>10.IBPluginDependency</string>
+                                       
<string>2.IBAttributePlaceholdersKey</string>
+                                       
<string>2.IBEditorWindowLastContentRect</string>
+                                       <string>2.IBPluginDependency</string>
+                                       <string>3.CustomClassName</string>
+                                       <string>3.IBPluginDependency</string>
+                               </object>
+                               <object class="NSMutableArray" 
key="dict.values">
+                                       <bool 
key="EncodedWithXMLCoder">YES</bool>
+                                       <string>UIApplication</string>
+                                       <string>UIResponder</string>
+                                       <string>videoViewController</string>
+                                       <string>{{415, 586}, {320, 
480}}</string>
+                                       
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+                                       <object class="NSMutableDictionary">
+                                               <bool 
key="EncodedWithXMLCoder">YES</bool>
+                                               <reference 
key="dict.sortedKeys" ref="0"/>
+                                               <reference key="dict.values" 
ref="0"/>
+                                       </object>
+                                       <string>{{228, 376}, {320, 
480}}</string>
+                                       
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+                                       <string>videoAppDelegate</string>
+                                       
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" 
key="unlocalizedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <reference key="dict.sortedKeys" ref="0"/>
+                               <reference key="dict.values" ref="0"/>
+                       </object>
+                       <nil key="activeLocalization"/>
+                       <object class="NSMutableDictionary" key="localizations">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <reference key="dict.sortedKeys" ref="0"/>
+                               <reference key="dict.values" ref="0"/>
+                       </object>
+                       <nil key="sourceID"/>
+                       <int key="maxID">11</int>
+               </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes"/>
+               <int key="IBDocument.localizationMode">0</int>
+               <string 
key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+               <object class="NSMutableDictionary" 
key="IBDocument.PluginDeclaredDevelopmentDependencies">
+                       <string 
key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+                       <integer value="3100" key="NS.object.0"/>
+               </object>
+               <bool 
key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+               <string 
key="IBDocument.LastKnownRelativeProjectPath">OpenGLES_iPhone.xcodeproj</string>
+               <int key="IBDocument.defaultPropertyAccessControl">3</int>
+               <string key="IBCocoaTouchPluginVersion">106</string>
+       </data>
+</archive>

Index: video/en.lproj/videoViewController.xib
===================================================================
RCS file: video/en.lproj/videoViewController.xib
diff -N video/en.lproj/videoViewController.xib
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video/en.lproj/videoViewController.xib      11 May 2011 16:25:11 -0000      
1.1
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+       <data>
+               <int key="IBDocument.SystemTarget">1024</int>
+               <string key="IBDocument.SystemVersion">10H574</string>
+               <string key="IBDocument.InterfaceBuilderVersion">1248</string>
+               <string key="IBDocument.AppKitVersion">1038.35</string>
+               <string key="IBDocument.HIToolboxVersion">461.00</string>
+               <object class="NSMutableDictionary" 
key="IBDocument.PluginVersions">
+                       <string 
key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+                       <string key="NS.object.0">106</string>
+               </object>
+               <object class="NSArray" 
key="IBDocument.IntegratedClassDependencies">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <string>IBProxyObject</string>
+                       <string>IBUIView</string>
+               </object>
+               <object class="NSArray" key="IBDocument.PluginDependencies">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+               </object>
+               <object class="NSMutableDictionary" key="IBDocument.Metadata">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <object class="NSArray" key="dict.sortedKeys" id="0">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                       </object>
+                       <reference key="dict.values" ref="0"/>
+               </object>
+               <object class="NSMutableArray" key="IBDocument.RootObjects" 
id="1000">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <object class="IBProxyObject" id="841351856">
+                               <string 
key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+                               <string 
key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+                       </object>
+                       <object class="IBProxyObject" id="371349661">
+                               <string 
key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+                               <string 
key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+                       </object>
+                       <object class="IBUIView" id="184854543">
+                               <reference key="NSNextResponder"/>
+                               <int key="NSvFlags">274</int>
+                               <string key="NSFrameSize">{320, 460}</string>
+                               <reference key="NSSuperview"/>
+                               <reference key="NSWindow"/>
+                               <reference key="NSNextKeyView"/>
+                               <object class="NSColor" 
key="IBUIBackgroundColor">
+                                       <int key="NSColorSpace">3</int>
+                                       <bytes key="NSWhite">MQA</bytes>
+                                       <object class="NSColorSpace" 
key="NSCustomColorSpace">
+                                               <int key="NSID">2</int>
+                                       </object>
+                               </object>
+                               <bool 
key="IBUIClearsContextBeforeDrawing">NO</bool>
+                               <string 
key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+                       </object>
+               </object>
+               <object class="IBObjectContainer" key="IBDocument.Objects">
+                       <object class="NSMutableArray" key="connectionRecords">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBConnectionRecord">
+                                       <object 
class="IBCocoaTouchOutletConnection" key="connection">
+                                               <string 
key="label">view</string>
+                                               <reference key="source" 
ref="841351856"/>
+                                               <reference key="destination" 
ref="184854543"/>
+                                       </object>
+                                       <int key="connectionID">3</int>
+                               </object>
+                       </object>
+                       <object class="IBMutableOrderedSet" key="objectRecords">
+                               <object class="NSArray" key="orderedObjects">
+                                       <bool 
key="EncodedWithXMLCoder">YES</bool>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">0</int>
+                                               <reference key="object" 
ref="0"/>
+                                               <reference key="children" 
ref="1000"/>
+                                               <nil key="parent"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-1</int>
+                                               <reference key="object" 
ref="841351856"/>
+                                               <reference key="parent" 
ref="0"/>
+                                               <string key="objectName">File's 
Owner</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-2</int>
+                                               <reference key="object" 
ref="371349661"/>
+                                               <reference key="parent" 
ref="0"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2</int>
+                                               <reference key="object" 
ref="184854543"/>
+                                               <reference key="parent" 
ref="0"/>
+                                       </object>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" 
key="flattenedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool 
key="EncodedWithXMLCoder">YES</bool>
+                                       <string>-1.CustomClassName</string>
+                                       <string>-2.CustomClassName</string>
+                                       <string>2.CustomClassName</string>
+                                       
<string>2.IBEditorWindowLastContentRect</string>
+                                       <string>2.IBPluginDependency</string>
+                               </object>
+                               <object class="NSMutableArray" 
key="dict.values">
+                                       <bool 
key="EncodedWithXMLCoder">YES</bool>
+                                       <string>videoViewController</string>
+                                       <string>UIResponder</string>
+                                       <string>EAGLView</string>
+                                       <string>{{401, 662}, {320, 
460}}</string>
+                                       
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" 
key="unlocalizedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <reference key="dict.sortedKeys" ref="0"/>
+                               <reference key="dict.values" ref="0"/>
+                       </object>
+                       <nil key="activeLocalization"/>
+                       <object class="NSMutableDictionary" key="localizations">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <reference key="dict.sortedKeys" ref="0"/>
+                               <reference key="dict.values" ref="0"/>
+                       </object>
+                       <nil key="sourceID"/>
+                       <int key="maxID">4</int>
+               </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes"/>
+               <int key="IBDocument.localizationMode">0</int>
+               <string 
key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+               <object class="NSMutableDictionary" 
key="IBDocument.PluginDeclaredDependencyDefaults">
+                       <string 
key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+                       <integer value="1024" key="NS.object.0"/>
+               </object>
+               <object class="NSMutableDictionary" 
key="IBDocument.PluginDeclaredDevelopmentDependencies">
+                       <string 
key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+                       <integer value="3100" key="NS.object.0"/>
+               </object>
+               <bool 
key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+               <string 
key="IBDocument.LastKnownRelativeProjectPath">Untitled.xcodeproj</string>
+               <int key="IBDocument.defaultPropertyAccessControl">3</int>
+               <string key="IBCocoaTouchPluginVersion">106</string>
+       </data>
+</archive>

Index: video.xcodeproj/project.pbxproj
===================================================================
RCS file: video.xcodeproj/project.pbxproj
diff -N video.xcodeproj/project.pbxproj
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ video.xcodeproj/project.pbxproj     11 May 2011 16:25:11 -0000      1.1
@@ -0,0 +1,320 @@
+// !$*UTF8*$!
+{
+       archiveVersion = 1;
+       classes = {
+       };
+       objectVersion = 46;
+       objects = {
+
+/* Begin PBXBuildFile section */
+               A361D5CA134DC1A400B594C3 /* UIKit.framework in Frameworks */ = 
{isa = PBXBuildFile; fileRef = A361D5C9134DC1A400B594C3 /* UIKit.framework */; 
};
+               A361D5CC134DC1A400B594C3 /* Foundation.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = A361D5CB134DC1A400B594C3 /* 
Foundation.framework */; };
+               A361D5CE134DC1A400B594C3 /* CoreGraphics.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = A361D5CD134DC1A400B594C3 /* 
CoreGraphics.framework */; };
+               A361D5D0134DC1A400B594C3 /* QuartzCore.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = A361D5CF134DC1A400B594C3 /* 
QuartzCore.framework */; };
+               A361D5D2134DC1A400B594C3 /* OpenGLES.framework in Frameworks */ 
= {isa = PBXBuildFile; fileRef = A361D5D1134DC1A400B594C3 /* OpenGLES.framework 
*/; };
+               A361D5D8134DC1A400B594C3 /* InfoPlist.strings in Resources */ = 
{isa = PBXBuildFile; fileRef = A361D5D6134DC1A400B594C3 /* InfoPlist.strings 
*/; };
+               A361D5DB134DC1A400B594C3 /* main.m in Sources */ = {isa = 
PBXBuildFile; fileRef = A361D5DA134DC1A400B594C3 /* main.m */; };
+               A361D5DE134DC1A400B594C3 /* videoAppDelegate.m in Sources */ = 
{isa = PBXBuildFile; fileRef = A361D5DD134DC1A400B594C3 /* videoAppDelegate.m 
*/; };
+               A361D5E1134DC1A400B594C3 /* MainWindow.xib in Resources */ = 
{isa = PBXBuildFile; fileRef = A361D5DF134DC1A400B594C3 /* MainWindow.xib */; };
+               A361D5E8134DC1A400B594C3 /* EAGLView.m in Sources */ = {isa = 
PBXBuildFile; fileRef = A361D5E7134DC1A400B594C3 /* EAGLView.m */; };
+               A361D5EB134DC1A400B594C3 /* videoViewController.m in Sources */ 
= {isa = PBXBuildFile; fileRef = A361D5EA134DC1A400B594C3 /* 
videoViewController.m */; };
+               A361D5EE134DC1A400B594C3 /* videoViewController.xib in 
Resources */ = {isa = PBXBuildFile; fileRef = A361D5EC134DC1A400B594C3 /* 
videoViewController.xib */; };
+               A361D5F6134DC1DA00B594C3 /* Camera.m in Sources */ = {isa = 
PBXBuildFile; fileRef = A361D5F5134DC1DA00B594C3 /* Camera.m */; };
+               A361D5FF134E4D3D00B594C3 /* AVFoundation.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = A361D5FE134E4D3D00B594C3 /* 
AVFoundation.framework */; };
+               A361D601134E4D5000B594C3 /* CoreVideo.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = A361D600134E4D5000B594C3 /* 
CoreVideo.framework */; };
+               A361D603134E4D5B00B594C3 /* CoreMedia.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = A361D602134E4D5B00B594C3 /* 
CoreMedia.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+               A361D5C5134DC1A400B594C3 /* video.app */ = {isa = 
PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; 
path = video.app; sourceTree = BUILT_PRODUCTS_DIR; };
+               A361D5C9134DC1A400B594C3 /* UIKit.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = 
SDKROOT; };
+               A361D5CB134DC1A400B594C3 /* Foundation.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
Foundation.framework; path = System/Library/Frameworks/Foundation.framework; 
sourceTree = SDKROOT; };
+               A361D5CD134DC1A400B594C3 /* CoreGraphics.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
CoreGraphics.framework; path = 
System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+               A361D5CF134DC1A400B594C3 /* QuartzCore.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; 
sourceTree = SDKROOT; };
+               A361D5D1134DC1A400B594C3 /* OpenGLES.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; 
sourceTree = SDKROOT; };
+               A361D5D5134DC1A400B594C3 /* video-Info.plist */ = {isa = 
PBXFileReference; lastKnownFileType = text.plist.xml; path = 
"video-Info.plist"; sourceTree = "<group>"; };
+               A361D5D7134DC1A400B594C3 /* en */ = {isa = PBXFileReference; 
lastKnownFileType = text.plist.strings; name = en; path = 
en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+               A361D5D9134DC1A400B594C3 /* video-Prefix.pch */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = 
"video-Prefix.pch"; sourceTree = "<group>"; };
+               A361D5DA134DC1A400B594C3 /* main.m */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; 
sourceTree = "<group>"; };
+               A361D5DC134DC1A400B594C3 /* videoAppDelegate.h */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = 
videoAppDelegate.h; sourceTree = "<group>"; };
+               A361D5DD134DC1A400B594C3 /* videoAppDelegate.m */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = 
videoAppDelegate.m; sourceTree = "<group>"; };
+               A361D5E0134DC1A400B594C3 /* en */ = {isa = PBXFileReference; 
lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; 
sourceTree = "<group>"; };
+               A361D5E6134DC1A400B594C3 /* EAGLView.h */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EAGLView.h; 
sourceTree = "<group>"; };
+               A361D5E7134DC1A400B594C3 /* EAGLView.m */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EAGLView.m; 
sourceTree = "<group>"; };
+               A361D5E9134DC1A400B594C3 /* videoViewController.h */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = 
videoViewController.h; sourceTree = "<group>"; };
+               A361D5EA134DC1A400B594C3 /* videoViewController.m */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = 
videoViewController.m; sourceTree = "<group>"; };
+               A361D5ED134DC1A400B594C3 /* en */ = {isa = PBXFileReference; 
lastKnownFileType = file.xib; name = en; path = 
en.lproj/videoViewController.xib; sourceTree = "<group>"; };
+               A361D5F4134DC1DA00B594C3 /* Camera.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
Camera.h; sourceTree = "<group>"; };
+               A361D5F5134DC1DA00B594C3 /* Camera.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= Camera.m; sourceTree = "<group>"; };
+               A361D5FE134E4D3D00B594C3 /* AVFoundation.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
AVFoundation.framework; path = 
System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
+               A361D600134E4D5000B594C3 /* CoreVideo.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; 
sourceTree = SDKROOT; };
+               A361D602134E4D5B00B594C3 /* CoreMedia.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; 
sourceTree = SDKROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+               A361D5C2134DC1A400B594C3 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               A361D603134E4D5B00B594C3 /* CoreMedia.framework 
in Frameworks */,
+                               A361D601134E4D5000B594C3 /* CoreVideo.framework 
in Frameworks */,
+                               A361D5FF134E4D3D00B594C3 /* 
AVFoundation.framework in Frameworks */,
+                               A361D5CA134DC1A400B594C3 /* UIKit.framework in 
Frameworks */,
+                               A361D5CC134DC1A400B594C3 /* 
Foundation.framework in Frameworks */,
+                               A361D5CE134DC1A400B594C3 /* 
CoreGraphics.framework in Frameworks */,
+                               A361D5D0134DC1A400B594C3 /* 
QuartzCore.framework in Frameworks */,
+                               A361D5D2134DC1A400B594C3 /* OpenGLES.framework 
in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+               A361D5BA134DC1A400B594C3 = {
+                       isa = PBXGroup;
+                       children = (
+                               A361D5D3134DC1A400B594C3 /* video */,
+                               A361D5C8134DC1A400B594C3 /* Frameworks */,
+                               A361D5C6134DC1A400B594C3 /* Products */,
+                       );
+                       sourceTree = "<group>";
+               };
+               A361D5C6134DC1A400B594C3 /* Products */ = {
+                       isa = PBXGroup;
+                       children = (
+                               A361D5C5134DC1A400B594C3 /* video.app */,
+                       );
+                       name = Products;
+                       sourceTree = "<group>";
+               };
+               A361D5C8134DC1A400B594C3 /* Frameworks */ = {
+                       isa = PBXGroup;
+                       children = (
+                               A361D602134E4D5B00B594C3 /* CoreMedia.framework 
*/,
+                               A361D600134E4D5000B594C3 /* CoreVideo.framework 
*/,
+                               A361D5FE134E4D3D00B594C3 /* 
AVFoundation.framework */,
+                               A361D5C9134DC1A400B594C3 /* UIKit.framework */,
+                               A361D5CB134DC1A400B594C3 /* 
Foundation.framework */,
+                               A361D5CD134DC1A400B594C3 /* 
CoreGraphics.framework */,
+                               A361D5CF134DC1A400B594C3 /* 
QuartzCore.framework */,
+                               A361D5D1134DC1A400B594C3 /* OpenGLES.framework 
*/,
+                       );
+                       name = Frameworks;
+                       sourceTree = "<group>";
+               };
+               A361D5D3134DC1A400B594C3 /* video */ = {
+                       isa = PBXGroup;
+                       children = (
+                               A361D5F4134DC1DA00B594C3 /* Camera.h */,
+                               A361D5F5134DC1DA00B594C3 /* Camera.m */,
+                               A361D5DC134DC1A400B594C3 /* videoAppDelegate.h 
*/,
+                               A361D5DD134DC1A400B594C3 /* videoAppDelegate.m 
*/,
+                               A361D5DF134DC1A400B594C3 /* MainWindow.xib */,
+                               A361D5E6134DC1A400B594C3 /* EAGLView.h */,
+                               A361D5E7134DC1A400B594C3 /* EAGLView.m */,
+                               A361D5E9134DC1A400B594C3 /* 
videoViewController.h */,
+                               A361D5EA134DC1A400B594C3 /* 
videoViewController.m */,
+                               A361D5EC134DC1A400B594C3 /* 
videoViewController.xib */,
+                               A361D5D4134DC1A400B594C3 /* Supporting Files */,
+                       );
+                       path = video;
+                       sourceTree = "<group>";
+               };
+               A361D5D4134DC1A400B594C3 /* Supporting Files */ = {
+                       isa = PBXGroup;
+                       children = (
+                               A361D5D5134DC1A400B594C3 /* video-Info.plist */,
+                               A361D5D6134DC1A400B594C3 /* InfoPlist.strings 
*/,
+                               A361D5D9134DC1A400B594C3 /* video-Prefix.pch */,
+                               A361D5DA134DC1A400B594C3 /* main.m */,
+                       );
+                       name = "Supporting Files";
+                       sourceTree = "<group>";
+               };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+               A361D5C4134DC1A400B594C3 /* video */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = A361D5F1134DC1A400B594C3 /* 
Build configuration list for PBXNativeTarget "video" */;
+                       buildPhases = (
+                               A361D5C1134DC1A400B594C3 /* Sources */,
+                               A361D5C2134DC1A400B594C3 /* Frameworks */,
+                               A361D5C3134DC1A400B594C3 /* Resources */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = video;
+                       productName = video;
+                       productReference = A361D5C5134DC1A400B594C3 /* 
video.app */;
+                       productType = "com.apple.product-type.application";
+               };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+               A361D5BC134DC1A400B594C3 /* Project object */ = {
+                       isa = PBXProject;
+                       attributes = {
+                               ORGANIZATIONNAME = "TU Graz";
+                       };
+                       buildConfigurationList = A361D5BF134DC1A400B594C3 /* 
Build configuration list for PBXProject "video" */;
+                       compatibilityVersion = "Xcode 3.2";
+                       developmentRegion = English;
+                       hasScannedForEncodings = 0;
+                       knownRegions = (
+                               en,
+                       );
+                       mainGroup = A361D5BA134DC1A400B594C3;
+                       productRefGroup = A361D5C6134DC1A400B594C3 /* Products 
*/;
+                       projectDirPath = "";
+                       projectRoot = "";
+                       targets = (
+                               A361D5C4134DC1A400B594C3 /* video */,
+                       );
+               };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+               A361D5C3134DC1A400B594C3 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               A361D5D8134DC1A400B594C3 /* InfoPlist.strings 
in Resources */,
+                               A361D5E1134DC1A400B594C3 /* MainWindow.xib in 
Resources */,
+                               A361D5EE134DC1A400B594C3 /* 
videoViewController.xib in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+               A361D5C1134DC1A400B594C3 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               A361D5DB134DC1A400B594C3 /* main.m in Sources 
*/,
+                               A361D5DE134DC1A400B594C3 /* videoAppDelegate.m 
in Sources */,
+                               A361D5E8134DC1A400B594C3 /* EAGLView.m in 
Sources */,
+                               A361D5EB134DC1A400B594C3 /* 
videoViewController.m in Sources */,
+                               A361D5F6134DC1DA00B594C3 /* Camera.m in Sources 
*/,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+               A361D5D6134DC1A400B594C3 /* InfoPlist.strings */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               A361D5D7134DC1A400B594C3 /* en */,
+                       );
+                       name = InfoPlist.strings;
+                       sourceTree = "<group>";
+               };
+               A361D5DF134DC1A400B594C3 /* MainWindow.xib */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               A361D5E0134DC1A400B594C3 /* en */,
+                       );
+                       name = MainWindow.xib;
+                       sourceTree = "<group>";
+               };
+               A361D5EC134DC1A400B594C3 /* videoViewController.xib */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               A361D5ED134DC1A400B594C3 /* en */,
+                       );
+                       name = videoViewController.xib;
+                       sourceTree = "<group>";
+               };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+               A361D5EF134DC1A400B594C3 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone 
Developer";
+                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+                               GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+                               GCC_VERSION = com.apple.compilers.llvmgcc42;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+                               SDKROOT = iphoneos;
+                       };
+                       name = Debug;
+               };
+               A361D5F0134DC1A400B594C3 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone 
Developer";
+                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_VERSION = com.apple.compilers.llvmgcc42;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+                               OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+                               SDKROOT = iphoneos;
+                       };
+                       name = Release;
+               };
+               A361D5F2134DC1A400B594C3 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               COPY_PHASE_STRIP = NO;
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "video/video-Prefix.pch";
+                               "GCC_THUMB_SUPPORT[arch=armv6]" = "";
+                               INFOPLIST_FILE = "video/video-Info.plist";
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               WRAPPER_EXTENSION = app;
+                       };
+                       name = Debug;
+               };
+               A361D5F3134DC1A400B594C3 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               COPY_PHASE_STRIP = YES;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "video/video-Prefix.pch";
+                               "GCC_THUMB_SUPPORT[arch=armv6]" = "";
+                               INFOPLIST_FILE = "video/video-Info.plist";
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               VALIDATE_PRODUCT = YES;
+                               WRAPPER_EXTENSION = app;
+                       };
+                       name = Release;
+               };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+               A361D5BF134DC1A400B594C3 /* Build configuration list for 
PBXProject "video" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               A361D5EF134DC1A400B594C3 /* Debug */,
+                               A361D5F0134DC1A400B594C3 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               A361D5F1134DC1A400B594C3 /* Build configuration list for 
PBXNativeTarget "video" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               A361D5F2134DC1A400B594C3 /* Debug */,
+                               A361D5F3134DC1A400B594C3 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+               };
+/* End XCConfigurationList section */
+       };
+       rootObject = A361D5BC134DC1A400B594C3 /* Project object */;
+}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]