ofxImageSequenceRecorder on OSX with v0.8.3

I’m getting all kinds of errors when trying to build the ofxImageSequenceRecorder example on OSX with openFrameworks v0.8.3. Is this addon simply not supported for v0.8.0 and up? The ofxAddons site suggests its working with ~0.8.0 and Ive seen some recent GitHub activities and pull requests. I’m currently using mosboston’s fork, as it looks the newest. If there are no new versions, what would be the quickest fix or work around to save a sequence of ofImages to a movie file?

Thanks!

Here are the errors that I am getting

Undefined symbols for architecture i386:
“_CVDisplayLinkGetNominalOutputVideoRefreshPeriod”, referenced from:
_vidmodeFromCGDisplayMode in libglfw3.a(cocoa_monitor.m.o)
“_kCVPixelBufferWidthKey”, referenced from:
-[QTKitVideoGrabber initWithWidth:height:videodevice:audiodevice:usingAudio:capturePixels:pixelsRef:] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_QTMediaTypeMuxed”, referenced from:
+[QTKitVideoGrabber listVideoDevices] in openFrameworksDebug.a(ofQTKitGrabber.o)
-[QTKitVideoGrabber setVideoDeviceID:] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_CVDisplayLinkRelease”, referenced from:
__glfwSetVideoMode in libglfw3.a(cocoa_monitor.m.o)
__glfwPlatformGetVideoMode in libglfw3.a(cocoa_monitor.m.o)
__glfwPlatformGetVideoModes in libglfw3.a(cocoa_monitor.m.o)
“_CVPixelBufferGetBytesPerRow”, referenced from:
-[QTKitVideoGrabber update] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_CVPixelBufferGetBaseAddress”, referenced from:
-[QTKitVideoGrabber update] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_kCVPixelBufferOpenGLCompatibilityKey”, referenced from:
-[QTKitVideoGrabber initWithWidth:height:videodevice:audiodevice:usingAudio:capturePixels:pixelsRef:] in openFrameworksDebug.a(ofQTKitGrabber.o)
“.objc_class_name_QTCompressionOptions”, referenced from:
pointer-to-literal-objc-class-name in openFrameworksDebug.a(ofQTKitGrabber.o)
“_CVPixelBufferRelease”, referenced from:
-[QTKitVideoGrabber dealloc] in openFrameworksDebug.a(ofQTKitGrabber.o)
“.objc_class_name_QTCaptureMovieFileOutput”, referenced from:
pointer-to-literal-objc-class-name in openFrameworksDebug.a(ofQTKitGrabber.o)
“.objc_class_name_QTCaptureVideoPreviewOutput”, referenced from:
.objc_class_name_QTKitVideoGrabber in openFrameworksDebug.a(ofQTKitGrabber.o)
“.objc_class_name_QTCaptureDeviceInput”, referenced from:
pointer-to-literal-objc-class-name in openFrameworksDebug.a(ofQTKitGrabber.o)
“_kCVPixelBufferPixelFormatTypeKey”, referenced from:
-[QTKitVideoGrabber initWithWidth:height:videodevice:audiodevice:usingAudio:capturePixels:pixelsRef:] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_kCVPixelBufferHeightKey”, referenced from:
-[QTKitVideoGrabber initWithWidth:height:videodevice:audiodevice:usingAudio:capturePixels:pixelsRef:] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_QTMediaTypeVideo”, referenced from:
+[QTKitVideoGrabber listVideoDevices] in openFrameworksDebug.a(ofQTKitGrabber.o)
-[QTKitVideoGrabber setVideoDeviceID:] in openFrameworksDebug.a(ofQTKitGrabber.o)
+[QTKitVideoGrabber listVideoCodecs] in openFrameworksDebug.a(ofQTKitGrabber.o)
-[QTKitVideoGrabber setVideoCodec:] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_CVPixelBufferLockBaseAddress”, referenced from:
-[QTKitVideoGrabber update] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_CVBufferRetain”, referenced from:
-[QTKitVideoGrabber outputVideoFrame:withSampleBuffer:fromConnection:] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_QTMediaTypeSound”, referenced from:
+[QTKitVideoGrabber listAudioDevices] in openFrameworksDebug.a(ofQTKitGrabber.o)
-[QTKitVideoGrabber setAudioDeviceID:] in openFrameworksDebug.a(ofQTKitGrabber.o)
+[QTKitVideoGrabber listAudioCodecs] in openFrameworksDebug.a(ofQTKitGrabber.o)
-[QTKitVideoGrabber setAudioCodec:] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_CVPixelBufferGetWidth”, referenced from:
-[QTKitVideoGrabber update] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_vImageConvert_BGRA8888toRGB888”, referenced from:
-[QTKitVideoGrabber update] in openFrameworksDebug.a(ofQTKitGrabber.o)
“.objc_class_name_QTCaptureDevice”, referenced from:
pointer-to-literal-objc-class-name in openFrameworksDebug.a(ofQTKitGrabber.o)
“_CVPixelBufferGetHeight”, referenced from:
-[QTKitVideoGrabber update] in openFrameworksDebug.a(ofQTKitGrabber.o)
“_CVPixelBufferUnlockBaseAddress”, referenced from:
-[QTKitVideoGrabber update] in openFrameworksDebug.a(ofQTKitGrabber.o)
“.objc_class_name_QTCaptureSession”, referenced from:
pointer-to-literal-objc-class-name in openFrameworksDebug.a(ofQTKitGrabber.o)
“_CVDisplayLinkCreateWithCGDisplay”, referenced from:
__glfwSetVideoMode in libglfw3.a(cocoa_monitor.m.o)
__glfwPlatformGetVideoMode in libglfw3.a(cocoa_monitor.m.o)
__glfwPlatformGetVideoModes in libglfw3.a(cocoa_monitor.m.o)
“_CVBufferRelease”, referenced from:
-[QTKitVideoGrabber outputVideoFrame:withSampleBuffer:fromConnection:] in openFrameworksDebug.a(ofQTKitGrabber.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

did you link coreVideo framework

1 Like

I simply ran the example that was in the cloned directory. What core library needs to be linked? Would I just add it to the header search paths of the project?

Click on the project in the Navigator, the go to buildPhases->link with binary Libraries -> click the plus sign -> add coreVideo.framework. The header search path should be included automatically.

93% of the time linking problems in addons in Xcode can be fixed by regenerating the project files using project generator. Stuff changes a lot in the core and some addons don’t keep their project files up to date.

Alternatively build it with the makefile system. :smile:

1 Like

Adding the Makefiles did the trick! With the core project generator, is it a viable working method to overwrite a current project to update its .xcodeproj but maintain the source files?