| <?php |
| /** |
| * Copyright (c) 2021, Alliance for Open Media. All rights reserved |
| * |
| * This source code is subject to the terms of the BSD 2 Clause License and |
| * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License |
| * was not distributed with this source code in the LICENSE file, you can |
| * obtain it at www.aomedia.org/license/software. If the Alliance for Open |
| * Media Patent License 1.0 was not distributed with this source code in the |
| * PATENTS file, you can obtain it at www.aomedia.org/license/patent. |
| * |
| * |
| * Can be run with "php avifinfo_test.php" from this folder. |
| */ |
| |
| require_once('../avifinfo.php'); |
| |
| function test_avifinfo_parser( $file_name, $expected_width, $expected_height, |
| $expected_bit_depth, $expected_num_channels ) { |
| $features = array( 'width' => false, 'height' => false, |
| 'bit_depth' => false, 'num_channels' => false ); |
| $handle = fopen( $file_name, 'rb' ); |
| if ( $handle ) { |
| $parser = new Avifinfo\Parser( $handle ); |
| $success = $parser->parse_ftyp() && $parser->parse_file(); |
| fclose( $handle ); |
| if ( $success ) { |
| $features = $parser->features->primary_item_features; |
| } |
| } |
| |
| if ( $features['width'] != $expected_width || |
| $features['height'] != $expected_height || |
| $features['bit_depth'] != $expected_bit_depth || |
| $features['num_channels'] != $expected_num_channels ) { |
| echo 'Failure: '.$file_name.PHP_EOL; |
| } else { |
| echo 'Success: '.$file_name.PHP_EOL; |
| } |
| } |
| |
| test_avifinfo_parser('avifinfo_test_1x1.avif', 1, 1, 8, 3); |
| test_avifinfo_parser('avifinfo_test_2x2_alpha.avif', 2, 2, 8, 4); |
| test_avifinfo_parser('avifinfo_test_1x1_10b_nopixi_metasize64b_mdatsize0.avif', |
| 1, 1, 10, 3); |
| test_avifinfo_parser('avifinfo_test_199x200_alpha_grid2x1.avif', 199, 200, 8, 4); |