< 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 +190,12 @@
      mBands->UpdateBands(size, magnitudes, magnitudes);
  
      // Call our listener to dispatch the spectrum event
      if (mSpectrumCallbackProc) {
          double duration = (double) mSamplesPerInterval / (double) 44100;
-         mSpectrumCallbackProc(mSpectrumCallbackContext, duration);
+         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 >