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