< prev index next >

modules/javafx.media/src/main/native/jfxmedia/platform/osx/avf/AVFAudioSpectrumUnit.cpp

Print this page
*** 39,10 ***
--- 39,11 ---
                                                 mSampleRate(0),
                                                 mChannels(0),
                                                 mMaxFrames(0),
                                                 mSamplesPerInterval(0),
                                                 mRebuildCrunch(true),
+                                                mFirstBufferDelivered(false),
                                                 mSpectrumElement(NULL),
                                                 mSpectrum(NULL) {
      mMixBuffer.mNumberBuffers = 1;
      mMixBuffer.mBuffers[0].mData = NULL;
  

*** 189,11 ***
      mBands->UpdateBands(size, magnitudes, magnitudes);
  
      // Call our listener to dispatch the spectrum event
      if (mSpectrumCallbackProc) {
          double duration = (double) mSamplesPerInterval / (double) 44100;
!         mSpectrumCallbackProc(mSpectrumCallbackContext, duration);
      }
  
      unlockBands();
  }
  
--- 190,12 ---
      mBands->UpdateBands(size, magnitudes, magnitudes);
  
      // Call our listener to dispatch the spectrum event
      if (mSpectrumCallbackProc) {
          double duration = (double) mSamplesPerInterval / (double) 44100;
!         double timestamp = mFirstBufferDelivered ? -1.0 : 0.0;
+         mSpectrumCallbackProc(mSpectrumCallbackContext, duration, timestamp);
      }
  
      unlockBands();
  }
  

*** 212,10 ***
--- 214,14 ---
  void AVFAudioSpectrumUnit::SetSpectrumCallbackProc(AVFSpectrumUnitCallbackProc proc, void *context) {
      mSpectrumCallbackProc = proc;
      mSpectrumCallbackContext = context;
  }
  
+ void AVFAudioSpectrumUnit::SetFirstBufferDelivered(bool isFirstBufferDelivered) {
+     mFirstBufferDelivered = isFirstBufferDelivered;
+ }
+ 
  static gboolean PostMessageCallback(GstElement * element, GstMessage * message) {
      if (message == NULL) {
          return FALSE;
      }
  
< prev index next >