OLD | NEW |
---|---|
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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/cpu.h" | |
6 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
7 #include "base/logging.h" | 8 #include "base/logging.h" |
8 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
9 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
10 #include "base/strings/string_util.h" | 11 #include "base/strings/string_util.h" |
11 #include "base/synchronization/waitable_event.h" | 12 #include "base/synchronization/waitable_event.h" |
12 #include "base/threading/non_thread_safe.h" | 13 #include "base/threading/non_thread_safe.h" |
13 #include "content/common/gpu/gpu_channel.h" | 14 #include "content/common/gpu/gpu_channel.h" |
14 #include "content/common/gpu/media/vaapi_video_decode_accelerator.h" | 15 #include "content/common/gpu/media/vaapi_video_decode_accelerator.h" |
15 #include "media/base/bind_to_current_loop.h" | 16 #include "media/base/bind_to_current_loop.h" |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
244 weak_this_factory_(this) { | 245 weak_this_factory_(this) { |
245 weak_this_ = weak_this_factory_.GetWeakPtr(); | 246 weak_this_ = weak_this_factory_.GetWeakPtr(); |
246 va_surface_release_cb_ = media::BindToCurrentLoop( | 247 va_surface_release_cb_ = media::BindToCurrentLoop( |
247 base::Bind(&VaapiVideoDecodeAccelerator::RecycleVASurfaceID, weak_this_)); | 248 base::Bind(&VaapiVideoDecodeAccelerator::RecycleVASurfaceID, weak_this_)); |
248 } | 249 } |
249 | 250 |
250 VaapiVideoDecodeAccelerator::~VaapiVideoDecodeAccelerator() { | 251 VaapiVideoDecodeAccelerator::~VaapiVideoDecodeAccelerator() { |
251 DCHECK_EQ(message_loop_, base::MessageLoop::current()); | 252 DCHECK_EQ(message_loop_, base::MessageLoop::current()); |
252 } | 253 } |
253 | 254 |
255 // static | |
256 media::VideoDecodeAccelerator::SupportedResolution | |
wuchengli
2014/12/26 09:37:07
Move this to match the order in the header file.
henryhsu
2014/12/26 10:25:18
Done.
| |
257 VaapiVideoDecodeAccelerator::GetSupportedResolution() { | |
258 media::VideoDecodeAccelerator::SupportedResolution resolution; | |
259 resolution.min.SetSize(16, 16); | |
260 base::CPU cpu; | |
261 // Ivy Bridge+ platforms can support more than 1920x1080. | |
262 if ((cpu.vendor_name() == "GenuineIntel") && cpu.model() >= 55) | |
263 resolution.max.SetSize(4096, 2160); | |
264 else | |
265 resolution.max.SetSize(1920, 1088); | |
266 return resolution; | |
267 } | |
268 | |
254 class XFreeDeleter { | 269 class XFreeDeleter { |
255 public: | 270 public: |
256 void operator()(void* x) const { | 271 void operator()(void* x) const { |
257 ::XFree(x); | 272 ::XFree(x); |
258 } | 273 } |
259 }; | 274 }; |
260 | 275 |
261 bool VaapiVideoDecodeAccelerator::InitializeFBConfig() { | 276 bool VaapiVideoDecodeAccelerator::InitializeFBConfig() { |
262 const int fbconfig_attr[] = { | 277 const int fbconfig_attr[] = { |
263 GLX_DRAWABLE_TYPE, GLX_PIXMAP_BIT, | 278 GLX_DRAWABLE_TYPE, GLX_PIXMAP_BIT, |
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
917 DCHECK_EQ(message_loop_, base::MessageLoop::current()); | 932 DCHECK_EQ(message_loop_, base::MessageLoop::current()); |
918 Cleanup(); | 933 Cleanup(); |
919 delete this; | 934 delete this; |
920 } | 935 } |
921 | 936 |
922 bool VaapiVideoDecodeAccelerator::CanDecodeOnIOThread() { | 937 bool VaapiVideoDecodeAccelerator::CanDecodeOnIOThread() { |
923 return false; | 938 return false; |
924 } | 939 } |
925 | 940 |
926 } // namespace content | 941 } // namespace content |
OLD | NEW |