From ba8f2e2abaa17f1f94955377cbdb89eadbf618f6 Mon Sep 17 00:00:00 2001 From: winlin Date: Fri, 15 May 2020 08:34:58 +0800 Subject: [PATCH] RTC: Remove dead code --- trunk/src/app/srs_app_rtc_conn.cpp | 8 +-- trunk/src/app/srs_app_rtc_conn.hpp | 8 +-- trunk/src/app/srs_app_rtc_source.cpp | 30 ++++------ trunk/src/app/srs_app_rtc_source.hpp | 4 +- trunk/src/kernel/srs_kernel_flv.cpp | 88 ---------------------------- trunk/src/kernel/srs_kernel_flv.hpp | 36 ------------ 6 files changed, 23 insertions(+), 151 deletions(-) diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index ea55bf6b8..8387479b4 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -707,7 +707,7 @@ srs_error_t SrsRtcPlayer::cycle() } } -srs_error_t SrsRtcPlayer::send_messages(SrsRtcSource* source, vector& pkts, SrsRtcOutgoingInfo& info) +srs_error_t SrsRtcPlayer::send_messages(SrsRtcSource* source, const vector& pkts, SrsRtcOutgoingInfo& info) { srs_error_t err = srs_success; @@ -741,7 +741,7 @@ srs_error_t SrsRtcPlayer::send_messages(SrsRtcSource* source, vector& pkts, SrsRtcOutgoingInfo& info) +srs_error_t SrsRtcPlayer::messages_to_packets(SrsRtcSource* source, const vector& pkts, SrsRtcOutgoingInfo& info) { srs_error_t err = srs_success; @@ -811,7 +811,7 @@ srs_error_t SrsRtcPlayer::package_video(SrsRtpPacket2* pkt) return err; } -srs_error_t SrsRtcPlayer::send_packets(std::vector& pkts, SrsRtcOutgoingInfo& info) +srs_error_t SrsRtcPlayer::send_packets(const std::vector& pkts, SrsRtcOutgoingInfo& info) { srs_error_t err = srs_success; @@ -905,7 +905,7 @@ srs_error_t SrsRtcPlayer::send_packets(std::vector& pkts, SrsRtc } // TODO: FIXME: We can gather and pad audios, because they have similar size. -srs_error_t SrsRtcPlayer::send_packets_gso(vector& pkts, SrsRtcOutgoingInfo& info) +srs_error_t SrsRtcPlayer::send_packets_gso(const vector& pkts, SrsRtcOutgoingInfo& info) { srs_error_t err = srs_success; diff --git a/trunk/src/app/srs_app_rtc_conn.hpp b/trunk/src/app/srs_app_rtc_conn.hpp index d3e71b7d7..51e961cc2 100644 --- a/trunk/src/app/srs_app_rtc_conn.hpp +++ b/trunk/src/app/srs_app_rtc_conn.hpp @@ -238,12 +238,12 @@ public: public: virtual srs_error_t cycle(); private: - srs_error_t send_messages(SrsRtcSource* source, std::vector& pkts, SrsRtcOutgoingInfo& info); - srs_error_t messages_to_packets(SrsRtcSource* source, std::vector& pkts, SrsRtcOutgoingInfo& info); + srs_error_t send_messages(SrsRtcSource* source, const std::vector& pkts, SrsRtcOutgoingInfo& info); + srs_error_t messages_to_packets(SrsRtcSource* source, const std::vector& pkts, SrsRtcOutgoingInfo& info); srs_error_t package_opus(SrsRtpPacket2* pkt); srs_error_t package_video(SrsRtpPacket2* pkt); - srs_error_t send_packets(std::vector& pkts, SrsRtcOutgoingInfo& info); - srs_error_t send_packets_gso(std::vector& pkts, SrsRtcOutgoingInfo& info); + srs_error_t send_packets(const std::vector& pkts, SrsRtcOutgoingInfo& info); + srs_error_t send_packets_gso(const std::vector& pkts, SrsRtcOutgoingInfo& info); public: void nack_fetch(std::vector& pkts, uint32_t ssrc, uint16_t seq); void simulate_nack_drop(int nn); diff --git a/trunk/src/app/srs_app_rtc_source.cpp b/trunk/src/app/srs_app_rtc_source.cpp index 1c15790bd..d6328acd2 100644 --- a/trunk/src/app/srs_app_rtc_source.cpp +++ b/trunk/src/app/srs_app_rtc_source.cpp @@ -614,14 +614,15 @@ srs_error_t SrsRtcFromRtmpBridger::on_video(SrsSharedPtrMessage* msg) return srs_error_wrap(err, "format consume video"); } - if ((err = filter(msg, format)) != srs_success) { + bool has_idr = false; + vector samples; + if ((err = filter(msg, format, has_idr, samples)) != srs_success) { return srs_error_wrap(err, "filter video"); } - - int nn_samples = format->video->nb_samples; + int nn_samples = (int)samples.size(); // Well, for each IDR, we append a SPS/PPS before it, which is packaged in STAP-A. - if (msg->has_idr()) { + if (has_idr) { SrsRtpPacket2* pkt = NULL; SrsAutoFree(SrsRtpPacket2, pkt); @@ -637,14 +638,14 @@ srs_error_t SrsRtcFromRtmpBridger::on_video(SrsSharedPtrMessage* msg) // If merge Nalus, we pcakges all NALUs(samples) as one NALU, in a RTP or FUA packet. vector pkts; if (merge_nalus && nn_samples > 1) { - if ((err = package_nalus(msg, pkts)) != srs_success) { + if ((err = package_nalus(msg, samples, pkts)) != srs_success) { return srs_error_wrap(err, "package nalus as one"); } } // By default, we package each NALU(sample) to a RTP or FUA packet. for (int i = 0; i < nn_samples; i++) { - SrsSample* sample = msg->samples() + i; + SrsSample* sample = samples[i]; // We always ignore bframe here, if config to discard bframe, // the bframe flag will not be set. @@ -670,13 +671,13 @@ srs_error_t SrsRtcFromRtmpBridger::on_video(SrsSharedPtrMessage* msg) return consume_packets(pkts); } -srs_error_t SrsRtcFromRtmpBridger::filter(SrsSharedPtrMessage* msg, SrsFormat* format) +srs_error_t SrsRtcFromRtmpBridger::filter(SrsSharedPtrMessage* msg, SrsFormat* format, bool& has_idr, vector& samples) { srs_error_t err = srs_success; // If IDR, we will insert SPS/PPS before IDR frame. if (format->video && format->video->has_idr) { - msg->set_has_idr(true); + has_idr = true; } // Update samples to shared frame. @@ -693,15 +694,10 @@ srs_error_t SrsRtcFromRtmpBridger::filter(SrsSharedPtrMessage* msg, SrsFormat* f continue; } } - } - if (format->video->nb_samples <= 0) { - return err; + samples.push_back(sample); } - // TODO: FIXME: Directly covert samples to RTP packets. - msg->set_samples(format->video->samples, format->video->nb_samples); - return err; } @@ -764,14 +760,14 @@ srs_error_t SrsRtcFromRtmpBridger::package_stap_a(SrsRtcSource* source, SrsShare return err; } -srs_error_t SrsRtcFromRtmpBridger::package_nalus(SrsSharedPtrMessage* msg, vector& pkts) +srs_error_t SrsRtcFromRtmpBridger::package_nalus(SrsSharedPtrMessage* msg, const vector& samples, vector& pkts) { srs_error_t err = srs_success; SrsRtpRawNALUs* raw = new SrsRtpRawNALUs(); - for (int i = 0; i < msg->nn_samples(); i++) { - SrsSample* sample = msg->samples() + i; + for (int i = 0; i < (int)samples.size(); i++) { + SrsSample* sample = samples[i]; // We always ignore bframe here, if config to discard bframe, // the bframe flag will not be set. diff --git a/trunk/src/app/srs_app_rtc_source.hpp b/trunk/src/app/srs_app_rtc_source.hpp index 6ee2b8282..de6813888 100644 --- a/trunk/src/app/srs_app_rtc_source.hpp +++ b/trunk/src/app/srs_app_rtc_source.hpp @@ -179,9 +179,9 @@ private: public: virtual srs_error_t on_video(SrsSharedPtrMessage* msg); private: - srs_error_t filter(SrsSharedPtrMessage* msg, SrsFormat* format); + srs_error_t filter(SrsSharedPtrMessage* msg, SrsFormat* format, bool& has_idr, std::vector& samples); srs_error_t package_stap_a(SrsRtcSource* source, SrsSharedPtrMessage* msg, SrsRtpPacket2** ppkt); - srs_error_t package_nalus(SrsSharedPtrMessage* msg, std::vector& pkts); + srs_error_t package_nalus(SrsSharedPtrMessage* msg, const std::vector& samples, std::vector& pkts); srs_error_t package_single_nalu(SrsSharedPtrMessage* msg, SrsSample* sample, std::vector& pkts); srs_error_t package_fu_a(SrsSharedPtrMessage* msg, SrsSample* sample, int fu_payload_size, std::vector& pkts); srs_error_t consume_packets(std::vector& pkts); diff --git a/trunk/src/kernel/srs_kernel_flv.cpp b/trunk/src/kernel/srs_kernel_flv.cpp index 76d808a44..edbcb829c 100644 --- a/trunk/src/kernel/srs_kernel_flv.cpp +++ b/trunk/src/kernel/srs_kernel_flv.cpp @@ -40,9 +40,6 @@ using namespace std; #include #include #include -#ifdef SRS_RTC -#include -#endif SrsMessageHeader::SrsMessageHeader() { @@ -210,16 +207,6 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::SrsSharedPtrPayload() payload = NULL; size = 0; shared_count = 0; - -#ifdef SRS_RTC - samples = NULL; - nn_samples = 0; - has_idr = false; - - extra_payloads = NULL; - nn_extra_payloads = 0; - nn_max_extra_payloads = 0; -#endif } SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload() @@ -228,17 +215,6 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload() srs_memory_unwatch(payload); #endif srs_freepa(payload); - -#ifdef SRS_RTC - srs_freepa(samples); - - for (int i = 0; i < nn_extra_payloads; i++) { - SrsSample* p = extra_payloads + i; - srs_freep(p->bytes); - } - srs_freepa(extra_payloads); - nn_extra_payloads = 0; -#endif } SrsSharedPtrMessage::SrsSharedPtrMessage() : timestamp(0), stream_id(0), size(0), payload(NULL) @@ -388,70 +364,6 @@ SrsSharedPtrMessage* SrsSharedPtrMessage::copy() return copy; } -#ifdef SRS_RTC -void SrsSharedPtrMessage::set_extra_payloads(SrsSample* payloads, int nn_payloads) -{ - srs_assert(nn_payloads); - srs_assert(!ptr->extra_payloads); - - ptr->nn_extra_payloads = nn_payloads; - - ptr->extra_payloads = new SrsSample[nn_payloads]; - memcpy((void*)ptr->extra_payloads, payloads, nn_payloads * sizeof(SrsSample)); -} - -int SrsSharedPtrMessage::nn_extra_payloads() -{ - return ptr->nn_extra_payloads; -} - -SrsSample* SrsSharedPtrMessage::extra_payloads() -{ - return ptr->extra_payloads; -} - -void SrsSharedPtrMessage::set_max_extra_payload(int v) -{ - ptr->nn_max_extra_payloads = v; -} - -int SrsSharedPtrMessage::nn_max_extra_payloads() -{ - return ptr->nn_max_extra_payloads; -} - -bool SrsSharedPtrMessage::has_idr() -{ - return ptr->has_idr; -} - -void SrsSharedPtrMessage::set_has_idr(bool v) -{ - ptr->has_idr = v; -} - -void SrsSharedPtrMessage::set_samples(SrsSample* samples, int nn_samples) -{ - srs_assert(nn_samples); - srs_assert(!ptr->samples); - - ptr->nn_samples = nn_samples; - - ptr->samples = new SrsSample[nn_samples]; - memcpy((void*)ptr->samples, samples, nn_samples * sizeof(SrsSample)); -} - -int SrsSharedPtrMessage::nn_samples() -{ - return ptr->nn_samples; -} - -SrsSample* SrsSharedPtrMessage::samples() -{ - return ptr->samples; -} -#endif - SrsFlvTransmuxer::SrsFlvTransmuxer() { writer = NULL; diff --git a/trunk/src/kernel/srs_kernel_flv.hpp b/trunk/src/kernel/srs_kernel_flv.hpp index 60d8ee1d3..f3be5931b 100644 --- a/trunk/src/kernel/srs_kernel_flv.hpp +++ b/trunk/src/kernel/srs_kernel_flv.hpp @@ -303,24 +303,6 @@ private: int size; // The reference count int shared_count; -#ifdef SRS_RTC - // TODO: FIXME: Remove it. - public: - // For RTC video, we need to know the NALU structures, - // because the RTP STAP-A or FU-A based on NALU. - SrsSample* samples; - int nn_samples; - // For RTC video, whether NALUs has IDR. - bool has_idr; - public: - // For RTC audio, we may need to transcode AAC to opus, - // so there must be an extra payloads, which is transformed from payload. - SrsSample* extra_payloads; - int nn_extra_payloads; - // The max size payload in extras. - // @remark For GSO to fast guess the best padding. - int nn_max_extra_payloads; -#endif public: SrsSharedPtrPayload(); virtual ~SrsSharedPtrPayload(); @@ -365,24 +347,6 @@ public: // copy current shared ptr message, use ref-count. // @remark, assert object is created. virtual SrsSharedPtrMessage* copy(); -public: -#ifdef SRS_RTC - // Set extra samples, for example, when we transcode an AAC audio packet to OPUS, - // we may get more than one OPUS packets, we set these OPUS packets in extra payloads. - void set_extra_payloads(SrsSample* payloads, int nn_payloads); - int nn_extra_payloads(); - SrsSample* extra_payloads(); - // The max extra payload size. - void set_max_extra_payload(int v); - int nn_max_extra_payloads(); - // Whether samples has idr. - bool has_idr(); - void set_has_idr(bool v); - // Set samples, each sample points to the address of payload. - void set_samples(SrsSample* samples, int nn_samples); - int nn_samples(); - SrsSample* samples(); -#endif }; // Transmux RTMP packets to FLV stream.