From d6eb36b132af5386ffa44787ec507835563b3497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20S=C3=BC=C3=9Fenbach?= Date: Thu, 31 Jul 2025 16:44:52 +0200 Subject: [PATCH] Add constants to vulkan_video.cppm[hpp|cppm] (#2232) --- VideoHppGenerator.cpp | 118 ++++++++++++++-- VideoHppGenerator.hpp | 6 + vulkan/vulkan_video.cppm | 286 ++++++++++++++++++++++++++++++--------- vulkan/vulkan_video.hpp | 90 ++++++++++++ 4 files changed, 423 insertions(+), 77 deletions(-) diff --git a/VideoHppGenerator.cpp b/VideoHppGenerator.cpp index f0f3af2..1884f21 100644 --- a/VideoHppGenerator.cpp +++ b/VideoHppGenerator.cpp @@ -63,6 +63,7 @@ namespace VULKAN_HPP_NAMESPACE { namespace VULKAN_HPP_VIDEO_NAMESPACE { +${constants} ${enums} ${structs} } // namespace VULKAN_HPP_VIDEO_NAMESPACE @@ -76,9 +77,12 @@ ${structs} #endif )"; - std::string str = replaceWithMap( - videoHppTemplate, - { { "copyrightMessage", m_copyrightMessage }, { "enums", generateEnums() }, { "includes", generateIncludes() }, { "structs", generateStructs() } } ); + std::string str = replaceWithMap( videoHppTemplate, + { { "constants", generateConstants() }, + { "copyrightMessage", m_copyrightMessage }, + { "enums", generateEnums() }, + { "includes", generateIncludes() }, + { "structs", generateStructs() } } ); writeToFile( str, video_hpp ); } @@ -240,6 +244,41 @@ void VideoHppGenerator::checkForWarning( bool condition, int line, std::string c ::checkForWarning( "VideoHppGenerator", condition, line, message ); } +std::string VideoHppGenerator::generateConstants() const +{ + { + const std::string enumsTemplate = R"( + //================= + //=== CONSTANTs === + //================= + +${constants} +)"; + + std::string constants; + for ( auto const & extension : m_extensions ) + { + constants += generateConstants( extension ); + } + + return replaceWithMap( enumsTemplate, { { "constants", constants } } ); + } +} + +std::string VideoHppGenerator::generateConstants( ExtensionData const & extensionData ) const +{ + std::string str; + for ( auto const & constant : extensionData.requireData.constants ) + { + str += "VULKAN_HPP_CONSTEXPR_INLINE " + constant.second.type + " " + toCamelCase( stripPrefix( constant.first, "STD_VIDEO_" ), true ) + " = " + constant.second.value + ";\n"; + } + if ( !str.empty() ) + { + str = "\n#if defined( " + extensionData.protect + " )\n //=== " + extensionData.name + " ===\n" + str + "#endif\n"; + } + return str; +} + std::string VideoHppGenerator::generateEnum( std::pair const & enumData ) const { std::string enumValues; @@ -332,6 +371,35 @@ std::string VideoHppGenerator::generateIncludes() const return includes; } +std::string VideoHppGenerator::generateCppModuleConstantUsings() const +{ + const std::string enumsTemplate = R"( + //================= + //=== CONSTANTs === + //================= + +${constants} +)"; + + std::string constants; + for ( auto const & extension : m_extensions ) + { + std::string constantsPerExtension; + for ( auto const & type : extension.requireData.constants ) + { + constantsPerExtension += + "using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::" + toCamelCase( stripPrefix( type.first, "STD_VIDEO_" ), true ) + ";\n"; + } + if ( !constantsPerExtension.empty() ) + { + constantsPerExtension = "\n#if defined( " + extension.protect + " )\n //=== " + extension.name + " ===\n" + constantsPerExtension + "#endif\n"; + } + constants += constantsPerExtension; + } + + return replaceWithMap( enumsTemplate, { { "constants", constants } } ); +} + std::string VideoHppGenerator::generateCppModuleEnumUsings() const { auto const usingTemplate = std::string{ @@ -350,14 +418,20 @@ ${enums} std::string enums; for ( auto const & extension : m_extensions ) { + std::string enumsPerExtension; for ( auto const & type : extension.requireData.types ) { auto enumIt = m_enums.find( type ); if ( enumIt != m_enums.end() ) { - enums += replaceWithMap( usingTemplate, { { "enumName", stripPrefix( enumIt->first, "StdVideo" ) } } ); + enumsPerExtension += replaceWithMap( usingTemplate, { { "enumName", stripPrefix( enumIt->first, "StdVideo" ) } } ); } } + if ( !enumsPerExtension.empty() ) + { + enumsPerExtension = "\n#if defined( " + extension.protect + " )\n //=== " + extension.name + " ===\n" + enumsPerExtension + "#endif\n"; + } + enums += enumsPerExtension; } return replaceWithMap( enumsTemplate, { { "enums", enums } } ); @@ -550,14 +624,20 @@ ${structs} std::string structs; for ( auto const & extension : m_extensions ) { + std::string structsPerExtension; for ( auto const & type : extension.requireData.types ) { auto structIt = m_structs.find( type ); if ( structIt != m_structs.end() ) { - structs += replaceWithMap( usingTemplate, { { "structName", stripPrefix( structIt->first, "StdVideo" ) } } ); + structsPerExtension += replaceWithMap( usingTemplate, { { "structName", stripPrefix( structIt->first, "StdVideo" ) } } ); } } + if ( !structsPerExtension.empty() ) + { + structsPerExtension = "\n#if defined( " + extension.protect + " )\n //=== " + extension.name + " ===\n" + structsPerExtension + "#endif\n"; + } + structs += structsPerExtension; } return replaceWithMap( structsTemplate, { { "structs", structs } } ); @@ -565,7 +645,7 @@ ${structs} std::string VideoHppGenerator::generateCppModuleUsings() const { - return generateCppModuleEnumUsings() + generateCppModuleStructUsings(); + return generateCppModuleConstantUsings() + generateCppModuleEnumUsings() + generateCppModuleStructUsings(); } bool VideoHppGenerator::isExtension( std::string const & name ) const @@ -810,15 +890,19 @@ void VideoHppGenerator::readRequireEnum( tinyxml2::XMLElement const * element, s int line = element->GetLineNum(); std::map attributes = getAttributes( element ); checkElements( line, getChildElements( element ), {} ); - checkAttributes( line, attributes, { { "name", {} }, { "value", {} } }, {} ); + checkAttributes( line, attributes, { { "name", {} }, { "value", {} } }, { { "type", { "uint32_t", "uint8_t" } } } ); - std::string name, value; + std::string name, type, value; for ( auto const & attribute : attributes ) { if ( attribute.first == "name" ) { name = attribute.second; } + else if ( attribute.first == "type" ) + { + type = attribute.second; + } else if ( attribute.first == "value" ) { value = attribute.second; @@ -827,8 +911,9 @@ void VideoHppGenerator::readRequireEnum( tinyxml2::XMLElement const * element, s if ( !name.ends_with( "_SPEC_VERSION" ) && !name.ends_with( "_EXTENSION_NAME" ) ) { + checkForError( !type.empty(), line, "constant <" + name + "> has no type specified" ); checkForError( isNumber( value ) || isHexNumber( value ), line, "enum value uses unknown constant <" + value + ">" ); - checkForError( constants.insert( { name, { value, line } } ).second, line, "required enum <" + name + "> already specified" ); + checkForError( constants.insert( { name, { type, value, line } } ).second, line, "required enum <" + name + "> already specified" ); } } @@ -860,13 +945,26 @@ void VideoHppGenerator::readStructMember( tinyxml2::XMLElement const * element, (void)members; int line = element->GetLineNum(); std::map attributes = getAttributes( element ); - checkAttributes( line, attributes, {}, {} ); + checkAttributes( line, attributes, {}, { { "len", {} }, { "optional", { "false", "true" } } } ); std::vector children = getChildElements( element ); checkElements( line, children, { { "name", true }, { "type", true } }, { "comment", "enum" } ); MemberData memberData; memberData.xmlLine = line; + for ( auto const & attribute : attributes ) + { + if ( attribute.first == "len" ) + { + memberData.len = attribute.second; + // the "len" attribute can be something completely unrelated to this struct!! Can't to a checkForError whatsoever. + } + else if ( attribute.first == "optional" ) + { + memberData.optional = attribute.second; + } + } + std::string name; for ( auto child : children ) { diff --git a/VideoHppGenerator.hpp b/VideoHppGenerator.hpp index bc52cd3..5c8e66d 100644 --- a/VideoHppGenerator.hpp +++ b/VideoHppGenerator.hpp @@ -31,6 +31,7 @@ public: private: struct ConstantData { + std::string type = {}; std::string value = {}; int xmlLine = {}; }; @@ -78,6 +79,8 @@ private: std::string name = {}; std::vector arraySizes = {}; std::string bitCount = {}; + std::string len = {}; + std::string optional = {}; int xmlLine = {}; }; @@ -102,6 +105,8 @@ private: std::set const & optional = {} ) const; void checkForError( bool condition, int line, std::string const & message ) const; void checkForWarning( bool condition, int line, std::string const & message ) const; + std::string generateConstants() const; + std::string generateConstants( ExtensionData const & extensionData ) const; std::string generateEnum( std::pair const & enumData ) const; std::string generateEnums() const; std::string generateEnums( ExtensionData const & extensionData ) const; @@ -111,6 +116,7 @@ private: std::string generateStructMembers( std::pair const & structData ) const; std::string generateStructs() const; std::string generateStructs( ExtensionData const & extensionData ) const; + std::string generateCppModuleConstantUsings() const; std::string generateCppModuleEnumUsings() const; std::string generateCppModuleStructUsings() const; std::string generateCppModuleUsings() const; diff --git a/vulkan/vulkan_video.cppm b/vulkan/vulkan_video.cppm index 04cd62f..f3f097e 100644 --- a/vulkan/vulkan_video.cppm +++ b/vulkan/vulkan_video.cppm @@ -24,22 +24,102 @@ export namespace VULKAN_HPP_NAMESPACE namespace VULKAN_HPP_VIDEO_NAMESPACE { + //================= + //=== CONSTANTs === + //================= + +#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ ) + //=== vulkan_video_codec_h264std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CpbCntListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MaxChromaPlanes; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MaxNumListRef; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264NoReferencePicture; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList4X4NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList4X4NumLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList8X8NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList8X8NumLists; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ ) + //=== vulkan_video_codec_h264std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264FieldOrderCountListSize; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ ) + //=== vulkan_video_codec_h265std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaQpOffsetListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaQpOffsetTileColsListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaQpOffsetTileRowsListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265CpbCntListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxChromaPlanes; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxDeltaPoc; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxDpbSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxLongTermPics; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxLongTermRefPicsSps; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxNumListRef; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxShortTermRefPicSets; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265NoReferencePicture; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteCompEntriesListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteComponentsListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList16X16NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList16X16NumLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList32X32NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList32X32NumLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList4X4NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList4X4NumLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList8X8NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList8X8NumLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SublayersListSize; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ ) + //=== vulkan_video_codec_h265std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265RefPicSetListSize; +#endif + +#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ ) + //=== vulkan_video_codec_vp9std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9LoopFilterAdjustments; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxRefFrames; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxSegmentationPredProb; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxSegmentationTreeProbs; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxSegments; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9NumRefFrames; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9RefsPerFrame; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9SegLvlMax; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ ) + //=== vulkan_video_codec_av1std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1GlobalMotionParams; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1LoopFilterAdjustments; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxCdefFilterStrengths; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxLoopFilterStrengths; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumCbPoints; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumCrPoints; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumPlanes; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumPosChroma; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumPosLuma; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumYPoints; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxSegments; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxTileCols; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxTileRows; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1NumRefFrames; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1PrimaryRefNone; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1RefsPerFrame; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SegLvlMax; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SelectIntegerMv; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SelectScreenContentTools; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SkipModeFrames; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1TotalRefsPerFrame; +#endif + //============= //=== ENUMs === //============= - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ChromaSamplePosition; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorPrimaries; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameRestorationType; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameType; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Level; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1MatrixCoefficients; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Profile; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ReferenceName; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TransferCharacteristics; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264FieldOrderCount; +#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ ) + //=== vulkan_video_codec_h264std === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264AspectRatioIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CabacInitIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ChromaFormatIdc; @@ -53,63 +133,74 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ProfileIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SliceType; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264WeightedBipredIdc; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ ) + //=== vulkan_video_codec_h264std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264FieldOrderCount; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ ) + //=== vulkan_video_codec_h265std === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265AspectRatioIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaFormatIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LevelIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureType; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SliceType; +#endif + +#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ ) + //=== vulkan_video_codec_vp9std === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorSpace; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9FrameType; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9InterpolationFilter; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Level; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Profile; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ReferenceName; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ ) + //=== vulkan_video_codec_av1std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ChromaSamplePosition; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorPrimaries; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameRestorationType; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameType; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Level; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1MatrixCoefficients; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Profile; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ReferenceName; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TransferCharacteristics; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode; +#endif //=============== //=== STRUCTS === //=============== - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1CDEF; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfig; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfigFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrain; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrainFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1GlobalMotion; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilter; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilterFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopRestoration; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Quantization; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1QuantizationFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Segmentation; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeader; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeaderFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfoFlags; +#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ ) + //=== vulkan_video_codec_h264std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264HrdParameters; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureParameterSet; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PpsFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSet; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSetVui; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsVuiFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ ) + //=== vulkan_video_codec_h264std_decode === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfo; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfoFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfo; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1DecoderModelInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ExtensionHeader; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfoFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ ) + //=== vulkan_video_codec_h264std_encode === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264PictureInfo; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264PictureInfoFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceInfo; @@ -122,25 +213,10 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264SliceHeaderFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTable; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTableFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265LongTermRefPics; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeader; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeaderFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTable; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTableFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264HrdParameters; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureParameterSet; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PpsFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSet; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSetVui; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsVuiFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ ) + //=== vulkan_video_codec_h265std === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265DecPicBufMgr; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdParameters; @@ -160,12 +236,88 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SubLayerHrdParameters; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265VideoParameterSet; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265VpsFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ ) + //=== vulkan_video_codec_h265std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfoFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ ) + //=== vulkan_video_codec_h265std_encode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265LongTermRefPics; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeader; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeaderFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTable; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTableFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ ) + //=== vulkan_video_codec_vp9std === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorConfig; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorConfigFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilter; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilterFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Segmentation; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9SegmentationFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_ ) + //=== vulkan_video_codec_vp9std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfoFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ ) + //=== vulkan_video_codec_av1std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1CDEF; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfig; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfigFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrain; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrainFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1GlobalMotion; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilter; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilterFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopRestoration; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Quantization; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1QuantizationFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Segmentation; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeader; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeaderFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfoFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ ) + //=== vulkan_video_codec_av1std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfoFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_ ) + //=== vulkan_video_codec_av1std_encode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1DecoderModelInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ExtensionHeader; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfoFlags; +#endif } // namespace VULKAN_HPP_VIDEO_NAMESPACE } // namespace VULKAN_HPP_NAMESPACE diff --git a/vulkan/vulkan_video.hpp b/vulkan/vulkan_video.hpp index 833aabc..311b0c3 100644 --- a/vulkan/vulkan_video.hpp +++ b/vulkan/vulkan_video.hpp @@ -63,6 +63,96 @@ namespace VULKAN_HPP_NAMESPACE namespace VULKAN_HPP_VIDEO_NAMESPACE { + //================= + //=== CONSTANTs === + //================= + +#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ ) + //=== vulkan_video_codec_h264std === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264CpbCntListSize = 32; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264MaxChromaPlanes = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264MaxNumListRef = 32; + VULKAN_HPP_CONSTEXPR_INLINE uint8_t H264NoReferencePicture = 0xFF; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList4X4NumElements = 16; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList4X4NumLists = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList8X8NumElements = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList8X8NumLists = 6; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ ) + //=== vulkan_video_codec_h264std_decode === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t DecodeH264FieldOrderCountListSize = 2; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ ) + //=== vulkan_video_codec_h265std === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ChromaQpOffsetListSize = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ChromaQpOffsetTileColsListSize = 19; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ChromaQpOffsetTileRowsListSize = 21; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265CpbCntListSize = 32; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxChromaPlanes = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxDeltaPoc = 48; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxDpbSize = 16; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxLongTermPics = 16; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxLongTermRefPicsSps = 32; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxNumListRef = 15; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxShortTermRefPicSets = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint8_t H265NoReferencePicture = 0xFF; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265PredictorPaletteComponentsListSize = 3; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265PredictorPaletteCompEntriesListSize = 128; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList16X16NumElements = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList16X16NumLists = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList32X32NumElements = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList32X32NumLists = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList4X4NumElements = 16; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList4X4NumLists = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList8X8NumElements = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList8X8NumLists = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265SublayersListSize = 7; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ ) + //=== vulkan_video_codec_h265std_decode === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t DecodeH265RefPicSetListSize = 8; +#endif + +#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ ) + //=== vulkan_video_codec_vp9std === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9LoopFilterAdjustments = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxRefFrames = 4; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxSegmentationPredProb = 3; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxSegmentationTreeProbs = 7; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxSegments = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9NumRefFrames = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9RefsPerFrame = 3; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9SegLvlMax = 4; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ ) + //=== vulkan_video_codec_av1std === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1GlobalMotionParams = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1LoopFilterAdjustments = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxCdefFilterStrengths = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxLoopFilterStrengths = 4; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumCbPoints = 10; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumCrPoints = 10; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumPlanes = 3; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumPosChroma = 25; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumPosLuma = 24; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumYPoints = 14; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxSegments = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxTileCols = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxTileRows = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1NumRefFrames = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint8_t Av1PrimaryRefNone = 7; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1RefsPerFrame = 7; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1SegLvlMax = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint8_t Av1SelectIntegerMv = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1SelectScreenContentTools = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1SkipModeFrames = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1TotalRefsPerFrame = 8; +#endif + //============= //=== ENUMs === //=============