| | |
| | | |
| | | namespace cffmpeg_wrap |
| | | { |
| | | typedef struct _frm{ |
| | | AVFrame *avframe; |
| | | int length; |
| | | int width; |
| | | int height; |
| | | int64_t id; |
| | | }FRM; |
| | | |
| | | class decoder |
| | | { |
| | | private: |
| | | |
| | | ffwrapper::FormatIn *decRef_; |
| | | |
| | | std::list<FRM> list_frm_; |
| | | std::mutex mutex_frm_; |
| | | std::list<CPacket> list_pkt_; |
| | | std::mutex mutex_pkt_; |
| | | |
| | | int64_t next_idx_; |
| | | |
| | | private: |
| | | int initDecoder(); |
| | | int saveFrame(AVFrame *frame, const int64_t &id); |
| | | public: |
| | | void Start(); |
| | | int SetFrame(const CPacket &pkt); |
| | | void GetFrame(unsigned char **data, int *w, int *h, int *format, int *length, int64_t *id); |
| | | private: |
| | | |
| | | |
| | | public: |
| | | explicit decoder(ffwrapper::FormatIn *dec); |
| | | ~decoder(); |