Flush audio buffer if it more then preroll configured length.
int m_isKeyer;
IDeckLinkKeyer* m_deckLinkKeyer;
bool m_terminate_on_pause;
int m_isKeyer;
IDeckLinkKeyer* m_deckLinkKeyer;
bool m_terminate_on_pause;
IDeckLinkDisplayMode* getDisplayMode()
{
IDeckLinkDisplayMode* getDisplayMode()
{
// preroll frames
for( i = 0; i < preroll; i++ )
ScheduleNextFrame( true );
// preroll frames
for( i = 0; i < preroll; i++ )
ScheduleNextFrame( true );
{
uint32_t written = 0;
BMDTimeValue streamTime = m_count * frequency * m_duration / m_timescale;
{
uint32_t written = 0;
BMDTimeValue streamTime = m_count * frequency * m_duration / m_timescale;
+ m_deckLinkOutput->GetBufferedAudioSampleFrameCount(&written);
+ if ( written > (m_preroll + 1) * samples )
+ {
+ mlt_log_verbose( getConsumer(), "renderAudio: will flush %d audiosamples\n", written);
+ m_deckLinkOutput->FlushBufferedAudioSamples();
+ };
#ifdef WIN32
m_deckLinkOutput->ScheduleAudioSamples( pcm, samples, streamTime, frequency, (unsigned long*) &written );
#else
#ifdef WIN32
m_deckLinkOutput->ScheduleAudioSamples( pcm, samples, streamTime, frequency, (unsigned long*) &written );
#else