| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #pragma once
- #include <string>
- #include <memory>
- extern "C"
- {
- #include "libavformat/avformat.h"
- #include "libavcodec/avcodec.h"
- #include "libavdevice/avdevice.h"
- #include "libavutil/imgutils.h"
- #include "libswscale/swscale.h"
- #include "libavutil/timestamp.h"
- #include "libavutil/rational.h"
- #include "libavutil/time.h"
- }
- class CMediaSourceRtsp {
- public:
- CMediaSourceRtsp();
- ~CMediaSourceRtsp();
- std::string m_Input_rtsp;
- std::string m_Output_rtsp;
- std::string m_TcpOrudp;
- int m_nVideoStream;
- bool m_nWriteflag;
- int64_t m_timeout;//打开输出文件阻塞的超时时间,单位为秒,av_gettime获取的单位是微妙
- int m_NetCount;
- int64_t m_nStartTime;//微妙
- AVFormatContext* outputContext;
- AVFormatContext* inputContext;
- void CheckOutputNet();
- void ResetConnect();
- void ActionOpenInput();
- void ActionOpenOutput();
- bool OpenInput(std::string inputUrl, std::string transport);
- bool OpenOutput(std::string outUrl);
- static int InterruptCb(void* ctx);
- void CloseOutput();
- void CloseInput();
- std::shared_ptr<AVPacket> ReadPacket();
- int WritePacket(std::shared_ptr<AVPacket> packet);
- };
|