/* * Copyright (C) 2018 Amlogic Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef ADEC_ARMDEC_MGT_H #define ADEC_ARMDEC_MGT_H #include #include #include //#define AUDIO_ARC_DECODER 0 //#define AUDIO_ARM_DECODER 1 //#define AUDIO_FFMPEG_DECODER 2 #define DEFAULT_PCM_BUFFER_SIZE 192000*2//default out buffer size //#define AUDIO_EXTRA_DATA_SIZE (4096) typedef struct _audio_info { int bitrate; int samplerate; int channels; int file_profile; unsigned int error_num; // decode error frames unsigned int drop_num; // drop frames unsigned int decode_num; //decode success frames } AudioInfo; /* audio decoder operation*/ typedef struct audio_decoder_operations audio_decoder_operations_t; struct audio_decoder_operations { const char * name; int nAudioDecoderType; int nInBufSize; int nOutBufSize; int (*init)(audio_decoder_operations_t *); int (*decode)(audio_decoder_operations_t *, char *outbuf, int *outlen, char *inbuf, int inlen); int (*release)(audio_decoder_operations_t *); int (*getinfo)(audio_decoder_operations_t *, AudioInfo *pAudioInfo); void * priv_data;//point to audec void * priv_dec_data;//decoder private data void *pdecoder; // decoder instance int channels; unsigned long pts; int samplerate; int bps; int extradata_size; ///< extra data size char extradata[4096]; int NchOriginal; int lfepresent; }; /*enum AVSampleFormat { AV_SAMPLE_FMT_NONE = -1, AV_SAMPLE_FMT_U8, ///< unsigned 8 bits AV_SAMPLE_FMT_S16, ///< signed 16 bits AV_SAMPLE_FMT_S32, ///< signed 32 bits AV_SAMPLE_FMT_FLT, ///< float AV_SAMPLE_FMT_DBL, ///< double AV_SAMPLE_FMT_U8P, ///< unsigned 8 bits, planar AV_SAMPLE_FMT_S16P, ///< signed 16 bits, planar AV_SAMPLE_FMT_S32P, ///< signed 32 bits, planar AV_SAMPLE_FMT_FLTP, ///< float, planar AV_SAMPLE_FMT_DBLP, ///< double, planar AV_SAMPLE_FMT_S64, ///< signed 64 bits AV_SAMPLE_FMT_S64P, ///< signed 64 bits, planar AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if linking dynamically };*/ #endif