[Top][All Lists]
[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 */;
+}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libcvd-members] libcvd/progs/video_iOS video/Camera.h video/Cam...,
Gerhard Reitmayr <=