# Multimedia pass-through video channel operation

This topic describes how the multimedia pass-through video channels operate on the CG board. The pass-through video channel consists of the components shown in the following illustration:

A pass-through channel is created and operated with the following API calls:

Calling... | Causes the following action...
ctaOpenServices | Creates the ADI port. No DSP resource is used.
mspCreateEndpoint | Creates the video RTP endpoint (to handle MPEG-4, H.263, or H.264).
mspGetFilterHandle | Translates the MSPP endpoint handle into a CG board endpoint handle that can be used in the ADI service function calls.
adiPlayMMFromMemory or adiPlayMMAsync | Creates the pass-through video play filter. No DSP resource is used. Connects the ADI port, the pass-through video play filter, and the RTP endpoint. Starts play of video buffer onto the ADI port.
adiStopPlaying | Stops the video play. Disconnects all components. Destroys the pass-through video play filter.
adiRecordMMToMemory or adiRecordMMAsync | Creates the pass-through video record filter. Connects the ADI port, the pass-through video record filter, and the RTP endpoint. Starts recording from the ADI port in the video buffer. Establishes dependence between video and audio channels due to the audio board endpoint handle provided with the video board endpoint handle.
adiStopRecording | Stops video record. Disconnects all components. Destroys the pass-through video record filter.

Typically, the ADI port and the RTP endpoint exist for the life of the channel. The pass-through video play filter exists for the life of adiPlayMMFromMemory or a diPlayMMAsync, while the video record filter exists for the life of adiRecordMMToMemory or adiRecordMMAsync.

It is not necessary for the application to create or destroy the pass-through video filters or for the application to create filter connections or disconnections. These tasks are performed automatically when corresponding ADI service functions are called.