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