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

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

Issue 1910063005: Store AVDACodecImage list in shared state, cleanup callers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comment. Created 4 years, 8 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_deferred_rendering_backing_strategy.cc
diff --git a/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc b/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc
index 6be34608aae10845336654f356ccd74a1797acf3..77cdf7ee2bfef4e46a5aa874fb81b9a8729c02d9 100644
--- a/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc
+++ b/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc
@@ -119,16 +119,6 @@ gfx::Size AndroidDeferredRenderingBackingStrategy::GetPictureBufferSize()
return surface_texture_ ? state_provider_->GetSize() : gfx::Size(1, 1);
}
-AVDACodecImage* AndroidDeferredRenderingBackingStrategy::GetImageForPicture(
- const media::PictureBuffer& picture_buffer) {
- gpu::gles2::TextureRef* texture_ref =
- state_provider_->GetTextureForPicture(picture_buffer);
- RETURN_NULL_IF_NULL(texture_ref);
- gl::GLImage* image =
- texture_ref->texture()->GetLevelImage(GetTextureTarget(), 0);
- return static_cast<AVDACodecImage*>(image);
-}
-
void AndroidDeferredRenderingBackingStrategy::SetImageForPicture(
const media::PictureBuffer& picture_buffer,
const scoped_refptr<gpu::gles2::GLStreamTextureImage>& image) {
@@ -184,7 +174,8 @@ void AndroidDeferredRenderingBackingStrategy::UseCodecBufferForPictureBuffer(
// Notify the AVDACodecImage for picture_buffer that it should use the
// decoded buffer codec_buf_index to render this frame.
- AVDACodecImage* avda_image = GetImageForPicture(picture_buffer);
+ AVDACodecImage* avda_image =
+ shared_state_->GetImageForPicture(picture_buffer.id());
RETURN_IF_NULL(avda_image);
DCHECK_EQ(avda_image->GetMediaCodecBufferIndex(), -1);
// Note that this is not a race, since we do not re-use a PictureBuffer
@@ -199,7 +190,7 @@ void AndroidDeferredRenderingBackingStrategy::AssignOnePictureBuffer(
// Attach a GLImage to each texture that will use the surface texture.
// We use a refptr here in case SetImageForPicture fails.
scoped_refptr<gpu::gles2::GLStreamTextureImage> gl_image =
- new AVDACodecImage(shared_state_, media_codec_,
+ new AVDACodecImage(picture_buffer.id(), shared_state_, media_codec_,
state_provider_->GetGlDecoder(), surface_texture_);
SetImageForPicture(picture_buffer, gl_image);
@@ -222,7 +213,9 @@ void AndroidDeferredRenderingBackingStrategy::AssignOnePictureBuffer(
void AndroidDeferredRenderingBackingStrategy::ReleaseCodecBufferForPicture(
const media::PictureBuffer& picture_buffer) {
- AVDACodecImage* avda_image = GetImageForPicture(picture_buffer);
+ AVDACodecImage* avda_image =
+ shared_state_->GetImageForPicture(picture_buffer.id());
+ RETURN_IF_NULL(avda_image);
// See if there is a media codec buffer still attached to this image.
const int32_t codec_buffer = avda_image->GetMediaCodecBufferIndex();
@@ -244,16 +237,9 @@ void AndroidDeferredRenderingBackingStrategy::ReuseOnePictureBuffer(
}
void AndroidDeferredRenderingBackingStrategy::CodecChanged(
- media::VideoCodecBridge* codec,
- const AndroidVideoDecodeAccelerator::OutputBufferMap& buffers) {
- // Clear any outstanding codec buffer indices, since the new codec (if any)
- // doesn't know about them.
+ media::VideoCodecBridge* codec) {
media_codec_ = codec;
- for (const std::pair<int, media::PictureBuffer>& entry : buffers) {
- AVDACodecImage* avda_image = GetImageForPicture(entry.second);
- avda_image->SetMediaCodec(codec);
- avda_image->SetMediaCodecBufferIndex(-1);
- }
+ shared_state_->CodecChanged(codec);
}
void AndroidDeferredRenderingBackingStrategy::OnFrameAvailable() {
@@ -303,8 +289,6 @@ void AndroidDeferredRenderingBackingStrategy::CopySurfaceTextureToPictures(
GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
}
-
-
float transform_matrix[16];
surface_texture_->GetTransformMatrix(transform_matrix);

Powered by Google App Engine
This is Rietveld 408576698