Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Side by Side Diff: media/filters/decoder_selector.cc

Issue 1544313002: Convert Pass()→std::move() in //media (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/filters/chunk_demuxer_unittest.cc ('k') | media/filters/decoder_stream.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "decoder_selector.h" 5 #include "media/filters/decoder_selector.h"
6
7 #include <utility>
6 8
7 #include "base/bind.h" 9 #include "base/bind.h"
8 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
9 #include "base/logging.h" 11 #include "base/logging.h"
10 #include "base/single_thread_task_runner.h" 12 #include "base/single_thread_task_runner.h"
11 #include "build/build_config.h" 13 #include "build/build_config.h"
12 #include "media/base/audio_decoder.h" 14 #include "media/base/audio_decoder.h"
13 #include "media/base/bind_to_current_loop.h" 15 #include "media/base/bind_to_current_loop.h"
14 #include "media/base/demuxer_stream.h" 16 #include "media/base/demuxer_stream.h"
15 #include "media/base/media_log.h" 17 #include "media/base/media_log.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 } 54 }
53 return false; 55 return false;
54 } 56 }
55 57
56 template <DemuxerStream::Type StreamType> 58 template <DemuxerStream::Type StreamType>
57 DecoderSelector<StreamType>::DecoderSelector( 59 DecoderSelector<StreamType>::DecoderSelector(
58 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, 60 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
59 ScopedVector<Decoder> decoders, 61 ScopedVector<Decoder> decoders,
60 const scoped_refptr<MediaLog>& media_log) 62 const scoped_refptr<MediaLog>& media_log)
61 : task_runner_(task_runner), 63 : task_runner_(task_runner),
62 decoders_(decoders.Pass()), 64 decoders_(std::move(decoders)),
63 media_log_(media_log), 65 media_log_(media_log),
64 input_stream_(nullptr), 66 input_stream_(nullptr),
65 weak_ptr_factory_(this) {} 67 weak_ptr_factory_(this) {}
66 68
67 template <DemuxerStream::Type StreamType> 69 template <DemuxerStream::Type StreamType>
68 DecoderSelector<StreamType>::~DecoderSelector() { 70 DecoderSelector<StreamType>::~DecoderSelector() {
69 DVLOG(2) << __FUNCTION__; 71 DVLOG(2) << __FUNCTION__;
70 DCHECK(task_runner_->BelongsToCurrentThread()); 72 DCHECK(task_runner_->BelongsToCurrentThread());
71 73
72 if (!select_decoder_cb_.is_null()) 74 if (!select_decoder_cb_.is_null())
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 output_cb_); 137 output_cb_);
136 } 138 }
137 139
138 template <DemuxerStream::Type StreamType> 140 template <DemuxerStream::Type StreamType>
139 void DecoderSelector<StreamType>::DecryptingDecoderInitDone(bool success) { 141 void DecoderSelector<StreamType>::DecryptingDecoderInitDone(bool success) {
140 DVLOG(2) << __FUNCTION__; 142 DVLOG(2) << __FUNCTION__;
141 DCHECK(task_runner_->BelongsToCurrentThread()); 143 DCHECK(task_runner_->BelongsToCurrentThread());
142 144
143 if (success) { 145 if (success) {
144 base::ResetAndReturn(&select_decoder_cb_) 146 base::ResetAndReturn(&select_decoder_cb_)
145 .Run(decoder_.Pass(), scoped_ptr<DecryptingDemuxerStream>()); 147 .Run(std::move(decoder_), scoped_ptr<DecryptingDemuxerStream>());
146 return; 148 return;
147 } 149 }
148 150
149 decoder_.reset(); 151 decoder_.reset();
150 152
151 // When we get here decrypt-and-decode is not supported. Try to use 153 // When we get here decrypt-and-decode is not supported. Try to use
152 // DecryptingDemuxerStream to do decrypt-only. 154 // DecryptingDemuxerStream to do decrypt-only.
153 InitializeDecryptingDemuxerStream(); 155 InitializeDecryptingDemuxerStream();
154 } 156 }
155 #endif // !defined(OS_ANDROID) 157 #endif // !defined(OS_ANDROID)
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 DVLOG(2) << __FUNCTION__; 215 DVLOG(2) << __FUNCTION__;
214 DCHECK(task_runner_->BelongsToCurrentThread()); 216 DCHECK(task_runner_->BelongsToCurrentThread());
215 217
216 if (!success) { 218 if (!success) {
217 decoder_.reset(); 219 decoder_.reset();
218 InitializeDecoder(); 220 InitializeDecoder();
219 return; 221 return;
220 } 222 }
221 223
222 base::ResetAndReturn(&select_decoder_cb_) 224 base::ResetAndReturn(&select_decoder_cb_)
223 .Run(decoder_.Pass(), decrypted_stream_.Pass()); 225 .Run(std::move(decoder_), std::move(decrypted_stream_));
224 } 226 }
225 227
226 template <DemuxerStream::Type StreamType> 228 template <DemuxerStream::Type StreamType>
227 void DecoderSelector<StreamType>::ReturnNullDecoder() { 229 void DecoderSelector<StreamType>::ReturnNullDecoder() {
228 DVLOG(2) << __FUNCTION__; 230 DVLOG(2) << __FUNCTION__;
229 DCHECK(task_runner_->BelongsToCurrentThread()); 231 DCHECK(task_runner_->BelongsToCurrentThread());
230 base::ResetAndReturn(&select_decoder_cb_) 232 base::ResetAndReturn(&select_decoder_cb_)
231 .Run(scoped_ptr<Decoder>(), 233 .Run(scoped_ptr<Decoder>(),
232 scoped_ptr<DecryptingDemuxerStream>()); 234 scoped_ptr<DecryptingDemuxerStream>());
233 } 235 }
234 236
235 // These forward declarations tell the compiler that we will use 237 // These forward declarations tell the compiler that we will use
236 // DecoderSelector with these arguments, allowing us to keep these definitions 238 // DecoderSelector with these arguments, allowing us to keep these definitions
237 // in our .cc without causing linker errors. This also means if anyone tries to 239 // in our .cc without causing linker errors. This also means if anyone tries to
238 // instantiate a DecoderSelector with anything but these two specializations 240 // instantiate a DecoderSelector with anything but these two specializations
239 // they'll most likely get linker errors. 241 // they'll most likely get linker errors.
240 template class DecoderSelector<DemuxerStream::AUDIO>; 242 template class DecoderSelector<DemuxerStream::AUDIO>;
241 template class DecoderSelector<DemuxerStream::VIDEO>; 243 template class DecoderSelector<DemuxerStream::VIDEO>;
242 244
243 } // namespace media 245 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/chunk_demuxer_unittest.cc ('k') | media/filters/decoder_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698