commit | f3a251c4ae81ebb23a95131e040c217d022b3a93 | [log] [tgz] |
---|---|---|
author | Miguel Casas <mcasas@chromium.org> | Tue Dec 18 03:37:19 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Dec 18 03:37:19 2018 |
tree | 8348165ed7aa2bc4a9e5db91192fa0528324c6fa | |
parent | 22ccebfe9229626c14dec05eceebf322d83185a4 [diff] |
RELAND: Vaapi decode: split |decoder_|s GetRequiredNumOfPictures() The problem is that the landed (and then reverted) CL called ShouldDecodeOnclientPictureBuffers(profile_) from InitiateSurfaceSetChange() and read back true, but later on, when the client called AssignPictureBuffers(), then ShouldDecodeOnclientPictureBuffers(profile_, !va_surface_ids.empty()) returned false and we ended up calling CreateContextAndSurfaces with |requested_num_reference_frames_| == 0; This CL fixes that: crrev.com/c/1379274/1..3 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: 909926 Change-Id: I5f6bda45b748f3b7a82663ba70f0cd4e0d20e37f Reviewed-on: https://chromium-review.googlesource.com/c/1363807 Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#615571} Reviewed-on: https://chromium-review.googlesource.com/c/1379274 Cr-Commit-Position: refs/heads/master@{#617366}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .