New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 522298 link

Starred by 12 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug


Sign in to add a comment

☂ Implement VDAv2

Project Member Reported by sande...@chromium.org, Aug 18 2015

Issue description

This umbrella bug tracks the implementation of a new VDA layer, currently known as VDAv2. This layer provides a way to use a VideoDecoder implementation running the GPU process from a renderer.
 

Comment 1 by xhw...@chromium.org, Aug 19 2015

Cc: xhw...@chromium.org

Comment 2 by xhw...@chromium.org, Aug 19 2015

Per offline discussion, it seems worth exploring a mojo based implementation to support hosting a VideoDecoder in the GPU process. The VideoDecoder service can be just another service hosted in the MojoMediaApplication.

Currently mojo apps are not supported in the GPU process yet. I am working on adding this support. See  issue 521755  for details.

Comment 3 by w...@chromium.org, Aug 27 2015

Cc: w...@chromium.org
Cc: posciak@chromium.org
Project Member

Comment 5 by bugdroid1@chromium.org, Mar 15 2016

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

commit 02864e3315b0959644d47603a2d2627474deb9fb
Author: sandersd <sandersd@chromium.org>
Date: Tue Mar 15 22:02:09 2016

Add MojoVideoDecoder.

This skeleton adds support for a MojoVideoDecoder, but does not
implement a decoder service.

To enable, use these gn args:
  enable_mojo_media = true
  mojo_media_services = [ "video_decoder" ]

BUG=522298

Review URL: https://codereview.chromium.org/1800953002

Cr-Commit-Position: refs/heads/master@{#381331}

[modify] https://crrev.com/02864e3315b0959644d47603a2d2627474deb9fb/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/02864e3315b0959644d47603a2d2627474deb9fb/media/media_options.gni
[modify] https://crrev.com/02864e3315b0959644d47603a2d2627474deb9fb/media/mojo/services/BUILD.gn
[modify] https://crrev.com/02864e3315b0959644d47603a2d2627474deb9fb/media/mojo/services/mojo_audio_decoder.h
[modify] https://crrev.com/02864e3315b0959644d47603a2d2627474deb9fb/media/mojo/services/mojo_decoder_factory.cc
[modify] https://crrev.com/02864e3315b0959644d47603a2d2627474deb9fb/media/mojo/services/mojo_decoder_factory.h
[add] https://crrev.com/02864e3315b0959644d47603a2d2627474deb9fb/media/mojo/services/mojo_video_decoder.cc
[add] https://crrev.com/02864e3315b0959644d47603a2d2627474deb9fb/media/mojo/services/mojo_video_decoder.h
[modify] https://crrev.com/02864e3315b0959644d47603a2d2627474deb9fb/media/renderers/default_renderer_factory.cc

Labels: Hotlist-CodeHealth
Project Member

Comment 7 by bugdroid1@chromium.org, May 25 2016

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

commit e78f9cb7d7bb4709436482572eb6fcb9a795e3b1
Author: sandersd <sandersd@chromium.org>
Date: Wed May 25 20:06:37 2016

Finish plumbing MojoVideoDecoder.

This completes the work to connect from a renderer to the VideoDecoder service in the GPU process, and implements a basic, functional VideoDecoder service.

There are no working VideoDecoders to actually instantiate yet, so the service will always return false from Configure(). Later CLs will add command buffer stub sharing and other requirements so that real decoders can be implemented.

BUG=522298

Review-Url: https://codereview.chromium.org/1899363002
Cr-Commit-Position: refs/heads/master@{#395971}

[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/content/renderer/media/media_interface_provider.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/base/decoder_factory.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/base/decoder_factory.h
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/common/media_type_converters.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/interfaces/BUILD.gn
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/interfaces/audio_decoder.mojom
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/interfaces/media_types.mojom
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/interfaces/service_factory.mojom
[add] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/interfaces/video_decoder.mojom
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/BUILD.gn
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/android_mojo_media_client.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/default_mojo_media_client.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_audio_decoder.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_audio_decoder.h
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_audio_decoder_service.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_decoder_factory.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_decoder_factory.h
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_media_client.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_media_client.h
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_video_decoder.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_video_decoder.h
[add] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_video_decoder_service.cc
[add] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/mojo_video_decoder_service.h
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/service_factory_impl.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/service_factory_impl.h
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/mojo/services/test_mojo_media_client.cc
[modify] https://crrev.com/e78f9cb7d7bb4709436482572eb6fcb9a795e3b1/media/renderers/default_renderer_factory.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 15 2016

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

commit 3f59257a99c050fa63a00efd44f8a5169afd949d
Author: xhwang <xhwang@chromium.org>
Date: Wed Jun 15 16:53:35 2016

media: Run mojo media application in GPU process on desktop by default

When "enable_mojo_media" is enabled (which is disabled by default on
desktop), we'll host the mojo media application in the gpu process
and have "video_decoder" service enabled. This will be used to test and
support the mojo video decoder service.

For the CDM service on desktop, since the CDM doesn't need to talk to
any other mojo services (it will be called directly by the media
pipeline in the render process), we'll use a different mojo URL (e.g.
mojo:cdm) and host it in the utility process separately.

BUG=522298,403462

Review-Url: https://codereview.chromium.org/2067073002
Cr-Commit-Position: refs/heads/master@{#399929}

[modify] https://crrev.com/3f59257a99c050fa63a00efd44f8a5169afd949d/media/media_options.gni
[modify] https://crrev.com/3f59257a99c050fa63a00efd44f8a5169afd949d/media/mojo/services/service_factory_impl.cc
[modify] https://crrev.com/3f59257a99c050fa63a00efd44f8a5169afd949d/media/mojo/services/service_factory_impl.h

Cc: j.iso...@samsung.com
Project Member

Comment 10 by bugdroid1@chromium.org, Sep 20 2016

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

commit 777e4aae05428625f99dcabddfdd4b581d6516d5
Author: sandersd <sandersd@chromium.org>
Date: Tue Sep 20 18:39:58 2016

MediaService: Implement GetChannelToken IPC

This new IPC provides a non-forgeable token identifying a GpuChannel so
that it can be passed to Mojo services that want to share the same
channel in the GPU process (namely VDAv2 in the MojoMediaApplication).

For simplicity, the IPC is sync. It is handled on the IO thread in the
GPU process, so latency is expected to be manageable (and vastly better
that the already sync CreateVideoDecodeAccelerator IPC).

BUG=522298

Review-Url: https://codereview.chromium.org/2349463003
Cr-Commit-Position: refs/heads/master@{#419826}

[modify] https://crrev.com/777e4aae05428625f99dcabddfdd4b581d6516d5/media/gpu/ipc/common/media_messages.h
[modify] https://crrev.com/777e4aae05428625f99dcabddfdd4b581d6516d5/media/gpu/ipc/service/media_channel.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 21 2016

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

commit 29d0669f53020750e0203ce46a00ba7dfbd9c5fd
Author: sandersd <sandersd@chromium.org>
Date: Fri Oct 21 02:45:44 2016

MojoVideoDecoder: Plumb metadata methods.

This CL plumbs NeedsBitstreamConversion() and GetMaxDecodeRequests(),
which will be available after Initialize() completes, and
CanReadWithoutStalling(), which is updated each time a Decode()
completes.

BUG=522298

Review-Url: https://chromiumcodereview.appspot.com/2429723006
Cr-Commit-Position: refs/heads/master@{#426705}

[modify] https://crrev.com/29d0669f53020750e0203ce46a00ba7dfbd9c5fd/media/base/video_decoder.h
[modify] https://crrev.com/29d0669f53020750e0203ce46a00ba7dfbd9c5fd/media/mojo/clients/mojo_video_decoder.cc
[modify] https://crrev.com/29d0669f53020750e0203ce46a00ba7dfbd9c5fd/media/mojo/clients/mojo_video_decoder.h
[modify] https://crrev.com/29d0669f53020750e0203ce46a00ba7dfbd9c5fd/media/mojo/interfaces/video_decoder.mojom
[modify] https://crrev.com/29d0669f53020750e0203ce46a00ba7dfbd9c5fd/media/mojo/services/mojo_video_decoder_service.cc

Comment 12 by w...@chromium.org, Oct 31 2016

Blocking: 660942
Project Member

Comment 13 by bugdroid1@chromium.org, Dec 6 2016

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

commit 49bcb723fd4305c26c4013f209315ddd35e8c9dc
Author: sandersd <sandersd@chromium.org>
Date: Tue Dec 06 20:52:08 2016

media: Add GpuMojoMediaClient.

This CL introduces GpuMojoMediaClient, a factory for media objects used by MojoMediaService in the GPU process. The MediaGpuChannelManager is plumbed through to GpuMojoMediaClient so that (in a followup CL) services can look up command buffers.

BUG=522298
CQ_INCLUDE_TRYBOTS=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

Review-Url: https://codereview.chromium.org/2382103002
Cr-Commit-Position: refs/heads/master@{#436713}

[modify] https://crrev.com/49bcb723fd4305c26c4013f209315ddd35e8c9dc/content/gpu/gpu_child_thread.cc
[modify] https://crrev.com/49bcb723fd4305c26c4013f209315ddd35e8c9dc/content/gpu/gpu_service_factory.cc
[modify] https://crrev.com/49bcb723fd4305c26c4013f209315ddd35e8c9dc/content/gpu/gpu_service_factory.h
[modify] https://crrev.com/49bcb723fd4305c26c4013f209315ddd35e8c9dc/media/gpu/ipc/service/media_gpu_channel_manager.h
[modify] https://crrev.com/49bcb723fd4305c26c4013f209315ddd35e8c9dc/media/mojo/services/BUILD.gn
[add] https://crrev.com/49bcb723fd4305c26c4013f209315ddd35e8c9dc/media/mojo/services/gpu_mojo_media_client.cc
[add] https://crrev.com/49bcb723fd4305c26c4013f209315ddd35e8c9dc/media/mojo/services/gpu_mojo_media_client.h
[modify] https://crrev.com/49bcb723fd4305c26c4013f209315ddd35e8c9dc/media/mojo/services/media_service_factory.cc
[modify] https://crrev.com/49bcb723fd4305c26c4013f209315ddd35e8c9dc/media/mojo/services/media_service_factory.h

Project Member

Comment 14 by bugdroid1@chromium.org, Jan 12 2017

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

commit 50dfde3153a055f19e836c1400d697e1e95ce954
Author: sandersd <sandersd@chromium.org>
Date: Thu Jan 12 01:01:57 2017

Add MediaGpuChannelManager::LookupChannel().

This adds a path for VDAv2 clients to look up a command buffer identified by |command_buffer_id|.

Also in this CL is a method to look up the route ID from the accelerated GPU factories so that it's easy to pass the |command_buffer_id|.

BUG=522298
CQ_INCLUDE_TRYBOTS=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

Review-Url: https://codereview.chromium.org/2526953003
Cr-Commit-Position: refs/heads/master@{#443097}

[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/content/renderer/media/renderer_gpu_video_accelerator_factories.cc
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/content/renderer/media/renderer_gpu_video_accelerator_factories.h
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/gpu/ipc/service/media_gpu_channel.cc
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/gpu/ipc/service/media_gpu_channel.h
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/gpu/ipc/service/media_gpu_channel_manager.cc
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/gpu/ipc/service/media_gpu_channel_manager.h
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/mojo/clients/mojo_video_decoder.cc
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/mojo/clients/mojo_video_decoder.h
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/mojo/interfaces/video_decoder.mojom
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/mojo/services/gpu_mojo_media_client.cc
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/mojo/services/gpu_mojo_media_client.h
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/mojo/services/mojo_media_client.cc
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/mojo/services/mojo_media_client.h
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/mojo/services/mojo_video_decoder_service.cc
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/mojo/services/mojo_video_decoder_service.h
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/renderers/gpu_video_accelerator_factories.h
[modify] https://crrev.com/50dfde3153a055f19e836c1400d697e1e95ce954/media/renderers/mock_gpu_video_accelerator_factories.h

Cc: -j.iso...@samsung.com julien.isorce@chromium.org
Project Member

Comment 16 by bugdroid1@chromium.org, Mar 2 2017

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

commit ef768ffc5dbe5364af1db5c04da524109b4b5f08
Author: sandersd <sandersd@chromium.org>
Date: Thu Mar 02 23:21:49 2017

Add mailbox-based Mojo VideoFrame variant.

This CL creates a foundation for plumbing mailbox-based Mojo VideoFrames, but
does not fully implement all of the callbacks. The expected implementation (in
MojoVideoDecoderService) is:

  - Once a decoder running in the GPU process has decoded a frame,
MojoVideoDecoderService can attach a |release_token| to the
OnVideoFrameDecoded() IPC along with the frame. In practice, the impl will
generate one whenever the video frame is texture-backed, and it will store refs
to all such outstanding video frames (keyed by this generated |release_token|).

  - The renderer handles the video frame as usual, flowing through the regular
pipeline and compositing steps. Once compositing is done, the compositor sets
the |release_sync_token| based on its own command buffer. The frame is then
destructed (as usual).

  - MojoVideoDecoder receives the destruction callback. At this point the
|release_sync_token| has been verified as part of hopping to the media thread
and command buffer. It now forwards the sync point to the GPU process via the
OnReleaseMailbox() Mojo IPC.

  - MojoVideoDecoderService (on the GPU side) will check that the sync point is
valid, terminating the Mojo connection if it is not. It then looks up, updates,
and removes the video frame from its map. If there is an attached destruction
observer, it will receive the |release_sync_point|, and the decoder will know
that the textures can be re-used after waiting for that.

Note that if the media command buffer and compositor command buffer are ever
merged (again), the validation step won't happen as part of the hopping anymore,
and validation on the GPU side could fail (timing dependent). We would need to
switch to sending the OnReleaseMailbox() IPC via the GPU channel instead of
Mojo in that case (or take the performance hit of validating the sync point from
the Renderer explicitly).

BUG=522298

Review-Url: https://codereview.chromium.org/2640153004
Cr-Commit-Position: refs/heads/master@{#454427}

[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/base/video_frame.cc
[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/base/video_frame.h
[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/mojo/clients/mojo_video_decoder.cc
[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/mojo/clients/mojo_video_decoder.h
[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/mojo/common/BUILD.gn
[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/mojo/common/media_type_converters.cc
[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/mojo/interfaces/BUILD.gn
[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/mojo/interfaces/media_types.mojom
[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/mojo/interfaces/video_decoder.mojom
[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/mojo/services/mojo_video_decoder_service.cc
[modify] https://crrev.com/ef768ffc5dbe5364af1db5c04da524109b4b5f08/media/mojo/services/mojo_video_decoder_service.h

Project Member

Comment 17 by bugdroid1@chromium.org, Jun 16 2017

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

commit 174520a0999989f73c06047b5ce627ad20425489
Author: sandersd <sandersd@chromium.org>
Date: Fri Jun 16 01:46:46 2017

media: Pass output_cb to MojoMediaClient::CreateVideoDecoder()

This callback allows us to associate a ReleaseMailboxCB with each
output, without having to implement a remote interface for VideoFrames.
This exactly matches the semantics of VDA::ReusePictureBuffer, and will
be used to implement it, but also provides a place to stash TextureRef
objects for other decoders.

BUG=522298

Review-Url: https://codereview.chromium.org/2928043002
Cr-Commit-Position: refs/heads/master@{#479890}

[modify] https://crrev.com/174520a0999989f73c06047b5ce627ad20425489/media/mojo/services/gpu_mojo_media_client.cc
[modify] https://crrev.com/174520a0999989f73c06047b5ce627ad20425489/media/mojo/services/gpu_mojo_media_client.h
[modify] https://crrev.com/174520a0999989f73c06047b5ce627ad20425489/media/mojo/services/mojo_media_client.cc
[modify] https://crrev.com/174520a0999989f73c06047b5ce627ad20425489/media/mojo/services/mojo_media_client.h
[modify] https://crrev.com/174520a0999989f73c06047b5ce627ad20425489/media/mojo/services/mojo_video_decoder_service.cc
[modify] https://crrev.com/174520a0999989f73c06047b5ce627ad20425489/media/mojo/services/mojo_video_decoder_service.h

Project Member

Comment 18 by bugdroid1@chromium.org, Jun 23 2017

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

commit 7e2b9f8c41a053a3ca06552808a247e576258593
Author: sandersd <sandersd@chromium.org>
Date: Fri Jun 23 19:31:11 2017

media: Implement MojoVideoDecoder::CanReadWithoutStalling().

This implementation is quite conservative; it only allows changes at the
same time as outputting a VideoFrame. This is fine, since the value is
irrelevant before the first frame, and the only dynamic case
(GpuVideoDecoder) changes values exactly on output.

BUG=522298

Review-Url: https://codereview.chromium.org/2951233002
Cr-Commit-Position: refs/heads/master@{#481989}

[modify] https://crrev.com/7e2b9f8c41a053a3ca06552808a247e576258593/media/mojo/clients/mojo_video_decoder.cc
[modify] https://crrev.com/7e2b9f8c41a053a3ca06552808a247e576258593/media/mojo/clients/mojo_video_decoder.h
[modify] https://crrev.com/7e2b9f8c41a053a3ca06552808a247e576258593/media/mojo/interfaces/video_decoder.mojom
[modify] https://crrev.com/7e2b9f8c41a053a3ca06552808a247e576258593/media/mojo/services/mojo_video_decoder_service.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Jun 27 2017

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

commit d698cc2f6fb72308e7aff05766ba4381a99d09f1
Author: Sunny Sachanandani <sunnyps@chromium.org>
Date: Tue Jun 27 21:50:24 2017

gpu: Allow empty sync tokens in mailboxes.

ResourceProvider doesn't allow an empty sync token to be set on
mailboxes even if that's intended. Furthermore, sync token verification
doesn't work with empty sync tokens so they'd trigger dchecks in the IPC
layer. This CL fixes both these issues. This is intended to be used by
upcoming mojo VDA which runs command in the GPU process before returning
a mailbox to the client. In this case an empty sync token makes sense
because there is nothing to wait for.

R=piman
BUG=522298

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;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: Id9b120d8303e5f32ca63d909d8d2d2b945145da6
Reviewed-on: https://chromium-review.googlesource.com/548973
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482759}
[modify] https://crrev.com/d698cc2f6fb72308e7aff05766ba4381a99d09f1/cc/resources/resource_provider.cc
[modify] https://crrev.com/d698cc2f6fb72308e7aff05766ba4381a99d09f1/cc/resources/resource_provider_unittest.cc
[modify] https://crrev.com/d698cc2f6fb72308e7aff05766ba4381a99d09f1/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/d698cc2f6fb72308e7aff05766ba4381a99d09f1/gpu/command_buffer/client/gles2_implementation_unittest.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Jul 7 2017

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

commit 0ea82f3864289d9103d288edc822f264e62ca9a4
Author: sandersd <sandersd@chromium.org>
Date: Fri Jul 07 23:18:06 2017

media: Add GLES2DecoderHelper

This class wraps a gpu::gles2::GLES2Decoder* to provide utility
functions for VDAs.

BUG=522298
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

Review-Url: https://codereview.chromium.org/2938543005
Cr-Commit-Position: refs/heads/master@{#485091}

[modify] https://crrev.com/0ea82f3864289d9103d288edc822f264e62ca9a4/media/gpu/BUILD.gn
[add] https://crrev.com/0ea82f3864289d9103d288edc822f264e62ca9a4/media/gpu/gles2_decoder_helper.cc
[add] https://crrev.com/0ea82f3864289d9103d288edc822f264e62ca9a4/media/gpu/gles2_decoder_helper.h

Project Member

Comment 21 by bugdroid1@chromium.org, Jul 26 2017

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

commit 70d14d2a335c81fb2e8d35db453d58de423c726d
Author: Sunny Sachanandani <sunnyps@chromium.org>
Date: Wed Jul 26 06:03:59 2017

Reland of gpu: Allow empty sync tokens in mailboxes.

Includes a fix for an issue with not generating sync tokens for copied
hardware planes.

> Original change's description:
> gpu: Allow empty sync tokens in mailboxes.
>
> ResourceProvider doesn't allow an empty sync token to be set on
> mailboxes even if that's intended. Furthermore, sync token verification
> doesn't work with empty sync tokens so they'd trigger dchecks in the IPC
> layer. This CL fixes both these issues. This is intended to be used by
> upcoming mojo VDA which runs command in the GPU process before returning
> a mailbox to the client. In this case an empty sync token makes sense
> because there is nothing to wait for.
>
> R=piman
> BUG=522298
>
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.> android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_te> sts_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.> win:win_optional_gpu_tests_rel
> Change-Id: Id9b120d8303e5f32ca63d909d8d2d2b945145da6
> Reviewed-on: https://chromium-review.googlesource.com/548973
> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#482759}

R=jbauman
TBR=piman,sandersd
BUG=522298,745941

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;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: I188f0f02af653d262cd100cd92a67edd955788bb
Reviewed-on: https://chromium-review.googlesource.com/580197
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: John Bauman <jbauman@chromium.org>
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489563}
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/cc/layers/heads_up_display_layer_impl.cc
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/cc/layers/texture_layer_impl.cc
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/cc/layers/video_layer_impl.cc
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/cc/resources/resource_provider.cc
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/cc/resources/resource_provider.h
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/cc/resources/resource_provider_unittest.cc
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/cc/resources/video_resource_updater.cc
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/gpu/command_buffer/client/gles2_implementation_unittest.cc
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/media/base/video_frame.cc
[modify] https://crrev.com/70d14d2a335c81fb2e8d35db453d58de423c726d/media/base/video_frame.h

Blockedon: 753557
Blocking: 789435
Project Member

Comment 24 by bugdroid1@chromium.org, Apr 13 2018

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

commit e192695db1c49298532a4ca9e872f3430003222f
Author: Dan Sanders <sandersd@chromium.org>
Date: Fri Apr 13 01:56:40 2018

[media] VdaVideoDecoder

This adds VdaVideoDecoder, an adapter that implements the media::VideoDecoder interface using a
media::VideoDecodeAccelerator. VdaVideoDecoder expects to run in the GPU process, with access
to a command buffer stub, as will be the case for decoders created by MojoVideoDecoder.

VdaVideoDecoder runs on the (mojo) IO thread as much as possible, but the VDA interface is
inherently tied to the GPU thread.

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:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I23f81c92b9ad72a5f0141c2eec2a528de1ffa9d3
Bug: 522298
Reviewed-on: https://chromium-review.googlesource.com/940336
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550471}
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/BUILD.gn
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/BUILD.gn
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/command_buffer_helper.cc
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/command_buffer_helper.h
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/fake_command_buffer_helper.cc
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/fake_command_buffer_helper.h
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/gles2_decoder_helper.cc
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/gles2_decoder_helper.h
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/BUILD.gn
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/picture_buffer_manager.cc
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/picture_buffer_manager.h
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/picture_buffer_manager_unittest.cc
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/vda_video_decoder.cc
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/vda_video_decoder.h
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/mojo/services/mojo_video_decoder_service.cc
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/mojo/test/mojo_video_decoder_integration_test.cc

Project Member

Comment 25 by bugdroid1@chromium.org, Apr 13 2018

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

commit 42fdcfd16ef0da4502b1440449cee9abfe4308df
Author: Jianpeng Chao <chaopeng@chromium.org>
Date: Fri Apr 13 03:06:21 2018

Revert "[media] VdaVideoDecoder"

This reverts commit e192695db1c49298532a4ca9e872f3430003222f.

Reason for revert: Buildbot failed.

Original change's description:
> [media] VdaVideoDecoder
> 
> This adds VdaVideoDecoder, an adapter that implements the media::VideoDecoder interface using a
> media::VideoDecodeAccelerator. VdaVideoDecoder expects to run in the GPU process, with access
> to a command buffer stub, as will be the case for decoders created by MojoVideoDecoder.
> 
> VdaVideoDecoder runs on the (mojo) IO thread as much as possible, but the VDA interface is
> inherently tied to the GPU thread.
> 
> 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:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
> Change-Id: I23f81c92b9ad72a5f0141c2eec2a528de1ffa9d3
> Bug: 522298
> Reviewed-on: https://chromium-review.googlesource.com/940336
> Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
> Reviewed-by: Frank Liberato <liberato@chromium.org>
> Commit-Queue: Dan Sanders <sandersd@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#550471}

TBR=xhwang@chromium.org,sandersd@chromium.org,liberato@chromium.org

Change-Id: I706bf6a9b8b31d430b5facd0151e7e20dc73bcfb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 522298,  832484 
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:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1011709
Reviewed-by: Jianpeng Chao <chaopeng@chromium.org>
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550480}
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/BUILD.gn
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/gpu/BUILD.gn
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/command_buffer_helper.cc
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/command_buffer_helper.h
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/fake_command_buffer_helper.cc
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/fake_command_buffer_helper.h
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/gpu/gles2_decoder_helper.cc
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/gpu/gles2_decoder_helper.h
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/gpu/ipc/service/BUILD.gn
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/picture_buffer_manager.cc
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/picture_buffer_manager.h
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/picture_buffer_manager_unittest.cc
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/vda_video_decoder.cc
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/vda_video_decoder.h
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/mojo/services/mojo_video_decoder_service.cc
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/mojo/test/mojo_video_decoder_integration_test.cc

Project Member

Comment 26 by bugdroid1@chromium.org, Apr 16 2018

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

commit 83134b01f67d3ab62151e1a826ab7138167f20ae
Author: Dan Sanders <sandersd@chromium.org>
Date: Mon Apr 16 21:32:57 2018

[media] Reland VdaVideoDecoder

This adds VdaVideoDecoder, an adapter that implements the media::VideoDecoder interface using a
media::VideoDecodeAccelerator. VdaVideoDecoder expects to run in the GPU process, with access
to a command buffer stub, as will be the case for decoders created by MojoVideoDecoder.

VdaVideoDecoder runs on the (mojo) IO thread as much as possible, but the VDA interface is
inherently tied to the GPU thread.

Compared to the original landing (commit e192695db1c49298532a4ca9e872f3430003222f), this change
casts kMaxPlanes to uint32_t before using it as a parameter to DCHECK_LE() in
PictureBufferManager::CreatePictureBuffers().

Bug: 522298
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: Ie3e1b346f9b88692bcb2be12434fb0b6b81ef025
Reviewed-on: https://chromium-review.googlesource.com/1012936
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551125}
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/BUILD.gn
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/BUILD.gn
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/command_buffer_helper.cc
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/command_buffer_helper.h
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/fake_command_buffer_helper.cc
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/fake_command_buffer_helper.h
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/gles2_decoder_helper.cc
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/gles2_decoder_helper.h
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/BUILD.gn
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/picture_buffer_manager.cc
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/picture_buffer_manager.h
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/picture_buffer_manager_unittest.cc
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/vda_video_decoder.cc
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/vda_video_decoder.h
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/mojo/services/mojo_video_decoder_service.cc
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/mojo/test/mojo_video_decoder_integration_test.cc

Project Member

Comment 27 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e192695db1c49298532a4ca9e872f3430003222f

commit e192695db1c49298532a4ca9e872f3430003222f
Author: Dan Sanders <sandersd@chromium.org>
Date: Fri Apr 13 01:56:40 2018

[media] VdaVideoDecoder

This adds VdaVideoDecoder, an adapter that implements the media::VideoDecoder interface using a
media::VideoDecodeAccelerator. VdaVideoDecoder expects to run in the GPU process, with access
to a command buffer stub, as will be the case for decoders created by MojoVideoDecoder.

VdaVideoDecoder runs on the (mojo) IO thread as much as possible, but the VDA interface is
inherently tied to the GPU thread.

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:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I23f81c92b9ad72a5f0141c2eec2a528de1ffa9d3
Bug: 522298
Reviewed-on: https://chromium-review.googlesource.com/940336
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550471}
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/BUILD.gn
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/BUILD.gn
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/command_buffer_helper.cc
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/command_buffer_helper.h
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/fake_command_buffer_helper.cc
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/fake_command_buffer_helper.h
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/gles2_decoder_helper.cc
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/gles2_decoder_helper.h
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/BUILD.gn
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/picture_buffer_manager.cc
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/picture_buffer_manager.h
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/picture_buffer_manager_unittest.cc
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/vda_video_decoder.cc
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/vda_video_decoder.h
[add] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/mojo/services/mojo_video_decoder_service.cc
[modify] https://crrev.com/e192695db1c49298532a4ca9e872f3430003222f/media/mojo/test/mojo_video_decoder_integration_test.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Apr 17 2018

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

commit 42fdcfd16ef0da4502b1440449cee9abfe4308df
Author: Jianpeng Chao <chaopeng@chromium.org>
Date: Fri Apr 13 03:06:21 2018

Revert "[media] VdaVideoDecoder"

This reverts commit e192695db1c49298532a4ca9e872f3430003222f.

Reason for revert: Buildbot failed.

Original change's description:
> [media] VdaVideoDecoder
> 
> This adds VdaVideoDecoder, an adapter that implements the media::VideoDecoder interface using a
> media::VideoDecodeAccelerator. VdaVideoDecoder expects to run in the GPU process, with access
> to a command buffer stub, as will be the case for decoders created by MojoVideoDecoder.
> 
> VdaVideoDecoder runs on the (mojo) IO thread as much as possible, but the VDA interface is
> inherently tied to the GPU thread.
> 
> 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:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
> Change-Id: I23f81c92b9ad72a5f0141c2eec2a528de1ffa9d3
> Bug: 522298
> Reviewed-on: https://chromium-review.googlesource.com/940336
> Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
> Reviewed-by: Frank Liberato <liberato@chromium.org>
> Commit-Queue: Dan Sanders <sandersd@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#550471}

TBR=xhwang@chromium.org,sandersd@chromium.org,liberato@chromium.org

Change-Id: I706bf6a9b8b31d430b5facd0151e7e20dc73bcfb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 522298,  832484 
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:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1011709
Reviewed-by: Jianpeng Chao <chaopeng@chromium.org>
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550480}
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/BUILD.gn
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/gpu/BUILD.gn
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/command_buffer_helper.cc
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/command_buffer_helper.h
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/fake_command_buffer_helper.cc
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/fake_command_buffer_helper.h
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/gpu/gles2_decoder_helper.cc
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/gpu/gles2_decoder_helper.h
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/gpu/ipc/service/BUILD.gn
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/picture_buffer_manager.cc
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/picture_buffer_manager.h
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/picture_buffer_manager_unittest.cc
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/vda_video_decoder.cc
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/vda_video_decoder.h
[delete] https://crrev.com/c38bba2dcbdf40ac601dcedf6ead8163ee2e784c/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/mojo/services/mojo_video_decoder_service.cc
[modify] https://crrev.com/42fdcfd16ef0da4502b1440449cee9abfe4308df/media/mojo/test/mojo_video_decoder_integration_test.cc

Project Member

Comment 29 by bugdroid1@chromium.org, Apr 17 2018

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

commit 83134b01f67d3ab62151e1a826ab7138167f20ae
Author: Dan Sanders <sandersd@chromium.org>
Date: Mon Apr 16 21:32:57 2018

[media] Reland VdaVideoDecoder

This adds VdaVideoDecoder, an adapter that implements the media::VideoDecoder interface using a
media::VideoDecodeAccelerator. VdaVideoDecoder expects to run in the GPU process, with access
to a command buffer stub, as will be the case for decoders created by MojoVideoDecoder.

VdaVideoDecoder runs on the (mojo) IO thread as much as possible, but the VDA interface is
inherently tied to the GPU thread.

Compared to the original landing (commit e192695db1c49298532a4ca9e872f3430003222f), this change
casts kMaxPlanes to uint32_t before using it as a parameter to DCHECK_LE() in
PictureBufferManager::CreatePictureBuffers().

Bug: 522298
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: Ie3e1b346f9b88692bcb2be12434fb0b6b81ef025
Reviewed-on: https://chromium-review.googlesource.com/1012936
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551125}
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/BUILD.gn
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/BUILD.gn
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/command_buffer_helper.cc
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/command_buffer_helper.h
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/fake_command_buffer_helper.cc
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/fake_command_buffer_helper.h
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/gles2_decoder_helper.cc
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/gles2_decoder_helper.h
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/BUILD.gn
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/picture_buffer_manager.cc
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/picture_buffer_manager.h
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/picture_buffer_manager_unittest.cc
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/vda_video_decoder.cc
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/vda_video_decoder.h
[add] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/mojo/services/mojo_video_decoder_service.cc
[modify] https://crrev.com/83134b01f67d3ab62151e1a826ab7138167f20ae/media/mojo/test/mojo_video_decoder_integration_test.cc

Project Member

Comment 30 by bugdroid1@chromium.org, Apr 17 2018

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

commit 0134bec3988473d078a0f8a0cbb0dadcef5b9ab6
Author: Dan Sanders <sandersd@chromium.org>
Date: Tue Apr 17 20:12:12 2018

[media] Use GpuVideoDecodeAcceleratorFactory in VDAVD.

This enables VdaVideoDecoder to construct VDAs for all platforms except Android.

Changes to enable VdaVideoDecoder on Mac are included; pass
--enable-features=MojoVideoDecoder to test.

Bug: 522298
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;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I99a37e43f7225bc11f134743b91c307f106cf7a3
Reviewed-on: https://chromium-review.googlesource.com/1011256
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551451}
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/content/gpu/gpu_child_thread.cc
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/content/gpu/gpu_service_factory.cc
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/content/gpu/gpu_service_factory.h
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/gpu/BUILD.gn
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/gpu/command_buffer_helper.cc
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/gpu/command_buffer_helper.h
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/gpu/fake_command_buffer_helper.cc
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/gpu/fake_command_buffer_helper.h
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/gpu/gles2_decoder_helper.cc
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/gpu/gles2_decoder_helper.h
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/gpu/ipc/service/vda_video_decoder.cc
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/gpu/ipc/service/vda_video_decoder.h
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/media_options.gni
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/mojo/services/gpu_mojo_media_client.cc
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/mojo/services/gpu_mojo_media_client.h
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/mojo/services/media_service_factory.cc
[modify] https://crrev.com/0134bec3988473d078a0f8a0cbb0dadcef5b9ab6/media/mojo/services/media_service_factory.h

Project Member

Comment 31 by bugdroid1@chromium.org, Apr 19 2018

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

commit 2a3e5a55a52d30693d3582a06f160ff227514bcc
Author: Dan Sanders <sandersd@chromium.org>
Date: Thu Apr 19 02:41:30 2018

[media] Count MojoVideoDecoder as a hardware decoder in UMAs.

Bug: 522298
Change-Id: Id8ba5728effe322e63af162e3abbc482237d5f87
Reviewed-on: https://chromium-review.googlesource.com/1017907
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551924}
[modify] https://crrev.com/2a3e5a55a52d30693d3582a06f160ff227514bcc/content/browser/media/media_internals.cc

Project Member

Comment 32 by bugdroid1@chromium.org, Apr 24 2018

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

commit 4596c80251c8c66e2335ca01f56eba4621952dc7
Author: Dan Sanders <sandersd@chromium.org>
Date: Tue Apr 24 23:34:41 2018

[media] Add interface for VDAs to Decode() media::DecoderBuffers.

Using DecoderBuffer removes the need to provided SharedMemoryHandles in
cases that SharedMemory is not already allocated (in particular, when
VDAs are used through MojoVideoDecoder+VdaVideoDecoder). Since
base::SharedMemory is not an interface, a new type is required, and
DecoderBuffer already implements a suitable interface for this use case.

This CL adds:
  - A VideoDecodeAccelerator::Decode() overload for decoding
    DecoderBuffers, which VDAs may optionally implement.
    Note that VdaVideoDecoder will require this, and therefore all VDAs
    will be updated to support DecoderBuffers over time.
  - Support for SHM in DecoderBuffer. This eases the transition by
    allowing BitstreamBuffers to be easily converted to equivalent
    DecoderBuffers.
  - An implementation of the new VideoDecodeAccelerator::Decode()
    overload in VTVideoDecodeAccelerator.
  - Calling the new overload from VdaVideoDecoder.

Bug: 522298
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: Ib932c3524b37e339f592b150685937ea94d4199d
Reviewed-on: https://chromium-review.googlesource.com/1015965
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553364}
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/base/BUILD.gn
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/base/bitstream_buffer.cc
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/base/bitstream_buffer.h
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/base/decoder_buffer.cc
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/base/decoder_buffer.h
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/base/decoder_buffer_unittest.cc
[add] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/base/unaligned_shared_memory.cc
[add] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/base/unaligned_shared_memory.h
[add] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/base/unaligned_shared_memory_unittest.cc
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/gpu/ipc/service/vda_video_decoder.cc
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/gpu/ipc/service/vda_video_decoder.h
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/gpu/shared_memory_region.cc
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/gpu/shared_memory_region.h
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/gpu/vt_video_decode_accelerator_mac.cc
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/gpu/vt_video_decode_accelerator_mac.h
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/video/mock_video_decode_accelerator.h
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/video/video_decode_accelerator.cc
[modify] https://crrev.com/4596c80251c8c66e2335ca01f56eba4621952dc7/media/video/video_decode_accelerator.h

Project Member

Comment 33 by bugdroid1@chromium.org, Apr 25 2018

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

commit cde65892e73020b11c58cd99f7e218d0826246c8
Author: Lei Zhang <thestig@chromium.org>
Date: Wed Apr 25 05:15:51 2018

Revert "[media] Add interface for VDAs to Decode() media::DecoderBuffers."

This reverts commit 4596c80251c8c66e2335ca01f56eba4621952dc7.

Reason for revert: UnalignedSharedMemoryTest failing on multiple bots.

Original change's description:
> [media] Add interface for VDAs to Decode() media::DecoderBuffers.
> 
> Using DecoderBuffer removes the need to provided SharedMemoryHandles in
> cases that SharedMemory is not already allocated (in particular, when
> VDAs are used through MojoVideoDecoder+VdaVideoDecoder). Since
> base::SharedMemory is not an interface, a new type is required, and
> DecoderBuffer already implements a suitable interface for this use case.
> 
> This CL adds:
>   - A VideoDecodeAccelerator::Decode() overload for decoding
>     DecoderBuffers, which VDAs may optionally implement.
>     Note that VdaVideoDecoder will require this, and therefore all VDAs
>     will be updated to support DecoderBuffers over time.
>   - Support for SHM in DecoderBuffer. This eases the transition by
>     allowing BitstreamBuffers to be easily converted to equivalent
>     DecoderBuffers.
>   - An implementation of the new VideoDecodeAccelerator::Decode()
>     overload in VTVideoDecodeAccelerator.
>   - Calling the new overload from VdaVideoDecoder.
> 
> Bug: 522298
> 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: Ib932c3524b37e339f592b150685937ea94d4199d
> Reviewed-on: https://chromium-review.googlesource.com/1015965
> Reviewed-by: Pawel Osciak <posciak@chromium.org>
> Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
> Commit-Queue: Dan Sanders <sandersd@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#553364}

TBR=posciak@chromium.org,dalecurtis@chromium.org,sandersd@chromium.org

Change-Id: Iad674ebb5286d5f068b2fc7bb6c67ab5f9a26fc0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 522298
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
Reviewed-on: https://chromium-review.googlesource.com/1026914
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553456}
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/base/BUILD.gn
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/base/bitstream_buffer.cc
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/base/bitstream_buffer.h
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/base/decoder_buffer.cc
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/base/decoder_buffer.h
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/base/decoder_buffer_unittest.cc
[delete] https://crrev.com/e931d2aecb4d72946962e57e7e1586668071b504/media/base/unaligned_shared_memory.cc
[delete] https://crrev.com/e931d2aecb4d72946962e57e7e1586668071b504/media/base/unaligned_shared_memory.h
[delete] https://crrev.com/e931d2aecb4d72946962e57e7e1586668071b504/media/base/unaligned_shared_memory_unittest.cc
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/gpu/ipc/service/vda_video_decoder.cc
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/gpu/ipc/service/vda_video_decoder.h
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/gpu/shared_memory_region.cc
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/gpu/shared_memory_region.h
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/gpu/vt_video_decode_accelerator_mac.cc
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/gpu/vt_video_decode_accelerator_mac.h
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/video/mock_video_decode_accelerator.h
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/video/video_decode_accelerator.cc
[modify] https://crrev.com/cde65892e73020b11c58cd99f7e218d0826246c8/media/video/video_decode_accelerator.h

Project Member

Comment 34 by bugdroid1@chromium.org, Apr 26 2018

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

commit 65496f518c894b979d7c4c9e5d3c06529a94ad46
Author: Dan Sanders <sandersd@chromium.org>
Date: Thu Apr 26 01:52:09 2018

[media] Reland: Add interface for VDAs to Decode() media::DecoderBuffers.

Using DecoderBuffer removes the need to provided SharedMemoryHandles in
cases that SharedMemory is not already allocated (in particular, when
VDAs are used through MojoVideoDecoder+VdaVideoDecoder). Since
base::SharedMemory is not an interface, a new type is required, and
DecoderBuffer already implements a suitable interface for this use case.

This CL adds:
  - A VideoDecodeAccelerator::Decode() overload for decoding
    DecoderBuffers, which VDAs may optionally implement.
    Note that VdaVideoDecoder will require this, and therefore all VDAs
    will be updated to support DecoderBuffers over time.
  - Support for SHM in DecoderBuffer. This eases the transition by
    allowing BitstreamBuffers to be easily converted to equivalent
    DecoderBuffers.
  - An implementation of the new VideoDecodeAccelerator::Decode()
    overload in VTVideoDecodeAccelerator.
  - Calling the new overload from VdaVideoDecoder.

Originally landed as 4596c80251c8c66e2335ca01f56eba4621952dc7. This
reland removes a DCHECK() in unaligned_shared_memory_unittest.cc so that
SHM is still allocated when DCHECKs are disabled.

Bug: 522298
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: Id5d6bb103070dfcb23e3db82c68d2ead23b9e3b5
Reviewed-on: https://chromium-review.googlesource.com/1028834
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553875}
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/base/BUILD.gn
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/base/bitstream_buffer.cc
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/base/bitstream_buffer.h
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/base/decoder_buffer.cc
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/base/decoder_buffer.h
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/base/decoder_buffer_unittest.cc
[add] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/base/unaligned_shared_memory.cc
[add] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/base/unaligned_shared_memory.h
[add] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/base/unaligned_shared_memory_unittest.cc
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/gpu/ipc/service/vda_video_decoder.cc
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/gpu/ipc/service/vda_video_decoder.h
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/gpu/shared_memory_region.cc
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/gpu/shared_memory_region.h
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/gpu/vt_video_decode_accelerator_mac.cc
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/gpu/vt_video_decode_accelerator_mac.h
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/video/mock_video_decode_accelerator.h
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/video/video_decode_accelerator.cc
[modify] https://crrev.com/65496f518c894b979d7c4c9e5d3c06529a94ad46/media/video/video_decode_accelerator.h

Project Member

Comment 35 by bugdroid1@chromium.org, Apr 27 2018

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

commit 39bb0136bd66c8d11bb05c090aa74ce8b698ab77
Author: Dan Sanders <sandersd@chromium.org>
Date: Fri Apr 27 23:24:46 2018

[media] Do not configure mipmaps in gles2_decoder_helper.

This fails on Mac when run in a headless content_shell.

Also fixes an incorrect thread post bug in VdaVideoDecoder.

Bug: 522298
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: I09d397ee108920fc35e8aadc45d9b47840eb8686
Reviewed-on: https://chromium-review.googlesource.com/1033834
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554555}
[modify] https://crrev.com/39bb0136bd66c8d11bb05c090aa74ce8b698ab77/media/gpu/command_buffer_helper.h
[modify] https://crrev.com/39bb0136bd66c8d11bb05c090aa74ce8b698ab77/media/gpu/gles2_decoder_helper.cc
[modify] https://crrev.com/39bb0136bd66c8d11bb05c090aa74ce8b698ab77/media/gpu/gles2_decoder_helper.h
[modify] https://crrev.com/39bb0136bd66c8d11bb05c090aa74ce8b698ab77/media/gpu/ipc/service/vda_video_decoder.cc

Project Member

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

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

commit 3a85529b33a9f6f8b920932884503ab60d1c9b49
Author: Dan Sanders <sandersd@chromium.org>
Date: Tue May 01 21:08:32 2018

[media] Make MojoMediaLog implementation thread-safe.

Also plumbs the media log to VdaVideoDecoder, in preparation for
plumbing all the way to VDAs.

Bug: 522298
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: Id19d3edf130ac6b8aae8a86b9b7afbf5e464eafb
Reviewed-on: https://chromium-review.googlesource.com/1036590
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555181}
[modify] https://crrev.com/3a85529b33a9f6f8b920932884503ab60d1c9b49/media/base/media_log.h
[modify] https://crrev.com/3a85529b33a9f6f8b920932884503ab60d1c9b49/media/gpu/ipc/service/vda_video_decoder.cc
[modify] https://crrev.com/3a85529b33a9f6f8b920932884503ab60d1c9b49/media/gpu/ipc/service/vda_video_decoder.h
[modify] https://crrev.com/3a85529b33a9f6f8b920932884503ab60d1c9b49/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/3a85529b33a9f6f8b920932884503ab60d1c9b49/media/mojo/services/gpu_mojo_media_client.cc
[modify] https://crrev.com/3a85529b33a9f6f8b920932884503ab60d1c9b49/media/mojo/services/mojo_media_log.cc
[modify] https://crrev.com/3a85529b33a9f6f8b920932884503ab60d1c9b49/media/mojo/services/mojo_media_log.h
[modify] https://crrev.com/3a85529b33a9f6f8b920932884503ab60d1c9b49/media/mojo/services/mojo_video_decoder_service.cc

Blockedon: 839951
Project Member

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

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

commit 39e7de240b63c0103078624d09130c4a990920d2
Author: Dan Sanders <sandersd@chromium.org>
Date: Fri May 04 20:04:24 2018

[media] Log to MediaLog from VTVDA.

This moves logging of bitstream errors that were previously in the GPU
log to the media log.

To support async destruction correctly, VdaVideoDecoder now implements
the MediaLog interface and handles thread hopping.

Also includes some additional cleanups in VTVDA: improved log messages,
increase the number of requested picture buffers to match recent changes
in DXVAVD, and returns no supported profiles if VideoToolbox fails to
initialize.

Bug: 522298
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: I7f13deb9e92fdeeeac60479e17081e72c5f22066
Reviewed-on: https://chromium-review.googlesource.com/1038609
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556164}
[modify] https://crrev.com/39e7de240b63c0103078624d09130c4a990920d2/media/gpu/gpu_video_decode_accelerator_factory.cc
[modify] https://crrev.com/39e7de240b63c0103078624d09130c4a990920d2/media/gpu/gpu_video_decode_accelerator_factory.h
[modify] https://crrev.com/39e7de240b63c0103078624d09130c4a990920d2/media/gpu/ipc/service/vda_video_decoder.cc
[modify] https://crrev.com/39e7de240b63c0103078624d09130c4a990920d2/media/gpu/ipc/service/vda_video_decoder.h
[modify] https://crrev.com/39e7de240b63c0103078624d09130c4a990920d2/media/gpu/ipc/service/vda_video_decoder_unittest.cc
[modify] https://crrev.com/39e7de240b63c0103078624d09130c4a990920d2/media/gpu/vt_video_decode_accelerator_mac.cc
[modify] https://crrev.com/39e7de240b63c0103078624d09130c4a990920d2/media/gpu/vt_video_decode_accelerator_mac.h

Project Member

Comment 39 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 40 by bugdroid1@chromium.org, May 14 2018

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

commit 25d61868410ed4a6afde89db7d9b06f84f0cd2b4
Author: Dan Sanders <sandersd@chromium.org>
Date: Mon May 14 19:52:10 2018

[media] Support DecoderBuffer-based Decode() in DXVAVDA

Also adds support for empty buffer to VTVDA, since this feature is
supported on Windows.

Bug: 522298
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: I15fcbee034b4be6c56d04b283931a7c4ea6b82ab
Reviewed-on: https://chromium-review.googlesource.com/1056322
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558422}
[modify] https://crrev.com/25d61868410ed4a6afde89db7d9b06f84f0cd2b4/media/gpu/vt_video_decode_accelerator_mac.cc
[modify] https://crrev.com/25d61868410ed4a6afde89db7d9b06f84f0cd2b4/media/gpu/windows/dxva_video_decode_accelerator_win.cc
[modify] https://crrev.com/25d61868410ed4a6afde89db7d9b06f84f0cd2b4/media/gpu/windows/dxva_video_decode_accelerator_win.h

Project Member

Comment 41 by bugdroid1@chromium.org, May 15 2018

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

commit 966d2bb87aeef9c99419839c7a0230b9b63accc5
Author: Dan Sanders <sandersd@chromium.org>
Date: Tue May 15 18:32:15 2018

[media] Enable VdaVideoDecoder on Windows.

Bug: 522298
Change-Id: I0450f150aed0c84935b1355f849331d97ed17ab2
Reviewed-on: https://chromium-review.googlesource.com/1056325
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558784}
[modify] https://crrev.com/966d2bb87aeef9c99419839c7a0230b9b63accc5/media/base/media_switches.cc
[modify] https://crrev.com/966d2bb87aeef9c99419839c7a0230b9b63accc5/media/base/media_switches.h
[modify] https://crrev.com/966d2bb87aeef9c99419839c7a0230b9b63accc5/media/mojo/services/gpu_mojo_media_client.cc

Project Member

Comment 42 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

Cc: acourbot@chromium.org
Blockedon: 857111
Project Member

Comment 45 by bugdroid1@chromium.org, Sep 11

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

commit 31e2e42a92a1b1a2b3f5b0685925670706c476d0
Author: Dan Sanders <sandersd@chromium.org>
Date: Tue Sep 11 21:43:34 2018

[media] Support parent thread decode in VdaVideoDecoder.

Bug: 522298
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: I48b205e7b20cf512e953d5992be6ed507add688b
Reviewed-on: https://chromium-review.googlesource.com/1217716
Reviewed-by: Frank Liberato <liberato@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590479}
[modify] https://crrev.com/31e2e42a92a1b1a2b3f5b0685925670706c476d0/media/gpu/ipc/service/vda_video_decoder.cc
[modify] https://crrev.com/31e2e42a92a1b1a2b3f5b0685925670706c476d0/media/gpu/ipc/service/vda_video_decoder.h
[modify] https://crrev.com/31e2e42a92a1b1a2b3f5b0685925670706c476d0/media/gpu/ipc/service/vda_video_decoder_unittest.cc

Project Member

Comment 46 by bugdroid1@chromium.org, Sep 12

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

commit 0a51ba53485efc7234f1af7de95cab9d08ffe48c
Author: Dan Sanders <sandersd@chromium.org>
Date: Wed Sep 12 22:33:55 2018

[media] Support DecoderBuffers in CrOS VDAs.

DecoderBuffers abstract over SHM and heap allocations. This is necessary
to efficiently use these VDAs via MojoVideoDecoder.

Bug: 522298
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: I1d27410a8fcc4da2786696fba802cf956893f91d
Reviewed-on: https://chromium-review.googlesource.com/1175097
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590842}
[modify] https://crrev.com/0a51ba53485efc7234f1af7de95cab9d08ffe48c/media/base/decoder_buffer.h
[modify] https://crrev.com/0a51ba53485efc7234f1af7de95cab9d08ffe48c/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
[modify] https://crrev.com/0a51ba53485efc7234f1af7de95cab9d08ffe48c/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.h
[modify] https://crrev.com/0a51ba53485efc7234f1af7de95cab9d08ffe48c/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
[modify] https://crrev.com/0a51ba53485efc7234f1af7de95cab9d08ffe48c/media/gpu/v4l2/v4l2_video_decode_accelerator.h
[modify] https://crrev.com/0a51ba53485efc7234f1af7de95cab9d08ffe48c/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
[modify] https://crrev.com/0a51ba53485efc7234f1af7de95cab9d08ffe48c/media/gpu/vaapi/vaapi_video_decode_accelerator.h
[modify] https://crrev.com/0a51ba53485efc7234f1af7de95cab9d08ffe48c/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc

Project Member

Comment 47 by bugdroid1@chromium.org, Sep 13

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

commit dd2b33061448749c7352c4e54d07da0d9f9b6d2f
Author: Dan Sanders <sandersd@chromium.org>
Date: Thu Sep 13 21:19:07 2018

[media] Allow MojoVideoDecoder feature on ChromeOS.

Now that all CrOS VDAs are supported by VdaVideoDecoder, this CL allows
--enable-features=MojoVideoDecoder to switch from GpuVideoDecoder to
MojoVideoDecoder on CrOS.

Bug: 522298
Change-Id: Ib4dd7adcd2d451837a35e84b2876079dc3429106
Reviewed-on: https://chromium-review.googlesource.com/1225275
Reviewed-by: Frank Liberato <liberato@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591159}
[modify] https://crrev.com/dd2b33061448749c7352c4e54d07da0d9f9b6d2f/media/media_options.gni
[modify] https://crrev.com/dd2b33061448749c7352c4e54d07da0d9f9b6d2f/media/mojo/services/gpu_mojo_media_client.cc

Project Member

Comment 48 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

Project Member

Comment 49 by bugdroid1@chromium.org, Nov 6

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

commit 44323658c5cc4fff0a2d4a0bcd1d4aa9a7290c87
Author: Dan Sanders <sandersd@chromium.org>
Date: Tue Nov 06 18:29:16 2018

[media] Enable MojoVideoDecoder by default.

Experiments have been uneventful for many weeks. Enable by default for M72.

TimeToFirstFrame is negatively impacted by this change, as the startup IPC now
hops throught the browser where before it went directly over the GPU channel.
The cost is typically less than 30ms. Reconfigurations are faster because
PictureBuffer allocation no longer requires any IPC.

Bug: 522298
Change-Id: I40ea00150f7dadfe2319e2cdb27e3be5f29a702c
Reviewed-on: https://chromium-review.googlesource.com/c/1315940
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605752}
[modify] https://crrev.com/44323658c5cc4fff0a2d4a0bcd1d4aa9a7290c87/media/base/media_switches.cc
[modify] https://crrev.com/44323658c5cc4fff0a2d4a0bcd1d4aa9a7290c87/media/gpu/windows/dxva_video_decode_accelerator_win.cc

Project Member

Comment 50 by bugdroid1@chromium.org, Dec 14

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

commit 241124f96bf25b08fe2f65f0259b618accfd7ec7
Author: Julien Isorce <julien.isorce@chromium.org>
Date: Fri Dec 14 22:33:26 2018

Make sure to fallback to VDA1 if mojo video decoder is disabled at buildtime

Also avoids a few ipc round trips when mojo video decoder is enabled
at buildtime but disabled at runtime.
Previously external_decoder_factory_->CreateVideoDecoders was still
called in that case.

Tested on Linux desktop with gn args:
  - use_vaapi = true (default is false)
  - enable_mojo_media = false (default is also false)
  ./out/release/chrome --ignore-gpu-blacklist --use-gl=desktop url_to_vp9_video
  ./out/release/chrome --ignore-gpu-blacklist --use-gl=egl url_to_vp9_video
  -> GpuVideoDecoder (VDA1) was in use

Bug: 522298
Change-Id: Ia7566877f76da8d108d8993c57c6d29d745cfa8a
Reviewed-on: https://chromium-review.googlesource.com/c/1374741
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616855}
[modify] https://crrev.com/241124f96bf25b08fe2f65f0259b618accfd7ec7/content/browser/media/key_system_support_impl.cc
[modify] https://crrev.com/241124f96bf25b08fe2f65f0259b618accfd7ec7/media/renderers/default_decoder_factory.cc

Project Member

Comment 51 by bugdroid1@chromium.org, Dec 15

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

commit 31225b9c5f3f685d65f742dc129241c30c32157c
Author: Julien Isorce <julien.isorce@chromium.org>
Date: Sat Dec 15 01:02:18 2018

Enable mojo video decoders by default on Linux desktop if use_vaapi is true

Already the case for ChromeOS, Mac and Win. And run the service
in the GPU process too. Except that here the gn arg use_vaapi
has to be true as well.

Note that this CL does not change the following:
  - the gn arg 'use_vaapi' is still false by default on Linux,
    see media/gpu/args.gni
  - 'accelerated_video_decode' is still black listed on Linux,
    see entry 48 in gpu/config/software_rendering_list.json
  - it is still not possible to enable hw video decode from
    about:flags, see chrome/browser/about_flags.cc

Also note that with this CL the ffmpeg and libvpx video decoders
are still selected thanks to media::DecoderSelector::SelectDecoder
in case vaapi fails to initialize.

Also see https://chromium-review.googlesource.com/c/chromium/src/+/1225275/
which was very similar but for ChromeOS.

Tested on Linux desktop with gn args:
  - use_vaapi = true (default is false)
  ./out/release/chrome --ignore-gpu-blacklist --use-gl=desktop url_to_vp9_video
  ./out/release/chrome --ignore-gpu-blacklist --use-gl=egl url_to_vp9_video
   -> MojoVideoDecoder was in use and VaapiVideoDecodeAccelerator runing in the
      GPU process, through MojoVideoDecoderService


Bug: 522298
Change-Id: Ia19f9f3edc0af488a477a16001b7de4f4818b3b2
Reviewed-on: https://chromium-review.googlesource.com/c/1370717
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616901}
[modify] https://crrev.com/31225b9c5f3f685d65f742dc129241c30c32157c/media/media_options.gni
[modify] https://crrev.com/31225b9c5f3f685d65f742dc129241c30c32157c/media/mojo/services/gpu_mojo_media_client.cc

Sign in to add a comment