• Ahmed Fakhry's avatar
    capture_mode: Handle moving a recorded window to a different display · d89ada62
    Ahmed Fakhry authored
    While a window is being recorded, the user may drag it to
    a different display.
      - This event must be propagated to the recording service, so that
        the video capturer can change its target frame sink to that of the
        root window of the display the window was moved to.
    The new display may have different bounds than that of the old display.
      - The recording service must also handle this case by reconfiguring
        the VPX video encoder as it will be getting video frames that match
        the new display size.
    
    This CL also fixes a bug where the recorded window shows up as squished
    in the output video. This was because we used to initialize the video
    encoder with the current window's bounds rather than the root's bounds.
    
    Demo is on the first bug.
    
    BUG=1165702, 1165708
    TEST=Manually, added new tests in ash_unittests and browser_tests.
    
    Change-Id: I53b8e34d1752925d2ee356b98b21c8360e863ee3
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2623712
    Commit-Queue: Ahmed Fakhry <afakhry@chromium.org>
    Reviewed-by: default avatarJames Cook <jamescook@chromium.org>
    Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#843773}
    d89ada62
capture_mode_controller.cc 39.6 KB