1

I am planning to write an application (C/C++/Objective-C) that will play media files in own (private) container format. The files will contain: multiple video streams, encoded by a video codec (like XVid or H264, it is supposed, that components capable of decoding the viideo formats are present in the system); multiple audio streams in some compressed formats (it is supposed, that decoding will be performed by a system component or by own code).

So, it seems it is required to implement the following scheme:

1) Implement container demuxer (may be in the form of media handler component).

2) Pass video frames to a video decoder component, and mix decompressed frames (using some own rules).

3) Pass audio data to an audio decoder component, or decompress the audio by own code, and mix decoded audio data.

4) Render video frames to a window.

5) Pass audio data to a selected audio board.

Could anybody provide tips to any of the above stages, that is: toolkits, that I should use; useful samples; may be names of functions to be used; may be improvements to the scheme,....

VitalyVal
  • 1,320
  • 12
  • 13
  • There is only one framework you need to know to do that: QuickTime. For a start you should read the QuickTime documentation. And then you really should think about wether you really want to do your own container… – Sven Sep 30 '10 at 20:05
  • Thanks. 1) Yes, the own container is required (indeed, files in that container are wtitten by another software on Windows OS, and now I will try to write Mac OS X player for such files). 2) Is it enough to use only QuickTime? I thought it is also required to use Core Audio (for steps 3 and 5). And should I consider QTKit, or QTKit is too highlevel for described task? – VitalyVal Sep 30 '10 at 21:47

1 Answers1

0

I know I am quite late, so you might not need this anymore, but I just wanted to mention, that the right way to do it is to write a QuickTime component. Although it is pretty old school, it's the same way Apple uses to support new formats and codecs.

Look at the Perian project as an orientation point.

Best

guitarflow
  • 2,930
  • 25
  • 38