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

Side by Side Diff: content/common/gpu/media/android_video_decode_accelerator.cc

Issue 649533003: C++11 declares a type safe null pointer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed Presubmit errors Created 6 years, 2 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "content/common/gpu/media/android_video_decode_accelerator.h" 5 #include "content/common/gpu/media/android_video_decode_accelerator.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 return base::TimeDelta::FromMilliseconds(10); 62 return base::TimeDelta::FromMilliseconds(10);
63 } 63 }
64 64
65 static inline const base::TimeDelta NoWaitTimeOut() { 65 static inline const base::TimeDelta NoWaitTimeOut() {
66 return base::TimeDelta::FromMicroseconds(0); 66 return base::TimeDelta::FromMicroseconds(0);
67 } 67 }
68 68
69 AndroidVideoDecodeAccelerator::AndroidVideoDecodeAccelerator( 69 AndroidVideoDecodeAccelerator::AndroidVideoDecodeAccelerator(
70 const base::WeakPtr<gpu::gles2::GLES2Decoder> decoder, 70 const base::WeakPtr<gpu::gles2::GLES2Decoder> decoder,
71 const base::Callback<bool(void)>& make_context_current) 71 const base::Callback<bool(void)>& make_context_current)
72 : client_(NULL), 72 : client_(nullptr),
73 make_context_current_(make_context_current), 73 make_context_current_(make_context_current),
74 codec_(media::kCodecH264), 74 codec_(media::kCodecH264),
75 state_(NO_ERROR), 75 state_(NO_ERROR),
76 surface_texture_id_(0), 76 surface_texture_id_(0),
77 picturebuffers_requested_(false), 77 picturebuffers_requested_(false),
78 gl_decoder_(decoder), 78 gl_decoder_(decoder),
79 weak_this_factory_(this) {} 79 weak_this_factory_(this) {}
80 80
81 AndroidVideoDecodeAccelerator::~AndroidVideoDecodeAccelerator() { 81 AndroidVideoDecodeAccelerator::~AndroidVideoDecodeAccelerator() {
82 DCHECK(thread_checker_.CalledOnValidThread()); 82 DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 } 221 }
222 222
223 bool eos = false; 223 bool eos = false;
224 base::TimeDelta timestamp; 224 base::TimeDelta timestamp;
225 int32 buf_index = 0; 225 int32 buf_index = 0;
226 do { 226 do {
227 size_t offset = 0; 227 size_t offset = 0;
228 size_t size = 0; 228 size_t size = 0;
229 229
230 media::MediaCodecStatus status = media_codec_->DequeueOutputBuffer( 230 media::MediaCodecStatus status = media_codec_->DequeueOutputBuffer(
231 NoWaitTimeOut(), &buf_index, &offset, &size, &timestamp, &eos, NULL); 231 NoWaitTimeOut(), &buf_index, &offset, &size, &timestamp, &eos, nullptr);
232 switch (status) { 232 switch (status) {
233 case media::MEDIA_CODEC_DEQUEUE_OUTPUT_AGAIN_LATER: 233 case media::MEDIA_CODEC_DEQUEUE_OUTPUT_AGAIN_LATER:
234 case media::MEDIA_CODEC_ERROR: 234 case media::MEDIA_CODEC_ERROR:
235 return; 235 return;
236 236
237 case media::MEDIA_CODEC_OUTPUT_FORMAT_CHANGED: { 237 case media::MEDIA_CODEC_OUTPUT_FORMAT_CHANGED: {
238 int32 width, height; 238 int32 width, height;
239 media_codec_->GetOutputFormat(&width, &height); 239 media_codec_->GetOutputFormat(&width, &height);
240 240
241 if (!picturebuffers_requested_) { 241 if (!picturebuffers_requested_) {
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 451
452 bool AndroidVideoDecodeAccelerator::ConfigureMediaCodec() { 452 bool AndroidVideoDecodeAccelerator::ConfigureMediaCodec() {
453 DCHECK(thread_checker_.CalledOnValidThread()); 453 DCHECK(thread_checker_.CalledOnValidThread());
454 DCHECK(surface_texture_.get()); 454 DCHECK(surface_texture_.get());
455 455
456 gfx::ScopedJavaSurface surface(surface_texture_.get()); 456 gfx::ScopedJavaSurface surface(surface_texture_.get());
457 457
458 // Pass a dummy 320x240 canvas size and let the codec signal the real size 458 // Pass a dummy 320x240 canvas size and let the codec signal the real size
459 // when it's known from the bitstream. 459 // when it's known from the bitstream.
460 media_codec_.reset(media::VideoCodecBridge::CreateDecoder( 460 media_codec_.reset(media::VideoCodecBridge::CreateDecoder(
461 codec_, false, gfx::Size(320, 240), surface.j_surface().obj(), NULL)); 461 codec_, false, gfx::Size(320, 240), surface.j_surface().obj(), nullptr));
462 if (!media_codec_) 462 if (!media_codec_)
463 return false; 463 return false;
464 464
465 io_timer_.Start(FROM_HERE, 465 io_timer_.Start(FROM_HERE,
466 DecodePollDelay(), 466 DecodePollDelay(),
467 this, 467 this,
468 &AndroidVideoDecodeAccelerator::DoIOTask); 468 &AndroidVideoDecodeAccelerator::DoIOTask);
469 return true; 469 return true;
470 } 470 }
471 471
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 void AndroidVideoDecodeAccelerator::NotifyResetDone() { 553 void AndroidVideoDecodeAccelerator::NotifyResetDone() {
554 client_->NotifyResetDone(); 554 client_->NotifyResetDone();
555 } 555 }
556 556
557 void AndroidVideoDecodeAccelerator::NotifyError( 557 void AndroidVideoDecodeAccelerator::NotifyError(
558 media::VideoDecodeAccelerator::Error error) { 558 media::VideoDecodeAccelerator::Error error) {
559 client_->NotifyError(error); 559 client_->NotifyError(error);
560 } 560 }
561 561
562 } // namespace content 562 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698