Skip to content
  • emircan's avatar
    Move video encode accelerator IPC messages to GPU IO thread · 66ea9831
    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