void stop() { // Stop the audio and video output streams immediately if ( m_deckLinkOutput ) { m_deckLinkOutput->StopScheduledPlayback( 0, 0, 0 ); m_deckLinkOutput->DisableAudioOutput(); m_deckLinkOutput->DisableVideoOutput(); } while ( mlt_deque_count( m_videoFrameQ ) ) { m_videoFrame = (IDeckLinkMutableVideoFrame*) mlt_deque_pop_back( m_videoFrameQ ); m_videoFrame->Release(); } m_videoFrame = 0; if ( m_fifo ) sample_fifo_close( m_fifo ); }
void BMDOutputDelegate::StopRunning () { // Stop the audio and video output streams immediately m_deckLinkOutput->StopScheduledPlayback(0, NULL, 0); // //m_deckLinkOutput->DisableAudioOutput(); m_deckLinkOutput->DisableVideoOutput(); if (m_yuvFrame != NULL) m_yuvFrame->Release(); m_yuvFrame = NULL; if (m_rgbFrame != NULL) m_rgbFrame->Release(); m_rgbFrame = NULL; // Success; update the UI m_running = false; }