New issue
Advanced search Search tips

Issue 664039 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Dec 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature



Sign in to add a comment

VEA unittest: add a test case to test 360x360

Project Member Reported by wuchengli@chromium.org, Nov 10 2016

Issue description

In b/32690953, Hangout passed 360x360 to encoder. It failed because the size of U or V plane is not 128 aligned. We should test some video size that can catch this. The current sizes we are testing in video_VideoEncodeAccelerator are 1080p, 720p, 360p, and 180p.

 
Owner: johnylin@chromium.org
Status: Assigned (was: Available)
Johny. Please help add this. Thanks.
Owner: hywu@chromium.org
Load balancing. Daniel. Please help add this. Thanks.
Daniel. I have another idea. Since the bug b/32690953 is not related to the content of the video, we can encode just one black input image for each resolution. For example, we can choose lots of resolutions to test and the testcase will still run fast. Some important resolutions are the minimum, maximum, odd resolution, and a resolution whose U plane is not 128 aligned. This is also easier to implement. How do you think?
The point is we only need to queue one or several input buffers to catch that bug. We don't need to encode the entire input video.

Comment 5 by hywu@google.com, Nov 20 2016

I already have an implementation that accepts input arguments of width and height to encode only partial visible region, and so we can fulfil your idea by specifying important resolutions as arguments instead of supplying the real videos. Also, it has the advantage of being trivial to add more resolutions in the future.
Cc: posciak@chromium.org
CL is in review.
Project Member

Comment 8 by bugdroid1@chromium.org, Nov 30 2016

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

commit 62f3a0edf9c5e19da3e59a6b2f5c402895b1805a
Author: hywu <hywu@google.com>
Date: Wed Nov 30 08:48:46 2016

VEA unittest: add a test case for cache line-alignment

Linux refuses to accept buffers that have sizes ualigned to
CPU cache line, which can be 128 bytes on certain devices.
This test inputs a frame that has unaligned size of U and V
planes to catch such errors.

BUG= 664039 
TEST=Run VEA unittest on Kevin.
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/2525563005
Cr-Commit-Position: refs/heads/master@{#435179}

[modify] https://crrev.com/62f3a0edf9c5e19da3e59a6b2f5c402895b1805a/media/gpu/video_encode_accelerator_unittest.cc

Comment 9 by hywu@chromium.org, Nov 30 2016

Status: Verified (was: Assigned)
Status: Assigned (was: Verified)
I have to revert the last CL as it breaks the compilation.

https://build.chromium.org/p/chromium/builders/Mac/builds/21481/steps/compile/logs/stdio

[23145/48575] CXX obj/media/gpu/video_encode_accelerator_unittest/video_encode_accelerator_unittest.o
FAILED: obj/media/gpu/video_encode_accelerator_unittest/video_encode_accelerator_unittest.o 
/b/c/cipd/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/media/gpu/video_encode_accelerator_unittest/video_encode_accelerator_unittest.o.d -DV8_DEPRECATION_WARNINGS -DENABLE_NOTIFICATIONS -DENABLE_PDF=1 -DNO_TCMALLOC -DUSE_EXTERNAL_POPUP_MENU=1 -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=287780-2 -DCR_XCODE_VERSION=0511 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=1 -DENABLE_IPC_FUZZER -DSK_IGNORE_DW_GRAY_FIX -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_SUPPORT_GPU=1 -DSK_BUILD_FOR_MAC -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DMESA_EGL_NO_X11_HEADERS -DFEATURE_ENABLE_SSL -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_MAIN_THREAD_WRAPPING -DNO_SOUND_SYSTEM -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_MAC -DUNIT_TEST -I../.. -Igen -I../../third_party/libva -I../../third_party/libyuv/include -I../../third_party/khronos -I../../gpu -I../../testing/gtest/include -I../../third_party/libwebm/source -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/include/gpu -I../../third_party/skia/src/gpu -I../../third_party/skia/src/sksl -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/mesa/src/include -I../../third_party/webrtc_overrides -I../../third_party -I../../third_party/webrtc/common_video/include -I../../third_party/webrtc/common_video/libyuv/include -fno-strict-aliasing -fstack-protector -fcolor-diagnostics -arch x86_64 -Wall -Werror -Wextra -Wpartial-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -O2 -gdwarf-2 -isysroot /b/c/b/mac_ng/src/build/mac_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -mmacosx-version-min=10.9 -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -Wheader-hygiene -Wstring-conversion -fno-threadsafe-statics -fvisibility-inlines-hidden -std=c++11 -stdlib=libc++ -fno-rtti -fno-exceptions -c ../../media/gpu/video_encode_accelerator_unittest.cc -o obj/media/gpu/video_encode_accelerator_unittest/video_encode_accelerator_unittest.o
In file included from ../../media/gpu/video_encode_accelerator_unittest.cc:11:
In file included from /b/c/b/mac_ng/src/third_party/llvm-build/Release+Asserts/bin/../include/c++/v1/queue:171:
/b/c/b/mac_ng/src/third_party/llvm-build/Release+Asserts/bin/../include/c++/v1/vector:435:27: error: no matching constructor for initialization of '_T2_param' (aka 'media::(anonymous namespace)::AlignedAllocator<char, 8>')
      __end_cap_(nullptr, __a)
                          ^~~
/b/c/b/mac_ng/src/third_party/llvm-build/Release+Asserts/bin/../include/c++/v1/vector:1228:7: note: in instantiation of member function 'std::__1::__vector_base<char, media::(anonymous namespace)::AlignedAllocator<char, 8> >::__vector_base' requested here
    : __base(_VSTD::move(__x.__alloc()))
      ^
../../media/gpu/video_encode_accelerator_unittest.cc:1989:7: note: in instantiation of member function 'std::__1::vector<char, media::(anonymous namespace)::AlignedAllocator<char, 8> >::vector' requested here
      AlignedCharVector(
      ^
../../media/gpu/video_encode_accelerator_unittest.cc:188:3: note: candidate constructor not viable: requires 0 arguments, but 1 was provided
  AlignedAllocator() {}
  ^
/b/c/b/mac_ng/src/third_party/llvm-build/Release+Asserts/bin/../include/c++/v1/memory:2321:75: note: passing argument to parameter '__t2' here
    _LIBCPP_INLINE_VISIBILITY __compressed_pair(_T1_param __t1, _T2_param __t2)
                                                                          ^
1 error generated.
Project Member

Comment 11 by bugdroid1@chromium.org, Nov 30 2016

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

commit ab2576fd118981251ac96db03d933fa4468549bd
Author: battre <battre@chromium.org>
Date: Wed Nov 30 09:35:55 2016

Revert of VEA unittest: add a test case for cache line-alignment (patchset #8 id:140001 of https://codereview.chromium.org/2525563005/ )

Reason for revert:
Breaks the compilation on mac.

Original issue's description:
> VEA unittest: add a test case for cache line-alignment
>
> Linux refuses to accept buffers that have sizes ualigned to
> CPU cache line, which can be 128 bytes on certain devices.
> This test inputs a frame that has unaligned size of U and V
> planes to catch such errors.
>
> BUG= 664039 
> TEST=Run VEA unittest on Kevin.
> 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
>
> Committed: https://crrev.com/62f3a0edf9c5e19da3e59a6b2f5c402895b1805a
> Cr-Commit-Position: refs/heads/master@{#435179}

TBR=wuchengli@chromium.org,hywu@chromium.org,owenlin@chromium.org,hywu@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 664039 

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

[modify] https://crrev.com/ab2576fd118981251ac96db03d933fa4468549bd/media/gpu/video_encode_accelerator_unittest.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Dec 1 2016

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

commit bf4e9d86a27ed1604fbc227209381d529b679fa6
Author: hywu <hywu@google.com>
Date: Thu Dec 01 06:39:25 2016

VEA unittest: add a test case for cache line-alignment

Linux refuses to accept buffers that have sizes ualigned to
CPU cache line, which can be 128 bytes on certain devices.
This test inputs a frame that has unaligned size of U and V
planes to catch such errors.

BUG= 664039 
TEST=Run VEA unittest on Kevin.
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

Committed: https://crrev.com/62f3a0edf9c5e19da3e59a6b2f5c402895b1805a
Review-Url: https://codereview.chromium.org/2525563005
Cr-Original-Commit-Position: refs/heads/master@{#435179}
Cr-Commit-Position: refs/heads/master@{#435566}

[modify] https://crrev.com/bf4e9d86a27ed1604fbc227209381d529b679fa6/media/gpu/video_encode_accelerator_unittest.cc

Comment 13 by hywu@chromium.org, Dec 5 2016

Status: Verified (was: Assigned)

Sign in to add a comment