ADI_MM_RECORD_PARMS

Contains parameters for recording multimedia data. This structure is used by adiRecordMMAsync and adiRecordMMToMemory.

Definition

The ADI_RECORD_MM_PARMS structure contains fields that are specific to video recording and contains fields that are not applicable to video recording. In the structure definition shown below:

typedef struct
{
    DWORD size;              /* Size of this structure                  */
    DWORD DTMFabort;         /* Abort on DTM                            */
    INT32 gain;              /* Recording gain in dB                    */
    /*-[SLC parms (used if silence det)] */

    DWORD novoicetime;       /* Length of initial silence to stop       */
                             /* Recording (ms); use 0 to                */
                             /* deactivate Initial silence              */
                             /* detection.                              */
    DWORD silencetime;       /* Length of silence to stop               */
                             /* recording After voice has been          */
                             /* detected(ms);Use 0 to deactivate        */
    INT32 silenceampl;       /*Qualif level for silence (dBm)           */
                             /* The maximum voice signal level that     */
                             /* is considered to be silence.            */
    WORD silencedeglitch;    /* Deglitch while qualifying(ms)           */
                             /* The maximum non-silent interval         */
                             /* that is ignored by the silence          */
                             /* detector. Any sounds that last          */
                             /* longer than this value reset            */
                             /* the silence detector                    */
    DWORD beepfreq;          /* beep frequency(Hz)                      */
    INT32 beepampl;          /* beep amplitude(dBm)                     */
    DWORD beeptime;          /* Beep time(ms) 0=no beep                 */
    WORD  AGCEnable;         /* Enable AGC; use 1 to activate           */
    INT32 AGCtargetampl;     /* target AGC level(dBm)                   */
    INT32 AGCsilenceampl;    /* Silence level(dBm)                      */
    DWORD AGCattacktime;     /*Attack time(ms)                          */
    DWORD AGCdecaytime;      /* Decay time(ms)                          */

    BOOL startonvideoIframe; /*1=start collection on                    */
                             /*intial I-frame                           */
                             /*0=start immediately                      */
                             /*Native video channels only.              */
    DWORD maxtime;           /*length of time(100 ms increments)after   */
                             /*which recording will terminate. Set to   */
                             /* 0 to deactivate.  Native audio          */
                             /* and video channels                      */
    DWORD novideotime;       /*for startonvideoIframe=0,length          */
                             /*of time (ms) to stop recording           */
                             /* for no receipt of video.                */
                             /*for startonvideoIframe=1, length         */
                             /*of time to stop recording for no         */
                             /*receipt of I-frame.                      */
                             /*0=deactivate.Native video                */
                             /*channels only.                           */
    DWORD videotimeout;      /* length of time(ms)without               */
                             /* receiving video to stop video           */
                             /* recording after video has been          */
                             /* detected. Set to 0 to deactivate        */
                             /* Native video channels only.             */

} ADI_MM_RECORD_PARMS;

Audio pass-through or transcoding channel parameters

For an audio pass-through or transcoding channel, the following parameters in the ADI_MM_RECORD_PARMS structure apply:

If audio silence detection is enabled, the DTMFabort parameter also applies to an audio channel. However, in the context of 3G-324M communications, NMS recommends that you set this parameter to 0 and avoid in-band DTMF detection. Those signals are typically carried out-of-band in H.245 User Input Indication messages.

Video pass-through channel parameters

For a video pass-through channel, the following parameters in the ADI_MM_RECORD_PARMS structure apply:

The same parameter structure is used for both audio and video channels. Only the parameters that apply for the particular audio or video channel are considered by the NMS record component.

The following table describes the video recording fields in the ADI_MM_RECORD_PARMS structure. For all fields, specifying NULL designates default values.

Field

Description

startonvideoIframe

The application has the option to begin recording on both the audio and video channels. Recording can begin immediately or when the first video I-frame is detected on the video channel with the startonvideoIframe parameter in adiRecordMMToMemory or adiRecordMMAsync.

When startonvideoIframe = 0, audio and video recording begins immediately.

When startonvideoIframe = 1, the audio and video filters begin recording as follows:

  • On the video channel, the filter discards video packets until detection of the first video I-frame.

  • When the first I-frame is detected, the filter begins collection of video packets.

  • The filter issues a message to the voice manager task on the board to begin audio recording on the companion audio channel, if necessary.

The application is not required to disable the RTP endpoint of the audio channel. The voice manager task on the board waits until the first video I-frame is detected and then creates the companion audio channel, preventing audio reception prior to the first video I-frame. Audio and video streaming to the host starts when the video I-frame is detected.

A companion audio channel is a channel that was started with the same endpoint handles as for the video record. The video record must be started first.

maxtime

When applied to a video pass-through channel, and if not set to 0, this maximum record duration timer gets started on a different event, depending on the startonvideoIframe parameter:

  • If startonvideoIframe = 1, it starts on video I-frame detection.

  • If startonvideoIframe = 0, it starts on the first video packet received.

novideotime

Indicates the amount of time the ADI service waits before stopping the recording process if it does not receive video. A value of 0 (zero) de-activates this field.

The effect of this field (when non-zero) depends upon the value of the startonvideoIframe field:

  • If startonvideoIframe = 0, then ADI waits this amount of time before stopping the recording process, if no video is received.

  • If startonvideoIframe = 1, then ADI waits this amount of time before it stops the recording process if no video I-frame is received.

videotimeout

Indicates the amount of time the ADI service waits before stopping the recording process, if the video stream stops. The starting point for the time measurement is the initial receipt of video. A value of 0 (zero) de-activates this feature.

For information on the other fields in the ADI_MM_RECORD_PARMS structure, see the ADI Service Developer's Reference Manual.