Commit a36c4bba authored by Frank Liberato's avatar Frank Liberato Committed by Commit Bot

Convert some SingleThreadTaskRunner => SequencedTaskRunner.

Change-Id: I3cc29edd1f2258348b07537909f86e4c9a1b69cc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2521168
Commit-Queue: Frank Liberato <liberato@chromium.org>
Auto-Submit: Frank Liberato <liberato@chromium.org>
Reviewed-by: default avatarDale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#825104}
parent fd8fbd63
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include "base/feature_list.h" #include "base/feature_list.h"
#include "base/location.h" #include "base/location.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/single_thread_task_runner.h" #include "base/sequenced_task_runner.h"
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
#include "media/base/bind_to_current_loop.h" #include "media/base/bind_to_current_loop.h"
#include "media/base/cdm_context.h" #include "media/base/cdm_context.h"
...@@ -99,17 +99,17 @@ const char* GetStatusString( ...@@ -99,17 +99,17 @@ const char* GetStatusString(
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
DecoderStream<StreamType>::DecoderStream( DecoderStream<StreamType>::DecoderStream(
std::unique_ptr<DecoderStreamTraits<StreamType>> traits, std::unique_ptr<DecoderStreamTraits<StreamType>> traits,
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, scoped_refptr<base::SequencedTaskRunner> task_runner,
CreateDecodersCB create_decoders_cb, CreateDecodersCB create_decoders_cb,
MediaLog* media_log) MediaLog* media_log)
: traits_(std::move(traits)), : traits_(std::move(traits)),
task_runner_(task_runner), task_runner_(std::move(task_runner)),
media_log_(media_log), media_log_(media_log),
state_(STATE_UNINITIALIZED), state_(STATE_UNINITIALIZED),
stream_(nullptr), stream_(nullptr),
cdm_context_(nullptr), cdm_context_(nullptr),
decoder_produced_a_frame_(false), decoder_produced_a_frame_(false),
decoder_selector_(task_runner, std::move(create_decoders_cb), media_log), decoder_selector_(task_runner_, std::move(create_decoders_cb), media_log),
decoding_eos_(false), decoding_eos_(false),
preparing_output_(false), preparing_output_(false),
pending_decode_requests_(0), pending_decode_requests_(0),
...@@ -122,7 +122,7 @@ DecoderStream<StreamType>::DecoderStream( ...@@ -122,7 +122,7 @@ DecoderStream<StreamType>::DecoderStream(
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
DecoderStream<StreamType>::~DecoderStream() { DecoderStream<StreamType>::~DecoderStream() {
FUNCTION_DVLOG(1); FUNCTION_DVLOG(1);
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
if (init_cb_) { if (init_cb_) {
task_runner_->PostTask(FROM_HERE, task_runner_->PostTask(FROM_HERE,
...@@ -154,7 +154,7 @@ void DecoderStream<StreamType>::Initialize(DemuxerStream* stream, ...@@ -154,7 +154,7 @@ void DecoderStream<StreamType>::Initialize(DemuxerStream* stream,
StatisticsCB statistics_cb, StatisticsCB statistics_cb,
WaitingCB waiting_cb) { WaitingCB waiting_cb) {
FUNCTION_DVLOG(1); FUNCTION_DVLOG(1);
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK_EQ(state_, STATE_UNINITIALIZED); DCHECK_EQ(state_, STATE_UNINITIALIZED);
DCHECK(!init_cb_); DCHECK(!init_cb_);
DCHECK(init_cb); DCHECK(init_cb);
...@@ -178,7 +178,7 @@ void DecoderStream<StreamType>::Initialize(DemuxerStream* stream, ...@@ -178,7 +178,7 @@ void DecoderStream<StreamType>::Initialize(DemuxerStream* stream,
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
void DecoderStream<StreamType>::Read(ReadCB read_cb) { void DecoderStream<StreamType>::Read(ReadCB read_cb) {
FUNCTION_DVLOG(3); FUNCTION_DVLOG(3);
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(state_ != STATE_UNINITIALIZED && state_ != STATE_INITIALIZING) DCHECK(state_ != STATE_UNINITIALIZED && state_ != STATE_INITIALIZING)
<< state_; << state_;
// No two reads in the flight at any time. // No two reads in the flight at any time.
...@@ -216,7 +216,7 @@ void DecoderStream<StreamType>::Read(ReadCB read_cb) { ...@@ -216,7 +216,7 @@ void DecoderStream<StreamType>::Read(ReadCB read_cb) {
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
void DecoderStream<StreamType>::Reset(base::OnceClosure closure) { void DecoderStream<StreamType>::Reset(base::OnceClosure closure) {
FUNCTION_DVLOG(2); FUNCTION_DVLOG(2);
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK_NE(state_, STATE_UNINITIALIZED); DCHECK_NE(state_, STATE_UNINITIALIZED);
DCHECK(!reset_cb_); DCHECK(!reset_cb_);
...@@ -265,14 +265,14 @@ void DecoderStream<StreamType>::Reset(base::OnceClosure closure) { ...@@ -265,14 +265,14 @@ void DecoderStream<StreamType>::Reset(base::OnceClosure closure) {
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
bool DecoderStream<StreamType>::CanReadWithoutStalling() const { bool DecoderStream<StreamType>::CanReadWithoutStalling() const {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
return !ready_outputs_.empty() || !unprepared_outputs_.empty() || return !ready_outputs_.empty() || !unprepared_outputs_.empty() ||
(decoder_ && decoder_->CanReadWithoutStalling()); (decoder_ && decoder_->CanReadWithoutStalling());
} }
template <> template <>
bool DecoderStream<DemuxerStream::AUDIO>::CanReadWithoutStalling() const { bool DecoderStream<DemuxerStream::AUDIO>::CanReadWithoutStalling() const {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
return true; return true;
} }
...@@ -306,7 +306,7 @@ int DecoderStream<DemuxerStream::AUDIO>::GetMaxReadyOutputs() const { ...@@ -306,7 +306,7 @@ int DecoderStream<DemuxerStream::AUDIO>::GetMaxReadyOutputs() const {
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
bool DecoderStream<StreamType>::CanDecodeMore() const { bool DecoderStream<StreamType>::CanDecodeMore() const {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
bool buffers_left = !(fallback_buffers_.empty() && decoding_eos_); bool buffers_left = !(fallback_buffers_.empty() && decoding_eos_);
...@@ -319,21 +319,21 @@ bool DecoderStream<StreamType>::CanDecodeMore() const { ...@@ -319,21 +319,21 @@ bool DecoderStream<StreamType>::CanDecodeMore() const {
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
base::TimeDelta DecoderStream<StreamType>::AverageDuration() const { base::TimeDelta DecoderStream<StreamType>::AverageDuration() const {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
return duration_tracker_.count() ? duration_tracker_.Average() return duration_tracker_.count() ? duration_tracker_.Average()
: base::TimeDelta(); : base::TimeDelta();
} }
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
void DecoderStream<StreamType>::SetPrepareCB(PrepareCB prepare_cb) { void DecoderStream<StreamType>::SetPrepareCB(PrepareCB prepare_cb) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
prepare_cb_ = std::move(prepare_cb); prepare_cb_ = std::move(prepare_cb);
} }
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
void DecoderStream<StreamType>::SkipPrepareUntil( void DecoderStream<StreamType>::SkipPrepareUntil(
base::TimeDelta start_timestamp) { base::TimeDelta start_timestamp) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
skip_prepare_until_timestamp_ = start_timestamp; skip_prepare_until_timestamp_ = start_timestamp;
} }
...@@ -353,7 +353,7 @@ void DecoderStream<StreamType>::OnDecoderSelected( ...@@ -353,7 +353,7 @@ void DecoderStream<StreamType>::OnDecoderSelected(
FUNCTION_DVLOG(1) << ": " FUNCTION_DVLOG(1) << ": "
<< (selected_decoder ? selected_decoder->GetDisplayName() << (selected_decoder ? selected_decoder->GetDisplayName()
: "No decoder selected."); : "No decoder selected.");
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(state_ == STATE_INITIALIZING || state_ == STATE_REINITIALIZING_DECODER) DCHECK(state_ == STATE_INITIALIZING || state_ == STATE_REINITIALIZING_DECODER)
<< state_; << state_;
...@@ -697,7 +697,7 @@ void DecoderStream<StreamType>::OnBufferReady( ...@@ -697,7 +697,7 @@ void DecoderStream<StreamType>::OnBufferReady(
FUNCTION_DVLOG(3) << ": " << status << ", " FUNCTION_DVLOG(3) << ": " << status << ", "
<< (buffer ? buffer->AsHumanReadableString() : "nullptr"); << (buffer ? buffer->AsHumanReadableString() : "nullptr");
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(pending_demuxer_read_); DCHECK(pending_demuxer_read_);
if (!decoder_produced_a_frame_) { if (!decoder_produced_a_frame_) {
DCHECK(state_ == STATE_ERROR || state_ == STATE_REINITIALIZING_DECODER || DCHECK(state_ == STATE_ERROR || state_ == STATE_REINITIALIZING_DECODER ||
...@@ -834,7 +834,7 @@ void DecoderStream<StreamType>::OnBufferReady( ...@@ -834,7 +834,7 @@ void DecoderStream<StreamType>::OnBufferReady(
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
void DecoderStream<StreamType>::ReinitializeDecoder() { void DecoderStream<StreamType>::ReinitializeDecoder() {
FUNCTION_DVLOG(2); FUNCTION_DVLOG(2);
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK_EQ(state_, STATE_FLUSHING_DECODER); DCHECK_EQ(state_, STATE_FLUSHING_DECODER);
DCHECK_EQ(pending_decode_requests_, 0); DCHECK_EQ(pending_decode_requests_, 0);
...@@ -846,7 +846,7 @@ void DecoderStream<StreamType>::ReinitializeDecoder() { ...@@ -846,7 +846,7 @@ void DecoderStream<StreamType>::ReinitializeDecoder() {
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
void DecoderStream<StreamType>::CompleteDecoderReinitialization(bool success) { void DecoderStream<StreamType>::CompleteDecoderReinitialization(bool success) {
FUNCTION_DVLOG(2); FUNCTION_DVLOG(2);
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK_EQ(state_, STATE_REINITIALIZING_DECODER); DCHECK_EQ(state_, STATE_REINITIALIZING_DECODER);
state_ = success ? STATE_NORMAL : STATE_ERROR; state_ = success ? STATE_NORMAL : STATE_ERROR;
...@@ -884,7 +884,7 @@ void DecoderStream<StreamType>::CompleteDecoderReinitialization(bool success) { ...@@ -884,7 +884,7 @@ void DecoderStream<StreamType>::CompleteDecoderReinitialization(bool success) {
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
void DecoderStream<StreamType>::ResetDecoder() { void DecoderStream<StreamType>::ResetDecoder() {
FUNCTION_DVLOG(2); FUNCTION_DVLOG(2);
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(state_ == STATE_NORMAL || state_ == STATE_FLUSHING_DECODER || DCHECK(state_ == STATE_NORMAL || state_ == STATE_FLUSHING_DECODER ||
state_ == STATE_ERROR || state_ == STATE_END_OF_STREAM) state_ == STATE_ERROR || state_ == STATE_END_OF_STREAM)
<< state_; << state_;
...@@ -897,7 +897,7 @@ void DecoderStream<StreamType>::ResetDecoder() { ...@@ -897,7 +897,7 @@ void DecoderStream<StreamType>::ResetDecoder() {
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
void DecoderStream<StreamType>::OnDecoderReset() { void DecoderStream<StreamType>::OnDecoderReset() {
FUNCTION_DVLOG(2); FUNCTION_DVLOG(2);
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(state_ == STATE_NORMAL || state_ == STATE_FLUSHING_DECODER || DCHECK(state_ == STATE_NORMAL || state_ == STATE_FLUSHING_DECODER ||
state_ == STATE_ERROR || state_ == STATE_END_OF_STREAM) state_ == STATE_ERROR || state_ == STATE_END_OF_STREAM)
<< state_; << state_;
...@@ -934,7 +934,7 @@ void DecoderStream<StreamType>::ClearOutputs() { ...@@ -934,7 +934,7 @@ void DecoderStream<StreamType>::ClearOutputs() {
template <DemuxerStream::Type StreamType> template <DemuxerStream::Type StreamType>
void DecoderStream<StreamType>::MaybePrepareAnotherOutput() { void DecoderStream<StreamType>::MaybePrepareAnotherOutput() {
FUNCTION_DVLOG(3); FUNCTION_DVLOG(3);
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(state_ == STATE_NORMAL || state_ == STATE_FLUSHING_DECODER || DCHECK(state_ == STATE_NORMAL || state_ == STATE_FLUSHING_DECODER ||
state_ == STATE_END_OF_STREAM || state_ == STATE_END_OF_STREAM ||
state_ == STATE_REINITIALIZING_DECODER) state_ == STATE_REINITIALIZING_DECODER)
...@@ -963,7 +963,7 @@ template <DemuxerStream::Type StreamType> ...@@ -963,7 +963,7 @@ template <DemuxerStream::Type StreamType>
void DecoderStream<StreamType>::OnPreparedOutputReady( void DecoderStream<StreamType>::OnPreparedOutputReady(
scoped_refptr<Output> output) { scoped_refptr<Output> output) {
FUNCTION_DVLOG(2); FUNCTION_DVLOG(2);
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
// Errors and reset invalidate the WeakPtr factory for this function, so it // Errors and reset invalidate the WeakPtr factory for this function, so it
// should only be called in normal and flush states. // should only be called in normal and flush states.
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#include "media/filters/decoder_stream_traits.h" #include "media/filters/decoder_stream_traits.h"
namespace base { namespace base {
class SingleThreadTaskRunner; class SequencedTaskRunner;
} }
namespace media { namespace media {
...@@ -64,7 +64,7 @@ class MEDIA_EXPORT DecoderStream { ...@@ -64,7 +64,7 @@ class MEDIA_EXPORT DecoderStream {
using ReadCB = base::OnceCallback<void(ReadStatus, scoped_refptr<Output>)>; using ReadCB = base::OnceCallback<void(ReadStatus, scoped_refptr<Output>)>;
DecoderStream(std::unique_ptr<DecoderStreamTraits<StreamType>> traits, DecoderStream(std::unique_ptr<DecoderStreamTraits<StreamType>> traits,
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, scoped_refptr<base::SequencedTaskRunner> task_runner,
CreateDecodersCB create_decoders_cb, CreateDecodersCB create_decoders_cb,
MediaLog* media_log); MediaLog* media_log);
virtual ~DecoderStream(); virtual ~DecoderStream();
...@@ -229,7 +229,7 @@ class MEDIA_EXPORT DecoderStream { ...@@ -229,7 +229,7 @@ class MEDIA_EXPORT DecoderStream {
std::unique_ptr<DecoderStreamTraits<StreamType>> traits_; std::unique_ptr<DecoderStreamTraits<StreamType>> traits_;
scoped_refptr<base::SingleThreadTaskRunner> task_runner_; scoped_refptr<base::SequencedTaskRunner> task_runner_;
MediaLog* media_log_; MediaLog* media_log_;
State state_; State state_;
......
...@@ -22,7 +22,7 @@ DecryptingMediaResource::DecryptingMediaResource( ...@@ -22,7 +22,7 @@ DecryptingMediaResource::DecryptingMediaResource(
MediaResource* media_resource, MediaResource* media_resource,
CdmContext* cdm_context, CdmContext* cdm_context,
MediaLog* media_log, MediaLog* media_log,
scoped_refptr<base::SingleThreadTaskRunner> task_runner) scoped_refptr<base::SequencedTaskRunner> task_runner)
: media_resource_(media_resource), : media_resource_(media_resource),
cdm_context_(cdm_context), cdm_context_(cdm_context),
media_log_(media_log), media_log_(media_log),
...@@ -33,7 +33,7 @@ DecryptingMediaResource::DecryptingMediaResource( ...@@ -33,7 +33,7 @@ DecryptingMediaResource::DecryptingMediaResource(
DCHECK(cdm_context_->GetDecryptor()); DCHECK(cdm_context_->GetDecryptor());
DCHECK(cdm_context_->GetDecryptor()->CanAlwaysDecrypt()); DCHECK(cdm_context_->GetDecryptor()->CanAlwaysDecrypt());
DCHECK(media_log_); DCHECK(media_log_);
DCHECK(task_runner->BelongsToCurrentThread()); DCHECK(task_runner->RunsTasksInCurrentSequence());
} }
DecryptingMediaResource::~DecryptingMediaResource() = default; DecryptingMediaResource::~DecryptingMediaResource() = default;
......
...@@ -10,14 +10,10 @@ ...@@ -10,14 +10,10 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/single_thread_task_runner.h" #include "base/sequenced_task_runner.h"
#include "media/base/media_resource.h" #include "media/base/media_resource.h"
#include "media/base/pipeline.h" #include "media/base/pipeline.h"
namespace base {
class SingleThreadTaskRunner;
} // namespace base
namespace media { namespace media {
class CdmContext; class CdmContext;
...@@ -36,11 +32,10 @@ class MEDIA_EXPORT DecryptingMediaResource : public MediaResource { ...@@ -36,11 +32,10 @@ class MEDIA_EXPORT DecryptingMediaResource : public MediaResource {
public: public:
using InitCB = base::OnceCallback<void(bool success)>; using InitCB = base::OnceCallback<void(bool success)>;
DecryptingMediaResource( DecryptingMediaResource(MediaResource* media_resource,
MediaResource* media_resource,
CdmContext* cdm_context, CdmContext* cdm_context,
MediaLog* media_log, MediaLog* media_log,
scoped_refptr<base::SingleThreadTaskRunner> task_runner); scoped_refptr<base::SequencedTaskRunner> task_runner);
~DecryptingMediaResource() override; ~DecryptingMediaResource() override;
// MediaResource implementation: // MediaResource implementation:
...@@ -58,7 +53,7 @@ class MEDIA_EXPORT DecryptingMediaResource : public MediaResource { ...@@ -58,7 +53,7 @@ class MEDIA_EXPORT DecryptingMediaResource : public MediaResource {
MediaResource* const media_resource_; MediaResource* const media_resource_;
CdmContext* const cdm_context_; CdmContext* const cdm_context_;
MediaLog* const media_log_; MediaLog* const media_log_;
scoped_refptr<base::SingleThreadTaskRunner> task_runner_; scoped_refptr<base::SequencedTaskRunner> task_runner_;
// Number of DecryptingDemuxerStreams that have yet to be initialized. // Number of DecryptingDemuxerStreams that have yet to be initialized.
int num_dds_pending_init_ = 0; int num_dds_pending_init_ = 0;
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h" #include "base/metrics/histogram_macros.h"
#include "base/numerics/safe_conversions.h" #include "base/numerics/safe_conversions.h"
#include "base/single_thread_task_runner.h" #include "base/sequenced_task_runner.h"
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "base/sys_byteorder.h" #include "base/sys_byteorder.h"
...@@ -343,7 +343,7 @@ FFmpegDemuxerStream::~FFmpegDemuxerStream() { ...@@ -343,7 +343,7 @@ FFmpegDemuxerStream::~FFmpegDemuxerStream() {
} }
void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(packet->size); DCHECK(packet->size);
DCHECK(packet->data); DCHECK(packet->data);
...@@ -663,13 +663,13 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { ...@@ -663,13 +663,13 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
} }
void FFmpegDemuxerStream::SetEndOfStream() { void FFmpegDemuxerStream::SetEndOfStream() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
end_of_stream_ = true; end_of_stream_ = true;
SatisfyPendingRead(); SatisfyPendingRead();
} }
void FFmpegDemuxerStream::FlushBuffers(bool preserve_packet_position) { void FFmpegDemuxerStream::FlushBuffers(bool preserve_packet_position) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(preserve_packet_position || !read_cb_) DCHECK(preserve_packet_position || !read_cb_)
<< "There should be no pending read"; << "There should be no pending read";
...@@ -697,7 +697,7 @@ void FFmpegDemuxerStream::Abort() { ...@@ -697,7 +697,7 @@ void FFmpegDemuxerStream::Abort() {
} }
void FFmpegDemuxerStream::Stop() { void FFmpegDemuxerStream::Stop() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
buffer_queue_.Clear(); buffer_queue_.Clear();
demuxer_ = nullptr; demuxer_ = nullptr;
stream_ = nullptr; stream_ = nullptr;
...@@ -709,17 +709,17 @@ void FFmpegDemuxerStream::Stop() { ...@@ -709,17 +709,17 @@ void FFmpegDemuxerStream::Stop() {
} }
DemuxerStream::Type FFmpegDemuxerStream::type() const { DemuxerStream::Type FFmpegDemuxerStream::type() const {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
return type_; return type_;
} }
DemuxerStream::Liveness FFmpegDemuxerStream::liveness() const { DemuxerStream::Liveness FFmpegDemuxerStream::liveness() const {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
return liveness_; return liveness_;
} }
void FFmpegDemuxerStream::Read(ReadCB read_cb) { void FFmpegDemuxerStream::Read(ReadCB read_cb) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
CHECK(!read_cb_) << "Overlapping reads are not supported"; CHECK(!read_cb_) << "Overlapping reads are not supported";
read_cb_ = BindToCurrentLoop(std::move(read_cb)); read_cb_ = BindToCurrentLoop(std::move(read_cb));
...@@ -748,7 +748,7 @@ void FFmpegDemuxerStream::Read(ReadCB read_cb) { ...@@ -748,7 +748,7 @@ void FFmpegDemuxerStream::Read(ReadCB read_cb) {
} }
void FFmpegDemuxerStream::EnableBitstreamConverter() { void FFmpegDemuxerStream::EnableBitstreamConverter() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
#if BUILDFLAG(USE_PROPRIETARY_CODECS) #if BUILDFLAG(USE_PROPRIETARY_CODECS)
InitBitstreamConverter(); InitBitstreamConverter();
...@@ -806,26 +806,26 @@ void FFmpegDemuxerStream::InitBitstreamConverter() { ...@@ -806,26 +806,26 @@ void FFmpegDemuxerStream::InitBitstreamConverter() {
bool FFmpegDemuxerStream::SupportsConfigChanges() { return false; } bool FFmpegDemuxerStream::SupportsConfigChanges() { return false; }
AudioDecoderConfig FFmpegDemuxerStream::audio_decoder_config() { AudioDecoderConfig FFmpegDemuxerStream::audio_decoder_config() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK_EQ(type_, AUDIO); DCHECK_EQ(type_, AUDIO);
DCHECK(audio_config_.get()); DCHECK(audio_config_.get());
return *audio_config_; return *audio_config_;
} }
VideoDecoderConfig FFmpegDemuxerStream::video_decoder_config() { VideoDecoderConfig FFmpegDemuxerStream::video_decoder_config() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK_EQ(type_, VIDEO); DCHECK_EQ(type_, VIDEO);
DCHECK(video_config_.get()); DCHECK(video_config_.get());
return *video_config_; return *video_config_;
} }
bool FFmpegDemuxerStream::IsEnabled() const { bool FFmpegDemuxerStream::IsEnabled() const {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
return is_enabled_; return is_enabled_;
} }
void FFmpegDemuxerStream::SetEnabled(bool enabled, base::TimeDelta timestamp) { void FFmpegDemuxerStream::SetEnabled(bool enabled, base::TimeDelta timestamp) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(demuxer_); DCHECK(demuxer_);
DCHECK(demuxer_->ffmpeg_task_runner()); DCHECK(demuxer_->ffmpeg_task_runner());
if (enabled == is_enabled_) if (enabled == is_enabled_)
...@@ -845,7 +845,7 @@ void FFmpegDemuxerStream::SetEnabled(bool enabled, base::TimeDelta timestamp) { ...@@ -845,7 +845,7 @@ void FFmpegDemuxerStream::SetEnabled(bool enabled, base::TimeDelta timestamp) {
} }
void FFmpegDemuxerStream::SetLiveness(Liveness liveness) { void FFmpegDemuxerStream::SetLiveness(Liveness liveness) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK_EQ(liveness_, LIVENESS_UNKNOWN); DCHECK_EQ(liveness_, LIVENESS_UNKNOWN);
liveness_ = liveness; liveness_ = liveness;
} }
...@@ -855,7 +855,7 @@ Ranges<base::TimeDelta> FFmpegDemuxerStream::GetBufferedRanges() const { ...@@ -855,7 +855,7 @@ Ranges<base::TimeDelta> FFmpegDemuxerStream::GetBufferedRanges() const {
} }
void FFmpegDemuxerStream::SatisfyPendingRead() { void FFmpegDemuxerStream::SatisfyPendingRead() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
if (read_cb_) { if (read_cb_) {
if (!buffer_queue_.IsEmpty()) { if (!buffer_queue_.IsEmpty()) {
std::move(read_cb_).Run(DemuxerStream::kOk, buffer_queue_.Pop()); std::move(read_cb_).Run(DemuxerStream::kOk, buffer_queue_.Pop());
...@@ -901,7 +901,7 @@ base::TimeDelta FFmpegDemuxerStream::ConvertStreamTimestamp( ...@@ -901,7 +901,7 @@ base::TimeDelta FFmpegDemuxerStream::ConvertStreamTimestamp(
// FFmpegDemuxer // FFmpegDemuxer
// //
FFmpegDemuxer::FFmpegDemuxer( FFmpegDemuxer::FFmpegDemuxer(
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, const scoped_refptr<base::SequencedTaskRunner>& task_runner,
DataSource* data_source, DataSource* data_source,
const EncryptedMediaInitDataCB& encrypted_media_init_data_cb, const EncryptedMediaInitDataCB& encrypted_media_init_data_cb,
MediaTracksUpdatedCB media_tracks_updated_cb, MediaTracksUpdatedCB media_tracks_updated_cb,
...@@ -944,7 +944,7 @@ std::string FFmpegDemuxer::GetDisplayName() const { ...@@ -944,7 +944,7 @@ std::string FFmpegDemuxer::GetDisplayName() const {
void FFmpegDemuxer::Initialize(DemuxerHost* host, void FFmpegDemuxer::Initialize(DemuxerHost* host,
PipelineStatusCallback init_cb) { PipelineStatusCallback init_cb) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
host_ = host; host_ = host;
weak_this_ = cancel_pending_seek_factory_.GetWeakPtr(); weak_this_ = cancel_pending_seek_factory_.GetWeakPtr();
init_cb_ = std::move(init_cb); init_cb_ = std::move(init_cb);
...@@ -978,7 +978,7 @@ void FFmpegDemuxer::Initialize(DemuxerHost* host, ...@@ -978,7 +978,7 @@ void FFmpegDemuxer::Initialize(DemuxerHost* host,
} }
void FFmpegDemuxer::AbortPendingReads() { void FFmpegDemuxer::AbortPendingReads() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
// If Stop() has been called, then drop this call. // If Stop() has been called, then drop this call.
if (stopped_) if (stopped_)
...@@ -1012,7 +1012,7 @@ void FFmpegDemuxer::AbortPendingReads() { ...@@ -1012,7 +1012,7 @@ void FFmpegDemuxer::AbortPendingReads() {
} }
void FFmpegDemuxer::Stop() { void FFmpegDemuxer::Stop() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
if (init_cb_) if (init_cb_)
RunInitCB(PIPELINE_ERROR_ABORT); RunInitCB(PIPELINE_ERROR_ABORT);
...@@ -1043,7 +1043,7 @@ void FFmpegDemuxer::Stop() { ...@@ -1043,7 +1043,7 @@ void FFmpegDemuxer::Stop() {
void FFmpegDemuxer::StartWaitingForSeek(base::TimeDelta seek_time) {} void FFmpegDemuxer::StartWaitingForSeek(base::TimeDelta seek_time) {}
void FFmpegDemuxer::CancelPendingSeek(base::TimeDelta seek_time) { void FFmpegDemuxer::CancelPendingSeek(base::TimeDelta seek_time) {
if (task_runner_->BelongsToCurrentThread()) { if (task_runner_->RunsTasksInCurrentSequence()) {
AbortPendingReads(); AbortPendingReads();
} else { } else {
// Don't use GetWeakPtr() here since we are on the wrong thread. // Don't use GetWeakPtr() here since we are on the wrong thread.
...@@ -1054,7 +1054,7 @@ void FFmpegDemuxer::CancelPendingSeek(base::TimeDelta seek_time) { ...@@ -1054,7 +1054,7 @@ void FFmpegDemuxer::CancelPendingSeek(base::TimeDelta seek_time) {
} }
void FFmpegDemuxer::Seek(base::TimeDelta time, PipelineStatusCallback cb) { void FFmpegDemuxer::Seek(base::TimeDelta time, PipelineStatusCallback cb) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(!pending_seek_cb_); DCHECK(!pending_seek_cb_);
TRACE_EVENT_ASYNC_BEGIN0("media", "FFmpegDemuxer::Seek", this); TRACE_EVENT_ASYNC_BEGIN0("media", "FFmpegDemuxer::Seek", this);
pending_seek_cb_ = std::move(cb); pending_seek_cb_ = std::move(cb);
...@@ -1064,7 +1064,7 @@ void FFmpegDemuxer::Seek(base::TimeDelta time, PipelineStatusCallback cb) { ...@@ -1064,7 +1064,7 @@ void FFmpegDemuxer::Seek(base::TimeDelta time, PipelineStatusCallback cb) {
void FFmpegDemuxer::SeekInternal(base::TimeDelta time, void FFmpegDemuxer::SeekInternal(base::TimeDelta time,
base::OnceClosure seek_cb) { base::OnceClosure seek_cb) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
// FFmpeg requires seeks to be adjusted according to the lowest starting time. // FFmpeg requires seeks to be adjusted according to the lowest starting time.
// Since EnqueuePacket() rebased negative timestamps by the start time, we // Since EnqueuePacket() rebased negative timestamps by the start time, we
...@@ -1120,7 +1120,7 @@ base::Time FFmpegDemuxer::GetTimelineOffset() const { ...@@ -1120,7 +1120,7 @@ base::Time FFmpegDemuxer::GetTimelineOffset() const {
} }
std::vector<DemuxerStream*> FFmpegDemuxer::GetAllStreams() { std::vector<DemuxerStream*> FFmpegDemuxer::GetAllStreams() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
std::vector<DemuxerStream*> result; std::vector<DemuxerStream*> result;
// Put enabled streams at the beginning of the list so that // Put enabled streams at the beginning of the list so that
// MediaResource::GetFirstStream returns the enabled stream if there is one. // MediaResource::GetFirstStream returns the enabled stream if there is one.
...@@ -1174,12 +1174,12 @@ void FFmpegDemuxer::OnEncryptedMediaInitData( ...@@ -1174,12 +1174,12 @@ void FFmpegDemuxer::OnEncryptedMediaInitData(
} }
void FFmpegDemuxer::NotifyCapacityAvailable() { void FFmpegDemuxer::NotifyCapacityAvailable() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
ReadFrameIfNeeded(); ReadFrameIfNeeded();
} }
void FFmpegDemuxer::NotifyBufferingChanged() { void FFmpegDemuxer::NotifyBufferingChanged() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
Ranges<base::TimeDelta> buffered; Ranges<base::TimeDelta> buffered;
bool initialized_buffered_ranges = false; bool initialized_buffered_ranges = false;
for (const auto& stream : streams_) { for (const auto& stream : streams_) {
...@@ -1226,7 +1226,7 @@ static int CalculateBitrate(AVFormatContext* format_context, ...@@ -1226,7 +1226,7 @@ static int CalculateBitrate(AVFormatContext* format_context,
} }
void FFmpegDemuxer::OnOpenContextDone(bool result) { void FFmpegDemuxer::OnOpenContextDone(bool result) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
if (stopped_) { if (stopped_) {
MEDIA_LOG(ERROR, media_log_) << GetDisplayName() << ": bad state"; MEDIA_LOG(ERROR, media_log_) << GetDisplayName() << ": bad state";
RunInitCB(PIPELINE_ERROR_ABORT); RunInitCB(PIPELINE_ERROR_ABORT);
...@@ -1258,7 +1258,7 @@ void FFmpegDemuxer::OnOpenContextDone(bool result) { ...@@ -1258,7 +1258,7 @@ void FFmpegDemuxer::OnOpenContextDone(bool result) {
} }
void FFmpegDemuxer::OnFindStreamInfoDone(int result) { void FFmpegDemuxer::OnFindStreamInfoDone(int result) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
if (stopped_ || !data_source_) { if (stopped_ || !data_source_) {
MEDIA_LOG(ERROR, media_log_) << GetDisplayName() << ": bad state"; MEDIA_LOG(ERROR, media_log_) << GetDisplayName() << ": bad state";
RunInitCB(PIPELINE_ERROR_ABORT); RunInitCB(PIPELINE_ERROR_ABORT);
...@@ -1640,7 +1640,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindPreferredStreamForSeeking( ...@@ -1640,7 +1640,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindPreferredStreamForSeeking(
} }
void FFmpegDemuxer::OnSeekFrameSuccess() { void FFmpegDemuxer::OnSeekFrameSuccess() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(pending_seek_cb_); DCHECK(pending_seek_cb_);
if (stopped_) { if (stopped_) {
...@@ -1667,7 +1667,7 @@ void FFmpegDemuxer::FindAndEnableProperTracks( ...@@ -1667,7 +1667,7 @@ void FFmpegDemuxer::FindAndEnableProperTracks(
base::TimeDelta curr_time, base::TimeDelta curr_time,
DemuxerStream::Type track_type, DemuxerStream::Type track_type,
TrackChangeCB change_completed_cb) { TrackChangeCB change_completed_cb) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
std::set<FFmpegDemuxerStream*> enabled_streams; std::set<FFmpegDemuxerStream*> enabled_streams;
for (const auto& id : track_ids) { for (const auto& id : track_ids) {
...@@ -1752,7 +1752,7 @@ void FFmpegDemuxer::OnSelectedVideoTrackChanged( ...@@ -1752,7 +1752,7 @@ void FFmpegDemuxer::OnSelectedVideoTrackChanged(
} }
void FFmpegDemuxer::ReadFrameIfNeeded() { void FFmpegDemuxer::ReadFrameIfNeeded() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
// Make sure we have work to do before reading. // Make sure we have work to do before reading.
if (stopped_ || !StreamsHaveAvailableCapacity() || pending_read_ || if (stopped_ || !StreamsHaveAvailableCapacity() || pending_read_ ||
...@@ -1776,7 +1776,7 @@ void FFmpegDemuxer::ReadFrameIfNeeded() { ...@@ -1776,7 +1776,7 @@ void FFmpegDemuxer::ReadFrameIfNeeded() {
} }
void FFmpegDemuxer::OnReadFrameDone(ScopedAVPacket packet, int result) { void FFmpegDemuxer::OnReadFrameDone(ScopedAVPacket packet, int result) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(pending_read_); DCHECK(pending_read_);
pending_read_ = false; pending_read_ = false;
...@@ -1847,7 +1847,7 @@ void FFmpegDemuxer::OnReadFrameDone(ScopedAVPacket packet, int result) { ...@@ -1847,7 +1847,7 @@ void FFmpegDemuxer::OnReadFrameDone(ScopedAVPacket packet, int result) {
} }
bool FFmpegDemuxer::StreamsHaveAvailableCapacity() { bool FFmpegDemuxer::StreamsHaveAvailableCapacity() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
for (const auto& stream : streams_) { for (const auto& stream : streams_) {
if (stream && stream->IsEnabled() && stream->HasAvailableCapacity()) if (stream && stream->IsEnabled() && stream->HasAvailableCapacity())
return true; return true;
...@@ -1856,7 +1856,7 @@ bool FFmpegDemuxer::StreamsHaveAvailableCapacity() { ...@@ -1856,7 +1856,7 @@ bool FFmpegDemuxer::StreamsHaveAvailableCapacity() {
} }
bool FFmpegDemuxer::IsMaxMemoryUsageReached() const { bool FFmpegDemuxer::IsMaxMemoryUsageReached() const {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
size_t memory_left = size_t memory_left =
GetDemuxerMemoryLimit(Demuxer::DemuxerTypes::kFFmpegDemuxer); GetDemuxerMemoryLimit(Demuxer::DemuxerTypes::kFFmpegDemuxer);
...@@ -1873,7 +1873,7 @@ bool FFmpegDemuxer::IsMaxMemoryUsageReached() const { ...@@ -1873,7 +1873,7 @@ bool FFmpegDemuxer::IsMaxMemoryUsageReached() const {
} }
void FFmpegDemuxer::StreamHasEnded() { void FFmpegDemuxer::StreamHasEnded() {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
for (const auto& stream : streams_) { for (const auto& stream : streams_) {
if (stream) if (stream)
stream->SetEndOfStream(); stream->SetEndOfStream();
...@@ -1892,7 +1892,7 @@ void FFmpegDemuxer::NotifyDemuxerError(PipelineStatus status) { ...@@ -1892,7 +1892,7 @@ void FFmpegDemuxer::NotifyDemuxerError(PipelineStatus status) {
} }
void FFmpegDemuxer::SetLiveness(DemuxerStream::Liveness liveness) { void FFmpegDemuxer::SetLiveness(DemuxerStream::Liveness liveness) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
for (const auto& stream : streams_) { for (const auto& stream : streams_) {
if (stream) if (stream)
stream->SetLiveness(liveness); stream->SetLiveness(liveness);
...@@ -1900,7 +1900,7 @@ void FFmpegDemuxer::SetLiveness(DemuxerStream::Liveness liveness) { ...@@ -1900,7 +1900,7 @@ void FFmpegDemuxer::SetLiveness(DemuxerStream::Liveness liveness) {
} }
void FFmpegDemuxer::RunInitCB(PipelineStatus status) { void FFmpegDemuxer::RunInitCB(PipelineStatus status) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(init_cb_); DCHECK(init_cb_);
TRACE_EVENT_ASYNC_END1("media", "FFmpegDemuxer::Initialize", this, "status", TRACE_EVENT_ASYNC_END1("media", "FFmpegDemuxer::Initialize", this, "status",
PipelineStatusToString(status)); PipelineStatusToString(status));
...@@ -1908,7 +1908,7 @@ void FFmpegDemuxer::RunInitCB(PipelineStatus status) { ...@@ -1908,7 +1908,7 @@ void FFmpegDemuxer::RunInitCB(PipelineStatus status) {
} }
void FFmpegDemuxer::RunPendingSeekCB(PipelineStatus status) { void FFmpegDemuxer::RunPendingSeekCB(PipelineStatus status) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(pending_seek_cb_); DCHECK(pending_seek_cb_);
TRACE_EVENT_ASYNC_END1("media", "FFmpegDemuxer::Seek", this, "status", TRACE_EVENT_ASYNC_END1("media", "FFmpegDemuxer::Seek", this, "status",
PipelineStatusToString(status)); PipelineStatusToString(status));
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/sequenced_task_runner.h" #include "base/sequenced_task_runner.h"
#include "base/single_thread_task_runner.h"
#include "media/base/audio_decoder_config.h" #include "media/base/audio_decoder_config.h"
#include "media/base/decoder_buffer.h" #include "media/base/decoder_buffer.h"
#include "media/base/decoder_buffer_queue.h" #include "media/base/decoder_buffer_queue.h"
...@@ -173,7 +172,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream { ...@@ -173,7 +172,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream {
void InitBitstreamConverter(); void InitBitstreamConverter();
FFmpegDemuxer* demuxer_; FFmpegDemuxer* demuxer_;
scoped_refptr<base::SingleThreadTaskRunner> task_runner_; scoped_refptr<base::SequencedTaskRunner> task_runner_;
AVStream* stream_; AVStream* stream_;
base::TimeDelta start_time_; base::TimeDelta start_time_;
std::unique_ptr<AudioDecoderConfig> audio_config_; std::unique_ptr<AudioDecoderConfig> audio_config_;
...@@ -210,7 +209,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream { ...@@ -210,7 +209,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream {
class MEDIA_EXPORT FFmpegDemuxer : public Demuxer { class MEDIA_EXPORT FFmpegDemuxer : public Demuxer {
public: public:
FFmpegDemuxer(const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, FFmpegDemuxer(const scoped_refptr<base::SequencedTaskRunner>& task_runner,
DataSource* data_source, DataSource* data_source,
const EncryptedMediaInitDataCB& encrypted_media_init_data_cb, const EncryptedMediaInitDataCB& encrypted_media_init_data_cb,
MediaTracksUpdatedCB media_tracks_updated_cb, MediaTracksUpdatedCB media_tracks_updated_cb,
...@@ -342,7 +341,7 @@ class MEDIA_EXPORT FFmpegDemuxer : public Demuxer { ...@@ -342,7 +341,7 @@ class MEDIA_EXPORT FFmpegDemuxer : public Demuxer {
DemuxerHost* host_ = nullptr; DemuxerHost* host_ = nullptr;
scoped_refptr<base::SingleThreadTaskRunner> task_runner_; scoped_refptr<base::SequencedTaskRunner> task_runner_;
// Task runner on which all blocking FFmpeg operations are executed; retrieved // Task runner on which all blocking FFmpeg operations are executed; retrieved
// from base::ThreadPoolInstance. // from base::ThreadPoolInstance.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment