New issue
Advanced search Search tips

Issue 896135 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

VideoFrameLayout: Create VideoFrameLayout only with the valid values

Project Member Reported by hiroh@chromium.org, Oct 17

Issue description

Adopt factory function design patterns to VideoFrameLayout.
It can be created only if configured values are valid.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 18

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

commit 3584d76a5a269642fd6ade3459ac142b2429d3ac
Author: Hirokazu Honda <hiroh@chromium.org>
Date: Thu Oct 18 08:31:34 2018

media/base/VideoFrameLayout: Create VFL with factory functions using base::Optional

This enables VideoFrameLayout (VFL) to be created always by factory functions.
They return base::Optional. With invalid configured values, they should return
base::nullopt.
However, VFL is often created in VideoFrame's factory functions. Some of
VideoFrame factory function's input rule is unclear. It may leads to pass
invalid values to VFL and returns nullptr as VideoFrame.
Becuase VideoFrame is widely used on Chrome video stack on any platform, it is
dangerous to change a logic at one time.

In this CL, VFL's factory functions always create VFL. Therefore, a logic in
VideoFrame is unchanged. This also changes buffer_sizes is empty if it is not
specified.

BUG=896135
TEST=media_unittests on Linux
TEST=VEA and VDA unittest on eve

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: Ibf4191f2e8674ccff084ac8fb4d7e48f89594d6c
Reviewed-on: https://chromium-review.googlesource.com/c/1250682
Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600694}
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/base/video_frame.cc
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/base/video_frame.h
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/base/video_frame_layout.cc
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/base/video_frame_layout.h
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/base/video_frame_layout_unittest.cc
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/base/video_frame_unittest.cc
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/gpu/v4l2/v4l2_device.cc
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/gpu/v4l2/v4l2_device.h
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/gpu/v4l2/v4l2_device_unittest.cc
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/gpu/v4l2/v4l2_image_processor.cc
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
[modify] https://crrev.com/3584d76a5a269642fd6ade3459ac142b2429d3ac/media/mojo/common/mojo_shared_buffer_video_frame.cc

Sign in to add a comment