#pragma once #include "struct.h" #include #include class parser_callback : public DataCallback { public: parser_callback(std::list *videoList, std::list *audioList, Cond *condVideo, Cond *condAudio); ~parser_callback() override; virtual int push_packet(const packet_t* pkt, const av_type_t type) override; virtual int open_codec(const int codec_type, const av_type_t type) override; virtual int is_quit() override; virtual int quit() override; virtual int push_finish() override; private: #define MAX_AUDIO_SIZE (50 * 10) #define MAX_VIDEO_SIZE (25 * 10) Cond *mConditon_Video; std::list *mVideoPacktList; Cond *mConditon_Audio; std::list *mAudioPacktList; int quit_; bool inputVideoQuene(const AVPacket &pkt); bool inputAudioQuene(const AVPacket &pkt); bool isVideoQueneFull(); bool isAudioQueneFull(); };