tmModule Functions
tmModule Functions
Fill in 0
for any unsupported calls. Thread safety is defined per-module, only a single thread will enter a module at a time.
Member | Description |
---|---|
Startup | Initialize a transmitter, fill in basic plugin info, allocate memory to hold user settings and other data. |
tmResult (*Startup)( | |
- tmResult_ContinueIterate may be returned to support multiple transmit plugins within the same module. | |
- ioPrivatePluginData , ioSerializedPluginData & ioSerializedPluginDataSize may be written from Startup. | |
Shutdown | Terminate a transmitter. |
tmResult (*Shutdown)( | |
Dispose of ioPrivatePluginData if previously allocated in Startup . | |
QueryAudioMode | Describe the audio modes supported by the transmitter, one at a time. |
tmResult (*QueryAudioMode)( | |
Note that currently one audio mode is currently supported. You can convert between audio formats using the Audio Suite. | |
QueryVideoMode | Describe the video modes supported by the transmitter, one at a time. |
tmResult (*QueryVideoMode)( | |
The video sent later in PushVideo will be one of the formats specified here. | |
SetupDialog | Display your own modal settings dialog. |
tmResult (*SetupDialog)( | |
Will only be called if the plugin returned outHasSetup . | |
Save any settings to ioSerializedPluginData and if needed update ioSerializedPluginDataSize . | |
NeedsReset will be invoked after this call, to allow your transmitter a chance to reset all open plugins and startup with the new settings. | |
NeedsReset | Will be called regularly on the first plugin of a module to allow rebuilding on state changes. |
tmResult (*NeedsReset)( | |
If the passed in settings differ enough from the created settings, or if the settings on the hardware itself have changed, the transmitter should specify a reset is needed. | |
If outResetModule is set to true , all open plugins will be shutdown and started up again. | |
CreateInstance | Creates an instance of a transmitter. |
tmResult (*CreateInstance)( | |
inPlayID and inTimelineID may be 0 if not driven by a player. | |
Multiple instances may be created at the same time. | |
Allocate ioPrivateInstanceData . | |
DisposeInstance | Dispose an instance of a transmitter. |
tmResult (*DisposeInstance)( | |
Any ioPrivateInstanceData should be disposed. | |
ActivateDeactivate | Activate or deactivate a transmitter instance, for example during application suspend or switching between monitors. |
tmResult (*ActivateDeactivate)( | |
Transmitters should manage hardware access with these calls, not Startup /Shutdown , since it is valid for multiple plugins to be simultaneously active for the same device. | |
Audio and video may be independently activated. | |
StartPlaybackClock | Start a clock for playback. |
tmResult (*StartPlaybackClock)( | |
This will be sent not only when starting playback, but also for scrubbing. | |
Will only be called if the transmitter returned outHasClock . | |
The provided callback must be called each time the time changes, for example once for each frame in response to PushVideo . | |
Start may be called multiple times without a stop in between to update playback parameters, for example if the speed changes during playback. | |
Invoke the callback immediately during StartPlaybackClock with a negative number for preroll but do not use this to wait for frames. | |
If video latency is specified, up to the latency’s amount of frame marked as playmode_Playing will be sent before StartPlaybackClock is called. | |
StopPlaybackClock | Stop a clock for playback. |
tmResult (*StopPlaybackClock)( | |
PushVideo | Asynchronously pushes a video frame to a transmitter instance. |
tmResult (*PushVideo)( | |
Will only be called if the transmitter returned outHasVideo . | |
The list of video frames passed to the transmitter will be negotiated based on the properties returned from QueryVideoMode . | |
The transmitter is responsible for disposing of all passed in PPixes . | |
The instance will be created with the properties of the creating video segments which may differ from the actual frames that will be sent to the transmitter. | |
For example, if a sequence is being played at 1/2 resolution, the instance will be created with the dimensions of the sequence, but the frames rendered and sent to the transmitter will be at 1/2. | |
These properties may change by segment, for example if your transmitter supports multiple pixel formats, different segments may render to different pixel formats. | |
StartPushAudio | Asynchronously pushes audio samples to a transmitter instance. |
tmResult (*StartPushAudio)( | |
Initializes the device for subsequent PushAudio() calls. Will only be called if the transmitter returned outPushAudioAvailable . | |
Device will be enabled for a “secondary” mode where audio from the “primary” or “clock” device, is pushed to a secondary device; very useful for remote devices. | |
Unlike StartPlaybackClock() , StartPushAudio() is only called once, until StopPushAudio() is called. | |
PushAudio | Asynchronously pushes audio samples to a transmitter instance. Note: PushAudio() may be called even if another API is called at the same time. |
tmResult (*PushAudio)( | |
StopPushAudio | StopPushAudio() is called when playback via PushAudio() ends. |
tmResult (*StopPushAudio)( | |
SetStreamingStateChangedCallback | Set the host callback for notification streaming state changes, i.e. when the plug-in becomes active or inactive due to changes connections or enablement from the host. |
tmResult (*SetStreamingStateChangedCallback)( | |
EnableStreaming | Enable/disable streaming to connected clients without loading or unloading the plug-in. |
tmResult (*EnableStreaming)( | |
IsStreamingEnabled | Returns whether streaming is enabled. |
tmResult (*IsStreamingEnabled)( | |
IsStreamingActive | Returns whether the plug-in is actively streaming, i.e. streaming is enabled and the plug-in has active connections. |
tmResult (*IsStreamingActive)( | |
Shutdown | Terminate a transmitter. |
tmResult (*Shutdown)( | |
Dispose of ioPrivatePluginData if previously allocated in Startup . |