Change VideoRtpReceiver to create remote VideoTrack and VideoTrackSource.
This enabled us to be able to remove VideoTrack::GetSink and RemoteVideoCapturer. Since video frames from the decoder is delivered on a media engine internal thread, VideoBroadCaster must be made thread safe. BUG=webrtc:5426 R=deadbeef@webrtc.org, pthatcher@webrtc.org Review URL: https://codereview.webrtc.org/1765423005 . Cr-Commit-Position: refs/heads/master@{#11944}
This commit is contained in:
@ -150,12 +150,11 @@ class RtpSenderReceiverTest : public testing::Test {
|
||||
}
|
||||
|
||||
void CreateVideoRtpReceiver() {
|
||||
AddVideoTrack(true);
|
||||
EXPECT_CALL(video_provider_,
|
||||
SetVideoPlayout(kVideoSsrc, true,
|
||||
video_track_->GetSink()));
|
||||
video_rtp_receiver_ = new VideoRtpReceiver(stream_->GetVideoTracks()[0],
|
||||
kVideoSsrc, &video_provider_);
|
||||
EXPECT_CALL(video_provider_, SetVideoPlayout(kVideoSsrc, true, _));
|
||||
video_rtp_receiver_ =
|
||||
new VideoRtpReceiver(stream_, kVideoTrackId, rtc::Thread::Current(),
|
||||
kVideoSsrc, &video_provider_);
|
||||
video_track_ = video_rtp_receiver_->video_track();
|
||||
}
|
||||
|
||||
void DestroyAudioRtpReceiver() {
|
||||
@ -244,6 +243,20 @@ TEST_F(RtpSenderReceiverTest, LocalVideoTrackDisable) {
|
||||
DestroyVideoRtpSender();
|
||||
}
|
||||
|
||||
TEST_F(RtpSenderReceiverTest, RemoteVideoTrackState) {
|
||||
CreateVideoRtpReceiver();
|
||||
|
||||
EXPECT_EQ(webrtc::MediaStreamTrackInterface::kLive, video_track_->state());
|
||||
EXPECT_EQ(webrtc::MediaSourceInterface::kLive,
|
||||
video_track_->GetSource()->state());
|
||||
|
||||
DestroyVideoRtpReceiver();
|
||||
|
||||
EXPECT_EQ(webrtc::MediaStreamTrackInterface::kEnded, video_track_->state());
|
||||
EXPECT_EQ(webrtc::MediaSourceInterface::kEnded,
|
||||
video_track_->GetSource()->state());
|
||||
}
|
||||
|
||||
TEST_F(RtpSenderReceiverTest, RemoteVideoTrackDisable) {
|
||||
CreateVideoRtpReceiver();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user