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

Unified Diff: media/gpu/avda_codec_image.cc

Issue 2461073002: Use MediaCodec.setOutputSurface() for fullscreen transitions on M. (Closed)
Patch Set: Fix IPC, but now everything explodes :( Created 4 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 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 a192d0c207b4b42950ab9b481f2a05e67a0556ae..458bab5f0c76f23f34d129eeffdff1dae92951a9 100644
--- a/media/gpu/avda_codec_image.cc
+++ b/media/gpu/avda_codec_image.cc
@@ -27,7 +27,6 @@ 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);
@@ -54,7 +53,7 @@ bool AVDACodecImage::BindTexImage(unsigned target) {
void AVDACodecImage::ReleaseTexImage(unsigned target) {}
bool AVDACodecImage::CopyTexImage(unsigned target) {
- if (!has_surface_texture_)
+ if (!shared_state_->surface_texture_service_id())
return false;
if (target != GL_TEXTURE_EXTERNAL_OES)
@@ -96,7 +95,7 @@ bool AVDACodecImage::ScheduleOverlayPlane(gfx::AcceleratedWidget widget,
const gfx::Rect& bounds_rect,
const gfx::RectF& crop_rect) {
// This should only be called when we're rendering to a SurfaceView.
- if (has_surface_texture_) {
+ if (shared_state_->surface_texture_service_id()) {
DVLOG(1) << "Invalid call to ScheduleOverlayPlane; this image is "
"SurfaceTexture backed.";
return false;
@@ -111,7 +110,7 @@ void AVDACodecImage::OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd,
const std::string& dump_name) {}
void AVDACodecImage::UpdateSurfaceTexture(RestoreBindingsMode mode) {
- DCHECK(has_surface_texture_);
+ DCHECK(shared_state_->surface_texture_service_id());
DCHECK_EQ(codec_buffer_index_, kUpdateOnly);
codec_buffer_index_ = kRendered;
@@ -152,7 +151,7 @@ void AVDACodecImage::UpdateSurfaceInternal(
ReleaseOutputBuffer(update_mode);
// SurfaceViews are updated implicitly, so no further steps are necessary.
- if (!has_surface_texture_) {
+ if (!shared_state_->surface_texture_service_id()) {
DCHECK(update_mode != UpdateMode::RENDER_TO_BACK_BUFFER);
return;
}
@@ -181,7 +180,7 @@ void AVDACodecImage::ReleaseOutputBuffer(UpdateMode update_mode) {
DCHECK(update_mode == UpdateMode::RENDER_TO_BACK_BUFFER ||
update_mode == UpdateMode::RENDER_TO_FRONT_BUFFER);
- if (!has_surface_texture_) {
+ if (!shared_state_->surface_texture_service_id()) {
DCHECK(update_mode == UpdateMode::RENDER_TO_FRONT_BUFFER);
DCHECK_GE(codec_buffer_index_, 0);
media_codec_->ReleaseOutputBuffer(codec_buffer_index_, true);
@@ -192,7 +191,7 @@ void AVDACodecImage::ReleaseOutputBuffer(UpdateMode update_mode) {
// If we've already released to the back buffer, there's nothing left to do,
// but wait for the previously released buffer if necessary.
if (codec_buffer_index_ != kUpdateOnly) {
- DCHECK(has_surface_texture_);
+ DCHECK(shared_state_->surface_texture_service_id());
DCHECK_GE(codec_buffer_index_, 0);
shared_state_->RenderCodecBufferToSurfaceTexture(media_codec_,
codec_buffer_index_);
@@ -219,7 +218,7 @@ std::unique_ptr<ui::ScopedMakeCurrent> AVDACodecImage::MakeCurrentIfNeeded() {
void AVDACodecImage::GetTextureMatrix(float matrix[16]) {
// Our current matrix may be stale. Update it if possible.
- if (has_surface_texture_)
+ if (shared_state_->surface_texture_service_id())
UpdateSurface(UpdateMode::RENDER_TO_FRONT_BUFFER);
shared_state_->GetTransformMatrix(matrix);
YInvertMatrix(matrix);

Powered by Google App Engine
This is Rietveld 408576698