• Miguel Casas's avatar
    RELAND2: Vaapi decode: split |decoder_|s GetRequiredNumOfPictures() · 477a706a
    Miguel Casas authored
    This CL is a smart-rebase-and-fix of the CLs below: it introduces
    a new parameter |use_reduced_number_of_allocations_| to allow for the
    new working mode described below and to temporarily circumvent the
    GtsExoPlayerTestCases failures (b/121169667 and b/121003733); this
    new flag is false when |output_mode_| is IMPORT, so all ARC++ cases
    should work bc left untouched.
    
    OTOH a mem savings overview can be found at https://goo.gl/3PaMiA.
    
    Original CL description -----------------------------------------------
    Vaapi decode: split |decoder_|s GetRequiredNumOfPictures()
    
    This CL reduces the amount of PictureBuffers requested to be allocated
    by the |client_| when we are not |decode_using_client_picture_buffers_|.
    Instead, it "splits" the requested allocations into
    - the actual needed PictureBuffers (A)
    - the codec's requested reference frames (B) (a new method
     GetNumReferenceFrames() is added to AcceleratedVideoDecoder for this).
    
    This splitting saves a lot of memory, since we allocate A+B buffers
    instead of 2*(A+B). (B is 5 and A is 4-VP8, 4-12 H264/VP9)
    
    Test: crosvideo changing resolutions for each codec, v_d_a_unittest
    on nocturne (KBL) and caroline (SKL).
    
    Bug: 912295
    
    Reviewed-on: https://chromium-review.googlesource.com/c/1363807Reviewed-by: default avatarHirokazu Honda <hiroh@chromium.org>
    Commit-Queue: Miguel Casas <mcasas@chromium.org>
    Cr-Original-Original-Commit-Position: refs/heads/master@{#615571}
    Reviewed-on: https://chromium-review.googlesource.com/c/1379274
    Cr-Original-Commit-Position: refs/heads/master@{#617366}
    Change-Id: Ibf9a1455f8df4d52b77aee8e01f15c02878947ae
    Reviewed-on: https://chromium-review.googlesource.com/c/1387391
    Cr-Commit-Position: refs/heads/master@{#620025}
    477a706a
vp8_decoder.h 3.9 KB