From d9952f61a53b693a75490e4932d7136e14e7dc08 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期二, 01 九月 2020 15:22:05 +0800 Subject: [PATCH] bug fixed --- csrc/ffmpeg/format/FormatIn.hpp | 27 ++++++++++++++------------- 1 files changed, 14 insertions(+), 13 deletions(-) diff --git a/csrc/ffmpeg/format/FormatIn.hpp b/csrc/ffmpeg/format/FormatIn.hpp index a569524..cac25c2 100644 --- a/csrc/ffmpeg/format/FormatIn.hpp +++ b/csrc/ffmpeg/format/FormatIn.hpp @@ -19,13 +19,12 @@ 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: @@ -35,30 +34,32 @@ 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, int stream_index = 0); - bool readPacket(std::shared_ptr<CodedData> &data, int stream_index = 0); + 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 notVideoAudio(AVPacket *pkt); private: bool allocCodec(AVCodec *dec, AVStream *s, AVDictionary **options); public: - AVStream *getStream(int type = 0); + AVStream *getStream(int type = -1); AVCodecContext *getCodecContext(int type = 0); + AVFormatContext *getFromatContext(){return ctx_;} + const double getFPS()const{return fps_;} + const bool IsHEVC()const; private: AVFormatContext *ctx_; AVCodecContext *dec_ctx_; int vs_idx_; + int as_idx_; + VideoProp *prop_; bool hw_accl_; - + double fps_; private: AVIOContext *io_ctx_; uint8_t *read_io_buff_; -- Gitblit v1.8.0