Robert Bares a8aa921c46 Allow negative height when ConvertToI420/ARGB is called with NV12/NV21
ConvertToI420 and ConvertToARGB support the use of a negative height
parameter to flip the image vertically. When converting from NV12 or
NV21 this parameter was misinterpreted, resulting in invalid output.
This CL introduces the use of abs_src_height to correctly calculate
the location of the source UV plane.

The sign of crop_height is not used, to reduce confusion ConvertToI420
and ConvertToARGB no longer accept negative crop height.

Unit tests for Android420ToI420 are updated to fix miscalculation of
src_stride_uv, fix incorrect pixel strides, and to test inversion.
New unit tests are included to test inversion for ConvertToARGB,
ConvertToI420, Android420ToARGB, and Android420ToABGR.
For consistency the test NV12Crop is renamed ConvertToI420_NV12_Crop.

Bug: libyuv:446
Test: out/Release/libyuv_unittest --gtest_filter=*.ConvertTo*:*.Android420To*
Change-Id: Idc98e62671cb30272cfa7e24fafbc8b73712f7c6
Reviewed-on: https://chromium-review.googlesource.com/994074
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2018-04-19 02:41:27 +00:00
..
compare_common.cc add const to casts 2018-04-13 22:52:52 +00:00
compare_gcc.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
compare_msa.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
compare_neon64.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
compare_neon.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
compare_win.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
compare.cc tidy applied with all cppcoreguidelines and google 2018-02-07 02:28:25 +00:00
convert_argb.cc NV21ToRGB24_AVX2 and SSSE3 2018-03-07 03:58:48 +00:00
convert_from_argb.cc add const to casts 2018-04-13 22:52:52 +00:00
convert_from.cc add const to casts 2018-04-13 22:52:52 +00:00
convert_jpeg.cc clang-tidy fix for MJPEGToI420 and MJPEGToARGB 2018-02-27 08:37:55 +00:00
convert_to_argb.cc Allow negative height when ConvertToI420/ARGB is called with NV12/NV21 2018-04-19 02:41:27 +00:00
convert_to_i420.cc Allow negative height when ConvertToI420/ARGB is called with NV12/NV21 2018-04-19 02:41:27 +00:00
convert.cc 10 bit YUV to 10 bit BGR 2018-02-15 22:44:36 +00:00
cpu_id.cc Add a method to force the CPU flags 2018-03-26 19:31:00 +00:00
mjpeg_decoder.cc 10 bit YUV to 10 bit BGR 2018-02-15 22:44:36 +00:00
mjpeg_validate.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
planar_functions.cc ByteToFloatRow_NEON to convert and scale bytes to floats 2018-02-24 00:34:07 +00:00
rotate_any.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
rotate_argb.cc clang-tidy and clang-format applied reland 2018-02-21 23:30:38 +00:00
rotate_common.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_gcc.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_msa.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_neon64.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_neon.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_win.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
row_any.cc AVX512 VMBI version of ARGBToRGB24 2018-03-10 02:04:48 +00:00
row_common.cc use attribute to alias for punning float to int 2018-04-13 19:20:52 +00:00
row_gcc.cc Disable AVX512 for iOS simulator xcode 9 builds. 2018-04-03 18:45:14 +00:00
row_msa.cc tidy applied with readability-inconsistent-declaration-parameter-name 2018-02-07 00:24:25 +00:00
row_neon64.cc ByteToFloatRow_NEON to convert and scale bytes to floats 2018-02-24 00:34:07 +00:00
row_neon.cc Pass float parameters via vector 2 float and "w" for scalar multiply. 2018-03-28 21:52:08 +00:00
row_win.cc tidy applied with readability-inconsistent-declaration-parameter-name 2018-02-07 00:24:25 +00:00
scale_any.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
scale_argb.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
scale_common.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
scale_gcc.cc I420ToYUY2_AVX2 port 2018-02-01 00:33:25 +00:00
scale_msa.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
scale_neon64.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
scale_neon.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
scale_win.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
scale.cc tidy applied with readability-inconsistent-declaration-parameter-name 2018-02-07 00:24:25 +00:00
video_common.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00