Replace base::Bind with BindOnce/BindRepeating in media/filters.
Bug: 1007805
Change-Id: I8e0136335d880ce1897d75e70a81dddd2e016d80
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2522397
Reviewed-by: John Rummell <jrummell@chromium.org>
Commit-Queue: David Bienvenu <davidbienvenu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#826515}
diff --git a/media/filters/audio_decoder_unittest.cc b/media/filters/audio_decoder_unittest.cc
index 8bd739f..c02f516 100644
--- a/media/filters/audio_decoder_unittest.cc
+++ b/media/filters/audio_decoder_unittest.cc
@@ -177,8 +177,8 @@
base::RunLoop run_loop;
decoder_->Decode(
std::move(buffer),
- base::Bind(&AudioDecoderTest::DecodeFinished, base::Unretained(this),
- run_loop.QuitClosure()));
+ base::BindOnce(&AudioDecoderTest::DecodeFinished,
+ base::Unretained(this), run_loop.QuitClosure()));
run_loop.Run();
ASSERT_FALSE(pending_decode_);
}
@@ -246,15 +246,15 @@
void InitializeDecoderWithResult(const AudioDecoderConfig& config,
bool success) {
- decoder_->Initialize(
- config, nullptr,
- base::BindOnce(
- [](bool success, Status status) {
- EXPECT_EQ(status.is_ok(), success);
- },
- success),
- base::Bind(&AudioDecoderTest::OnDecoderOutput, base::Unretained(this)),
- base::DoNothing());
+ decoder_->Initialize(config, nullptr,
+ base::BindOnce(
+ [](bool success, Status status) {
+ EXPECT_EQ(status.is_ok(), success);
+ },
+ success),
+ base::BindRepeating(&AudioDecoderTest::OnDecoderOutput,
+ base::Unretained(this)),
+ base::DoNothing());
base::RunLoop().RunUntilIdle();
}
diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc
index 77b3bfcf..185819e 100644
--- a/media/filters/audio_video_metadata_extractor.cc
+++ b/media/filters/audio_video_metadata_extractor.cc
@@ -78,7 +78,8 @@
DCHECK(!extracted_);
bool read_ok = true;
- media::BlockingUrlProtocol protocol(source, base::Bind(&OnError, &read_ok));
+ media::BlockingUrlProtocol protocol(source,
+ base::BindRepeating(&OnError, &read_ok));
media::FFmpegGlue glue(&protocol);
AVFormatContext* format_context = glue.format_context();
diff --git a/media/filters/blocking_url_protocol.cc b/media/filters/blocking_url_protocol.cc
index 0cf42ec..add92a5 100644
--- a/media/filters/blocking_url_protocol.cc
+++ b/media/filters/blocking_url_protocol.cc
@@ -15,7 +15,7 @@
namespace media {
BlockingUrlProtocol::BlockingUrlProtocol(DataSource* data_source,
- const base::Closure& error_cb)
+ const base::RepeatingClosure& error_cb)
: data_source_(data_source),
error_cb_(error_cb),
is_streaming_(data_source_->IsStreaming()),
diff --git a/media/filters/blocking_url_protocol.h b/media/filters/blocking_url_protocol.h
index 7e6a1eb..be5cdd0 100644
--- a/media/filters/blocking_url_protocol.h
+++ b/media/filters/blocking_url_protocol.h
@@ -25,7 +25,8 @@
public:
// Implements FFmpegURLProtocol using the given |data_source|. |error_cb| is
// fired any time DataSource::Read() returns an error.
- BlockingUrlProtocol(DataSource* data_source, const base::Closure& error_cb);
+ BlockingUrlProtocol(DataSource* data_source,
+ const base::RepeatingClosure& error_cb);
virtual ~BlockingUrlProtocol();
// Aborts any pending reads by returning a read error. After this method
@@ -51,7 +52,7 @@
base::Lock data_source_lock_;
DataSource* data_source_;
- base::Closure error_cb_;
+ base::RepeatingClosure error_cb_;
const bool is_streaming_;
// Used to unblock the thread during shutdown and when reads complete.
diff --git a/media/filters/blocking_url_protocol_unittest.cc b/media/filters/blocking_url_protocol_unittest.cc
index 362e0b7..8d7c9a7 100644
--- a/media/filters/blocking_url_protocol_unittest.cc
+++ b/media/filters/blocking_url_protocol_unittest.cc
@@ -4,6 +4,8 @@
#include <stdint.h>
+#include <memory>
+
#include "base/bind.h"
#include "base/files/file_path.h"
#include "base/macros.h"
@@ -22,8 +24,8 @@
BlockingUrlProtocolTest()
: url_protocol_(new BlockingUrlProtocol(
&data_source_,
- base::Bind(&BlockingUrlProtocolTest::OnDataSourceError,
- base::Unretained(this)))) {
+ base::BindRepeating(&BlockingUrlProtocolTest::OnDataSourceError,
+ base::Unretained(this)))) {
CHECK(data_source_.Initialize(GetTestDataFilePath("bear-320x240.webm")));
}
@@ -113,9 +115,10 @@
EXPECT_FALSE(url_protocol_->IsStreaming());
data_source_.force_streaming_for_testing();
- url_protocol_.reset(new BlockingUrlProtocol(
- &data_source_, base::Bind(&BlockingUrlProtocolTest::OnDataSourceError,
- base::Unretained(this))));
+ url_protocol_ = std::make_unique<BlockingUrlProtocol>(
+ &data_source_,
+ base::BindRepeating(&BlockingUrlProtocolTest::OnDataSourceError,
+ base::Unretained(this)));
EXPECT_TRUE(data_source_.IsStreaming());
EXPECT_TRUE(url_protocol_->IsStreaming());
}
diff --git a/media/filters/chunk_demuxer_unittest.cc b/media/filters/chunk_demuxer_unittest.cc
index 4924b69..2ed13c82 100644
--- a/media/filters/chunk_demuxer_unittest.cc
+++ b/media/filters/chunk_demuxer_unittest.cc
@@ -8,6 +8,7 @@
#include <stdint.h>
#include <algorithm>
+#include <memory>
#include <queue>
#include <utility>
@@ -177,22 +178,23 @@
ChunkDemuxerTest()
: did_progress_(false),
append_window_end_for_next_append_(kInfiniteDuration) {
- init_segment_received_cb_ = base::Bind(
+ init_segment_received_cb_ = base::BindRepeating(
&ChunkDemuxerTest::InitSegmentReceived, base::Unretained(this));
CreateNewDemuxer();
}
void CreateNewDemuxer() {
- base::Closure open_cb =
- base::Bind(&ChunkDemuxerTest::DemuxerOpened, base::Unretained(this));
- base::Closure progress_cb =
- base::Bind(&ChunkDemuxerTest::OnProgress, base::Unretained(this));
+ base::OnceClosure open_cb = base::BindOnce(&ChunkDemuxerTest::DemuxerOpened,
+ base::Unretained(this));
+ base::RepeatingClosure progress_cb = base::BindRepeating(
+ &ChunkDemuxerTest::OnProgress, base::Unretained(this));
Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb =
base::BindRepeating(&ChunkDemuxerTest::OnEncryptedMediaInitData,
base::Unretained(this));
EXPECT_MEDIA_LOG(ChunkDemuxerCtor());
- demuxer_.reset(new ChunkDemuxer(open_cb, progress_cb,
- encrypted_media_init_data_cb, &media_log_));
+ demuxer_ = std::make_unique<ChunkDemuxer>(std::move(open_cb), progress_cb,
+ encrypted_media_init_data_cb,
+ &media_log_);
}
virtual ~ChunkDemuxerTest() {
@@ -4428,7 +4430,7 @@
task_environment->RunUntilIdle();
}
-}
+} // namespace
TEST_F(ChunkDemuxerTest, StreamStatusNotifications) {
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
diff --git a/media/filters/decrypting_audio_decoder_unittest.cc b/media/filters/decrypting_audio_decoder_unittest.cc
index 7772462..b88ec863 100644
--- a/media/filters/decrypting_audio_decoder_unittest.cc
+++ b/media/filters/decrypting_audio_decoder_unittest.cc
@@ -83,16 +83,17 @@
kNoTimestamp);
decoded_frame_list_.push_back(decoded_frame_);
- decoder_->Initialize(config, cdm_context_.get(),
- base::BindOnce(
- [](bool success, Status status) {
- EXPECT_EQ(status.is_ok(), success);
- },
- success),
- base::Bind(&DecryptingAudioDecoderTest::FrameReady,
- base::Unretained(this)),
- base::Bind(&DecryptingAudioDecoderTest::OnWaiting,
- base::Unretained(this)));
+ decoder_->Initialize(
+ config, cdm_context_.get(),
+ base::BindOnce(
+ [](bool success, Status status) {
+ EXPECT_EQ(status.is_ok(), success);
+ },
+ success),
+ base::BindRepeating(&DecryptingAudioDecoderTest::FrameReady,
+ base::Unretained(this)),
+ base::BindRepeating(&DecryptingAudioDecoderTest::OnWaiting,
+ base::Unretained(this)));
base::RunLoop().RunUntilIdle();
}
@@ -129,17 +130,18 @@
decoder_->Initialize(
new_config, cdm_context_.get(),
base::BindOnce([](Status status) { EXPECT_TRUE(status.is_ok()); }),
- base::Bind(&DecryptingAudioDecoderTest::FrameReady,
- base::Unretained(this)),
- base::Bind(&DecryptingAudioDecoderTest::OnWaiting,
- base::Unretained(this)));
+ base::BindRepeating(&DecryptingAudioDecoderTest::FrameReady,
+ base::Unretained(this)),
+ base::BindRepeating(&DecryptingAudioDecoderTest::OnWaiting,
+ base::Unretained(this)));
}
// Decode |buffer| and expect DecodeDone to get called with |status|.
void DecodeAndExpect(scoped_refptr<DecoderBuffer> buffer, StatusCode status) {
EXPECT_CALL(*this, DecodeDone(HasStatusCode(status)));
- decoder_->Decode(buffer, base::Bind(&DecryptingAudioDecoderTest::DecodeDone,
- base::Unretained(this)));
+ decoder_->Decode(buffer,
+ base::BindOnce(&DecryptingAudioDecoderTest::DecodeDone,
+ base::Unretained(this)));
base::RunLoop().RunUntilIdle();
}
@@ -190,8 +192,8 @@
.WillOnce(SaveArg<1>(&pending_audio_decode_cb_));
decoder_->Decode(encrypted_buffer_,
- base::Bind(&DecryptingAudioDecoderTest::DecodeDone,
- base::Unretained(this)));
+ base::BindOnce(&DecryptingAudioDecoderTest::DecodeDone,
+ base::Unretained(this)));
base::RunLoop().RunUntilIdle();
// Make sure the Decode() on the decoder triggers a DecryptAndDecode() on
// the decryptor.
@@ -204,8 +206,8 @@
RunCallback<1>(Decryptor::kNoKey, Decryptor::AudioFrames()));
EXPECT_CALL(*this, OnWaiting(WaitingReason::kNoDecryptionKey));
decoder_->Decode(encrypted_buffer_,
- base::Bind(&DecryptingAudioDecoderTest::DecodeDone,
- base::Unretained(this)));
+ base::BindOnce(&DecryptingAudioDecoderTest::DecodeDone,
+ base::Unretained(this)));
base::RunLoop().RunUntilIdle();
}
diff --git a/media/filters/decrypting_demuxer_stream_unittest.cc b/media/filters/decrypting_demuxer_stream_unittest.cc
index 8ea826b7..bcfb290e 100644
--- a/media/filters/decrypting_demuxer_stream_unittest.cc
+++ b/media/filters/decrypting_demuxer_stream_unittest.cc
@@ -77,8 +77,8 @@
: demuxer_stream_(new DecryptingDemuxerStream(
task_environment_.GetMainThreadTaskRunner(),
&media_log_,
- base::Bind(&DecryptingDemuxerStreamTest::OnWaiting,
- base::Unretained(this)))),
+ base::BindRepeating(&DecryptingDemuxerStreamTest::OnWaiting,
+ base::Unretained(this)))),
cdm_context_(new StrictMock<MockCdmContext>()),
decryptor_(new StrictMock<MockDecryptor>()),
is_initialized_(false),
diff --git a/media/filters/decrypting_video_decoder_unittest.cc b/media/filters/decrypting_video_decoder_unittest.cc
index caa4221..525fdb2 100644
--- a/media/filters/decrypting_video_decoder_unittest.cc
+++ b/media/filters/decrypting_video_decoder_unittest.cc
@@ -78,16 +78,17 @@
// can succeed or fail.
void InitializeAndExpectResult(const VideoDecoderConfig& config,
bool success) {
- decoder_->Initialize(config, false, cdm_context_.get(),
- base::BindOnce(
- [](bool success, Status status) {
- EXPECT_EQ(status.is_ok(), success);
- },
- success),
- base::Bind(&DecryptingVideoDecoderTest::FrameReady,
- base::Unretained(this)),
- base::Bind(&DecryptingVideoDecoderTest::OnWaiting,
- base::Unretained(this)));
+ decoder_->Initialize(
+ config, false, cdm_context_.get(),
+ base::BindOnce(
+ [](bool success, Status status) {
+ EXPECT_EQ(status.is_ok(), success);
+ },
+ success),
+ base::BindRepeating(&DecryptingVideoDecoderTest::FrameReady,
+ base::Unretained(this)),
+ base::BindRepeating(&DecryptingVideoDecoderTest::OnWaiting,
+ base::Unretained(this)));
base::RunLoop().RunUntilIdle();
}
diff --git a/media/filters/demuxer_perftest.cc b/media/filters/demuxer_perftest.cc
index fe3dc42d..d444f4d 100644
--- a/media/filters/demuxer_perftest.cc
+++ b/media/filters/demuxer_perftest.cc
@@ -184,7 +184,7 @@
Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb =
base::BindRepeating(&OnEncryptedMediaInitData);
Demuxer::MediaTracksUpdatedCB tracks_updated_cb =
- base::Bind(&OnMediaTracksUpdated);
+ base::BindRepeating(&OnMediaTracksUpdated);
FFmpegDemuxer demuxer(base::ThreadTaskRunnerHandle::Get(), &data_source,
encrypted_media_init_data_cb, tracks_updated_cb,
&media_log_, true);
diff --git a/media/filters/fake_video_decoder_unittest.cc b/media/filters/fake_video_decoder_unittest.cc
index 39f51b6..4913015 100644
--- a/media/filters/fake_video_decoder_unittest.cc
+++ b/media/filters/fake_video_decoder_unittest.cc
@@ -4,6 +4,9 @@
#include "media/filters/fake_video_decoder.h"
+#include <memory>
+#include <utility>
+
#include "base/bind.h"
#include "base/callback_helpers.h"
#include "base/macros.h"
@@ -37,8 +40,8 @@
"FakeVideoDecoder",
GetParam().decoding_delay,
GetParam().max_decode_requests,
- base::Bind(&FakeVideoDecoderTest::OnBytesDecoded,
- base::Unretained(this)))),
+ base::BindRepeating(&FakeVideoDecoderTest::OnBytesDecoded,
+ base::Unretained(this)))),
num_input_buffers_(0),
num_decoded_frames_(0),
num_bytes_decoded_(0),
@@ -53,15 +56,15 @@
void InitializeWithConfigAndExpectResult(const VideoDecoderConfig& config,
bool success) {
- decoder_->Initialize(
- config, false, nullptr,
- base::BindOnce(
- [](bool success, Status status) {
- EXPECT_EQ(status.is_ok(), success);
- },
- success),
- base::Bind(&FakeVideoDecoderTest::FrameReady, base::Unretained(this)),
- base::NullCallback());
+ decoder_->Initialize(config, false, nullptr,
+ base::BindOnce(
+ [](bool success, Status status) {
+ EXPECT_EQ(status.is_ok(), success);
+ },
+ success),
+ base::BindRepeating(&FakeVideoDecoderTest::FrameReady,
+ base::Unretained(this)),
+ base::NullCallback());
base::RunLoop().RunUntilIdle();
current_config_ = config;
}
@@ -158,7 +161,7 @@
void ReadAllFrames() {
do {
Decode();
- } while (num_input_buffers_ <= kTotalBuffers); // All input buffers + EOS.
+ } while (num_input_buffers_ <= kTotalBuffers); // All input buffers + EOS.
}
void EnterPendingReadState() {
@@ -284,10 +287,10 @@
}
TEST_P(FakeVideoDecoderTest, Read_ZeroDelay) {
- decoder_.reset(
- new FakeVideoDecoder("FakeVideoDecoder", 0, 1,
- base::Bind(&FakeVideoDecoderTest::OnBytesDecoded,
- base::Unretained(this))));
+ decoder_ = std::make_unique<FakeVideoDecoder>(
+ "FakeVideoDecoder", 0, 1,
+ base::BindRepeating(&FakeVideoDecoderTest::OnBytesDecoded,
+ base::Unretained(this)));
Initialize();
while (num_input_buffers_ < kTotalBuffers) {
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index 15045a1..fa39c569 100644
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -952,7 +952,7 @@
// Give a WeakPtr to BlockingUrlProtocol since we'll need to release it on the
// blocking thread pool.
url_protocol_ = std::make_unique<BlockingUrlProtocol>(
- data_source_, BindToCurrentLoop(base::Bind(
+ data_source_, BindToCurrentLoop(base::BindRepeating(
&FFmpegDemuxer::OnDataSourceError, weak_this_)));
glue_ = std::make_unique<FFmpegGlue>(url_protocol_.get());
AVFormatContext* format_context = glue_->format_context();
diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc
index a43334e..5bdd717b 100644
--- a/media/filters/ffmpeg_demuxer_unittest.cc
+++ b/media/filters/ffmpeg_demuxer_unittest.cc
@@ -338,7 +338,7 @@
base::BindRepeating(&FFmpegDemuxerTest::OnEncryptedMediaInitData,
base::Unretained(this));
- Demuxer::MediaTracksUpdatedCB tracks_updated_cb = base::Bind(
+ Demuxer::MediaTracksUpdatedCB tracks_updated_cb = base::BindRepeating(
&FFmpegDemuxerTest::OnMediaTracksUpdated, base::Unretained(this));
demuxer_.reset(new FFmpegDemuxer(
diff --git a/media/filters/ffmpeg_video_decoder_unittest.cc b/media/filters/ffmpeg_video_decoder_unittest.cc
index 452cb18a..599fb12 100644
--- a/media/filters/ffmpeg_video_decoder_unittest.cc
+++ b/media/filters/ffmpeg_video_decoder_unittest.cc
@@ -80,7 +80,8 @@
EXPECT_EQ(status.is_ok(), success);
},
success),
- base::Bind(&FFmpegVideoDecoderTest::FrameReady, base::Unretained(this)),
+ base::BindRepeating(&FFmpegVideoDecoderTest::FrameReady,
+ base::Unretained(this)),
base::NullCallback());
base::RunLoop().RunUntilIdle();
}
diff --git a/media/filters/frame_buffer_pool.cc b/media/filters/frame_buffer_pool.cc
index 0374054..c6aa7d03 100644
--- a/media/filters/frame_buffer_pool.cc
+++ b/media/filters/frame_buffer_pool.cc
@@ -108,14 +108,14 @@
return frame_buffer->alpha_data.get();
}
-base::Closure FrameBufferPool::CreateFrameCallback(void* fb_priv) {
+base::OnceClosure FrameBufferPool::CreateFrameCallback(void* fb_priv) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
auto* frame_buffer = static_cast<FrameBuffer*>(fb_priv);
++frame_buffer->held_by_frame;
- return base::Bind(&FrameBufferPool::OnVideoFrameDestroyed, this,
- base::SequencedTaskRunnerHandle::Get(), frame_buffer);
+ return base::BindOnce(&FrameBufferPool::OnVideoFrameDestroyed, this,
+ base::SequencedTaskRunnerHandle::Get(), frame_buffer);
}
bool FrameBufferPool::OnMemoryDump(
diff --git a/media/filters/frame_buffer_pool.h b/media/filters/frame_buffer_pool.h
index b108dd2..9dddec6 100644
--- a/media/filters/frame_buffer_pool.h
+++ b/media/filters/frame_buffer_pool.h
@@ -47,7 +47,7 @@
// Generates a "no_longer_needed" closure that holds a reference to this pool;
// |fb_priv| must be a value previously returned by GetFrameBuffer().
- base::Closure CreateFrameCallback(void* fb_priv);
+ base::OnceClosure CreateFrameCallback(void* fb_priv);
size_t get_pool_size_for_testing() const { return frame_buffers_.size(); }
diff --git a/media/filters/frame_buffer_pool_unittest.cc b/media/filters/frame_buffer_pool_unittest.cc
index 409029a..8644ce3 100644
--- a/media/filters/frame_buffer_pool_unittest.cc
+++ b/media/filters/frame_buffer_pool_unittest.cc
@@ -53,7 +53,7 @@
memset(alpha, 0, kBufferSize);
// This will release all memory since we're in the shutdown state.
- frame_release_cb.Run();
+ std::move(frame_release_cb).Run();
EXPECT_EQ(0u, pool->get_pool_size_for_testing());
}
@@ -74,7 +74,7 @@
auto frame_release_cb = pool->CreateFrameCallback(priv1);
pool->ReleaseFrameBuffer(priv1);
priv1 = buf1 = nullptr;
- frame_release_cb.Run();
+ std::move(frame_release_cb).Run();
// Frame buffers should not be immediately deleted upon return.
EXPECT_EQ(3u, pool->get_pool_size_for_testing());
@@ -87,7 +87,7 @@
frame_release_cb = pool->CreateFrameCallback(priv2);
pool->ReleaseFrameBuffer(priv2);
priv2 = buf2 = nullptr;
- frame_release_cb.Run();
+ std::move(frame_release_cb).Run();
EXPECT_EQ(3u, pool->get_pool_size_for_testing());
test_clock.Advance(
@@ -97,7 +97,7 @@
frame_release_cb = pool->CreateFrameCallback(priv3);
pool->ReleaseFrameBuffer(priv3);
priv3 = buf3 = nullptr;
- frame_release_cb.Run();
+ std::move(frame_release_cb).Run();
EXPECT_EQ(1u, pool->get_pool_size_for_testing());
pool->Shutdown();
diff --git a/media/filters/media_file_checker.cc b/media/filters/media_file_checker.cc
index c65d808..a0f2848 100644
--- a/media/filters/media_file_checker.cc
+++ b/media/filters/media_file_checker.cc
@@ -47,7 +47,7 @@
bool read_ok = true;
media::BlockingUrlProtocol protocol(
- &source, base::Bind(&OnMediaFileCheckerError, &read_ok));
+ &source, base::BindRepeating(&OnMediaFileCheckerError, &read_ok));
media::FFmpegGlue glue(&protocol);
AVFormatContext* format_context = glue.format_context();
diff --git a/media/filters/offloading_video_decoder_unittest.cc b/media/filters/offloading_video_decoder_unittest.cc
index 9f4bb3b..29813ad 100644
--- a/media/filters/offloading_video_decoder_unittest.cc
+++ b/media/filters/offloading_video_decoder_unittest.cc
@@ -91,8 +91,8 @@
VideoDecoder::OutputCB ExpectOutputCB() {
EXPECT_CALL(*this, OutputDone(_))
.WillOnce(VerifyOn(task_env_.GetMainThreadTaskRunner()));
- return base::Bind(&OffloadingVideoDecoderTest::OutputDone,
- base::Unretained(this));
+ return base::BindRepeating(&OffloadingVideoDecoderTest::OutputDone,
+ base::Unretained(this));
}
VideoDecoder::DecodeCB ExpectDecodeCB(StatusCode status) {
@@ -131,7 +131,7 @@
// Verify decode works and is called on the right thread.
EXPECT_CALL(*decoder_, Decode_(_, _))
.WillOnce(DoAll(VerifyOn(task_env_.GetMainThreadTaskRunner()),
- RunClosure(base::Bind(output_cb, nullptr)),
+ RunOnceClosure(base::BindOnce(output_cb, nullptr)),
RunOnceCallback<1>(DecodeStatus::OK)));
offloading_decoder_->Decode(DecoderBuffer::CreateEOSBuffer(),
ExpectDecodeCB(DecodeStatus::OK));
@@ -176,7 +176,7 @@
ExpectDecodeCB(DecodeStatus::OK));
EXPECT_CALL(*decoder_, Decode_(_, _))
.WillOnce(DoAll(VerifyNotOn(task_env_.GetMainThreadTaskRunner()),
- RunClosure(base::Bind(output_cb, nullptr)),
+ RunOnceClosure(base::BindOnce(output_cb, nullptr)),
RunOnceCallback<1>(DecodeStatus::OK)));
task_env_.RunUntilIdle();
@@ -242,8 +242,8 @@
VideoDecoder::OutputCB output_cb;
offloading_decoder_->Initialize(
TestVideoConfig::Normal(kCodecVP9), false, nullptr, ExpectInitCB(true),
- base::Bind(&OffloadingVideoDecoderTest::OutputDone,
- base::Unretained(this)),
+ base::BindRepeating(&OffloadingVideoDecoderTest::OutputDone,
+ base::Unretained(this)),
base::NullCallback());
EXPECT_CALL(*decoder_, Detach())
.WillOnce(VerifyNotOn(task_env_.GetMainThreadTaskRunner()));
diff --git a/media/filters/source_buffer_state_unittest.cc b/media/filters/source_buffer_state_unittest.cc
index d5eb381..f0fd900 100644
--- a/media/filters/source_buffer_state_unittest.cc
+++ b/media/filters/source_buffer_state_unittest.cc
@@ -84,16 +84,17 @@
auto ignore_text_track, auto encrypted_media_init_data_cb,
auto new_segment_cb, auto end_of_segment_cb,
auto media_log) { new_config_cb_ = config_cb; });
- sbs->Init(base::BindOnce(&SourceBufferStateTest::SourceInitDone,
- base::Unretained(this)),
- expected_codecs,
- base::BindRepeating(
- &SourceBufferStateTest::StreamParserEncryptedInitData,
- base::Unretained(this)),
- base::Bind(&SourceBufferStateTest::StreamParserNewTextTrack,
- base::Unretained(this)));
+ sbs->Init(
+ base::BindOnce(&SourceBufferStateTest::SourceInitDone,
+ base::Unretained(this)),
+ expected_codecs,
+ base::BindRepeating(
+ &SourceBufferStateTest::StreamParserEncryptedInitData,
+ base::Unretained(this)),
+ base::BindRepeating(&SourceBufferStateTest::StreamParserNewTextTrack,
+ base::Unretained(this)));
- sbs->SetTracksWatcher(base::Bind(
+ sbs->SetTracksWatcher(base::BindRepeating(
&SourceBufferStateTest::OnMediaTracksUpdated, base::Unretained(this)));
// These tests are not expected to issue any parse warnings.
diff --git a/media/filters/video_renderer_algorithm_unittest.cc b/media/filters/video_renderer_algorithm_unittest.cc
index f111cc7..26d919f 100644
--- a/media/filters/video_renderer_algorithm_unittest.cc
+++ b/media/filters/video_renderer_algorithm_unittest.cc
@@ -73,8 +73,8 @@
public:
VideoRendererAlgorithmTest()
: tick_clock_(new base::SimpleTestTickClock()),
- algorithm_(base::Bind(&WallClockTimeSource::GetWallClockTimes,
- base::Unretained(&time_source_)),
+ algorithm_(base::BindRepeating(&WallClockTimeSource::GetWallClockTimes,
+ base::Unretained(&time_source_)),
&media_log_) {
// Always start the TickClock at a non-zero value since null values have
// special connotations.
diff --git a/media/filters/vpx_video_decoder_fuzzertest.cc b/media/filters/vpx_video_decoder_fuzzertest.cc
index cc1a198..85cc43f 100644
--- a/media/filters/vpx_video_decoder_fuzzertest.cc
+++ b/media/filters/vpx_video_decoder_fuzzertest.cc
@@ -104,7 +104,7 @@
decoder.Initialize(
config, true /* low_delay */, nullptr /* cdm_context */,
base::BindOnce(&OnInitDone, run_loop.QuitClosure(), &success),
- base::Bind(&OnOutputComplete), base::NullCallback());
+ base::BindRepeating(&OnOutputComplete), base::NullCallback());
run_loop.Run();
if (!success)
return 0;
diff --git a/media/filters/vpx_video_decoder_unittest.cc b/media/filters/vpx_video_decoder_unittest.cc
index 17bf433..be6824bf 100644
--- a/media/filters/vpx_video_decoder_unittest.cc
+++ b/media/filters/vpx_video_decoder_unittest.cc
@@ -38,15 +38,15 @@
void InitializeWithConfigWithResult(const VideoDecoderConfig& config,
bool success) {
- decoder_->Initialize(
- config, false, nullptr,
- base::BindOnce(
- [](bool success, Status status) {
- EXPECT_EQ(status.is_ok(), success);
- },
- success),
- base::Bind(&VpxVideoDecoderTest::FrameReady, base::Unretained(this)),
- base::NullCallback());
+ decoder_->Initialize(config, false, nullptr,
+ base::BindOnce(
+ [](bool success, Status status) {
+ EXPECT_EQ(status.is_ok(), success);
+ },
+ success),
+ base::BindRepeating(&VpxVideoDecoderTest::FrameReady,
+ base::Unretained(this)),
+ base::NullCallback());
base::RunLoop().RunUntilIdle();
}