We need to refactor AVDA into MCVD, which will implement media::VideoDecoder and be used remotely through the MojoVideoDecoder.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/265d88ba39df12b89f9c9a93aa2297c4adecd94a commit 265d88ba39df12b89f9c9a93aa2297c4adecd94a Author: watk <watk@chromium.org> Date: Fri Dec 02 03:51:04 2016 media: Add MediaCodecVideoDecoder (as a copy of AVDA initially) This is the first commit in a series to implement MediaCodecVideoDecoder to deprecate AndroidVideoDecodeAccelerator. In this CL MCVD is just a copy of AVDA with some automatic renaming. It doesn't build. BUG= 660942 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/2549643002 Cr-Commit-Position: refs/heads/master@{#435847} [add] https://crrev.com/265d88ba39df12b89f9c9a93aa2297c4adecd94a/media/gpu/android/media_codec_video_decoder.cc [add] https://crrev.com/265d88ba39df12b89f9c9a93aa2297c4adecd94a/media/gpu/android/media_codec_video_decoder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/10cf4db3bb82ae815eb35c0381ab2994dad2a1fe commit 10cf4db3bb82ae815eb35c0381ab2994dad2a1fe Author: watk <watk@chromium.org> Date: Sat Dec 03 00:25:07 2016 media: Delete VDA specific code from MCVD This deletes things that are very VDA specific and will not be reusable. BUG= 660942 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/2550523003 Cr-Commit-Position: refs/heads/master@{#436098} [modify] https://crrev.com/10cf4db3bb82ae815eb35c0381ab2994dad2a1fe/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/10cf4db3bb82ae815eb35c0381ab2994dad2a1fe/media/gpu/android/media_codec_video_decoder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0dfa90016056dc7ad38fe179e5f23a0cb57d6cc5 commit 0dfa90016056dc7ad38fe179e5f23a0cb57d6cc5 Author: watk <watk@chromium.org> Date: Sat Dec 03 01:41:42 2016 media: Convert GetSupportedProfiles to IsConfigSupported in MCVD Supported profiles will not be used. Support is tested by trying to initialize the decoder. BUG= 660942 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/2548923002 Cr-Commit-Position: refs/heads/master@{#436135} [modify] https://crrev.com/0dfa90016056dc7ad38fe179e5f23a0cb57d6cc5/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/0dfa90016056dc7ad38fe179e5f23a0cb57d6cc5/media/gpu/android/media_codec_video_decoder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8897c835c2c252898b58b479dc6f5a514bd0edfc commit 8897c835c2c252898b58b479dc6f5a514bd0edfc Author: watk <watk@chromium.org> Date: Tue Dec 06 21:25:43 2016 media: Pare MCVD down to a minimal media::VideoDecoder Originally the plan was to iterate on MCVD by starting with AVDA and deleting/refactoring, but that didn't turn out well. The diffs were noisy and it was a lot of work to keep it building. Now we're changing direction and building MCVD from the ground up, taking pieces of AVDA where necessary. It builds and comes with a minimal unittest. BUG= 660942 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/2552883003 Cr-Commit-Position: refs/heads/master@{#436733} [modify] https://crrev.com/8897c835c2c252898b58b479dc6f5a514bd0edfc/media/base/test_helpers.cc [modify] https://crrev.com/8897c835c2c252898b58b479dc6f5a514bd0edfc/media/base/test_helpers.h [modify] https://crrev.com/8897c835c2c252898b58b479dc6f5a514bd0edfc/media/gpu/BUILD.gn [modify] https://crrev.com/8897c835c2c252898b58b479dc6f5a514bd0edfc/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/8897c835c2c252898b58b479dc6f5a514bd0edfc/media/gpu/android/media_codec_video_decoder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7fa9f4ce28c3fa048620ee419f40dd9c5b10eeda commit 7fa9f4ce28c3fa048620ee419f40dd9c5b10eeda Author: watk <watk@chromium.org> Date: Fri Dec 09 21:35:19 2016 media: Add a unittest for MediaCodecVideoDecoder BUG= 660942 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/2561653002 Cr-Commit-Position: refs/heads/master@{#437663} [add] https://crrev.com/7fa9f4ce28c3fa048620ee419f40dd9c5b10eeda/media/gpu/android/media_codec_video_decoder_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/70e667e8760193c544959ef7cd388ccfb5ecb939 commit 70e667e8760193c544959ef7cd388ccfb5ecb939 Author: Chris Watkins <watk@chromium.org> Date: Mon May 22 19:49:33 2017 media: Implement MediaCodecVideoDecoder initialization This adds initialization logic to MediaCodecVideoDecoder. Most of it comes from AVDA with some tweaks. It also includes moving FakeCodecAllocator to its own file for reuse. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ib835ed7fdc263ef321c264978a6185134501ab87 Reviewed-on: https://chromium-review.googlesource.com/509895 Reviewed-by: Frank Liberato <liberato@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#473660} [modify] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/BUILD.gn [add] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/android/fake_codec_allocator.cc [add] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/android/fake_codec_allocator.h [modify] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/android/media_codec_video_decoder_unittest.cc [modify] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/android_video_decode_accelerator.cc [modify] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/android_video_decode_accelerator_unittest.cc [modify] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/avda_codec_allocator.cc [modify] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/avda_codec_allocator.h [modify] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/avda_surface_bundle.cc [modify] https://crrev.com/70e667e8760193c544959ef7cd388ccfb5ecb939/media/gpu/avda_surface_bundle.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3285ffe2d06230a9722894457649e20516fef72f commit 3285ffe2d06230a9722894457649e20516fef72f Author: Chris Watkins <watk@chromium.org> Date: Thu May 25 18:42:16 2017 media: Move WaitForFrameAvailable logic from AVDASharedState to SurfaceTextureGLOwner Conceptually it makes sense for SurfaceTexture to keep track of incoming buffers and expose a way to wait for them to be available. This will also let us share the logic between AVDA and MCVD. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: If08e0236a308c465a52557b69bd31e421405dbd6 Reviewed-on: https://chromium-review.googlesource.com/514210 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#474721} [modify] https://crrev.com/3285ffe2d06230a9722894457649e20516fef72f/media/gpu/avda_picture_buffer_manager.cc [modify] https://crrev.com/3285ffe2d06230a9722894457649e20516fef72f/media/gpu/avda_shared_state.cc [modify] https://crrev.com/3285ffe2d06230a9722894457649e20516fef72f/media/gpu/avda_shared_state.h [modify] https://crrev.com/3285ffe2d06230a9722894457649e20516fef72f/media/gpu/surface_texture_gl_owner.cc [modify] https://crrev.com/3285ffe2d06230a9722894457649e20516fef72f/media/gpu/surface_texture_gl_owner.h [modify] https://crrev.com/3285ffe2d06230a9722894457649e20516fef72f/media/gpu/surface_texture_gl_owner_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4a732e3be418d4c3fda70486571f68d24cd3a5ba commit 4a732e3be418d4c3fda70486571f68d24cd3a5ba Author: Chris Watkins <watk@chromium.org> Date: Wed May 31 02:04:46 2017 media: Add CodecWrapper for threadsafe MediaCodec access MediaCodecVideoDecoder needs to decode using a MediaCodec on the MCVD thread while dequeued buffers are released back to the codec on the GPU thread. CodecWrapper supports this use case by vending CodecOutputBuffers which keep a reference to their backing wrapper, and a unique id so that CodecWrapper can keep track of which buffers are valid. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I798df44a7639071f9eb3f2803d018ced4b121137 Reviewed-on: https://chromium-review.googlesource.com/517351 Reviewed-by: Frank Liberato <liberato@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#475740} [modify] https://crrev.com/4a732e3be418d4c3fda70486571f68d24cd3a5ba/media/gpu/BUILD.gn [add] https://crrev.com/4a732e3be418d4c3fda70486571f68d24cd3a5ba/media/gpu/android/codec_wrapper.cc [add] https://crrev.com/4a732e3be418d4c3fda70486571f68d24cd3a5ba/media/gpu/android/codec_wrapper.h [add] https://crrev.com/4a732e3be418d4c3fda70486571f68d24cd3a5ba/media/gpu/android/codec_wrapper_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/05681d3939d311c090824c901d922f5bdb4df78c commit 05681d3939d311c090824c901d922f5bdb4df78c Author: Chris Watkins <watk@chromium.org> Date: Fri Jun 02 03:00:29 2017 media: Make SurfaceTextureGLOwner mockable and add a mock. This converts STGLO to be a pure virtual interface so we can mock it. It will be used in a coming CL. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ief880307a7ea47d9284fdd26f624de6bf39a6c86 Reviewed-on: https://chromium-review.googlesource.com/520662 Reviewed-by: John Bauman <jbauman@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#476537} [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/BUILD.gn [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/android/fake_codec_allocator.h [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/avda_picture_buffer_manager.cc [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/avda_shared_state.h [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/avda_surface_bundle.cc [add] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/mock_surface_texture_gl_owner.cc [add] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/mock_surface_texture_gl_owner.h [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/surface_texture_gl_owner.cc [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/surface_texture_gl_owner.h [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/media/gpu/surface_texture_gl_owner_unittest.cc [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/ui/gl/android/surface_texture.cc [modify] https://crrev.com/05681d3939d311c090824c901d922f5bdb4df78c/ui/gl/android/surface_texture.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a60f5b103c707c47fb7a51e7a726fcf261f8398f commit a60f5b103c707c47fb7a51e7a726fcf261f8398f Author: Chris Watkins <watk@chromium.org> Date: Fri Jun 02 22:27:57 2017 media: Add CodecImage; a GLImage based on AVDACodecImage CodecImage is the AVDACodecImage equivalent for MediaCodecVideoDecoder. The main way in which it's different is that it won't be reused to back different video frames. This lets us simplify it by relying on two things: the CodecOutputBuffer backing it won't change, and the surface backing it won't change. It also comes with unit tests. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ie04ac81298bf1d2784a17a3f6a4db5ef69a97268 Reviewed-on: https://chromium-review.googlesource.com/522230 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#476818} [modify] https://crrev.com/a60f5b103c707c47fb7a51e7a726fcf261f8398f/media/gpu/BUILD.gn [add] https://crrev.com/a60f5b103c707c47fb7a51e7a726fcf261f8398f/media/gpu/android/codec_image.cc [add] https://crrev.com/a60f5b103c707c47fb7a51e7a726fcf261f8398f/media/gpu/android/codec_image.h [add] https://crrev.com/a60f5b103c707c47fb7a51e7a726fcf261f8398f/media/gpu/android/codec_image_unittest.cc [modify] https://crrev.com/a60f5b103c707c47fb7a51e7a726fcf261f8398f/media/gpu/mock_surface_texture_gl_owner.cc [modify] https://crrev.com/a60f5b103c707c47fb7a51e7a726fcf261f8398f/media/gpu/mock_surface_texture_gl_owner.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/95467ed227058488e98d7efefcd8c901f07d7d32 commit 95467ed227058488e98d7efefcd8c901f07d7d32 Author: Chris Watkins <watk@chromium.org> Date: Wed Jun 14 00:22:41 2017 media: Implement MediaCodecVideoDecoder decoder IO This change adds the basic codec pumping loop to queue input buffers and dequeue output buffers. It also includes all of the changes necessary to support unit testing it. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I3bd3b042cfd1fb67953540bc0486a70ac98b7e54 Reviewed-on: https://chromium-review.googlesource.com/511662 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#479223} [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/base/android/mock_android_overlay.h [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/base/overlay_info.cc [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/base/overlay_info.h [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/BUILD.gn [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/codec_wrapper.cc [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/codec_wrapper.h [add] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/device_info.cc [add] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/device_info.h [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/fake_codec_allocator.cc [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/fake_codec_allocator.h [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/media_codec_video_decoder_unittest.cc [add] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/mock_device_info.cc [add] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android/mock_device_info.h [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android_video_decode_accelerator.cc [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android_video_decode_accelerator.h [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/android_video_decode_accelerator_unittest.cc [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/content_video_view_overlay.cc [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/content_video_view_overlay.h [add] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/fake_android_video_surface_chooser.cc [add] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/fake_android_video_surface_chooser.h [modify] https://crrev.com/95467ed227058488e98d7efefcd8c901f07d7d32/media/gpu/gpu_video_decode_accelerator_factory.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dc990134c637735f4bb1f66314497d59fa63c97e commit dc990134c637735f4bb1f66314497d59fa63c97e Author: Chris Watkins <watk@chromium.org> Date: Wed Jul 05 22:00:47 2017 media: VideoFrameFactory now keeps its textures alive Previously VideoFrameFactory would create TextureRefs that were immediately released. Now it keeps a collection of outstanding refs and deletes them when the corresponding VideoFrame is deleted, or when VideoFrameFactory is deleted. If VFF is deleted, outstanding mailboxes may become unbacked. Solving this case is a work in progress. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Icf99f997553becb36ee4e0fe8a5cac729966cd40 Reviewed-on: https://chromium-review.googlesource.com/550664 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Commit-Position: refs/heads/master@{#484360} [modify] https://crrev.com/dc990134c637735f4bb1f66314497d59fa63c97e/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/dc990134c637735f4bb1f66314497d59fa63c97e/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/dc990134c637735f4bb1f66314497d59fa63c97e/media/gpu/android/video_frame_factory.h [modify] https://crrev.com/dc990134c637735f4bb1f66314497d59fa63c97e/media/gpu/android/video_frame_factory_impl.cc [modify] https://crrev.com/dc990134c637735f4bb1f66314497d59fa63c97e/media/gpu/android/video_frame_factory_impl.h [modify] https://crrev.com/dc990134c637735f4bb1f66314497d59fa63c97e/media/gpu/avda_surface_bundle.cc [modify] https://crrev.com/dc990134c637735f4bb1f66314497d59fa63c97e/media/gpu/surface_texture_gl_owner.cc [modify] https://crrev.com/dc990134c637735f4bb1f66314497d59fa63c97e/media/gpu/surface_texture_gl_owner.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/15cb078fc40dc91643079380bfad5b5c1ba2a9ea commit 15cb078fc40dc91643079380bfad5b5c1ba2a9ea Author: Chris Watkins <watk@chromium.org> Date: Wed Aug 02 04:08:11 2017 media: Support the creation of MediaCodecVideoDecoders behind a buildflag Now it's possible to enable MediaCodecVideoDecoder via MojoVideoDecoder by setting enable_media_codec_video_decoder to true. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ia1d16b20ecb26102e44e18946cb1d8046c4493b2 Reviewed-on: https://chromium-review.googlesource.com/552875 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Xiaohan Wang <xhwang@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#491263} [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/gpu/BUILD.gn [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/gpu/android/codec_image_unittest.cc [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/gpu/android/codec_wrapper.cc [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/gpu/android/codec_wrapper.h [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/gpu/android/device_info.h [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/gpu/android/media_codec_video_decoder_unittest.cc [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/gpu/android/video_frame_factory_impl.cc [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/media_options.gni [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/mojo/clients/mojo_video_decoder.cc [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/mojo/services/BUILD.gn [modify] https://crrev.com/15cb078fc40dc91643079380bfad5b5c1ba2a9ea/media/mojo/services/gpu_mojo_media_client.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b7389d11bdd0c4571c191c342c60b4eff7d8b43d commit b7389d11bdd0c4571c191c342c60b4eff7d8b43d Author: Chris Watkins <watk@chromium.org> Date: Fri Aug 04 02:10:36 2017 media: Implement MediaCodecVideoDecoder Reset() This CL implements Reset() which enables seeking to work as expected. CodecWrapper also now takes a closure that it will call whenever an output buffer is released back to the codec to signal that the codec might now accept more input. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I2b91cffafc6ca4940a7bdc819491359f47b592f0 Reviewed-on: https://chromium-review.googlesource.com/597383 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#491919} [modify] https://crrev.com/b7389d11bdd0c4571c191c342c60b4eff7d8b43d/media/base/android/mock_media_codec_bridge.cc [modify] https://crrev.com/b7389d11bdd0c4571c191c342c60b4eff7d8b43d/media/base/android/mock_media_codec_bridge.h [modify] https://crrev.com/b7389d11bdd0c4571c191c342c60b4eff7d8b43d/media/gpu/android/codec_image.cc [modify] https://crrev.com/b7389d11bdd0c4571c191c342c60b4eff7d8b43d/media/gpu/android/codec_image_unittest.cc [modify] https://crrev.com/b7389d11bdd0c4571c191c342c60b4eff7d8b43d/media/gpu/android/codec_wrapper.cc [modify] https://crrev.com/b7389d11bdd0c4571c191c342c60b4eff7d8b43d/media/gpu/android/codec_wrapper.h [modify] https://crrev.com/b7389d11bdd0c4571c191c342c60b4eff7d8b43d/media/gpu/android/codec_wrapper_unittest.cc [modify] https://crrev.com/b7389d11bdd0c4571c191c342c60b4eff7d8b43d/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/b7389d11bdd0c4571c191c342c60b4eff7d8b43d/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/b7389d11bdd0c4571c191c342c60b4eff7d8b43d/media/gpu/android/media_codec_video_decoder_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/74520aa158690de556c1a3895f7fffea1b80ef72 commit 74520aa158690de556c1a3895f7fffea1b80ef72 Author: Chris Watkins <watk@chromium.org> Date: Wed Aug 09 07:04:14 2017 media: Remove timeouts from CodecWrapper's interface This is a minor cleanup. The timeouts passed to CodecWrapper are always zero right now, and its interface has diverged enough from MediaCodecBridge that there's no great reason to keep timeout params. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I07d7e84157c96e08d98bc4b488d2296405fcce99 Reviewed-on: https://chromium-review.googlesource.com/607733 Reviewed-by: Frank Liberato <liberato@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#492876} [modify] https://crrev.com/74520aa158690de556c1a3895f7fffea1b80ef72/media/gpu/android/codec_image_unittest.cc [modify] https://crrev.com/74520aa158690de556c1a3895f7fffea1b80ef72/media/gpu/android/codec_wrapper.cc [modify] https://crrev.com/74520aa158690de556c1a3895f7fffea1b80ef72/media/gpu/android/codec_wrapper.h [modify] https://crrev.com/74520aa158690de556c1a3895f7fffea1b80ef72/media/gpu/android/codec_wrapper_unittest.cc [modify] https://crrev.com/74520aa158690de556c1a3895f7fffea1b80ef72/media/gpu/android/media_codec_video_decoder.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6e0faa08d306f190f4959c5018582bec971e84e2 commit 6e0faa08d306f190f4959c5018582bec971e84e2 Author: Chris Watkins <watk@chromium.org> Date: Thu Aug 10 05:41:17 2017 media: Handle Reinitialization in MediaCodecVideoDecoder Now MCVD handles multiple calls to Initialize() which allows it to support configuration changes for MSE. Two other important changes are included in this CL: 1) Previously we were creating and deleting a CodecOutputBuffer for the the EOS buffer. This resulted in invalidation of all frames preceding it. Now DequeueOutputBuffer doesn't output a CodecOutputBuffer for EOS. 2) After the codec is drained due to processing an EOS, previously we would flush it on the next Decode() call. However because flush() invalidates dequeued buffers this results in us losing frames before config changes. Now the flush is deferred until all outstanding buffers are released, and a decode is pending. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I2f6711ff73917b31cf7cf6696c46f1901772b710 Reviewed-on: https://chromium-review.googlesource.com/604634 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#493293} [modify] https://crrev.com/6e0faa08d306f190f4959c5018582bec971e84e2/media/gpu/android/codec_wrapper.cc [modify] https://crrev.com/6e0faa08d306f190f4959c5018582bec971e84e2/media/gpu/android/codec_wrapper.h [modify] https://crrev.com/6e0faa08d306f190f4959c5018582bec971e84e2/media/gpu/android/codec_wrapper_unittest.cc [modify] https://crrev.com/6e0faa08d306f190f4959c5018582bec971e84e2/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/6e0faa08d306f190f4959c5018582bec971e84e2/media/gpu/android/media_codec_video_decoder_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1946aba6c295442fd153f2072573035255dfe2b0 commit 1946aba6c295442fd153f2072573035255dfe2b0 Author: Chris Watkins <watk@chromium.org> Date: Wed Aug 16 00:50:25 2017 media: MediaCodecVideoDecoder now submits SPS and PPS to MediaCodec The SPS and PPS are taken from extra_data() and passed to MediaCodec via the CSD0 and CSD1 fields. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Iee4c609f8770621b63eee214475af2911efbf6df Reviewed-on: https://chromium-review.googlesource.com/611441 Reviewed-by: Frank Liberato <liberato@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#494642} [modify] https://crrev.com/1946aba6c295442fd153f2072573035255dfe2b0/media/base/android/BUILD.gn [add] https://crrev.com/1946aba6c295442fd153f2072573035255dfe2b0/media/base/android/extract_sps_and_pps.cc [add] https://crrev.com/1946aba6c295442fd153f2072573035255dfe2b0/media/base/android/extract_sps_and_pps.h [modify] https://crrev.com/1946aba6c295442fd153f2072573035255dfe2b0/media/filters/gpu_video_decoder.cc [modify] https://crrev.com/1946aba6c295442fd153f2072573035255dfe2b0/media/gpu/android/media_codec_video_decoder.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/da36afe0c8fb8c12ff92ad25bd52bba2d0953af0 commit da36afe0c8fb8c12ff92ad25bd52bba2d0953af0 Author: Chris Watkins <watk@chromium.org> Date: Tue Aug 22 01:27:48 2017 media: Use GLES2DecoderHelper to create textures in MediaCodecVideoDecoder Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I529c6feed707746f3ce8722f015a7673223ef383 Reviewed-on: https://chromium-review.googlesource.com/622811 Reviewed-by: Dan Sanders <sandersd@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#496165} [modify] https://crrev.com/da36afe0c8fb8c12ff92ad25bd52bba2d0953af0/media/gpu/android/video_frame_factory_impl.cc [modify] https://crrev.com/da36afe0c8fb8c12ff92ad25bd52bba2d0953af0/media/gpu/android/video_frame_factory_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ecd490688dd35d8a35481f149139116689097cf1 commit ecd490688dd35d8a35481f149139116689097cf1 Author: Chris Watkins <watk@chromium.org> Date: Tue Aug 22 02:05:11 2017 media: MediaCodecVideoDecoder no longer outputs old frames after a Reset() Previously, since MCVD posted frame creation to the GPU thread, but would finish Reset()s on its thread, it was possible for a frame from before the Reset() to be output after the reset was finished. This resulted in broken looping playback if the video renderer received a frame near the end of the video right after seeking back to 0s. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I9a497561ef96b28bf782e8bd5b38640bfa0b5ed2 Reviewed-on: https://chromium-review.googlesource.com/622460 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Dan Sanders <sandersd@chromium.org> Cr-Commit-Position: refs/heads/master@{#496172} [modify] https://crrev.com/ecd490688dd35d8a35481f149139116689097cf1/media/gpu/android/codec_wrapper.cc [modify] https://crrev.com/ecd490688dd35d8a35481f149139116689097cf1/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/ecd490688dd35d8a35481f149139116689097cf1/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/ecd490688dd35d8a35481f149139116689097cf1/media/mojo/services/mojo_video_decoder_service.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/062f66ddd7addc0165cea2bbebcd3bb19b44a539 commit 062f66ddd7addc0165cea2bbebcd3bb19b44a539 Author: Chris Watkins <watk@chromium.org> Date: Wed Aug 30 03:30:23 2017 media: Provide a custom deleter for MediaCodecVideoDecoder to handle its teardown MediaCodecVideoDecoder needs to handle its own teardown because it might need to drain its MediaCodec before the destructor runs. Now VideoDecoder has a std::default_delete specialization with a protected destructor and private Destroy() method. By default Destroy() just deletes |this| but Subclasses can override it. This CL also lets MCVD hold a service_manager::ServiceContextRef so that it can keep the service thread that it's running on alive until its teardown completes. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I4a6aef70379037588014e609a7ae6516017363c8 Reviewed-on: https://chromium-review.googlesource.com/625551 Reviewed-by: Luke Halliwell <halliwell@chromium.org> Reviewed-by: Dan Sanders <sandersd@chromium.org> Reviewed-by: John Abd-El-Malek <jam@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#498361} [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/chromecast/media/service/cast_mojo_media_client.cc [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/chromecast/media/service/cast_mojo_media_client.h [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/base/video_decoder.cc [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/base/video_decoder.h [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/gpu/BUILD.gn [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/gpu/DEPS [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/gpu/android/media_codec_video_decoder_unittest.cc [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/gpu/android/video_frame_factory_impl.cc [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/gpu/android/video_frame_factory_impl.h [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/mojo/services/gpu_mojo_media_client.cc [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/mojo/services/gpu_mojo_media_client.h [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/mojo/services/media_service.cc [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/mojo/services/mojo_media_client.cc [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/mojo/services/mojo_media_client.h [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/mojo/services/mojo_video_decoder_service.h [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/mojo/services/test_mojo_media_client.cc [modify] https://crrev.com/062f66ddd7addc0165cea2bbebcd3bb19b44a539/media/mojo/services/test_mojo_media_client.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/404e460e465b6658a8b31802ad87a03417cb98e6 commit 404e460e465b6658a8b31802ad87a03417cb98e6 Author: Chris Watkins <watk@chromium.org> Date: Thu Aug 31 03:16:28 2017 media: MediaCodecVideoDecoder now drains its codec during teardown Now MCVD will start draining its codec, if necessary, in Destroy() and delete itself once the drain completes. This CL includes a refactoring of DestructionObserver to allow setting a default expectation of destruction, but override it in the tests to not allow destruction. Now, setting a new expectation cancels the old one. gmock doesn't let you do this. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I299a9a3a95e137cc2e2327b96faddcf46199ec34 Reviewed-on: https://chromium-review.googlesource.com/634787 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#498743} [modify] https://crrev.com/404e460e465b6658a8b31802ad87a03417cb98e6/media/base/android/test_destruction_observable.cc [modify] https://crrev.com/404e460e465b6658a8b31802ad87a03417cb98e6/media/base/android/test_destruction_observable.h [modify] https://crrev.com/404e460e465b6658a8b31802ad87a03417cb98e6/media/gpu/android/codec_image_unittest.cc [modify] https://crrev.com/404e460e465b6658a8b31802ad87a03417cb98e6/media/gpu/android/codec_wrapper_unittest.cc [modify] https://crrev.com/404e460e465b6658a8b31802ad87a03417cb98e6/media/gpu/android/fake_codec_allocator.h [modify] https://crrev.com/404e460e465b6658a8b31802ad87a03417cb98e6/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/404e460e465b6658a8b31802ad87a03417cb98e6/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/404e460e465b6658a8b31802ad87a03417cb98e6/media/gpu/android/media_codec_video_decoder_unittest.cc [modify] https://crrev.com/404e460e465b6658a8b31802ad87a03417cb98e6/media/gpu/android_video_decode_accelerator_unittest.cc [modify] https://crrev.com/404e460e465b6658a8b31802ad87a03417cb98e6/media/gpu/android_video_surface_chooser_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/176e678d515de4c083b577fb6e10b2583fe6cd5c commit 176e678d515de4c083b577fb6e10b2583fe6cd5c Author: Chris Watkins <watk@chromium.org> Date: Mon Sep 04 03:04:18 2017 media: Small cleanups to MediaCodecVideoDecoder This CL: * Adds EnterTerminalState() for handling the common teardown for kError and kSurfaceDestroyed. Now we're eagerly releasing the codec and surface bundle more often, which can only improve resource utilization. * Wraps surface_texture_ in a single AVDASurfaceBundle instead of wrapping it multiple times. The AVDASurfaceBundle destructor posts ReleaseBackBuffers() which we should only call once. * Invalidates the AVDACodecAllocatorClient WeakPtr on SurfaceDestroyed so that pending codec creations will be canceled automatically. This simplifies OnCodecCreated(). Requires a minor change to FakeCodecAllocator. * Removes base::Optional from incoming_surface_; it's already a pointer. * Improves the names of a couple of CodecWrapper functions. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I312e2f561b8f7dc8b1bede066b80674044e8d1ae Reviewed-on: https://chromium-review.googlesource.com/644655 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#499428} [modify] https://crrev.com/176e678d515de4c083b577fb6e10b2583fe6cd5c/media/gpu/android/codec_wrapper.cc [modify] https://crrev.com/176e678d515de4c083b577fb6e10b2583fe6cd5c/media/gpu/android/codec_wrapper.h [modify] https://crrev.com/176e678d515de4c083b577fb6e10b2583fe6cd5c/media/gpu/android/codec_wrapper_unittest.cc [modify] https://crrev.com/176e678d515de4c083b577fb6e10b2583fe6cd5c/media/gpu/android/fake_codec_allocator.cc [modify] https://crrev.com/176e678d515de4c083b577fb6e10b2583fe6cd5c/media/gpu/android/fake_codec_allocator.h [modify] https://crrev.com/176e678d515de4c083b577fb6e10b2583fe6cd5c/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/176e678d515de4c083b577fb6e10b2583fe6cd5c/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/176e678d515de4c083b577fb6e10b2583fe6cd5c/media/gpu/android/media_codec_video_decoder_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/51301d78b2b873e93121486e16a7bc14f635906d commit 51301d78b2b873e93121486e16a7bc14f635906d Author: Chris Watkins <watk@chromium.org> Date: Thu Sep 07 08:28:33 2017 media: Simplify CodecWrapper's interface; accept DecoderBuffers as input CodecWrapper and its caller are both simpler if it accepts DecoderBuffers as inputs. QueueEOS, and QueueSecureInputBuffer are now gone in favor of a single QueueInputBuffer. CodecWrapper also now keeps track of whether it still owns a dequeued input buffer after trying to submit a buffer fails with MEDIA_CODEC_NO_KEY. It automatically reuses the input buffer for subsequent inputs. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ie8785721fe93c8ccf46399b587e8de9c2e1b4bdd Reviewed-on: https://chromium-review.googlesource.com/647266 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#500244} [modify] https://crrev.com/51301d78b2b873e93121486e16a7bc14f635906d/media/gpu/android/codec_wrapper.cc [modify] https://crrev.com/51301d78b2b873e93121486e16a7bc14f635906d/media/gpu/android/codec_wrapper.h [modify] https://crrev.com/51301d78b2b873e93121486e16a7bc14f635906d/media/gpu/android/codec_wrapper_unittest.cc [modify] https://crrev.com/51301d78b2b873e93121486e16a7bc14f635906d/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/51301d78b2b873e93121486e16a7bc14f635906d/media/gpu/android/media_codec_video_decoder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f93dd01b4a97eeb653a1301f32e53e1b5d72ce78 commit f93dd01b4a97eeb653a1301f32e53e1b5d72ce78 Author: Chris Watkins <watk@chromium.org> Date: Fri Sep 08 01:56:13 2017 media: CodecWrapper returns specific status enums to clarify possible results Previously CodecWrapper returned MediaCodecStatus values which are the set of all return values from all MediaCodec calls. Now CodecWrapper translates them into a DequeueStatus and QueueStatus which only contain the valid values. This makes it more self documenting and easier to verify that all cases are handled. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Id5d6b89e7f8050588afcc1293e6c30b86a410941 Reviewed-on: https://chromium-review.googlesource.com/654338 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#500482} [modify] https://crrev.com/f93dd01b4a97eeb653a1301f32e53e1b5d72ce78/media/gpu/android/codec_wrapper.cc [modify] https://crrev.com/f93dd01b4a97eeb653a1301f32e53e1b5d72ce78/media/gpu/android/codec_wrapper.h [modify] https://crrev.com/f93dd01b4a97eeb653a1301f32e53e1b5d72ce78/media/gpu/android/codec_wrapper_unittest.cc [modify] https://crrev.com/f93dd01b4a97eeb653a1301f32e53e1b5d72ce78/media/gpu/android/media_codec_video_decoder.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ece2fcd68362802273e8038c418e246911ac4aaa commit ece2fcd68362802273e8038c418e246911ac4aaa Author: Chris Watkins <watk@chromium.org> Date: Thu Sep 14 07:08:50 2017 media: Simplify dealing with surfaces in MediaCodecVideoDecoder Pare down State to four values. Now we only consider the high level simple and orthogonal states that make sense for MCVD. Other state is maintained in the other member variables. E.g., waiting for codec is signified by codec_ being null. In states other than kRunning, codec_ is definitely null. In state kRunning, codec_ may or may not be null. This lets us test directly for the state most functions care about: whether codec_ is null. Simplify state tracking and ownership of surfaces. Now CodecWrapper owns a ref to the configured surface. MCVD remembers the last surface choice by surface_chooser_ and can tell that a surface transition is pending if the latest choice differs from its codec's one. Solve an outstanding issue: if SurfaceDestroyed arrives while a codec creation is pending, immediately switch surfaces. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I1955e4da0b6a71c6c251a0e6c065f40cbbc791fb Reviewed-on: https://chromium-review.googlesource.com/656920 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#501887} [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/android_video_decode_accelerator.cc [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/android_video_decode_accelerator.h [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/avda_codec_allocator.cc [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/avda_codec_allocator.h [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/avda_codec_allocator_unittest.cc [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/codec_image_unittest.cc [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/codec_wrapper.cc [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/codec_wrapper.h [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/codec_wrapper_unittest.cc [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/fake_codec_allocator.cc [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/fake_codec_allocator.h [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/ece2fcd68362802273e8038c418e246911ac4aaa/media/gpu/android/media_codec_video_decoder_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3a4a28855383cfab92e01042ef4986b2b76ceb3c commit 3a4a28855383cfab92e01042ef4986b2b76ceb3c Author: Chris Watkins <watk@chromium.org> Date: Fri Sep 15 03:39:52 2017 media: Plumb the AndroidOverlay factory cb to MediaCodecVideoDecoder Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I7d091a3375347ecb5ee661420a724760e56118fa Reviewed-on: https://chromium-review.googlesource.com/664519 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#502151} [modify] https://crrev.com/3a4a28855383cfab92e01042ef4986b2b76ceb3c/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/3a4a28855383cfab92e01042ef4986b2b76ceb3c/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/3a4a28855383cfab92e01042ef4986b2b76ceb3c/media/gpu/android/media_codec_video_decoder_unittest.cc [modify] https://crrev.com/3a4a28855383cfab92e01042ef4986b2b76ceb3c/media/gpu/ipc/service/media_gpu_channel_manager.cc [modify] https://crrev.com/3a4a28855383cfab92e01042ef4986b2b76ceb3c/media/gpu/ipc/service/media_gpu_channel_manager.h [modify] https://crrev.com/3a4a28855383cfab92e01042ef4986b2b76ceb3c/media/mojo/services/gpu_mojo_media_client.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/557f84de89444fa5c74f81695b09882b75a03e27 commit 557f84de89444fa5c74f81695b09882b75a03e27 Author: Chris Watkins <watk@chromium.org> Date: Sat Sep 16 02:31:46 2017 media: Plumb OverlayInfo changes through MojoVideoDecoder to MCVD Now MediaCodecVideoDecoder gets a callback that it can call during initialization to request OverlayInfo updates. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ib8ab9026aacafcf489c24ba276d1b6610fc0b331 Reviewed-on: https://chromium-review.googlesource.com/649452 Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Ken Buchanan <kenrb@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#502475} [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/base/decoder_factory.cc [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/base/decoder_factory.h [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/base/ipc/media_param_traits_macros.h [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/filters/gpu_video_decoder.cc [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/filters/gpu_video_decoder.h [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/gpu/android/media_codec_video_decoder_unittest.cc [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/gpu/ipc/common/media_param_traits_macros.h [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/clients/mojo_decoder_factory.cc [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/clients/mojo_decoder_factory.h [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/clients/mojo_video_decoder.cc [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/clients/mojo_video_decoder.h [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/interfaces/typemaps.gni [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/interfaces/video_decoder.mojom [add] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/interfaces/video_decoder.typemap [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/services/BUILD.gn [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/services/gpu_mojo_media_client.cc [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/services/gpu_mojo_media_client.h [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/services/mojo_media_client.cc [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/services/mojo_media_client.h [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/services/mojo_video_decoder_service.cc [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/mojo/services/mojo_video_decoder_service.h [modify] https://crrev.com/557f84de89444fa5c74f81695b09882b75a03e27/media/renderers/default_renderer_factory.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/671360a7034b6f9462078c1c4dbfb6f5265a1e97 commit 671360a7034b6f9462078c1c4dbfb6f5265a1e97 Author: Chris Watkins <watk@chromium.org> Date: Tue Sep 19 04:41:18 2017 media: Refactor MediaCodecVideoDecoder ManageTimer into Start/StopTimer() This is clearer because it avoids the mystery bool param. This CL also includes some additional unrelated documentation and cleanup. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ic63eec37a30d962fb10d51906e010847c2fb57c2 Reviewed-on: https://chromium-review.googlesource.com/671305 Reviewed-by: Frank Liberato <liberato@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#502781} [modify] https://crrev.com/671360a7034b6f9462078c1c4dbfb6f5265a1e97/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/671360a7034b6f9462078c1c4dbfb6f5265a1e97/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/671360a7034b6f9462078c1c4dbfb6f5265a1e97/media/gpu/android/video_frame_factory.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/88a400084974192f17f9125a5b7cf018107bdb33 commit 88a400084974192f17f9125a5b7cf018107bdb33 Author: Chris Watkins <watk@chromium.org> Date: Thu Sep 28 01:16:42 2017 media: Enable the use of MojoAndroidOverlays from the media service Previously MojoAndroidOverlays could only be created on the GPU main thread. Now we can create them on any thread, and specifically the media service thread, so that MediaCodecVideoDecoder can use them. Also, they now embed an optional ServiceContextRef so that if they're used from the media service, they can extend the lifetime of the thread their mojo interface is bound to. This is necessary because they will be jointly owned by both MCVD and CodecImages. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I6497b81eeb7205a4893ef6c4de4ee5af571ac90a Reviewed-on: https://chromium-review.googlesource.com/684005 Reviewed-by: Avi Drissman <avi@chromium.org> Reviewed-by: Dan Sanders <sandersd@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#504854} [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/content/gpu/gpu_child_thread.cc [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/content/gpu/gpu_child_thread.h [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/content/gpu/gpu_service_factory.cc [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/content/gpu/gpu_service_factory.h [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/base/android_overlay_mojo_factory.h [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/gpu/android/android_video_decode_accelerator.cc [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/gpu/android/media_codec_video_decoder_unittest.cc [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/mojo/clients/mojo_android_overlay.cc [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/mojo/clients/mojo_android_overlay.h [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/mojo/clients/mojo_android_overlay_unittest.cc [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/mojo/services/gpu_mojo_media_client.cc [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/mojo/services/gpu_mojo_media_client.h [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/mojo/services/media_service_factory.cc [modify] https://crrev.com/88a400084974192f17f9125a5b7cf018107bdb33/media/mojo/services/media_service_factory.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f commit ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f Author: Chris Watkins <watk@chromium.org> Date: Mon Oct 02 01:13:10 2017 media: Merge AndroidVideoSurfaceChooser's Init and Update This replaces Initialize() with SetClientCallbacks() and UpdateState(). This lets callers not worry about whether they've called Initialize() yet. For example, without this MCVD needs a bool to know whether it's called Initialize() or not. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I0b1b1ba2d958b9f27c9963d2e610bc4697b8495e Reviewed-on: https://chromium-review.googlesource.com/686334 Reviewed-by: Frank Liberato <liberato@chromium.org> Commit-Queue: Chris Watkins <watk@chromium.org> Cr-Commit-Position: refs/heads/master@{#505527} [modify] https://crrev.com/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f/media/gpu/android/android_video_decode_accelerator.cc [modify] https://crrev.com/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f/media/gpu/android/android_video_decode_accelerator_unittest.cc [modify] https://crrev.com/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f/media/gpu/android/android_video_surface_chooser.h [modify] https://crrev.com/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f/media/gpu/android/android_video_surface_chooser_impl.cc [modify] https://crrev.com/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f/media/gpu/android/android_video_surface_chooser_impl.h [modify] https://crrev.com/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f/media/gpu/android/android_video_surface_chooser_impl_unittest.cc [modify] https://crrev.com/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f/media/gpu/android/fake_android_video_surface_chooser.cc [modify] https://crrev.com/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f/media/gpu/android/fake_android_video_surface_chooser.h [modify] https://crrev.com/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/ae0e76ec2b7c567fb8b090d24d7fe8f6a6c9a80f/media/gpu/android/media_codec_video_decoder_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/791fb7fdf34e1838c0af4771f37bb48243e86e7e commit 791fb7fdf34e1838c0af4771f37bb48243e86e7e Author: Chris Watkins <watk@chromium.org> Date: Tue Oct 03 00:44:39 2017 media: MediaCodecVideoDecoder now requests OverlayInfo updates If overlays are supported by the device, MCVD now requests OverlayInfo updates during lazy init and continues initialization when it gets the first one. If overlays are not supported it skips making any calls to AndroidVideoSurfaceChooser and uses a surface texture. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I5fb4a008f7bf2932cec96570f6b5782a1d327474 Reviewed-on: https://chromium-review.googlesource.com/689416 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#505892} [modify] https://crrev.com/791fb7fdf34e1838c0af4771f37bb48243e86e7e/media/gpu/android/android_video_surface_chooser.h [modify] https://crrev.com/791fb7fdf34e1838c0af4771f37bb48243e86e7e/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/791fb7fdf34e1838c0af4771f37bb48243e86e7e/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/791fb7fdf34e1838c0af4771f37bb48243e86e7e/media/gpu/android/media_codec_video_decoder_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc commit 0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc Author: Chris Watkins <watk@chromium.org> Date: Tue Oct 03 05:39:29 2017 media: Stop calling EOS DecodeCBs after Reset in MediaCodecVideoDecoder Previously it was possible that eos_decode_cb_ would be run after a Reset(). Now we guarantee that after a Reset() completes, none of the VideoFrames from before will be returned, and none of the DecodeCBs will be called. This includes a fix for a bug where we could leak TextureRefs until MCVD was shut down. We were were dropping VideoFrames without calling their ReleaseMailboxCBs (we can't add them as VideoFrame destruction observers due to limitations with MojoVideoDecoder). Now the release callback is wrapped in a ScopedCallbackRunner to make it safe. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I03897fcbfff5eb4bd267fc3de1558bd9b5f0a2bd Reviewed-on: https://chromium-review.googlesource.com/683938 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Dan Sanders <sandersd@chromium.org> Cr-Commit-Position: refs/heads/master@{#505958} [modify] https://crrev.com/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc/media/gpu/android/media_codec_video_decoder_unittest.cc [modify] https://crrev.com/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc/media/gpu/android/video_frame_factory.h [modify] https://crrev.com/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc/media/gpu/android/video_frame_factory_impl.cc [modify] https://crrev.com/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc/media/gpu/android/video_frame_factory_impl.h [modify] https://crrev.com/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc/media/mojo/services/gpu_mojo_media_client.cc [modify] https://crrev.com/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc/media/mojo/services/mojo_media_client.h [modify] https://crrev.com/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc/media/mojo/services/mojo_video_decoder_service.cc [modify] https://crrev.com/0dcff6d5a9baf3be4e5ef65e1ee552bd9ba0e6fc/media/mojo/services/mojo_video_decoder_service.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a0403111d7feec88395dfaa85445d483c2425468 commit a0403111d7feec88395dfaa85445d483c2425468 Author: Chris Watkins <watk@chromium.org> Date: Wed Oct 04 04:41:43 2017 media: Plumb GpuPreferences to MediaCodecVideoDecoder It needs to know the value of enable_threaded_texture_mailboxes to decide whether to disable overlay support. Also, GpuVideoFrameFactory looks it up through its GpuCommandBufferStub to decide whether to attach the COPY_REQUIRED metadata flag to frames. Bug: 660942 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I79f639a68bdeb18faabf2462418a4e62bbdc5136 Reviewed-on: https://chromium-review.googlesource.com/690274 Commit-Queue: Chris Watkins <watk@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Commit-Position: refs/heads/master@{#506301} [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/content/gpu/gpu_child_thread.cc [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/content/gpu/gpu_service_factory.cc [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/content/gpu/gpu_service_factory.h [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/media/gpu/android/media_codec_video_decoder.cc [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/media/gpu/android/media_codec_video_decoder.h [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/media/gpu/android/media_codec_video_decoder_unittest.cc [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/media/gpu/android/video_frame_factory_impl.cc [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/media/mojo/services/gpu_mojo_media_client.cc [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/media/mojo/services/gpu_mojo_media_client.h [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/media/mojo/services/media_service_factory.cc [modify] https://crrev.com/a0403111d7feec88395dfaa85445d483c2425468/media/mojo/services/media_service_factory.h
Comment 1 by w...@chromium.org
, Oct 31 2016