| | |
| | | #ifndef _cffmpeg_wrapper_hpp_ |
| | | #define _cffmpeg_wrapper_hpp_ |
| | | |
| | | extern "C"{ |
| | | #include <libavcodec/avcodec.h> |
| | | } |
| | | |
| | | #include <stdint.h> |
| | | |
| | | #include <string> |
| | |
| | | |
| | | private: |
| | | std::unique_ptr<ffwrapper::FormatIn> init_reader(const char* input); |
| | | ffwrapper::FormatIn* init_reader_gb28181(const char* input); |
| | | // ffwrapper::FormatIn* init_reader_gb28181(const char* input); |
| | | void init_worker(ffwrapper::FormatIn *in); |
| | | int init_recorder(ffwrapper::FormatIn *in, std::string dir, const int mind, const int maxd); |
| | | void run_worker(ffwrapper::FormatIn *in, buz::avpacket &pkt); |
| | | |
| | | void cache_rec_info(int &index, std::string &path); |
| | | void cache_pic(std::shared_ptr<ffwrapper::FrameData> &frame); |
| | | |
| | | void cacheAVPacket(const AVPacket &pkt); |
| | | public: |
| | | int RunStream(const char* input); |
| | | private: |
| | |
| | | FUNC_REC func); |
| | | |
| | | void ScalePicture(const int w, const int h, const int flags); |
| | | void UseGB28181(); |
| | | void UseCPU(); |
| | | public: //decoder |
| | | void BuildDecoder(); |
| | | void GetPicDecoder(unsigned char **data, int *w, int *h); |
| | | void GetPacket(unsigned char **pktData, int *size, int *key); |
| | | //active api |
| | | void ActiveDecoder(FUNC_DEC fn); |
| | | |
| | |
| | | |
| | | std::list<pic_bgr24> list_pic_; |
| | | std::mutex mutex_pic_; |
| | | |
| | | std::list<AVPacket> list_avpkt_; |
| | | std::mutex mutex_avpkt_; |
| | | |
| | | // active api |
| | | FUNC_REC func_rec_; |
| | | FUNC_DEC func_dec_; |
| | | |
| | | int scale_w_, scale_h_, scale_f_; |
| | | int gb_, cpu_; |
| | | //////////////////test frame to bgr24 |
| | | public: |
| | | uint8_t *decodeJPEG(const char *file, int *w, int *h); |