]> git.sesse.net Git - mlt/commitdiff
Log when decklink audio buffer level changes.
authorMaksym Veremeyenko <verem@m1stereo.tv>
Fri, 22 Jul 2011 21:32:40 +0000 (14:32 -0700)
committerDan Dennedy <dan@dennedy.org>
Fri, 22 Jul 2011 22:02:50 +0000 (15:02 -0700)
Very useful to understand when unexpected behavior happens.

src/modules/decklink/consumer_decklink.cpp

index df9e89ae60f971b6a757509d8d3edba8b980915d..956198e56640c450291c620e28f8ed11314fe73a 100644 (file)
@@ -17,6 +17,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#define __STDC_FORMAT_MACROS  /* see inttypes.h */
 #include <framework/mlt.h>
 #include <stdlib.h>
 #include <string.h>
@@ -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