AAX SDK  2.4.1
Avid Audio Extensions Development Kit
List of all members | Public Member Functions
AAX_IACFHostProcessor Class Referenceabstract

#include <AAX_IACFHostProcessor.h>

Inheritance diagram for AAX_IACFHostProcessor:
[legend]
Collaboration diagram for AAX_IACFHostProcessor:
[legend]

Description

Versioned interface for an AAX host processing component.

Note
This interface gets exposed to the host application. See AAX_CHostProcessor for method documentation.
Legacy Porting Notes:
This interface provides offline processing features analogous to the legacy AudioSuite plug-in architecture

Public Member Functions

virtual AAX_Result Initialize (IACFUnknown *iController)=0
 Host Processor initialization. More...
 
virtual AAX_Result Uninitialize ()=0
 Host Processor teardown. More...
 
virtual AAX_Result InitOutputBounds (int64_t iSrcStart, int64_t iSrcEnd, int64_t *oDstStart, int64_t *oDstEnd)=0
 Sets the processing region. More...
 
virtual AAX_Result SetLocation (int64_t iSample)=0
 Updates the relative sample location of the current processing frame. More...
 
virtual AAX_Result RenderAudio (const float *const inAudioIns[], int32_t inAudioInCount, float *const iAudioOuts[], int32_t iAudioOutCount, int32_t *ioWindowSize)=0
 Perform the signal processing. More...
 
virtual AAX_Result PreRender (int32_t inAudioInCount, int32_t iAudioOutCount, int32_t iWindowSize)=0
 Invoked right before the start of a Preview or Render pass. More...
 
virtual AAX_Result PostRender ()=0
 Invoked at the end of a Render pass. More...
 
virtual AAX_Result AnalyzeAudio (const float *const inAudioIns[], int32_t inAudioInCount, int32_t *ioWindowSize)=0
 Override this method if the plug-in needs to analyze the audio prior to a Render pass. More...
 
virtual AAX_Result PreAnalyze (int32_t inAudioInCount, int32_t iWindowSize)=0
 Invoked right before the start of an Analysis pass. More...
 
virtual AAX_Result PostAnalyze ()=0
 Invoked at the end of an Analysis pass. More...
 
- Public Member Functions inherited from IACFUnknown
virtual BEGIN_ACFINTERFACE ACFRESULT ACFMETHODCALLTYPE QueryInterface (const acfIID &iid, void **ppOut)=0
 Returns pointers to supported interfaces. More...
 
virtual acfUInt32 ACFMETHODCALLTYPE AddRef (void)=0
 Increments reference count. More...
 
virtual acfUInt32 ACFMETHODCALLTYPE Release (void)=0
 Decrements reference count. More...
 

Member Function Documentation

◆ Initialize()

virtual AAX_Result AAX_IACFHostProcessor::Initialize ( IACFUnknown iController)
pure virtual

Host Processor initialization.

Parameters
[in]iControllerA versioned reference that can be resolved to both an AAX_IController interface and an AAX_IHostProcessorDelegate

Implemented in AAX_CHostProcessor.

◆ Uninitialize()

virtual AAX_Result AAX_IACFHostProcessor::Uninitialize ( )
pure virtual

Host Processor teardown.

Implemented in AAX_CHostProcessor.

◆ InitOutputBounds()

virtual AAX_Result AAX_IACFHostProcessor::InitOutputBounds ( int64_t  iSrcStart,
int64_t  iSrcEnd,
int64_t *  oDstStart,
int64_t *  oDstEnd 
)
pure virtual

Sets the processing region.

This method allows offline processing plug-ins to vary the length and/or start/end points of the audio processing region.

This method is called in a few different scenarios:

  • Before an analyze, process or preview of data begins.
  • At the end of every preview loop.
  • After the user makes a new data selection on the timeline.

Plug-ins that inherit from AAX_CHostProcessor should not override this method. Instead, use the following convenience functions:

Note
Currently, a host processor may not randomly access samples outside of the boundary defined by oDstStart and oDstEnd
Legacy Porting Notes:
DAE no longer makes use of the mStartBound and mEndBounds member variables that existed in the legacy RTAS/TDM SDK. Use oDstStart and oDstEnd instead (preferably by overriding TranslateOutputBounds().)
Parameters
[in]iSrcStartThe selection start of the user selected region. This is will always return 0 for a given selection on the timeline.
[in]iSrcEndThe selection end of the user selected region. This will always return the value of the selection length on the timeline.
[in]oDstStartThe starting sample location in the output audio region. By default, this is the same as iSrcStart.
[in]oDstEndThe ending sample location in the output audio region. By default, this is the same as iSrcEnd.

Implemented in AAX_CHostProcessor.

◆ SetLocation()

virtual AAX_Result AAX_IACFHostProcessor::SetLocation ( int64_t  iSample)
pure virtual

Updates the relative sample location of the current processing frame.

This method is called by the host to update the relative sample location of the current processing frame.

Note
Plug-ins should not override this method; instead, use AAX_CHostProcessor::GetLocation() to retrieve the current relative sample location.
Parameters
[in]iSampleThe sample location of the first sample in the current processing frame relative to the beginning of the full processing buffer

Implemented in AAX_CHostProcessor.

◆ RenderAudio()

virtual AAX_Result AAX_IACFHostProcessor::RenderAudio ( const float *const  inAudioIns[],
int32_t  inAudioInCount,
float *const  iAudioOuts[],
int32_t  iAudioOutCount,
int32_t *  ioWindowSize 
)
pure virtual

Perform the signal processing.

This method is called by the host to invoke the plug-in's signal processing.

Legacy Porting Notes:
This method is a replacement for the AudioSuite ProcessAudio method
Parameters
[in]inAudioInsInput audio buffer
[in]inAudioInCountThe number if input channels
[in]iAudioOutsThe number of output channels
[in]iAudioOutCountA user defined destination end of the ingested audio
[in]ioWindowSizeWindow buffer length of the received audio

Implemented in AAX_CHostProcessor.

◆ PreRender()

virtual AAX_Result AAX_IACFHostProcessor::PreRender ( int32_t  inAudioInCount,
int32_t  iAudioOutCount,
int32_t  iWindowSize 
)
pure virtual

Invoked right before the start of a Preview or Render pass.

This method is called by the host to allow a plug-in to make any initializations before processing actually begins. Upon a Preview pass, PreRender will also be called at the beginning of every "loop".

See also
AAX_eProcessingState_StartPass, AAX_eProcessingState_BeginPassGroup
Parameters
[in]inAudioInCountThe number if input channels
[in]iAudioOutCountThe number of output channels
[in]iWindowSizeWindow buffer length of the ingested audio

Implemented in AAX_CHostProcessor.

◆ PostRender()

virtual AAX_Result AAX_IACFHostProcessor::PostRender ( )
pure virtual

Invoked at the end of a Render pass.

Note
Upon a Preview pass, PostRender will not be called until Preview has stopped.
See also
AAX_eProcessingState_StopPass, AAX_eProcessingState_EndPassGroup

Implemented in AAX_CHostProcessor.

◆ AnalyzeAudio()

virtual AAX_Result AAX_IACFHostProcessor::AnalyzeAudio ( const float *const  inAudioIns[],
int32_t  inAudioInCount,
int32_t *  ioWindowSize 
)
pure virtual

Override this method if the plug-in needs to analyze the audio prior to a Render pass.

Use this after declaring the appropriate properties in Describe. See AAX_eProperty_RequiresAnalysis and AAX_eProperty_OptionalAnalysis

To request an analysis pass from within a plug-in, use AAX_IHostProcessorDelegate::ForceAnalyze()

Legacy Porting Notes:
Ported from AudioSuite's AnalyzeAudio(bool isMasterBypassed) method
Parameters
[in]inAudioInsInput audio buffer
[in]inAudioInCountThe number of input channels
[in]ioWindowSizeWindow buffer length of the ingested audio

Implemented in AAX_CHostProcessor.

◆ PreAnalyze()

virtual AAX_Result AAX_IACFHostProcessor::PreAnalyze ( int32_t  inAudioInCount,
int32_t  iWindowSize 
)
pure virtual

Invoked right before the start of an Analysis pass.

This method is called by the host to allow a plug-in to make any initializations before an Analysis pass actually begins.

See also
AAX_eProcessingState_StartPass, AAX_eProcessingState_BeginPassGroup
Parameters
[in]inAudioInCountThe number if input channels
[in]iWindowSizeWindow buffer length of the ingested audio

Implemented in AAX_CHostProcessor.

◆ PostAnalyze()

virtual AAX_Result AAX_IACFHostProcessor::PostAnalyze ( )
pure virtual

Invoked at the end of an Analysis pass.

Note
In Pro Tools, a long execution time for this method will hold off the main application thread and cause a visible hang. If the plug-in must perform any long running tasks before initiating processing then it is best to perform these tasks in AAX_IHostProcessor::PreRender()
See also
AAX_eProcessingState_StopPass, AAX_eProcessingState_EndPassGroup

Implemented in AAX_CHostProcessor.


The documentation for this class was generated from the following file: