1 #ifndef _VKTVIDEOCLIPINFO_HPP 2 #define _VKTVIDEOCLIPINFO_HPP 3 /*------------------------------------------------------------------------ 4 * Vulkan Conformance Tests 5 * ------------------------ 6 * 7 * Copyright (c) 2023 The Khronos Group Inc. 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 * 21 *//*! 22 * \file 23 * \brief Reference checksums for video decode validation 24 * 25 * See the <vulkan_data_dir>/vulkan/video/frame_checksums.py file for 26 * instructions on generating the checksums for new tests. 27 *--------------------------------------------------------------------*/ 28 #include "deDefs.hpp" 29 #include "vktVideoTestUtils.hpp" 30 31 #include <array> 32 #include <string> 33 #include <sstream> 34 35 36 namespace vkt 37 { 38 namespace video 39 { 40 41 enum ClipName 42 { 43 CLIP_A = 0, 44 CLIP_B, 45 CLIP_C, 46 CLIP_D, 47 CLIP_H264_4K_26_IBP_MAIN, 48 CLIP_JELLY_HEVC, 49 50 CLIP_LAST, 51 }; 52 53 struct VideoProfileInfo 54 { 55 VkVideoCodecOperationFlagBitsKHR codecOperation; 56 VkVideoChromaSubsamplingFlagBitsKHR subsamplingFlags; 57 VkVideoComponentBitDepthFlagBitsKHR lumaBitDepth; 58 VkVideoComponentBitDepthFlagBitsKHR chromaBitDepth; 59 60 int profileIDC; // TODO: Avoid type-punning 61 }; 62 63 struct ClipInfo 64 { 65 ClipName name; 66 const char* filename; 67 VideoProfileInfo profile; 68 int totalFrames; 69 int framesInGOP; 70 int numGOPs; 71 const char** frameChecksums; 72 }; 73 74 const ClipInfo* clipInfo(ClipName c); 75 const char* checksumForClipFrame(const ClipInfo* cinfo, int frameNumber); 76 77 } // namespace video 78 } // namespace vkt 79 #endif // _VKTVIDEOCLIPINFO_HPP 80