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

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

Issue 2815303006: Convert MediaLog from being ref counted to owned by WebMediaPlayer. (Closed)
Patch Set: Rebase. Created 3 years, 8 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.h ('k') | media/filters/chunk_demuxer_unittest.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "media/filters/chunk_demuxer.h" 5 #include "media/filters/chunk_demuxer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 } 179 }
180 180
181 void ChunkDemuxerStream::OnStartOfCodedFrameGroup( 181 void ChunkDemuxerStream::OnStartOfCodedFrameGroup(
182 DecodeTimestamp start_timestamp) { 182 DecodeTimestamp start_timestamp) {
183 DVLOG(2) << "ChunkDemuxerStream::OnStartOfCodedFrameGroup(" 183 DVLOG(2) << "ChunkDemuxerStream::OnStartOfCodedFrameGroup("
184 << start_timestamp.InSecondsF() << ")"; 184 << start_timestamp.InSecondsF() << ")";
185 base::AutoLock auto_lock(lock_); 185 base::AutoLock auto_lock(lock_);
186 stream_->OnStartOfCodedFrameGroup(start_timestamp); 186 stream_->OnStartOfCodedFrameGroup(start_timestamp);
187 } 187 }
188 188
189 bool ChunkDemuxerStream::UpdateAudioConfig( 189 bool ChunkDemuxerStream::UpdateAudioConfig(const AudioDecoderConfig& config,
190 const AudioDecoderConfig& config, 190 MediaLog* media_log) {
191 const scoped_refptr<MediaLog>& media_log) {
192 DCHECK(config.IsValidConfig()); 191 DCHECK(config.IsValidConfig());
193 DCHECK_EQ(type_, AUDIO); 192 DCHECK_EQ(type_, AUDIO);
194 base::AutoLock auto_lock(lock_); 193 base::AutoLock auto_lock(lock_);
195 if (!stream_) { 194 if (!stream_) {
196 DCHECK_EQ(state_, UNINITIALIZED); 195 DCHECK_EQ(state_, UNINITIALIZED);
197 196
198 // Enable partial append window support for most audio codecs (notably: not 197 // Enable partial append window support for most audio codecs (notably: not
199 // opus). 198 // opus).
200 partial_append_window_trimming_enabled_ = config.codec() == kCodecMP3 || 199 partial_append_window_trimming_enabled_ = config.codec() == kCodecMP3 ||
201 config.codec() == kCodecAAC || 200 config.codec() == kCodecAAC ||
202 config.codec() == kCodecVorbis; 201 config.codec() == kCodecVorbis;
203 202
204 stream_.reset(new SourceBufferStream(config, media_log)); 203 stream_.reset(new SourceBufferStream(config, media_log));
205 return true; 204 return true;
206 } 205 }
207 206
208 return stream_->UpdateAudioConfig(config); 207 return stream_->UpdateAudioConfig(config);
209 } 208 }
210 209
211 bool ChunkDemuxerStream::UpdateVideoConfig( 210 bool ChunkDemuxerStream::UpdateVideoConfig(const VideoDecoderConfig& config,
212 const VideoDecoderConfig& config, 211 MediaLog* media_log) {
213 const scoped_refptr<MediaLog>& media_log) {
214 DCHECK(config.IsValidConfig()); 212 DCHECK(config.IsValidConfig());
215 DCHECK_EQ(type_, VIDEO); 213 DCHECK_EQ(type_, VIDEO);
216 base::AutoLock auto_lock(lock_); 214 base::AutoLock auto_lock(lock_);
217 215
218 if (!stream_) { 216 if (!stream_) {
219 DCHECK_EQ(state_, UNINITIALIZED); 217 DCHECK_EQ(state_, UNINITIALIZED);
220 stream_.reset(new SourceBufferStream(config, media_log)); 218 stream_.reset(new SourceBufferStream(config, media_log));
221 return true; 219 return true;
222 } 220 }
223 221
224 return stream_->UpdateVideoConfig(config); 222 return stream_->UpdateVideoConfig(config);
225 } 223 }
226 224
227 void ChunkDemuxerStream::UpdateTextConfig( 225 void ChunkDemuxerStream::UpdateTextConfig(const TextTrackConfig& config,
228 const TextTrackConfig& config, 226 MediaLog* media_log) {
229 const scoped_refptr<MediaLog>& media_log) {
230 DCHECK_EQ(type_, TEXT); 227 DCHECK_EQ(type_, TEXT);
231 base::AutoLock auto_lock(lock_); 228 base::AutoLock auto_lock(lock_);
232 DCHECK(!stream_); 229 DCHECK(!stream_);
233 DCHECK_EQ(state_, UNINITIALIZED); 230 DCHECK_EQ(state_, UNINITIALIZED);
234 stream_.reset(new SourceBufferStream(config, media_log)); 231 stream_.reset(new SourceBufferStream(config, media_log));
235 } 232 }
236 233
237 void ChunkDemuxerStream::MarkEndOfStream() { 234 void ChunkDemuxerStream::MarkEndOfStream() {
238 base::AutoLock auto_lock(lock_); 235 base::AutoLock auto_lock(lock_);
239 stream_->MarkEndOfStream(); 236 stream_->MarkEndOfStream();
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 DVLOG(2) << __func__ << ": returning kOk with EOS buffer, type " << type_; 392 DVLOG(2) << __func__ << ": returning kOk with EOS buffer, type " << type_;
396 break; 393 break;
397 } 394 }
398 395
399 base::ResetAndReturn(&read_cb_).Run(status, buffer); 396 base::ResetAndReturn(&read_cb_).Run(status, buffer);
400 } 397 }
401 398
402 ChunkDemuxer::ChunkDemuxer( 399 ChunkDemuxer::ChunkDemuxer(
403 const base::Closure& open_cb, 400 const base::Closure& open_cb,
404 const EncryptedMediaInitDataCB& encrypted_media_init_data_cb, 401 const EncryptedMediaInitDataCB& encrypted_media_init_data_cb,
405 const scoped_refptr<MediaLog>& media_log) 402 MediaLog* media_log)
406 : state_(WAITING_FOR_INIT), 403 : state_(WAITING_FOR_INIT),
407 cancel_next_seek_(false), 404 cancel_next_seek_(false),
408 host_(NULL), 405 host_(NULL),
409 open_cb_(open_cb), 406 open_cb_(open_cb),
410 encrypted_media_init_data_cb_(encrypted_media_init_data_cb), 407 encrypted_media_init_data_cb_(encrypted_media_init_data_cb),
411 enable_text_(false), 408 enable_text_(false),
412 media_log_(media_log), 409 media_log_(media_log),
413 duration_(kNoTimestamp), 410 duration_(kNoTimestamp),
414 user_specified_duration_(-1), 411 user_specified_duration_(-1),
415 liveness_(DemuxerStream::LIVENESS_UNKNOWN), 412 liveness_(DemuxerStream::LIVENESS_UNKNOWN),
(...skipping 934 matching lines...) Expand 10 before | Expand all | Expand 10 after
1350 } 1347 }
1351 1348
1352 void ChunkDemuxer::ShutdownAllStreams() { 1349 void ChunkDemuxer::ShutdownAllStreams() {
1353 for (auto itr = source_state_map_.begin(); itr != source_state_map_.end(); 1350 for (auto itr = source_state_map_.begin(); itr != source_state_map_.end();
1354 ++itr) { 1351 ++itr) {
1355 itr->second->Shutdown(); 1352 itr->second->Shutdown();
1356 } 1353 }
1357 } 1354 }
1358 1355
1359 } // namespace media 1356 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/chunk_demuxer.h ('k') | media/filters/chunk_demuxer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698