New issue
Advanced search Search tips

Issue 839951 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 522298



Sign in to add a comment

SupportedProfiles-like API for MojoVideoDecoder

Project Member Reported by sande...@chromium.org, May 4 2018

Issue description

Early measurements indicated that IPC to the GPU process IO thread for decoder selection would be fast enough to ignore. Production experiments do not appear to support this, however.

media::VideoDecoder should gain an API for querying config support, similar to the SupportedProfiles API of VideoDecodeAccelerator. In particular, it should support both:
  - Static support, which can be compiled into the renderer decoder selection.
  - Dynamic support (a subset of the static support), which may vary by hardware. These can be queried once per renderer process and cached.

Since MojoVideoDecoder, VdaVideoDecoder, and FallbackVideoDecoder do not statically know which decoders they will be wrapping, some of this information will probably need to be manually maintained.
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 4 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9ddd95699a017666aeeb89aa062af075ee699f93

commit 9ddd95699a017666aeeb89aa062af075ee699f93
Author: Dan Sanders <sandersd@chromium.org>
Date: Fri May 04 20:28:29 2018

[media] Fast path to avoid IPC for VP9 decode on Mac.

Bug: 522298, 839951
Change-Id: I106c081d21c69b3802d4e50ce8ce74f54f6590b1
Reviewed-on: https://chromium-review.googlesource.com/1043252
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556178}
[modify] https://crrev.com/9ddd95699a017666aeeb89aa062af075ee699f93/media/mojo/clients/mojo_video_decoder.cc
[modify] https://crrev.com/9ddd95699a017666aeeb89aa062af075ee699f93/media/mojo/test/mojo_video_decoder_integration_test.cc

Project Member

Comment 2 by bugdroid1@chromium.org, May 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e5100164791cca5bb1e742e93fa73b464e1a24e0

commit e5100164791cca5bb1e742e93fa73b464e1a24e0
Author: Dan Sanders <sandersd@chromium.org>
Date: Mon May 21 21:48:56 2018

[media] Use VDA Capabilities in MojoVideoDecoder.

Basically a quick hack to reduce latency when hardware decode is not
supported, while a more permanent solution is developed. (c.f.
https://chromium-review.googlesource.com/c/chromium/src/+/1066620)

Bug: 839951, 522298
Change-Id: Ib2b51454942e02f144b99605be7915827fc18154
Reviewed-on: https://chromium-review.googlesource.com/1066697
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560348}
[modify] https://crrev.com/e5100164791cca5bb1e742e93fa73b464e1a24e0/media/mojo/clients/mojo_video_decoder.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c32238c85875a3af7b44b340a439bbc597aeadc8

commit c32238c85875a3af7b44b340a439bbc597aeadc8
Author: Dan Sanders <sandersd@chromium.org>
Date: Fri Sep 21 20:53:49 2018

[media] Mojo replacement for VDA SupportedProfiles.

This API allows mojom::VideoDecoder clients to get a list of rules that
can be used to reject unsupported Initialize() calls without additional
IPC.

On the GPU side, this information is gathered from the existing VDA
SupportedProfiles factory.

On the renderer side, GpuVideoAcceleratorFactories is now responsible
for this query, which it does upon construction. If a MojoVideoDecoder
is initialized before the query has completed, MojoVideoDecoder will
call the remote Intitialize() method as normal.

Bug: 839951, 522298
Change-Id: I62b1e2f6ad79f096d273d7591da1e98094b9cbfe
Reviewed-on: https://chromium-review.googlesource.com/1066620
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593327}
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/content/browser/media/android/browser_gpu_video_accelerator_factories.cc
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/content/browser/media/android/browser_gpu_video_accelerator_factories.h
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.h
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/mojo/clients/mojo_video_decoder.cc
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/mojo/interfaces/video_decoder.mojom
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/mojo/services/gpu_mojo_media_client.cc
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/mojo/services/gpu_mojo_media_client.h
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/mojo/services/mojo_media_client.cc
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/mojo/services/mojo_media_client.h
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/mojo/services/mojo_video_decoder_service.cc
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/mojo/services/mojo_video_decoder_service.h
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/mojo/test/mojo_video_decoder_integration_test.cc
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/video/gpu_video_accelerator_factories.h
[modify] https://crrev.com/c32238c85875a3af7b44b340a439bbc597aeadc8/media/video/mock_gpu_video_accelerator_factories.h

Sign in to add a comment