summaryrefslogtreecommitdiff
path: root/amadec/omx_audio/ASF_mediasource.h (plain)
blob: 1de9db492c9aa5288120848ab5a43566d48f6c26
1#ifndef MEDIA_ASF_MEDIASOURCE_H_
2#define MEDIA_ASF_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#include "../audio-dec.h"
10
11namespace android
12{
13
14typedef int (*fp_read_buffer)(unsigned char *, int);
15
16//should corespond to the CodecID defined in <amffmpeg/libavcodec/avcodec.h>
17enum {
18 CODEC_ID_MP2 = 0x15000,
19 CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3
20 CODEC_ID_AAC,
21 CODEC_ID_AC3,
22 CODEC_ID_DTS,
23 CODEC_ID_VORBIS,
24 CODEC_ID_DVAUDIO,
25 CODEC_ID_WMAV1,
26 CODEC_ID_WMAV2,
27 CODEC_ID_MACE3,
28 CODEC_ID_MACE6,
29 CODEC_ID_VMDAUDIO,
30 CODEC_ID_FLAC,
31 CODEC_ID_MP3ADU,
32 CODEC_ID_MP3ON4,
33 CODEC_ID_SHORTEN,
34 CODEC_ID_ALAC,
35 CODEC_ID_WESTWOOD_SND1,
36 CODEC_ID_GSM, ///< as in Berlin toast format
37 CODEC_ID_QDM2,
38 CODEC_ID_COOK,
39 CODEC_ID_TRUESPEECH,
40 CODEC_ID_TTA,
41 CODEC_ID_SMACKAUDIO,
42 CODEC_ID_QCELP,
43 CODEC_ID_WAVPACK,
44 CODEC_ID_DSICINAUDIO,
45 CODEC_ID_IMC,
46 CODEC_ID_MUSEPACK7,
47 CODEC_ID_MLP,
48 CODEC_ID_GSM_MS, /* as found in WAV */
49 CODEC_ID_ATRAC3,
50 CODEC_ID_VOXWARE,
51 CODEC_ID_APE,
52 CODEC_ID_NELLYMOSER,
53 CODEC_ID_MUSEPACK8,
54 CODEC_ID_SPEEX,
55 CODEC_ID_WMAVOICE,
56 CODEC_ID_WMAPRO,
57 CODEC_ID_WMALOSSLESS,
58 CODEC_ID_ATRAC3P,
59 CODEC_ID_EAC3,
60 CODEC_ID_SIPR,
61 CODEC_ID_MP1,
62 CODEC_ID_TWINVQ,
63 CODEC_ID_TRUEHD,
64 CODEC_ID_MP4ALS,
65 CODEC_ID_ATRAC1,
66 CODEC_ID_BINKAUDIO_RDFT,
67 CODEC_ID_BINKAUDIO_DCT,
68 CODEC_ID_AAC_LATM,
69 CODEC_ID_QDMC,
70 CODEC_ID_CELT,
71};
72
73#define CODEC_ID_WMAV1_OMX 0x160
74#define CODEC_ID_WMAV2_OMX 0x161
75#define CODEC_ID_WMAPRO_OMX
76
77
78
79
80class Asf_MediaSource : public AudioMediaSource
81{
82public:
83 Asf_MediaSource(void *read_buffer, aml_audio_dec_t *audec);
84
85 status_t start(MetaData *params = NULL);
86 status_t stop();
87 sp<MetaData> getFormat();
88 status_t read(MediaBuffer **buffer, const ReadOptions *options = NULL);
89
90 int GetReadedBytes();
91 int GetSampleRate();
92 int GetChNum();
93 int* Get_pStop_ReadBuf_Flag();
94 int Set_pStop_ReadBuf_Flag(int *pStop);
95
96 int set_Asf_MetaData(aml_audio_dec_t *audec);
97 int MediaSourceRead_buffer(unsigned char *buffer, int size);
98
99 fp_read_buffer fpread_buffer;
100
101 int sample_rate;
102 int ChNum;
103 int frame_size;
104 int *pStop_ReadBuf_Flag;
105 int extradata_size;
106 int64_t bytes_readed_sum_pre;
107 int64_t bytes_readed_sum;
108protected:
109 virtual ~Asf_MediaSource();
110
111private:
112 bool mStarted;
113 sp<DataSource> mDataSource;
114 sp<MetaData> mMeta;
115 MediaBufferGroup *mGroup;
116 int64_t mCurrentTimeUs;
117 int mBytesReaded;
118 int block_align;
119 Asf_MediaSource(const Asf_MediaSource &);
120 Asf_MediaSource &operator=(const Asf_MediaSource &);
121};
122
123
124}
125
126#endif
127
128