Support 10-bits per component video format decoding in VAAPI |
||||||||
Issue descriptionlibvaapi claims to support 10b per component/channel [1] on Kaby Lake. Our vaapi_wrapper.cc also claims to understand those [2] but then on second thoughts vaapi_video_decode_accelerator.cc says njet [3] and we fall back to the, this time working, venerable VpxVideoDecoder (see e.g. the code around [4]). Note that [5] also seems to be unhappy with >8b per channel depth but we can decode it nonetheless when using the said VpxVideoDecoer. Anyway, what we need is to make sure that, if VAAPI can support 10b per channel video decoding, we use it. [1] https://wiki.libav.org/Hardware/vaapi [2] https://cs.chromium.org/chromium/src/media/gpu/vaapi_wrapper.cc?type=cs&sq=package:chromium&l=138 [3] https://cs.chromium.org/chromium/src/media/gpu/vaapi_video_decode_accelerator.cc?type=cs&sq=package:chromium&q=VaapiVideoDecodeAccelerator::VaapiVP9Accelerator::SubmitDecode%5C(&l=1794 [4] https://cs.chromium.org/chromium/src/media/filters/vpx_video_decoder.cc?type=cs&sq=package:chromium&l=888 [5] https://cs.chromium.org/chromium/src/media/filters/vp9_parser.cc?l=537
,
Oct 25 2017
FYI, you can make vp9_parser.cc support 10-bits by just extend kDcQLookup and kAcQLookup tables for 10-bits. I didn't do so because I heard libvaapi didn't support 10bits at that time.
,
Oct 25 2017
,
Oct 25 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d6902f4829057d88da2feaefbe56accb237c3309 commit d6902f4829057d88da2feaefbe56accb237c3309 Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Wed Oct 25 15:23:21 2017 Move VAAPI static methods to impl classes This CL moves the factory method VaapiPicture::Create to the two impl classes vaapi_{drm,tfp}_picture, instead of having a single one with #ifdefs. Also in the process moved VaapiPicture::GetGLTextureTarget() which was in a similar situation, made a member const, inlined AllowOverlay() and changed LOG with DLOG()s in a file because: "prefer DVLOG(1) to other logging methods" [1]). [1] https://chromium.googlesource.com/chromium/src/+/master/styleguide/c++/c++.md#logging Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I632acf8193ce052781b54ebed5d4957028635780 Reviewed-on: https://chromium-review.googlesource.com/735743 Commit-Queue: Miguel Casas <mcasas@chromium.org> Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Cr-Commit-Position: refs/heads/master@{#511468} [modify] https://crrev.com/d6902f4829057d88da2feaefbe56accb237c3309/media/gpu/vaapi_drm_picture.cc [modify] https://crrev.com/d6902f4829057d88da2feaefbe56accb237c3309/media/gpu/vaapi_picture.cc [modify] https://crrev.com/d6902f4829057d88da2feaefbe56accb237c3309/media/gpu/vaapi_picture.h [modify] https://crrev.com/d6902f4829057d88da2feaefbe56accb237c3309/media/gpu/vaapi_tfp_picture.cc
,
Oct 26 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7b787a8ae50ebf11f19ad38e2988aa8b6797af3a commit 7b787a8ae50ebf11f19ad38e2988aa8b6797af3a Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Thu Oct 26 12:41:46 2017 Vaapi: remove unused method VaapiWrapper::GetDerivedVaImage() This CL removes the unused VaapiWrapper::GetDerivedVaImage() method. https://cs.chromium.org/search/?sq=package:chromium&type=cs&q=GetDerivedVaImage Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I2ac596525bd0505da46fa9390d74f77ddb9de2cf Reviewed-on: https://chromium-review.googlesource.com/738440 Reviewed-by: Pawel Osciak <posciak@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#511796} [modify] https://crrev.com/7b787a8ae50ebf11f19ad38e2988aa8b6797af3a/media/gpu/vaapi_wrapper.cc [modify] https://crrev.com/7b787a8ae50ebf11f19ad38e2988aa8b6797af3a/media/gpu/vaapi_wrapper.h
,
Oct 26 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2b952807825a9464cb6bd3bef888284e3e3c6bc4 commit 2b952807825a9464cb6bd3bef888284e3e3c6bc4 Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Thu Oct 26 15:41:23 2017 vaapi: remove VP9 Profiles > 0 from supported list This CL removes VP9 Profiles > 0 from |kProfileMap| since these are not supported (libva does support hem, but vaapi_wrapper doesn't). (This was landed as part of a roll in crrev.com/2834313002). Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I090b3c096729c7d154acf44c47cb6c7b33776460 Reviewed-on: https://chromium-review.googlesource.com/737110 Commit-Queue: Miguel Casas <mcasas@chromium.org> Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Cr-Commit-Position: refs/heads/master@{#511828} [modify] https://crrev.com/2b952807825a9464cb6bd3bef888284e3e3c6bc4/media/gpu/vaapi_wrapper.cc
,
Oct 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ac22b6c4cd333ee04e750a8152bb62a7fa585937 commit ac22b6c4cd333ee04e750a8152bb62a7fa585937 Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Sat Oct 28 17:16:14 2017 vaapi: move VASurface methods to a new file va_surface.cc This CL creates a new va_surface.cc to accompany the existing va_surface.h, and moves into it the existing methods out of vaapi_wrapper.cc which is already large enough. ** No new code is intended except: added a DCHECK and a few consts. ... but just in case: TEST=compile a simplechrome with the patch, deploy to soraka, then navigate to crosvideo2.appspot.com, reproduce e.g. VP9 1080p, and verify in chrome://media-internals that GpuVideoDecoder is used (and, of course, that the reproduction is as good as w/o the patch). Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: If778645dba01600f63d1e857a5c9c76f761f0fda Reviewed-on: https://chromium-review.googlesource.com/740041 Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#512404} [modify] https://crrev.com/ac22b6c4cd333ee04e750a8152bb62a7fa585937/media/gpu/BUILD.gn [add] https://crrev.com/ac22b6c4cd333ee04e750a8152bb62a7fa585937/media/gpu/va_surface.cc [modify] https://crrev.com/ac22b6c4cd333ee04e750a8152bb62a7fa585937/media/gpu/va_surface.h [modify] https://crrev.com/ac22b6c4cd333ee04e750a8152bb62a7fa585937/media/gpu/vaapi_wrapper.cc
,
Oct 30 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e37576eef6f8355d8de5267622264263a389cb48 commit e37576eef6f8355d8de5267622264263a389cb48 Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Mon Oct 30 11:48:24 2017 vaapi: make VADisplayState anonymous and file-static This CL makes VaapiWrapper::VADisplayState internal to vaapi_wrapper.cc; it removes two unnecessary member variables (|major_version_| and |minor_version_|) which were used in a single method, which is slightly rewritten for early-return. The method VaapiWrapper::GetDisplayState() is made VADisplayState::Get() which makes more sense. Until recently, this would have not existed and instead we'd have a LazyInstance, but times have changed :-) TEST=compile a simplechrome with the patch, deploy to soraka, then navigate to crosvideo2.appspot.com, reproduce e.g. VP9 1080p, and verify in chrome://media-internals that GpuVideoDecoder is used (and, of course, that the reproduction is as good as w/o the patch). Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I4fa6b548fe5d7f123629ce9e5699151293bcfdc3 Reviewed-on: https://chromium-review.googlesource.com/739425 Reviewed-by: Pawel Osciak <posciak@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#512473} [modify] https://crrev.com/e37576eef6f8355d8de5267622264263a389cb48/media/gpu/vaapi_wrapper.cc [modify] https://crrev.com/e37576eef6f8355d8de5267622264263a389cb48/media/gpu/vaapi_wrapper.h
,
Oct 31 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8f166030eb056c3623d8c77386076951aa561b5b commit 8f166030eb056c3623d8c77386076951aa561b5b Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Tue Oct 31 13:25:42 2017 vaapi: move va_stub_header.fragment to vaapi/ folder This CL moves the file va_stub_header.fragment to //media/gpu/vaapi/ folder. This file is used in conjunction with the signature files in the said folder, to produce an include file with the functions used from libva. Right now having the fragment in //media/gpu is unnecessary. TEST= ** No new code added, if it compiles, we're good ** Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I05619e0e14c5f9bb48f3117709c6f29c6eaf1210 Reviewed-on: https://chromium-review.googlesource.com/744462 Reviewed-by: Dan Sanders <sandersd@chromium.org> Reviewed-by: Pawel Osciak <posciak@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#512805} [modify] https://crrev.com/8f166030eb056c3623d8c77386076951aa561b5b/media/gpu/BUILD.gn [rename] https://crrev.com/8f166030eb056c3623d8c77386076951aa561b5b/media/gpu/vaapi/va_stub_header.fragment
,
Oct 31 2017
FTR and crosslinking: https://bugs.chromium.org/p/libyuv/issues/detail?id=751
,
Nov 2 2017
,
Nov 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f4d324a8e8ed5f1c8f4d19431ebb14dea2acf983 commit f4d324a8e8ed5f1c8f4d19431ebb14dea2acf983 Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Fri Nov 03 19:32:01 2017 Add accelerated video deco/enco support to chrome://gpu This CL adds the accelerated video deco/enco caps to chrome://gpu. The result can be seen in [1]. [1] https://i.imgur.com/2A2M6Rs.png (or https://i.imgur.com/2A2M6Rs.png) Bug: 778093 Change-Id: I8a12cb456026982bd16402adf71a81c9a7c3aa07 Reviewed-on: https://chromium-review.googlesource.com/753242 Commit-Queue: Miguel Casas <mcasas@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Commit-Position: refs/heads/master@{#513871} [modify] https://crrev.com/f4d324a8e8ed5f1c8f4d19431ebb14dea2acf983/content/browser/gpu/gpu_internals_ui.cc [modify] https://crrev.com/f4d324a8e8ed5f1c8f4d19431ebb14dea2acf983/content/browser/resources/gpu/info_view.html [modify] https://crrev.com/f4d324a8e8ed5f1c8f4d19431ebb14dea2acf983/content/browser/resources/gpu/info_view.js
,
Nov 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/60878ca9728c7972c04e4829f182a12df948285b commit 60878ca9728c7972c04e4829f182a12df948285b Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Tue Nov 07 15:27:19 2017 vaapi_wrapper: move Pre/PostSandboxInitialization to VaDisplayState This CL moves the static Pre-PostSandboxInitialization() methods from VaapiWrapper to its internal VADisplayState singleton. Both these sandbox initialization methods are run in a singleton pre-normal activity fashion, so VaDisplayState is a more logical place and also enhances encapsulation. PreSandboxInitialization() is moved verbatim. This CL also moves the printout of PostSandboxInitialization from VaInitialize() to the said static method. (This CL is also necessary for a later one making the collection of the supported profiles fully internal to vaapi_wrapper.cc.) TEST=simplechrome + vp9 playbacks works as before in Soraka. Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ib395d7d333d4ee8d645c8c038352ebc32211602d Reviewed-on: https://chromium-review.googlesource.com/753843 Commit-Queue: Miguel Casas <mcasas@chromium.org> Reviewed-by: Pawel Osciak <posciak@chromium.org> Cr-Commit-Position: refs/heads/master@{#514473} [modify] https://crrev.com/60878ca9728c7972c04e4829f182a12df948285b/media/gpu/vaapi_wrapper.cc [modify] https://crrev.com/60878ca9728c7972c04e4829f182a12df948285b/media/gpu/vaapi_wrapper.h
,
Nov 7 2017
,
Nov 7 2017
,
Nov 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ec6c6e0a27aed7db660f6e07afefc0ed95f88383 commit ec6c6e0a27aed7db660f6e07afefc0ed95f88383 Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Fri Nov 10 01:38:54 2017 vaapi: extend VP9Parser for 10-bit per channel VP9 This CL extends |kDcQLookup| and |kAcQLookup| for 10-bit VP9 formats (they are also reformatted to suit the definition on the Spec [1] -- hence the "clang format off". The tables are moved to the anonymous namespace at the top of the file. This CL also adds a new ivf file and extends vp9_parser_unittest.cc (Vp9ParserTest) accordingly. libva (via vaapi_* files) is the only client that supports VP9.2 and only supports 10 bits per component formats, so there's no point in supporting 12 bits per component now (see https://github.com/01org/libva/issues/137). Method Vp9Parser::SetupSegmentationDequant() is changed to return a boolean which is false if e.g. the VP9 has an unsupported bit depth. ToT has only a DLOG_IF(ERROR...). [1] https://www.webmproject.org/vp9/#draft-vp9-bitstream-and-decoding-process-specification Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I4179c2849160f8486252e48b8e648ab78eff92e0 Reviewed-on: https://chromium-review.googlesource.com/740762 Reviewed-by: Fredrik Hubinette <hubbe@chromium.org> Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#515405} [modify] https://crrev.com/ec6c6e0a27aed7db660f6e07afefc0ed95f88383/media/filters/vp9_parser.cc [modify] https://crrev.com/ec6c6e0a27aed7db660f6e07afefc0ed95f88383/media/filters/vp9_parser.h [modify] https://crrev.com/ec6c6e0a27aed7db660f6e07afefc0ed95f88383/media/filters/vp9_parser_unittest.cc [modify] https://crrev.com/ec6c6e0a27aed7db660f6e07afefc0ed95f88383/media/test/data/README [add] https://crrev.com/ec6c6e0a27aed7db660f6e07afefc0ed95f88383/media/test/data/crowd-vp9.2.ivf
,
Nov 14 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/172c7e374787f68ff1036cbc355fb802883c3620 commit 172c7e374787f68ff1036cbc355fb802883c3620 Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Tue Nov 14 19:13:36 2017 vaapi: move LazyProfileInfos to the vaapi_wrapper.cc file LazyProfileInfos is a VaapiWrapper singleton to enumerate upon construction the supported encode and decode ProfileInfos. This CL moves ProfileInfo and LazyProfileInfos to the implementation file, and bundles in it the methods used exclusively there. Details: - LazyProfileInfos is moved to vaapi_wrapper.cc, and the struct ProfileInfo is made internal to it. - LazyProfileInfos() calls explicitly VADisplayState::Initialize() on ctor and DeInitialize() on dtor, whereas before it relied on an ephemeral VaapiWrapper to do this dance, churning objects unnecessarily.. - VADisplayState::PostSandboxInitialization() is now called in a singleton way from LazyProfileInfos() ctor. TEST=compiled and deployed simplechrome on Soraka, chrome://gpu enumerates the same supported enco/deco profiles. Played back a VP9 4K video and confirmed via chrome://media-internals that GpuVideoDecoder is used. Compiled-copied-run the unittests: video_decode_accelerator_unittest --test_video_data=test-25fps.vp9:320:240:250:250:35:150:12 Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I307ae09b03c7830e508dcbc936ae6de6503772c8 Reviewed-on: https://chromium-review.googlesource.com/758879 Commit-Queue: Miguel Casas <mcasas@chromium.org> Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Cr-Commit-Position: refs/heads/master@{#516376} [modify] https://crrev.com/172c7e374787f68ff1036cbc355fb802883c3620/media/gpu/vaapi_wrapper.cc [modify] https://crrev.com/172c7e374787f68ff1036cbc355fb802883c3620/media/gpu/vaapi_wrapper.h
,
Nov 15 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/20b6d400c963409faddfe11195b2260afddfba5a commit 20b6d400c963409faddfe11195b2260afddfba5a Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Wed Nov 15 12:51:06 2017 vaapi: cleanup: move LazyProfileInfos to unnamed namespace This CL is a follow up to crrev.com/c/758879, and relocates to the unnamed namespace of the file the LazyProfileInfos methods that are scattered in vaapi_wrapper.cc. **No code was changed whatsoever**, this CL just moves things around. Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I64f7093b19d4de7fdbd9a66443be3dfc976460a9 Reviewed-on: https://chromium-review.googlesource.com/769989 Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#516675} [modify] https://crrev.com/20b6d400c963409faddfe11195b2260afddfba5a/media/gpu/vaapi_wrapper.cc
,
Nov 15 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f97eee40125026aef804caf67a917099dca1e680 commit f97eee40125026aef804caf67a917099dca1e680 Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Wed Nov 15 23:21:43 2017 vaapi wrapper: s/LazyProfileInfos/VASupportedProfiles/ This CL renames vaapi_wrapper.cc's LazyProfileInfos to VASupportedProfiles, because the latter reflects better the purpose, and we shouldn't have to encode the lifetime in the class name. TEST=**No new code**, mechanical changes. Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ia1ae707a370347980dadb63baa71c8bfab3bd72a Reviewed-on: https://chromium-review.googlesource.com/772970 Reviewed-by: Dan Sanders <sandersd@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#516882} [modify] https://crrev.com/f97eee40125026aef804caf67a917099dca1e680/media/gpu/vaapi_wrapper.cc
,
Nov 22 2017
,
Nov 27 2017
,
Nov 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e811a3e57cef042000fd6bed13f1e8aa76601302 commit e811a3e57cef042000fd6bed13f1e8aa76601302 Author: Miguel Casas <mcasas@chromium.org> Date: Tue Nov 28 01:56:11 2017 WebM: Parse VP9 Profile out of CodecPrivate This CL teaches WebMVideoClient to parse the |codec_private| field, if present, to figure out the VP9 Profile if any. This is a necessary step to support VP9.2 10b on Vaapi. TEST=crosvideo.appspot.com/?codec=vp9.2&loop=true and newly added unittests. Bug: 778093 , 592074 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ic62519b32818fe409d15f54b6ddb9798deea88da Reviewed-on: https://chromium-review.googlesource.com/786211 Commit-Queue: Miguel Casas <mcasas@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Sergey Volk <servolk@chromium.org> Cr-Commit-Position: refs/heads/master@{#519519} [modify] https://crrev.com/e811a3e57cef042000fd6bed13f1e8aa76601302/media/formats/BUILD.gn [modify] https://crrev.com/e811a3e57cef042000fd6bed13f1e8aa76601302/media/formats/webm/webm_video_client.cc [modify] https://crrev.com/e811a3e57cef042000fd6bed13f1e8aa76601302/media/formats/webm/webm_video_client.h [add] https://crrev.com/e811a3e57cef042000fd6bed13f1e8aa76601302/media/formats/webm/webm_video_client_unittest.cc
,
Nov 28 2017
,
Nov 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/609b671ad2bdc4a9b40e92d2d1fc37c985cd3f70 commit 609b671ad2bdc4a9b40e92d2d1fc37c985cd3f70 Author: Miguel Casas <mcasas@chromium.org> Date: Tue Nov 28 23:52:22 2017 VADisplayState::PostSandboxInitialization from ctor This CL moves the call to static PostSandboxInitialization() from its user, VASupportedProfiles ctor, to the Initialize() method; this way we improve encapsulation and guarantee that VADisplayState sandbox is correctly initialize in all possible call stacks. TEST=simplechrome on Soraka playing back VP9 videos, chrome://gpu enumeration and chrome://media-internals OK. Compile-ran video_decode_accelerator_unittest with the vp9 file and looked ok too. Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I960437bb36e2d2fdf43c33251394b76f84d2ea74 Reviewed-on: https://chromium-review.googlesource.com/784470 Reviewed-by: Pawel Osciak <posciak@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#519908} [modify] https://crrev.com/609b671ad2bdc4a9b40e92d2d1fc37c985cd3f70/media/gpu/vaapi_wrapper.cc
,
Nov 30 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/da63104c33b55947a9f8651e499b00c3d575b708 commit da63104c33b55947a9f8651e499b00c3d575b708 Author: Miguel Casas <mcasas@chromium.org> Date: Thu Nov 30 17:32:42 2017 vaapi: support decoding VP9 Profile 2 (10bpc) This CL adds support for playing back 10 bit VP9 Profile 2 videos using Vaapi (via VaapiVDA and VaapiWrapper). Essentially it adds using VA_RT_FORMAT_YUV420_10BPP and indicating 10b where needed. Vaapi supports VP9.2 10bpc on Kaby Lake processors (e.g. Soraka, Eve). Before that, no changes, VaapiVDA is not used for VP9.2, and we fall back to VpxVideoDecoder as on ToT. Note: the decoding itself happens in 10bits, but blitting still happens onto an 8 bit per channel GpuMemoryBuffer. Further CLs will wire higher bit depth GpuMemoryBuffers. TEST= chrome://gpu; video playback e.g. [1] and verify via chrome://media-internals that GpuVideoDecoder is engaged. Note that the video is played back smoothlier than with VpxVideoDecoder. All this on soraka with a simplechrome. - Also extended video_decode_accelerator_unittest, but has to be landed in separate CLs, see: crrev.com/c/797853 [1] http://crosvideo.appspot.com/?codec=vp9.2&loop=true Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ic9fe15a1a1f4470704228882cccd8a9174edbfd3 Reviewed-on: https://chromium-review.googlesource.com/797443 Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#520587} [modify] https://crrev.com/da63104c33b55947a9f8651e499b00c3d575b708/media/gpu/vaapi_video_decode_accelerator.cc [modify] https://crrev.com/da63104c33b55947a9f8651e499b00c3d575b708/media/gpu/vaapi_video_decode_accelerator.h [modify] https://crrev.com/da63104c33b55947a9f8651e499b00c3d575b708/media/gpu/vaapi_wrapper.cc
,
Nov 30 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6300abc73fb6391b1e04fe0ba0138ef339eac26f commit 6300abc73fb6391b1e04fe0ba0138ef339eac26f Author: Miguel Casas <mcasas@chromium.org> Date: Thu Nov 30 20:50:00 2017 vaapi: add VP9 Profile 2 test video file This CL adds two files to //media/test/data, namely: - test-25fps.vp9_2: VP9 Profile 2 file in an IVF container - test-25fps.vp9_2.md5: md5 version of its thumbnails. to be used with video_decode_accelerator_unittests. This CL also updates Vp9ParserTest to use the new file instead of media/test/data/crowd-vp9.2.ivf, which is removed (the new file is smaller). It also updates media/test/data/README.md with details on how the new files were generated. TEST=compile and run on a soraka: video_decode_accelerator_unittest --test_video_data=test-25fps.vp9_2:320:240:250:250:35:150:14 (Note the last number is a 14 == VideoCodecProfile for VP9.2) Bug: 778093 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I53e1a1802cb4c8b634e5f979d7afba143b259b68 Reviewed-on: https://chromium-review.googlesource.com/797853 Reviewed-by: Dan Sanders <sandersd@chromium.org> Commit-Queue: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#520670} [modify] https://crrev.com/6300abc73fb6391b1e04fe0ba0138ef339eac26f/media/filters/vp9_parser_unittest.cc [modify] https://crrev.com/6300abc73fb6391b1e04fe0ba0138ef339eac26f/media/test/data/README [delete] https://crrev.com/df632423d8a62f351d436b11e1d41d2fa33e5be4/media/test/data/crowd-vp9.2.ivf [add] https://crrev.com/6300abc73fb6391b1e04fe0ba0138ef339eac26f/media/test/data/test-25fps.vp9_2 [add] https://crrev.com/6300abc73fb6391b1e04fe0ba0138ef339eac26f/media/test/data/test-25fps.vp9_2.md5
,
Dec 1 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/6936849a02248f94c1e7741aed53309ef8c700b8 commit 6936849a02248f94c1e7741aed53309ef8c700b8 Author: Miguel Casas <mcasas@chromium.org> Date: Fri Dec 01 18:13:49 2017 avtest_label_detect: Add VP9 Profile 2 detection TEST=Run on a Kaby Lake (e.g. soraka) VP9.2 is supported, elsewhere is not. BUG= chromium:778093 Change-Id: I4ac9a28a433a9a898e22f79216310ce61ff11315 Reviewed-on: https://chromium-review.googlesource.com/798191 Commit-Ready: Miguel Casas <mcasas@chromium.org> Tested-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: Kuang-che Wu <kcwu@chromium.org> [modify] https://crrev.com/6936849a02248f94c1e7741aed53309ef8c700b8/avtest_label_detect/main.c [modify] https://crrev.com/6936849a02248f94c1e7741aed53309ef8c700b8/avtest_label_detect/detect_hw_video_acc.c [modify] https://crrev.com/6936849a02248f94c1e7741aed53309ef8c700b8/avtest_label_detect/label_detect.h
,
Dec 1 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/autotest/+/c9f4daec362c75f4d340e54ff9a5f78bb6bc23ce commit c9f4daec362c75f4d340e54ff9a5f78bb6bc23ce Author: Miguel Casas <mcasas@chromium.org> Date: Fri Dec 01 22:54:41 2017 autotests/video_VideoDecodeAccelerator: Add vp9.2 file This CL adds a control.vp9_2 file that details how to run video_decode_accelerator_unittest under autotest for VP9 Profile 2, 10 bits per component (or per channel). CQ-DEPEND=CL:797853, CL:798191 TEST=Run on a Kaby Lake (e.g. soraka) VP9.2 is supported, elsewhere is not. BUG= chromium:778093 Change-Id: I5edf36a27c86b2c18e3a572461668a1fe762c685 Reviewed-on: https://chromium-review.googlesource.com/798151 Commit-Ready: Miguel Casas <mcasas@chromium.org> Tested-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: Kuang-che Wu <kcwu@chromium.org> [add] https://crrev.com/c9f4daec362c75f4d340e54ff9a5f78bb6bc23ce/client/site_tests/video_VideoDecodeAccelerator/control.vp9_2
,
Dec 4 2017
The CL in comment #26, which adds the video test file, was landed in Chrome 64.3282.0 or later. Chrome on ChromeOS is currently 64.0.3280.5. Autotest system just copies all of files media/test/data/ in Chrome to DUT. Therefore, video_VideoDecodeAccelerator for control.vp9_2 is failed by the lack of video test file. What is worse, Chrome on ChromeOS has not been updated because of the failure of video_VideoDecodeAccelerator.vp9_2 in Chrome PFQ. It is a kind of dead locking. I reverted the autotest CL. crosreview.com/805009 We are going to reland the CL again after Chrome on ChromeOS will be updated enough.
,
Dec 4 2017
hiroh@: thanks for the gardening, I was "too fast too furious" !!!
,
Dec 5 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/autotest/+/5d3bba4be4464c6a993b38d006ce295788e8a22b commit 5d3bba4be4464c6a993b38d006ce295788e8a22b Author: Hirokazu Honda <hiroh@chromium.org> Date: Tue Dec 05 04:02:51 2017 Revert "autotests/video_VideoDecodeAccelerator: Add vp9.2 file" This reverts commit c9f4daec362c75f4d340e54ff9a5f78bb6bc23ce. Reason for revert: video_VideoDecodeAccelerator.vp9_2 is failed on bvt-perbuild and blocks PFQ. Original change's description: > autotests/video_VideoDecodeAccelerator: Add vp9.2 file > > This CL adds a control.vp9_2 file that details how to > run video_decode_accelerator_unittest under autotest for > VP9 Profile 2, 10 bits per component (or per channel). > > CQ-DEPEND=CL:797853, CL:798191 > TEST=Run on a Kaby Lake (e.g. soraka) VP9.2 is supported, > elsewhere is not. > BUG= chromium:778093 > Change-Id: I5edf36a27c86b2c18e3a572461668a1fe762c685 > Reviewed-on: https://chromium-review.googlesource.com/798151 > Commit-Ready: Miguel Casas <mcasas@chromium.org> > Tested-by: Miguel Casas <mcasas@chromium.org> > Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Bug: chromium:778093 Change-Id: Ic3990bbba79a994fe4de1f07e87c4cc33b0f12e4 Reviewed-on: https://chromium-review.googlesource.com/805009 Commit-Ready: Pawel Osciak <posciak@chromium.org> Tested-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> [delete] https://crrev.com/cf1f9a5810e7c8b76281e2febdb62c6b355388af/client/site_tests/video_VideoDecodeAccelerator/control.vp9_2
,
Dec 7 2017
I couldn't confirm the autotest is passed locally, since there was no ChromeOS version which has the vp9_2 video source file and control.vp9_2. But the test should be passed on ChromeOS ToT, whose Chrome version is 65.0.3286.0 > 64.3282.0. So let me reland the autotest CL. https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/812585
,
Dec 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/autotest/+/5f86823ce5c995c36b457401d45f58038c2e0aaf commit 5f86823ce5c995c36b457401d45f58038c2e0aaf Author: Hirokazu Honda <hiroh@chromium.org> Date: Thu Dec 07 16:04:53 2017 Revert "Revert "autotests/video_VideoDecodeAccelerator: Add vp9.2 file"" This reverts commit 5d3bba4be4464c6a993b38d006ce295788e8a22b. Reason for revert: The test should be passed now. Original change's description: > Revert "autotests/video_VideoDecodeAccelerator: Add vp9.2 file" > > This reverts commit c9f4daec362c75f4d340e54ff9a5f78bb6bc23ce. > > Reason for revert: video_VideoDecodeAccelerator.vp9_2 is failed on bvt-perbuild and blocks PFQ. > Original change's description: > > autotests/video_VideoDecodeAccelerator: Add vp9.2 file > > > > This CL adds a control.vp9_2 file that details how to > > run video_decode_accelerator_unittest under autotest for > > VP9 Profile 2, 10 bits per component (or per channel). > > > > CQ-DEPEND=CL:797853, CL:798191 > > TEST=Run on a Kaby Lake (e.g. soraka) VP9.2 is supported, > > elsewhere is not. > > BUG= chromium:778093 > > Change-Id: I5edf36a27c86b2c18e3a572461668a1fe762c685 > > Reviewed-on: https://chromium-review.googlesource.com/798151 > > Commit-Ready: Miguel Casas <mcasas@chromium.org> > > Tested-by: Miguel Casas <mcasas@chromium.org> > > Reviewed-by: Kuang-che Wu <kcwu@chromium.org> > > Bug: chromium:778093 > Change-Id: Ic3990bbba79a994fe4de1f07e87c4cc33b0f12e4 > Reviewed-on: https://chromium-review.googlesource.com/805009 > Commit-Ready: Pawel Osciak <posciak@chromium.org> > Tested-by: Hirokazu Honda <hiroh@chromium.org> > Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Bug: chromium:778093 Change-Id: I228baa4a0cad8b0b551183e331d7778a1440fb2d Reviewed-on: https://chromium-review.googlesource.com/812585 Commit-Ready: Hirokazu Honda <hiroh@chromium.org> Tested-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> [add] https://crrev.com/5f86823ce5c995c36b457401d45f58038c2e0aaf/client/site_tests/video_VideoDecodeAccelerator/control.vp9_2
,
Dec 11 2017
I confirmed video_VideoDecodeAccelerator.vp9_2 run and is passed on KBL now.
,
Dec 12 2017
I can see them running correctly in e.g. https://stainless.corp.google.com/search?view=matrix&row=board&col=build&first_date=20171206&last_date=20171212&test=video_VideoDecodeAccelerator&exclude_cts=false&exclude_not_run=false&exclude_non_release=false&exclude_au=true&exclude_acts=true&exclude_retried=true&exclude_non_production=true e.g. https://stainless.corp.google.com/search?exclude_retried=true&first_date=20171206&master_builder_name=&builder_name_number=&shard=&exclude_acts=true&builder_name=&master_builder_name_number=&owner=&retry=&exclude_cts=false&exclude_non_production=true&hostname=&board=%5Esoraka%24&test=video_VideoDecodeAccelerator&exclude_not_run=false&build=%5ER65%5C-10208%5C.0%5C.0%24&status=GOOD&reason=&waterfall=&suite=&last_date=20171212&exclude_non_release=false&exclude_au=true&view=list
,
Dec 15 2017
|
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by mcasas@chromium.org
, Oct 25 2017