From 49594b184676339c4ee9838d04bdfa0f84a88e4c Mon Sep 17 00:00:00 2001 From: winlin Date: Mon, 15 Sep 2025 11:13:24 -0400 Subject: [PATCH] Update stable version to SRS 6.0 --- README.md | 7 ++++--- trunk/src/app/srs_app_config.cpp | 2 +- trunk/src/app/srs_app_dash.cpp | 2 +- trunk/src/app/srs_app_dvr.cpp | 2 +- trunk/src/app/srs_app_edge.cpp | 8 ++++---- trunk/src/app/srs_app_encoder.cpp | 4 ++-- trunk/src/app/srs_app_forward.cpp | 2 +- trunk/src/app/srs_app_http_api.cpp | 14 ++++++------- trunk/src/app/srs_app_http_hooks.cpp | 2 +- trunk/src/app/srs_app_mpegts_udp.cpp | 2 +- trunk/src/app/srs_app_refer.cpp | 2 +- trunk/src/app/srs_app_rtc_conn.cpp | 10 +++++----- trunk/src/app/srs_app_rtmp_conn.cpp | 4 ++-- trunk/src/app/srs_app_rtmp_source.cpp | 20 +++++++++---------- trunk/src/app/srs_app_rtsp_conn.cpp | 4 ++-- trunk/src/app/srs_app_server.cpp | 2 +- trunk/src/app/srs_app_srt_conn.cpp | 2 +- trunk/src/app/srs_app_srt_server.cpp | 2 +- trunk/src/app/srs_app_srt_source.cpp | 2 +- trunk/src/core/srs_core.hpp | 2 +- trunk/src/kernel/srs_kernel_error.cpp | 4 ++-- trunk/src/kernel/srs_kernel_error.hpp | 7 ++----- trunk/src/kernel/srs_kernel_ts.cpp | 2 +- .../src/protocol/srs_protocol_rtsp_stack.cpp | 2 +- trunk/src/protocol/srs_protocol_srt.cpp | 2 +- trunk/src/utest/srs_utest_kernel3.cpp | 8 ++++---- trunk/src/utest/srs_utest_protocol.cpp | 6 +++--- 27 files changed, 62 insertions(+), 64 deletions(-) diff --git a/README.md b/README.md index f76e0090f..0746f9cf9 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ [![](https://codecov.io/gh/ossrs/srs/graph/badge.svg?token=Zx2LhdtA39)](https://codecov.io/gh/ossrs/srs) SRS/7.0 ([Kai](https://ossrs.io/lts/en-us/product#release-70)) is a simple, high-efficiency, and real-time video server, -supporting RTMP/WebRTC/HLS/HTTP-FLV/SRT/MPEG-DASH/GB28181, Linux/Windows/macOS, X86_64/ARMv7/AARCH64/M1/RISCV/LOONGARCH/MIPS, +supporting RTMP/WebRTC/HLS/HTTP-FLV/SRT/MPEG-DASH/GB28181, Linux/macOS, X86_64/ARMv7/AARCH64/M1/RISCV/LOONGARCH/MIPS, and essential [features](trunk/doc/Features.md#features). [![SRS Overview](https://ossrs.net/wiki/images/SRS-SingleNode-4.0-sd.png?v=114)](https://ossrs.net/wiki/images/SRS-SingleNode-4.0-hd.png) @@ -62,7 +62,7 @@ To learn more about RTMP, HLS, HTTP-FLV, SRT, MPEG-DASH, WebRTC protocols, clust HTTP API, DVR, and transcoding, please check the documents in [English](https://ossrs.io) or [Chinese](https://ossrs.net). -If you want to use an IDE, VSCode is recommanded. VSCode supports macOS, Linux, and Windows +If you want to use an IDE, VSCode is recommanded. VSCode supports macOS, and Linux platforms. The settings are ready. All you need to do is open the folder with VSCode and enjoy the efficiency brought by the IDE. See [VSCode README](.vscode/README.md) for details. @@ -99,7 +99,7 @@ who made significant contributions and maintained parts of SRS are listed below, * [ShiWei](https://github.com/runner365): Specializes in SRT and H.265, maintaining SRT and FLV patches for FFmpeg. An expert in codecs and FFmpeg. * [ChenGuanghua](https://github.com/chen-guanghua): Focused on WebRTC/QoS and introduced the Asan toolchain to SRS. * [LiPeng](https://github.com/lipeng19811218): Concentrates on WebRTC and contributes to memory management and smart pointers. -* [ZhaoWenjie](https://github.com/wenjiegit): One of the earliest contributors, focusing on HDS and Windows. Has expertise in client technology. +* [ZhaoWenjie](https://github.com/wenjiegit): One of the earliest contributors, focusing on HDS. Has expertise in client technology. * [WuPengqiang](https://github.com/Bepartofyou): Focused on H.265, initially contributed to the FFmpeg module in SRS for transcoding AAC with OPUS for WebRTC. A huge `THANK YOU` goes out to: @@ -118,6 +118,7 @@ distributed under their [licenses](https://ossrs.io/lts/en-us/license). ## Releases +* 2025-09-15, [Release v6.0-b1](https://github.com/ossrs/srs/releases/tag/v6.0-b1), v6.0-b1, 6.0 beta1, v6.0.177, 170611 lines. * 2025-08-12, [Release v6.0-b0](https://github.com/ossrs/srs/releases/tag/v6.0-b0), v6.0-b0, 6.0 beta0, v6.0.172, 170417 lines. * 2025-05-03, [Release v6.0-a2](https://github.com/ossrs/srs/releases/tag/v6.0-a2), v6.0-a2, 6.0 alpha2, v6.0.165, 169712 lines. * 2024-09-01, [Release v6.0-a1](https://github.com/ossrs/srs/releases/tag/v6.0-a1), v6.0-a1, 6.0 alpha1, v6.0.155, 169636 lines. diff --git a/trunk/src/app/srs_app_config.cpp b/trunk/src/app/srs_app_config.cpp index 6fbd4430e..7f211c435 100644 --- a/trunk/src/app/srs_app_config.cpp +++ b/trunk/src/app/srs_app_config.cpp @@ -1614,7 +1614,7 @@ srs_error_t SrsConfig::parse_options(int argc, char **argv) // Ignore any error while detecting docker. if ((err = srs_detect_docker()) != srs_success) { - srs_error_reset(err); + srs_freep(err); } // Try to load the config if docker detect failed. diff --git a/trunk/src/app/srs_app_dash.cpp b/trunk/src/app/srs_app_dash.cpp index 0a3a01907..c304c0b51 100644 --- a/trunk/src/app/srs_app_dash.cpp +++ b/trunk/src/app/srs_app_dash.cpp @@ -476,7 +476,7 @@ void SrsDashController::on_unpublish() if ((err = refresh_mpd(format_)) != srs_success) { srs_warn("Refresh the MPD failed, err=%s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); } } diff --git a/trunk/src/app/srs_app_dvr.cpp b/trunk/src/app/srs_app_dvr.cpp index 2b920e1b1..06800e570 100644 --- a/trunk/src/app/srs_app_dvr.cpp +++ b/trunk/src/app/srs_app_dvr.cpp @@ -734,7 +734,7 @@ void SrsDvrSessionPlan::on_unpublish() srs_error_t err = segment_->close(); if (err != srs_success) { srs_warn("ignore flv close error %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); } dvr_enabled_ = false; diff --git a/trunk/src/app/srs_app_edge.cpp b/trunk/src/app/srs_app_edge.cpp index 4d1da1c7f..ee9d7d6d5 100644 --- a/trunk/src/app/srs_app_edge.cpp +++ b/trunk/src/app/srs_app_edge.cpp @@ -558,13 +558,13 @@ srs_error_t SrsEdgeIngester::do_cycle() string url = req_->get_stream_url(); srs_warn("RTMP redirect %s from %s:%d to %s", url.c_str(), server.c_str(), port, redirect.c_str()); - srs_error_reset(err); + srs_freep(err); continue; } if (srs_is_client_gracefully_close(err)) { srs_warn("origin disconnected, retry, error %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); } break; } @@ -869,11 +869,11 @@ srs_error_t SrsEdgeForwarder::do_cycle() if (err != srs_success && srs_error_code(err) != ERROR_SOCKET_TIMEOUT) { srs_error("edge push get server control message failed. err=%s", srs_error_desc(err).c_str()); send_error_code_ = srs_error_code(err); - srs_error_reset(err); + srs_freep(err); continue; } - srs_error_reset(err); + srs_freep(err); srs_freep(msg); } diff --git a/trunk/src/app/srs_app_encoder.cpp b/trunk/src/app/srs_app_encoder.cpp index 157c588f0..f954d3151 100644 --- a/trunk/src/app/srs_app_encoder.cpp +++ b/trunk/src/app/srs_app_encoder.cpp @@ -46,7 +46,7 @@ srs_error_t SrsEncoder::on_publish(ISrsRequest *req) // if got a loop, donot transcode the whole stream. if (srs_error_code(err) == ERROR_ENCODER_LOOP) { clear_engines(); - srs_error_reset(err); + srs_freep(err); } // return for error or no engine. @@ -87,7 +87,7 @@ srs_error_t SrsEncoder::cycle() if ((err = do_cycle()) != srs_success) { srs_warn("Encoder: Ignore error, %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); } srs_usleep(SRS_RTMP_ENCODER_CIMS); diff --git a/trunk/src/app/srs_app_forward.cpp b/trunk/src/app/srs_app_forward.cpp index 98facfb58..69a5a9521 100644 --- a/trunk/src/app/srs_app_forward.cpp +++ b/trunk/src/app/srs_app_forward.cpp @@ -280,7 +280,7 @@ srs_error_t SrsForwarder::forward() if (err != srs_success && srs_error_code(err) != ERROR_SOCKET_TIMEOUT) { return srs_error_wrap(err, "receive control message"); } - srs_error_reset(err); + srs_freep(err); srs_freep(msg); } diff --git a/trunk/src/app/srs_app_http_api.cpp b/trunk/src/app/srs_app_http_api.cpp index d94f7ebcf..9a744321c 100644 --- a/trunk/src/app/srs_app_http_api.cpp +++ b/trunk/src/app/srs_app_http_api.cpp @@ -728,7 +728,7 @@ srs_error_t SrsGoApiVhosts::serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessag if ((err = stat->dumps_vhosts(data)) != srs_success) { int code = srs_error_code(err); - srs_error_reset(err); + srs_freep(err); return srs_api_response_code(w, r, code); } } else { @@ -738,7 +738,7 @@ srs_error_t SrsGoApiVhosts::serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessag if ((err = vhost->dumps(data)) != srs_success) { int code = srs_error_code(err); - srs_error_reset(err); + srs_freep(err); return srs_api_response_code(w, r, code); } } @@ -790,7 +790,7 @@ srs_error_t SrsGoApiStreams::serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessa int count = srs_max(10, atoi(rcount.c_str())); if ((err = stat->dumps_streams(data, start, count)) != srs_success) { int code = srs_error_code(err); - srs_error_reset(err); + srs_freep(err); return srs_api_response_code(w, r, code); } } else { @@ -800,7 +800,7 @@ srs_error_t SrsGoApiStreams::serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessa if ((err = stream->dumps(data)) != srs_success) { int code = srs_error_code(err); - srs_error_reset(err); + srs_freep(err); return srs_api_response_code(w, r, code); } } @@ -852,7 +852,7 @@ srs_error_t SrsGoApiClients::serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessa int count = srs_max(10, atoi(rcount.c_str())); if ((err = stat->dumps_clients(data, start, count)) != srs_success) { int code = srs_error_code(err); - srs_error_reset(err); + srs_freep(err); return srs_api_response_code(w, r, code); } } else { @@ -861,7 +861,7 @@ srs_error_t SrsGoApiClients::serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessa if ((err = client->dumps(data)) != srs_success) { int code = srs_error_code(err); - srs_error_reset(err); + srs_freep(err); return srs_api_response_code(w, r, code); } } @@ -920,7 +920,7 @@ srs_error_t SrsGoApiRaw::serve_http(ISrsHttpResponseWriter *w, ISrsHttpMessage * // query global scope. if ((err = _srs_config->raw_to_json(obj.get())) != srs_success) { int code = srs_error_code(err); - srs_error_reset(err); + srs_freep(err); return srs_api_response_code(w, r, code); } diff --git a/trunk/src/app/srs_app_http_hooks.cpp b/trunk/src/app/srs_app_http_hooks.cpp index efdf3bb1d..60192ab11 100644 --- a/trunk/src/app/srs_app_http_hooks.cpp +++ b/trunk/src/app/srs_app_http_hooks.cpp @@ -462,7 +462,7 @@ srs_error_t SrsHttpHooks::on_hls_notify(SrsContextId c, std::string url, ISrsReq cid.c_str(), url.c_str(), msg->status_code(), spenttime, nb_read, srs_error_desc(err).c_str()); // ignore any error for on_hls_notify. - srs_error_reset(err); + srs_freep(err); return srs_success; } diff --git a/trunk/src/app/srs_app_mpegts_udp.cpp b/trunk/src/app/srs_app_mpegts_udp.cpp index d116b5c4d..37ae80a21 100644 --- a/trunk/src/app/srs_app_mpegts_udp.cpp +++ b/trunk/src/app/srs_app_mpegts_udp.cpp @@ -269,7 +269,7 @@ srs_error_t SrsMpegtsOverUdp::on_udp_bytes(string host, int port, char *buf, int // process each ts packet if ((err = context_->decode(stream.get(), this)) != srs_success) { srs_info("parse ts packet err=%s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); continue; } } diff --git a/trunk/src/app/srs_app_refer.cpp b/trunk/src/app/srs_app_refer.cpp index 07d7c895a..8162cd46b 100644 --- a/trunk/src/app/srs_app_refer.cpp +++ b/trunk/src/app/srs_app_refer.cpp @@ -31,7 +31,7 @@ srs_error_t SrsRefer::check(std::string page_url, SrsConfDirective *refer) return srs_success; } - srs_error_reset(err); + srs_freep(err); } return srs_error_new(ERROR_RTMP_ACCESS_DENIED, "access denied"); diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index 5b46c6116..7ddf0ec8d 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -355,7 +355,7 @@ srs_error_t SrsRtcPLIWorker::cycle() if ((err = handler_->do_request_keyframe(ssrc, cid)) != srs_success) { srs_warn("PLI error, %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); } } } @@ -1385,7 +1385,7 @@ srs_error_t SrsRtcPublishStream::on_rtp_cipher(char *data, int nb_data) return srs_error_wrap(err, "on twcc"); } } else { - srs_error_reset(err); + srs_freep(err); } } @@ -2591,7 +2591,7 @@ bool srs_sdp_has_h264_profile(const SrsMediaPayloadType &payload_type, const str H264SpecificParam h264_param; if ((err = srs_parse_h264_fmtp(payload_type.format_specific_param_, h264_param)) != srs_success) { - srs_error_reset(err); + srs_freep(err); return false; } @@ -2637,7 +2637,7 @@ bool srs_sdp_has_h265_profile(const SrsMediaPayloadType &payload_type, const str H265SpecificParam h265_param; if ((err = srs_parse_h265_fmtp(payload_type.format_specific_param_, h265_param)) != srs_success) { - srs_error_reset(err); + srs_freep(err); return false; } @@ -2842,7 +2842,7 @@ srs_error_t SrsRtcConnection::negotiate_publish_capability(SrsRtcUserConfig *ruc } H264SpecificParam h264_param; if ((err = srs_parse_h264_fmtp(payload.format_specific_param_, h264_param)) != srs_success) { - srs_error_reset(err); + srs_freep(err); continue; } diff --git a/trunk/src/app/srs_app_rtmp_conn.cpp b/trunk/src/app/srs_app_rtmp_conn.cpp index d5367e0c6..59d32ae97 100644 --- a/trunk/src/app/srs_app_rtmp_conn.cpp +++ b/trunk/src/app/srs_app_rtmp_conn.cpp @@ -332,7 +332,7 @@ srs_error_t SrsRtmpConn::do_cycle() // If client is redirect to other servers, we already logged the event. if (srs_error_code(err) == ERROR_CONTROL_REDIRECT) { - srs_error_reset(err); + srs_freep(err); } return err; @@ -690,7 +690,7 @@ srs_error_t SrsRtmpConn::playing(SrsSharedPtr source) bool accepted = false; if ((err = rtmp_->redirect(req, rurl, accepted)) != srs_success) { - srs_error_reset(err); + srs_freep(err); } else { return srs_error_new(ERROR_CONTROL_REDIRECT, "redirected"); } diff --git a/trunk/src/app/srs_app_rtmp_source.cpp b/trunk/src/app/srs_app_rtmp_source.cpp index a5a78940a..dffb83a34 100644 --- a/trunk/src/app/srs_app_rtmp_source.cpp +++ b/trunk/src/app/srs_app_rtmp_source.cpp @@ -982,10 +982,10 @@ srs_error_t SrsOriginHub::on_audio(SrsMediaPacket *shared_audio) if (srs_config_hls_is_on_error_ignore(hls_error_strategy)) { srs_warn("hls: ignore audio error %s", srs_error_desc(err).c_str()); hls_->on_unpublish(); - srs_error_reset(err); + srs_freep(err); } else if (srs_config_hls_is_on_error_continue(hls_error_strategy)) { if (srs_hls_can_continue(srs_error_code(err), source_->meta_->ash(), msg)) { - srs_error_reset(err); + srs_freep(err); } else { return srs_error_wrap(err, "hls: audio"); } @@ -996,20 +996,20 @@ srs_error_t SrsOriginHub::on_audio(SrsMediaPacket *shared_audio) if ((err = dash_->on_audio(msg, format)) != srs_success) { srs_warn("dash: ignore audio error %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); dash_->on_unpublish(); } if ((err = dvr_->on_audio(msg, format)) != srs_success) { srs_warn("dvr: ignore audio error %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); dvr_->on_unpublish(); } #ifdef SRS_HDS if ((err = hds_->on_audio(msg)) != srs_success) { srs_warn("hds: ignore audio error %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); hds_->on_unpublish(); } #endif @@ -1073,10 +1073,10 @@ srs_error_t SrsOriginHub::on_video(SrsMediaPacket *shared_video, bool is_sequenc if (srs_config_hls_is_on_error_ignore(hls_error_strategy)) { srs_warn("hls: ignore video error %s", srs_error_desc(err).c_str()); hls_->on_unpublish(); - srs_error_reset(err); + srs_freep(err); } else if (srs_config_hls_is_on_error_continue(hls_error_strategy)) { if (srs_hls_can_continue(srs_error_code(err), source_->meta_->vsh(), msg)) { - srs_error_reset(err); + srs_freep(err); } else { return srs_error_wrap(err, "hls: video"); } @@ -1087,20 +1087,20 @@ srs_error_t SrsOriginHub::on_video(SrsMediaPacket *shared_video, bool is_sequenc if ((err = dash_->on_video(msg, format)) != srs_success) { srs_warn("dash: ignore video error %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); dash_->on_unpublish(); } if ((err = dvr_->on_video(msg, format)) != srs_success) { srs_warn("dvr: ignore video error %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); dvr_->on_unpublish(); } #ifdef SRS_HDS if ((err = hds_->on_video(msg)) != srs_success) { srs_warn("hds: ignore video error %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); hds_->on_unpublish(); } #endif diff --git a/trunk/src/app/srs_app_rtsp_conn.cpp b/trunk/src/app/srs_app_rtsp_conn.cpp index f9d449efd..e73831979 100644 --- a/trunk/src/app/srs_app_rtsp_conn.cpp +++ b/trunk/src/app/srs_app_rtsp_conn.cpp @@ -564,7 +564,7 @@ srs_error_t SrsRtspConnection::do_cycle() res->status_ = SRS_CONSTS_RTSP_Forbidden; } srs_warn("RTSP: DESCRIBE failed: %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); } res->sdp_ = sdp; @@ -590,7 +590,7 @@ srs_error_t SrsRtspConnection::do_cycle() res->status_ = SRS_CONSTS_RTSP_InternalServerError; srs_warn("RTSP: SETUP failed: %s", srs_error_desc(err).c_str()); } - srs_error_reset(err); + srs_freep(err); } res->transport_->copy(req->transport_); diff --git a/trunk/src/app/srs_app_server.cpp b/trunk/src/app/srs_app_server.cpp index cd7f802bc..8c758b357 100644 --- a/trunk/src/app/srs_app_server.cpp +++ b/trunk/src/app/srs_app_server.cpp @@ -1164,7 +1164,7 @@ srs_error_t SrsServer::listen_srt_mpegts() if ((err = acceptor->listen(ip, port)) != srs_success) { srs_freep(acceptor); srs_warn("srt listen %s:%d failed, err=%s", ip.c_str(), port, srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); continue; } diff --git a/trunk/src/app/srs_app_srt_conn.cpp b/trunk/src/app/srs_app_srt_conn.cpp index 739efccb0..460c39193 100644 --- a/trunk/src/app/srs_app_srt_conn.cpp +++ b/trunk/src/app/srs_app_srt_conn.cpp @@ -102,7 +102,7 @@ SrsSrtRecvThread::SrsSrtRecvThread(SrsSrtConnection *srt_conn) SrsSrtRecvThread::~SrsSrtRecvThread() { srs_freep(trd_); - srs_error_reset(recv_err_); + srs_freep(recv_err_); } srs_error_t SrsSrtRecvThread::cycle() diff --git a/trunk/src/app/srs_app_srt_server.cpp b/trunk/src/app/srs_app_srt_server.cpp index 1b3dc1be3..d2fe2b5c5 100644 --- a/trunk/src/app/srs_app_srt_server.cpp +++ b/trunk/src/app/srs_app_srt_server.cpp @@ -203,7 +203,7 @@ srs_error_t SrsSrtEventLoop::cycle() int n_fds = 0; if ((err = srt_poller_->wait(0, &n_fds)) != srs_success) { srs_warn("srt poll wait failed, n_fds=%d, err=%s", n_fds, srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); } // We use sleep to switch to other coroutines, because the SRT poller is not possible to do this. diff --git a/trunk/src/app/srs_app_srt_source.cpp b/trunk/src/app/srs_app_srt_source.cpp index db70fce8a..f3e8a846d 100644 --- a/trunk/src/app/srs_app_srt_source.cpp +++ b/trunk/src/app/srs_app_srt_source.cpp @@ -338,7 +338,7 @@ srs_error_t SrsSrtFrameBuilder::on_packet(SrsSrtPacket *pkt) // don't handle it because SRT will, see tlpktdrop at https://ossrs.io/lts/en-us/docs/v7/doc/srt if ((err = ts_ctx_->decode(stream.get(), this)) != srs_success) { srs_warn("parse ts packet err=%s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); continue; } } diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index 4a379f4ef..cb4ec2152 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -29,7 +29,7 @@ #define RTMP_SIG_SRS_DOMAIN "ossrs.net" // The current stable release. -#define VERSION_STABLE 5 +#define VERSION_STABLE 6 #define VERSION_STABLE_BRANCH SRS_XSTR(VERSION_STABLE) ".0release" // For platform specified headers and defines. diff --git a/trunk/src/kernel/srs_kernel_error.cpp b/trunk/src/kernel/srs_kernel_error.cpp index 002c829f3..a740e7a1e 100644 --- a/trunk/src/kernel/srs_kernel_error.cpp +++ b/trunk/src/kernel/srs_kernel_error.cpp @@ -234,7 +234,7 @@ std::string SrsCplxError::description() if (!code_str.empty()) ss << "(" << code_str << ")"; - string code_longstr = srs_error_code_longstr(this); + string code_longstr = srs_error_code_strlong(this); if (!code_longstr.empty()) ss << "(" << code_longstr << ")"; @@ -426,7 +426,7 @@ std::string SrsCplxError::error_code_str(SrsCplxError *err) return it->second; } -std::string SrsCplxError::error_code_longstr(SrsCplxError *err) +std::string SrsCplxError::error_code_strlong(SrsCplxError *err) { static string not_found = ""; static std::map error_map; diff --git a/trunk/src/kernel/srs_kernel_error.hpp b/trunk/src/kernel/srs_kernel_error.hpp index f6e08b550..b92afab9a 100644 --- a/trunk/src/kernel/srs_kernel_error.hpp +++ b/trunk/src/kernel/srs_kernel_error.hpp @@ -467,7 +467,7 @@ public: static std::string summary(SrsCplxError *err); static int error_code(SrsCplxError *err); static std::string error_code_str(SrsCplxError *err); - static std::string error_code_longstr(SrsCplxError *err); + static std::string error_code_strlong(SrsCplxError *err); public: static void srs_assert(bool expression); @@ -482,10 +482,7 @@ public: #define srs_error_summary(err) SrsCplxError::summary(err) #define srs_error_code(err) SrsCplxError::error_code(err) #define srs_error_code_str(err) SrsCplxError::error_code_str(err) -#define srs_error_code_longstr(err) SrsCplxError::error_code_longstr(err) -#define srs_error_reset(err) \ - srs_freep(err); \ - err = srs_success +#define srs_error_code_strlong(err) SrsCplxError::error_code_strlong(err) #ifndef srs_assert #define srs_assert(expression) SrsCplxError::srs_assert(expression) diff --git a/trunk/src/kernel/srs_kernel_ts.cpp b/trunk/src/kernel/srs_kernel_ts.cpp index 0dcd0af11..1b933309f 100644 --- a/trunk/src/kernel/srs_kernel_ts.cpp +++ b/trunk/src/kernel/srs_kernel_ts.cpp @@ -2896,7 +2896,7 @@ void SrsEncFileWriter::close() srs_error_t err = srs_success; if ((err = SrsFileWriter::write(cipher.get(), nb_buf + nb_padding, NULL)) != srs_success) { srs_warn("ignore err %s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); } nb_buf = 0; diff --git a/trunk/src/protocol/srs_protocol_rtsp_stack.cpp b/trunk/src/protocol/srs_protocol_rtsp_stack.cpp index 6b0c3026e..62f8b18ec 100644 --- a/trunk/src/protocol/srs_protocol_rtsp_stack.cpp +++ b/trunk/src/protocol/srs_protocol_rtsp_stack.cpp @@ -479,7 +479,7 @@ srs_error_t SrsRtspStack::do_recv_message(SrsRtspRequest *req) std::string token; if ((err = recv_token_normal(token)) != srs_success) { if (srs_error_code(err) == ERROR_RTSP_REQUEST_HEADER_EOF) { - srs_error_reset(err); + srs_freep(err); break; // End of headers reached (empty line) } return srs_error_wrap(err, "recv token"); diff --git a/trunk/src/protocol/srs_protocol_srt.cpp b/trunk/src/protocol/srs_protocol_srt.cpp index 399078932..a956ae208 100644 --- a/trunk/src/protocol/srs_protocol_srt.cpp +++ b/trunk/src/protocol/srs_protocol_srt.cpp @@ -720,7 +720,7 @@ SrsSrtSocket::~SrsSrtSocket() srs_error_t err = srt_poller_->del_socket(this); if (err != srs_success) { srs_error("srt poller remove socket failed, err=%s", srs_error_desc(err).c_str()); - srs_error_reset(err); + srs_freep(err); } srs_cond_destroy(read_cond_); diff --git a/trunk/src/utest/srs_utest_kernel3.cpp b/trunk/src/utest/srs_utest_kernel3.cpp index 9b1d1d1e0..c5773e133 100644 --- a/trunk/src/utest/srs_utest_kernel3.cpp +++ b/trunk/src/utest/srs_utest_kernel3.cpp @@ -1045,7 +1045,7 @@ VOID TEST(KernelErrorTest, SrsCplxErrorCodeStrings) // Test error code long string lookup err = srs_error_new(ERROR_SOCKET_READ, "read error"); - std::string code_longstr = srs_error_code_longstr(err); + std::string code_longstr = srs_error_code_strlong(err); EXPECT_FALSE(code_longstr.empty()); EXPECT_EQ("Socket read data failed", code_longstr); srs_freep(err); @@ -1055,7 +1055,7 @@ VOID TEST(KernelErrorTest, SrsCplxErrorCodeStrings) EXPECT_FALSE(code_str.empty()); EXPECT_EQ("Success", code_str); - code_longstr = srs_error_code_longstr(srs_success); + code_longstr = srs_error_code_strlong(srs_success); EXPECT_FALSE(code_longstr.empty()); EXPECT_EQ("Success", code_longstr); @@ -1067,11 +1067,11 @@ VOID TEST(KernelErrorTest, ErrorMacros) { srs_error_t err; - // Test srs_error_reset macro + // Test srs_freep macro err = srs_error_new(ERROR_SOCKET_CONNECT, "connect failed"); EXPECT_TRUE(err != srs_success); - srs_error_reset(err); + srs_freep(err); EXPECT_EQ(srs_success, err); // Test error creation and manipulation macros diff --git a/trunk/src/utest/srs_utest_protocol.cpp b/trunk/src/utest/srs_utest_protocol.cpp index b04abbd09..51540d342 100644 --- a/trunk/src/utest/srs_utest_protocol.cpp +++ b/trunk/src/utest/srs_utest_protocol.cpp @@ -5553,7 +5553,7 @@ VOID TEST(ProtocolRTSPTest, RTSPInvalidRequest) err = stack.recv_message(&req); EXPECT_TRUE(err != srs_success); srs_freep(req); - srs_error_reset(err); + srs_freep(err); bio.in_buffer.erase(bio.in_buffer.length()); } @@ -5569,7 +5569,7 @@ VOID TEST(ProtocolRTSPTest, RTSPInvalidRequest) err = stack.recv_message(&req); EXPECT_TRUE(err != srs_success); srs_freep(req); - srs_error_reset(err); + srs_freep(err); bio.in_buffer.erase(bio.in_buffer.length()); } @@ -5585,7 +5585,7 @@ VOID TEST(ProtocolRTSPTest, RTSPInvalidRequest) err = stack.recv_message(&req); EXPECT_TRUE(err != srs_success); srs_freep(req); - srs_error_reset(err); + srs_freep(err); bio.in_buffer.erase(bio.in_buffer.length()); }