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

Unified Diff: content/common/gpu/media/android_video_decode_accelerator.cc

Issue 14932020: Add Create() function to AudioCodecBridge and VideoCodecBridge to allow return of null pointers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove dependency, remove target in another CL Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: content/common/gpu/media/android_video_decode_accelerator.cc
diff --git a/content/common/gpu/media/android_video_decode_accelerator.cc b/content/common/gpu/media/android_video_decode_accelerator.cc
index 15d9d44fdd560f5dd3a8d985386723480843728b..87a06f7eee9b5b16b357058f03b68aef5c7336ad 100644
--- a/content/common/gpu/media/android_video_decode_accelerator.cc
+++ b/content/common/gpu/media/android_video_decode_accelerator.cc
@@ -104,7 +104,10 @@ bool AndroidVideoDecodeAccelerator::Initialize(
surface_texture_ = new gfx::SurfaceTextureBridge(surface_texture_id_);
- ConfigureMediaCodec();
+ if (!ConfigureMediaCodec()) {
+ LOG(ERROR) << "Failed to create MediaCodec instance.";
+ return false;
+ }
base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(
&AndroidVideoDecodeAccelerator::NotifyInitializeDone,
@@ -376,10 +379,12 @@ void AndroidVideoDecodeAccelerator::Flush() {
Decode(media::BitstreamBuffer(-1, base::SharedMemoryHandle(), 0));
}
-void AndroidVideoDecodeAccelerator::ConfigureMediaCodec() {
+bool AndroidVideoDecodeAccelerator::ConfigureMediaCodec() {
DCHECK(surface_texture_.get());
+ media_codec_.reset(media::VideoCodecBridge::Create(codec_));
- media_codec_.reset(new media::VideoCodecBridge(codec_));
+ if (!media_codec_)
+ return false;
gfx::ScopedJavaSurface surface(surface_texture_.get());
// VDA does not pass the container indicated resolution in the initialization
@@ -388,6 +393,7 @@ void AndroidVideoDecodeAccelerator::ConfigureMediaCodec() {
media_codec_->Start(
codec_, gfx::Size(1280, 720), surface.j_surface().obj());
media_codec_->GetOutputBuffers();
+ return true;
}
void AndroidVideoDecodeAccelerator::Reset() {

Powered by Google App Engine
This is Rietveld 408576698