mirror of
https://gitee.com/xia-chu/ZLMediaKit.git
synced 2026-05-20 00:37:49 +08:00
Compare commits
4 Commits
a972fa85ec
...
57fede9508
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57fede9508 | ||
|
|
d2e099bd23 | ||
|
|
87d84c47fe | ||
|
|
90fcad41f2 |
@ -193,6 +193,8 @@ API_EXPORT uint64_t API_CALL mk_media_source_get_alive_second(const mk_media_sou
|
||||
API_EXPORT int API_CALL mk_media_source_close(const mk_media_source ctx,int force);
|
||||
//MediaSource::seekTo()
|
||||
API_EXPORT int API_CALL mk_media_source_seek_to(const mk_media_source ctx,uint32_t stamp);
|
||||
// MediaSource::setSpeed()
|
||||
API_EXPORT void API_CALL mk_media_source_set_speed(const mk_media_source ctx, float speed);
|
||||
|
||||
/**
|
||||
* rtp推流成功与否的回调(第一次成功后,后面将一直重试)
|
||||
|
||||
@ -125,6 +125,21 @@ API_EXPORT int API_CALL mk_recorder_start(int type, const char *vhost, const cha
|
||||
*/
|
||||
API_EXPORT int API_CALL mk_recorder_stop(int type, const char *vhost, const char *app, const char *stream);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 开始事件视频录制
|
||||
* @param vhost 虚拟主机
|
||||
* @param app 应用名
|
||||
* @param stream 流id
|
||||
* @param path 录像文件保存相对路径,包括名称
|
||||
* @param back_ms 回溯录制时长
|
||||
* @param forward_ms 后续录制时长
|
||||
* @return 1:成功,0:失败
|
||||
* */
|
||||
API_EXPORT int API_CALL mk_recorder_start_task(const char *vhost, const char *app, const char *stream, const char *path, uint32_t back_ms, uint32_t forward_ms);
|
||||
|
||||
|
||||
/**
|
||||
* 加载mp4列表
|
||||
* @param vhost 虚拟主机
|
||||
|
||||
@ -21,6 +21,7 @@ typedef struct mk_rtp_server_t *mk_rtp_server;
|
||||
* @param port 监听端口,0则为随机
|
||||
* @param tcp_mode tcp模式(0: 不监听端口 1: 监听端口 2: 主动连接到服务端)
|
||||
* @param stream_id 该端口绑定的流id
|
||||
* @param multiple 多路复用RTP服务器 1: 开启 0: 不开启
|
||||
* @return
|
||||
* Create GB28181 RTP server
|
||||
* @param port Listening port, 0 for random
|
||||
@ -32,6 +33,7 @@ typedef struct mk_rtp_server_t *mk_rtp_server;
|
||||
*/
|
||||
API_EXPORT mk_rtp_server API_CALL mk_rtp_server_create(uint16_t port, int tcp_mode, const char *stream_id);
|
||||
API_EXPORT mk_rtp_server API_CALL mk_rtp_server_create2(uint16_t port, int tcp_mode, const char *vhost, const char *app, const char *stream_id);
|
||||
API_EXPORT mk_rtp_server API_CALL mk_rtp_server_create3(uint16_t port, int tcp_mode, const char *vhost, const char *app, const char *stream_id, int multiplex);
|
||||
|
||||
/**
|
||||
* TCP 主动模式时连接到服务器是否成功的回调
|
||||
@ -110,6 +112,53 @@ typedef void(API_CALL *on_mk_rtp_server_detach)(void *user_data);
|
||||
API_EXPORT void API_CALL mk_rtp_server_set_on_detach(mk_rtp_server ctx, on_mk_rtp_server_detach cb, void *user_data);
|
||||
API_EXPORT void API_CALL mk_rtp_server_set_on_detach2(mk_rtp_server ctx, on_mk_rtp_server_detach cb, void *user_data, on_user_data_free user_data_free);
|
||||
|
||||
/**
|
||||
* 更新RTP服务器过滤SSRC
|
||||
* @param ctx 服务器对象
|
||||
* @param ssrc 十进制ssrc
|
||||
*
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_rtp_server_update_ssrc(mk_rtp_server ctx, uint32_t ssrc);
|
||||
|
||||
|
||||
/**
|
||||
* rtp信息获取回调
|
||||
* @param exist 存在rtp信息 0: 不存在 1: 存在
|
||||
* @param peer_ip 连接ip
|
||||
* @param peer_port 连接端口
|
||||
* @param local_ip 本地ip
|
||||
* @param local_port 本地端口
|
||||
* @param identifier 身份信息
|
||||
*
|
||||
*/
|
||||
typedef void(API_CALL *on_mk_rtp_get_info)(int exist, const char *peer_ip, uint16_t peer_port, const char *local_ip, uint16_t local_port, const char *identifier);
|
||||
|
||||
/**
|
||||
* 获取rtp推流信息
|
||||
* @param app 应用名
|
||||
* @param stream 流id
|
||||
* @param cb rtp信息获取回调
|
||||
*
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_rtp_get_info(const char *app, const char *stream, on_mk_rtp_get_info cb);
|
||||
|
||||
|
||||
/**
|
||||
* 暂停RTP超时检查
|
||||
* @param app 应用名
|
||||
* @param stream 流id
|
||||
*
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_rtp_pause_check(const char *app, const char *stream);
|
||||
|
||||
/**
|
||||
* 恢复RTP超时检查
|
||||
* @param app 应用名
|
||||
* @param stream 流id
|
||||
*
|
||||
*/
|
||||
API_EXPORT void API_CALL mk_rtp_resume_check(const char *app, const char *stream);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@ -296,6 +296,13 @@ API_EXPORT int API_CALL mk_media_source_seek_to(const mk_media_source ctx,uint32
|
||||
MediaSource *src = (MediaSource *)ctx;
|
||||
return src->seekTo(stamp);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_media_source_set_speed(const mk_media_source ctx, float speed) {
|
||||
assert(ctx);
|
||||
MediaSource *src = (MediaSource *)ctx;
|
||||
src->getOwnerPoller()->async([=]() mutable { src->speed(speed); });
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_media_source_start_send_rtp(const mk_media_source ctx, const char *dst_url, uint16_t dst_port, const char *ssrc, int con_type, on_mk_media_source_send_rtp_result cb, void *user_data) {
|
||||
mk_media_source_start_send_rtp2(ctx, dst_url, dst_port, ssrc, con_type, cb, user_data, nullptr);
|
||||
}
|
||||
@ -347,6 +354,7 @@ API_EXPORT void API_CALL mk_media_source_start_send_rtp4(const mk_media_source c
|
||||
args.close_delay_ms = (*ini_ptr)["close_delay_ms"].empty() ? 0 : (*ini_ptr)["close_delay_ms"].as<int>();
|
||||
args.rtcp_timeout_ms = (*ini_ptr)["rtcp_timeout_ms"].empty() ? 30000 : (*ini_ptr)["rtcp_timeout_ms"].as<int>();
|
||||
args.rtcp_send_interval_ms = (*ini_ptr)["rtcp_send_interval_ms"].empty() ? 5000 : (*ini_ptr)["rtcp_send_interval_ms"].as<int>();
|
||||
args.enable_origin_recv_limit = (*ini_ptr)["enable_origin_recv_limit"].empty() ? false : (*ini_ptr)["enable_origin_recv_limit"].as<bool>();
|
||||
std::shared_ptr<void> ptr(
|
||||
user_data, user_data_free ? user_data_free : [](void *) {});
|
||||
src->getOwnerPoller()->async([=]() mutable {
|
||||
|
||||
@ -342,6 +342,7 @@ API_EXPORT void API_CALL mk_media_start_send_rtp4(mk_media ctx, const char *dst_
|
||||
args.close_delay_ms = (*ini_ptr)["close_delay_ms"].empty() ? 30000 : (*ini_ptr)["close_delay_ms"].as<int>();
|
||||
args.rtcp_timeout_ms = (*ini_ptr)["rtcp_timeout_ms"].empty() ? 30000 : (*ini_ptr)["rtcp_timeout_ms"].as<int>();
|
||||
args.rtcp_send_interval_ms = (*ini_ptr)["rtcp_send_interval_ms"].empty() ? 5000 : (*ini_ptr)["rtcp_send_interval_ms"].as<int>();
|
||||
args.enable_origin_recv_limit = (*ini_ptr)["enable_origin_recv_limit"].empty() ? false : (*ini_ptr)["enable_origin_recv_limit"].as<bool>();
|
||||
// sender参数无用 [AUTO-TRANSLATED:21590ae5]
|
||||
// The sender parameter is useless
|
||||
auto ref = *obj;
|
||||
|
||||
@ -85,6 +85,27 @@ API_EXPORT int API_CALL mk_recorder_stop(int type, const char *vhost, const char
|
||||
return stopRecord((Recorder::type)type,vhost,app,stream);
|
||||
}
|
||||
|
||||
API_EXPORT int API_CALL mk_recorder_start_task(const char *vhost, const char *app, const char *stream, const char *path, uint32_t back_ms, uint32_t forward_ms) {
|
||||
assert(vhost && app && stream);
|
||||
auto src = MediaSource::find(vhost, app, stream);
|
||||
if (!src) {
|
||||
WarnL << "未找到相关的MediaSource,startRecordTask失败:" << vhost << "/" << app << "/" << stream;
|
||||
return false;
|
||||
}
|
||||
bool ret;
|
||||
src->getOwnerPoller()->async([=]() mutable {
|
||||
std::string err;
|
||||
try {
|
||||
src->getMuxer()->startRecord(path, back_ms, forward_ms);
|
||||
} catch (std::exception &ex) {
|
||||
err = ex.what();
|
||||
WarnL << "MediaSource开启startRecordTask失败:" << vhost << "/" << app << "/" << stream << " what: " << err;
|
||||
}
|
||||
ret = err.empty();
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_load_mp4_file(const char *vhost, const char *app, const char *stream, const char *file_path, int file_repeat) {
|
||||
mINI ini;
|
||||
mk_load_mp4_file2(vhost, app, stream, file_path, file_repeat, (mk_ini)&ini);
|
||||
|
||||
@ -30,6 +30,13 @@ API_EXPORT mk_rtp_server API_CALL mk_rtp_server_create2(uint16_t port, int tcp_m
|
||||
return (mk_rtp_server)server;
|
||||
}
|
||||
|
||||
API_EXPORT mk_rtp_server API_CALL mk_rtp_server_create3(uint16_t port, int tcp_mode, const char *vhost, const char *app, const char *stream_id, int multiplex) {
|
||||
RtpServer::Ptr *server = new RtpServer::Ptr(new RtpServer);
|
||||
GET_CONFIG(std::string, local_ip, General::kListenIP)
|
||||
(*server)->start(port, local_ip.c_str(), MediaTuple { vhost, app, stream_id, "" }, (RtpServer::TcpMode)tcp_mode,multiplex);
|
||||
return (mk_rtp_server)server;
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_rtp_server_connect(mk_rtp_server ctx, const char *dst_url, uint16_t dst_port, on_mk_rtp_server_connected cb, void *user_data) {
|
||||
mk_rtp_server_connect2(ctx, dst_url, dst_port, cb, user_data, nullptr);
|
||||
}
|
||||
@ -72,6 +79,41 @@ API_EXPORT void API_CALL mk_rtp_server_set_on_detach2(mk_rtp_server ctx, on_mk_r
|
||||
}
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_rtp_server_update_ssrc(mk_rtp_server ctx, uint32_t ssrc) {
|
||||
assert(ctx);
|
||||
RtpServer::Ptr *server = (RtpServer::Ptr *)ctx;
|
||||
(*server)->updateSSRC(ssrc);
|
||||
}
|
||||
|
||||
|
||||
API_EXPORT void API_CALL mk_rtp_get_info(const char *app, const char *stream, on_mk_rtp_get_info cb) {
|
||||
assert(cb);
|
||||
auto src = MediaSource::find(DEFAULT_VHOST, app, stream);
|
||||
auto process = src ? src->getRtpProcess() : nullptr;
|
||||
if (!process) {
|
||||
cb(0, nullptr, 0, nullptr, 0, nullptr);
|
||||
return;
|
||||
}
|
||||
SockInfo *info = process.get();
|
||||
cb(1, info->get_local_ip().c_str(), info->get_peer_port(), info->get_local_ip().c_str(), info->get_local_port(), info->getIdentifier().c_str());
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_rtp_pause_check(const char *app, const char *stream) {
|
||||
auto src = MediaSource::find(DEFAULT_VHOST, app, stream);
|
||||
auto process = src ? src->getRtpProcess() : nullptr;
|
||||
if (process) {
|
||||
process->setStopCheckRtp(true);
|
||||
}
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_rtp_resume_check(const char *app, const char *stream) {
|
||||
auto src = MediaSource::find(DEFAULT_VHOST, app, stream);
|
||||
auto process = src ? src->getRtpProcess() : nullptr;
|
||||
if (process) {
|
||||
process->setStopCheckRtp(false);
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
API_EXPORT mk_rtp_server API_CALL mk_rtp_server_create(uint16_t port, int enable_tcp, const char *stream_id) {
|
||||
|
||||
@ -700,7 +700,7 @@ void MediaSourceEvent::onReaderChanged(MediaSource &sender, int size){
|
||||
strong_sender->close(false);
|
||||
}
|
||||
return false;
|
||||
}, nullptr);
|
||||
}, this->getOwnerPoller(sender));
|
||||
}
|
||||
|
||||
string MediaSourceEvent::getOriginUrl(MediaSource &sender) const {
|
||||
|
||||
@ -177,7 +177,7 @@ static string getTrackInfoStr(const TrackSource *track_src){
|
||||
break;
|
||||
}
|
||||
}
|
||||
return std::move(codec_info);
|
||||
return codec_info;
|
||||
}
|
||||
|
||||
const ProtocolOption &MultiMediaSourceMuxer::getOption() const {
|
||||
@ -195,7 +195,7 @@ std::string MultiMediaSourceMuxer::shortUrl() const {
|
||||
}
|
||||
return _tuple.shortUrl();
|
||||
}
|
||||
|
||||
#if defined(ENABLE_RTPPROXY)
|
||||
void MultiMediaSourceMuxer::forEachRtpSender(const std::function<void(const std::string &ssrc, const RtpSender &sender)> &cb) const {
|
||||
for (auto &pr : _rtp_sender) {
|
||||
auto sender = std::get<1>(pr.second).lock();
|
||||
@ -204,7 +204,7 @@ void MultiMediaSourceMuxer::forEachRtpSender(const std::function<void(const std:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // ENABLE_RTPPROXY
|
||||
MultiMediaSourceMuxer::MultiMediaSourceMuxer(const MediaTuple& tuple, float dur_sec, const ProtocolOption &option): _tuple(tuple) {
|
||||
if (!option.stream_replace.empty()) {
|
||||
// 支持在on_publish hook中替换stream_id [AUTO-TRANSLATED:375eb2ff]
|
||||
@ -605,7 +605,9 @@ bool MultiMediaSourceMuxer::close(MediaSource &sender) {
|
||||
_mp4 = nullptr;
|
||||
_hls = nullptr;
|
||||
_hls_fmp4 = nullptr;
|
||||
#if defined(ENABLE_RTPPROXY)
|
||||
_rtp_sender.clear();
|
||||
#endif // ENABLE_RTPPROXY
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -208,9 +208,9 @@ public:
|
||||
const ProtocolOption &getOption() const;
|
||||
const MediaTuple &getMediaTuple() const;
|
||||
std::string shortUrl() const;
|
||||
|
||||
#if defined(ENABLE_RTPPROXY)
|
||||
void forEachRtpSender(const std::function<void(const std::string &ssrc, const RtpSender &sender)> &cb) const;
|
||||
|
||||
#endif // ENABLE_RTPPROXY
|
||||
protected:
|
||||
/////////////////////////////////MediaSink override/////////////////////////////////
|
||||
|
||||
@ -260,7 +260,9 @@ private:
|
||||
toolkit::Ticker _last_check;
|
||||
std::unordered_map<int, Stamp> _stamps;
|
||||
std::weak_ptr<Listener> _track_listener;
|
||||
#if defined(ENABLE_RTPPROXY)
|
||||
std::unordered_multimap<std::string, std::tuple<RingType::RingReader::Ptr, std::weak_ptr<RtpSender>>> _rtp_sender;
|
||||
#endif // ENABLE_RTPPROXY
|
||||
FMP4MediaSourceMuxer::Ptr _fmp4;
|
||||
RtmpMediaSourceMuxer::Ptr _rtmp;
|
||||
RtspMediaSourceMuxer::Ptr _rtsp;
|
||||
|
||||
@ -296,7 +296,7 @@ Buffer::Ptr HttpFileBody::readData(size_t size) {
|
||||
// Data is read
|
||||
ret->setSize(iRead);
|
||||
_file_offset += iRead;
|
||||
return std::move(ret);
|
||||
return ret;
|
||||
}
|
||||
// 读取文件异常,文件真实长度小于声明长度 [AUTO-TRANSLATED:89d09f9b]
|
||||
// File reading exception, the actual length of the file is less than the declared length
|
||||
@ -385,7 +385,7 @@ string HttpMultiFormBody::multiFormBodyPrefix(const HttpArgs &args, const string
|
||||
<< "file"
|
||||
<< "\"; filename=\"" << fileName << "\"\r\n";
|
||||
body << "Content-Type: application/octet-stream\r\n\r\n";
|
||||
return std::move(body);
|
||||
return body;
|
||||
}
|
||||
|
||||
HttpBufferBody::HttpBufferBody(Buffer::Ptr buffer) {
|
||||
|
||||
@ -68,7 +68,7 @@ bool MpegMuxer::inputFrame(const Frame::Ptr &frame) {
|
||||
}
|
||||
|
||||
case CodecAAC: {
|
||||
CHECK(frame->prefixSize(), "Mpeg muxer required aac frame with adts heade");
|
||||
CHECK(frame->prefixSize(), "Mpeg muxer required aac frame with adts header");
|
||||
}
|
||||
|
||||
default: {
|
||||
|
||||
@ -114,7 +114,7 @@ string RtcpHeader::dumpHeader() const {
|
||||
printer << "pt:" << rtcpTypeToStr((RtcpType)pt) << "\r\n";
|
||||
printer << "size:" << getSize() << "\r\n";
|
||||
printer << "--------\r\n";
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
string RtcpHeader::dumpString() const {
|
||||
@ -322,7 +322,7 @@ string RtcpSR::dumpString() const {
|
||||
printer << "---- item:" << i++ << " ----\r\n";
|
||||
printer << item->dumpString();
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
#define CHECK_MIN_SIZE(size, kMinSize) \
|
||||
@ -385,7 +385,7 @@ string ReportItem::dumpString() const {
|
||||
printer << "jitter:" << jitter << "\r\n";
|
||||
printer << "last_sr_stamp:" << last_sr_stamp << "\r\n";
|
||||
printer << "delay_since_last_sr:" << delay_since_last_sr << "\r\n";
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
void ReportItem::net2Host() {
|
||||
@ -419,7 +419,7 @@ string RtcpRR::dumpString() const {
|
||||
printer << "---- item:" << i++ << " ----\r\n";
|
||||
printer << item->dumpString();
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
void RtcpRR::net2Host(size_t size) {
|
||||
@ -467,7 +467,7 @@ string SdesChunk::dumpString() const {
|
||||
printer << "type:" << sdesTypeToStr((SdesType)type) << "\r\n";
|
||||
printer << "txt_len:" << (int)txt_len << "\r\n";
|
||||
printer << "text:" << (txt_len ? string(text, txt_len) : "") << "\r\n";
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
@ -506,7 +506,7 @@ string RtcpSdes::dumpString() const {
|
||||
printer << "---- item:" << i++ << " ----\r\n";
|
||||
printer << item->dumpString();
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
void RtcpSdes::net2Host(size_t size) {
|
||||
@ -627,7 +627,7 @@ string RtcpFB::dumpString() const {
|
||||
}
|
||||
default: /*不可达*/ assert(0); break;
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
void RtcpFB::net2Host(size_t size) {
|
||||
@ -684,7 +684,7 @@ string RtcpBye::dumpString() const {
|
||||
printer << "ssrc:" << *ssrc << "\r\n";
|
||||
}
|
||||
printer << "reason:" << getReason();
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
void RtcpBye::net2Host(size_t size) {
|
||||
@ -719,7 +719,7 @@ string RtcpXRRRTR::dumpString() const {
|
||||
printer << "block_length : " << block_length << "\r\n";
|
||||
printer << "ntp msw : " << ntpmsw << "\r\n";
|
||||
printer << "ntp lsw : " << ntplsw << "\r\n";
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
void RtcpXRRRTR::net2Host(size_t size) {
|
||||
@ -743,7 +743,7 @@ string RtcpXRDLRRReportItem::dumpString() const {
|
||||
printer << "last RR (lrr) :" << lrr << "\r\n";
|
||||
printer << "delay since last RR (dlrr): " << dlrr << "\r\n";
|
||||
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
void RtcpXRDLRRReportItem::net2Host() {
|
||||
@ -774,7 +774,7 @@ string RtcpXRDLRR::dumpString() const {
|
||||
printer << "---- item:" << i++ << " ----\r\n";
|
||||
printer << item->dumpString();
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
void RtcpXRDLRR::net2Host(size_t size) {
|
||||
@ -809,7 +809,7 @@ string RtcpXRTargetBitrateItem::dumpString() const {
|
||||
printer << "Temporal Layer :" << temporal_layer << "\r\n";
|
||||
printer << "Target Bitrate: " << target_bitrate << "\r\n";
|
||||
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
void RtcpXRTargetBitrateItem::net2Host() {
|
||||
@ -839,7 +839,7 @@ string RtcpXRTargetBitrate::dumpString() const {
|
||||
printer << "---- item:" << i++ << " ----\r\n";
|
||||
printer << item->dumpString();
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
void RtcpXRTargetBitrate::net2Host(size_t size) {
|
||||
|
||||
@ -153,7 +153,7 @@ string FCI_REMB::dumpString() const {
|
||||
for (auto &ssrc : ((FCI_REMB *)this)->getSSRC()) {
|
||||
printer << ssrc << " ";
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -208,7 +208,7 @@ string FCI_NACK::dumpString() const {
|
||||
}
|
||||
++pid;
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -267,7 +267,7 @@ uint16_t RunLengthChunk::getRunLength() const {
|
||||
string RunLengthChunk::dumpString() const {
|
||||
_StrPrinter printer;
|
||||
printer << "run length chunk, symbol:" << (int)symbol << ", run length:" << getRunLength();
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -361,7 +361,7 @@ string StatusVecChunk::dumpString() const {
|
||||
for (auto &item : vec) {
|
||||
printer << (int)item << " ";
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
@ -496,7 +496,7 @@ string FCI_TWCC::dumpString(size_t total_size) const {
|
||||
printer << "rtp seq:" << pr.first << ", packet status:" << (int)(pr.second.first)
|
||||
<< ", delta:" << pr.second.second << "\n";
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
static void appendDeltaString(string &delta_str, FCI_TWCC::TwccPacketStatus &status, int count) {
|
||||
|
||||
@ -161,7 +161,7 @@ string SdpTrack::toString(uint16_t port) const {
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
return std::move(_printer);
|
||||
return _printer;
|
||||
}
|
||||
|
||||
static TrackType toTrackType(const string &str) {
|
||||
@ -644,7 +644,7 @@ string RtpHeader::dumpString(size_t rtp_size) const {
|
||||
printer << "rtp size:" << rtp_size << "\r\n";
|
||||
printer << "payload offset:" << getPayloadOffset() << "\r\n";
|
||||
printer << "payload size:" << getPayloadSize(rtp_size) << "\r\n";
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -80,6 +80,6 @@ std::string ACKPacket::dump() {
|
||||
<< " rtt_variance=" << rtt_variance << " pkt_recv_rate=" << pkt_recv_rate
|
||||
<< " available_buf_size=" << available_buf_size << " estimated_link_capacity=" << estimated_link_capacity
|
||||
<< " recv_rate=" << recv_rate;
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
} // namespace SRT
|
||||
@ -34,7 +34,7 @@ std::string HSExtMessage::dump() {
|
||||
_StrPrinter printer;
|
||||
printer << "srt version : " << std::hex << srt_version << " srt flag : " << std::hex << srt_flag
|
||||
<< " recv_tsbpd_delay=" << recv_tsbpd_delay << " send_tsbpd_delay = " << send_tsbpd_delay;
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
bool HSExtMessage::storeToData() {
|
||||
@ -130,7 +130,7 @@ bool HSExtStreamID::storeToData() {
|
||||
std::string HSExtStreamID::dump() {
|
||||
_StrPrinter printer;
|
||||
printer << " streamid : " << streamid;
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
size_t KeyMaterial::getContentSize() {
|
||||
@ -263,7 +263,7 @@ std::string KeyMaterial::dump() {
|
||||
<< " sLen : " << _slen
|
||||
<< " salt : " << std::hex << _salt.data()
|
||||
<< " kLen : " << _klen;
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
bool HSExtKeyMaterial::loadFromData(uint8_t *buf, size_t len) {
|
||||
|
||||
@ -279,7 +279,7 @@ std::string HandshakePacket::dump(){
|
||||
for(size_t i=0;i<ext_list.size();++i){
|
||||
printer<<ext_list[i]->dump()<<"\r\n";
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
bool HandshakePacket::loadFromData(uint8_t *buf, size_t len) {
|
||||
if (HEADER_SIZE + HS_CONTENT_MIN_SIZE > len) {
|
||||
@ -627,7 +627,7 @@ std::string NAKPacket::dump() {
|
||||
for (auto it : lost_list) {
|
||||
printer << "[ " << it.first << " , " << it.second - 1 << " ]";
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
bool MsgDropReqPacket::loadFromData(uint8_t *buf, size_t len) {
|
||||
|
||||
@ -233,7 +233,7 @@ std::string PacketQueue::dump() {
|
||||
printer << " last:" << _pkt_map.rbegin()->second->packet_seq_number;
|
||||
printer << " latency:" << timeLatency() / 1e3;
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
//////////////////// PacketRecvQueue //////////////////////////////////
|
||||
@ -395,7 +395,7 @@ std::string PacketRecvQueue::dump() {
|
||||
printer << " start:" << _start;
|
||||
printer << " end:" << _end;
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
bool PacketRecvQueue::drop(uint32_t first, uint32_t last, std::list<DataPacket::Ptr> &out) {
|
||||
uint32_t diff = 0;
|
||||
|
||||
@ -91,7 +91,7 @@ std::string PacketRecvRateContext::dump(){
|
||||
}
|
||||
printer <<"\r\n";
|
||||
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
EstimatedLinkCapacityContext::EstimatedLinkCapacityContext(TimePoint start) : _start(start) {
|
||||
for (size_t i = 0; i < SIZE; i++) {
|
||||
|
||||
@ -298,7 +298,7 @@ string RtpExt::dumpString() const {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
//https://tools.ietf.org/html/rfc6464
|
||||
|
||||
@ -174,7 +174,7 @@ string RtcSdpBase::toString() const {
|
||||
for (auto &item : items) {
|
||||
printer << item->getKey() << "=" << item->toString() << "\r\n";
|
||||
}
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
RtpDirection RtcSdpBase::getDirection() const {
|
||||
@ -307,7 +307,7 @@ string RtcSessionSdp::toString() const {
|
||||
printer << media.toString();
|
||||
}
|
||||
|
||||
return std::move(printer);
|
||||
return printer;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Loading…
Reference in New Issue
Block a user