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

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

Issue 11929015: Tighten up media::DecoderBuffer API contract for end of stream buffers (round 2). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixes Created 7 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « media/filters/decrypting_audio_decoder.cc ('k') | media/filters/ffmpeg_audio_decoder.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/decrypting_video_decoder.h" 5 #include "media/filters/decrypting_video_decoder.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 pending_buffer_to_decode_ = buffer; 280 pending_buffer_to_decode_ = buffer;
281 state_ = kPendingDecode; 281 state_ = kPendingDecode;
282 DecodePendingBuffer(); 282 DecodePendingBuffer();
283 } 283 }
284 284
285 void DecryptingVideoDecoder::DecodePendingBuffer() { 285 void DecryptingVideoDecoder::DecodePendingBuffer() {
286 DCHECK(message_loop_->BelongsToCurrentThread()); 286 DCHECK(message_loop_->BelongsToCurrentThread());
287 DCHECK_EQ(state_, kPendingDecode) << state_; 287 DCHECK_EQ(state_, kPendingDecode) << state_;
288 TRACE_EVENT_ASYNC_BEGIN0( 288 TRACE_EVENT_ASYNC_BEGIN0(
289 "eme", "DecryptingVideoDecoder::DecodePendingBuffer", ++trace_id_); 289 "eme", "DecryptingVideoDecoder::DecodePendingBuffer", ++trace_id_);
290
291 int buffer_size = 0;
292 if (!pending_buffer_to_decode_->IsEndOfStream()) {
293 buffer_size = pending_buffer_to_decode_->GetDataSize();
294 }
295
290 decryptor_->DecryptAndDecodeVideo( 296 decryptor_->DecryptAndDecodeVideo(
291 pending_buffer_to_decode_, BindToCurrentLoop(base::Bind( 297 pending_buffer_to_decode_, BindToCurrentLoop(base::Bind(
292 &DecryptingVideoDecoder::DeliverFrame, this, 298 &DecryptingVideoDecoder::DeliverFrame, this, buffer_size)));
293 pending_buffer_to_decode_->GetDataSize())));
294 } 299 }
295 300
296 void DecryptingVideoDecoder::DeliverFrame( 301 void DecryptingVideoDecoder::DeliverFrame(
297 int buffer_size, 302 int buffer_size,
298 Decryptor::Status status, 303 Decryptor::Status status,
299 const scoped_refptr<VideoFrame>& frame) { 304 const scoped_refptr<VideoFrame>& frame) {
300 DVLOG(3) << "DeliverFrame() - status: " << status; 305 DVLOG(3) << "DeliverFrame() - status: " << status;
301 DCHECK(message_loop_->BelongsToCurrentThread()); 306 DCHECK(message_loop_->BelongsToCurrentThread());
302 TRACE_EVENT_ASYNC_END0( 307 TRACE_EVENT_ASYNC_END0(
303 "eme", "DecryptingVideoDecoder::DecodePendingBuffer", trace_id_); 308 "eme", "DecryptingVideoDecoder::DecodePendingBuffer", trace_id_);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 } 396 }
392 397
393 void DecryptingVideoDecoder::DoReset() { 398 void DecryptingVideoDecoder::DoReset() {
394 DCHECK(init_cb_.is_null()); 399 DCHECK(init_cb_.is_null());
395 DCHECK(read_cb_.is_null()); 400 DCHECK(read_cb_.is_null());
396 state_ = kIdle; 401 state_ = kIdle;
397 base::ResetAndReturn(&reset_cb_).Run(); 402 base::ResetAndReturn(&reset_cb_).Run();
398 } 403 }
399 404
400 } // namespace media 405 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/decrypting_audio_decoder.cc ('k') | media/filters/ffmpeg_audio_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698