Having some strange Quartz Builder issues

morganb's picture

I'm having some strange problems with Quartz Builder. I'm trying to do something dead simple, a looping video in a quartz composition running as a fullscreen application. I did something like this that was a bit more complicated with multiple movie files and it worked.

I have my movie going into a billboard, it runs perfectly fine in QC using the QB template. I set all the things I need, window level, fullscreen, etc... but when I build the application, I just get a black screen. When I hit escape I see a slight afterimage of the movie for a moment. It's as if something is covering the composition... it's very strange.

any obvious things I'm doing wrong? It should be very simple, but it's totally breaking. I checked the contents of the app and the movie file resource got copied there upon building the app.

basic things I have enabled in QC Fullscreen Hide Mouse Window Level: Screensaver (have tried different ones to no effect)

any thoughts or help would be great!

Thanks!

Morgan

I attached the comp with no movie file

PreviewAttachmentSize
art41 reel.qtz51.1 KB

smokris's picture
Re: Having some strange Quartz Builder issues

@morganb: QC's built-in Movie Importer patch is incompatible with QuartzBuilder --- the patch behaves erratically when it's not executed from thread zero; QuartzBuilder applications render from a nonzero thread for better performance.

We developed Kineme VideoTools, in part, to work around this. Users have also reported success with @vade's v002 Movie Player.

jrs's picture
Re: Having some strange Quartz Builder issues

Is this something special QB does or would it be the same for all custom cocoa wrappers?

smokris's picture
Re: Having some strange Quartz Builder issues

This applies, at least, to any application driving a QCRenderer with a CVDisplayLink.

morganb's picture
Re: Having some strange Quartz Builder issues

Thanks for the info on this. I tried the v002 Movie Player and I'm not getting much luck there either. So pretty much the way to get video into Quartz Builder is to purchase Video Tools? This is such a simple movie looping kiosk I'm doing I think I'll just make a screen saver.

thanks! M

gtoledo3's picture
Re: Having some strange Quartz Builder issues

See if cwright's QCFullscreen will work for you. It uses a QCView, so there might be other issues, but probably not a problem for your needs. QCView should work with the movie loader and also keep vsync in check when using the unlimited fps setting (what most projects that use QCView do).

CVDisplayLink is a way of controlling the drawing to screen, so that it opts into a process that eliminates vsync tearing by "knowing" the refresh rate of the current display. I've seen some comments about it also optimizing the responsiveness of GUI stuff, but I think that's urban myth - if someone has some docs on that, please share.

(some background:

http://lists.apple.com/archives/mac-opengl/2009/Oct/msg00022.html

https://developer.apple.com/library/mac/#qa/qa2004/qa1385.html )

So, another approach that wouldn't use QCView or CVDisplay link would be to create one or more NSRunLoops to set timer framerate(s), then using NSTimer while setting the kCGLCPSwapInterval of the OpenGL Context would be another way to approach setting up something to run qtz's that happens to work with the built in movie loader, and won't have vsync tear.

I don't want to come off as definitive about it, these are just my observations.