diff --git a/media/base/adaptedvideotracksource.cc b/media/base/adaptedvideotracksource.cc index 16f11b9414..5a7168bfb8 100644 --- a/media/base/adaptedvideotracksource.cc +++ b/media/base/adaptedvideotracksource.cc @@ -95,7 +95,7 @@ bool AdaptedVideoTrackSource::AdaptFrame(int width, int* crop_y) { { rtc::CritScope lock(&stats_crit_); - stats_ = rtc::Optional({width, height}); + stats_ = Stats{width, height}; } if (!broadcaster_.frame_wanted()) { diff --git a/media/base/codec.cc b/media/base/codec.cc index 5c486ee9de..59c61fe69a 100644 --- a/media/base/codec.cc +++ b/media/base/codec.cc @@ -152,7 +152,7 @@ webrtc::RtpCodecParameters Codec::ToCodecParameters() const { webrtc::RtpCodecParameters codec_params; codec_params.payload_type = id; codec_params.name = name; - codec_params.clock_rate = rtc::Optional(clockrate); + codec_params.clock_rate = clockrate; return codec_params; } @@ -201,7 +201,7 @@ std::string AudioCodec::ToString() const { webrtc::RtpCodecParameters AudioCodec::ToCodecParameters() const { webrtc::RtpCodecParameters codec_params = Codec::ToCodecParameters(); - codec_params.num_channels = rtc::Optional(static_cast(channels)); + codec_params.num_channels = static_cast(channels); codec_params.kind = MEDIA_TYPE_AUDIO; return codec_params; } diff --git a/media/base/codec_unittest.cc b/media/base/codec_unittest.cc index 394385e908..00d23eec80 100644 --- a/media/base/codec_unittest.cc +++ b/media/base/codec_unittest.cc @@ -313,15 +313,14 @@ TEST(CodecTest, TestToCodecParameters) { EXPECT_EQ(96, codec_params_1.payload_type); EXPECT_EQ(cricket::MEDIA_TYPE_VIDEO, codec_params_1.kind); EXPECT_EQ("V", codec_params_1.name); - EXPECT_EQ(rtc::Optional(cricket::kVideoCodecClockrate), - codec_params_1.clock_rate); - EXPECT_EQ(rtc::Optional(), codec_params_1.num_channels); + EXPECT_EQ(cricket::kVideoCodecClockrate, codec_params_1.clock_rate); + EXPECT_EQ(rtc::nullopt, codec_params_1.num_channels); const AudioCodec a(97, "A", 44100, 20000, 2); webrtc::RtpCodecParameters codec_params_2 = a.ToCodecParameters(); EXPECT_EQ(97, codec_params_2.payload_type); EXPECT_EQ(cricket::MEDIA_TYPE_AUDIO, codec_params_2.kind); EXPECT_EQ("A", codec_params_2.name); - EXPECT_EQ(rtc::Optional(44100), codec_params_2.clock_rate); - EXPECT_EQ(rtc::Optional(2), codec_params_2.num_channels); + EXPECT_EQ(44100, codec_params_2.clock_rate); + EXPECT_EQ(2, codec_params_2.num_channels); } diff --git a/media/base/h264_profile_level_id.cc b/media/base/h264_profile_level_id.cc index 824c03b298..c81921d167 100644 --- a/media/base/h264_profile_level_id.cc +++ b/media/base/h264_profile_level_id.cc @@ -121,10 +121,10 @@ static constexpr LevelConstraint kLevelConstraints[] = { rtc::Optional ParseProfileLevelId(const char* str) { // The string should consist of 3 bytes in hexadecimal format. if (strlen(str) != 6u) - return rtc::Optional(); + return rtc::nullopt; const uint32_t profile_level_id_numeric = strtol(str, nullptr, 16); if (profile_level_id_numeric == 0) - return rtc::Optional(); + return rtc::nullopt; // Separate into three bytes. const uint8_t level_idc = @@ -159,19 +159,19 @@ rtc::Optional ParseProfileLevelId(const char* str) { break; default: // Unrecognized level_idc. - return rtc::Optional(); + return rtc::nullopt; } // Parse profile_idc/profile_iop into a Profile enum. for (const ProfilePattern& pattern : kProfilePatterns) { if (profile_idc == pattern.profile_idc && pattern.profile_iop.IsMatch(profile_iop)) { - return rtc::Optional({pattern.profile, level}); + return ProfileLevelId(pattern.profile, level); } } // Unrecognized profile_idc/profile_iop combination. - return rtc::Optional(); + return rtc::nullopt; } rtc::Optional SupportedLevel(int max_frame_pixel_count, float max_fps) { @@ -183,12 +183,12 @@ rtc::Optional SupportedLevel(int max_frame_pixel_count, float max_fps) { max_frame_pixel_count && level_constraint.max_macroblocks_per_second <= max_fps * level_constraint.max_macroblock_frame_size) { - return rtc::Optional(level_constraint.level); + return level_constraint.level; } } // No level supported. - return rtc::Optional(); + return rtc::nullopt; } rtc::Optional ParseSdpProfileLevelId( @@ -205,7 +205,7 @@ rtc::Optional ParseSdpProfileLevelId( const auto profile_level_id_it = params.find(kProfileLevelId); return (profile_level_id_it == params.end()) - ? rtc::Optional(kDefaultProfileLevelId) + ? kDefaultProfileLevelId : ParseProfileLevelId(profile_level_id_it->second.c_str()); } @@ -215,14 +215,14 @@ rtc::Optional ProfileLevelIdToString( if (profile_level_id.level == kLevel1_b) { switch (profile_level_id.profile) { case kProfileConstrainedBaseline: - return rtc::Optional("42f00b"); + return {"42f00b"}; case kProfileBaseline: - return rtc::Optional("42100b"); + return {"42100b"}; case kProfileMain: - return rtc::Optional("4d100b"); + return {"4d100b"}; // Level 1b is not allowed for other profiles. default: - return rtc::Optional(); + return rtc::nullopt; } } @@ -245,12 +245,12 @@ rtc::Optional ProfileLevelIdToString( break; // Unrecognized profile. default: - return rtc::Optional(); + return rtc::nullopt; } char str[7]; snprintf(str, 7u, "%s%02x", profile_idc_iop_string, profile_level_id.level); - return rtc::Optional(str); + return {str}; } // Set level according to https://tools.ietf.org/html/rfc6184#section-8.2.2. diff --git a/media/base/videoadapter.cc b/media/base/videoadapter.cc index c678444c41..553c2c320b 100644 --- a/media/base/videoadapter.cc +++ b/media/base/videoadapter.cc @@ -151,8 +151,7 @@ bool VideoAdapter::KeepFrame(int64_t in_timestamp_ns) { // First timestamp received or timestamp is way outside expected range, so // reset. Set first timestamp target to just half the interval to prefer // keeping frames in case of jitter. - next_frame_timestamp_ns_ = - rtc::Optional(in_timestamp_ns + frame_interval_ns / 2); + next_frame_timestamp_ns_ = in_timestamp_ns + frame_interval_ns / 2; return true; } @@ -258,8 +257,8 @@ bool VideoAdapter::AdaptFrameResolution(int in_width, void VideoAdapter::OnOutputFormatRequest(const VideoFormat& format) { rtc::CritScope cs(&critical_section_); - requested_format_ = rtc::Optional(format); - next_frame_timestamp_ns_ = rtc::Optional(); + requested_format_ = format; + next_frame_timestamp_ns_ = rtc::nullopt; } void VideoAdapter::OnResolutionFramerateRequest( diff --git a/media/base/videoadapter_unittest.cc b/media/base/videoadapter_unittest.cc index 522cd5ddea..039d1da636 100644 --- a/media/base/videoadapter_unittest.cc +++ b/media/base/videoadapter_unittest.cc @@ -391,7 +391,7 @@ TEST_F(VideoAdapterTest, AdaptFramerateOntheFly) { // Do not adapt the frame rate or the resolution. Expect no frame drop, no // cropping, and no resolution change. TEST_F(VideoAdapterTest, OnFramerateRequestMax) { - adapter_.OnResolutionFramerateRequest(rtc::Optional(), + adapter_.OnResolutionFramerateRequest(rtc::nullopt, std::numeric_limits::max(), std::numeric_limits::max()); @@ -409,7 +409,7 @@ TEST_F(VideoAdapterTest, OnFramerateRequestMax) { } TEST_F(VideoAdapterTest, OnFramerateRequestZero) { - adapter_.OnResolutionFramerateRequest(rtc::Optional(), + adapter_.OnResolutionFramerateRequest(rtc::nullopt, std::numeric_limits::max(), 0); EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_)); for (int i = 0; i < 10; ++i) @@ -425,7 +425,7 @@ TEST_F(VideoAdapterTest, OnFramerateRequestZero) { // the number of dropped frames to be half of the number the captured frames. TEST_F(VideoAdapterTest, OnFramerateRequestHalf) { adapter_.OnResolutionFramerateRequest( - rtc::Optional(), std::numeric_limits::max(), kDefaultFps / 2); + rtc::nullopt, std::numeric_limits::max(), kDefaultFps / 2); EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_)); for (int i = 0; i < 10; ++i) capturer_->CaptureFrame(); @@ -750,7 +750,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { EXPECT_EQ(720, out_height_); // Adapt down one step. - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 1280 * 720 - 1, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 1280 * 720 - 1, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, &cropped_width_, &cropped_height_, @@ -761,7 +761,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { EXPECT_EQ(540, out_height_); // Adapt down one step more. - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 960 * 540 - 1, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 960 * 540 - 1, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, &cropped_width_, &cropped_height_, @@ -772,7 +772,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { EXPECT_EQ(360, out_height_); // Adapt down one step more. - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 640 * 360 - 1, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 640 * 360 - 1, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, &cropped_width_, &cropped_height_, @@ -783,7 +783,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { EXPECT_EQ(270, out_height_); // Adapt up one step. - adapter_.OnResolutionFramerateRequest(rtc::Optional(640 * 360), + adapter_.OnResolutionFramerateRequest(640 * 360, 960 * 540, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, @@ -795,7 +795,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { EXPECT_EQ(360, out_height_); // Adapt up one step more. - adapter_.OnResolutionFramerateRequest(rtc::Optional(960 * 540), + adapter_.OnResolutionFramerateRequest(960 * 540, 1280 * 720, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, @@ -807,7 +807,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { EXPECT_EQ(540, out_height_); // Adapt up one step more. - adapter_.OnResolutionFramerateRequest(rtc::Optional(1280 * 720), + adapter_.OnResolutionFramerateRequest(1280 * 720, 1920 * 1080, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, @@ -828,7 +828,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestMaxZero) { EXPECT_EQ(1280, out_width_); EXPECT_EQ(720, out_height_); - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 0, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 0, std::numeric_limits::max()); EXPECT_FALSE(adapter_.AdaptFrameResolution(1280, 720, 0, &cropped_width_, &cropped_height_, @@ -837,7 +837,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestMaxZero) { TEST_F(VideoAdapterTest, TestOnResolutionRequestInLargeSteps) { // Large step down. - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 640 * 360 - 1, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 640 * 360 - 1, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, &cropped_width_, &cropped_height_, @@ -848,8 +848,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInLargeSteps) { EXPECT_EQ(270, out_height_); // Large step up. - adapter_.OnResolutionFramerateRequest(rtc::Optional(1280 * 720), - 1920 * 1080, + adapter_.OnResolutionFramerateRequest(1280 * 720, 1920 * 1080, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, &cropped_width_, &cropped_height_, @@ -861,7 +860,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInLargeSteps) { } TEST_F(VideoAdapterTest, TestOnOutputFormatRequestCapsMaxResolution) { - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 640 * 360 - 1, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 640 * 360 - 1, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, &cropped_width_, &cropped_height_, @@ -881,7 +880,7 @@ TEST_F(VideoAdapterTest, TestOnOutputFormatRequestCapsMaxResolution) { EXPECT_EQ(480, out_width_); EXPECT_EQ(270, out_height_); - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 960 * 720, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 960 * 720, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, &cropped_width_, &cropped_height_, @@ -901,7 +900,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestReset) { EXPECT_EQ(1280, out_width_); EXPECT_EQ(720, out_height_); - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 640 * 360 - 1, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 640 * 360 - 1, std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, &cropped_width_, &cropped_height_, @@ -911,7 +910,7 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestReset) { EXPECT_EQ(480, out_width_); EXPECT_EQ(270, out_height_); - adapter_.OnResolutionFramerateRequest(rtc::Optional(), + adapter_.OnResolutionFramerateRequest(rtc::nullopt, std::numeric_limits::max(), std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, @@ -937,7 +936,7 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) { EXPECT_EQ(360, out_height_); // Adapt down one step. - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 640 * 360 - 1, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 640 * 360 - 1, std::numeric_limits::max()); // Expect cropping to 16:9 format and 3/4 scaling. EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, @@ -949,7 +948,7 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) { EXPECT_EQ(270, out_height_); // Adapt down one step more. - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 480 * 270 - 1, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 480 * 270 - 1, std::numeric_limits::max()); // Expect cropping to 16:9 format and 1/2 scaling. EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, @@ -961,8 +960,7 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) { EXPECT_EQ(180, out_height_); // Adapt up one step. - adapter_.OnResolutionFramerateRequest(rtc::Optional(480 * 270), - 640 * 360, + adapter_.OnResolutionFramerateRequest(480 * 270, 640 * 360, std::numeric_limits::max()); // Expect cropping to 16:9 format and 3/4 scaling. EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, @@ -974,8 +972,7 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) { EXPECT_EQ(270, out_height_); // Adapt up one step more. - adapter_.OnResolutionFramerateRequest(rtc::Optional(640 * 360), - 960 * 540, + adapter_.OnResolutionFramerateRequest(640 * 360, 960 * 540, std::numeric_limits::max()); // Expect cropping to 16:9 format and no scaling. EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, @@ -987,8 +984,7 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) { EXPECT_EQ(360, out_height_); // Try to adapt up one step more. - adapter_.OnResolutionFramerateRequest(rtc::Optional(960 * 540), - 1280 * 720, + adapter_.OnResolutionFramerateRequest(960 * 540, 1280 * 720, std::numeric_limits::max()); // Expect cropping to 16:9 format and no scaling. EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, @@ -1004,7 +1000,7 @@ TEST_F(VideoAdapterTest, TestCroppingOddResolution) { // Ask for 640x360 (16:9 aspect), with 3/16 scaling. adapter_.OnOutputFormatRequest( VideoFormat(640, 360, 0, FOURCC_I420)); - adapter_.OnResolutionFramerateRequest(rtc::Optional(), + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 640 * 360 * 3 / 16 * 3 / 16, std::numeric_limits::max()); @@ -1026,7 +1022,7 @@ TEST_F(VideoAdapterTest, TestAdaptToVerySmallResolution) { const int w = 1920; const int h = 1080; adapter_.OnOutputFormatRequest(VideoFormat(w, h, 0, FOURCC_I420)); - adapter_.OnResolutionFramerateRequest(rtc::Optional(), + adapter_.OnResolutionFramerateRequest(rtc::nullopt, w * h * 1 / 16 * 1 / 16, std::numeric_limits::max()); @@ -1042,9 +1038,9 @@ TEST_F(VideoAdapterTest, TestAdaptToVerySmallResolution) { EXPECT_EQ(67, out_height_); // Adapt back up one step to 3/32. - adapter_.OnResolutionFramerateRequest( - rtc::Optional(w * h * 3 / 32 * 3 / 32), w * h * 1 / 8 * 1 / 8, - std::numeric_limits::max()); + adapter_.OnResolutionFramerateRequest(w * h * 3 / 32 * 3 / 32, + w * h * 1 / 8 * 1 / 8, + std::numeric_limits::max()); // Send 1920x1080 (16:9 aspect). EXPECT_TRUE(adapter_.AdaptFrameResolution( @@ -1064,7 +1060,7 @@ TEST_F(VideoAdapterTest, AdaptFrameResolutionDropWithResolutionRequest) { &cropped_width_, &cropped_height_, &out_width_, &out_height_)); - adapter_.OnResolutionFramerateRequest(rtc::Optional(960 * 540), + adapter_.OnResolutionFramerateRequest(960 * 540, std::numeric_limits::max(), std::numeric_limits::max()); @@ -1074,7 +1070,7 @@ TEST_F(VideoAdapterTest, AdaptFrameResolutionDropWithResolutionRequest) { &cropped_width_, &cropped_height_, &out_width_, &out_height_)); - adapter_.OnResolutionFramerateRequest(rtc::Optional(), 640 * 480 - 1, + adapter_.OnResolutionFramerateRequest(rtc::nullopt, 640 * 480 - 1, std::numeric_limits::max()); // Still expect all frames to be dropped @@ -1087,9 +1083,9 @@ TEST_F(VideoAdapterTest, AdaptFrameResolutionDropWithResolutionRequest) { // Test that we will adapt to max given a target pixel count close to max. TEST_F(VideoAdapterTest, TestAdaptToMax) { adapter_.OnOutputFormatRequest(VideoFormat(640, 360, 0, FOURCC_I420)); - adapter_.OnResolutionFramerateRequest( - rtc::Optional(640 * 360 - 1) /* target */, - std::numeric_limits::max(), std::numeric_limits::max()); + adapter_.OnResolutionFramerateRequest(640 * 360 - 1 /* target */, + std::numeric_limits::max(), + std::numeric_limits::max()); EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 360, 0, &cropped_width_, &cropped_height_, &out_width_, diff --git a/media/base/videobroadcaster_unittest.cc b/media/base/videobroadcaster_unittest.cc index 779a5d02ee..0f2057ebe0 100644 --- a/media/base/videobroadcaster_unittest.cc +++ b/media/base/videobroadcaster_unittest.cc @@ -115,14 +115,14 @@ TEST(VideoBroadcasterTest, AppliesMinOfSinkWantsMaxAndTargetPixelCount) { FakeVideoRenderer sink1; VideoSinkWants wants1; - wants1.target_pixel_count = rtc::Optional(1280 * 720); + wants1.target_pixel_count = 1280 * 720; broadcaster.AddOrUpdateSink(&sink1, wants1); EXPECT_EQ(1280 * 720, *broadcaster.wants().target_pixel_count); FakeVideoRenderer sink2; VideoSinkWants wants2; - wants2.target_pixel_count = rtc::Optional(640 * 360); + wants2.target_pixel_count = 640 * 360; broadcaster.AddOrUpdateSink(&sink2, wants2); EXPECT_EQ(640 * 360, *broadcaster.wants().target_pixel_count); diff --git a/media/base/videoengine_unittest.h b/media/base/videoengine_unittest.h index 1cbb2453aa..d49f73b206 100644 --- a/media/base/videoengine_unittest.h +++ b/media/base/videoengine_unittest.h @@ -767,7 +767,7 @@ class VideoMediaChannelTest : public testing::Test, // screencast. It's unclear why, I see nothing obvious in this // test which is related to screencast logic. cricket::VideoOptions video_options; - video_options.is_screencast = rtc::Optional(true); + video_options.is_screencast = true; channel_->SetVideoSend(kSsrc, true, &video_options, nullptr); cricket::VideoFormat format(480, 360, diff --git a/media/engine/fakewebrtccall.cc b/media/engine/fakewebrtccall.cc index edeaa1a3cc..9c266bc572 100644 --- a/media/engine/fakewebrtccall.cc +++ b/media/engine/fakewebrtccall.cc @@ -189,7 +189,7 @@ void FakeVideoSendStream::OnFrame(const webrtc::VideoFrame& frame) { video_streams_ = encoder_config_.video_stream_factory->CreateEncoderStreams( frame.width(), frame.height(), encoder_config_); } - last_frame_ = rtc::Optional(frame); + last_frame_ = frame; } void FakeVideoSendStream::SetStats( diff --git a/media/engine/payload_type_mapper.cc b/media/engine/payload_type_mapper.cc index f34bb03ab2..1927f43a00 100644 --- a/media/engine/payload_type_mapper.cc +++ b/media/engine/payload_type_mapper.cc @@ -89,7 +89,7 @@ rtc::Optional PayloadTypeMapper::GetMappingFor( const webrtc::SdpAudioFormat& format) { auto iter = mappings_.find(format); if (iter != mappings_.end()) - return rtc::Optional(iter->second); + return iter->second; for (; next_unused_payload_type_ <= max_payload_type_; ++next_unused_payload_type_) { @@ -98,20 +98,20 @@ rtc::Optional PayloadTypeMapper::GetMappingFor( used_payload_types_.insert(payload_type); mappings_[format] = payload_type; ++next_unused_payload_type_; - return rtc::Optional(payload_type); + return payload_type; } } - return rtc::Optional(); + return rtc::nullopt; } rtc::Optional PayloadTypeMapper::FindMappingFor( const webrtc::SdpAudioFormat& format) const { auto iter = mappings_.find(format); if (iter != mappings_.end()) - return rtc::Optional(iter->second); + return iter->second; - return rtc::Optional(); + return rtc::nullopt; } rtc::Optional PayloadTypeMapper::ToAudioCodec( @@ -126,10 +126,10 @@ rtc::Optional PayloadTypeMapper::ToAudioCodec( AudioCodec codec(*opt_payload_type, format.name, format.clockrate_hz, 0, format.num_channels); codec.params = format.parameters; - return rtc::Optional(std::move(codec)); + return std::move(codec); } - return rtc::Optional(); + return rtc::nullopt; } bool PayloadTypeMapper::SdpAudioFormatOrdering::operator()( diff --git a/media/engine/payload_type_mapper_unittest.cc b/media/engine/payload_type_mapper_unittest.cc index dca8e61ce8..96d56c28d2 100644 --- a/media/engine/payload_type_mapper_unittest.cc +++ b/media/engine/payload_type_mapper_unittest.cc @@ -17,70 +17,53 @@ namespace cricket { class PayloadTypeMapperTest : public testing::Test { - public: - // TODO(ossu): These are to work around missing comparison operators in - // rtc::Optional. They should be removed once Optional has been updated. - int FindMapping(const webrtc::SdpAudioFormat& format) { - auto opt_mapping = mapper_.FindMappingFor(format); - if (opt_mapping) - return *opt_mapping; - return -1; - } - - int GetMapping(const webrtc::SdpAudioFormat& format) { - auto opt_mapping = mapper_.GetMappingFor(format); - if (opt_mapping) - return *opt_mapping; - return -1; - } - protected: PayloadTypeMapper mapper_; }; TEST_F(PayloadTypeMapperTest, StaticPayloadTypes) { - EXPECT_EQ(0, FindMapping({"pcmu", 8000, 1})); - EXPECT_EQ(3, FindMapping({"gsm", 8000, 1})); - EXPECT_EQ(4, FindMapping({"g723", 8000, 1})); - EXPECT_EQ(5, FindMapping({"dvi4", 8000, 1})); - EXPECT_EQ(6, FindMapping({"dvi4", 16000, 1})); - EXPECT_EQ(7, FindMapping({"lpc", 8000, 1})); - EXPECT_EQ(8, FindMapping({"pcma", 8000, 1})); - EXPECT_EQ(9, FindMapping({"g722", 8000, 1})); - EXPECT_EQ(10, FindMapping({"l16", 44100, 2})); - EXPECT_EQ(11, FindMapping({"l16", 44100, 1})); - EXPECT_EQ(12, FindMapping({"qcelp", 8000, 1})); - EXPECT_EQ(13, FindMapping({"cn", 8000, 1})); - EXPECT_EQ(14, FindMapping({"mpa", 90000, 0})); - EXPECT_EQ(14, FindMapping({"mpa", 90000, 1})); - EXPECT_EQ(15, FindMapping({"g728", 8000, 1})); - EXPECT_EQ(16, FindMapping({"dvi4", 11025, 1})); - EXPECT_EQ(17, FindMapping({"dvi4", 22050, 1})); - EXPECT_EQ(18, FindMapping({"g729", 8000, 1})); + EXPECT_EQ(0, mapper_.FindMappingFor({"pcmu", 8000, 1})); + EXPECT_EQ(3, mapper_.FindMappingFor({"gsm", 8000, 1})); + EXPECT_EQ(4, mapper_.FindMappingFor({"g723", 8000, 1})); + EXPECT_EQ(5, mapper_.FindMappingFor({"dvi4", 8000, 1})); + EXPECT_EQ(6, mapper_.FindMappingFor({"dvi4", 16000, 1})); + EXPECT_EQ(7, mapper_.FindMappingFor({"lpc", 8000, 1})); + EXPECT_EQ(8, mapper_.FindMappingFor({"pcma", 8000, 1})); + EXPECT_EQ(9, mapper_.FindMappingFor({"g722", 8000, 1})); + EXPECT_EQ(10, mapper_.FindMappingFor({"l16", 44100, 2})); + EXPECT_EQ(11, mapper_.FindMappingFor({"l16", 44100, 1})); + EXPECT_EQ(12, mapper_.FindMappingFor({"qcelp", 8000, 1})); + EXPECT_EQ(13, mapper_.FindMappingFor({"cn", 8000, 1})); + EXPECT_EQ(14, mapper_.FindMappingFor({"mpa", 90000, 0})); + EXPECT_EQ(14, mapper_.FindMappingFor({"mpa", 90000, 1})); + EXPECT_EQ(15, mapper_.FindMappingFor({"g728", 8000, 1})); + EXPECT_EQ(16, mapper_.FindMappingFor({"dvi4", 11025, 1})); + EXPECT_EQ(17, mapper_.FindMappingFor({"dvi4", 22050, 1})); + EXPECT_EQ(18, mapper_.FindMappingFor({"g729", 8000, 1})); } TEST_F(PayloadTypeMapperTest, WebRTCPayloadTypes) { // Tests that the payload mapper knows about the audio and data formats we've // been using in WebRTC, with their hard coded values. auto data_mapping = [this] (const char *name) { - return FindMapping({name, 0, 0}); + return mapper_.FindMappingFor({name, 0, 0}); }; EXPECT_EQ(kGoogleRtpDataCodecPlType, data_mapping(kGoogleRtpDataCodecName)); EXPECT_EQ(kGoogleSctpDataCodecPlType, data_mapping(kGoogleSctpDataCodecName)); - EXPECT_EQ(102, FindMapping({kIlbcCodecName, 8000, 1})); - EXPECT_EQ(103, FindMapping({kIsacCodecName, 16000, 1})); - EXPECT_EQ(104, FindMapping({kIsacCodecName, 32000, 1})); - EXPECT_EQ(105, FindMapping({kCnCodecName, 16000, 1})); - EXPECT_EQ(106, FindMapping({kCnCodecName, 32000, 1})); - EXPECT_EQ(111, FindMapping({kOpusCodecName, 48000, 2, + EXPECT_EQ(102, mapper_.FindMappingFor({kIlbcCodecName, 8000, 1})); + EXPECT_EQ(103, mapper_.FindMappingFor({kIsacCodecName, 16000, 1})); + EXPECT_EQ(104, mapper_.FindMappingFor({kIsacCodecName, 32000, 1})); + EXPECT_EQ(105, mapper_.FindMappingFor({kCnCodecName, 16000, 1})); + EXPECT_EQ(106, mapper_.FindMappingFor({kCnCodecName, 32000, 1})); + EXPECT_EQ(111, mapper_.FindMappingFor({kOpusCodecName, 48000, 2, {{"minptime", "10"}, {"useinbandfec", "1"}}})); // TODO(solenberg): Remove 16k, 32k, 48k DTMF checks once these payload types // are dynamically assigned. - EXPECT_EQ(110, FindMapping({kDtmfCodecName, 48000, 1})); - EXPECT_EQ(112, FindMapping({kDtmfCodecName, 32000, 1})); - EXPECT_EQ(113, FindMapping({kDtmfCodecName, 16000, 1})); - EXPECT_EQ(126, FindMapping({kDtmfCodecName, 8000, 1})); + EXPECT_EQ(110, mapper_.FindMappingFor({kDtmfCodecName, 48000, 1})); + EXPECT_EQ(112, mapper_.FindMappingFor({kDtmfCodecName, 32000, 1})); + EXPECT_EQ(113, mapper_.FindMappingFor({kDtmfCodecName, 16000, 1})); + EXPECT_EQ(126, mapper_.FindMappingFor({kDtmfCodecName, 8000, 1})); } TEST_F(PayloadTypeMapperTest, ValidDynamicPayloadTypes) { @@ -118,10 +101,10 @@ TEST_F(PayloadTypeMapperTest, ValidDynamicPayloadTypes) { if (payload_type < 96) has_been_below_96 = true; - EXPECT_EQ(payload_type, FindMapping(format)) + EXPECT_EQ(payload_type, mapper_.FindMappingFor(format)) << "Mapping must be permanent after successful call to " "GetMappingFor"; - EXPECT_EQ(payload_type, GetMapping(format)) + EXPECT_EQ(payload_type, mapper_.GetMappingFor(format)) << "Subsequent calls to GetMappingFor must return the same value"; } else { mapper_is_full = true; diff --git a/media/engine/webrtcvideoengine.cc b/media/engine/webrtcvideoengine.cc index 24d60a6c9f..c4ad5a44a3 100644 --- a/media/engine/webrtcvideoengine.cc +++ b/media/engine/webrtcvideoengine.cc @@ -380,25 +380,25 @@ const char kForcedFallbackFieldTrial[] = rtc::Optional GetFallbackMinBpsFromFieldTrial() { if (!webrtc::field_trial::IsEnabled(kForcedFallbackFieldTrial)) - return rtc::Optional(); + return rtc::nullopt; std::string group = webrtc::field_trial::FindFullName(kForcedFallbackFieldTrial); if (group.empty()) - return rtc::Optional(); + return rtc::nullopt; int min_pixels; int max_pixels; int min_bps; if (sscanf(group.c_str(), "Enabled-%d,%d,%d", &min_pixels, &max_pixels, &min_bps) != 3) { - return rtc::Optional(); + return rtc::nullopt; } if (min_bps <= 0) - return rtc::Optional(); + return rtc::nullopt; - return rtc::Optional(min_bps); + return min_bps; } int GetMinVideoBitrateBps() { @@ -626,10 +626,10 @@ WebRtcVideoChannel::SelectSendVideoCodec( // since we should limit the encode level to the lower of local and remote // level when level asymmetry is not allowed. if (FindMatchingCodec(local_supported_codecs, remote_mapped_codec.codec)) - return rtc::Optional(remote_mapped_codec); + return remote_mapped_codec; } // No remote codec was supported. - return rtc::Optional(); + return rtc::nullopt; } bool WebRtcVideoChannel::NonFlexfecReceiveCodecsHaveChanged( @@ -705,21 +705,20 @@ bool WebRtcVideoChannel::GetChangedSendParameters( // 0 or -1 uncaps max bitrate. // TODO(pbos): Reconsider how 0 should be treated. It is not mentioned as a // special value and might very well be used for stopping sending. - changed_params->max_bandwidth_bps = rtc::Optional( - params.max_bandwidth_bps == 0 ? -1 : params.max_bandwidth_bps); + changed_params->max_bandwidth_bps = + params.max_bandwidth_bps == 0 ? -1 : params.max_bandwidth_bps; } // Handle conference mode. if (params.conference_mode != send_params_.conference_mode) { - changed_params->conference_mode = - rtc::Optional(params.conference_mode); + changed_params->conference_mode = params.conference_mode; } // Handle RTCP mode. if (params.rtcp.reduced_size != send_params_.rtcp.reduced_size) { - changed_params->rtcp_mode = rtc::Optional( - params.rtcp.reduced_size ? webrtc::RtcpMode::kReducedSize - : webrtc::RtcpMode::kCompound); + changed_params->rtcp_mode = params.rtcp.reduced_size + ? webrtc::RtcpMode::kReducedSize + : webrtc::RtcpMode::kCompound; } return true; @@ -739,7 +738,7 @@ bool WebRtcVideoChannel::SetSendParameters(const VideoSendParameters& params) { if (changed_params.codec) { const VideoCodecSettings& codec_settings = *changed_params.codec; - send_codec_ = rtc::Optional(codec_settings); + send_codec_ = codec_settings; RTC_LOG(LS_INFO) << "Using codec: " << codec_settings.codec.ToString(); } @@ -959,8 +958,7 @@ bool WebRtcVideoChannel::GetChangedRecvParameters( int flexfec_payload_type = mapped_codecs.front().flexfec_payload_type; if (flexfec_payload_type != recv_flexfec_payload_type_) { - changed_params->flexfec_payload_type = - rtc::Optional(flexfec_payload_type); + changed_params->flexfec_payload_type = flexfec_payload_type; } return true; @@ -1577,8 +1575,7 @@ WebRtcVideoChannel::WebRtcVideoSendStream::WebRtcVideoSendStream( // ValidateStreamParams should prevent this from happening. RTC_CHECK(!parameters_.config.rtp.ssrcs.empty()); - rtp_parameters_.encodings[0].ssrc = - rtc::Optional(parameters_.config.rtp.ssrcs[0]); + rtp_parameters_.encodings[0].ssrc = parameters_.config.rtp.ssrcs[0]; // RTX. sp.GetFidSsrcs(parameters_.config.rtp.ssrcs, @@ -1748,8 +1745,7 @@ void WebRtcVideoChannel::WebRtcVideoSendStream::SetCodec( parameters_.config.rtp.nack.rtp_history_ms = HasNack(codec_settings.codec) ? kNackHistoryMs : 0; - parameters_.codec_settings = - rtc::Optional(codec_settings); + parameters_.codec_settings = codec_settings; RTC_LOG(LS_INFO) << "RecreateWebRtcStream (send) because of SetCodec."; RecreateWebRtcStream(); @@ -1975,8 +1971,7 @@ VideoSenderInfo WebRtcVideoChannel::WebRtcVideoSendStream::GetVideoSenderInfo( if (parameters_.codec_settings) { info.codec_name = parameters_.codec_settings->codec.name; - info.codec_payload_type = rtc::Optional( - parameters_.codec_settings->codec.id); + info.codec_payload_type = parameters_.codec_settings->codec.id; } if (stream_ == NULL) @@ -2146,9 +2141,9 @@ WebRtcVideoChannel::WebRtcVideoReceiveStream::GetFirstPrimarySsrc() const { if (primary_ssrcs.empty()) { RTC_LOG(LS_WARNING) << "Empty primary ssrcs vector, returning empty optional"; - return rtc::Optional(); + return rtc::nullopt; } else { - return rtc::Optional(primary_ssrcs[0]); + return primary_ssrcs[0]; } } @@ -2395,8 +2390,7 @@ WebRtcVideoChannel::WebRtcVideoReceiveStream::GetVideoReceiverInfo( webrtc::VideoReceiveStream::Stats stats = stream_->GetStats(); info.decoder_implementation_name = stats.decoder_implementation_name; if (stats.current_payload_type != -1) { - info.codec_payload_type = rtc::Optional( - stats.current_payload_type); + info.codec_payload_type = stats.current_payload_type; } info.bytes_rcvd = stats.rtp_stats.transmitted.payload_bytes + stats.rtp_stats.transmitted.header_bytes + diff --git a/media/engine/webrtcvideoengine_unittest.cc b/media/engine/webrtcvideoengine_unittest.cc index d3a9b9b2e3..7b1eb4a583 100644 --- a/media/engine/webrtcvideoengine_unittest.cc +++ b/media/engine/webrtcvideoengine_unittest.cc @@ -1374,7 +1374,7 @@ class WebRtcVideoChannelTest : public WebRtcVideoEngineTest { cricket::FakeVideoCapturer* capturer, bool enabled) { cricket::VideoOptions options; - options.video_noise_reduction = rtc::Optional(enabled); + options.video_noise_reduction = enabled; EXPECT_TRUE(channel_->SetVideoSend(ssrc, true, &options, capturer)); // Options only take effect on the next frame. EXPECT_TRUE(capturer->CaptureFrame()); @@ -1420,13 +1420,12 @@ class WebRtcVideoChannelTest : public WebRtcVideoEngineTest { webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(last_ssrc_); EXPECT_EQ(1UL, parameters.encodings.size()); - parameters.encodings[0].max_bitrate_bps = rtc::Optional(stream_max); + parameters.encodings[0].max_bitrate_bps = stream_max; EXPECT_TRUE(channel_->SetRtpSendParameters(last_ssrc_, parameters)); // Read back the parameteres and verify they have the correct value parameters = channel_->GetRtpSendParameters(last_ssrc_); EXPECT_EQ(1UL, parameters.encodings.size()); - EXPECT_EQ(rtc::Optional(stream_max), - parameters.encodings[0].max_bitrate_bps); + EXPECT_EQ(stream_max, parameters.encodings[0].max_bitrate_bps); // Verify that the new value propagated down to the encoder EXPECT_EQ(expected_encoder_bitrate, GetMaxEncoderBitrate()); } @@ -1876,8 +1875,7 @@ TEST_F(WebRtcVideoChannelTest, UsesCorrectSettingsForScreencast) { cricket::FakeVideoCapturer capturer; VideoOptions min_bitrate_options; - min_bitrate_options.screencast_min_bitrate_kbps = - rtc::Optional(kScreenshareMinBitrateKbps); + min_bitrate_options.screencast_min_bitrate_kbps = kScreenshareMinBitrateKbps; EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, &min_bitrate_options, &capturer)); cricket::VideoFormat capture_format_hd = @@ -1908,7 +1906,7 @@ TEST_F(WebRtcVideoChannelTest, UsesCorrectSettingsForScreencast) { EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); VideoOptions screencast_options; - screencast_options.is_screencast = rtc::Optional(true); + screencast_options.is_screencast = true; EXPECT_TRUE( channel_->SetVideoSend(last_ssrc_, true, &screencast_options, &capturer)); EXPECT_TRUE(capturer.CaptureFrame()); @@ -1940,7 +1938,7 @@ TEST_F(WebRtcVideoChannelTest, AddSendStream(); VideoOptions options; - options.is_screencast = rtc::Optional(true); + options.is_screencast = true; cricket::FakeVideoCapturer capturer; EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, &options, &capturer)); cricket::VideoFormat capture_format_hd = @@ -2057,7 +2055,7 @@ TEST_F(WebRtcVideoChannelTest, VerifyVp8SpecificSettings) { // In screen-share mode, denoising is forced off and simulcast disabled. VideoOptions options; - options.is_screencast = rtc::Optional(true); + options.is_screencast = true; EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, &options, &capturer)); stream = SetDenoisingOption(last_ssrc_, &capturer, false); @@ -2104,7 +2102,7 @@ TEST_F(WebRtcVideoChannelTest, SetIdenticalOptionsDoesntReconfigureEncoder) { EXPECT_EQ(1, send_stream->num_encoder_reconfigurations()); // Change |options| and expect 2 reconfigurations. - options.video_noise_reduction = rtc::Optional(true); + options.video_noise_reduction = true; EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, &options, &capturer)); EXPECT_EQ(2, send_stream->num_encoder_reconfigurations()); @@ -2163,7 +2161,7 @@ TEST_F(Vp9SettingsTest, VerifyVp9SpecificSettings) { // In screen-share mode, denoising is forced off. VideoOptions options; - options.is_screencast = rtc::Optional(true); + options.is_screencast = true; EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, &options, &capturer)); stream = SetDenoisingOption(last_ssrc_, &capturer, false); @@ -2351,7 +2349,7 @@ TEST_F(WebRtcVideoChannelTest, AdaptsOnOveruseAndChangeResolution) { // of the current stream, so we don't take too large steps. wants.max_pixel_count = current_pixel_count * 4; // Default step down is 3/5 pixel count, so go up by 5/3. - wants.target_pixel_count = rtc::Optional((current_pixel_count * 5) / 3); + wants.target_pixel_count = (current_pixel_count * 5 / 3); send_stream->InjectVideoSinkWants(wants); EXPECT_TRUE(capturer.CaptureCustomFrame(1284, 724, cricket::FOURCC_I420)); EXPECT_EQ(5, send_stream->GetNumberOfSwappedFrames()); @@ -2362,7 +2360,7 @@ TEST_F(WebRtcVideoChannelTest, AdaptsOnOveruseAndChangeResolution) { current_pixel_count = send_stream->GetLastWidth() * send_stream->GetLastHeight(); wants.max_pixel_count = current_pixel_count * 4; - wants.target_pixel_count = rtc::Optional((current_pixel_count * 5) / 3); + wants.target_pixel_count = (current_pixel_count * 5 / 3); send_stream->InjectVideoSinkWants(wants); EXPECT_TRUE(capturer.CaptureCustomFrame(1284, 724, cricket::FOURCC_I420)); EXPECT_EQ(6, send_stream->GetNumberOfSwappedFrames()); @@ -2391,7 +2389,7 @@ TEST_F(WebRtcVideoChannelTest, PreviousAdaptationDoesNotApplyToScreenshare) { capturer.Start(capturer.GetSupportedFormats()->front())); ASSERT_TRUE(channel_->SetSend(true)); cricket::VideoOptions camera_options; - camera_options.is_screencast = rtc::Optional(false); + camera_options.is_screencast = false; channel_->SetVideoSend(last_ssrc_, true /* enable */, &camera_options, &capturer); @@ -2418,7 +2416,7 @@ TEST_F(WebRtcVideoChannelTest, PreviousAdaptationDoesNotApplyToScreenshare) { ASSERT_EQ(cricket::CS_RUNNING, screen_share.Start(screen_share.GetSupportedFormats()->front())); cricket::VideoOptions screenshare_options; - screenshare_options.is_screencast = rtc::Optional(true); + screenshare_options.is_screencast = true; channel_->SetVideoSend(last_ssrc_, true /* enable */, &screenshare_options, &screen_share); EXPECT_TRUE(screen_share.CaptureCustomFrame(1284, 724, cricket::FOURCC_I420)); @@ -2501,7 +2499,7 @@ void WebRtcVideoChannelTest::TestCpuAdaptation(bool enable_overuse, cricket::FakeVideoCapturer capturer; VideoOptions options; - options.is_screencast = rtc::Optional(is_screenshare); + options.is_screencast = is_screenshare; EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, &options, &capturer)); cricket::VideoFormat capture_format = capturer.GetSupportedFormats()->front(); capture_format.interval = rtc::kNumNanosecsPerSec / kDefaultFps; @@ -3708,7 +3706,7 @@ TEST_F(WebRtcVideoChannelTest, GetStatsReportsFramesEncoded) { TEST_F(WebRtcVideoChannelTest, GetStatsReportsQpSum) { FakeVideoSendStream* stream = AddSendStream(); webrtc::VideoSendStream::Stats stats; - stats.qp_sum = rtc::Optional(13); + stats.qp_sum = 13; stream->SetStats(stats); cricket::VideoMediaInfo info; @@ -3848,7 +3846,7 @@ TEST_F(WebRtcVideoChannelTest, GetStatsTranslatesDecodeStatsCorrectly) { stats.frame_counts.delta_frames = 12; stats.frames_rendered = 13; stats.frames_decoded = 14; - stats.qp_sum = rtc::Optional(15); + stats.qp_sum = 15; stream->SetStats(stats); cricket::VideoMediaInfo info; @@ -4357,7 +4355,7 @@ TEST_F(WebRtcVideoChannelTest, TEST_F(WebRtcVideoChannelTest, CannotSetSsrcInRtpSendParameters) { AddSendStream(); webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(last_ssrc_); - parameters.encodings[0].ssrc = rtc::Optional(0xdeadbeef); + parameters.encodings[0].ssrc = 0xdeadbeef; EXPECT_FALSE(channel_->SetRtpSendParameters(last_ssrc_, parameters)); } @@ -4449,8 +4447,7 @@ TEST_F(WebRtcVideoChannelTest, GetRtpSendParametersSsrc) { webrtc::RtpParameters rtp_parameters = channel_->GetRtpSendParameters(last_ssrc_); ASSERT_EQ(1u, rtp_parameters.encodings.size()); - EXPECT_EQ(rtc::Optional(last_ssrc_), - rtp_parameters.encodings[0].ssrc); + EXPECT_EQ(last_ssrc_, rtp_parameters.encodings[0].ssrc); } // Test that if we set/get parameters multiple times, we get the same results. @@ -4532,8 +4529,7 @@ TEST_F(WebRtcVideoChannelTest, GetRtpReceiveParametersSsrc) { webrtc::RtpParameters rtp_parameters = channel_->GetRtpReceiveParameters(last_ssrc_); ASSERT_EQ(1u, rtp_parameters.encodings.size()); - EXPECT_EQ(rtc::Optional(last_ssrc_), - rtp_parameters.encodings[0].ssrc); + EXPECT_EQ(last_ssrc_, rtp_parameters.encodings[0].ssrc); } // Test that if we set/get parameters multiple times, we get the same results. @@ -4692,7 +4688,7 @@ class WebRtcVideoChannelSimulcastTest : public testing::Test { cricket::FakeVideoCapturer capturer; VideoOptions options; if (screenshare) - options.is_screencast = rtc::Optional(screenshare); + options.is_screencast = screenshare; EXPECT_TRUE( channel_->SetVideoSend(ssrcs.front(), true, &options, &capturer)); // Fetch the latest stream since SetVideoSend() may recreate it if the diff --git a/media/engine/webrtcvoiceengine.cc b/media/engine/webrtcvoiceengine.cc index cab9f82f00..19619a3a0f 100644 --- a/media/engine/webrtcvoiceengine.cc +++ b/media/engine/webrtcvoiceengine.cc @@ -155,7 +155,7 @@ rtc::Optional GetAudioNetworkAdaptorConfig( // equals true and |options_.audio_network_adaptor_config| has a value. return options.audio_network_adaptor_config; } - return rtc::Optional(); + return rtc::nullopt; } webrtc::AudioState::Config MakeAudioStateConfig( @@ -185,7 +185,7 @@ rtc::Optional ComputeSendBitrate(int max_send_bitrate_bps, ? webrtc::MinPositive(max_send_bitrate_bps, *rtp_max_bitrate_bps) : max_send_bitrate_bps; if (bps <= 0) { - return rtc::Optional(spec.info.default_bitrate_bps); + return spec.info.default_bitrate_bps; } if (bps < spec.info.min_bitrate_bps) { @@ -196,14 +196,14 @@ rtc::Optional ComputeSendBitrate(int max_send_bitrate_bps, << " to bitrate " << bps << " bps" << ", requires at least " << spec.info.min_bitrate_bps << " bps."; - return rtc::Optional(); + return rtc::nullopt; } if (spec.info.HasFixedBitrate()) { - return rtc::Optional(spec.info.default_bitrate_bps); + return spec.info.default_bitrate_bps; } else { // If codec is multi-rate then just set the bitrate. - return rtc::Optional(std::min(bps, spec.info.max_bitrate_bps)); + return std::min(bps, spec.info.max_bitrate_bps); } } @@ -302,22 +302,22 @@ void WebRtcVoiceEngine::Init() { // Set default engine options. { AudioOptions options; - options.echo_cancellation = rtc::Optional(true); - options.auto_gain_control = rtc::Optional(true); - options.noise_suppression = rtc::Optional(true); - options.highpass_filter = rtc::Optional(true); - options.stereo_swapping = rtc::Optional(false); - options.audio_jitter_buffer_max_packets = rtc::Optional(50); - options.audio_jitter_buffer_fast_accelerate = rtc::Optional(false); - options.typing_detection = rtc::Optional(true); - options.adjust_agc_delta = rtc::Optional(0); - options.experimental_agc = rtc::Optional(false); - options.extended_filter_aec = rtc::Optional(false); - options.delay_agnostic_aec = rtc::Optional(false); - options.experimental_ns = rtc::Optional(false); - options.intelligibility_enhancer = rtc::Optional(false); - options.level_control = rtc::Optional(false); - options.residual_echo_detector = rtc::Optional(true); + options.echo_cancellation = true; + options.auto_gain_control = true; + options.noise_suppression = true; + options.highpass_filter = true; + options.stereo_swapping = false; + options.audio_jitter_buffer_max_packets = 50; + options.audio_jitter_buffer_fast_accelerate = false; + options.typing_detection = true; + options.adjust_agc_delta = 0; + options.experimental_agc = false; + options.extended_filter_aec = false; + options.delay_agnostic_aec = false; + options.experimental_ns = false; + options.intelligibility_enhancer = false; + options.level_control = false; + options.residual_echo_detector = true; bool error = ApplyOptions(options); RTC_DCHECK(error); } @@ -369,12 +369,12 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) { #if defined(WEBRTC_IOS) // On iOS, VPIO provides built-in EC. - options.echo_cancellation = rtc::Optional(false); - options.extended_filter_aec = rtc::Optional(false); + options.echo_cancellation = false; + options.extended_filter_aec = false; RTC_LOG(LS_INFO) << "Always disable AEC on iOS. Use built-in instead."; #elif defined(WEBRTC_ANDROID) ec_mode = webrtc::kEcAecm; - options.extended_filter_aec = rtc::Optional(false); + options.extended_filter_aec = false; #endif // Delay Agnostic AEC automatically turns on EC if not set except on iOS @@ -384,8 +384,8 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) { if (options.delay_agnostic_aec) { use_delay_agnostic_aec = *options.delay_agnostic_aec; if (use_delay_agnostic_aec) { - options.echo_cancellation = rtc::Optional(true); - options.extended_filter_aec = rtc::Optional(true); + options.echo_cancellation = true; + options.extended_filter_aec = true; ec_mode = webrtc::kEcConference; } } @@ -394,23 +394,23 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) { // Set and adjust noise suppressor options. #if defined(WEBRTC_IOS) // On iOS, VPIO provides built-in NS. - options.noise_suppression = rtc::Optional(false); - options.typing_detection = rtc::Optional(false); - options.experimental_ns = rtc::Optional(false); + options.noise_suppression = false; + options.typing_detection = false; + options.experimental_ns = false; RTC_LOG(LS_INFO) << "Always disable NS on iOS. Use built-in instead."; #elif defined(WEBRTC_ANDROID) - options.typing_detection = rtc::Optional(false); - options.experimental_ns = rtc::Optional(false); + options.typing_detection = false; + options.experimental_ns = false; #endif // Set and adjust gain control options. #if defined(WEBRTC_IOS) // On iOS, VPIO provides built-in AGC. - options.auto_gain_control = rtc::Optional(false); - options.experimental_agc = rtc::Optional(false); + options.auto_gain_control = false; + options.experimental_agc = false; RTC_LOG(LS_INFO) << "Always disable AGC on iOS. Use built-in instead."; #elif defined(WEBRTC_ANDROID) - options.experimental_agc = rtc::Optional(false); + options.experimental_agc = false; #endif #if defined(WEBRTC_IOS) || defined(WEBRTC_ANDROID) @@ -421,21 +421,21 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) { // (https://bugs.chromium.org/p/webrtc/issues/detail?id=6181). if (webrtc::field_trial::IsEnabled( "WebRTC-Audio-MinimizeResamplingOnMobile")) { - options.auto_gain_control = rtc::Optional(false); + options.auto_gain_control = false; RTC_LOG(LS_INFO) << "Disable AGC according to field trial."; if (!(options.noise_suppression.value_or(false) || options.echo_cancellation.value_or(false))) { // If possible, turn off the high-pass filter. RTC_LOG(LS_INFO) << "Disable high-pass filter in response to field trial."; - options.highpass_filter = rtc::Optional(false); + options.highpass_filter = false; } } #endif #if (WEBRTC_INTELLIGIBILITY_ENHANCER == 0) // Hardcode the intelligibility enhancer to be off. - options.intelligibility_enhancer = rtc::Optional(false); + options.intelligibility_enhancer = false; #endif if (options.echo_cancellation) { @@ -454,7 +454,7 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) { enable_built_in_aec) { // Disable internal software EC if built-in EC is enabled, // i.e., replace the software EC with the built-in EC. - options.echo_cancellation = rtc::Optional(false); + options.echo_cancellation = false; RTC_LOG(LS_INFO) << "Disabling EC since built-in EC will be used instead"; } @@ -477,7 +477,7 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) { *options.auto_gain_control) { // Disable internal software AGC if built-in AGC is enabled, // i.e., replace the software AGC with the built-in AGC. - options.auto_gain_control = rtc::Optional(false); + options.auto_gain_control = false; RTC_LOG(LS_INFO) << "Disabling AGC since built-in AGC will be used instead"; } @@ -529,7 +529,7 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) { if (adm()->EnableBuiltInNS(builtin_ns) == 0 && builtin_ns) { // Disable internal software NS if built-in NS is enabled, // i.e., replace the software NS with the built-in NS. - options.noise_suppression = rtc::Optional(false); + options.noise_suppression = false; RTC_LOG(LS_INFO) << "Disabling NS since built-in NS will be used instead"; } @@ -834,7 +834,7 @@ class WebRtcVoiceMediaChannel::WebRtcAudioSendStream config_.audio_network_adaptor_config = audio_network_adaptor_config; config_.encoder_factory = encoder_factory; config_.track_id = track_id; - rtp_parameters_.encodings[0].ssrc = rtc::Optional(ssrc); + rtp_parameters_.encodings[0].ssrc = ssrc; if (send_codec_spec) { UpdateSendCodecSpec(*send_codec_spec); @@ -1096,9 +1096,7 @@ class WebRtcVoiceMediaChannel::WebRtcAudioSendStream RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); config_.rtp.nack.rtp_history_ms = send_codec_spec.nack_enabled ? kNackRtpHistoryMs : 0; - config_.send_codec_spec = - rtc::Optional( - send_codec_spec); + config_.send_codec_spec = send_codec_spec; auto info = config_.encoder_factory->QueryAudioEncoder(send_codec_spec.format); RTC_DCHECK(info); @@ -1455,7 +1453,7 @@ webrtc::RtpParameters WebRtcVoiceMediaChannel::GetRtpReceiveParameters( } rtp_params.encodings.emplace_back(); // TODO(deadbeef): Return stream-specific parameters. - rtp_params.encodings[0].ssrc = rtc::Optional(ssrc); + rtp_params.encodings[0].ssrc = ssrc; } for (const AudioCodec& codec : recv_codecs_) { @@ -1603,7 +1601,7 @@ bool WebRtcVoiceMediaChannel::SetRecvCodecs( bool WebRtcVoiceMediaChannel::SetSendCodecs( const std::vector& codecs) { RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); - dtmf_payload_type_ = rtc::Optional(); + dtmf_payload_type_ = rtc::nullopt; dtmf_payload_freq_ = -1; // Validate supplied codecs list. @@ -1626,7 +1624,7 @@ bool WebRtcVoiceMediaChannel::SetSendCodecs( if (IsCodec(codec, kDtmfCodecName)) { dtmf_codecs.push_back(codec); if (!dtmf_payload_type_ || codec.clockrate < dtmf_payload_freq_) { - dtmf_payload_type_ = rtc::Optional(codec.id); + dtmf_payload_type_ = codec.id; dtmf_payload_freq_ = codec.clockrate; } } @@ -1649,12 +1647,10 @@ bool WebRtcVoiceMediaChannel::SetSendCodecs( continue; } - send_codec_spec = - rtc::Optional( - {voice_codec.id, format}); + send_codec_spec = webrtc::AudioSendStream::Config::SendCodecSpec( + voice_codec.id, format); if (voice_codec.bitrate > 0) { - send_codec_spec->target_bitrate_bps = - rtc::Optional(voice_codec.bitrate); + send_codec_spec->target_bitrate_bps = voice_codec.bitrate; } send_codec_spec->transport_cc_enabled = HasTransportCc(voice_codec); send_codec_spec->nack_enabled = HasNack(voice_codec); @@ -1678,7 +1674,7 @@ bool WebRtcVoiceMediaChannel::SetSendCodecs( case 8000: case 16000: case 32000: - send_codec_spec->cng_payload_type = rtc::Optional(cn_codec.id); + send_codec_spec->cng_payload_type = cn_codec.id; break; default: RTC_LOG(LS_WARNING) @@ -1692,7 +1688,7 @@ bool WebRtcVoiceMediaChannel::SetSendCodecs( // Find the telephone-event PT exactly matching the preferred send codec. for (const AudioCodec& dtmf_codec : dtmf_codecs) { if (dtmf_codec.clockrate == send_codec_spec->format.clockrate_hz) { - dtmf_payload_type_ = rtc::Optional(dtmf_codec.id); + dtmf_payload_type_ = dtmf_codec.id; dtmf_payload_freq_ = dtmf_codec.clockrate; break; } diff --git a/media/engine/webrtcvoiceengine_unittest.cc b/media/engine/webrtcvoiceengine_unittest.cc index e370612cb3..ef56473376 100644 --- a/media/engine/webrtcvoiceengine_unittest.cc +++ b/media/engine/webrtcvoiceengine_unittest.cc @@ -370,7 +370,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(ssrc); EXPECT_EQ(1UL, parameters.encodings.size()); - parameters.encodings[0].max_bitrate_bps = rtc::Optional(bitrate); + parameters.encodings[0].max_bitrate_bps = bitrate; return channel_->SetRtpSendParameters(ssrc, parameters); } @@ -534,7 +534,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { stats.packets_lost = 9012; stats.fraction_lost = 34.56f; stats.codec_name = "codec_name_send"; - stats.codec_payload_type = rtc::Optional(42); + stats.codec_payload_type = 42; stats.ext_seqnum = 789; stats.jitter_ms = 12; stats.rtt_ms = 345; @@ -546,16 +546,13 @@ class WebRtcVoiceEngineTestFake : public testing::Test { stats.echo_return_loss_enhancement = 1234; stats.residual_echo_likelihood = 0.432f; stats.residual_echo_likelihood_recent_max = 0.6f; - stats.ana_statistics.bitrate_action_counter = rtc::Optional(321); - stats.ana_statistics.channel_action_counter = rtc::Optional(432); - stats.ana_statistics.dtx_action_counter = rtc::Optional(543); - stats.ana_statistics.fec_action_counter = rtc::Optional(654); - stats.ana_statistics.frame_length_increase_counter = - rtc::Optional(765); - stats.ana_statistics.frame_length_decrease_counter = - rtc::Optional(876); - stats.ana_statistics.uplink_packet_loss_fraction = - rtc::Optional(987.0); + stats.ana_statistics.bitrate_action_counter = 321; + stats.ana_statistics.channel_action_counter = 432; + stats.ana_statistics.dtx_action_counter = 543; + stats.ana_statistics.fec_action_counter = 654; + stats.ana_statistics.frame_length_increase_counter = 765; + stats.ana_statistics.frame_length_decrease_counter = 876; + stats.ana_statistics.uplink_packet_loss_fraction = 987.0; stats.typing_noise_detected = true; return stats; } @@ -613,7 +610,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { stats.packets_lost = 101; stats.fraction_lost = 23.45f; stats.codec_name = "codec_name_recv"; - stats.codec_payload_type = rtc::Optional(42); + stats.codec_payload_type = 42; stats.ext_seqnum = 678; stats.jitter_ms = 901; stats.jitter_buffer_ms = 234; @@ -1070,7 +1067,7 @@ TEST_F(WebRtcVoiceEngineTestFake, TEST_F(WebRtcVoiceEngineTestFake, CannotSetSsrcInRtpSendParameters) { EXPECT_TRUE(SetupSendStream()); webrtc::RtpParameters parameters = channel_->GetRtpSendParameters(kSsrcX); - parameters.encodings[0].ssrc = rtc::Optional(0xdeadbeef); + parameters.encodings[0].ssrc = 0xdeadbeef; EXPECT_FALSE(channel_->SetRtpSendParameters(kSsrcX, parameters)); } @@ -1178,8 +1175,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRtpSendParameterUpdatesMaxBitrate) { EXPECT_FALSE(rtp_parameters.encodings[0].max_bitrate_bps); constexpr int kMaxBitrateBps = 6000; - rtp_parameters.encodings[0].max_bitrate_bps = - rtc::Optional(kMaxBitrateBps); + rtp_parameters.encodings[0].max_bitrate_bps = kMaxBitrateBps; EXPECT_TRUE(channel_->SetRtpSendParameters(kSsrcX, rtp_parameters)); const int max_bitrate = GetSendStreamConfig(kSsrcX).max_bitrate_bps; @@ -1282,7 +1278,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecs) { EXPECT_EQ(22000, send_codec_spec.target_bitrate_bps); EXPECT_STRCASEEQ("ISAC", send_codec_spec.format.name.c_str()); EXPECT_NE(send_codec_spec.format.clockrate_hz, 8000); - EXPECT_EQ(rtc::Optional(), send_codec_spec.cng_payload_type); + EXPECT_EQ(rtc::nullopt, send_codec_spec.cng_payload_type); EXPECT_FALSE(channel_->CanInsertDtmf()); } @@ -1859,7 +1855,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNNoMatch) { { const auto& send_codec_spec = *GetSendStreamConfig(kSsrcX).send_codec_spec; EXPECT_STRCASEEQ("PCMU", send_codec_spec.format.name.c_str()); - EXPECT_EQ(rtc::Optional(), send_codec_spec.cng_payload_type); + EXPECT_EQ(rtc::nullopt, send_codec_spec.cng_payload_type); } // Set PCMU(8K) and CN(8K). VAD should be activated. parameters.codecs[1] = kCn8000Codec; @@ -1876,7 +1872,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNNoMatch) { { const auto& send_codec_spec = *GetSendStreamConfig(kSsrcX).send_codec_spec; EXPECT_STRCASEEQ("ISAC", send_codec_spec.format.name.c_str()); - EXPECT_EQ(rtc::Optional(), send_codec_spec.cng_payload_type); + EXPECT_EQ(rtc::nullopt, send_codec_spec.cng_payload_type); } } @@ -2070,7 +2066,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsWithMultipleSendStreams) { const auto& send_codec_spec = *call_.GetAudioSendStream(ssrc)->GetConfig().send_codec_spec; EXPECT_STRCASEEQ("PCMU", send_codec_spec.format.name.c_str()); - EXPECT_EQ(rtc::Optional(), send_codec_spec.cng_payload_type); + EXPECT_EQ(rtc::nullopt, send_codec_spec.cng_payload_type); } } @@ -2205,7 +2201,7 @@ TEST_F(WebRtcVoiceEngineTestFake, PlayoutWithMultipleStreams) { // and start sending on it. TEST_F(WebRtcVoiceEngineTestFake, CodianSend) { EXPECT_TRUE(SetupSendStream()); - send_parameters_.options.adjust_agc_delta = rtc::Optional(-10); + send_parameters_.options.adjust_agc_delta = -10; EXPECT_CALL(apm_gc_, set_target_level_dbfs(11)).Times(2).WillRepeatedly(Return(0)); SetSendParameters(send_parameters_); @@ -2221,11 +2217,10 @@ TEST_F(WebRtcVoiceEngineTestFake, TxAgcConfigViaOptions) { BuiltInAGCIsAvailable()).Times(2).WillRepeatedly(Return(false)); EXPECT_CALL(adm_, SetAGC(true)).Times(2).WillRepeatedly(Return(0)); EXPECT_CALL(apm_gc_, Enable(true)).Times(2).WillOnce(Return(0)); - send_parameters_.options.tx_agc_target_dbov = rtc::Optional(3); - send_parameters_.options.tx_agc_digital_compression_gain = - rtc::Optional(9); - send_parameters_.options.tx_agc_limiter = rtc::Optional(true); - send_parameters_.options.auto_gain_control = rtc::Optional(true); + send_parameters_.options.tx_agc_target_dbov = 3; + send_parameters_.options.tx_agc_digital_compression_gain = 9; + send_parameters_.options.tx_agc_limiter = true; + send_parameters_.options.auto_gain_control = true; EXPECT_CALL(apm_gc_, set_target_level_dbfs(3)).WillOnce(Return(0)); EXPECT_CALL(apm_gc_, set_compression_gain_db(9)).WillRepeatedly(Return(0)); EXPECT_CALL(apm_gc_, enable_limiter(true)).WillRepeatedly(Return(0)); @@ -2233,16 +2228,15 @@ TEST_F(WebRtcVoiceEngineTestFake, TxAgcConfigViaOptions) { // Check interaction with adjust_agc_delta. Both should be respected, for // backwards compatibility. - send_parameters_.options.adjust_agc_delta = rtc::Optional(-10); + send_parameters_.options.adjust_agc_delta = -10; EXPECT_CALL(apm_gc_, set_target_level_dbfs(13)).WillOnce(Return(0)); SetSendParameters(send_parameters_); } TEST_F(WebRtcVoiceEngineTestFake, SetAudioNetworkAdaptorViaOptions) { EXPECT_TRUE(SetupSendStream()); - send_parameters_.options.audio_network_adaptor = rtc::Optional(true); - send_parameters_.options.audio_network_adaptor_config = - rtc::Optional("1234"); + send_parameters_.options.audio_network_adaptor = true; + send_parameters_.options.audio_network_adaptor_config = {"1234"}; SetSendParameters(send_parameters_); EXPECT_EQ(send_parameters_.options.audio_network_adaptor_config, GetAudioNetworkAdaptorConfig(kSsrcX)); @@ -2250,29 +2244,27 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioNetworkAdaptorViaOptions) { TEST_F(WebRtcVoiceEngineTestFake, AudioSendResetAudioNetworkAdaptor) { EXPECT_TRUE(SetupSendStream()); - send_parameters_.options.audio_network_adaptor = rtc::Optional(true); - send_parameters_.options.audio_network_adaptor_config = - rtc::Optional("1234"); + send_parameters_.options.audio_network_adaptor = true; + send_parameters_.options.audio_network_adaptor_config = {"1234"}; SetSendParameters(send_parameters_); EXPECT_EQ(send_parameters_.options.audio_network_adaptor_config, GetAudioNetworkAdaptorConfig(kSsrcX)); cricket::AudioOptions options; - options.audio_network_adaptor = rtc::Optional(false); + options.audio_network_adaptor = false; SetAudioSend(kSsrcX, true, nullptr, &options); - EXPECT_EQ(rtc::Optional(), GetAudioNetworkAdaptorConfig(kSsrcX)); + EXPECT_EQ(rtc::nullopt, GetAudioNetworkAdaptorConfig(kSsrcX)); } TEST_F(WebRtcVoiceEngineTestFake, AudioNetworkAdaptorNotGetOverridden) { EXPECT_TRUE(SetupSendStream()); - send_parameters_.options.audio_network_adaptor = rtc::Optional(true); - send_parameters_.options.audio_network_adaptor_config = - rtc::Optional("1234"); + send_parameters_.options.audio_network_adaptor = true; + send_parameters_.options.audio_network_adaptor_config = {"1234"}; SetSendParameters(send_parameters_); EXPECT_EQ(send_parameters_.options.audio_network_adaptor_config, GetAudioNetworkAdaptorConfig(kSsrcX)); const int initial_num = call_.GetNumCreatedSendStreams(); cricket::AudioOptions options; - options.audio_network_adaptor = rtc::Optional(); + options.audio_network_adaptor = rtc::nullopt; // Unvalued |options.audio_network_adaptor|.should not reset audio network // adaptor. SetAudioSend(kSsrcX, true, nullptr, &options); @@ -2312,9 +2304,8 @@ TEST_F(WebRtcVoiceEngineWithSendSideBweWithOverheadTest, MinAndMaxBitrate) { EXPECT_EQ(kOpusBitrateFbBps + kMinOverheadBps, GetSendStreamConfig(kSsrcX).max_bitrate_bps); - parameters.options.audio_network_adaptor = rtc::Optional(true); - parameters.options.audio_network_adaptor_config = - rtc::Optional("1234"); + parameters.options.audio_network_adaptor = true; + parameters.options.audio_network_adaptor_config = {"1234"}; SetSendParameters(parameters); constexpr int kMinOverheadWithAnaBps = @@ -2342,8 +2333,7 @@ TEST_F(WebRtcVoiceEngineWithSendSideBweWithOverheadTest, EXPECT_FALSE(rtp_parameters.encodings[0].max_bitrate_bps); constexpr int kMaxBitrateBps = 6000; - rtp_parameters.encodings[0].max_bitrate_bps = - rtc::Optional(kMaxBitrateBps); + rtp_parameters.encodings[0].max_bitrate_bps = kMaxBitrateBps; EXPECT_TRUE(channel_->SetRtpSendParameters(kSsrcX, rtp_parameters)); const int max_bitrate = GetSendStreamConfig(kSsrcX).max_bitrate_bps; @@ -2745,35 +2735,35 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { // Turn echo cancellation off EXPECT_CALL(apm_ec_, Enable(false)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(false)).WillOnce(Return(0)); - send_parameters_.options.echo_cancellation = rtc::Optional(false); + send_parameters_.options.echo_cancellation = false; SetSendParameters(send_parameters_); // Turn echo cancellation back on, with settings, and make sure // nothing else changed. EXPECT_CALL(apm_ec_, Enable(true)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(true)).WillOnce(Return(0)); - send_parameters_.options.echo_cancellation = rtc::Optional(true); + send_parameters_.options.echo_cancellation = true; SetSendParameters(send_parameters_); // Turn on delay agnostic aec and make sure nothing change w.r.t. echo // control. EXPECT_CALL(apm_ec_, Enable(true)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(true)).WillOnce(Return(0)); - send_parameters_.options.delay_agnostic_aec = rtc::Optional(true); + send_parameters_.options.delay_agnostic_aec = true; SetSendParameters(send_parameters_); // Turn off echo cancellation and delay agnostic aec. EXPECT_CALL(apm_ec_, Enable(false)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(false)).WillOnce(Return(0)); - send_parameters_.options.delay_agnostic_aec = rtc::Optional(false); - send_parameters_.options.extended_filter_aec = rtc::Optional(false); - send_parameters_.options.echo_cancellation = rtc::Optional(false); + send_parameters_.options.delay_agnostic_aec = false; + send_parameters_.options.extended_filter_aec = false; + send_parameters_.options.echo_cancellation = false; SetSendParameters(send_parameters_); // Turning delay agnostic aec back on should also turn on echo cancellation. EXPECT_CALL(apm_ec_, Enable(true)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(true)).WillOnce(Return(0)); - send_parameters_.options.delay_agnostic_aec = rtc::Optional(true); + send_parameters_.options.delay_agnostic_aec = true; SetSendParameters(send_parameters_); // Turn off AGC @@ -2781,7 +2771,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { EXPECT_CALL(apm_ec_, Enable(true)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(true)).WillOnce(Return(0)); EXPECT_CALL(apm_gc_, Enable(false)).WillOnce(Return(0)); - send_parameters_.options.auto_gain_control = rtc::Optional(false); + send_parameters_.options.auto_gain_control = false; SetSendParameters(send_parameters_); // Turn AGC back on @@ -2789,8 +2779,8 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { EXPECT_CALL(apm_ec_, Enable(true)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(true)).WillOnce(Return(0)); EXPECT_CALL(apm_gc_, Enable(true)).WillOnce(Return(0)); - send_parameters_.options.auto_gain_control = rtc::Optional(true); - send_parameters_.options.adjust_agc_delta = rtc::Optional(); + send_parameters_.options.auto_gain_control = true; + send_parameters_.options.adjust_agc_delta = rtc::nullopt; SetSendParameters(send_parameters_); // Turn off other options (and stereo swapping on). @@ -2801,10 +2791,10 @@ TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { EXPECT_CALL(apm_ns_, Enable(false)).WillOnce(Return(0)); EXPECT_CALL(apm_vd_, Enable(false)).WillOnce(Return(0)); EXPECT_CALL(transmit_mixer_, EnableStereoChannelSwapping(true)); - send_parameters_.options.noise_suppression = rtc::Optional(false); - send_parameters_.options.highpass_filter = rtc::Optional(false); - send_parameters_.options.typing_detection = rtc::Optional(false); - send_parameters_.options.stereo_swapping = rtc::Optional(true); + send_parameters_.options.noise_suppression = false; + send_parameters_.options.highpass_filter = false; + send_parameters_.options.typing_detection = false; + send_parameters_.options.stereo_swapping = true; SetSendParameters(send_parameters_); EXPECT_FALSE(IsHighPassFilterEnabled()); @@ -2857,9 +2847,9 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { // AEC and AGC and NS cricket::AudioSendParameters parameters_options_all = send_parameters_; - parameters_options_all.options.echo_cancellation = rtc::Optional(true); - parameters_options_all.options.auto_gain_control = rtc::Optional(true); - parameters_options_all.options.noise_suppression = rtc::Optional(true); + parameters_options_all.options.echo_cancellation = true; + parameters_options_all.options.auto_gain_control = true; + parameters_options_all.options.noise_suppression = true; EXPECT_CALL(adm_, SetAGC(true)).Times(2).WillRepeatedly(Return(0)); EXPECT_CALL(apm_ec_, Enable(true)).Times(2).WillRepeatedly(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(true)).Times(2).WillRepeatedly(Return(0)); @@ -2872,8 +2862,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { // unset NS cricket::AudioSendParameters parameters_options_no_ns = send_parameters_; - parameters_options_no_ns.options.noise_suppression = - rtc::Optional(false); + parameters_options_no_ns.options.noise_suppression = false; EXPECT_CALL(adm_, SetAGC(true)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, Enable(true)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(true)).WillOnce(Return(0)); @@ -2881,24 +2870,23 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { EXPECT_CALL(apm_ns_, Enable(false)).WillOnce(Return(0)); EXPECT_TRUE(channel1->SetSendParameters(parameters_options_no_ns)); cricket::AudioOptions expected_options = parameters_options_all.options; - expected_options.echo_cancellation = rtc::Optional(true); - expected_options.auto_gain_control = rtc::Optional(true); - expected_options.noise_suppression = rtc::Optional(false); + expected_options.echo_cancellation = true; + expected_options.auto_gain_control = true; + expected_options.noise_suppression = false; EXPECT_EQ(expected_options, channel1->options()); // unset AGC cricket::AudioSendParameters parameters_options_no_agc = send_parameters_; - parameters_options_no_agc.options.auto_gain_control = - rtc::Optional(false); + parameters_options_no_agc.options.auto_gain_control = false; EXPECT_CALL(adm_, SetAGC(false)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, Enable(true)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(true)).WillOnce(Return(0)); EXPECT_CALL(apm_gc_, Enable(false)).WillOnce(Return(0)); EXPECT_CALL(apm_ns_, Enable(true)).WillOnce(Return(0)); EXPECT_TRUE(channel2->SetSendParameters(parameters_options_no_agc)); - expected_options.echo_cancellation = rtc::Optional(true); - expected_options.auto_gain_control = rtc::Optional(false); - expected_options.noise_suppression = rtc::Optional(true); + expected_options.echo_cancellation = true; + expected_options.auto_gain_control = false; + expected_options.noise_suppression = true; EXPECT_EQ(expected_options, channel2->options()); EXPECT_CALL(adm_, SetAGC(true)).WillOnce(Return(0)); @@ -2925,19 +2913,17 @@ TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) { // Make sure settings take effect while we are sending. cricket::AudioSendParameters parameters_options_no_agc_nor_ns = send_parameters_; - parameters_options_no_agc_nor_ns.options.auto_gain_control = - rtc::Optional(false); - parameters_options_no_agc_nor_ns.options.noise_suppression = - rtc::Optional(false); + parameters_options_no_agc_nor_ns.options.auto_gain_control = false; + parameters_options_no_agc_nor_ns.options.noise_suppression = false; EXPECT_CALL(adm_, SetAGC(false)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, Enable(true)).WillOnce(Return(0)); EXPECT_CALL(apm_ec_, enable_metrics(true)).WillOnce(Return(0)); EXPECT_CALL(apm_gc_, Enable(false)).WillOnce(Return(0)); EXPECT_CALL(apm_ns_, Enable(false)).WillOnce(Return(0)); EXPECT_TRUE(channel2->SetSendParameters(parameters_options_no_agc_nor_ns)); - expected_options.echo_cancellation = rtc::Optional(true); - expected_options.auto_gain_control = rtc::Optional(false); - expected_options.noise_suppression = rtc::Optional(false); + expected_options.echo_cancellation = true; + expected_options.auto_gain_control = false; + expected_options.noise_suppression = false; EXPECT_EQ(expected_options, channel2->options()); }