summaryrefslogtreecommitdiff
path: root/amadec/omx_audio/adec_omx.h (plain)
blob: 4812073ca72a7944daf877292e9f2f4fbd95244d
1#ifndef MEDIA_ADECOMX_H_
2#define MEDIA_ADECOMX_H_
3
4#include "OMX_Index.h"
5#include "OMX_Core.h"
6#include "OMXClient.h"
7#include "audio_mediasource.h"
8#include "../audio-dec.h"
9
10namespace android
11{
12
13static const char *MEDIA_MIMETYPE_AUDIO_AC3 = "audio/ac3";
14static const char *MEDIA_MIMETYPE_AUDIO_EC3 = "audio/eac3";
15static const char *MEDIA_MIMETYPE_AUDIO_AMR_NB = "audio/3gpp";
16static const char *MEDIA_MIMETYPE_AUDIO_AMR_WB = "audio/amr-wb";
17static const char *MEDIA_MIMETYPE_AUDIO_MPEG = "audio/mpeg"; //mp3
18static const char *MEDIA_MIMETYPE_AUDIO_MPEG_LAYER_I = "audio/mpeg-L1";
19static const char *MEDIA_MIMETYPE_AUDIO_MPEG_LAYER_II = "audio/mpeg-L2";
20static const char *MEDIA_MIMETYPE_AUDIO_AAC = "audio/mp4a-latm";
21static const char *MEDIA_MIMETYPE_AUDIO_QCELP = "audio/qcelp";
22static const char *MEDIA_MIMETYPE_AUDIO_VORBIS = "audio/vorbis";
23static const char *MEDIA_MIMETYPE_AUDIO_G711_ALAW = "audio/g711-alaw";
24static const char *MEDIA_MIMETYPE_AUDIO_G711_MLAW = "audio/g711-mlaw";
25static const char *MEDIA_MIMETYPE_AUDIO_RAW = "audio/raw";
26static const char *MEDIA_MIMETYPE_AUDIO_ADPCM_IMA = "audio/adpcm-ima";
27static const char *MEDIA_MIMETYPE_AUDIO_ADPCM_MS = "audio/adpcm-ms";
28static const char *MEDIA_MIMETYPE_AUDIO_FLAC = "audio/flac";
29static const char *MEDIA_MIMETYPE_AUDIO_AAC_ADTS = "audio/aac-adts";
30static const char *MEDIA_MIMETYPE_AUDIO_ALAC = "audio/alac";
31static const char *MEDIA_MIMETYPE_AUDIO_AAC_ADIF = "audio/aac-adif";
32static const char *MEDIA_MIMETYPE_AUDIO_AAC_LATM = "audio/aac-latm";
33static const char *MEDIA_MIMETYPE_AUDIO_ADTS_PROFILE = "audio/adts";
34static const char *MEDIA_MIMETYPE_AUDIO_WMA = "audio/wma";
35static const char *MEDIA_MIMETYPE_AUDIO_WMAPRO = "audio/wmapro";
36static const char *MEDIA_MIMETYPE_AUDIO_DTSHD = "audio/dtshd";
37static const char *MEDIA_MIMETYPE_AUDIO_TRUEHD = "audio/truehd";
38static const char *MEDIA_MIMETYPE_AUDIO_FFMPEG = "audio/ffmpeg";
39
40class AmlOMXCodec
41{
42public:
43
44 AmlOMXCodec(int codec_type, void *read_buffer, int *exit, aml_audio_dec *audec);
45
46 OMXClient m_OMXClient;
47 sp<AudioMediaSource> m_OMXMediaSource;
48 int read(unsigned char *buf, unsigned *size, int *exit);
49 virtual status_t start(aml_audio_dec_t *audec);
50 void pause();
51 void stop();
52 int GetDecBytes();
53 void lock_init();
54 void locked();
55 void unlocked();
56 int started_flag;
57 int omx_codec_type;
58 //protected:
59 virtual ~AmlOMXCodec();
60 //private:
61 sp<MediaSource> m_codec;
62 pthread_mutex_t lock;
63 int64_t buf_decode_offset;
64 int64_t buf_decode_offset_pre;
65
66};
67
68
69}
70
71#endif
72