summaryrefslogtreecommitdiff
path: root/amadec/omx_audio/ALAC_mediasource.h (plain)
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
11namespace android
12{
13
14typedef int (*fp_read_buffer)(unsigned char *, int);
15
16class ALAC_MediaSource : public AudioMediaSource
17{
18public:
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;
44protected:
45 virtual ~ALAC_MediaSource();
46
47private:
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