C++SDK  1.0.0
ITms2Player.h
浏览该文件的文档.
1 #ifndef __3TEE_ITMS2Player_H__
2 #define __3TEE_ITMS2Player_H__
3 
4 #include "combase.h"
5 #include <functional>
6 
8 public:
10  static void destroy(ITmsTransfer* transf);
12  static int getTmsCost(const std::string& tmsfile);
16  typedef std::function<void(void* userdata, int pecent)> Cb_TransferStatus;
17  typedef std::function<void(void* userdata, Result result, const std::string& msg)> Cb_TransferResult;
18  typedef std::function<void(void* userdata, const std::string& newfilename)> Cb_TransferFilenameChanged;
19 public:
20  virtual std::string name() const = 0;
25  virtual bool transfer(Cb_TransferStatus cb, int cpulevel) = 0;
27  virtual void cancel() = 0;
29  virtual bool isTransferring() const = 0;
33  virtual void setResultCb(Cb_TransferResult cb) = 0;
37  virtual void setFilenameChangedCb(Cb_TransferFilenameChanged cb) = 0;
41  virtual void setUserData(void* userdata) = 0;
42  //
43  struct Stats {
44  std::string roomId; /* 房间号 */
45  uint64 ms_begin; /* 起始时间 */
46  uint32 ms_duration; /* 延续时间 */
47  uint32 ms_tranferd; /* 转换时间 */
48  uint64 file_size; /* 文件大小 */
50  uint16 channel_audio; /* 音频通道数 */
51  uint32 framesum_audio; /* 音频帧数 */
53  uint16 channel_video; /* 视频通道数 */
54  uint32 framesum_video; /* 视频帧数 */
55  uint32 fps_video; /* 视频帧率 */
56 
57  Stats() : ms_begin(0), ms_duration(0), ms_tranferd(0), file_size(0)
58  , isrtp_audio(0), channel_audio(0), framesum_audio(0)
59  , isrtp_video(0), channel_video(0), framesum_video(0), fps_video(0){}
60  };
61  static std::string toString(const Stats& stats);
65  virtual const Stats& getStats() const = 0;
66 protected:
67  virtual ~ITmsTransfer() {}
68 };
69 
75 public:
79  static ITmsSpliter* create(const std::string& tmsfile);
80 public:
84  virtual bool setOutputPath(const std::string& mp4path) = 0;
85 protected:
86  virtual ~ITmsSpliter() {}
87 };
88 
95 public:
99  static ITms2Player* create(const std::string& tmsfile, bool isMemory/*or disk*/);
100 public:
104  virtual bool setOutputFile(const std::string& mp4file) = 0;
108  virtual bool setOutputRtmp(const std::string& pushurl) = 0;
112  virtual bool setVideoCrop(bool value) = 0;
116  virtual bool setTimestamp(bool value) = 0;
120  virtual bool setMixSoleVideo(bool value) = 0;
124  virtual bool setScaleScreenv(bool value) = 0;
128  virtual bool setViewsBgImage(const std::string& imgfile) = 0; // jpg, png, bmp
132  virtual bool setVideoBgImage(const std::string& imgfile) = 0;
133 
134 protected:
135  virtual ~ITms2Player() {}
136 };
137 
138 #endif//__3TEE_ITMS2Player_H__
std::function< void(void *userdata, int pecent)> Cb_TransferStatus
Definition: ITms2Player.h:16
uint32 fps_video
Definition: ITms2Player.h:55
unsigned short uint16
Definition: defines.h:395
std::function< void(void *userdata, Result result, const std::string &msg)> Cb_TransferResult
Definition: ITms2Player.h:17
std::function< void(void *userdata, const std::string &newfilename)> Cb_TransferFilenameChanged
Definition: ITms2Player.h:18
uint32 framesum_audio
Definition: ITms2Player.h:51
Definition: ITms2Player.h:7
Definition: ITms2Player.h:94
bool isrtp_video
Definition: ITms2Player.h:52
#define RT_API_EXPORT
Definition: defines.h:188
unsigned int uint32
Definition: defines.h:393
uint16 channel_video
Definition: ITms2Player.h:53
virtual ~ITms2Player()
Definition: ITms2Player.h:135
unsigned long long uint64
Definition: defines.h:382
Definition: ITms2Player.h:43
uint32 ms_duration
Definition: ITms2Player.h:46
uint32 ms_tranferd
Definition: ITms2Player.h:47
uint16 channel_audio
Definition: ITms2Player.h:50
const String toString(const RecordInfo &obj)
uint64 file_size
Definition: ITms2Player.h:48
bool isrtp_audio
Definition: ITms2Player.h:49
uint64 ms_begin
Definition: ITms2Player.h:45
Definition: ITms2Player.h:74
virtual ~ITmsTransfer()
Definition: ITms2Player.h:67
virtual ~ITmsSpliter()
Definition: ITms2Player.h:86
uint32 framesum_video
Definition: ITms2Player.h:54
std::string roomId
Definition: ITms2Player.h:44
Stats()
Definition: ITms2Player.h:57