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

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

Issue 490233002: VaapiVideoAccelerator: make Vaapi accelerator work with ozone (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Enable vaapi_h264_decoder_unittest on Ozone Created 6 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: content/common/gpu/media/video_decode_accelerator_unittest.cc
diff --git a/content/common/gpu/media/video_decode_accelerator_unittest.cc b/content/common/gpu/media/video_decode_accelerator_unittest.cc
index 8b89d049b9339115a642f008e93f3796be83eb12..dc263f1918d881a282c00d1116a30768feba11f3 100644
--- a/content/common/gpu/media/video_decode_accelerator_unittest.cc
+++ b/content/common/gpu/media/video_decode_accelerator_unittest.cc
@@ -34,7 +34,10 @@
#include "base/files/file_util.h"
#include "base/format_macros.h"
#include "base/md5.h"
+#include "base/message_loop/message_loop.h"
Owen Lin 2014/11/03 06:59:06 Why these header files are included now ?
llandwerlin-old 2014/11/04 16:16:28 Removing.
#include "base/message_loop/message_loop_proxy.h"
+#include "base/message_loop/message_pump_libevent.h"
+#include "base/process/process.h"
#include "base/process/process_handle.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
@@ -60,9 +63,6 @@
#elif defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
#include "content/common/gpu/media/vaapi_video_decode_accelerator.h"
#include "content/common/gpu/media/vaapi_wrapper.h"
-#if defined(USE_X11)
-#include "ui/gl/gl_implementation.h"
-#endif // USE_X11
#else
#error The VideoAccelerator tests are not supported on this platform.
#endif // OS_WIN
@@ -101,8 +101,11 @@ const base::FilePath::CharType* g_output_log = NULL;
// The value is set by the switch "--rendering_fps".
double g_rendering_fps = 60;
-// The value is set by the switch "--rendering_warm_up".
-int g_rendering_warm_up = 0;
+// The value is set by the switch "--rendering_warm_up". We need at
+// least one frame for backends like Ozone, because as opposed to the
Owen Lin 2014/11/03 06:59:06 I think we should move the code into rendering hel
llandwerlin-old 2014/11/03 09:30:11 Acknowledged.
+// X11 backend, the compositor has been started yet and can't provide
+// any information about the vsync interval.
+int g_rendering_warm_up = 1;
// Magic constants for differentiating the reasons for NotifyResetDone being
// called.
@@ -405,17 +408,15 @@ void GLRenderingVDAClient::CreateAndStartDecoder() {
}
decoder_.reset(new V4L2VideoDecodeAccelerator(
static_cast<EGLDisplay>(rendering_helper_->GetGLDisplay()),
- static_cast<EGLContext>(rendering_helper_->GetGLContext()),
+ static_cast<EGLContext>(rendering_helper_->GetGLContextHandle()),
weak_client,
base::Bind(&DoNothingReturnTrue),
device.Pass(),
base::MessageLoopProxy::current()));
#elif defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
- CHECK_EQ(gfx::kGLImplementationDesktopGL, gfx::GetGLImplementation())
- << "Hardware video decode does not work with OSMesa";
- decoder_.reset(new VaapiVideoDecodeAccelerator(
- static_cast<Display*>(rendering_helper_->GetGLDisplay()),
- base::Bind(&DoNothingReturnTrue)));
+ decoder_.reset(
+ new VaapiVideoDecodeAccelerator(rendering_helper_->GetGLContext().get(),
+ base::Bind(&DoNothingReturnTrue)));
#endif // OS_WIN
CHECK(decoder_.get());
weak_decoder_factory_.reset(
@@ -873,11 +874,13 @@ void VideoDecodeAcceleratorTest::SetUp() {
// Initialize the rendering thread.
base::Thread::Options options;
options.message_loop_type = base::MessageLoop::TYPE_DEFAULT;
-#if defined(OS_WIN)
+#if defined(OS_WIN) || defined(USE_OZONE)
// For windows the decoding thread initializes the media foundation decoder
// which uses COM. We need the thread to be a UI thread.
+ // On Ozone, the backend initializes the event system using a UI
+ // thread.
options.message_loop_type = base::MessageLoop::TYPE_UI;
-#endif // OS_WIN
+#endif // OS_WIN || USE_OZONE
rendering_thread_.StartWithOptions(options);
rendering_loop_proxy_ = rendering_thread_.message_loop_proxy();
@@ -1081,6 +1084,7 @@ TEST_P(VideoDecodeAcceleratorParamTest, TestSimpleDecode) {
helper_params.thumbnails_page_size = kThumbnailsPageSize;
helper_params.thumbnail_size = kThumbnailSize;
}
+ helper_params.suppress_rendering = suppress_rendering;
// First kick off all the decoders.
for (size_t index = 0; index < num_concurrent_decoders; ++index) {
@@ -1347,6 +1351,7 @@ TEST_F(VideoDecodeAcceleratorTest, TestDecodeTimeMedian) {
helper_params.rendering_fps = 0;
helper_params.warm_up_iterations = 0;
helper_params.render_as_thumbnails = false;
+ helper_params.suppress_rendering = true;
Owen Lin 2014/11/03 06:59:06 rendering_fps == 0 indicates supporess_rendering.
llandwerlin-old 2014/11/03 09:30:11 Acknowledged.
ClientStateNotification<ClientState>* note =
new ClientStateNotification<ClientState>();
@@ -1438,6 +1443,8 @@ int main(int argc, char **argv) {
}
if (it->first == "v" || it->first == "vmodule")
continue;
+ if (it->first == "ozone-platform" || it->first == "ozone-use-surfaceless")
+ continue;
LOG(FATAL) << "Unexpected switch: " << it->first << ":" << it->second;
}

Powered by Google App Engine
This is Rietveld 408576698