Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add support to QuickTime for custom video-input hardware

I have a custom hardware device sending a video stream.

How can make this stream available to a QuickTime application ?

Long story: On Windows, I create a DirectShow filter, so any DirectShow-compatible application can stream from my device. I'd like to do the same on Mac OS X. I guess QuickTime is the way to go, but I can't find the accurate answer on the apple developer web site.

like image 459
Julien Avatar asked Nov 08 '11 11:11

Julien


1 Answers

With Mac OS 10.7 Apple made the CoreMediaIO.framework public.
CoreMediaIO is a device abstraction layer (DAL) for multimedia hardware. It replaces the traditional QuickTime VDIG component API.
There is a small section about this framework in the "Media Layer" chapter of the Mac OS X Technology Overview.

Unfortunately CoreMediaIO isn't showing up in Apple's documentation yet, but it has some very detailed header files.
They are located in:

/System/Library/Frameworks/CoreMediaIO.framework/Headers

CMIOHardware seems to be a good starting point (from the "Overview" section in the header):

The CoreMediaIO device abstraction layer (DAL) provides an abstraction through which applications can access media hardware. To do this, the DAL provides a small set of objects that provide access to the various pieces of the system. The base class for all CoreMediaIO objects is the class CMIOObject. Other important classes include CMIOSystemObject, CMIODevice, CMIOStream, and CMIOControl.


If you have to support older versions of OS X, you could also take a look at what the Developer Library has to offer.
VDIG Components are deprecated and 32bit-only.

like image 176
Thomas Zoechling Avatar answered Sep 18 '22 11:09

Thomas Zoechling