AudioDecoder.h
722 字节
#pragma once
#include "media_info.h"
#include <list>
class CAudioDecoder
{
public:
CAudioDecoder();
virtual ~CAudioDecoder();
int add(media_info &info);
unsigned int getuid();
int get_one_frame(AVFrame ** pFrame, int64_t & ts);
protected:
int open_input_file(const char *filename);
int init_filters(void);
int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx, const char *filter_spec);
int filter_encode_write_frame(AVFrame *frame, unsigned int stream_index);
protected:
vector<media_info> _info;
list<AVFrame * > _decoded_frames;
float _start_time;
AVFormatContext *ifmt_ctx;
FilteringContext *filter_ctx;
bool _is_finished;
AVRational _codec_timebase;
};