0

I have a little application here which deals with QuickTime video using QTKit. This is my first Cocoa app, so I'm still pretty new to programming for OS X.

As the main stuff is now working, I was wondering how I could use and support external video hardware? I just don't have a clue how to get started as I have never worked with external hardware before.

So, if there is a BlackMagic card installed in the machine the program is running on for example, how would I get to know that and how would I possibly have my QuickTime movie played out on this card instead of a QTMovieView on the computer monitor?

Would be glad if someone could point me a direction! Thank you very much.

guitarflow
  • 2,930
  • 25
  • 38

1 Answers1

1

The kind of graphics cards you have installed shouldn't matter to QTKit when it comes to playing things back (it might look smoother and sexier to you, but to what you call in the operating system it doesn't matter).

To display content on a second monitor (or "external hardware", as you call it), you can get information on the various screens hooked to your Macintosh by calling [NSScreen screens]. Take a look at the rest of the NSScreen reference, too.

And once you get the hang of that, you can decide if you want to do full screen on the deepest screen (presumably the one with your expensive graphics card), or if you want to render on the largest screen (which you can determine from NSScreen's "frame" method), or the screen that isn't the "main screen" with the menu bar.

There's also lower level stuff available for you to use in Quartz. Here is Apple's "Quartz Display Services Reference" guide. I'd only recommend going this route when you feel sufficiently smart with Macintosh program to go deeper.

Hope this helps you out!

Michael Dautermann
  • 88,797
  • 17
  • 166
  • 215
  • Is a multi-thousand dollar video card actually really nothing more than a second monitor to the system? I am really talking about professional stuff here, so not a GeForce or something like that ;-) As I said, I'm a noob in this field, just thought this would be much more complex – guitarflow Nov 26 '11 at 12:43
  • Well I am simplifying things somewhat, but essentially the answer is YES. The GPU on the card is what's taking care of actually rendering what the computer tells it to. So a multi-thousand dollar video card will do things faster and more smoothly (in addition to having richer features & detail available to it) than a generic video card. But for the purposes of your app, the answers I gave you up there are really all you need to get well underway to a very polished app. – Michael Dautermann Nov 26 '11 at 12:45
  • Thanks! I just saw that DeckLink offers a pretty mighty SDK ( 250 pages of PDF documentation ) for developers. Do you think that I need to get into this if I just need "basic" functionality? – guitarflow Nov 26 '11 at 12:53
  • For "basic" functionality like playing video, **heck no**! If you want to to crazy OpenGL stuff that would stress out a card's GPU, then my answer would change to "possibly". – Michael Dautermann Nov 26 '11 at 12:55
  • So, that means, that I have to get into the complete SDK for each card manufacturer to actually "support" the hardware in terms of being able to play out video through it? – guitarflow Nov 26 '11 at 14:14