D3D11 VP9 playback tracking |
|||
Issue descriptionMake VP9 work on d3d11 a doc: https://docs.google.com/document/d/19MS6t5kqgWUHHd2gyrJRma-92QyV2P8G7gmhdE8iHkQ/edit#
,
Sep 8
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9cdf0fa1927864eb8f3c59f607fe3c609cb90ba8 commit 9cdf0fa1927864eb8f3c59f607fe3c609cb90ba8 Author: Ted Meyer <tmathmeyer@chromium.org> Date: Sat Sep 08 02:05:09 2018 Move D3D11VideoDecoderClient to own header file D3D11VideoDecoderClient is subclassed by the D3D11VideoDecoder to allow accelerators to get and set picture buffers. Since this will be shared by the H264Accelerator and VP9Accelerator, it should be moved into its own file. Bug: 881922 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: If48714459ad29c6f29d7b98c84f3f45cc878d448 Reviewed-on: https://chromium-review.googlesource.com/1214103 Commit-Queue: Ted Meyer <tmathmeyer@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#589752} [modify] https://crrev.com/9cdf0fa1927864eb8f3c59f607fe3c609cb90ba8/media/gpu/BUILD.gn [modify] https://crrev.com/9cdf0fa1927864eb8f3c59f607fe3c609cb90ba8/media/gpu/windows/d3d11_h264_accelerator.h [modify] https://crrev.com/9cdf0fa1927864eb8f3c59f607fe3c609cb90ba8/media/gpu/windows/d3d11_video_decoder.h [add] https://crrev.com/9cdf0fa1927864eb8f3c59f607fe3c609cb90ba8/media/gpu/windows/d3d11_video_decoder_client.h
,
Sep 15
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d322c0b657917c69332c33f48f52823456d3e148 commit d322c0b657917c69332c33f48f52823456d3e148 Author: Ted Meyer <tmathmeyer@chromium.org> Date: Sat Sep 15 12:20:24 2018 Adds a stub of the VP9Accelerator D3D11VP9Accelerator is just a stub for now, but is protected by checks to make sure that it is not instantiated yet. There is also a slight refactoring of D3D11VideoDecoder to better support multiple codec types in the ::Initialize() and ::IsPotentiallySupported() methods. Bug: 881922 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: I28505b279f00ab3b8bb6f750d554aad3588a96eb Reviewed-on: https://chromium-review.googlesource.com/1223029 Commit-Queue: Ted Meyer <tmathmeyer@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#591582} [modify] https://crrev.com/d322c0b657917c69332c33f48f52823456d3e148/media/base/media_switches.cc [modify] https://crrev.com/d322c0b657917c69332c33f48f52823456d3e148/media/base/media_switches.h [modify] https://crrev.com/d322c0b657917c69332c33f48f52823456d3e148/media/base/test_helpers.cc [modify] https://crrev.com/d322c0b657917c69332c33f48f52823456d3e148/media/base/test_helpers.h [modify] https://crrev.com/d322c0b657917c69332c33f48f52823456d3e148/media/gpu/BUILD.gn [modify] https://crrev.com/d322c0b657917c69332c33f48f52823456d3e148/media/gpu/windows/d3d11_video_decoder.cc [modify] https://crrev.com/d322c0b657917c69332c33f48f52823456d3e148/media/gpu/windows/d3d11_video_decoder.h [modify] https://crrev.com/d322c0b657917c69332c33f48f52823456d3e148/media/gpu/windows/d3d11_video_decoder_unittest.cc [add] https://crrev.com/d322c0b657917c69332c33f48f52823456d3e148/media/gpu/windows/d3d11_vp9_accelerator.cc [add] https://crrev.com/d322c0b657917c69332c33f48f52823456d3e148/media/gpu/windows/d3d11_vp9_accelerator.h
,
Sep 20
Some nice reference for GUIDS: 914C84A3: unknown 6AFFD11E: unknown 33FCFE41: unknown 9947EC6F: unknown ED418A9F: D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC EFD64D74: D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE 5B11D51B: D3D11_DECODER_PROFILE_HEVC_VLD_MAIN 1B81BE68: D3D11_DECODER_PROFILE_H264_VLD_NOFGT F9AACCBB: D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT D79BE8DA: D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT 32FCFE3F: unknown 1B81BEA3: D3D11_DECODER_PROFILE_VC1_VLD 1B81BEA4: D3D11_DECODER_PROFILE_VC1_D2010 6F3EC719: D3D11_DECODER_PROFILE_MPEG1_VLD EE27417F: D3D11_DECODER_PROFILE_MPEG2_VLD 86695F12: D3D11_DECODER_PROFILE_MPEG2and1_VLD
,
Sep 24
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a588f58227393ab20681f2247362f28ef3cfd1f5 commit a588f58227393ab20681f2247362f28ef3cfd1f5 Author: Ted Meyer <tmathmeyer@chromium.org> Date: Mon Sep 24 22:44:30 2018 Drop Version requirement of D3D11 to 11.0 Bug: 881922 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: I9298701a3790ca2b7c9aaf43a6c9ce6c1abaa74c Reviewed-on: https://chromium-review.googlesource.com/1241556 Commit-Queue: Ted Meyer <tmathmeyer@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#593723} [modify] https://crrev.com/a588f58227393ab20681f2247362f28ef3cfd1f5/media/gpu/windows/d3d11_video_decoder.cc [modify] https://crrev.com/a588f58227393ab20681f2247362f28ef3cfd1f5/media/gpu/windows/d3d11_video_decoder_unittest.cc
,
Sep 27
,
Oct 3
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/82ed7e91bb73df22a1db25e3fcd38dfdd0228de3 commit 82ed7e91bb73df22a1db25e3fcd38dfdd0228de3 Author: Ted Meyer <tmathmeyer@chromium.org> Date: Wed Oct 03 01:49:36 2018 Support VP9 Hardware Acceleration using D3D11 Completes: - D3D11VP9Accelerator::SubmitDecode - D3D11VP9Accelerator::OutputPicture - D3D11VP9Accelerator::CreateVP9Picture Which are the three methods required to successfully implement a VP9Accelerator class. Bug: 881922 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: I6af7ebb07b53febf4797c1849a976b1ce8424df1 Reviewed-on: https://chromium-review.googlesource.com/c/1244664 Commit-Queue: Ted Meyer <tmathmeyer@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Rintaro Kuroiwa <rkuroiwa@chromium.org> Cr-Commit-Position: refs/heads/master@{#596089} [modify] https://crrev.com/82ed7e91bb73df22a1db25e3fcd38dfdd0228de3/media/gpu/windows/d3d11_video_decoder.cc [modify] https://crrev.com/82ed7e91bb73df22a1db25e3fcd38dfdd0228de3/media/gpu/windows/d3d11_vp9_accelerator.cc [modify] https://crrev.com/82ed7e91bb73df22a1db25e3fcd38dfdd0228de3/media/gpu/windows/d3d11_vp9_accelerator.h [modify] https://crrev.com/82ed7e91bb73df22a1db25e3fcd38dfdd0228de3/media/gpu/windows/d3d11_vp9_picture.h
,
Oct 19
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9b2cdfcd800d8acffdb6ca5d57ea669d83d3467f commit 9b2cdfcd800d8acffdb6ca5d57ea669d83d3467f Author: Ted Meyer <tmathmeyer@chromium.org> Date: Fri Oct 19 22:08:39 2018 Support encrypted playback for D3D11VP9Accelerator Plumb the media::DecryptConfig from the CodecPicture to the D3D11 buffer descriptor, and made a small refactor of some of the macros to support error in the case where a decrypt context couldn't be acquired. Bug: 881922 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: I9ac2cd889bb59e478260e81b3b42ee3d9ff6b177 Reviewed-on: https://chromium-review.googlesource.com/c/1275289 Commit-Queue: Ted Meyer <tmathmeyer@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Rintaro Kuroiwa <rkuroiwa@chromium.org> Cr-Commit-Position: refs/heads/master@{#601315} [modify] https://crrev.com/9b2cdfcd800d8acffdb6ca5d57ea669d83d3467f/media/gpu/windows/d3d11_h264_accelerator.cc [modify] https://crrev.com/9b2cdfcd800d8acffdb6ca5d57ea669d83d3467f/media/gpu/windows/d3d11_video_decoder.cc [modify] https://crrev.com/9b2cdfcd800d8acffdb6ca5d57ea669d83d3467f/media/gpu/windows/d3d11_vp9_accelerator.cc [modify] https://crrev.com/9b2cdfcd800d8acffdb6ca5d57ea669d83d3467f/media/gpu/windows/d3d11_vp9_accelerator.h
,
Nov 27
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0b35c5fd4f5950f7fba61d1eb5a6999392c17554 commit 0b35c5fd4f5950f7fba61d1eb5a6999392c17554 Author: Ted Meyer <tmathmeyer@chromium.org> Date: Tue Nov 27 22:29:29 2018 Encode InitializationVectors into VP9 video frames Using a vector of subsamples and a starting initialization vector, start incrementing the IV based on how large each video frame is. These values are used by accelerators to support encrypted playback. Since subsamples and frames can overlap, we have to cover multiple scenarios: frames & subsamples line up: ┌───────────────────┬────────────────────┐ │ frame 1 │ frame 2 │ ┝━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━┥ │ clear1 | cipher 1 │ clear 2 | cipher 2 │ └───────────────────┴────────────────────┘ subsample clear covers all first frame and partial second frame: ┌───────────────────┬────────────────────┐ │ frame 1 │ frame 2 │ ┝━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┥ │ clear1 | cipher 1 │ └────────────────────────────────────────┘ one frame has more than one subsample, and subsamples might not align: ┌─────────────────────────┬────────────────────┐ │ frame 1 │ frame 2 │ ┝━━━━━━━━━━━━━━━━━━━┯━━━━━┷━━━━━━━━━━━━━━━━━━━━┥ │ clear1 | cipher 1 │ clear 2 | cipher 2 │ └───────────────────┴──────────────────────────┘ or: ┌────────────────────────────────────────┬────────────────────┐ │ frame 1 │ frame 2 │ ┝━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━┥ │ clear1 | cipher 1 │ clear 2 | cipher 2 │ clear 3 | cipher 3 │ └───────────────────┴────────────────────┴────────────────────┘ or: ┌─────────────────────────────────────────────┬───────────────┐ │ frame 1 │ frame 2 │ ┝━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━┯━━━━┷━━━━━━━━━━━━━━━┥ │ clear1 | cipher 1 │ clear 2 | cipher 2 │ clear 3 | cipher 3 │ └───────────────────┴────────────────────┴────────────────────┘ a cipher section crosses a frame boundary: (this is an error and is caught) ┌───────────────────┬────────────────────┐ │ frame 1 │ frame 2 │ ┝━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┥ │ clear1 | cipher 1 │ └────────────────────────────────────────┘ Bug: 881922 Bug: 836557 Change-Id: I7e69be34221702f77ec67daa8647c1767661bb51 Reviewed-on: https://chromium-review.googlesource.com/c/1307059 Reviewed-by: Xiaohan Wang <xhwang@chromium.org> Reviewed-by: Rintaro Kuroiwa <rkuroiwa@chromium.org> Commit-Queue: Ted Meyer <tmathmeyer@chromium.org> Cr-Commit-Position: refs/heads/master@{#611378} [modify] https://crrev.com/0b35c5fd4f5950f7fba61d1eb5a6999392c17554/media/base/decrypt_config.cc [modify] https://crrev.com/0b35c5fd4f5950f7fba61d1eb5a6999392c17554/media/base/decrypt_config.h [modify] https://crrev.com/0b35c5fd4f5950f7fba61d1eb5a6999392c17554/media/filters/vp9_parser.cc [modify] https://crrev.com/0b35c5fd4f5950f7fba61d1eb5a6999392c17554/media/filters/vp9_parser.h [modify] https://crrev.com/0b35c5fd4f5950f7fba61d1eb5a6999392c17554/media/filters/vp9_parser_fuzzertest.cc [modify] https://crrev.com/0b35c5fd4f5950f7fba61d1eb5a6999392c17554/media/filters/vp9_parser_unittest.cc [modify] https://crrev.com/0b35c5fd4f5950f7fba61d1eb5a6999392c17554/media/gpu/vp9_decoder.cc [modify] https://crrev.com/0b35c5fd4f5950f7fba61d1eb5a6999392c17554/media/gpu/windows/dxva_video_decode_accelerator_win.cc
,
Dec 19
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/582c6f98d40c393afc5c4f4009ccb0ab2f663cb0 commit 582c6f98d40c393afc5c4f4009ccb0ab2f663cb0 Author: Xiaohan Wang <xhwang@chromium.org> Date: Wed Dec 19 23:12:37 2018 media: Always require non-null MediaLog in D3D11 decoders/accelerators Currently D3D11VideoDecoder assumes its |media_log_| can be null and check it before calling it. But it then passes media_log_.get() to D3D11Vp9Accelerator unconditionally, which assumes its |media_log_| is always non-null and call it unconditionally. This seems like a bug though in production code the MediaLog is always non-null. To avoid confusion and real bug, this CL adds DCHECKs to make sure the MediaLog is always non-null. Tests are fixed to meet this requirement. Bug: 881922 Change-Id: Iee01d1b12a58ab74ebfaad733188b98dd7907494 Reviewed-on: https://chromium-review.googlesource.com/c/1384785 Commit-Queue: Xiaohan Wang <xhwang@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#617999} [modify] https://crrev.com/582c6f98d40c393afc5c4f4009ccb0ab2f663cb0/media/gpu/windows/d3d11_h264_accelerator.cc [modify] https://crrev.com/582c6f98d40c393afc5c4f4009ccb0ab2f663cb0/media/gpu/windows/d3d11_video_decoder.cc [modify] https://crrev.com/582c6f98d40c393afc5c4f4009ccb0ab2f663cb0/media/gpu/windows/d3d11_video_decoder_unittest.cc [modify] https://crrev.com/582c6f98d40c393afc5c4f4009ccb0ab2f663cb0/media/gpu/windows/d3d11_vp9_accelerator.cc
,
Jan 19
(4 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cc826c38611dbeb7cc4cc50de195b9ea0db80768 commit cc826c38611dbeb7cc4cc50de195b9ea0db80768 Author: Ted Meyer <tmathmeyer@chromium.org> Date: Sat Jan 19 00:03:00 2019 Remove the switch for D3D11VP9 Bug: 881922 Change-Id: If14ba418978f445feddac692a0e90d3ed1220894 Reviewed-on: https://chromium-review.googlesource.com/c/1419503 Commit-Queue: Ted Meyer <tmathmeyer@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#624368} [modify] https://crrev.com/cc826c38611dbeb7cc4cc50de195b9ea0db80768/media/base/media_switches.cc [modify] https://crrev.com/cc826c38611dbeb7cc4cc50de195b9ea0db80768/media/base/media_switches.h [modify] https://crrev.com/cc826c38611dbeb7cc4cc50de195b9ea0db80768/media/gpu/windows/d3d11_video_decoder.cc [modify] https://crrev.com/cc826c38611dbeb7cc4cc50de195b9ea0db80768/media/gpu/windows/d3d11_video_decoder_unittest.cc
,
Jan 19
(4 days ago)
|
|||
►
Sign in to add a comment |
|||
Comment 1 by bugdroid1@chromium.org
, Sep 7