summaryrefslogtreecommitdiff
path: root/chromium/media/gpu/windows/d3d11_av1_accelerator.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-02 12:21:57 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-12 08:13:00 +0000
commit606d85f2a5386472314d39923da28c70c60dc8e7 (patch)
treea8f4d7bf997f349f45605e6058259fba0630e4d7 /chromium/media/gpu/windows/d3d11_av1_accelerator.cc
parent5786336dda477d04fb98483dca1a5426eebde2d7 (diff)
downloadqtwebengine-chromium-606d85f2a5386472314d39923da28c70c60dc8e7.tar.gz
BASELINE: Update Chromium to 96.0.4664.181
Change-Id: I762cd1da89d73aa6313b4a753fe126c34833f046 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/media/gpu/windows/d3d11_av1_accelerator.cc')
-rw-r--r--chromium/media/gpu/windows/d3d11_av1_accelerator.cc18
1 files changed, 15 insertions, 3 deletions
diff --git a/chromium/media/gpu/windows/d3d11_av1_accelerator.cc b/chromium/media/gpu/windows/d3d11_av1_accelerator.cc
index 401f5917c0b..4c9e1dc1c64 100644
--- a/chromium/media/gpu/windows/d3d11_av1_accelerator.cc
+++ b/chromium/media/gpu/windows/d3d11_av1_accelerator.cc
@@ -397,6 +397,11 @@ D3D11AV1Accelerator::D3D11AV1Accelerator(
D3D11AV1Accelerator::~D3D11AV1Accelerator() {}
void D3D11AV1Accelerator::RecordFailure(const std::string& fail_type,
+ media::Status error) {
+ RecordFailure(fail_type, error.message(), error.code());
+}
+
+void D3D11AV1Accelerator::RecordFailure(const std::string& fail_type,
const std::string& message,
StatusCode reason) {
MEDIA_LOG(ERROR, media_log_)
@@ -502,9 +507,16 @@ DecodeStatus D3D11AV1Accelerator::SubmitDecode(
base::span<const uint8_t> data) {
const D3D11AV1Picture* pic_ptr = static_cast<const D3D11AV1Picture*>(&pic);
do {
- const auto hr = video_context_->DecoderBeginFrame(
- video_decoder_.Get(), pic_ptr->picture_buffer()->output_view().Get(), 0,
- nullptr);
+ ID3D11VideoDecoderOutputView* output_view = nullptr;
+ auto result = pic_ptr->picture_buffer()->AcquireOutputView();
+ if (result.has_value()) {
+ output_view = std::move(result).value();
+ } else {
+ RecordFailure("AcquireOutputView", std::move(result).error());
+ return DecodeStatus::kFail;
+ }
+ const auto hr = video_context_->DecoderBeginFrame(video_decoder_.Get(),
+ output_view, 0, nullptr);
if (SUCCEEDED(hr)) {
break;
} else if (hr == E_PENDING || hr == D3DERR_WASSTILLDRAWING) {