Copy link to clipboard
Copied
We are writing an AEIO plugin and we're still in the very beginning stages following the IO example almost exactly. We determined that the all the sound chunks are provided first, followed by the sequence of video frames. We want to get the sound chunks and frames to come through interleaved. How can this be done?
Using the following flags:
info->flags =
AEIO_MFlag_OUTPUT |
AEIO_MFlag_FILE |
AEIO_MFlag_VIDEO |
AEIO_MFlag_AUDIO |
AEIO_MFlag_NO_OPTIONS |
AEIO_MFlag_HAS_AUX_DATA;
info->flags2 = AEIO_MFlag2_CAN_DO_AUDIO_32;
The sequence of calls immediately following the start of rendering looks like this:
2010/11/02T14:39:43.461 [07848]:[TID:10252] VyAE_GetDepths (out)
2010/11/02T14:39:43.462 [07848]:[TID:10252] VyAE_OutputInfoChanged (out)
2010/11/02T14:39:43.463 [07848]:[TID:10252] VyAE_GetDepths (out)
2010/11/02T14:39:43.464 [07848]:[TID:10252] VyAE_OutputInfoChanged (out)
2010/11/02T14:39:43.594 [07848]:[TID:10252] VyAE_SetOutputFile (out)
2010/11/02T14:39:43.595 [07848]:[TID:10252] VyAE_OutputInfoChanged (out)
2010/11/02T14:39:43.597 [07848]:[TID:10252] VyAE_GetOutputInfo (out)
2010/11/02T14:39:43.729 [07848]:[TID:10252] VyAE_StartAdding (out)
2010/11/02T14:39:43.780 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.829 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.846 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.860 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.883 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.900 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.914 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.931 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.949 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.963 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.972 [07848]:[TID:10252] VyAE_AddSoundChunk (out)
2010/11/02T14:39:43.988 [07848]:[TID:10252] VyAE_GetDepths (out)
2010/11/02T14:39:43.989 [07848]:[TID:10252] VyAE_AddFrame (out)
2010/11/02T14:39:43.991 [07848]:[TID:10252] VyAE_GetOutputInfo (out)
2010/11/02T14:39:44.000 [07848]:[TID:10252] VyAE_GetOutputInfo (out)
2010/11/02T14:39:44.085 [07848]:[TID:10252] VyAE_GetDepths (out)
2010/11/02T14:39:44.087 [07848]:[TID:10252] VyAE_AddFrame (out)
2010/11/02T14:39:44.088 [07848]:[TID:10252] VyAE_GetOutputInfo (out)
2010/11/02T14:39:44.093 [07848]:[TID:10252] VyAE_GetOutputInfo (out)
2010/11/02T14:39:44.121 [07848]:[TID:10252] VyAE_GetDepths (out)
2010/11/02T14:39:44.122 [07848]:[TID:10252] VyAE_AddFrame (out)
2010/11/02T14:39:44.124 [07848]:[TID:10252] VyAE_GetOutputInfo (out)
2010/11/02T14:39:44.129 [07848]:[TID:10252] VyAE_GetOutputInfo (out)
2010/11/02T14:39:44.145 [07848]:[TID:10252] VyAE_GetDepths (out)
2010/11/02T14:39:44.146 [07848]:[TID:10252] VyAE_AddFrame (out)
2010/11/02T14:39:44.148 [07848]:[TID:10252] VyAE_GetOutputInfo (out)
2010/11/02T14:39:44.152 [07848]:[TID:10252] VyAE_GetOutputInfo (out)
2010/11/02T14:39:44.167 [07848]:[TID:10252] VyAE_GetDepths (out)
2010/11/02T14:39:44.168 [07848]:[TID:10252] VyAE_AddFrame (out)
...
and so forth.
Copy link to clipboard
Copied
Hi there,
Here's some info from one of our engineers here on the AE team:
"In CS5 audio is initially front-loaded to prevent stalls with some A/V muxers. In CS5 this front loading is 16 seconds long, and the plugin is expected to buffer at least this much audio until needed. AEIO will periodically send additional chunks of audio as the plugin's buffer empties, and pads with silence if the audio ends early. Once the audio buffer is preloaded, subsequent AddFrame/AddSoundChunk calls could happen at any order. These audio chunks are not in any particular alignment with video framerate.
"To support interleaving in CS5, the plugin would 1) need a big enough buffer for the initial front-loaded audio burst, and then 2) it would need to break the audio buffer down into whatever interleaving the plugin desires.
"If the A/V export duration is shorter than the plugin audio buffer described above, then yes, the audio will all arrive before the video."
Hope this helps,
Zac