SDI Technologies iH30 Dokumentacja Strona 43

  • Pobierz
  • Dodaj do moich podręczników
  • Drukuj
  • Strona
    / 147
  • Spis treści
  • BOOKMARKI
  • Oceniono. / 5. Na podstawie oceny klientów
Przeglądanie stron 42
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;
Przeglądanie stron 42
1 2 ... 38 39 40 41 42 43 44 45 46 47 48 ... 146 147

Komentarze do niniejszej Instrukcji

Brak uwag