| | |
| | | namespace ffwrapper{ |
| | | |
| | | class VideoProp; |
| | | class CodedData; |
| | | class FrameData; |
| | | |
| | | class FormatIn |
| | | { |
| | | public: |
| | | explicit FormatIn(bool hw=true); |
| | | explicit FormatIn(const VideoProp &prop, bool hw=true); |
| | | ~FormatIn(); |
| | | |
| | | public: |
| | |
| | | int open(const char *filename, AVDictionary **options); |
| | | bool findStreamInfo(AVDictionary **options); |
| | | |
| | | bool openCodec(const int type, AVDictionary **options); |
| | | bool openCodec(AVDictionary **options); |
| | | |
| | | bool readPacket(AVPacket &pkt_out); |
| | | bool readPacket(std::shared_ptr<CodedData> &data); |
| | | int readPacket(AVPacket *pkt_out); |
| | | |
| | | int decode(AVFrame* &frame, AVPacket &pkt); |
| | | int decode(std::shared_ptr<FrameData> &frame_data, |
| | | std::shared_ptr<CodedData> &data); |
| | | int decode(AVFrame* frame, AVPacket *pkt); |
| | | |
| | | int readFrame(AVFrame* &frame); |
| | | int readFrame(std::shared_ptr<FrameData> &frame_data); |
| | | |
| | | bool isVideoPkt(AVPacket &pkt); |
| | | bool isAudioPkt(AVPacket &pkt); |
| | | bool isVideoPkt(AVPacket *pkt); |
| | | bool isAudioPkt(AVPacket *pkt); |
| | | bool notVideoAudio(AVPacket *pkt); |
| | | private: |
| | | bool allocCodec(AVCodec *dec, AVStream *s, AVDictionary **options); |
| | | public: |
| | | AVStream *getStream(int type = -1); |
| | | AVCodecContext *getCodecContext(int type = 0); |
| | | AVFormatContext *getFromatContext(){return ctx_;} |
| | | const double getFPS()const{return fps_;} |
| | | const bool IsHEVC()const; |
| | | const bool isAVC1()const; |
| | | private: |
| | | AVFormatContext *ctx_; |
| | | AVCodecContext *dec_ctx_; |
| | | int vs_idx_; |
| | | int as_idx_; |
| | | |
| | | VideoProp *prop_; |
| | | bool hw_accl_; |
| | | double fps_; |
| | | private: |