
Ancillary Data
Quadro SDI Output PG-03776-001_v06 | 38
Note: When inserting audio data into the NVVIOANCDATAFRAME structure for each
frame in an audio frame sequence it is important to set the correct frame
sequence number and only insert the number of audio samples required for the
current frame. Not setting the correct frame sequence number or sending the
improper number of samples for the current frame will result in audio dropouts.
Code Listing 35: Specifying Audio Data
static int frameSequenceNum = 0;
// Audio Channels 1-4
m_AncData.fields |= NVVIOANCDATAFRAME_AUDIO_GROUP_1;
m_AncData.AudioGroup1.audioCntrl.activeChannels =
NVVIOANCAUDIO_ACTIVE_CH1 | NVVIOANCAUDIO_ACTIVE_CH2 |
NVVIOANCAUDIO_ACTIVE_CH3 | NVVIOANCAUDIO_ACTIVE_CH4;
m_AncData.AudioGroup1.audioCntrl.asynchronous = 1;
// Set audio parameters.
m_AncData.AudioGroup1.audioCntrl.asynchronous = 0;
m_AncData.AudioGroup1.audioCntrl.frameNumber1_2 = frameSequenceNum + 1;
m_AncData.AudioGroup1.audioCntrl.frameNumber3_4 = frameSequenceNum + 1;
m_AncData.AudioGroup1.audioCntrl.rate =
NVVIOANCAUDIO_SAMPLING_RATE_48_0;
// Check for the case where the number of valid samples does not match
// the number of audio samples expected for this frame in the sequence.
if (m_pRingBuffer->NumValidSamples(0) !=
m_uiNumAudioSamples[frameSequenceNum]) {
printf("Audio Sample Mismatch -- ExpectedNumSamples: %d
NumValidSamples: %d\n", m_uiNumAudioSamples[frameSequenceNum],
m_pRingBuffer->NumValidSamples(0));
}
// Assign data buffers from ring buffer
m_AncData.AudioGroup1.numAudioSamples =
m_pRingBuffer->NumValidSamples(0);
m_AncData.AudioGroup1.audioData[0] = m_pRingBuffer->GetBuffer(0);
m_AncData.AudioGroup1.audioData[1] = m_pRingBuffer->GetBuffer(1);
m_AncData.AudioGroup1.audioData[2] = m_pRingBuffer->GetBuffer(0);
m_AncData.AudioGroup1.audioData[3] = m_pRingBuffer->GetBuffer(1);
// Audio Channels 5-8
m_AncData.fields |= NVVIOANCDATAFRAME_AUDIO_GROUP_2;
m_AncData.AudioGroup2.audioCntrl.activeChannels =
NVVIOANCAUDIO_ACTIVE_CH1 | NVVIOANCAUDIO_ACTIVE_CH2 |
NVVIOANCAUDIO_ACTIVE_CH3 | NVVIOANCAUDIO_ACTIVE_CH4;
m_AncData.AudioGroup2.audioCntrl.asynchronous = 1;
// Set audio parameters.
m_AncData.AudioGroup2.audioCntrl.asynchronous = 0;
m_AncData.AudioGroup2.audioCntrl.frameNumber1_2 = frameSequenceNum + 1;
Comentários a estes Manuais