| OLD | NEW |
| 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 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 // 1. Once we call detachFrameGLContext(), it deletes the texture previous | 353 // 1. Once we call detachFrameGLContext(), it deletes the texture previous |
| 354 // attached. | 354 // attached. |
| 355 // 2. SurfaceTexture requires us to apply a transform matrix when we show | 355 // 2. SurfaceTexture requires us to apply a transform matrix when we show |
| 356 // the texture. | 356 // the texture. |
| 357 // TODO(hkuang): get the StreamTexture transform matrix in GPU process | 357 // TODO(hkuang): get the StreamTexture transform matrix in GPU process |
| 358 // instead of using default matrix crbug.com/226218. | 358 // instead of using default matrix crbug.com/226218. |
| 359 const static GLfloat default_matrix[16] = {1.0f, 0.0f, 0.0f, 0.0f, | 359 const static GLfloat default_matrix[16] = {1.0f, 0.0f, 0.0f, 0.0f, |
| 360 0.0f, 1.0f, 0.0f, 0.0f, | 360 0.0f, 1.0f, 0.0f, 0.0f, |
| 361 0.0f, 0.0f, 1.0f, 0.0f, | 361 0.0f, 0.0f, 1.0f, 0.0f, |
| 362 0.0f, 0.0f, 0.0f, 1.0f}; | 362 0.0f, 0.0f, 0.0f, 1.0f}; |
| 363 copier_->DoCopyTextureWithTransform(gl_decoder_.get(), | 363 copier_->DoCopyTextureWithTransform( |
| 364 GL_TEXTURE_EXTERNAL_OES, | 364 gl_decoder_.get(), GL_TEXTURE_EXTERNAL_OES, surface_texture_id_, |
| 365 surface_texture_id_, | 365 GL_TEXTURE_2D, picture_buffer_texture_id, GL_RGBA, GL_UNSIGNED_BYTE, |
| 366 picture_buffer_texture_id, | 366 size_.width(), size_.height(), false, false, false, true, default_matrix); |
| 367 size_.width(), | |
| 368 size_.height(), | |
| 369 false, | |
| 370 false, | |
| 371 false, | |
| 372 default_matrix); | |
| 373 | 367 |
| 374 base::MessageLoop::current()->PostTask( | 368 base::MessageLoop::current()->PostTask( |
| 375 FROM_HERE, base::Bind(&AndroidVideoDecodeAccelerator::NotifyPictureReady, | 369 FROM_HERE, base::Bind(&AndroidVideoDecodeAccelerator::NotifyPictureReady, |
| 376 weak_this_factory_.GetWeakPtr(), | 370 weak_this_factory_.GetWeakPtr(), |
| 377 media::Picture(picture_buffer_id, bitstream_id, | 371 media::Picture(picture_buffer_id, bitstream_id, |
| 378 gfx::Rect(size_), false))); | 372 gfx::Rect(size_), false))); |
| 379 } | 373 } |
| 380 | 374 |
| 381 void AndroidVideoDecodeAccelerator::Decode( | 375 void AndroidVideoDecodeAccelerator::Decode( |
| 382 const media::BitstreamBuffer& bitstream_buffer) { | 376 const media::BitstreamBuffer& bitstream_buffer) { |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 564 } | 558 } |
| 565 SupportedProfile profile; | 559 SupportedProfile profile; |
| 566 profile.profile = media::VP8PROFILE_ANY; | 560 profile.profile = media::VP8PROFILE_ANY; |
| 567 profile.min_resolution.SetSize(16, 16); | 561 profile.min_resolution.SetSize(16, 16); |
| 568 profile.max_resolution.SetSize(1920, 1088); | 562 profile.max_resolution.SetSize(1920, 1088); |
| 569 profiles.push_back(profile); | 563 profiles.push_back(profile); |
| 570 return profiles; | 564 return profiles; |
| 571 } | 565 } |
| 572 | 566 |
| 573 } // namespace content | 567 } // namespace content |
| OLD | NEW |