From: Maksym Veremeyenko Date: Fri, 22 Jul 2011 21:32:40 +0000 (-0700) Subject: Log when decklink audio buffer level changes. X-Git-Url: https://git.sesse.net/?p=mlt;a=commitdiff_plain;h=bc5432678809b945cbb36bec73d75c1f162e932c Log when decklink audio buffer level changes. Very useful to understand when unexpected behavior happens. --- diff --git a/src/modules/decklink/consumer_decklink.cpp b/src/modules/decklink/consumer_decklink.cpp index df9e89ae..956198e5 100644 --- a/src/modules/decklink/consumer_decklink.cpp +++ b/src/modules/decklink/consumer_decklink.cpp @@ -17,6 +17,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#define __STDC_FORMAT_MACROS /* see inttypes.h */ #include #include #include @@ -55,6 +56,7 @@ private: IDeckLinkKeyer* m_deckLinkKeyer; bool m_terminate_on_pause; uint32_t m_preroll; + uint32_t m_acnt; IDeckLinkDisplayMode* getDisplayMode() { @@ -437,6 +439,16 @@ public: virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( IDeckLinkVideoFrame* completedFrame, BMDOutputFrameCompletionResult completed ) { + uint32_t cnt; + m_deckLinkOutput->GetBufferedAudioSampleFrameCount(&cnt); + if(cnt != m_acnt) + { + mlt_log_verbose( getConsumer(), + "ScheduledFrameCompleted: GetBufferedAudioSampleFrameCount %u -> %u, m_count=%"PRIu64"\n", + m_acnt, cnt, m_count ); + m_acnt = cnt; + }; + // When a video frame has been released by the API, schedule another video frame to be output // ignore handler if frame was flushed