New issue
Advanced search Search tips

Issue 863321 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 6
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Feature

Blocking:
issue 867799



Sign in to add a comment

VideoEncodeAccelerator: refactor Initialize() to use Config struct

Project Member Reported by johnylin@chromium.org, Jul 13

Issue description

Currently VideoEncodeAccelerator::Initialze() requires multiple arguments to specify encoding parameters. Recently we would like to add one more argument |output_level| for initialization.

We think it is more flexible for adding more parameters for future requests if we refactor to use Config struct as input, as well as VideoDecodeAccelerator::Initialize() does.
 
Cc: hiroh@chromium.org akahuang@chromium.org tfiga@chromium.org
Labels: -Type-Bug -Pri-3 Pri-1 Type-Feature
Components: -OS>Kernel>Video Internals>GPU>Video
Blocking: 867799
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 27

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

commit e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e
Author: Pin-chih Lin <johnylin@google.com>
Date: Fri Jul 27 11:15:04 2018

video_encode_accelerator: use Config struct for Initialize and add output_level

Currently VideoEncodeAccelerator::Initialize() does not take level into account
which is a factor of AVC encoding. Instead, it always set the fixed level in
VEA implementation. For upstream Android CTS, it requires AVC level setting and
checks the level of output encoded stream is within configured one. To satisfy
this we need to pass level on initialization.

Since there is a bunch of parameters we decide to refactor VEA::Initialize() to
use Config struct bundling all parameters as VideoDecodeAccelerator did.

This CL only modifies VEA::Initialize() API to use Config struct as input to
cover original parameters and output_level. Once this is approved to change, we
will implement the utilization of output_level inside VEA.

BUG=b:110811755
BUG= 863321 
TEST=build and deplot chrome on eve
TEST=build and run video_encoder_accelerator_unittest on eve
TEST=build media_unittests
TEST=build content_unittests

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: I002169634a2b2d23a00178eb5015a14f4ddcf5dc
Reviewed-on: https://chromium-review.googlesource.com/1130570
Commit-Queue: Pin-chih Lin <johnylin@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Reviewed-by: Henrik Boström <hbos@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578595}
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/components/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/content/renderer/media/webrtc/rtc_video_encoder.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/content/renderer/media/webrtc/rtc_video_encoder_unittest.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/content/renderer/media_recorder/vea_encoder.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/content/renderer/pepper/pepper_video_encoder_host.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/content/renderer/pepper/video_encoder_shim.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/content/renderer/pepper/video_encoder_shim.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder_vea.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/cast/sender/external_video_encoder.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/android/android_video_encode_accelerator.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/android/android_video_encode_accelerator.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/gpu_video_encode_accelerator_factory.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/gpu_video_encode_accelerator_factory.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/v4l2/v4l2_video_encode_accelerator.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/vaapi/vaapi_video_encode_accelerator.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/video_encode_accelerator_unittest.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/vt_video_encode_accelerator_mac.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/vt_video_encode_accelerator_mac.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/gpu/windows/media_foundation_video_encode_accelerator_win.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/clients/mojo_video_encode_accelerator.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/clients/mojo_video_encode_accelerator.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/clients/mojo_video_encode_accelerator_unittest.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/interfaces/video_encode_accelerator.mojom
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/interfaces/video_encode_accelerator.typemap
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/interfaces/video_encode_accelerator_typemap_traits.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/interfaces/video_encode_accelerator_typemap_traits.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/services/mojo_video_encode_accelerator_service.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/services/mojo_video_encode_accelerator_service.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/services/mojo_video_encode_accelerator_service_unittest.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/mojo/test/mojo_video_encode_accelerator_integration_test.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/video/fake_video_encode_accelerator.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/video/fake_video_encode_accelerator.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/video/mock_video_encode_accelerator.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/video/video_encode_accelerator.cc
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/media/video/video_encode_accelerator.h
[modify] https://crrev.com/e6ff3d979b74a6b0210aa6f7e76876e5e6251a2e/remoting/codec/webrtc_video_encoder_gpu.cc

Status: Fixed (was: Started)

Sign in to add a comment