-
emircan authored
This CL moves video encode accelerator IPC messages to GPU IO thread instead of the main thread. This helps stabilize frame rate as well as reduce jitter on Windows. Currently, a lot of these calls get huge delays and results in dropped frames. In order to do this with respect to each platform, TryToSetupEncodeOnSeparateThread() is added to VideoEncodeAccelerator interface. If this method return false, we keep all IPC messages on main thread like before. It returns false by default. Note: Initially, I only moved AcceleratedVideoEncoderMsg_Encode call to IO thread, but then we started waiting for output buffers for a long time and again stayed below 30 fps. Therefore I moved all three functions to IO thread and reached ~30 fps, even when switching between tabs. BUG=657217, 649275 TEST=RunsAudioVideoCall60SecsAndLogsInternalMetricsH264 browser test on Windows result in stable 30 fps. Review-Url: https://codereview.chromium.org/2427053002 Cr-Commit-Position: refs/heads/master@{#430882}
66ea9831