1#ifndef SINE_SOURCE_H_ 2 3#define SINE_SOURCE_H_ 4 5#include <media/stagefright/MediaSource.h> 6 7namespace android { 8 9struct MediaBufferGroup; 10 11struct 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 22protected: 23 virtual ~SineSource(); 24 25private: 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