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

Side by Side Diff: content/common/gpu/media/gpu_video_decode_accelerator.cc

Issue 1872393002: Enable VAAPI accelerated decode on Linux Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing JPEG change 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 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 "content/common/gpu/media/gpu_video_decode_accelerator.h" 5 #include "content/common/gpu/media/gpu_video_decode_accelerator.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 } 50 }
51 51
52 if (!stub->decoder()->MakeCurrent()) { 52 if (!stub->decoder()->MakeCurrent()) {
53 DLOG(ERROR) << "Failed to MakeCurrent()"; 53 DLOG(ERROR) << "Failed to MakeCurrent()";
54 return false; 54 return false;
55 } 55 }
56 56
57 return true; 57 return true;
58 } 58 }
59 59
60 #if (defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX) 60 #if ((defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) ) || defined(OS_MACOSX)
61 static bool BindImage(const base::WeakPtr<gpu::GpuCommandBufferStub>& stub, 61 static bool BindImage(const base::WeakPtr<gpu::GpuCommandBufferStub>& stub,
62 uint32_t client_texture_id, 62 uint32_t client_texture_id,
63 uint32_t texture_target, 63 uint32_t texture_target,
64 const scoped_refptr<gl::GLImage>& image, 64 const scoped_refptr<gl::GLImage>& image,
65 bool can_bind_to_sampler) { 65 bool can_bind_to_sampler) {
66 if (!stub) { 66 if (!stub) {
67 DLOG(ERROR) << "Stub is gone; won't BindImage()."; 67 DLOG(ERROR) << "Stub is gone; won't BindImage().";
68 return false; 68 return false;
69 } 69 }
70 70
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 textures_per_buffer_(0), 162 textures_per_buffer_(0),
163 filter_removed_(true, false), 163 filter_removed_(true, false),
164 child_task_runner_(base::ThreadTaskRunnerHandle::Get()), 164 child_task_runner_(base::ThreadTaskRunnerHandle::Get()),
165 io_task_runner_(io_task_runner), 165 io_task_runner_(io_task_runner),
166 weak_factory_for_io_(this) { 166 weak_factory_for_io_(this) {
167 DCHECK(stub_); 167 DCHECK(stub_);
168 stub_->AddDestructionObserver(this); 168 stub_->AddDestructionObserver(this);
169 get_gl_context_cb_ = base::Bind(&GetGLContext, stub_->AsWeakPtr()); 169 get_gl_context_cb_ = base::Bind(&GetGLContext, stub_->AsWeakPtr());
170 make_context_current_cb_ = 170 make_context_current_cb_ =
171 base::Bind(&MakeDecoderContextCurrent, stub_->AsWeakPtr()); 171 base::Bind(&MakeDecoderContextCurrent, stub_->AsWeakPtr());
172 #if (defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX) 172 #if ((defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) ) || defined(OS_MACOSX)
173 bind_image_cb_ = base::Bind(&BindImage, stub_->AsWeakPtr()); 173 bind_image_cb_ = base::Bind(&BindImage, stub_->AsWeakPtr());
174 #endif 174 #endif
175 get_gles2_decoder_cb_ = base::Bind(&GetGLES2Decoder, stub_->AsWeakPtr()); 175 get_gles2_decoder_cb_ = base::Bind(&GetGLES2Decoder, stub_->AsWeakPtr());
176 } 176 }
177 177
178 GpuVideoDecodeAccelerator::~GpuVideoDecodeAccelerator() { 178 GpuVideoDecodeAccelerator::~GpuVideoDecodeAccelerator() {
179 // This class can only be self-deleted from OnWillDestroyStub(), which means 179 // This class can only be self-deleted from OnWillDestroyStub(), which means
180 // the VDA has already been destroyed in there. 180 // the VDA has already been destroyed in there.
181 DCHECK(!video_decode_accelerator_); 181 DCHECK(!video_decode_accelerator_);
182 } 182 }
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 GLenum target = texture_ref->texture()->target(); 515 GLenum target = texture_ref->texture()->target();
516 gpu::gles2::TextureManager* texture_manager = 516 gpu::gles2::TextureManager* texture_manager =
517 stub_->decoder()->GetContextGroup()->texture_manager(); 517 stub_->decoder()->GetContextGroup()->texture_manager();
518 DCHECK(!texture_ref->texture()->IsLevelCleared(target, 0)); 518 DCHECK(!texture_ref->texture()->IsLevelCleared(target, 0));
519 texture_manager->SetLevelCleared(texture_ref.get(), target, 0, true); 519 texture_manager->SetLevelCleared(texture_ref.get(), target, 0, true);
520 } 520 }
521 uncleared_textures_.erase(it); 521 uncleared_textures_.erase(it);
522 } 522 }
523 523
524 } // namespace content 524 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698