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

Unified Diff: media/gpu/avda_codec_image.cc

Issue 2461073002: Use MediaCodec.setOutputSurface() for fullscreen transitions on M. (Closed)
Patch Set: Simplify APIs. Created 4 years, 1 month 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: media/gpu/avda_codec_image.cc
diff --git a/media/gpu/avda_codec_image.cc b/media/gpu/avda_codec_image.cc
index 3a28736e2423d09d703c77ddad3cf08d22ef9fa5..fb19d6190db8b330fc13e374b397181cee1c2be1 100644
--- a/media/gpu/avda_codec_image.cc
+++ b/media/gpu/avda_codec_image.cc
@@ -19,7 +19,6 @@
namespace media {
AVDACodecImage::AVDACodecImage(
- int picture_buffer_id,
const scoped_refptr<AVDASharedState>& shared_state,
VideoCodecBridge* codec,
const base::WeakPtr<gpu::gles2::GLES2Decoder>& decoder)
@@ -27,15 +26,10 @@ AVDACodecImage::AVDACodecImage(
codec_buffer_index_(kInvalidCodecBufferIndex),
media_codec_(codec),
decoder_(decoder),
- has_surface_texture_(!!shared_state_->surface_texture_service_id()),
- texture_(0),
- picture_buffer_id_(picture_buffer_id) {
- shared_state_->SetImageForPicture(picture_buffer_id_, this);
-}
+ has_surface_texture_(false),
+ texture_(0) {}
-AVDACodecImage::~AVDACodecImage() {
- shared_state_->SetImageForPicture(picture_buffer_id_, nullptr);
-}
+AVDACodecImage::~AVDACodecImage() {}
gfx::Size AVDACodecImage::GetSize() {
return size_;
@@ -58,13 +52,13 @@ bool AVDACodecImage::CopyTexImage(unsigned target) {
if (target != GL_TEXTURE_EXTERNAL_OES)
return false;
- GLint bound_service_id = 0;
- glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, &bound_service_id);
- // We insist that the currently bound texture is the right one.
- if (bound_service_id !=
- static_cast<GLint>(shared_state_->surface_texture_service_id())) {
- return false;
- }
+ // GLint bound_service_id = 0;
liberato (no reviews please) 2016/11/03 20:51:04 now that we're swapping out |shared_state_| when s
DaleCurtis 2016/11/04 01:07:22 Just left over testing. Removed.
+ // glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, &bound_service_id);
+ // // We insist that the currently bound texture is the right one.
+ // if (bound_service_id !=
+ // static_cast<GLint>(shared_state_->surface_texture_service_id())) {
+ // return false;
+ // }
// Make sure that we have the right image in the front buffer. Note that the
// bound_service_id is guaranteed to be equal to the surface texture's client
@@ -141,6 +135,22 @@ void AVDACodecImage::CodecChanged(MediaCodecBridge* codec) {
codec_buffer_index_ = kInvalidCodecBufferIndex;
}
+void AVDACodecImage::SetBufferMetadata(int buffer_index,
+ bool has_surface_texture,
+ const gfx::Size size) {
+ has_surface_texture_ = has_surface_texture;
+ codec_buffer_index_ = buffer_index;
+ size_ = size;
+}
+
+bool AVDACodecImage::SetSharedState(
+ const scoped_refptr<AVDASharedState>& shared_state) {
+ if (shared_state == shared_state_)
+ return false;
+ shared_state_ = shared_state;
+ return true;
+}
+
void AVDACodecImage::UpdateSurfaceInternal(
UpdateMode update_mode,
RestoreBindingsMode attached_bindings_mode) {

Powered by Google App Engine
This is Rietveld 408576698