webrtc_m130/call/rtp_stream_receiver_controller.cc

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

72 lines
2.2 KiB
C++
Raw Normal View History

/*
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "call/rtp_stream_receiver_controller.h"
Reland of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #1 id:1 of https://codereview.webrtc.org/2993633002/ ) Reason for revert: Relanding Original issue's description: > Revert of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #15 id:280001 of https://codereview.webrtc.org/2968693002/ ) > > Reason for revert: > Some internal tests keep failing after this change. Try to fix it by reverting it. Will reland it if this isn't the root cause. > > Original issue's description: > > SSRC and RSID may only refer to one sink each in RtpDemuxer > > > > RTP demuxing should only match RTP packets with one sink. > > > > BUG=webrtc:7135 > > > > Review-Url: https://codereview.webrtc.org/2968693002 > > Cr-Commit-Position: refs/heads/master@{#19233} > > Committed: https://chromium.googlesource.com/external/webrtc/+/7b7e06fd23ac67d81f378b773bb631abb1d82116 > > TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,eladalon@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:7135 > > Review-Url: https://codereview.webrtc.org/2993633002 > Cr-Commit-Position: refs/heads/master@{#19239} > Committed: https://chromium.googlesource.com/external/webrtc/+/59b603fbed5b069090f9084c8eeb82eff7bca30c TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,zhihuang@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7135 Review-Url: https://codereview.webrtc.org/2993053002 Cr-Commit-Position: refs/heads/master@{#19248}
2017-08-04 06:34:54 -07:00
Use std::make_unique instead of absl::make_unique. WebRTC is now using C++14 so there is no need to use the Abseil version of std::make_unique. This CL has been created with the following steps: git grep -l absl::make_unique | sort | uniq > /tmp/make_unique.txt git grep -l absl::WrapUnique | sort | uniq > /tmp/wrap_unique.txt git grep -l "#include <memory>" | sort | uniq > /tmp/memory.txt diff --new-line-format="" --unchanged-line-format="" \ /tmp/make_unique.txt /tmp/wrap_unique.txt | sort | \ uniq > /tmp/only_make_unique.txt diff --new-line-format="" --unchanged-line-format="" \ /tmp/only_make_unique.txt /tmp/memory.txt | \ xargs grep -l "absl/memory" > /tmp/add-memory.txt git grep -l "\babsl::make_unique\b" | \ xargs sed -i "s/\babsl::make_unique\b/std::make_unique/g" git checkout PRESUBMIT.py abseil-in-webrtc.md cat /tmp/add-memory.txt | \ xargs sed -i \ 's/#include "absl\/memory\/memory.h"/#include <memory>/g' git cl format # Manual fix order of the new inserted #include <memory> cat /tmp/only_make_unique | xargs grep -l "#include <memory>" | \ xargs sed -i '/#include "absl\/memory\/memory.h"/d' git ls-files | grep BUILD.gn | \ xargs sed -i '/\/\/third_party\/abseil-cpp\/absl\/memory/d' python tools_webrtc/gn_check_autofix.py \ -m tryserver.webrtc -b linux_rel # Repead the gn_check_autofix step for other platforms git ls-files | grep BUILD.gn | \ xargs sed -i 's/absl\/memory:memory/absl\/memory/g' git cl format Bug: webrtc:10945 Change-Id: I3fe28ea80f4dd3ba3cf28effd151d5e1f19aff89 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153221 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29209}
2019-09-17 17:06:18 +02:00
#include <memory>
#include "rtc_base/logging.h"
namespace webrtc {
RtpStreamReceiverController::Receiver::Receiver(
RtpStreamReceiverController* controller,
uint32_t ssrc,
RtpPacketSinkInterface* sink)
: controller_(controller), sink_(sink) {
Reland of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #1 id:1 of https://codereview.webrtc.org/2993633002/ ) Reason for revert: Relanding Original issue's description: > Revert of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #15 id:280001 of https://codereview.webrtc.org/2968693002/ ) > > Reason for revert: > Some internal tests keep failing after this change. Try to fix it by reverting it. Will reland it if this isn't the root cause. > > Original issue's description: > > SSRC and RSID may only refer to one sink each in RtpDemuxer > > > > RTP demuxing should only match RTP packets with one sink. > > > > BUG=webrtc:7135 > > > > Review-Url: https://codereview.webrtc.org/2968693002 > > Cr-Commit-Position: refs/heads/master@{#19233} > > Committed: https://chromium.googlesource.com/external/webrtc/+/7b7e06fd23ac67d81f378b773bb631abb1d82116 > > TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,eladalon@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:7135 > > Review-Url: https://codereview.webrtc.org/2993633002 > Cr-Commit-Position: refs/heads/master@{#19239} > Committed: https://chromium.googlesource.com/external/webrtc/+/59b603fbed5b069090f9084c8eeb82eff7bca30c TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,zhihuang@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7135 Review-Url: https://codereview.webrtc.org/2993053002 Cr-Commit-Position: refs/heads/master@{#19248}
2017-08-04 06:34:54 -07:00
const bool sink_added = controller_->AddSink(ssrc, sink_);
if (!sink_added) {
RTC_LOG(LS_ERROR)
<< "RtpStreamReceiverController::Receiver::Receiver: Sink "
"could not be added for SSRC="
<< ssrc << ".";
Reland of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #1 id:1 of https://codereview.webrtc.org/2993633002/ ) Reason for revert: Relanding Original issue's description: > Revert of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #15 id:280001 of https://codereview.webrtc.org/2968693002/ ) > > Reason for revert: > Some internal tests keep failing after this change. Try to fix it by reverting it. Will reland it if this isn't the root cause. > > Original issue's description: > > SSRC and RSID may only refer to one sink each in RtpDemuxer > > > > RTP demuxing should only match RTP packets with one sink. > > > > BUG=webrtc:7135 > > > > Review-Url: https://codereview.webrtc.org/2968693002 > > Cr-Commit-Position: refs/heads/master@{#19233} > > Committed: https://chromium.googlesource.com/external/webrtc/+/7b7e06fd23ac67d81f378b773bb631abb1d82116 > > TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,eladalon@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:7135 > > Review-Url: https://codereview.webrtc.org/2993633002 > Cr-Commit-Position: refs/heads/master@{#19239} > Committed: https://chromium.googlesource.com/external/webrtc/+/59b603fbed5b069090f9084c8eeb82eff7bca30c TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,zhihuang@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7135 Review-Url: https://codereview.webrtc.org/2993053002 Cr-Commit-Position: refs/heads/master@{#19248}
2017-08-04 06:34:54 -07:00
}
}
RtpStreamReceiverController::Receiver::~Receiver() {
// This may fail, if corresponding AddSink in the constructor failed.
controller_->RemoveSink(sink_);
}
RtpStreamReceiverController::RtpStreamReceiverController() {}
RtpStreamReceiverController::~RtpStreamReceiverController() = default;
std::unique_ptr<RtpStreamReceiverInterface>
RtpStreamReceiverController::CreateReceiver(uint32_t ssrc,
RtpPacketSinkInterface* sink) {
Use std::make_unique instead of absl::make_unique. WebRTC is now using C++14 so there is no need to use the Abseil version of std::make_unique. This CL has been created with the following steps: git grep -l absl::make_unique | sort | uniq > /tmp/make_unique.txt git grep -l absl::WrapUnique | sort | uniq > /tmp/wrap_unique.txt git grep -l "#include <memory>" | sort | uniq > /tmp/memory.txt diff --new-line-format="" --unchanged-line-format="" \ /tmp/make_unique.txt /tmp/wrap_unique.txt | sort | \ uniq > /tmp/only_make_unique.txt diff --new-line-format="" --unchanged-line-format="" \ /tmp/only_make_unique.txt /tmp/memory.txt | \ xargs grep -l "absl/memory" > /tmp/add-memory.txt git grep -l "\babsl::make_unique\b" | \ xargs sed -i "s/\babsl::make_unique\b/std::make_unique/g" git checkout PRESUBMIT.py abseil-in-webrtc.md cat /tmp/add-memory.txt | \ xargs sed -i \ 's/#include "absl\/memory\/memory.h"/#include <memory>/g' git cl format # Manual fix order of the new inserted #include <memory> cat /tmp/only_make_unique | xargs grep -l "#include <memory>" | \ xargs sed -i '/#include "absl\/memory\/memory.h"/d' git ls-files | grep BUILD.gn | \ xargs sed -i '/\/\/third_party\/abseil-cpp\/absl\/memory/d' python tools_webrtc/gn_check_autofix.py \ -m tryserver.webrtc -b linux_rel # Repead the gn_check_autofix step for other platforms git ls-files | grep BUILD.gn | \ xargs sed -i 's/absl\/memory:memory/absl\/memory/g' git cl format Bug: webrtc:10945 Change-Id: I3fe28ea80f4dd3ba3cf28effd151d5e1f19aff89 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153221 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29209}
2019-09-17 17:06:18 +02:00
return std::make_unique<Receiver>(this, ssrc, sink);
}
bool RtpStreamReceiverController::OnRtpPacket(const RtpPacketReceived& packet) {
RTC_DCHECK_RUN_ON(&demuxer_sequence_);
return demuxer_.OnRtpPacket(packet);
}
void RtpStreamReceiverController::OnRecoveredPacket(
const RtpPacketReceived& packet) {
RTC_DCHECK_RUN_ON(&demuxer_sequence_);
demuxer_.OnRtpPacket(packet);
}
Reland of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #1 id:1 of https://codereview.webrtc.org/2993633002/ ) Reason for revert: Relanding Original issue's description: > Revert of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #15 id:280001 of https://codereview.webrtc.org/2968693002/ ) > > Reason for revert: > Some internal tests keep failing after this change. Try to fix it by reverting it. Will reland it if this isn't the root cause. > > Original issue's description: > > SSRC and RSID may only refer to one sink each in RtpDemuxer > > > > RTP demuxing should only match RTP packets with one sink. > > > > BUG=webrtc:7135 > > > > Review-Url: https://codereview.webrtc.org/2968693002 > > Cr-Commit-Position: refs/heads/master@{#19233} > > Committed: https://chromium.googlesource.com/external/webrtc/+/7b7e06fd23ac67d81f378b773bb631abb1d82116 > > TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,eladalon@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:7135 > > Review-Url: https://codereview.webrtc.org/2993633002 > Cr-Commit-Position: refs/heads/master@{#19239} > Committed: https://chromium.googlesource.com/external/webrtc/+/59b603fbed5b069090f9084c8eeb82eff7bca30c TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,zhihuang@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7135 Review-Url: https://codereview.webrtc.org/2993053002 Cr-Commit-Position: refs/heads/master@{#19248}
2017-08-04 06:34:54 -07:00
bool RtpStreamReceiverController::AddSink(uint32_t ssrc,
RtpPacketSinkInterface* sink) {
RTC_DCHECK_RUN_ON(&demuxer_sequence_);
return demuxer_.AddSink(ssrc, sink);
}
bool RtpStreamReceiverController::RemoveSink(
const RtpPacketSinkInterface* sink) {
RTC_DCHECK_RUN_ON(&demuxer_sequence_);
return demuxer_.RemoveSink(sink);
}
} // namespace webrtc