From 5a7a742f361c3f0844a6554376c6b4adf5783b41 Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 6 Jul 2021 11:37:31 +0800 Subject: [PATCH 1/6] Squash: Update README --- README.md | 1 + trunk/src/app/srs_app_latest_version.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 55e556ef8..345368695 100755 --- a/README.md +++ b/README.md @@ -140,6 +140,7 @@ Other API used by [ossrs.net](https://ossrs.net): * `/gif/v1` The statistic API. * `/service/v1/` The latest available version API. * `/ws-service/v1/` The latest available version API, by websocket. +* `/im-service/v1/` The latest available version API, by IM. ## Features diff --git a/trunk/src/app/srs_app_latest_version.cpp b/trunk/src/app/srs_app_latest_version.cpp index 5eee702ae..84e6e68b9 100644 --- a/trunk/src/app/srs_app_latest_version.cpp +++ b/trunk/src/app/srs_app_latest_version.cpp @@ -98,7 +98,7 @@ srs_error_t SrsLatestVersion::query_latest_version() stringstream ss; ss << "http://api.ossrs.net/service/v1/releases?" << "version=v" << VERSION_MAJOR << "." << VERSION_MINOR << "." << VERSION_REVISION - << "&id=" << server_id_ + << "&id=" << server_id_ << "&role=srs" << "&eip=" << srs_get_public_internet_address() << "&ts=" << srsu2ms(srs_get_system_time()); string url = ss.str(); From 5beea97e8ea15f47e87d6b278b12e9eaf89bf08b Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 7 Jul 2021 08:32:07 +0800 Subject: [PATCH 2/6] Refine .curcleci workflow --- .circleci/config.yml | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c9620e722..3b311797e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -150,8 +150,6 @@ workflows: build_and_test: jobs: - build-c7-baseline - - run-utest - - run-regression-test - build-c7-nortc - build-c7-noasm - build-c7-srt @@ -166,3 +164,23 @@ workflows: - build-c7-ansi-noff - build-cross-build-armv7 - build-cross-build-aarch64 + - run-utest: + - requires: + - build-c7-baseline + - build-c7-nortc + - build-c7-noasm + - build-c7-srt + - build-c8-baseline + - build-c8-srt + - build-u16-baseline + - build-u16-srt + - build-u18-baseline + - build-u18-srt + - build-u20-baseline + - build-u20-srt + - build-c7-ansi-noff + - build-cross-build-armv7 + - build-cross-build-aarch64 + - run-regression-test + - requires: + - run-utest From 14bc79902948a480b092aab764525bf8dc62262d Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 7 Jul 2021 08:34:02 +0800 Subject: [PATCH 3/6] Refine .curcleci workflow --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3b311797e..6fcf3a3f0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -181,6 +181,6 @@ workflows: - build-c7-ansi-noff - build-cross-build-armv7 - build-cross-build-aarch64 - - run-regression-test + - run-regression-test: - requires: - run-utest From 481f8b203cfbf111cb582753b0eb550069b4134f Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 7 Jul 2021 08:36:27 +0800 Subject: [PATCH 4/6] Refine .curcleci workflow --- .circleci/config.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6fcf3a3f0..4feab8653 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -165,22 +165,22 @@ workflows: - build-cross-build-armv7 - build-cross-build-aarch64 - run-utest: - - requires: - - build-c7-baseline - - build-c7-nortc - - build-c7-noasm - - build-c7-srt - - build-c8-baseline - - build-c8-srt - - build-u16-baseline - - build-u16-srt - - build-u18-baseline - - build-u18-srt - - build-u20-baseline - - build-u20-srt - - build-c7-ansi-noff - - build-cross-build-armv7 - - build-cross-build-aarch64 + - requires: + - build-c7-baseline + - build-c7-nortc + - build-c7-noasm + - build-c7-srt + - build-c8-baseline + - build-c8-srt + - build-u16-baseline + - build-u16-srt + - build-u18-baseline + - build-u18-srt + - build-u20-baseline + - build-u20-srt + - build-c7-ansi-noff + - build-cross-build-armv7 + - build-cross-build-aarch64 - run-regression-test: - - requires: - - run-utest + - requires: + - run-utest From 56310ffd9d564d30c3e41862a6d5fc3de5af88f3 Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 7 Jul 2021 08:38:30 +0800 Subject: [PATCH 5/6] Refine .curcleci workflow --- .circleci/config.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4feab8653..4c11300c1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -165,22 +165,22 @@ workflows: - build-cross-build-armv7 - build-cross-build-aarch64 - run-utest: - - requires: - - build-c7-baseline - - build-c7-nortc - - build-c7-noasm - - build-c7-srt - - build-c8-baseline - - build-c8-srt - - build-u16-baseline - - build-u16-srt - - build-u18-baseline - - build-u18-srt - - build-u20-baseline - - build-u20-srt - - build-c7-ansi-noff - - build-cross-build-armv7 - - build-cross-build-aarch64 + requires: + - build-c7-baseline + - build-c7-nortc + - build-c7-noasm + - build-c7-srt + - build-c8-baseline + - build-c8-srt + - build-u16-baseline + - build-u16-srt + - build-u18-baseline + - build-u18-srt + - build-u20-baseline + - build-u20-srt + - build-c7-ansi-noff + - build-cross-build-armv7 + - build-cross-build-aarch64 - run-regression-test: - - requires: - - run-utest + requires: + - run-utest From 7eee9aa59894a0727fb1ae914434beaebe107519 Mon Sep 17 00:00:00 2001 From: Haibo Chen <495810242@qq.com> Date: Thu, 8 Jul 2021 14:23:53 +0800 Subject: [PATCH 6/6] Calculate the correct payload_size which pure padding data, in the process of rtc2rtmp, make Chrome happy (#2461) * Calculate the correct payload_size which pure padding data, in the process of rtc2rtmp, make Chrome happy * make clear for magic number make clear for magic number * Update srs_app_rtc_source.cpp --- trunk/src/app/srs_app_rtc_source.cpp | 29 +++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/trunk/src/app/srs_app_rtc_source.cpp b/trunk/src/app/srs_app_rtc_source.cpp index 9470d5594..d0e719217 100644 --- a/trunk/src/app/srs_app_rtc_source.cpp +++ b/trunk/src/app/srs_app_rtc_source.cpp @@ -1517,8 +1517,7 @@ srs_error_t SrsRtmpFromRtcBridger::packet_video_rtmp(const uint16_t start, const { srs_error_t err = srs_success; - //type_codec1 + avc_type + composition time + nalu size + nalu - int nb_payload = 1 + 1 + 3; + int nb_payload = 0; uint16_t cnt = end - start + 1; for (uint16_t i = 0; i < cnt; ++i) { @@ -1527,7 +1526,7 @@ srs_error_t SrsRtmpFromRtcBridger::packet_video_rtmp(const uint16_t start, const SrsRtpPacket* pkt = cache_video_pkts_[index].pkt; // calculate nalu len SrsRtpFUAPayload2* fua_payload = dynamic_cast(pkt->payload()); - if (fua_payload) { + if (fua_payload && fua_payload->size > 0) { if (fua_payload->start) { nb_payload += 1 + 4; } @@ -1539,18 +1538,28 @@ srs_error_t SrsRtmpFromRtcBridger::packet_video_rtmp(const uint16_t start, const if (stap_payload) { for (int j = 0; j < (int)stap_payload->nalus.size(); ++j) { SrsSample* sample = stap_payload->nalus.at(j); - nb_payload += 4 + sample->size; + if (sample->size > 0) { + nb_payload += 4 + sample->size; + } } continue; } SrsRtpRawPayload* raw_payload = dynamic_cast(pkt->payload()); - if (raw_payload) { + if (raw_payload && raw_payload->nn_payload > 0) { nb_payload += 4 + raw_payload->nn_payload; continue; } } + if (0 == nb_payload) { + srs_warn("empty nalu"); + return err; + } + + //type_codec1 + avc_type + composition time + nalu size + nalu + nb_payload += 1 + 1 + 3; + SrsCommonMessage rtmp; SrsRtpPacket* header = cache_video_pkts_[cache_index(start)].pkt; rtmp.header.initialize_video(nb_payload, header->header.get_timestamp() / 90, 1); @@ -1578,7 +1587,7 @@ srs_error_t SrsRtmpFromRtcBridger::packet_video_rtmp(const uint16_t start, const cache_video_pkts_[index].sn = 0; SrsRtpFUAPayload2* fua_payload = dynamic_cast(pkt->payload()); - if (fua_payload) { + if (fua_payload && fua_payload->size > 0) { if (fua_payload->start) { nalu_len = fua_payload->size + 1; //skip 4 bytes to write nalu_len future @@ -1603,15 +1612,17 @@ srs_error_t SrsRtmpFromRtcBridger::packet_video_rtmp(const uint16_t start, const if (stap_payload) { for (int j = 0; j < (int)stap_payload->nalus.size(); ++j) { SrsSample* sample = stap_payload->nalus.at(j); - payload.write_4bytes(sample->size); - payload.write_bytes(sample->bytes, sample->size); + if (sample->size > 0) { + payload.write_4bytes(sample->size); + payload.write_bytes(sample->bytes, sample->size); + } } srs_freep(pkt); continue; } SrsRtpRawPayload* raw_payload = dynamic_cast(pkt->payload()); - if (raw_payload) { + if (raw_payload && raw_payload->nn_payload > 0) { payload.write_4bytes(raw_payload->nn_payload); payload.write_bytes(raw_payload->payload, raw_payload->nn_payload); srs_freep(pkt);