diff options
Diffstat (limited to 'tests/block_utils.h')
-rw-r--r-- | tests/block_utils.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/block_utils.h b/tests/block_utils.h new file mode 100644 index 0000000..4542420 --- /dev/null +++ b/tests/block_utils.h @@ -0,0 +1,62 @@ +/* + * Copyright 2020 The libgav1 Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef LIBGAV1_TESTS_BLOCK_UTILS_H_ +#define LIBGAV1_TESTS_BLOCK_UTILS_H_ + +#include <cstdint> + +namespace libgav1 { +namespace test_utils { + +//------------------------------------------------------------------------------ +// Prints |block| pixel by pixel with |width| pixels per row if |print_padding| +// is false, |stride| otherwise. If |print_padding| is true padding pixels are +// surrounded in '[]'. +template <typename Pixel> +void PrintBlock(const Pixel* block, int width, int height, int stride, + bool print_padding = false); + +extern template void PrintBlock(const uint8_t* block, int width, int height, + int stride, bool print_padding /*= false*/); +extern template void PrintBlock(const uint16_t* block, int width, int height, + int stride, bool print_padding /*= false*/); + +//------------------------------------------------------------------------------ +// Compares |block1| and |block2| pixel by pixel checking |width| pixels per row +// if |check_padding| is false, min(|stride1|, |stride2|) pixels otherwise. +// Prints the blocks with differences marked with a '*' if |print_diff| is +// true (the default). + +template <typename Pixel> +bool CompareBlocks(const Pixel* block1, const Pixel* block2, int width, + int height, int stride1, int stride2, bool check_padding, + bool print_diff = true); + +extern template bool CompareBlocks(const uint8_t* block1, const uint8_t* block2, + int width, int height, int stride1, + int stride2, bool check_padding, + bool print_diff /*= true*/); +extern template bool CompareBlocks(const uint16_t* block1, + const uint16_t* block2, int width, + int height, int stride1, int stride2, + bool check_padding, + bool print_diff /*= true*/); + +} // namespace test_utils +} // namespace libgav1 + +#endif // LIBGAV1_TESTS_BLOCK_UTILS_H_ |