545 files changed, 230976 insertions, 0 deletions
diff --git a/amadec/omx_audio/ASF_mediasource.h b/amadec/omx_audio/ASF_mediasource.h new file mode 100644 index 0000000..1de9db4 --- a/dev/null +++ b/amadec/omx_audio/ASF_mediasource.h @@ -0,0 +1,127 @@ +#ifndef MEDIA_ASF_MEDIASOURCE_H_ +#define MEDIA_ASF_MEDIASOURCE_H_ + +#include "MediaSource.h" +#include "DataSource.h" +#include "MediaBufferGroup.h" +#include "MetaData.h" +#include "audio_mediasource.h" +#include "../audio-dec.h" + +namespace android +{ + +typedef int (*fp_read_buffer)(unsigned char *, int); + +//should corespond to the CodecID defined in <amffmpeg/libavcodec/avcodec.h> +enum { + CODEC_ID_MP2 = 0x15000, + CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3 + CODEC_ID_AAC, + CODEC_ID_AC3, + CODEC_ID_DTS, + CODEC_ID_VORBIS, + CODEC_ID_DVAUDIO, + CODEC_ID_WMAV1, + CODEC_ID_WMAV2, + CODEC_ID_MACE3, + CODEC_ID_MACE6, + CODEC_ID_VMDAUDIO, + CODEC_ID_FLAC, + CODEC_ID_MP3ADU, + CODEC_ID_MP3ON4, + CODEC_ID_SHORTEN, + CODEC_ID_ALAC, + CODEC_ID_WESTWOOD_SND1, + CODEC_ID_GSM, ///< as in Berlin toast format + CODEC_ID_QDM2, + CODEC_ID_COOK, + CODEC_ID_TRUESPEECH, + CODEC_ID_TTA, + CODEC_ID_SMACKAUDIO, + CODEC_ID_QCELP, + CODEC_ID_WAVPACK, + CODEC_ID_DSICINAUDIO, + CODEC_ID_IMC, + CODEC_ID_MUSEPACK7, + CODEC_ID_MLP, + CODEC_ID_GSM_MS, /* as found in WAV */ + CODEC_ID_ATRAC3, + CODEC_ID_VOXWARE, + CODEC_ID_APE, + CODEC_ID_NELLYMOSER, + CODEC_ID_MUSEPACK8, + CODEC_ID_SPEEX, + CODEC_ID_WMAVOICE, + CODEC_ID_WMAPRO, + CODEC_ID_WMALOSSLESS, + CODEC_ID_ATRAC3P, + CODEC_ID_EAC3, + CODEC_ID_SIPR, + CODEC_ID_MP1, + CODEC_ID_TWINVQ, + CODEC_ID_TRUEHD, + CODEC_ID_MP4ALS, + CODEC_ID_ATRAC1, + CODEC_ID_BINKAUDIO_RDFT, + CODEC_ID_BINKAUDIO_DCT, + CODEC_ID_AAC_LATM, + CODEC_ID_QDMC, + CODEC_ID_CELT, +}; + +#define CODEC_ID_WMAV1_OMX 0x160 +#define CODEC_ID_WMAV2_OMX 0x161 +#define CODEC_ID_WMAPRO_OMX + + + + +class Asf_MediaSource : public AudioMediaSource +{ +public: + Asf_MediaSource(void *read_buffer, aml_audio_dec_t *audec); + + status_t start(MetaData *params = NULL); + status_t stop(); + sp<MetaData> getFormat(); + status_t read(MediaBuffer **buffer, const ReadOptions *options = NULL); + + int GetReadedBytes(); + int GetSampleRate(); + int GetChNum(); + int* Get_pStop_ReadBuf_Flag(); + int Set_pStop_ReadBuf_Flag(int *pStop); + + int set_Asf_MetaData(aml_audio_dec_t *audec); + int MediaSourceRead_buffer(unsigned char *buffer, int size); + + fp_read_buffer fpread_buffer; + + int sample_rate; + int ChNum; + int frame_size; + int *pStop_ReadBuf_Flag; + int extradata_size; + int64_t bytes_readed_sum_pre; + int64_t bytes_readed_sum; +protected: + virtual ~Asf_MediaSource(); + +private: + bool mStarted; + sp<DataSource> mDataSource; + sp<MetaData> mMeta; + MediaBufferGroup *mGroup; + int64_t mCurrentTimeUs; + int mBytesReaded; + int block_align; + Asf_MediaSource(const Asf_MediaSource &); + Asf_MediaSource &operator=(const Asf_MediaSource &); +}; + + +} + +#endif + |