blob: a9f035873f8fb23ee114394310704a994de60e59
1 | #ifndef MEDIA_ALACMEDIASOURCE_H_ |
2 | #define MEDIA_ALACMEDIASOURCE_H_ |
3 | |
4 | #include "MediaSource.h" |
5 | #include "DataSource.h" |
6 | #include "MediaBufferGroup.h" |
7 | #include "MetaData.h" |
8 | #include "audio_mediasource.h" |
9 | #include "../audio-dec.h" |
10 | |
11 | namespace android |
12 | { |
13 | |
14 | typedef int (*fp_read_buffer)(unsigned char *, int); |
15 | |
16 | class ALAC_MediaSource : public AudioMediaSource |
17 | { |
18 | public: |
19 | ALAC_MediaSource(void *read_buffer, aml_audio_dec_t *audec); |
20 | |
21 | status_t start(MetaData *params = NULL); |
22 | status_t stop(); |
23 | sp<MetaData> getFormat(); |
24 | status_t read(MediaBuffer **buffer, const ReadOptions *options = NULL); |
25 | |
26 | int GetReadedBytes(); |
27 | int GetSampleRate(); |
28 | int GetChNum(); |
29 | int* Get_pStop_ReadBuf_Flag(); |
30 | int Set_pStop_ReadBuf_Flag(int *pStop); |
31 | |
32 | int set_ALAC_MetaData(aml_audio_dec_t *audec); |
33 | int MediaSourceRead_buffer(unsigned char *buffer, int size); |
34 | |
35 | fp_read_buffer fpread_buffer; |
36 | |
37 | int sample_rate; |
38 | int ChNum; |
39 | int frame_size; |
40 | int *pStop_ReadBuf_Flag; |
41 | int extradata_size; |
42 | int64_t bytes_readed_sum_pre; |
43 | int64_t bytes_readed_sum; |
44 | protected: |
45 | virtual ~ALAC_MediaSource(); |
46 | |
47 | private: |
48 | bool mStarted; |
49 | sp<DataSource> mDataSource; |
50 | sp<MetaData> mMeta; |
51 | MediaBufferGroup *mGroup; |
52 | int64_t mCurrentTimeUs; |
53 | int mBytesReaded; |
54 | |
55 | ALAC_MediaSource(const ALAC_MediaSource &); |
56 | ALAC_MediaSource &operator=(const ALAC_MediaSource &); |
57 | }; |
58 | |
59 | |
60 | } |
61 | |
62 | #endif |
63 |