Reland of Implemented the GetSources() in native code. (patchset #1 id:1 of https://codereview.webrtc.org/2809613002/ )
Reason for revert: Re-land, reverting did not fix bug. https://bugs.chromium.org/p/webrtc/issues/detail?id=7465 Original issue's description: > Revert of Implemented the GetSources() in native code. (patchset #11 id:510001 of https://codereview.webrtc.org/2770233003/ ) > > Reason for revert: > Suspected of WebRtcApprtcBrowserTest.MANUAL_WorksOnApprtc breakage, see > > https://bugs.chromium.org/p/webrtc/issues/detail?id=7465 > > Original issue's description: > > Added the GetSources() to the RtpReceiverInterface and implemented > > it for the AudioRtpReceiver. > > > > This method returns a vector of RtpSource(both CSRC source and SSRC > > source) which contains the ID of a source, the timestamp, the source > > type (SSRC or CSRC) and the audio level. > > > > The RtpSource objects are buffered and maintained by the > > RtpReceiver in webrtc/modules/rtp_rtcp/. When the method is called, > > the info of the contributing source will be pulled along the object > > chain: > > AudioRtpReceiver -> VoiceChannel -> WebRtcVoiceMediaChannel -> > > AudioReceiveStream -> voe::Channel -> RtpRtcp module > > > > Spec:https://w3c.github.io/webrtc-pc/archives/20151006/webrtc.html#widl-RTCRtpReceiver-getContributingSources-sequence-RTCRtpContributingSource > > > > BUG=chromium:703122 > > TBR=stefan@webrtc.org, danilchap@webrtc.org > > > > Review-Url: https://codereview.webrtc.org/2770233003 > > Cr-Commit-Position: refs/heads/master@{#17591} > > Committed:292084c376> > TBR=deadbeef@webrtc.org,solenberg@webrtc.org,hbos@webrtc.org,philipel@webrtc.org,stefan@webrtc.org,danilchap@webrtc.org,zhihuang@webrtc.org > # Not skipping CQ checks because original CL landed more than 1 days ago. > BUG=chromium:703122 > > Review-Url: https://codereview.webrtc.org/2809613002 > Cr-Commit-Position: refs/heads/master@{#17616} > Committed:fbcc5cb386TBR=deadbeef@webrtc.org,solenberg@webrtc.org,philipel@webrtc.org,stefan@webrtc.org,danilchap@webrtc.org,zhihuang@webrtc.org,olka@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:703122 Review-Url: https://codereview.webrtc.org/2810623003 Cr-Commit-Position: refs/heads/master@{#17621}
This commit is contained in:
@ -11,7 +11,10 @@
|
||||
#ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_RECEIVER_IMPL_H_
|
||||
#define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_RECEIVER_IMPL_H_
|
||||
|
||||
#include <list>
|
||||
#include <memory>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
#include "webrtc/base/criticalsection.h"
|
||||
#include "webrtc/modules/rtp_rtcp/include/rtp_receiver.h"
|
||||
@ -56,6 +59,16 @@ class RtpReceiverImpl : public RtpReceiver {
|
||||
|
||||
TelephoneEventHandler* GetTelephoneEventHandler() override;
|
||||
|
||||
std::vector<RtpSource> GetSources() const override;
|
||||
|
||||
const std::vector<RtpSource>& ssrc_sources_for_testing() const {
|
||||
return ssrc_sources_;
|
||||
}
|
||||
|
||||
const std::list<RtpSource>& csrc_sources_for_testing() const {
|
||||
return csrc_sources_;
|
||||
}
|
||||
|
||||
private:
|
||||
bool HaveReceivedFrame() const;
|
||||
|
||||
@ -66,6 +79,9 @@ class RtpReceiverImpl : public RtpReceiver {
|
||||
bool* is_red,
|
||||
PayloadUnion* payload);
|
||||
|
||||
void UpdateSources();
|
||||
void RemoveOutdatedSources(int64_t now_ms);
|
||||
|
||||
Clock* clock_;
|
||||
RTPPayloadRegistry* rtp_payload_registry_;
|
||||
std::unique_ptr<RTPReceiverStrategy> rtp_media_receiver_;
|
||||
@ -84,6 +100,12 @@ class RtpReceiverImpl : public RtpReceiver {
|
||||
uint32_t last_received_timestamp_;
|
||||
int64_t last_received_frame_time_ms_;
|
||||
uint16_t last_received_sequence_number_;
|
||||
|
||||
std::unordered_map<uint32_t, std::list<RtpSource>::iterator>
|
||||
iterator_by_csrc_;
|
||||
// The RtpSource objects are sorted chronologically.
|
||||
std::list<RtpSource> csrc_sources_;
|
||||
std::vector<RtpSource> ssrc_sources_;
|
||||
};
|
||||
} // namespace webrtc
|
||||
#endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_RECEIVER_IMPL_H_
|
||||
|
||||
Reference in New Issue
Block a user