Mac OS X Porting - Native Audio and Video

From Apache OpenOffice Wiki
Revision as of 18:48, 18 September 2006 by Ericb (Talk | contribs)

Jump to: navigation, search

Page under construction

Work started discussing with Kai Ahrens (author of avmedia). As adviced by Kai we will reuse Windows implementation (copied/pasted from Kai's mail):

"... Beside the 'common' avmedia part, that is the same on all platforms and used from the high level application side, there are several backend (actually two, one for Windows and one for JMF backends) implementations already realized or to be realized like a Xine, GStreamer etc. backend..."

"...What you did so far, is absolutely the right way. Taking the existing Windows implementation and fill it with the appropriate Quicktime or whatever pieces. After finishing your new backend you should adjust the code in MediaWindowBaseImpl::createPlayer (avmedia/source/viewer/mediawindowbase_impl.cxx) accordingly to get your new component initialized instead of the existing ones.

Having a 'status' struct is already realized within mediawindowbase_impl.cxx and the corresponding methods MediaWindowBaseImpl::updateMediaItem and MediaWindowBaseImpl::executeMediaItem , I think, but maybe I didn't get you right here.

Please feel free to ask if you have any detailed questions.

With best regards Kai"



Important links

Starting point : http://developer.apple.com/documentation/QuickTime/APIREF/index.html

http://developer.apple.com/documentation/QuickTime/APIREF/MovieFunctions.htm

  • Complete list of usefull functions :

http://developer.apple.com/documentation/QuickTime/APIREF/GettingandPlayingMovies.htm

Design

Use Radek Doulik and Cedric Bosdonnat work

OOoCon presentation : http://eric.bachard.free.fr/mac/OOoCon2006/GStreamer-in-OpenOffice.org.odp

Concerned module : avmedia

The native sound implementation will use already existing windows implementation as model, replacing current avmedia implementation.

[work in progress]

Todo list :

Use existing windows iimplementation.

1) Create new tree in avmedia :

avmedia/source/macosx

Containing :

new makefile.mk

C++ files ( not sure, to be confirmed ) : macosxframegrabber.cxx, macosxmanager.cxx, macosxplayer.cxx, macosxwindow.cxx, macosxuno.cxx

headers will be put into avmedia/inc

(confirmed : is avmedia/inc the best place ?)

macosxframegrabber.hxx, macosxmanager.hxx, macosxplayer.hxx, macosxwindow.hxx, macosxuno.hxx, macosxplayerhelpers.hxx

2) Other modifications :

avmedia/source/xine/makefile.mk

-> not build libxine if defined QUARTZ (maybe MACOSX ?) -> just adding a dummy rule in the makefile

avmedia/prj/build.lst

-> add new part avmedia/source/macosx to be built

Space naming convention :

Use aqua for the new classes, and AquaPlayer as prefix for everything.


- create manager ( using UNO services) [ done ]

- create uno layer [ done ]
- implement correct service name / implementation name using UNO  [ work in progress ]
- create player (using QuickTime API)  [ work in progress ]
Done (using existing Windows implementation) :
- all headers are defined
- usefull functions are identifed in Apple's API

[To be continued]

Other work in progress :

- discuss with ka about new implementation and fix dark points
- reuse Windows immlementation for the player
- new implementation of  -already defined- methods used in the player


Component Context

[FIXME]

Conponent Design

[FIXME]

Ericb 19:32, 4 June 2006 (CEST)

Personal tools