summaryrefslogtreecommitdiff
path: root/amadec/omx_audio/DTSHD_mediasource.h (plain)
blob: f9f74f9bd5c381c3295b7f7f7b8d209c524acec7
1#ifndef MEDIA_DTSHD_MEDIASOURCE_H_
2#define MEDIA_DTSHD_MEDIASOURCE_H_
3
4#include "MediaSource.h"
5#include "DataSource.h"
6#include "MediaBufferGroup.h"
7#include "MetaData.h"
8#include "audio_mediasource.h"
9
10namespace android
11{
12//for dtsexpress stream,sometimes vbuf is full and abuf has not 40k and cause block about 5s.
13#define AML_DCA_INPUT_DATA_LEN_PTIME (10*1024)
14#define AML_DCA_OMX_DECODER_NUMBUF 2
15#define AML_DCA_SW_CORE_16M 0x7ffe8001
16#define AML_DCA_SW_CORE_14M 0x1fffe800
17#define AML_DCA_SW_CORE_24M 0xfe80007f
18#define AML_DCA_SW_CORE_16 0xfe7f0180
19#define AML_DCA_SW_CORE_14 0xff1f00e8
20#define AML_DCA_SW_CORE_24 0x80fe7f01
21#define AML_DCA_SW_SUBSTREAM_M 0x64582025
22#define AML_DCA_SW_SUBSTREAM 0x58642520
23
24typedef int (*fp_read_buffer)(unsigned char *, int);
25class Dtshd_MediaSource : public AudioMediaSource
26{
27public:
28 Dtshd_MediaSource(void *read_buffer);
29
30 status_t start(MetaData *params = NULL);
31 status_t stop();
32 sp<MetaData> getFormat();
33 status_t read(MediaBuffer **buffer, const ReadOptions *options = NULL);
34
35 int GetReadedBytes();
36 int GetSampleRate();
37 virtual int SetSampleRate(int samplerate);
38 int GetChNum();
39 int* Get_pStop_ReadBuf_Flag();
40 int Set_pStop_ReadBuf_Flag(int *pStop);
41 int MediaSourceRead_buffer(unsigned char *buffer, int size);
42
43 fp_read_buffer fpread_buffer;
44 int sample_rate;
45 int ChNum;
46 int frame_size;
47 int FrameSizeDetectFlag;
48 unsigned char * FirFraBuf;
49 int FirFraBuf_Len;
50 int FirFraBuf_Offset;
51 int FrameNumReaded;
52 int *pStop_ReadBuf_Flag;
53 int64_t bytes_readed_sum_pre;
54 int64_t bytes_readed_sum;
55protected:
56 virtual ~Dtshd_MediaSource();
57
58private:
59 bool mStarted;
60 sp<DataSource> mDataSource;
61 sp<MetaData> mMeta;
62 MediaBufferGroup *mGroup;
63 int64_t mCurrentTimeUs;
64 int mBytesReaded;
65 int block_align;
66 Dtshd_MediaSource(const Dtshd_MediaSource &);
67 Dtshd_MediaSource &operator=(const Dtshd_MediaSource &);
68};
69
70
71}
72
73#endif
74
75