• Robert Bares's avatar
    Allow negative height when ConvertToI420/ARGB is called with NV12/NV21 · a8aa921c
    Robert Bares authored
    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: 's avatarFrank Barchard <fbarchard@chromium.org>
    a8aa921c
convert_test.cc 157 KB