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

Side by Side Diff: media/gpu/ipc/service/gpu_video_decode_accelerator.cc

Issue 2881553002: Add |texture_target_| and |pixel_format_| to media::PictureBuffer (Closed)
Patch Set: removed IPC changes Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "media/gpu/ipc/service/gpu_video_decode_accelerator.h" 5 #include "media/gpu/ipc/service/gpu_video_decode_accelerator.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 }; 155 };
156 156
157 GpuVideoDecodeAccelerator::GpuVideoDecodeAccelerator( 157 GpuVideoDecodeAccelerator::GpuVideoDecodeAccelerator(
158 int32_t host_route_id, 158 int32_t host_route_id,
159 gpu::GpuCommandBufferStub* stub, 159 gpu::GpuCommandBufferStub* stub,
160 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner, 160 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
161 const AndroidOverlayMojoFactoryCB& overlay_factory_cb) 161 const AndroidOverlayMojoFactoryCB& overlay_factory_cb)
162 : host_route_id_(host_route_id), 162 : host_route_id_(host_route_id),
163 stub_(stub), 163 stub_(stub),
164 texture_target_(0), 164 texture_target_(0),
165 pixel_format_(PIXEL_FORMAT_UNKNOWN),
165 textures_per_buffer_(0), 166 textures_per_buffer_(0),
166 filter_removed_(base::WaitableEvent::ResetPolicy::MANUAL, 167 filter_removed_(base::WaitableEvent::ResetPolicy::MANUAL,
167 base::WaitableEvent::InitialState::NOT_SIGNALED), 168 base::WaitableEvent::InitialState::NOT_SIGNALED),
168 child_task_runner_(base::ThreadTaskRunnerHandle::Get()), 169 child_task_runner_(base::ThreadTaskRunnerHandle::Get()),
169 io_task_runner_(io_task_runner), 170 io_task_runner_(io_task_runner),
170 overlay_factory_cb_(overlay_factory_cb), 171 overlay_factory_cb_(overlay_factory_cb),
171 weak_factory_for_io_(this) { 172 weak_factory_for_io_(this) {
172 DCHECK(stub_); 173 DCHECK(stub_);
173 stub_->AddDestructionObserver(this); 174 stub_->AddDestructionObserver(this);
174 get_gl_context_cb_ = base::Bind(&GetGLContext, stub_->AsWeakPtr()); 175 get_gl_context_cb_ = base::Bind(&GetGLContext, stub_->AsWeakPtr());
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 } 238 }
238 if (!Send(new AcceleratedVideoDecoderHostMsg_ProvidePictureBuffers( 239 if (!Send(new AcceleratedVideoDecoderHostMsg_ProvidePictureBuffers(
239 host_route_id_, requested_num_of_buffers, format, textures_per_buffer, 240 host_route_id_, requested_num_of_buffers, format, textures_per_buffer,
240 dimensions, texture_target))) { 241 dimensions, texture_target))) {
241 DLOG(ERROR) << "Send(AcceleratedVideoDecoderHostMsg_ProvidePictureBuffers) " 242 DLOG(ERROR) << "Send(AcceleratedVideoDecoderHostMsg_ProvidePictureBuffers) "
242 << "failed"; 243 << "failed";
243 } 244 }
244 texture_dimensions_ = dimensions; 245 texture_dimensions_ = dimensions;
245 textures_per_buffer_ = textures_per_buffer; 246 textures_per_buffer_ = textures_per_buffer;
246 texture_target_ = texture_target; 247 texture_target_ = texture_target;
248 pixel_format_ = format;
247 } 249 }
248 250
249 void GpuVideoDecodeAccelerator::DismissPictureBuffer( 251 void GpuVideoDecodeAccelerator::DismissPictureBuffer(
250 int32_t picture_buffer_id) { 252 int32_t picture_buffer_id) {
251 // Notify client that picture buffer is now unused. 253 // Notify client that picture buffer is now unused.
252 if (!Send(new AcceleratedVideoDecoderHostMsg_DismissPictureBuffer( 254 if (!Send(new AcceleratedVideoDecoderHostMsg_DismissPictureBuffer(
253 host_route_id_, picture_buffer_id))) { 255 host_route_id_, picture_buffer_id))) {
254 DLOG(ERROR) << "Send(AcceleratedVideoDecoderHostMsg_DismissPictureBuffer) " 256 DLOG(ERROR) << "Send(AcceleratedVideoDecoderHostMsg_DismissPictureBuffer) "
255 << "failed"; 257 << "failed";
256 } 258 }
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 texture_manager->SetLevelInfo(texture_ref, texture_target_, 0, format, 476 texture_manager->SetLevelInfo(texture_ref, texture_target_, 0, format,
475 width, height, 1, 0, format, 477 width, height, 1, 0, format,
476 GL_UNSIGNED_BYTE, gfx::Rect()); 478 GL_UNSIGNED_BYTE, gfx::Rect());
477 } 479 }
478 } 480 }
479 service_ids.push_back(texture_ref->service_id()); 481 service_ids.push_back(texture_ref->service_id());
480 current_textures.push_back(texture_ref); 482 current_textures.push_back(texture_ref);
481 } 483 }
482 textures.push_back(current_textures); 484 textures.push_back(current_textures);
483 buffers.push_back(PictureBuffer(buffer_ids[i], texture_dimensions_, 485 buffers.push_back(PictureBuffer(buffer_ids[i], texture_dimensions_,
484 buffer_texture_ids, service_ids)); 486 buffer_texture_ids, service_ids,
487 texture_target_, pixel_format_));
485 } 488 }
486 { 489 {
487 DebugAutoLock auto_lock(debug_uncleared_textures_lock_); 490 DebugAutoLock auto_lock(debug_uncleared_textures_lock_);
488 for (uint32_t i = 0; i < buffer_ids.size(); ++i) 491 for (uint32_t i = 0; i < buffer_ids.size(); ++i)
489 uncleared_textures_[buffer_ids[i]] = textures[i]; 492 uncleared_textures_[buffer_ids[i]] = textures[i];
490 } 493 }
491 video_decode_accelerator_->AssignPictureBuffers(buffers); 494 video_decode_accelerator_->AssignPictureBuffers(buffers);
492 } 495 }
493 496
494 void GpuVideoDecodeAccelerator::OnReusePictureBuffer( 497 void GpuVideoDecodeAccelerator::OnReusePictureBuffer(
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 for (auto texture_ref : it->second) { 538 for (auto texture_ref : it->second) {
536 GLenum target = texture_ref->texture()->target(); 539 GLenum target = texture_ref->texture()->target();
537 gpu::gles2::TextureManager* texture_manager = 540 gpu::gles2::TextureManager* texture_manager =
538 stub_->decoder()->GetContextGroup()->texture_manager(); 541 stub_->decoder()->GetContextGroup()->texture_manager();
539 texture_manager->SetLevelCleared(texture_ref.get(), target, 0, true); 542 texture_manager->SetLevelCleared(texture_ref.get(), target, 0, true);
540 } 543 }
541 uncleared_textures_.erase(it); 544 uncleared_textures_.erase(it);
542 } 545 }
543 546
544 } // namespace media 547 } // namespace media
OLDNEW
« no previous file with comments | « media/gpu/ipc/service/gpu_video_decode_accelerator.h ('k') | media/gpu/video_decode_accelerator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698