MaxOmfSdk Overview

 

 

Purpose

 

MaxOmfSdk provides an Omf parser, an internal database containing 'normalized' edit data, and an Omf writer. The API provides functions for parsing an existing Omf file, retrieving edit data, populating the internal database with client application edit data, and writing Omf files, including audio media data. Omf1 'media files' (without compositions) and Omf2 with compositions are supported.

 

 

SDK Design

 

MaxOmfSdk.dll is a c++ program wrapped in an extern "C" api. It contains a modified version of the Omf Toolkit and higher level c++ code to manage the project data. Operations are driven by the calling application through the extern "C" api.

 

See Client Application and SDK Builds

 

 

Interfacing to MaxOmfSdk

 

MaxOmfSdk provides mechanisms for communicating with the SDK for obtaining status information, setting processing options, handling errors, progress, messaging, etc.

 

The mxOmfAppIFInfo_t struct collects several input/output data structs and function pointers to application supplied callback functions.

 

OmfSupport.cpp of the demo app supplies a complete set of callback implementations together with mfSetAppInterface(), used to initialize mxOmfAppIFInfo_t members and callbacks.

 

See mxOmfAppIFInfo_t

See mxOmfProductID_t

See mxOmfInSettings_t and mxOmfOutSettings_t

See OmfSetAppInterface()

See CMaxOmfSdkDemoApp::CMaxOmfSdkDemoApp() constructor

See CMaxOmfSdkDemoOmfDoc::CMaxOmfSdkDemoOmfDoc() constructor

 

 

SDK Creation

 

The client application first 'creates' the SDK with a call to  mxOmfCreateOmfSdk(); This returns an opaque handle to the SDK (mxOmfAppIFInfo_t::m_hMxOmfHdl), and the application then uses this handle for all calls to the extern "C" API functions.

 

See mxOmfCreateOmfSdk()

See CMaxOmfSdkDemoDoc::OnOpenDocument()

 

 

Edit Data Representation

 

It is important to understand the way data is organized in MaxOmfSdk.

 

See Edit Data Representation

 

Operation

 

See Edit Data Representation

 

See the demo app :

 

CMaxOmfSdkDemoDoc::OnOpenDocument()

CMaxOmfSdkDemoDoc::OnSaveDocument()

CMaxOmfSdkDemoDoc::OnFileSaveOmfUserinAs()