In the audio pass-through configuration, the media payload of the audio and video RTP packets corresponds exactly to what the application receives from or submits to Video Access. Pass-through means that no media transformation is applied, and therefore this configuration does not consume any DSP resources on the board.
Voice quality is not degraded because no audio transcoding is performed. The recorded data can be played back only to terminals that support this media encoding.
The following illustration shows an audio pass-through configuration:
When no audio transcoding or silence detection is required, the application creates the following endpoints:
A video endpoint (to handle MPEG-4, H.263, or H.264)
An MSPP audio endpoint (for use with AMR, G.723, or G.711)
The application associates each endpoint with a corresponding ADI port and calls adiPlayMMFromMemory, adiPlayMMAsync, adiRecordMMToMemory, or adiRecordMMAsync to create the filters and initiate pass-through play or record. Refer to Video enhancements to the ADI service and Video enhancements to the MSPP service for more information.
Note: The application can synchronize audio and video streams on video I-frame detection. It can also stop the recording of audio and video streams simultaneously. See adiRecordMMToMemory or adiRecordMMAsync for more information.
The following tables show a typical function sequence for an audio-pass through configuration. This sequence shows:
The sequence contains both video-specific and non-video-specific function calls.
Step |
Call |
Description |
1 |
ctaCreateQueue ( &queuehd) |
Creates a CTA queue. |
2 |
ctaCreateContext ( &video_ctahd, queuehd) |
Creates a CTA context for the video channel. |
3 |
ctaCreateContext ( &audio_ctahd, queuehd) |
Creates a CTA context for the audio channel. |
4 |
ctaOpenServices ( video_ctahd, svclist, nsvcs) |
Creates an ADI port for the pass-through video. The pass-through video channel consumes no DSP resources on the CG board. Therefore, the svclist parameter of ctaOpenServices must contain the following settings:
The ADI service and the MSPP service are in the list of services. |
5 |
ctaOpenServices ( audio_ctahd, svclist, nsvcs) |
Creates an ADI port for the pass-through audio. The pass-through audio channel consumes no DSP resources on the CG board. Therefore, the svclist parameter of ctaOpenServices must contain the following settings:
The ADI service and the MSPP service are in the list of services. |
6 |
mspCreateEndpoint ( video_ctahd, &video_ephd) |
Creates a video RTP endpoint. |
7 |
mspCreateEndpoint ( audio_ctahd, &audio_ephd) |
Creates an audio RTP endpoint. |
8 |
mspGetFilterHandle ( video_ctahd, video_ephd, &cg_video_ephd) |
Translates the video MSPP ephd to a CG board ephd. |
9 |
mspGetFilterHandle ( audio_ctahd, audio_ephd, &cg_audio_ephd) |
Translates the audio MSPP ephd to a CG board ephd. |
Step |
Call |
Description |
1 |
adiPlayMMFromMemory ( video_ctahd, cg_video_ephd,,,,) or adiPlayMMAsync ( video_ctahd, cg_video_ephd,,,,) |
Begins playing video portion of message. |
2 |
adiPlayMMFromMemory ( audio_ctahd, cg_audio_ephd,,,,) or adiPlayMMAsync
( |
Begins playing audio portion of message. |
3 |
adiStopPlaying ( video_ctahd) |
Stops playing video portion of message. |
4 |
adiStopPlaying ( audio_ctahd) |
Stops playing audio portion of message. |
Step |
Call |
Description |
1 |
adiRecordMMToMemory ( video_ctahd, cg_video_ephd, cg_audio_ephd) or adiRecordMMAsync ( video_ctahd, cg_video_ephd, cg_audio_ephd) |
Begins recording video portion of message. The application passes both the audio board handle and the video board handle to the video record function, reflecting the inter-dependence between the audio and video streams (for example, for I-frame detection). |
2 |
adiRecordMMToMemory ( audio_ctahd, cg_video_ephd, cg_audio_ephd) or adiRecordMMAsync ( audio_ctahd, cg_video_ephd, cg_audio_ephd) |
Begins recording audio portion of message. The application passes both the audio board handle and the video board handle to the audio record function, reflecting the inter-dependence between the audio and video streams (for example, for I-frame detection). |
3 |
adiStopRecording ( video_ctahd) |
Stops recording video portion of message. |
4 |
adiStopRecording ( audio_ctahd) |
Stops recording audio portion of message. |