Home | History | Annotate | Download | only in stagefright
      1 #ifndef SINE_SOURCE_H_
      2 
      3 #define SINE_SOURCE_H_
      4 
      5 #include <media/MediaSource.h>
      6 #include <utils/Compat.h>
      7 
      8 namespace android {
      9 
     10 class MediaBufferGroup;
     11 
     12 struct SineSource : public MediaSource {
     13     SineSource(int32_t sampleRate, int32_t numChannels);
     14 
     15     virtual status_t start(MetaData *params);
     16     virtual status_t stop();
     17 
     18     virtual sp<MetaData> getFormat();
     19 
     20     virtual status_t read(
     21             MediaBufferBase **out, const ReadOptions *options = NULL);
     22 
     23 protected:
     24     virtual ~SineSource();
     25 
     26 private:
     27     enum { kBufferSize = 8192 };
     28     static const CONSTEXPR double kFrequency = 500.0;
     29 
     30     bool mStarted;
     31     int32_t mSampleRate;
     32     int32_t mNumChannels;
     33     size_t mPhase;
     34 
     35     MediaBufferGroup *mGroup;
     36 };
     37 
     38 }  // namespace android
     39 
     40 #endif // SINE_SOURCE_H_
     41