diff --git a/CMakeLists.txt b/CMakeLists.txt index 7c05fc8bc..92ea662b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ option(WISDOM_BUILD_STATIC "Build the static lib." ON) option(WISDOM_BUILD_SHARED "Build the dynamic lib." ON) option(WISDOM_BUILD_PLATFORM "Build unified platform extension library." ON) option(WISDOM_BUILD_DOCS "Build the documentation." OFF) -option(WISDOM_USE_AGILITY_SDK "Download and use DirectX 12 Agility SDK." OFF) +option(WISDOM_USE_AGILITY_SDK "Download and use DirectX 12 Agility SDK." ON) option(WISDOM_USE_CONAN "Use Conan to manage dependencies. Only for library builds." OFF) # DXC deployment options diff --git a/agents.md b/agents.md new file mode 100644 index 000000000..2a2376d5d --- /dev/null +++ b/agents.md @@ -0,0 +1,46 @@ +Implicit actions: + +- If the you need to create or update structure/enum/variant that is located in generated/ directories: +- 1. Update the structure in .xml file that is named the same as extension folder: example video/generated/c_api -> video.xml +- 2. Run the generator target with xml name as argument: example: video.xml -> generator video + +If the change is from core API, (under include folder) use generator without argument: include/generated/c_api -> generator + +Set of rules to the code: + +- Don't use STL containers. Only usage of wis::span and wis::unique_ptr is allowed. Occasional use of std::string_view is allowed. +- Don't use C++ exceptions. +- Don't use C++ RTTI (typeid, dynamic_cast, etc.). +- No virtual functions. +- API is C compatible, so all API facing functions must have C linkage WIS_EXTERN_C. +- Internal functions are allowed to use C++20 features, but not in header files. +- If several allocations are required, use a single allocation and place all data in it. This is to minimize the number of allocations and deallocations, which can be expensive. +- If allocation is required, try assuming the reasonable size of the buffer and use stack allocation. +- If the buffer size is unknown, use a two-pass approach: first call the function with a null buffer to get the required size, then allocate the buffer and call the function again to fill it. +- If the allocation is absolutely required in command list api, use provided bump allocator, but try to avoid it as much as possible. +- If the allocation is required in class handle, use unique_ptr + release(). +- If the class has allocation, fill in destroy function that will free the memory. + + + + + +## Goal +- Wire real parsed H.265 VPS/SPS/PPS data from `h265nal::H265BitstreamParserState` through the example into `WisVideoDecodeH265Desc` so `CreateParameters` injects actual parameter sets + +## Summary +- Updated `Graphics::Create` signature: added `const wis::VideoDecodeH265Desc* h265_params = nullptr` parameter; when non-null, uses provided max-counts and parameter-set arrays instead of hardcoded empty ones +- Added conversion code in `app.cpp`: + - `ConvertedH265Params` struct holds converted wisdom arrays + aux storage for `ProfileTierLevel` + - `ConvertVps()` — maps all VPS flat fields + `pProfileTierLevel` from `H265VpsParser::VpsState` + - `ConvertSps()` — maps all SPS flat fields + range extension/SCC extension flags + `pProfileTierLevel`; leaves sub-structure pointers (`pDecPicBufMgr`, `pScalingLists`, etc.) as `nullptr` + - `ConvertPps()` — maps all PPS flat fields + SCC extension flags + tile arrays (padded/truncated to wisdom fixed-size); derives `sps_video_parameter_set_id` via SPS→VPS lookup table + - `ConvertH265Params()` — orchestrates iteration over maps, builds `sps_to_vps` id mapping, populates `VideoDecodeH265Desc` with pointers into the owned vectors +- `App::Start()` now calls `ConvertH265Params(parser_state)` and passes `&converted.desc` to `Graphics::Create` +- Fixed incorrect SCC extension flag mapping in PPS (`cross_component_prediction`, `chroma_qp_offset_list` — these are from 3D/range extensions, not SCC) +- Builds successfully under MSVC for both `video-vk-cpp` and `video-dx12-cpp` targets + +## Next Steps +- Run the example with a real H.265 file (`video-vk-cpp `) to validate end-to-end parameter creation +- If Vulkan validation errors surface (e.g., missing `pDecPicBufMgr`), populate the corresponding sub-structures from h265nal parsed data +- Add `pProfileTierLevel` population guard for cases where `general` pointer is null (currently left as default-constructed PTL) \ No newline at end of file diff --git a/cmake/functions.cmake b/cmake/functions.cmake index 5e52e55a4..5ab99722a 100644 --- a/cmake/functions.cmake +++ b/cmake/functions.cmake @@ -141,6 +141,7 @@ function(_ww_load_latest_dxc) FetchContent_Declare( dxc URL "${DXC_LINK}" + DOWNLOAD_EXTRACT_TIMESTAMP TRUE ) FetchContent_MakeAvailable(dxc) set(dxc_SOURCE_DIR ${dxc_SOURCE_DIR} CACHE INTERNAL "") @@ -515,15 +516,15 @@ function(wis_load_agility_sdk) endfunction() # Function for patching executable to export DX12 Agility symbols on Windows -function(wis_patch_agility_executable TARGET) +function(wis_patch_agility_executable TARGET EXPORT_PATH) if (NOT WISDOM_WINDOWS) return() endif() - get_target_property(target_type ${TARGET_NAME} TYPE) + get_target_property(target_type ${TARGET} TYPE) - if(target_type NOT STREQUAL "EXECUTABLE") - message(FATAL_ERROR "Target ${TARGET_NAME} is not an executable. DX12 Agility patching can only be applied to executables.") + if(NOT target_type STREQUAL "EXECUTABLE") + message(FATAL_ERROR "Target ${TARGET} is not an executable. DX12 Agility patching can only be applied to executables.") endif() # Check if the DX12Agility target is available @@ -536,10 +537,10 @@ function(wis_patch_agility_executable TARGET) set(EXPORT_AGILITY "_declspec(dllexport) const unsigned D3D12SDKVersion = ${DX12SDKVER}; _declspec(dllexport) const char* D3D12SDKPath = \".\\\\D3D12\\\\\";" ) - file(WRITE ${wis_export_agility_file_PATH} "${EXPORT_AGILITY}") + file(WRITE ${EXPORT_PATH} "${EXPORT_AGILITY}") # Add the generated file to the target sources to ensure it's compiled and linked into the executable - target_sources(${TARGET} PRIVATE ${wis_export_agility_file_PATH}) + target_sources(${TARGET} PRIVATE ${EXPORT_PATH}) endfunction() # Function for installing DirectX SDK @@ -552,21 +553,21 @@ function(wis_install_agility_win32) # Check if project is an executable if (NOT TARGET ${wis_install_agility_win32_TARGET}) - message(FATAL_ERROR "Target ${PROJECT} not found") + message(FATAL_ERROR "Target ${wis_install_agility_win32_TARGET} not found") endif() - get_target_property(target_type ${TARGET_NAME} TYPE) + get_target_property(target_type ${wis_install_agility_win32_TARGET} TYPE) - if(target_type NOT STREQUAL "EXECUTABLE") - message(FATAL_ERROR "Target ${TARGET_NAME} is not an executable. DX12 Agility patching can only be applied to executables.") + if(NOT target_type STREQUAL "EXECUTABLE") + message(FATAL_ERROR "Target ${wis_install_agility_win32_TARGET} is not an executable. DX12 Agility patching can only be applied to executables.") endif() message("Installing DirectX Agility SDK Dependency") if (EXISTS ${DXAGILITY_DLL}) message("DX12 Agility Core found: ${DXAGILITY_DLL}") get_filename_component(DXAGILITY_DLL_NAME ${DXAGILITY_DLL} NAME) - add_custom_command(TARGET ${PROJECT} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DXAGILITY_DLL} $/D3D12/${DXAGILITY_DLL_NAME} + add_custom_command(TARGET ${wis_install_agility_win32_TARGET} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DXAGILITY_DLL} $/D3D12/${DXAGILITY_DLL_NAME} COMMAND_EXPAND_LISTS COMMENT "Copying DX12 Agility Core..." ) @@ -575,15 +576,18 @@ function(wis_install_agility_win32) if (EXISTS ${DXAGILITY_DEBUG_DLL}) message("DX12 Agility SDKLayers found: ${DXAGILITY_DEBUG_DLL}") get_filename_component(DXAGILITY_DEBUG_DLL_NAME ${DXAGILITY_DEBUG_DLL} NAME) - add_custom_command(TARGET ${PROJECT} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy ${DXAGILITY_DEBUG_DLL} $/D3D12/${DXAGILITY_DEBUG_DLL_NAME} + add_custom_command(TARGET ${wis_install_agility_win32_TARGET} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${DXAGILITY_DEBUG_DLL} $/D3D12/${DXAGILITY_DEBUG_DLL_NAME} COMMAND_EXPAND_LISTS COMMENT "Copying DX12 Agility SDKLayers..." ) endif() if (wis_install_agility_win32_PATCH_EXE) - wis_patch_agility_executable(${wis_install_agility_win32_TARGET}) + wis_patch_agility_executable( + ${wis_install_agility_win32_TARGET} + ${CMAKE_CURRENT_BINARY_DIR}/export_agility.c + ) endif() endfunction() diff --git a/docs/platform/func/destroy_u_w_p_extension_function.h b/docs/platform/func/destroy_u_w_p_extension_function.h index 9d6414963..a7a023059 100644 --- a/docs/platform/func/destroy_u_w_p_extension_function.h +++ b/docs/platform/func/destroy_u_w_p_extension_function.h @@ -9,18 +9,18 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisDestroyUWPExtension(WisUWPExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * - * // Provided by Wisdom 0.7.0. + * + * // Provided by Wisdom 0.7.0. * void wisDX12DestroyUWPExtension(WisDX12UWPExtension* self); * ``` *
- * + * * \endcond * * @section wisDestroyUWPExtension_memb Parameters diff --git a/docs/platform/func/destroy_wayland_extension_function.h b/docs/platform/func/destroy_wayland_extension_function.h index e53565099..8ef7842e6 100644 --- a/docs/platform/func/destroy_wayland_extension_function.h +++ b/docs/platform/func/destroy_wayland_extension_function.h @@ -9,18 +9,18 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisDestroyWaylandExtension(WisWaylandExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisVKDestroyWaylandExtension(WisVKWaylandExtension* self); - * + * * ``` *
- * + * * \endcond * * @section wisDestroyWaylandExtension_memb Parameters diff --git a/docs/platform/func/destroy_win32_extension_function.h b/docs/platform/func/destroy_win32_extension_function.h index dd47243b6..a43e03443 100644 --- a/docs/platform/func/destroy_win32_extension_function.h +++ b/docs/platform/func/destroy_win32_extension_function.h @@ -9,20 +9,20 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisDestroyWin32Extension(WisWin32Extension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisVKDestroyWin32Extension(WisVKWin32Extension* self); - * - * // Provided by Wisdom 0.7.0. + * + * // Provided by Wisdom 0.7.0. * void wisDX12DestroyWin32Extension(WisDX12Win32Extension* self); * ``` *
- * + * * \endcond * * @section wisDestroyWin32Extension_memb Parameters diff --git a/docs/platform/func/destroy_x_c_b_extension_function.h b/docs/platform/func/destroy_x_c_b_extension_function.h index b44ac9dc5..e92b3bbce 100644 --- a/docs/platform/func/destroy_x_c_b_extension_function.h +++ b/docs/platform/func/destroy_x_c_b_extension_function.h @@ -9,18 +9,18 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisDestroyXCBExtension(WisXCBExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisVKDestroyXCBExtension(WisVKXCBExtension* self); - * + * * ``` *
- * + * * \endcond * * @section wisDestroyXCBExtension_memb Parameters diff --git a/docs/platform/func/destroy_xlib_extension_function.h b/docs/platform/func/destroy_xlib_extension_function.h index 2d9e70297..277e3e47d 100644 --- a/docs/platform/func/destroy_xlib_extension_function.h +++ b/docs/platform/func/destroy_xlib_extension_function.h @@ -9,18 +9,18 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisDestroyXlibExtension(WisXlibExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisVKDestroyXlibExtension(WisVKXlibExtension* self); - * + * * ``` *
- * + * * \endcond * * @section wisDestroyXlibExtension_memb Parameters diff --git a/docs/platform/func/init_u_w_p_extension_function.h b/docs/platform/func/init_u_w_p_extension_function.h index 4ff2e4355..c429d5c2e 100644 --- a/docs/platform/func/init_u_w_p_extension_function.h +++ b/docs/platform/func/init_u_w_p_extension_function.h @@ -9,23 +9,23 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisInitUWPExtension(WisUWPExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * - * // Provided by Wisdom 0.7.0. + * + * // Provided by Wisdom 0.7.0. * void wisDX12InitUWPExtension(WisDX12UWPExtension* self); * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. - * void DX12UWPExtension::InitUWPExtension() noexcept; + * // Provided by Wisdom 0.7.0. + * DX12UWPExtension::DX12UWPExtension() noexcept; * } * ``` * \endcond @@ -33,7 +33,8 @@ * @section wisInitUWPExtension_memb Parameters *
* \cond WIS_GEN_DESC - * - **this** `self` is a pointer to uninitialized WisUWPExtension instance memory. It will be initialized by this function. + * - **this** `self` is a pointer to uninitialized WisUWPExtension instance memory. It will be initialized by this + * function. * **note** The corresponding destroy function is `wisDestroyUWPExtension`. * \endcond * diff --git a/docs/platform/func/init_wayland_extension_function.h b/docs/platform/func/init_wayland_extension_function.h index fed3c3cae..8b9ad7bd1 100644 --- a/docs/platform/func/init_wayland_extension_function.h +++ b/docs/platform/func/init_wayland_extension_function.h @@ -9,23 +9,23 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisInitWaylandExtension(WisWaylandExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisVKInitWaylandExtension(WisVKWaylandExtension* self); - * + * * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. - * void VKWaylandExtension::InitWaylandExtension() noexcept; + * // Provided by Wisdom 0.7.0. + * VKWaylandExtension::VKWaylandExtension() noexcept; * } * ``` * \endcond @@ -33,7 +33,8 @@ * @section wisInitWaylandExtension_memb Parameters *
* \cond WIS_GEN_DESC - * - **this** `self` is a pointer to uninitialized WisWaylandExtension instance memory. It will be initialized by this function. + * - **this** `self` is a pointer to uninitialized WisWaylandExtension instance memory. It will be initialized by this + * function. * **note** The corresponding destroy function is `wisDestroyWaylandExtension`. * \endcond * diff --git a/docs/platform/func/init_win32_extension_function.h b/docs/platform/func/init_win32_extension_function.h index 3d560aa64..45b57d70c 100644 --- a/docs/platform/func/init_win32_extension_function.h +++ b/docs/platform/func/init_win32_extension_function.h @@ -9,36 +9,36 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisInitWin32Extension(WisWin32Extension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisVKInitWin32Extension(WisVKWin32Extension* self); - * - * // Provided by Wisdom 0.7.0. + * + * // Provided by Wisdom 0.7.0. * void wisDX12InitWin32Extension(WisDX12Win32Extension* self); * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. - * void Win32Extension::InitWin32Extension() noexcept; + * // Provided by Wisdom 0.7.0. + * Win32Extension::Win32Extension() noexcept; * } * ``` *
* C++ Implementation Specific Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. - * void VKWin32Extension::InitWin32Extension() noexcept; - * - * // Provided by Wisdom 0.7.0. - * void DX12Win32Extension::InitWin32Extension() noexcept; + * // Provided by Wisdom 0.7.0. + * VKWin32Extension::VKWin32Extension() noexcept; + * + * // Provided by Wisdom 0.7.0. + * DX12Win32Extension::DX12Win32Extension() noexcept; * } * ``` *
@@ -47,7 +47,8 @@ * @section wisInitWin32Extension_memb Parameters *
* \cond WIS_GEN_DESC - * - **this** `self` is a pointer to uninitialized WisWin32Extension instance memory. It will be initialized by this function. + * - **this** `self` is a pointer to uninitialized WisWin32Extension instance memory. It will be initialized by this + * function. * **note** The corresponding destroy function is `wisDestroyWin32Extension`. * \endcond * diff --git a/docs/platform/func/init_x_c_b_extension_function.h b/docs/platform/func/init_x_c_b_extension_function.h index 1621ac666..24e9d14e2 100644 --- a/docs/platform/func/init_x_c_b_extension_function.h +++ b/docs/platform/func/init_x_c_b_extension_function.h @@ -9,23 +9,23 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisInitXCBExtension(WisXCBExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisVKInitXCBExtension(WisVKXCBExtension* self); - * + * * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. - * void VKXCBExtension::InitXCBExtension() noexcept; + * // Provided by Wisdom 0.7.0. + * VKXCBExtension::VKXCBExtension() noexcept; * } * ``` * \endcond @@ -33,7 +33,8 @@ * @section wisInitXCBExtension_memb Parameters *
* \cond WIS_GEN_DESC - * - **this** `self` is a pointer to uninitialized WisXCBExtension instance memory. It will be initialized by this function. + * - **this** `self` is a pointer to uninitialized WisXCBExtension instance memory. It will be initialized by this + * function. * **note** The corresponding destroy function is `wisDestroyXCBExtension`. * \endcond * diff --git a/docs/platform/func/init_xlib_extension_function.h b/docs/platform/func/init_xlib_extension_function.h index 7b6625df6..add1ed0ac 100644 --- a/docs/platform/func/init_xlib_extension_function.h +++ b/docs/platform/func/init_xlib_extension_function.h @@ -9,23 +9,23 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisInitXlibExtension(WisXlibExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * void wisVKInitXlibExtension(WisVKXlibExtension* self); - * + * * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. - * void VKXlibExtension::InitXlibExtension() noexcept; + * // Provided by Wisdom 0.7.0. + * VKXlibExtension::VKXlibExtension() noexcept; * } * ``` * \endcond @@ -33,7 +33,8 @@ * @section wisInitXlibExtension_memb Parameters *
* \cond WIS_GEN_DESC - * - **this** `self` is a pointer to uninitialized WisXlibExtension instance memory. It will be initialized by this function. + * - **this** `self` is a pointer to uninitialized WisXlibExtension instance memory. It will be initialized by this + * function. * **note** The corresponding destroy function is `wisDestroyXlibExtension`. * \endcond * diff --git a/docs/platform/func/u_w_p_extension_create_surface_function.h b/docs/platform/func/u_w_p_extension_create_surface_function.h index cb3f84156..1c18dcb2c 100644 --- a/docs/platform/func/u_w_p_extension_create_surface_function.h +++ b/docs/platform/func/u_w_p_extension_create_surface_function.h @@ -9,7 +9,7 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WisResult wisUWPExtensionCreateSurface(WisUWPExtension* self, * const WisUWPWindowDesc* info, * WisSurface* surface); @@ -17,18 +17,18 @@ *
* C Implementation Specific Version: * ```c - * - * // Provided by Wisdom 0.7.0. + * + * // Provided by Wisdom 0.7.0. * WisResult wisDX12UWPExtensionCreateSurface(WisDX12UWPExtension* self, * const WisUWPWindowDesc* info, * WisDX12Surface* surface); * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD wis::DX12Surface DX12UWPExtension::CreateSurface(const wis::UWPWindowDesc& info, * wis::Result& out_result) noexcept; * } @@ -41,7 +41,7 @@ * - **this** `self` self is a pointer to the valid WisUWPExtension instance. * - `info` UWP windowing data. * - `surface` points to WisSurface, initialized on success. - * + * * - **return** denoting the outcome of operation. * \endcond * diff --git a/docs/platform/func/wayland_extension_create_surface_function.h b/docs/platform/func/wayland_extension_create_surface_function.h index d96c8ee0e..8ffe7bf36 100644 --- a/docs/platform/func/wayland_extension_create_surface_function.h +++ b/docs/platform/func/wayland_extension_create_surface_function.h @@ -9,7 +9,7 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WisResult wisWaylandExtensionCreateSurface(WisWaylandExtension* self, * const WisWaylandWindowDesc* info, * WisSurface* surface); @@ -17,18 +17,18 @@ *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WisResult wisVKWaylandExtensionCreateSurface(WisVKWaylandExtension* self, * const WisWaylandWindowDesc* info, * WisVKSurface* surface); - * + * * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD wis::VKSurface VKWaylandExtension::CreateSurface(const wis::WaylandWindowDesc& info, * wis::Result& out_result) noexcept; * } @@ -41,7 +41,7 @@ * - **this** `self` self is a pointer to the valid WisWaylandExtension instance. * - `info` Wayland windowing data. * - `surface` points to WisSurface, initialized on success. - * + * * - **return** denoting the outcome of operation. * \endcond * diff --git a/docs/platform/func/wayland_extension_supported_function.h b/docs/platform/func/wayland_extension_supported_function.h index 0e83f2d18..92ad8f0ec 100644 --- a/docs/platform/func/wayland_extension_supported_function.h +++ b/docs/platform/func/wayland_extension_supported_function.h @@ -9,22 +9,22 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * bool wisWaylandExtensionSupported(WisWaylandExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * bool wisVKWaylandExtensionSupported(WisVKWaylandExtension* self); - * + * * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD bool VKWaylandExtension::Supported() noexcept; * } * ``` @@ -34,7 +34,7 @@ *
* \cond WIS_GEN_DESC * - **this** `self` self is a pointer to the valid WisWaylandExtension instance. - * + * * - **return** true if the extension is supported, false otherwise. * \endcond * @@ -48,4 +48,4 @@ *
* \cond WIS_GEN_REFS * \endcond - */ \ No newline at end of file + */ diff --git a/docs/platform/func/win32_extension_create_surface_function.h b/docs/platform/func/win32_extension_create_surface_function.h index 7f05387cc..361678fff 100644 --- a/docs/platform/func/win32_extension_create_surface_function.h +++ b/docs/platform/func/win32_extension_create_surface_function.h @@ -9,7 +9,7 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WisResult wisWin32ExtensionCreateSurface(WisWin32Extension* self, * const WisWin32WindowDesc* info, * WisSurface* surface); @@ -17,22 +17,22 @@ *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WisResult wisVKWin32ExtensionCreateSurface(WisVKWin32Extension* self, * const WisWin32WindowDesc* info, * WisVKSurface* surface); - * - * // Provided by Wisdom 0.7.0. + * + * // Provided by Wisdom 0.7.0. * WisResult wisDX12Win32ExtensionCreateSurface(WisDX12Win32Extension* self, * const WisWin32WindowDesc* info, * WisDX12Surface* surface); * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD wis::Surface Win32Extension::CreateSurface(const wis::Win32WindowDesc& info, * wis::Result& out_result) noexcept; * } @@ -41,11 +41,11 @@ * C++ Implementation Specific Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD wis::VKSurface VKWin32Extension::CreateSurface(const wis::Win32WindowDesc& info, * wis::Result& out_result) noexcept; - * - * // Provided by Wisdom 0.7.0. + * + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD wis::DX12Surface DX12Win32Extension::CreateSurface(const wis::Win32WindowDesc& info, * wis::Result& out_result) noexcept; * } @@ -59,7 +59,7 @@ * - **this** `self` self is a pointer to the valid WisWin32Extension instance. * - `info` Win32 windowing data. * - `surface` points to WisSurface, initialized on success. - * + * * - **return** denoting the outcome of operation. * \endcond * diff --git a/docs/platform/func/win32_extension_supported_function.h b/docs/platform/func/win32_extension_supported_function.h index ebb0af710..7d64a7906 100644 --- a/docs/platform/func/win32_extension_supported_function.h +++ b/docs/platform/func/win32_extension_supported_function.h @@ -9,24 +9,24 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * bool wisWin32ExtensionSupported(WisWin32Extension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * bool wisVKWin32ExtensionSupported(WisVKWin32Extension* self); - * - * // Provided by Wisdom 0.7.0. + * + * // Provided by Wisdom 0.7.0. * bool wisDX12Win32ExtensionSupported(WisDX12Win32Extension* self); * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD bool Win32Extension::Supported() noexcept; * } * ``` @@ -34,10 +34,10 @@ * C++ Implementation Specific Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD bool VKWin32Extension::Supported() noexcept; - * - * // Provided by Wisdom 0.7.0. + * + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD bool DX12Win32Extension::Supported() noexcept; * } * ``` @@ -48,7 +48,7 @@ *
* \cond WIS_GEN_DESC * - **this** `self` self is a pointer to the valid WisWin32Extension instance. - * + * * - **return** true if the extension is supported, false otherwise. * \endcond * @@ -62,4 +62,4 @@ *
* \cond WIS_GEN_REFS * \endcond - */ \ No newline at end of file + */ diff --git a/docs/platform/func/x_c_b_extension_create_surface_function.h b/docs/platform/func/x_c_b_extension_create_surface_function.h index 1c31581c7..681cfea8b 100644 --- a/docs/platform/func/x_c_b_extension_create_surface_function.h +++ b/docs/platform/func/x_c_b_extension_create_surface_function.h @@ -9,7 +9,7 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WisResult wisXCBExtensionCreateSurface(WisXCBExtension* self, * const WisXCBWindowDesc* info, * WisSurface* surface); @@ -17,18 +17,18 @@ *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WisResult wisVKXCBExtensionCreateSurface(WisVKXCBExtension* self, * const WisXCBWindowDesc* info, * WisVKSurface* surface); - * + * * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD wis::VKSurface VKXCBExtension::CreateSurface(const wis::XCBWindowDesc& info, * wis::Result& out_result) noexcept; * } @@ -41,7 +41,7 @@ * - **this** `self` self is a pointer to the valid WisXCBExtension instance. * - `info` XCB windowing data. * - `surface` points to WisSurface, initialized on success. - * + * * - **return** denoting the outcome of operation. * \endcond * diff --git a/docs/platform/func/x_c_b_extension_supported_function.h b/docs/platform/func/x_c_b_extension_supported_function.h index baed003fe..03822ab34 100644 --- a/docs/platform/func/x_c_b_extension_supported_function.h +++ b/docs/platform/func/x_c_b_extension_supported_function.h @@ -9,22 +9,22 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * bool wisXCBExtensionSupported(WisXCBExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * bool wisVKXCBExtensionSupported(WisVKXCBExtension* self); - * + * * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD bool VKXCBExtension::Supported() noexcept; * } * ``` @@ -34,7 +34,7 @@ *
* \cond WIS_GEN_DESC * - **this** `self` self is a pointer to the valid WisXCBExtension instance. - * + * * - **return** true if the extension is supported, false otherwise. * \endcond * @@ -48,4 +48,4 @@ *
* \cond WIS_GEN_REFS * \endcond - */ \ No newline at end of file + */ diff --git a/docs/platform/func/xlib_extension_create_surface_function.h b/docs/platform/func/xlib_extension_create_surface_function.h index 9e3cef911..085918247 100644 --- a/docs/platform/func/xlib_extension_create_surface_function.h +++ b/docs/platform/func/xlib_extension_create_surface_function.h @@ -9,7 +9,7 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WisResult wisXlibExtensionCreateSurface(WisXlibExtension* self, * const WisXlibWindowDesc* info, * WisSurface* surface); @@ -17,18 +17,18 @@ *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WisResult wisVKXlibExtensionCreateSurface(WisVKXlibExtension* self, * const WisXlibWindowDesc* info, * WisVKSurface* surface); - * + * * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD wis::VKSurface VKXlibExtension::CreateSurface(const wis::XlibWindowDesc& info, * wis::Result& out_result) noexcept; * } @@ -41,7 +41,7 @@ * - **this** `self` self is a pointer to the valid WisXlibExtension instance. * - `info` Xlib windowing data. * - `surface` points to WisSurface, initialized on success. - * + * * - **return** denoting the outcome of operation. * \endcond * diff --git a/docs/platform/func/xlib_extension_supported_function.h b/docs/platform/func/xlib_extension_supported_function.h index 6cfb5efc7..a31605835 100644 --- a/docs/platform/func/xlib_extension_supported_function.h +++ b/docs/platform/func/xlib_extension_supported_function.h @@ -9,22 +9,22 @@ * \cond WIS_GEN_CODE * C Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * bool wisXlibExtensionSupported(WisXlibExtension* self); * ``` *
* C Implementation Specific Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * bool wisVKXlibExtensionSupported(WisVKXlibExtension* self); - * + * * ``` *
- * + * * C++ Version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_NODISCARD bool VKXlibExtension::Supported() noexcept; * } * ``` @@ -34,7 +34,7 @@ *
* \cond WIS_GEN_DESC * - **this** `self` self is a pointer to the valid WisXlibExtension instance. - * + * * - **return** true if the extension is supported, false otherwise. * \endcond * @@ -48,4 +48,4 @@ *
* \cond WIS_GEN_REFS * \endcond - */ \ No newline at end of file + */ diff --git a/docs/platform/handle/u_w_p_extension_handle.h b/docs/platform/handle/u_w_p_extension_handle.h index 71f767cfd..f64aa387c 100644 --- a/docs/platform/handle/u_w_p_extension_handle.h +++ b/docs/platform/handle/u_w_p_extension_handle.h @@ -9,7 +9,7 @@ * \cond WIS_GEN_CODE * DX12 Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_DEFINE_DX12_INSTANCE_EXT_HANDLE(WisDX12UWPExtension,1); * ``` * \endcond diff --git a/docs/platform/handle/wayland_extension_handle.h b/docs/platform/handle/wayland_extension_handle.h index 3d355d74e..c97647f7e 100644 --- a/docs/platform/handle/wayland_extension_handle.h +++ b/docs/platform/handle/wayland_extension_handle.h @@ -9,7 +9,7 @@ * \cond WIS_GEN_CODE * Vulkan Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_DEFINE_VK_INSTANCE_EXT_HANDLE(WisVKWaylandExtension,2); * ``` * \endcond diff --git a/docs/platform/handle/win32_extension_handle.h b/docs/platform/handle/win32_extension_handle.h index 650e9f215..91f0235bd 100644 --- a/docs/platform/handle/win32_extension_handle.h +++ b/docs/platform/handle/win32_extension_handle.h @@ -9,12 +9,12 @@ * \cond WIS_GEN_CODE * Vulkan Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_DEFINE_VK_INSTANCE_EXT_HANDLE(WisVKWin32Extension,2); * ``` * DX12 Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_DEFINE_DX12_INSTANCE_EXT_HANDLE(WisDX12Win32Extension,1); * ``` * \endcond diff --git a/docs/platform/handle/x_c_b_extension_handle.h b/docs/platform/handle/x_c_b_extension_handle.h index 3cb07a738..bd18ffa3a 100644 --- a/docs/platform/handle/x_c_b_extension_handle.h +++ b/docs/platform/handle/x_c_b_extension_handle.h @@ -9,7 +9,7 @@ * \cond WIS_GEN_CODE * Vulkan Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_DEFINE_VK_INSTANCE_EXT_HANDLE(WisVKXCBExtension,2); * ``` * \endcond diff --git a/docs/platform/handle/xlib_extension_handle.h b/docs/platform/handle/xlib_extension_handle.h index ce14edf3e..245a1ec6b 100644 --- a/docs/platform/handle/xlib_extension_handle.h +++ b/docs/platform/handle/xlib_extension_handle.h @@ -9,7 +9,7 @@ * \cond WIS_GEN_CODE * Vulkan Version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * WIS_DEFINE_VK_INSTANCE_EXT_HANDLE(WisVKXlibExtension,2); * ``` * \endcond diff --git a/docs/platform/struct/u_w_p_window_desc_struct.h b/docs/platform/struct/u_w_p_window_desc_struct.h index e9a9b058e..5d70d65d7 100644 --- a/docs/platform/struct/u_w_p_window_desc_struct.h +++ b/docs/platform/struct/u_w_p_window_desc_struct.h @@ -9,16 +9,16 @@ * \cond WIS_GEN_CODE * C version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * typedef struct WisUWPWindowDesc { * void* core_window; * } WisUWPWindowDesc; - * + * * ``` * C++ version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * struct UWPWindowDesc { * void* core_window; * }; diff --git a/docs/platform/struct/wayland_window_desc_struct.h b/docs/platform/struct/wayland_window_desc_struct.h index 96ab2c420..7ee632182 100644 --- a/docs/platform/struct/wayland_window_desc_struct.h +++ b/docs/platform/struct/wayland_window_desc_struct.h @@ -9,17 +9,17 @@ * \cond WIS_GEN_CODE * C version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * typedef struct WisWaylandWindowDesc { * void* display; * void* surface; * } WisWaylandWindowDesc; - * + * * ``` * C++ version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * struct WaylandWindowDesc { * void* display; * void* surface; diff --git a/docs/platform/struct/win32_window_desc_struct.h b/docs/platform/struct/win32_window_desc_struct.h index 589960d98..fa7fbc6f9 100644 --- a/docs/platform/struct/win32_window_desc_struct.h +++ b/docs/platform/struct/win32_window_desc_struct.h @@ -9,17 +9,17 @@ * \cond WIS_GEN_CODE * C version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * typedef struct WisWin32WindowDesc { * void* hinstance; * void* hwnd; * } WisWin32WindowDesc; - * + * * ``` * C++ version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * struct Win32WindowDesc { * void* hinstance; * void* hwnd; diff --git a/docs/platform/struct/x_c_b_window_desc_struct.h b/docs/platform/struct/x_c_b_window_desc_struct.h index f2b5f928b..6c222c1fe 100644 --- a/docs/platform/struct/x_c_b_window_desc_struct.h +++ b/docs/platform/struct/x_c_b_window_desc_struct.h @@ -9,17 +9,17 @@ * \cond WIS_GEN_CODE * C version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * typedef struct WisXCBWindowDesc { * void* connection; * uint32_t window; * } WisXCBWindowDesc; - * + * * ``` * C++ version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * struct XCBWindowDesc { * void* connection; * std::uint32_t window; diff --git a/docs/platform/struct/xlib_window_desc_struct.h b/docs/platform/struct/xlib_window_desc_struct.h index 4c7754245..539cae3cb 100644 --- a/docs/platform/struct/xlib_window_desc_struct.h +++ b/docs/platform/struct/xlib_window_desc_struct.h @@ -9,17 +9,17 @@ * \cond WIS_GEN_CODE * C version: * ```c - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * typedef struct WisXlibWindowDesc { * void* display; * uint64_t window; * } WisXlibWindowDesc; - * + * * ``` * C++ version: * ```cpp * namespace wis{ - * // Provided by Wisdom 0.7.0. + * // Provided by Wisdom 0.7.0. * struct XlibWindowDesc { * void* display; * std::uint64_t window; diff --git a/docs/raytracing/func/init_raytracing_extension_function.h b/docs/raytracing/func/init_raytracing_extension_function.h index 166604818..5b4dbcd22 100644 --- a/docs/raytracing/func/init_raytracing_extension_function.h +++ b/docs/raytracing/func/init_raytracing_extension_function.h @@ -30,7 +30,7 @@ * ```cpp * namespace wis{ * // Provided by Wisdom 0.7.1. - * void RaytracingExtension::InitRaytracingExtension() noexcept; + * RaytracingExtension::RaytracingExtension() noexcept; * } * ``` *
@@ -38,10 +38,10 @@ * ```cpp * namespace wis{ * // Provided by Wisdom 0.7.1. - * void VKRaytracingExtension::InitRaytracingExtension() noexcept; + * VKRaytracingExtension::VKRaytracingExtension() noexcept; * * // Provided by Wisdom 0.7.1. - * void DX12RaytracingExtension::InitRaytracingExtension() noexcept; + * DX12RaytracingExtension::DX12RaytracingExtension() noexcept; * } * ``` *
diff --git a/docs/raytracing/func/raytracing_extension_get_top_level_structure_info_function.h b/docs/raytracing/func/raytracing_extension_get_top_level_structure_info_function.h index 8c212361b..33400d818 100644 --- a/docs/raytracing/func/raytracing_extension_get_top_level_structure_info_function.h +++ b/docs/raytracing/func/raytracing_extension_get_top_level_structure_info_function.h @@ -7,7 +7,7 @@ *
* * \cond WIS_GEN_CODE - * * C Version: + * C Version: * ```c * // Provided by Wisdom 0.7.1. * WisResult wisRaytracingExtensionGetTopLevelStructureInfo(WisRaytracingExtension* self, @@ -31,26 +31,36 @@ * * C++ Version: * ```cpp - * namespace wis + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::StructureAllocationInfo RaytracingExtension::GetTopLevelStructureInfo(const + * wis::TopLevelStructureBuildDesc& build_desc, wis::Result& out_result) noexcept; + * } * ``` *
* C++ Implementation Specific Version: * ```cpp - * namespace wis + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::StructureAllocationInfo VKRaytracingExtension::GetTopLevelStructureInfo(const + * wis::TopLevelStructureBuildDesc& build_desc, wis::Result& out_result) noexcept; + * + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::StructureAllocationInfo DX12RaytracingExtension::GetTopLevelStructureInfo(const + * wis::TopLevelStructureBuildDesc& build_desc, wis::Result& out_result) noexcept; + * } * ``` *
- * * \endcond * * @section wisRaytracingExtensionGetTopLevelStructureInfo_memb Parameters *
* \cond WIS_GEN_DESC - * * - **this** `self` self is a pointer to the valid WisRaytracingExtension instance. + * - **this** `self` self is a pointer to the valid WisRaytracingExtension instance. * - `build_desc` The build description for the bottom-level acceleration structure. * - `info` The allocation information for the bottom-level acceleration structure. * * - **return** denoting the outcome of operation. - * * \endcond * * @section wisRaytracingExtensionGetTopLevelStructureInfo_descr Description diff --git a/docs/video/enum/chroma_subsampling_enum.h b/docs/video/enum/chroma_subsampling_enum.h new file mode 100644 index 000000000..e95987e99 --- /dev/null +++ b/docs/video/enum/chroma_subsampling_enum.h @@ -0,0 +1,54 @@ +/** + * @struct WisChromaSubsampling WisChromaSubsampling + * @ingroup Enumerations Video + * + * @section WisChromaSubsampling_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisChromaSubsampling { + * WisChromaSubsamplingNone = 0, + * WisChromaSubsamplingC420 = (1u << 1), + * WisChromaSubsamplingC422 = (1u << 2), + * WisChromaSubsamplingC444 = (1u << 3), + * } WisChromaSubsampling; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class ChromaSubsampling : uint32_t { + * None = 0, + * C420 = (1u << 1), + * C422 = (1u << 2), + * C444 = (1u << 3), + * }; + * } + * ``` + * \endcond + * + * @section WisChromaSubsampling_descr Description + *
+ * \cond WIS_GEN_DESC + * Chroma subsampling flags for video components. Used to specify supported chroma subsampling formats for video + * decoding. + * + * \note Translates to Vulkan as VkVideoChromaSubsamplingFlagsKHR . + * + * Values: + * - `WisChromaSubsamplingNone = 0`: No chroma subsampling is specified. + * - `WisChromaSubsamplingC420 = (1 << 1)`: 4:2:0 chroma subsampling format. + * - `WisChromaSubsamplingC422 = (1 << 2)`: 4:2:2 chroma subsampling format. + * - `WisChromaSubsamplingC444 = (1 << 3)`: 4:4:4 chroma subsampling format. + * \endcond + * + * + * @section WisChromaSubsampling_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/enum/component_bit_depth_enum.h b/docs/video/enum/component_bit_depth_enum.h new file mode 100644 index 000000000..964098c6b --- /dev/null +++ b/docs/video/enum/component_bit_depth_enum.h @@ -0,0 +1,56 @@ +/** + * @struct WisComponentBitDepth WisComponentBitDepth + * @ingroup Enumerations Video + * + * @section WisComponentBitDepth_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisComponentBitDepth { + * WisComponentBitDepthNone = 0, + * WisComponentBitDepthBit8 = (1u << 0), + * WisComponentBitDepthBit10 = (1u << 1), + * WisComponentBitDepthBit12 = (1u << 2), + * WisComponentBitDepthBit16 = (1u << 3), + * } WisComponentBitDepth; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class ComponentBitDepth : uint32_t { + * None = 0, + * Bit8 = (1u << 0), + * Bit10 = (1u << 1), + * Bit12 = (1u << 2), + * Bit16 = (1u << 3), + * }; + * } + * ``` + * \endcond + * + * @section WisComponentBitDepth_descr Description + *
+ * \cond WIS_GEN_DESC + * Bit depth flags for video components. Used to specify supported bit depths for video decoding. + * + * \note Translates to Vulkan as VkVideoComponentBitDepthFlagsKHR . + * + * Values: + * - `WisComponentBitDepthNone = 0`: No bit depth is specified. + * - `WisComponentBitDepthBit8 = (1 << 0)`: 8-bit video component. + * - `WisComponentBitDepthBit10 = (1 << 1)`: 10-bit video component. + * - `WisComponentBitDepthBit12 = (1 << 2)`: 12-bit video component. + * - `WisComponentBitDepthBit16 = (1 << 3)`: 16-bit video component. + * \endcond + * + * + * @section WisComponentBitDepth_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/enum/std_codec_profile_enum.h b/docs/video/enum/std_codec_profile_enum.h new file mode 100644 index 000000000..dd7518170 --- /dev/null +++ b/docs/video/enum/std_codec_profile_enum.h @@ -0,0 +1,108 @@ +/** + * @struct WisStdCodecProfile WisStdCodecProfile + * @ingroup Enumerations Video + * + * @section WisStdCodecProfile_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdCodecProfile { + * WisStdCodecProfileH264Baseline = 0, + * WisStdCodecProfileH264Main = 1, + * WisStdCodecProfileH264High = 2, + * WisStdCodecProfileH264HighPredictive = 3, + * WisStdCodecProfileH265Main = 32, + * WisStdCodecProfileH265Main10 = 33, + * WisStdCodecProfileH265Main12 = 34, + * WisStdCodecProfileH265Main16 = 35, + * WisStdCodecProfileH265FormatRangeExt = 36, + * WisStdCodecProfileAV1Main = 64, + * WisStdCodecProfileAV1High = 65, + * WisStdCodecProfileAV1Professional = 66, + * WisStdCodecProfileVP9Profile0 = 96, + * WisStdCodecProfileVP9Profile1 = 97, + * WisStdCodecProfileVP9Profile2 = 98, + * WisStdCodecProfileVP9Profile3 = 99, + * } WisStdCodecProfile; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdCodecProfile { + * H264Baseline = 0, + * H264Main = 1, + * H264High = 2, + * H264HighPredictive = 3, + * H265Main = 32, + * H265Main10 = 33, + * H265Main12 = 34, + * H265Main16 = 35, + * H265FormatRangeExt = 36, + * AV1Main = 64, + * AV1High = 65, + * AV1Professional = 66, + * VP9Profile0 = 96, + * VP9Profile1 = 97, + * VP9Profile2 = 98, + * VP9Profile3 = 99, + * }; + * } + * ``` + * \endcond + * + * @section WisStdCodecProfile_descr Description + *
+ * \cond WIS_GEN_DESC + * Standard codec profiles. Used to specify the profile of a video codec implementation. + * + * Values: + * - `WisStdCodecProfileH264Baseline = 0`: H.264 Baseline profile. Suitable for low-complexity applications such as + * video conferencing and mobile streaming. + * - `WisStdCodecProfileH264Main = 1`: H.264 Main profile. Offers better compression efficiency than Baseline, suitable + * for standard-definition video streaming and broadcast. + * - `WisStdCodecProfileH264High = 2`: H.264 High profile. Provides the best compression efficiency among H.264 + * profiles, suitable for high-definition video streaming and Blu-ray discs. + * - `WisStdCodecProfileH264HighPredictive = 3`: H.264 High Predictive profile. An extension of the High profile that + * adds support for additional features, such as improved error resilience and better performance. + * - `WisStdCodecProfileH265Main = 32`: H.265 Main profile. Suitable for standard-definition video streaming and + * broadcast. + * - `WisStdCodecProfileH265Main10 = 33`: H.265 Main 10 profile. Adds support for 10-bit video, providing better color + * depth and improved compression efficiency compared to the Main profile. + * - `WisStdCodecProfileH265Main12 = 34`: H.265 Main 12 profile. Adds support for 12-bit video, offering even greater + * color depth and improved compression efficiency compared to the Main 10 profile. + * - `WisStdCodecProfileH265Main16 = 35`: H.265 Main 16 profile. Adds support for 16-bit video, providing the highest + * color depth and best compression efficiency among the Main profiles, suitable for professional video production and + * post-production workflows. + * - `WisStdCodecProfileH265FormatRangeExt = 36`: H.265 Format Range Extensions profile. Adds support for additional + * features such as higher bit depths, wider color gamut, and improved compression efficiency, suitable for high-quality + * video streaming and broadcast. + * - `WisStdCodecProfileAV1Main = 64`: AV1 Main profile. Suitable for a wide range of applications, including web + * streaming and video conferencing. + * - `WisStdCodecProfileAV1High = 65`: AV1 High profile. Adds support for additional features such as higher bit depths + * and improved compression efficiency, suitable for high-quality video streaming and broadcast. + * - `WisStdCodecProfileAV1Professional = 66`: AV1 Professional profile. Designed for professional video production and + * post-production workflows, offering support for high bit depths, wide color gamut, and advanced features. + * - `WisStdCodecProfileVP9Profile0 = 96`: VP9 Profile 0. Supports 8-bit video with 4:2:0 chroma subsampling, suitable + * for web streaming and general-purpose video applications. + * - `WisStdCodecProfileVP9Profile1 = 97`: VP9 Profile 1. Adds support for 8-bit video with 4:2:2 and 4:4:4 chroma + * subsampling, suitable for professional video production and post-production workflows that require higher color + * fidelity. + * - `WisStdCodecProfileVP9Profile2 = 98`: VP9 Profile 2. Adds support for 10-bit and 12-bit video with 4:2:0 chroma + * subsampling. + * - `WisStdCodecProfileVP9Profile3 = 99`: VP9 Profile 3. Adds support for 10-bit and 12-bit video with 4:2:2 and 4:4:4 + * chroma subsampling. + * \endcond + * + * + * @section WisStdCodecProfile_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoCodecDesc, WisVideoDecoderDesc, WisVideoDecodePictureDesc, WisVideoDecodeParameterDesc + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_chroma_sample_position_enum.h b/docs/video/enum/std_video_a_v1_chroma_sample_position_enum.h new file mode 100644 index 000000000..a028ecdbf --- /dev/null +++ b/docs/video/enum/std_video_a_v1_chroma_sample_position_enum.h @@ -0,0 +1,56 @@ +/** + * @struct WisStdVideoAV1ChromaSamplePosition WisStdVideoAV1ChromaSamplePosition + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1ChromaSamplePosition_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1ChromaSamplePosition { + * WisStdVideoAV1ChromaSamplePositionUnknown = 0, + * WisStdVideoAV1ChromaSamplePositionVertical = 1, + * WisStdVideoAV1ChromaSamplePositionColocated = 2, + * WisStdVideoAV1ChromaSamplePositionReserved = 3, + * WisStdVideoAV1ChromaSamplePositionInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1ChromaSamplePosition; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1ChromaSamplePosition { + * Unknown = 0, + * Vertical = 1, + * Colocated = 2, + * Reserved = 3, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1ChromaSamplePosition_descr Description + *
+ * \cond WIS_GEN_DESC + * AV1 chroma sample position (AV1 Bitstream Specification Section 6.4.2). + * + * Values: + * - `WisStdVideoAV1ChromaSamplePositionUnknown = 0`: Unknown chroma sample position. + * - `WisStdVideoAV1ChromaSamplePositionVertical = 1`: Horizontally co-located with luma, vertically shifted by 0.5. + * - `WisStdVideoAV1ChromaSamplePositionColocated = 2`: Co-located with luma. + * - `WisStdVideoAV1ChromaSamplePositionReserved = 3`: + * - `WisStdVideoAV1ChromaSamplePositionInvalid = 0x7FFFFFFF`: + * \endcond + * + * + * @section WisStdVideoAV1ChromaSamplePosition_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1ColorConfig + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_color_primaries_enum.h b/docs/video/enum/std_video_a_v1_color_primaries_enum.h new file mode 100644 index 000000000..0bdabbae6 --- /dev/null +++ b/docs/video/enum/std_video_a_v1_color_primaries_enum.h @@ -0,0 +1,80 @@ +/** + * @struct WisStdVideoAV1ColorPrimaries WisStdVideoAV1ColorPrimaries + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1ColorPrimaries_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1ColorPrimaries { + * WisStdVideoAV1ColorPrimariesBt709 = 1, + * WisStdVideoAV1ColorPrimariesUnspecified = 2, + * WisStdVideoAV1ColorPrimariesBt470M = 4, + * WisStdVideoAV1ColorPrimariesBt470BG = 5, + * WisStdVideoAV1ColorPrimariesBt601 = 6, + * WisStdVideoAV1ColorPrimariesSmpte240 = 7, + * WisStdVideoAV1ColorPrimariesGenericFilm = 8, + * WisStdVideoAV1ColorPrimariesBt2020 = 9, + * WisStdVideoAV1ColorPrimariesXyz = 10, + * WisStdVideoAV1ColorPrimariesSmpte431 = 11, + * WisStdVideoAV1ColorPrimariesSmpte432 = 12, + * WisStdVideoAV1ColorPrimariesEbu3213 = 22, + * WisStdVideoAV1ColorPrimariesInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1ColorPrimaries; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1ColorPrimaries { + * Bt709 = 1, + * Unspecified = 2, + * Bt470M = 4, + * Bt470BG = 5, + * Bt601 = 6, + * Smpte240 = 7, + * GenericFilm = 8, + * Bt2020 = 9, + * Xyz = 10, + * Smpte431 = 11, + * Smpte432 = 12, + * Ebu3213 = 22, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1ColorPrimaries_descr Description + *
+ * \cond WIS_GEN_DESC + * AV1 color primaries mapping to ISO/IEC 23000-2 / CICP. + * + * Values: + * - `WisStdVideoAV1ColorPrimariesBt709 = 1`: Rec. ITU-R BT.709-6. + * - `WisStdVideoAV1ColorPrimariesUnspecified = 2`: Image characteristics are unknown or unspecified. + * - `WisStdVideoAV1ColorPrimariesBt470M = 4`: Rec. ITU-R BT.470-6 System M (historical). + * - `WisStdVideoAV1ColorPrimariesBt470BG = 5`: Rec. ITU-R BT.470-6 System B, G (historical). + * - `WisStdVideoAV1ColorPrimariesBt601 = 6`: Rec. ITU-R BT.601-7 525. + * - `WisStdVideoAV1ColorPrimariesSmpte240 = 7`: SMPTE 240M. + * - `WisStdVideoAV1ColorPrimariesGenericFilm = 8`: Generic film (color filters using Illuminant C). + * - `WisStdVideoAV1ColorPrimariesBt2020 = 9`: Rec. ITU-R BT.2020-2. + * - `WisStdVideoAV1ColorPrimariesXyz = 10`: SMPTE ST 428-1. + * - `WisStdVideoAV1ColorPrimariesSmpte431 = 11`: SMPTE RP 431-2. + * - `WisStdVideoAV1ColorPrimariesSmpte432 = 12`: SMPTE EG 432-1. + * - `WisStdVideoAV1ColorPrimariesEbu3213 = 22`: EBU Tech. 3213-E. + * - `WisStdVideoAV1ColorPrimariesInvalid = 0x7FFFFFFF`: Invalid. + * \endcond + * + * + * @section WisStdVideoAV1ColorPrimaries_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1ColorConfig + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_frame_restoration_type_enum.h b/docs/video/enum/std_video_a_v1_frame_restoration_type_enum.h new file mode 100644 index 000000000..cd222c0fb --- /dev/null +++ b/docs/video/enum/std_video_a_v1_frame_restoration_type_enum.h @@ -0,0 +1,56 @@ +/** + * @struct WisStdVideoAV1FrameRestorationType WisStdVideoAV1FrameRestorationType + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1FrameRestorationType_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1FrameRestorationType { + * WisStdVideoAV1FrameRestorationTypeNone = 0, + * WisStdVideoAV1FrameRestorationTypeWiener = 1, + * WisStdVideoAV1FrameRestorationTypeSgrproj = 2, + * WisStdVideoAV1FrameRestorationTypeSwitchable = 3, + * WisStdVideoAV1FrameRestorationTypeInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1FrameRestorationType; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1FrameRestorationType { + * None = 0, + * Wiener = 1, + * Sgrproj = 2, + * Switchable = 3, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1FrameRestorationType_descr Description + *
+ * \cond WIS_GEN_DESC + * Loop restoration types (AV1 Bitstream Specification Section 6.10.15). + * + * Values: + * - `WisStdVideoAV1FrameRestorationTypeNone = 0`: No loop restoration. + * - `WisStdVideoAV1FrameRestorationTypeWiener = 1`: Wiener filter loop restoration. + * - `WisStdVideoAV1FrameRestorationTypeSgrproj = 2`: Self-guided filter loop restoration. + * - `WisStdVideoAV1FrameRestorationTypeSwitchable = 3`: Switchable between Wiener and Sgrproj. + * - `WisStdVideoAV1FrameRestorationTypeInvalid = 0x7FFFFFFF`: Invalid restoration type. + * \endcond + * + * + * @section WisStdVideoAV1FrameRestorationType_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1LoopRestoration + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_frame_type_enum.h b/docs/video/enum/std_video_a_v1_frame_type_enum.h new file mode 100644 index 000000000..984cce70a --- /dev/null +++ b/docs/video/enum/std_video_a_v1_frame_type_enum.h @@ -0,0 +1,58 @@ +/** + * @struct WisStdVideoAV1FrameType WisStdVideoAV1FrameType + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1FrameType_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1FrameType { + * WisStdVideoAV1FrameTypeKey = 0, + * WisStdVideoAV1FrameTypeInter = 1, + * WisStdVideoAV1FrameTypeIntraOnly = 2, + * WisStdVideoAV1FrameTypeSwitch = 3, + * WisStdVideoAV1FrameTypeInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1FrameType; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1FrameType { + * Key = 0, + * Inter = 1, + * IntraOnly = 2, + * Switch = 3, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1FrameType_descr Description + *
+ * \cond WIS_GEN_DESC + * Specifies the AV1 frame type (AV1 Bitstream Specification Section 6.8.2). + * + * Values: + * - `WisStdVideoAV1FrameTypeKey = 0`: A key frame contains only intra-coded blocks and is fully decipherable. + * - `WisStdVideoAV1FrameTypeInter = 1`: An inter frame @wis_may contain intra-coded blocks and inter-coded blocks. + * - `WisStdVideoAV1FrameTypeIntraOnly = 2`: An intra-only frame contains only intra-coded blocks but acts otherwise as + * an inter frame. + * - `WisStdVideoAV1FrameTypeSwitch = 3`: A switch frame is an inter frame that can be used as a switching point for + * adaptive streaming. + * - `WisStdVideoAV1FrameTypeInvalid = 0x7FFFFFFF`: Invalid frame type. + * \endcond + * + * + * @section WisStdVideoAV1FrameType_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_interpolation_filter_enum.h b/docs/video/enum/std_video_a_v1_interpolation_filter_enum.h new file mode 100644 index 000000000..3efb282e3 --- /dev/null +++ b/docs/video/enum/std_video_a_v1_interpolation_filter_enum.h @@ -0,0 +1,59 @@ +/** + * @struct WisStdVideoAV1InterpolationFilter WisStdVideoAV1InterpolationFilter + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1InterpolationFilter_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1InterpolationFilter { + * WisStdVideoAV1InterpolationFilterEighttap = 0, + * WisStdVideoAV1InterpolationFilterEighttapSmooth = 1, + * WisStdVideoAV1InterpolationFilterEighttapSharp = 2, + * WisStdVideoAV1InterpolationFilterBilinear = 3, + * WisStdVideoAV1InterpolationFilterSwitchable = 4, + * WisStdVideoAV1InterpolationFilterInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1InterpolationFilter; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1InterpolationFilter { + * Eighttap = 0, + * EighttapSmooth = 1, + * EighttapSharp = 2, + * Bilinear = 3, + * Switchable = 4, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1InterpolationFilter_descr Description + *
+ * \cond WIS_GEN_DESC + * Interpolation filter types (AV1 Bitstream Specification Section 6.8.9). + * + * Values: + * - `WisStdVideoAV1InterpolationFilterEighttap = 0`: Eight-tap filter. + * - `WisStdVideoAV1InterpolationFilterEighttapSmooth = 1`: Eight-tap smooth filter. + * - `WisStdVideoAV1InterpolationFilterEighttapSharp = 2`: Eight-tap sharp filter. + * - `WisStdVideoAV1InterpolationFilterBilinear = 3`: Bilinear filter. + * - `WisStdVideoAV1InterpolationFilterSwitchable = 4`: Switchable interpolation filter at the block level. + * - `WisStdVideoAV1InterpolationFilterInvalid = 0x7FFFFFFF`: Invalid filter. + * \endcond + * + * + * @section WisStdVideoAV1InterpolationFilter_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_level_enum.h b/docs/video/enum/std_video_a_v1_level_enum.h new file mode 100644 index 000000000..392dee36a --- /dev/null +++ b/docs/video/enum/std_video_a_v1_level_enum.h @@ -0,0 +1,114 @@ +/** + * @struct WisStdVideoAV1Level WisStdVideoAV1Level + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1Level_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1Level { + * WisStdVideoAV1LevelLevel2_0 = 0, + * WisStdVideoAV1LevelLevel2_1 = 1, + * WisStdVideoAV1LevelLevel2_2 = 2, + * WisStdVideoAV1LevelLevel2_3 = 3, + * WisStdVideoAV1LevelLevel3_0 = 4, + * WisStdVideoAV1LevelLevel3_1 = 5, + * WisStdVideoAV1LevelLevel3_2 = 6, + * WisStdVideoAV1LevelLevel3_3 = 7, + * WisStdVideoAV1LevelLevel4_0 = 8, + * WisStdVideoAV1LevelLevel4_1 = 9, + * WisStdVideoAV1LevelLevel4_2 = 10, + * WisStdVideoAV1LevelLevel4_3 = 11, + * WisStdVideoAV1LevelLevel5_0 = 12, + * WisStdVideoAV1LevelLevel5_1 = 13, + * WisStdVideoAV1LevelLevel5_2 = 14, + * WisStdVideoAV1LevelLevel5_3 = 15, + * WisStdVideoAV1LevelLevel6_0 = 16, + * WisStdVideoAV1LevelLevel6_1 = 17, + * WisStdVideoAV1LevelLevel6_2 = 18, + * WisStdVideoAV1LevelLevel6_3 = 19, + * WisStdVideoAV1LevelLevel7_0 = 20, + * WisStdVideoAV1LevelLevel7_1 = 21, + * WisStdVideoAV1LevelLevel7_2 = 22, + * WisStdVideoAV1LevelLevel7_3 = 23, + * WisStdVideoAV1LevelInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1Level; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1Level { + * Level2_0 = 0, + * Level2_1 = 1, + * Level2_2 = 2, + * Level2_3 = 3, + * Level3_0 = 4, + * Level3_1 = 5, + * Level3_2 = 6, + * Level3_3 = 7, + * Level4_0 = 8, + * Level4_1 = 9, + * Level4_2 = 10, + * Level4_3 = 11, + * Level5_0 = 12, + * Level5_1 = 13, + * Level5_2 = 14, + * Level5_3 = 15, + * Level6_0 = 16, + * Level6_1 = 17, + * Level6_2 = 18, + * Level6_3 = 19, + * Level7_0 = 20, + * Level7_1 = 21, + * Level7_2 = 22, + * Level7_3 = 23, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1Level_descr Description + *
+ * \cond WIS_GEN_DESC + * AV1 levels as defined in the AV1 Bitstream Specification Annex A.3. + * + * Values: + * - `WisStdVideoAV1LevelLevel2_0 = 0`: Level 2.0 + * - `WisStdVideoAV1LevelLevel2_1 = 1`: Level 2.1 + * - `WisStdVideoAV1LevelLevel2_2 = 2`: Level 2.2 + * - `WisStdVideoAV1LevelLevel2_3 = 3`: Level 2.3 + * - `WisStdVideoAV1LevelLevel3_0 = 4`: Level 3.0 + * - `WisStdVideoAV1LevelLevel3_1 = 5`: Level 3.1 + * - `WisStdVideoAV1LevelLevel3_2 = 6`: Level 3.2 + * - `WisStdVideoAV1LevelLevel3_3 = 7`: Level 3.3 + * - `WisStdVideoAV1LevelLevel4_0 = 8`: Level 4.0 + * - `WisStdVideoAV1LevelLevel4_1 = 9`: Level 4.1 + * - `WisStdVideoAV1LevelLevel4_2 = 10`: Level 4.2 + * - `WisStdVideoAV1LevelLevel4_3 = 11`: Level 4.3 + * - `WisStdVideoAV1LevelLevel5_0 = 12`: Level 5.0 + * - `WisStdVideoAV1LevelLevel5_1 = 13`: Level 5.1 + * - `WisStdVideoAV1LevelLevel5_2 = 14`: Level 5.2 + * - `WisStdVideoAV1LevelLevel5_3 = 15`: Level 5.3 + * - `WisStdVideoAV1LevelLevel6_0 = 16`: Level 6.0 + * - `WisStdVideoAV1LevelLevel6_1 = 17`: Level 6.1 + * - `WisStdVideoAV1LevelLevel6_2 = 18`: Level 6.2 + * - `WisStdVideoAV1LevelLevel6_3 = 19`: Level 6.3 + * - `WisStdVideoAV1LevelLevel7_0 = 20`: Level 7.0 + * - `WisStdVideoAV1LevelLevel7_1 = 21`: Level 7.1 + * - `WisStdVideoAV1LevelLevel7_2 = 22`: Level 7.2 + * - `WisStdVideoAV1LevelLevel7_3 = 23`: Level 7.3 + * - `WisStdVideoAV1LevelInvalid = 0x7FFFFFFF`: Invalid level. + * \endcond + * + * + * @section WisStdVideoAV1Level_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_matrix_coefficients_enum.h b/docs/video/enum/std_video_a_v1_matrix_coefficients_enum.h new file mode 100644 index 000000000..bdcc0b151 --- /dev/null +++ b/docs/video/enum/std_video_a_v1_matrix_coefficients_enum.h @@ -0,0 +1,89 @@ +/** + * @struct WisStdVideoAV1MatrixCoefficients WisStdVideoAV1MatrixCoefficients + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1MatrixCoefficients_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1MatrixCoefficients { + * WisStdVideoAV1MatrixCoefficientsIdentity = 0, + * WisStdVideoAV1MatrixCoefficientsBt709 = 1, + * WisStdVideoAV1MatrixCoefficientsUnspecified = 2, + * WisStdVideoAV1MatrixCoefficientsReserved3 = 3, + * WisStdVideoAV1MatrixCoefficientsFcc = 4, + * WisStdVideoAV1MatrixCoefficientsBt470BG = 5, + * WisStdVideoAV1MatrixCoefficientsBt601 = 6, + * WisStdVideoAV1MatrixCoefficientsSmpte240 = 7, + * WisStdVideoAV1MatrixCoefficientsSmpteYcgco = 8, + * WisStdVideoAV1MatrixCoefficientsBt2020Ncl = 9, + * WisStdVideoAV1MatrixCoefficientsBt2020Cl = 10, + * WisStdVideoAV1MatrixCoefficientsSmpte2085 = 11, + * WisStdVideoAV1MatrixCoefficientsChromatNcl = 12, + * WisStdVideoAV1MatrixCoefficientsChromatCl = 13, + * WisStdVideoAV1MatrixCoefficientsIctcp = 14, + * WisStdVideoAV1MatrixCoefficientsInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1MatrixCoefficients; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1MatrixCoefficients { + * Identity = 0, + * Bt709 = 1, + * Unspecified = 2, + * Reserved3 = 3, + * Fcc = 4, + * Bt470BG = 5, + * Bt601 = 6, + * Smpte240 = 7, + * SmpteYcgco = 8, + * Bt2020Ncl = 9, + * Bt2020Cl = 10, + * Smpte2085 = 11, + * ChromatNcl = 12, + * ChromatCl = 13, + * Ictcp = 14, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1MatrixCoefficients_descr Description + *
+ * \cond WIS_GEN_DESC + * AV1 matrix coefficients mapping to CICP. + * + * Values: + * - `WisStdVideoAV1MatrixCoefficientsIdentity = 0`: Identity matrix. + * - `WisStdVideoAV1MatrixCoefficientsBt709 = 1`: Rec. ITU-R BT.709-6. + * - `WisStdVideoAV1MatrixCoefficientsUnspecified = 2`: Matrix characteristics are unspecified. + * - `WisStdVideoAV1MatrixCoefficientsReserved3 = 3`: + * - `WisStdVideoAV1MatrixCoefficientsFcc = 4`: FCC Title 47 Code of Federal Regulations. + * - `WisStdVideoAV1MatrixCoefficientsBt470BG = 5`: Rec. ITU-R BT.470-6 System B, G (historical). + * - `WisStdVideoAV1MatrixCoefficientsBt601 = 6`: Rec. ITU-R BT.601-7. + * - `WisStdVideoAV1MatrixCoefficientsSmpte240 = 7`: SMPTE 240M. + * - `WisStdVideoAV1MatrixCoefficientsSmpteYcgco = 8`: YCgCo. + * - `WisStdVideoAV1MatrixCoefficientsBt2020Ncl = 9`: Bt2020 non-constant luminance. + * - `WisStdVideoAV1MatrixCoefficientsBt2020Cl = 10`: Bt2020 constant luminance. + * - `WisStdVideoAV1MatrixCoefficientsSmpte2085 = 11`: SMPTE ST 2085. + * - `WisStdVideoAV1MatrixCoefficientsChromatNcl = 12`: Chromaticity-derived non-constant luminance. + * - `WisStdVideoAV1MatrixCoefficientsChromatCl = 13`: Chromaticity-derived constant luminance. + * - `WisStdVideoAV1MatrixCoefficientsIctcp = 14`: Rec. ITU-R BT.2100-0 ICtCp. + * - `WisStdVideoAV1MatrixCoefficientsInvalid = 0x7FFFFFFF`: + * \endcond + * + * + * @section WisStdVideoAV1MatrixCoefficients_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1ColorConfig + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_profile_enum.h b/docs/video/enum/std_video_a_v1_profile_enum.h new file mode 100644 index 000000000..bc60e6109 --- /dev/null +++ b/docs/video/enum/std_video_a_v1_profile_enum.h @@ -0,0 +1,53 @@ +/** + * @struct WisStdVideoAV1Profile WisStdVideoAV1Profile + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1Profile_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1Profile { + * WisStdVideoAV1ProfileMain = 0, + * WisStdVideoAV1ProfileHigh = 1, + * WisStdVideoAV1ProfileProfessional = 2, + * WisStdVideoAV1ProfileInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1Profile; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1Profile { + * Main = 0, + * High = 1, + * Professional = 2, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1Profile_descr Description + *
+ * \cond WIS_GEN_DESC + * AV1 profiles as defined in the AV1 Bitstream Specification section 6.4.1. + * + * Values: + * - `WisStdVideoAV1ProfileMain = 0`: Main profile (8-bit or 10-bit color, 4:0:0 or 4:2:0). + * - `WisStdVideoAV1ProfileHigh = 1`: High profile (adds 8-bit or 10-bit 4:4:4). + * - `WisStdVideoAV1ProfileProfessional = 2`: Professional profile (adds 12-bit color, and 4:2:2). + * - `WisStdVideoAV1ProfileInvalid = 0x7FFFFFFF`: Invalid profile. + * \endcond + * + * + * @section WisStdVideoAV1Profile_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1SequenceHeader + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_reference_name_enum.h b/docs/video/enum/std_video_a_v1_reference_name_enum.h new file mode 100644 index 000000000..c7663af61 --- /dev/null +++ b/docs/video/enum/std_video_a_v1_reference_name_enum.h @@ -0,0 +1,66 @@ +/** + * @struct WisStdVideoAV1ReferenceName WisStdVideoAV1ReferenceName + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1ReferenceName_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1ReferenceName { + * WisStdVideoAV1ReferenceNameIntraFrame = 0, + * WisStdVideoAV1ReferenceNameLastFrame = 1, + * WisStdVideoAV1ReferenceNameLast2Frame = 2, + * WisStdVideoAV1ReferenceNameLast3Frame = 3, + * WisStdVideoAV1ReferenceNameGoldenFrame = 4, + * WisStdVideoAV1ReferenceNameBwdrefFrame = 5, + * WisStdVideoAV1ReferenceNameAltref2Frame = 6, + * WisStdVideoAV1ReferenceNameAltrefFrame = 7, + * WisStdVideoAV1ReferenceNameInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1ReferenceName; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1ReferenceName { + * IntraFrame = 0, + * LastFrame = 1, + * Last2Frame = 2, + * Last3Frame = 3, + * GoldenFrame = 4, + * BwdrefFrame = 5, + * Altref2Frame = 6, + * AltrefFrame = 7, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1ReferenceName_descr Description + *
+ * \cond WIS_GEN_DESC + * Names of the reference frames used in AV1 (AV1 Bitstream Specification Section 6.1). + * + * Values: + * - `WisStdVideoAV1ReferenceNameIntraFrame = 0`: Intra frame reference. + * - `WisStdVideoAV1ReferenceNameLastFrame = 1`: LAST_FRAME (1). + * - `WisStdVideoAV1ReferenceNameLast2Frame = 2`: LAST2_FRAME (2). + * - `WisStdVideoAV1ReferenceNameLast3Frame = 3`: LAST3_FRAME (3). + * - `WisStdVideoAV1ReferenceNameGoldenFrame = 4`: GOLDEN_FRAME (4). + * - `WisStdVideoAV1ReferenceNameBwdrefFrame = 5`: BWDREF_FRAME (5). + * - `WisStdVideoAV1ReferenceNameAltref2Frame = 6`: ALTREF2_FRAME (6). + * - `WisStdVideoAV1ReferenceNameAltrefFrame = 7`: ALTREF_FRAME (7). + * - `WisStdVideoAV1ReferenceNameInvalid = 0x7FFFFFFF`: Invalid reference name. + * \endcond + * + * + * @section WisStdVideoAV1ReferenceName_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_transfer_characteristics_enum.h b/docs/video/enum/std_video_a_v1_transfer_characteristics_enum.h new file mode 100644 index 000000000..d8ba510c5 --- /dev/null +++ b/docs/video/enum/std_video_a_v1_transfer_characteristics_enum.h @@ -0,0 +1,102 @@ +/** + * @struct WisStdVideoAV1TransferCharacteristics WisStdVideoAV1TransferCharacteristics + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1TransferCharacteristics_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1TransferCharacteristics { + * WisStdVideoAV1TransferCharacteristicsReserved0 = 0, + * WisStdVideoAV1TransferCharacteristicsBt709 = 1, + * WisStdVideoAV1TransferCharacteristicsUnspecified = 2, + * WisStdVideoAV1TransferCharacteristicsReserved3 = 3, + * WisStdVideoAV1TransferCharacteristicsBt470M = 4, + * WisStdVideoAV1TransferCharacteristicsBt470BG = 5, + * WisStdVideoAV1TransferCharacteristicsBt601 = 6, + * WisStdVideoAV1TransferCharacteristicsSmpte240 = 7, + * WisStdVideoAV1TransferCharacteristicsLinear = 8, + * WisStdVideoAV1TransferCharacteristicsLog100 = 9, + * WisStdVideoAV1TransferCharacteristicsLog100Sqrt10 = 10, + * WisStdVideoAV1TransferCharacteristicsIec61966 = 11, + * WisStdVideoAV1TransferCharacteristicsBt1361 = 12, + * WisStdVideoAV1TransferCharacteristicsSrgb = 13, + * WisStdVideoAV1TransferCharacteristicsBt2020_10Bit = 14, + * WisStdVideoAV1TransferCharacteristicsBt2020_12Bit = 15, + * WisStdVideoAV1TransferCharacteristicsSmpte2084 = 16, + * WisStdVideoAV1TransferCharacteristicsSmpte428 = 17, + * WisStdVideoAV1TransferCharacteristicsHlg = 18, + * WisStdVideoAV1TransferCharacteristicsInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1TransferCharacteristics; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1TransferCharacteristics { + * Reserved0 = 0, + * Bt709 = 1, + * Unspecified = 2, + * Reserved3 = 3, + * Bt470M = 4, + * Bt470BG = 5, + * Bt601 = 6, + * Smpte240 = 7, + * Linear = 8, + * Log100 = 9, + * Log100Sqrt10 = 10, + * Iec61966 = 11, + * Bt1361 = 12, + * Srgb = 13, + * Bt2020_10Bit = 14, + * Bt2020_12Bit = 15, + * Smpte2084 = 16, + * Smpte428 = 17, + * Hlg = 18, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1TransferCharacteristics_descr Description + *
+ * \cond WIS_GEN_DESC + * Transfer characteristics for AV1. + * + * Values: + * - `WisStdVideoAV1TransferCharacteristicsReserved0 = 0`: + * - `WisStdVideoAV1TransferCharacteristicsBt709 = 1`: Rec. ITU-R BT.709-6. + * - `WisStdVideoAV1TransferCharacteristicsUnspecified = 2`: Unspecified. + * - `WisStdVideoAV1TransferCharacteristicsReserved3 = 3`: + * - `WisStdVideoAV1TransferCharacteristicsBt470M = 4`: Rec. ITU-R BT.470-6 System M (historical). + * - `WisStdVideoAV1TransferCharacteristicsBt470BG = 5`: Rec. ITU-R BT.470-6 System B, G (historical). + * - `WisStdVideoAV1TransferCharacteristicsBt601 = 6`: Rec. ITU-R BT.601-7. + * - `WisStdVideoAV1TransferCharacteristicsSmpte240 = 7`: SMPTE 240M. + * - `WisStdVideoAV1TransferCharacteristicsLinear = 8`: Linear transfer characteristics. + * - `WisStdVideoAV1TransferCharacteristicsLog100 = 9`: Logarithmic transfer characteristic (100:1 range). + * - `WisStdVideoAV1TransferCharacteristicsLog100Sqrt10 = 10`: Logarithmic transfer characteristic (100 * Sqrt(10) : 1 + * range). + * - `WisStdVideoAV1TransferCharacteristicsIec61966 = 11`: IEC 61966-2-4. + * - `WisStdVideoAV1TransferCharacteristicsBt1361 = 12`: Rec. ITU-R BT.1361-0 extended colour gamut system (historical). + * - `WisStdVideoAV1TransferCharacteristicsSrgb = 13`: IEC 61966-2-1 sRGB. + * - `WisStdVideoAV1TransferCharacteristicsBt2020_10Bit = 14`: Rec. ITU-R BT.2020-2 (10-bit system). + * - `WisStdVideoAV1TransferCharacteristicsBt2020_12Bit = 15`: Rec. ITU-R BT.2020-2 (12-bit system). + * - `WisStdVideoAV1TransferCharacteristicsSmpte2084 = 16`: SMPTE ST 2084 (PQ). + * - `WisStdVideoAV1TransferCharacteristicsSmpte428 = 17`: SMPTE ST 428-1. + * - `WisStdVideoAV1TransferCharacteristicsHlg = 18`: ARIB STD-B67 (HLG). + * - `WisStdVideoAV1TransferCharacteristicsInvalid = 0x7FFFFFFF`: + * \endcond + * + * + * @section WisStdVideoAV1TransferCharacteristics_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1ColorConfig + * \endcond + */ diff --git a/docs/video/enum/std_video_a_v1_tx_mode_enum.h b/docs/video/enum/std_video_a_v1_tx_mode_enum.h new file mode 100644 index 000000000..0c7830efe --- /dev/null +++ b/docs/video/enum/std_video_a_v1_tx_mode_enum.h @@ -0,0 +1,53 @@ +/** + * @struct WisStdVideoAV1TxMode WisStdVideoAV1TxMode + * @ingroup Enumerations Video + * + * @section WisStdVideoAV1TxMode_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoAV1TxMode { + * WisStdVideoAV1TxModeOnly4x4 = 0, + * WisStdVideoAV1TxModeLargest = 1, + * WisStdVideoAV1TxModeSelect = 2, + * WisStdVideoAV1TxModeInvalid = 0x7FFFFFFF, + * } WisStdVideoAV1TxMode; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoAV1TxMode { + * Only4x4 = 0, + * Largest = 1, + * Select = 2, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1TxMode_descr Description + *
+ * \cond WIS_GEN_DESC + * Transform mode (AV1 Bitstream Specification Section 6.8.21). + * + * Values: + * - `WisStdVideoAV1TxModeOnly4x4 = 0`: Only 4x4 transforms. + * - `WisStdVideoAV1TxModeLargest = 1`: Largest allowed transform for the partition. + * - `WisStdVideoAV1TxModeSelect = 2`: Select the transform mode. + * - `WisStdVideoAV1TxModeInvalid = 0x7FFFFFFF`: Invalid TxMode. + * \endcond + * + * + * @section WisStdVideoAV1TxMode_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/enum/std_video_h265_aspect_ratio_idc_enum.h b/docs/video/enum/std_video_h265_aspect_ratio_idc_enum.h new file mode 100644 index 000000000..eb3533c01 --- /dev/null +++ b/docs/video/enum/std_video_h265_aspect_ratio_idc_enum.h @@ -0,0 +1,98 @@ +/** + * @struct WisStdVideoH265AspectRatioIdc WisStdVideoH265AspectRatioIdc + * @ingroup Enumerations Video + * + * @section WisStdVideoH265AspectRatioIdc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoH265AspectRatioIdc { + * WisStdVideoH265AspectRatioIdcUnspecified = 0, + * WisStdVideoH265AspectRatioIdcSquare = 1, + * WisStdVideoH265AspectRatioIdcRatio12_11 = 2, + * WisStdVideoH265AspectRatioIdcRatio10_11 = 3, + * WisStdVideoH265AspectRatioIdcRatio16_11 = 4, + * WisStdVideoH265AspectRatioIdcRatio40_33 = 5, + * WisStdVideoH265AspectRatioIdcRatio24_11 = 6, + * WisStdVideoH265AspectRatioIdcRatio20_11 = 7, + * WisStdVideoH265AspectRatioIdcRatio32_11 = 8, + * WisStdVideoH265AspectRatioIdcRatio80_33 = 9, + * WisStdVideoH265AspectRatioIdcRatio18_11 = 10, + * WisStdVideoH265AspectRatioIdcRatio15_11 = 11, + * WisStdVideoH265AspectRatioIdcRatio64_33 = 12, + * WisStdVideoH265AspectRatioIdcRatio160_99 = 13, + * WisStdVideoH265AspectRatioIdcRatio4_3 = 14, + * WisStdVideoH265AspectRatioIdcRatio3_2 = 15, + * WisStdVideoH265AspectRatioIdcRatio2_1 = 16, + * WisStdVideoH265AspectRatioIdcExtendedSar = 255, + * WisStdVideoH265AspectRatioIdcInvalid = 0x7FFFFFFF, + * } WisStdVideoH265AspectRatioIdc; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoH265AspectRatioIdc { + * Unspecified = 0, + * Square = 1, + * Ratio12_11 = 2, + * Ratio10_11 = 3, + * Ratio16_11 = 4, + * Ratio40_33 = 5, + * Ratio24_11 = 6, + * Ratio20_11 = 7, + * Ratio32_11 = 8, + * Ratio80_33 = 9, + * Ratio18_11 = 10, + * Ratio15_11 = 11, + * Ratio64_33 = 12, + * Ratio160_99 = 13, + * Ratio4_3 = 14, + * Ratio3_2 = 15, + * Ratio2_1 = 16, + * ExtendedSar = 255, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265AspectRatioIdc_descr Description + *
+ * \cond WIS_GEN_DESC + * H.265 aspect ratio identifiers as defined in HEVC spec Table E-1. + * + * Values: + * - `WisStdVideoH265AspectRatioIdcUnspecified = 0`: Unspecified aspect ratio. + * - `WisStdVideoH265AspectRatioIdcSquare = 1`: Square (1:1). + * - `WisStdVideoH265AspectRatioIdcRatio12_11 = 2`: 12:11 + * - `WisStdVideoH265AspectRatioIdcRatio10_11 = 3`: 10:11 + * - `WisStdVideoH265AspectRatioIdcRatio16_11 = 4`: 16:11 + * - `WisStdVideoH265AspectRatioIdcRatio40_33 = 5`: 40:33 + * - `WisStdVideoH265AspectRatioIdcRatio24_11 = 6`: 24:11 + * - `WisStdVideoH265AspectRatioIdcRatio20_11 = 7`: 20:11 + * - `WisStdVideoH265AspectRatioIdcRatio32_11 = 8`: 32:11 + * - `WisStdVideoH265AspectRatioIdcRatio80_33 = 9`: 80:33 + * - `WisStdVideoH265AspectRatioIdcRatio18_11 = 10`: 18:11 + * - `WisStdVideoH265AspectRatioIdcRatio15_11 = 11`: 15:11 + * - `WisStdVideoH265AspectRatioIdcRatio64_33 = 12`: 64:33 + * - `WisStdVideoH265AspectRatioIdcRatio160_99 = 13`: 160:99 + * - `WisStdVideoH265AspectRatioIdcRatio4_3 = 14`: 4:3 + * - `WisStdVideoH265AspectRatioIdcRatio3_2 = 15`: 3:2 + * - `WisStdVideoH265AspectRatioIdcRatio2_1 = 16`: 2:1 + * - `WisStdVideoH265AspectRatioIdcExtendedSar = 255`: Extended SAR. + * - `WisStdVideoH265AspectRatioIdcInvalid = 0x7FFFFFFF`: Invalid aspect ratio. + * \endcond + * + * + * @section WisStdVideoH265AspectRatioIdc_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265SequenceParameterSetVui + * \endcond + */ diff --git a/docs/video/enum/std_video_h265_chroma_format_idc_enum.h b/docs/video/enum/std_video_h265_chroma_format_idc_enum.h new file mode 100644 index 000000000..42b0a3a4a --- /dev/null +++ b/docs/video/enum/std_video_h265_chroma_format_idc_enum.h @@ -0,0 +1,56 @@ +/** + * @struct WisStdVideoH265ChromaFormatIdc WisStdVideoH265ChromaFormatIdc + * @ingroup Enumerations Video + * + * @section WisStdVideoH265ChromaFormatIdc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoH265ChromaFormatIdc { + * WisStdVideoH265ChromaFormatIdcMonochrome = 0, + * WisStdVideoH265ChromaFormatIdcCr420 = 1, + * WisStdVideoH265ChromaFormatIdcCr422 = 2, + * WisStdVideoH265ChromaFormatIdcCr444 = 3, + * WisStdVideoH265ChromaFormatIdcInvalid = 0x7FFFFFFF, + * } WisStdVideoH265ChromaFormatIdc; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoH265ChromaFormatIdc { + * Monochrome = 0, + * Cr420 = 1, + * Cr422 = 2, + * Cr444 = 3, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265ChromaFormatIdc_descr Description + *
+ * \cond WIS_GEN_DESC + * H.265 chroma format identifiers as defined in HEVC spec Table 6-1. + * + * Values: + * - `WisStdVideoH265ChromaFormatIdcMonochrome = 0`: Monochrome (4:0:0). + * - `WisStdVideoH265ChromaFormatIdcCr420 = 1`: 4:2:0 chroma format. + * - `WisStdVideoH265ChromaFormatIdcCr422 = 2`: 4:2:2 chroma format. + * - `WisStdVideoH265ChromaFormatIdcCr444 = 3`: 4:4:4 chroma format. + * - `WisStdVideoH265ChromaFormatIdcInvalid = 0x7FFFFFFF`: Invalid chroma format. + * \endcond + * + * + * @section WisStdVideoH265ChromaFormatIdc_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265SequenceParameterSet + * \endcond + */ diff --git a/docs/video/enum/std_video_h265_level_idc_enum.h b/docs/video/enum/std_video_h265_level_idc_enum.h new file mode 100644 index 000000000..726189045 --- /dev/null +++ b/docs/video/enum/std_video_h265_level_idc_enum.h @@ -0,0 +1,83 @@ +/** + * @struct WisStdVideoH265LevelIdc WisStdVideoH265LevelIdc + * @ingroup Enumerations Video + * + * @section WisStdVideoH265LevelIdc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoH265LevelIdc { + * WisStdVideoH265LevelIdcLevel1_0 = 0, + * WisStdVideoH265LevelIdcLevel2_0 = 1, + * WisStdVideoH265LevelIdcLevel2_1 = 2, + * WisStdVideoH265LevelIdcLevel3_0 = 3, + * WisStdVideoH265LevelIdcLevel3_1 = 4, + * WisStdVideoH265LevelIdcLevel4_0 = 5, + * WisStdVideoH265LevelIdcLevel4_1 = 6, + * WisStdVideoH265LevelIdcLevel5_0 = 7, + * WisStdVideoH265LevelIdcLevel5_1 = 8, + * WisStdVideoH265LevelIdcLevel5_2 = 9, + * WisStdVideoH265LevelIdcLevel6_0 = 10, + * WisStdVideoH265LevelIdcLevel6_1 = 11, + * WisStdVideoH265LevelIdcLevel6_2 = 12, + * WisStdVideoH265LevelIdcInvalid = 0x7FFFFFFF, + * } WisStdVideoH265LevelIdc; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoH265LevelIdc { + * Level1_0 = 0, + * Level2_0 = 1, + * Level2_1 = 2, + * Level3_0 = 3, + * Level3_1 = 4, + * Level4_0 = 5, + * Level4_1 = 6, + * Level5_0 = 7, + * Level5_1 = 8, + * Level5_2 = 9, + * Level6_0 = 10, + * Level6_1 = 11, + * Level6_2 = 12, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265LevelIdc_descr Description + *
+ * \cond WIS_GEN_DESC + * H.265 level identifiers as defined in HEVC spec Annex A. + * + * Values: + * - `WisStdVideoH265LevelIdcLevel1_0 = 0`: Level 1.0 + * - `WisStdVideoH265LevelIdcLevel2_0 = 1`: Level 2.0 + * - `WisStdVideoH265LevelIdcLevel2_1 = 2`: Level 2.1 + * - `WisStdVideoH265LevelIdcLevel3_0 = 3`: Level 3.0 + * - `WisStdVideoH265LevelIdcLevel3_1 = 4`: Level 3.1 + * - `WisStdVideoH265LevelIdcLevel4_0 = 5`: Level 4.0 + * - `WisStdVideoH265LevelIdcLevel4_1 = 6`: Level 4.1 + * - `WisStdVideoH265LevelIdcLevel5_0 = 7`: Level 5.0 + * - `WisStdVideoH265LevelIdcLevel5_1 = 8`: Level 5.1 + * - `WisStdVideoH265LevelIdcLevel5_2 = 9`: Level 5.2 + * - `WisStdVideoH265LevelIdcLevel6_0 = 10`: Level 6.0 + * - `WisStdVideoH265LevelIdcLevel6_1 = 11`: Level 6.1 + * - `WisStdVideoH265LevelIdcLevel6_2 = 12`: Level 6.2 + * - `WisStdVideoH265LevelIdcInvalid = 0x7FFFFFFF`: Invalid level. + * \endcond + * + * + * @section WisStdVideoH265LevelIdc_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265ProfileTierLevel + * \endcond + */ diff --git a/docs/video/enum/std_video_h265_picture_type_enum.h b/docs/video/enum/std_video_h265_picture_type_enum.h new file mode 100644 index 000000000..c3284762c --- /dev/null +++ b/docs/video/enum/std_video_h265_picture_type_enum.h @@ -0,0 +1,54 @@ +/** + * @struct WisStdVideoH265PictureType WisStdVideoH265PictureType + * @ingroup Enumerations Video + * + * @section WisStdVideoH265PictureType_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoH265PictureType { + * WisStdVideoH265PictureTypeP = 0, + * WisStdVideoH265PictureTypeB = 1, + * WisStdVideoH265PictureTypeI = 2, + * WisStdVideoH265PictureTypeIdr = 3, + * WisStdVideoH265PictureTypeInvalid = 0x7FFFFFFF, + * } WisStdVideoH265PictureType; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoH265PictureType { + * P = 0, + * B = 1, + * I = 2, + * Idr = 3, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265PictureType_descr Description + *
+ * \cond WIS_GEN_DESC + * H.265 picture types for decode reference info. + * + * Values: + * - `WisStdVideoH265PictureTypeP = 0`: P picture. + * - `WisStdVideoH265PictureTypeB = 1`: B picture. + * - `WisStdVideoH265PictureTypeI = 2`: I picture. + * - `WisStdVideoH265PictureTypeIdr = 3`: IDR picture. + * - `WisStdVideoH265PictureTypeInvalid = 0x7FFFFFFF`: Invalid picture type. + * \endcond + * + * + * @section WisStdVideoH265PictureType_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/enum/std_video_h265_profile_idc_enum.h b/docs/video/enum/std_video_h265_profile_idc_enum.h new file mode 100644 index 000000000..e4391f2da --- /dev/null +++ b/docs/video/enum/std_video_h265_profile_idc_enum.h @@ -0,0 +1,59 @@ +/** + * @struct WisStdVideoH265ProfileIdc WisStdVideoH265ProfileIdc + * @ingroup Enumerations Video + * + * @section WisStdVideoH265ProfileIdc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoH265ProfileIdc { + * WisStdVideoH265ProfileIdcMain = 1, + * WisStdVideoH265ProfileIdcMain10 = 2, + * WisStdVideoH265ProfileIdcMainStillPicture = 3, + * WisStdVideoH265ProfileIdcFormatRangeExtensions = 4, + * WisStdVideoH265ProfileIdcSccExtensions = 9, + * WisStdVideoH265ProfileIdcInvalid = 0x7FFFFFFF, + * } WisStdVideoH265ProfileIdc; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoH265ProfileIdc { + * Main = 1, + * Main10 = 2, + * MainStillPicture = 3, + * FormatRangeExtensions = 4, + * SccExtensions = 9, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265ProfileIdc_descr Description + *
+ * \cond WIS_GEN_DESC + * H.265 profile identifiers as defined in HEVC spec Annex A. + * + * Values: + * - `WisStdVideoH265ProfileIdcMain = 1`: Main profile. + * - `WisStdVideoH265ProfileIdcMain10 = 2`: Main 10 profile. + * - `WisStdVideoH265ProfileIdcMainStillPicture = 3`: Main Still Picture profile. + * - `WisStdVideoH265ProfileIdcFormatRangeExtensions = 4`: Format Range Extensions profile. + * - `WisStdVideoH265ProfileIdcSccExtensions = 9`: Screen Content Coding Extensions profile. + * - `WisStdVideoH265ProfileIdcInvalid = 0x7FFFFFFF`: Invalid profile. + * \endcond + * + * + * @section WisStdVideoH265ProfileIdc_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265ProfileTierLevel + * \endcond + */ diff --git a/docs/video/enum/std_video_h265_slice_type_enum.h b/docs/video/enum/std_video_h265_slice_type_enum.h new file mode 100644 index 000000000..2511a926b --- /dev/null +++ b/docs/video/enum/std_video_h265_slice_type_enum.h @@ -0,0 +1,51 @@ +/** + * @struct WisStdVideoH265SliceType WisStdVideoH265SliceType + * @ingroup Enumerations Video + * + * @section WisStdVideoH265SliceType_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisStdVideoH265SliceType { + * WisStdVideoH265SliceTypeB = 0, + * WisStdVideoH265SliceTypeP = 1, + * WisStdVideoH265SliceTypeI = 2, + * WisStdVideoH265SliceTypeInvalid = 0x7FFFFFFF, + * } WisStdVideoH265SliceType; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class StdVideoH265SliceType { + * B = 0, + * P = 1, + * I = 2, + * Invalid = 0x7FFFFFFF, + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265SliceType_descr Description + *
+ * \cond WIS_GEN_DESC + * H.265 slice types as defined in HEVC spec Table 7-7. + * + * Values: + * - `WisStdVideoH265SliceTypeB = 0`: B slice (bi-predictive). + * - `WisStdVideoH265SliceTypeP = 1`: P slice (predictive). + * - `WisStdVideoH265SliceTypeI = 2`: I slice (intra). + * - `WisStdVideoH265SliceTypeInvalid = 0x7FFFFFFF`: Invalid slice type. + * \endcond + * + * + * @section WisStdVideoH265SliceType_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/enum/video_codec_enum.h b/docs/video/enum/video_codec_enum.h new file mode 100644 index 000000000..66badfb1a --- /dev/null +++ b/docs/video/enum/video_codec_enum.h @@ -0,0 +1,54 @@ +/** + * @struct WisVideoCodec WisVideoCodec + * @ingroup Enumerations Video + * + * @section WisVideoCodec_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisVideoCodec { + * WisVideoCodecNone = 0, + * WisVideoCodecH264 = (1u << 0), + * WisVideoCodecH265 = (1u << 1), + * WisVideoCodecAV1 = (1u << 2), + * WisVideoCodecVP9 = (1u << 3), + * } WisVideoCodec; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class VideoCodec : uint32_t { + * None = 0, + * H264 = (1u << 0), + * H265 = (1u << 1), + * AV1 = (1u << 2), + * VP9 = (1u << 3), + * }; + * } + * ``` + * \endcond + * + * @section WisVideoCodec_descr Description + *
+ * \cond WIS_GEN_DESC + * Video codec flags. Used to request and check supported codecs. + * + * Values: + * - `WisVideoCodecNone = 0`: No video is requested. The extension will not initialize. + * - `WisVideoCodecH264 = (1 << 0)`: H.264 video codec. + * - `WisVideoCodecH265 = (1 << 1)`: H.265 video codec. + * - `WisVideoCodecAV1 = (1 << 2)`: AV1 video codec. + * - `WisVideoCodecVP9 = (1 << 3)`: VP9 video codec. + * \endcond + * + * + * @section WisVideoCodec_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/enum/video_codec_flags_enum.h b/docs/video/enum/video_codec_flags_enum.h new file mode 100644 index 000000000..b879d707f --- /dev/null +++ b/docs/video/enum/video_codec_flags_enum.h @@ -0,0 +1,56 @@ +/** + * @struct WisVideoCodecFlags WisVideoCodecFlags + * @ingroup Enumerations Video + * + * @section WisVideoCodecFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef enum WisVideoCodecFlags { + * WisVideoCodecFlagsNone = 0, + * WisVideoCodecFlagsH264 = (1u << 0), + * WisVideoCodecFlagsH265 = (1u << 1), + * WisVideoCodecFlagsAV1 = (1u << 2), + * WisVideoCodecFlagsVP9 = (1u << 3), + * } WisVideoCodecFlags; + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * enum class VideoCodecFlags : uint32_t { + * None = 0, + * H264 = (1u << 0), + * H265 = (1u << 1), + * AV1 = (1u << 2), + * VP9 = (1u << 3), + * }; + * } + * ``` + * \endcond + * + * @section WisVideoCodecFlags_descr Description + *
+ * \cond WIS_GEN_DESC + * Video codec flags. Used to request and check supported codecs. + * + * Values: + * - `WisVideoCodecFlagsNone = 0`: No video is requested. The extension will not initialize. + * - `WisVideoCodecFlagsH264 = (1 << 0)`: H.264 video codec. + * - `WisVideoCodecFlagsH265 = (1 << 1)`: H.265 video codec. + * - `WisVideoCodecFlagsAV1 = (1 << 2)`: AV1 video codec. + * - `WisVideoCodecFlagsVP9 = (1 << 3)`: VP9 video codec. + * \endcond + * + * + * @section WisVideoCodecFlags_see_also See Also + *
+ * + * \cond WIS_GEN_REFS + * @see Functions: + * wisInitVideoDecodingExtension + * \endcond + */ diff --git a/docs/video/func/destroy_video_decode_command_list_function.h b/docs/video/func/destroy_video_decode_command_list_function.h new file mode 100644 index 000000000..89c8fe596 --- /dev/null +++ b/docs/video/func/destroy_video_decode_command_list_function.h @@ -0,0 +1,44 @@ +/** + * @struct wisDestroyVideoDecodeCommandList + * @ingroup Functions Video + * + * + * @section wisDestroyVideoDecodeCommandList_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisDestroyVideoDecodeCommandList(WisVideoDecodeCommandList* self); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisVKDestroyVideoDecodeCommandList(WisVKVideoDecodeCommandList* self); + * + * // Provided by Wisdom 0.7.1. + * void wisDX12DestroyVideoDecodeCommandList(WisDX12VideoDecodeCommandList* self); + * ``` + *
+ * + * \endcond + * + * @section wisDestroyVideoDecodeCommandList_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecodeCommandList instance. + * \endcond + * + * @section wisDestroyVideoDecodeCommandList_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisDestroyVideoDecodeCommandList_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/destroy_video_decoder_function.h b/docs/video/func/destroy_video_decoder_function.h new file mode 100644 index 000000000..f80591f6b --- /dev/null +++ b/docs/video/func/destroy_video_decoder_function.h @@ -0,0 +1,44 @@ +/** + * @struct wisDestroyVideoDecoder + * @ingroup Functions Video + * + * + * @section wisDestroyVideoDecoder_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisDestroyVideoDecoder(WisVideoDecoder* self); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisVKDestroyVideoDecoder(WisVKVideoDecoder* self); + * + * // Provided by Wisdom 0.7.1. + * void wisDX12DestroyVideoDecoder(WisDX12VideoDecoder* self); + * ``` + *
+ * + * \endcond + * + * @section wisDestroyVideoDecoder_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecoder instance. + * \endcond + * + * @section wisDestroyVideoDecoder_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisDestroyVideoDecoder_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/destroy_video_decoder_parameters_function.h b/docs/video/func/destroy_video_decoder_parameters_function.h new file mode 100644 index 000000000..f0bbcf80e --- /dev/null +++ b/docs/video/func/destroy_video_decoder_parameters_function.h @@ -0,0 +1,44 @@ +/** + * @struct wisDestroyVideoDecoderParameters + * @ingroup Functions Video + * + * + * @section wisDestroyVideoDecoderParameters_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisDestroyVideoDecoderParameters(WisVideoDecoderParameters* self); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisVKDestroyVideoDecoderParameters(WisVKVideoDecoderParameters* self); + * + * // Provided by Wisdom 0.7.1. + * void wisDX12DestroyVideoDecoderParameters(WisDX12VideoDecoderParameters* self); + * ``` + *
+ * + * \endcond + * + * @section wisDestroyVideoDecoderParameters_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecoderParameters instance. + * \endcond + * + * @section wisDestroyVideoDecoderParameters_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisDestroyVideoDecoderParameters_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/destroy_video_decoding_extension_function.h b/docs/video/func/destroy_video_decoding_extension_function.h new file mode 100644 index 000000000..c4787aebd --- /dev/null +++ b/docs/video/func/destroy_video_decoding_extension_function.h @@ -0,0 +1,44 @@ +/** + * @struct wisDestroyVideoDecodingExtension + * @ingroup Functions Video + * + * + * @section wisDestroyVideoDecodingExtension_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisDestroyVideoDecodingExtension(WisVideoDecodingExtension* self); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisVKDestroyVideoDecodingExtension(WisVKVideoDecodingExtension* self); + * + * // Provided by Wisdom 0.7.1. + * void wisDX12DestroyVideoDecodingExtension(WisDX12VideoDecodingExtension* self); + * ``` + *
+ * + * \endcond + * + * @section wisDestroyVideoDecodingExtension_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecodingExtension instance. + * \endcond + * + * @section wisDestroyVideoDecodingExtension_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisDestroyVideoDecodingExtension_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/init_video_decoding_extension_function.h b/docs/video/func/init_video_decoding_extension_function.h new file mode 100644 index 000000000..ff3c96724 --- /dev/null +++ b/docs/video/func/init_video_decoding_extension_function.h @@ -0,0 +1,70 @@ +/** + * @struct wisInitVideoDecodingExtension + * @ingroup Functions Video + * + * + * @section wisInitVideoDecodingExtension_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisInitVideoDecodingExtension(WisVideoDecodingExtension* self, + * WisVideoCodecFlags request_codecs); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisVKInitVideoDecodingExtension(WisVKVideoDecodingExtension* self, + * WisVideoCodecFlags request_codecs); + * + * // Provided by Wisdom 0.7.1. + * void wisDX12InitVideoDecodingExtension(WisDX12VideoDecodingExtension* self, + * WisVideoCodecFlags request_codecs); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * VideoDecodingExtension::VideoDecodingExtension(wis::VideoCodecFlags request_codecs) noexcept; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * VKVideoDecodingExtension::VKVideoDecodingExtension(wis::VideoCodecFlags request_codecs) noexcept; + * + * // Provided by Wisdom 0.7.1. + * DX12VideoDecodingExtension::DX12VideoDecodingExtension(wis::VideoCodecFlags request_codecs) noexcept; + * } + * ``` + *
+ * \endcond + * + * @section wisInitVideoDecodingExtension_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` is a pointer to uninitialized WisVideoDecodingExtension instance memory. It will be initialized by + * this function. + * **note** The corresponding destroy function is `wisDestroyVideoDecodingExtension`. + * - `request_codecs` Bitmask of requested video codecs. The extension will attempt to initialize with support for these + * codecs. + * \endcond + * + * @section wisInitVideoDecodingExtension_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisInitVideoDecodingExtension_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/video_decode_command_list_begin_function.h b/docs/video/func/video_decode_command_list_begin_function.h new file mode 100644 index 000000000..87076e8ab --- /dev/null +++ b/docs/video/func/video_decode_command_list_begin_function.h @@ -0,0 +1,65 @@ +/** + * @struct wisVideoDecodeCommandListBegin + * @ingroup Functions Video + * + * + * @section wisVideoDecodeCommandListBegin_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.0. + * WisResult wisVideoDecodeCommandListBegin(const WisVideoDecodeCommandList* self); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.0. + * WisResult wisVKVideoDecodeCommandListBegin(const WisVKVideoDecodeCommandList* self); + * + * // Provided by Wisdom 0.7.0. + * WisResult wisDX12VideoDecodeCommandListBegin(const WisDX12VideoDecodeCommandList* self); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.0. + * wis::Result VideoDecodeCommandList::Begin() const noexcept; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.0. + * wis::Result VKVideoDecodeCommandList::Begin() const noexcept; + * + * // Provided by Wisdom 0.7.0. + * wis::Result DX12VideoDecodeCommandList::Begin() const noexcept; + * } + * ``` + *
+ * \endcond + * + * @section wisVideoDecodeCommandListBegin_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecodeCommandList instance. + * + * - **return** denoting the outcome of operation. + * \endcond + * + * @section wisVideoDecodeCommandListBegin_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisVideoDecodeCommandListBegin_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/video_decode_command_list_decode_frame_function.h b/docs/video/func/video_decode_command_list_decode_frame_function.h new file mode 100644 index 000000000..90e8b6789 --- /dev/null +++ b/docs/video/func/video_decode_command_list_decode_frame_function.h @@ -0,0 +1,97 @@ +/** + * @struct wisVideoDecodeCommandListDecodeFrame + * @ingroup Functions Video + * + * + * @section wisVideoDecodeCommandListDecodeFrame_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisVideoDecodeCommandListDecodeFrame(const WisVideoDecodeCommandList* self, + * const WisVideoDecoder* decoder, + * const WisVideoDecoderParameters* parameters, + * const WisVideoDecodeInputDesc* input_desc, + * const WisVideoDecodePictureDesc* picture_desc, + * uint64_t output_cpu_handle); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisVKVideoDecodeCommandListDecodeFrame(const WisVKVideoDecodeCommandList* self, + * const WisVKVideoDecoder* decoder, + * const WisVKVideoDecoderParameters* parameters, + * const WisVKVideoDecodeInputDesc* input_desc, + * const WisVKVideoDecodePictureDesc* picture_desc, + * uint64_t output_cpu_handle); + * + * // Provided by Wisdom 0.7.1. + * void wisDX12VideoDecodeCommandListDecodeFrame(const WisDX12VideoDecodeCommandList* self, + * const WisDX12VideoDecoder* decoder, + * const WisDX12VideoDecoderParameters* parameters, + * const WisDX12VideoDecodeInputDesc* input_desc, + * const WisDX12VideoDecodePictureDesc* picture_desc, + * uint64_t output_cpu_handle); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * void VideoDecodeCommandList::DecodeFrame(const wis::VideoDecoder& decoder, + * const wis::VideoDecoderParameters& parameters, + * const wis::VideoDecodeInputDesc& input_desc, + * const wis::VideoDecodePictureDesc& picture_desc, + * std::uint64_t output_cpu_handle) const noexcept; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * void VKVideoDecodeCommandList::DecodeFrame(const wis::VKVideoDecoder& decoder, + * const wis::VKVideoDecoderParameters& parameters, + * const wis::VKVideoDecodeInputDesc& input_desc, + * const wis::VKVideoDecodePictureDesc& picture_desc, + * std::uint64_t output_cpu_handle) const noexcept; + * + * // Provided by Wisdom 0.7.1. + * void DX12VideoDecodeCommandList::DecodeFrame(const wis::DX12VideoDecoder& decoder, + * const wis::DX12VideoDecoderParameters& parameters, + * const wis::DX12VideoDecodeInputDesc& input_desc, + * const wis::DX12VideoDecodePictureDesc& picture_desc, + * std::uint64_t output_cpu_handle) const + * noexcept; + * } + * ``` + *
+ * \endcond + * + * @section wisVideoDecodeCommandListDecodeFrame_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecodeCommandList instance. + * - `decoder` The video decoder that will be used for decoding the video frame. + * - `parameters` The video decoder parameters that will be used for decoding the video frame. + * - `input_desc` Description of the input data for the video decode operation. + * - `picture_desc` Codec-specific picture information for the decode operation. + * - `output_cpu_handle` Handle from ViewHeap that was created for texture that receives the video decoding result. + * Handle @wis_must have been created using wisViewHeapWriteVideoDecodeTarget. + * \endcond + * + * @section wisVideoDecodeCommandListDecodeFrame_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisVideoDecodeCommandListDecodeFrame_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/video_decode_command_list_end_function.h b/docs/video/func/video_decode_command_list_end_function.h new file mode 100644 index 000000000..6b052c620 --- /dev/null +++ b/docs/video/func/video_decode_command_list_end_function.h @@ -0,0 +1,65 @@ +/** + * @struct wisVideoDecodeCommandListEnd + * @ingroup Functions Video + * + * + * @section wisVideoDecodeCommandListEnd_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.0. + * WisResult wisVideoDecodeCommandListEnd(const WisVideoDecodeCommandList* self); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.0. + * WisResult wisVKVideoDecodeCommandListEnd(const WisVKVideoDecodeCommandList* self); + * + * // Provided by Wisdom 0.7.0. + * WisResult wisDX12VideoDecodeCommandListEnd(const WisDX12VideoDecodeCommandList* self); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.0. + * wis::Result VideoDecodeCommandList::End() const noexcept; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.0. + * wis::Result VKVideoDecodeCommandList::End() const noexcept; + * + * // Provided by Wisdom 0.7.0. + * wis::Result DX12VideoDecodeCommandList::End() const noexcept; + * } + * ``` + *
+ * \endcond + * + * @section wisVideoDecodeCommandListEnd_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecodeCommandList instance. + * + * - **return** denoting the outcome of operation. + * \endcond + * + * @section wisVideoDecodeCommandListEnd_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisVideoDecodeCommandListEnd_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/video_decode_command_list_insert_barriers_function.h b/docs/video/func/video_decode_command_list_insert_barriers_function.h new file mode 100644 index 000000000..5b18f9a57 --- /dev/null +++ b/docs/video/func/video_decode_command_list_insert_barriers_function.h @@ -0,0 +1,67 @@ +/** + * @struct wisVideoDecodeCommandListInsertBarriers + * @ingroup Functions Video + * + * + * @section wisVideoDecodeCommandListInsertBarriers_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisVideoDecodeCommandListInsertBarriers(const WisVideoDecodeCommandList* self, + * const WisBarrierGroup* barriers); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * void wisVKVideoDecodeCommandListInsertBarriers(const WisVKVideoDecodeCommandList* self, + * const WisVKBarrierGroup* barriers); + * + * // Provided by Wisdom 0.7.1. + * void wisDX12VideoDecodeCommandListInsertBarriers(const WisDX12VideoDecodeCommandList* self, + * const WisDX12BarrierGroup* barriers); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * void VideoDecodeCommandList::InsertBarriers(const wis::BarrierGroup& barriers) const noexcept; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * void VKVideoDecodeCommandList::InsertBarriers(const wis::VKBarrierGroup& barriers) const noexcept; + * + * // Provided by Wisdom 0.7.1. + * void DX12VideoDecodeCommandList::InsertBarriers(const wis::DX12BarrierGroup& barriers) const noexcept; + * } + * ``` + *
+ * \endcond + * + * @section wisVideoDecodeCommandListInsertBarriers_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecodeCommandList instance. + * - `barriers` specifies a pointer to an array of barriers to insert. + * \endcond + * + * @section wisVideoDecodeCommandListInsertBarriers_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisVideoDecodeCommandListInsertBarriers_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/video_decoding_extension_create_command_list_function.h b/docs/video/func/video_decoding_extension_create_command_list_function.h new file mode 100644 index 000000000..67b5292c3 --- /dev/null +++ b/docs/video/func/video_decoding_extension_create_command_list_function.h @@ -0,0 +1,78 @@ +/** + * @struct wisVideoDecodingExtensionCreateCommandList + * @ingroup Functions Video + * + * + * @section wisVideoDecodingExtensionCreateCommandList_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WisResult wisVideoDecodingExtensionCreateCommandList(WisVideoDecodingExtension* self, + * const WisCommandAllocator* command_allocator, + * WisVideoDecodeCommandList* command_list); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WisResult wisVKVideoDecodingExtensionCreateCommandList(WisVKVideoDecodingExtension* self, + * const WisVKCommandAllocator* command_allocator, + * WisVKVideoDecodeCommandList* command_list); + * + * // Provided by Wisdom 0.7.1. + * WisResult wisDX12VideoDecodingExtensionCreateCommandList(WisDX12VideoDecodingExtension* self, + * const WisDX12CommandAllocator* command_allocator, + * WisDX12VideoDecodeCommandList* command_list); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::VideoDecodeCommandList VideoDecodingExtension::CreateCommandList(const wis::CommandAllocator& + * command_allocator, wis::Result& out_result) noexcept; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::VKVideoDecodeCommandList VKVideoDecodingExtension::CreateCommandList(const + * wis::VKCommandAllocator& command_allocator, wis::Result& out_result) noexcept; + * + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::DX12VideoDecodeCommandList DX12VideoDecodingExtension::CreateCommandList(const + * wis::DX12CommandAllocator& command_allocator, wis::Result& out_result) noexcept; + * } + * ``` + *
+ * \endcond + * + * @section wisVideoDecodingExtensionCreateCommandList_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecodingExtension instance. + * - `command_allocator` The command allocator that the command list will use for memory management of command buffers. + * It @wis_must be created with the same WisDevice as the extension and have `WisCommandQueueTypeVideoDecode` or + * `WisCommandQueueTypeVideoEncode` specified. + * - `command_list` Output parameter that holds the created video command list handle if the operation is successful. + * + * - **return** denoting the outcome of operation. + * \endcond + * + * @section wisVideoDecodingExtensionCreateCommandList_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisVideoDecodingExtensionCreateCommandList_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/video_decoding_extension_create_decode_command_list_function.h b/docs/video/func/video_decoding_extension_create_decode_command_list_function.h new file mode 100644 index 000000000..330eb7753 --- /dev/null +++ b/docs/video/func/video_decoding_extension_create_decode_command_list_function.h @@ -0,0 +1,68 @@ +/** + * @struct wisVideoDecodingExtensionCreateDecodeCommandList + * @ingroup Functions Video + * + * + * @section wisVideoDecodingExtensionCreateDecodeCommandList_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WisResult wisVideoDecodingExtensionCreateDecodeCommandList(WisVideoDecodingExtension* self, + * const WisCommandAllocator* command_allocator, + * WisVideoDecodeCommandList* command_list); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WisResult wisVKVideoDecodingExtensionCreateDecodeCommandList(WisVKVideoDecodingExtension* self, + * const WisVKCommandAllocator* command_allocator, + * WisVKVideoDecodeCommandList* command_list); + * + * // Provided by Wisdom 0.7.1. + * WisResult wisDX12VideoDecodingExtensionCreateDecodeCommandList(WisDX12VideoDecodingExtension* self, + * const WisDX12CommandAllocator* command_allocator, + * WisDX12VideoDecodeCommandList* command_list); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis + * ``` + *
+ * + * \endcond + * + * @section wisVideoDecodingExtensionCreateDecodeCommandList_memb Parameters + *
+ * \cond WIS_GEN_DESC + * * - **this** `self` self is a pointer to the valid WisVideoDecodingExtension instance. + * - `command_allocator` The command allocator that the command list will use for memory management of command buffers. + * It @wis_must be created with the same WisDevice as the extension and have `WisCommandQueueTypeVideoDecode` or + * `WisCommandQueueTypeVideoEncode` specified. + * - `command_list` Output parameter that holds the created video command list handle if the operation is successful. + * + * - **return** denoting the outcome of operation. + * + * \endcond + * + * @section wisVideoDecodingExtensionCreateDecodeCommandList_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisVideoDecodingExtensionCreateDecodeCommandList_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/video_decoding_extension_create_decoder_function.h b/docs/video/func/video_decoding_extension_create_decoder_function.h new file mode 100644 index 000000000..8c6c029b5 --- /dev/null +++ b/docs/video/func/video_decoding_extension_create_decoder_function.h @@ -0,0 +1,78 @@ +/** + * @struct wisVideoDecodingExtensionCreateDecoder + * @ingroup Functions Video + * + * + * @section wisVideoDecodingExtensionCreateDecoder_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WisResult wisVideoDecodingExtensionCreateDecoder(const WisVideoDecodingExtension* self, + * const WisVideoDecoderDesc* decoder_desc, + * WisVideoDecoder* video_decoder); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WisResult wisVKVideoDecodingExtensionCreateDecoder(const WisVKVideoDecodingExtension* self, + * const WisVideoDecoderDesc* decoder_desc, + * WisVKVideoDecoder* video_decoder); + * + * // Provided by Wisdom 0.7.1. + * WisResult wisDX12VideoDecodingExtensionCreateDecoder(const WisDX12VideoDecodingExtension* self, + * const WisVideoDecoderDesc* decoder_desc, + * WisDX12VideoDecoder* video_decoder); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::VideoDecoder VideoDecodingExtension::CreateDecoder(const wis::VideoDecoderDesc& decoder_desc, + * wis::Result& out_result) const + * noexcept; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::VKVideoDecoder VKVideoDecodingExtension::CreateDecoder(const wis::VideoDecoderDesc& decoder_desc, + * wis::Result& out_result) + * const noexcept; + * + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::DX12VideoDecoder DX12VideoDecodingExtension::CreateDecoder(const wis::VideoDecoderDesc& + * decoder_desc, wis::Result& out_result) const noexcept; + * } + * ``` + *
+ * \endcond + * + * @section wisVideoDecodingExtensionCreateDecoder_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecodingExtension instance. + * - `decoder_desc` Information about the video decoder to create. + * - `video_decoder` Output parameter that holds the created video decoder handle if the operation is successful. + * + * - **return** denoting the outcome of operation. + * \endcond + * + * @section wisVideoDecodingExtensionCreateDecoder_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisVideoDecodingExtensionCreateDecoder_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/video_decoding_extension_create_parameters_function.h b/docs/video/func/video_decoding_extension_create_parameters_function.h new file mode 100644 index 000000000..c54d9ad56 --- /dev/null +++ b/docs/video/func/video_decoding_extension_create_parameters_function.h @@ -0,0 +1,84 @@ +/** + * @struct wisVideoDecodingExtensionCreateParameters + * @ingroup Functions Video + * + * + * @section wisVideoDecodingExtensionCreateParameters_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WisResult wisVideoDecodingExtensionCreateParameters(const WisVideoDecodingExtension* self, + * const WisVideoDecoder* decoder, + * const WisVideoDecodeParameterDesc* params, + * WisVideoDecoderParameters* decoder_parameters); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WisResult wisVKVideoDecodingExtensionCreateParameters(const WisVKVideoDecodingExtension* self, + * const WisVKVideoDecoder* decoder, + * const WisVideoDecodeParameterDesc* params, + * WisVKVideoDecoderParameters* decoder_parameters); + * + * // Provided by Wisdom 0.7.1. + * WisResult wisDX12VideoDecodingExtensionCreateParameters(const WisDX12VideoDecodingExtension* self, + * const WisDX12VideoDecoder* decoder, + * const WisVideoDecodeParameterDesc* params, + * WisDX12VideoDecoderParameters* decoder_parameters); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::VideoDecoderParameters VideoDecodingExtension::CreateParameters(const wis::VideoDecoder& decoder, + * const + * wis::VideoDecodeParameterDesc& params, wis::Result& out_result) const noexcept; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::VKVideoDecoderParameters VKVideoDecodingExtension::CreateParameters(const wis::VKVideoDecoder& + * decoder, const wis::VideoDecodeParameterDesc& params, wis::Result& out_result) const + * noexcept; + * + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::DX12VideoDecoderParameters DX12VideoDecodingExtension::CreateParameters(const + * wis::DX12VideoDecoder& decoder, const wis::VideoDecodeParameterDesc& params, wis::Result& out_result) const + * noexcept; + * } + * ``` + *
+ * \endcond + * + * @section wisVideoDecodingExtensionCreateParameters_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecodingExtension instance. + * - `decoder` The video decoder that will use these parameters. + * - `params` Codec-specific parameter data. Contains either AV1 or H.265 parameters depending on the codec field. + * - `decoder_parameters` Output parameter that holds the created video decoder parameters handle if the operation is + * successful. + * + * - **return** denoting the outcome of operation. + * \endcond + * + * @section wisVideoDecodingExtensionCreateParameters_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisVideoDecodingExtensionCreateParameters_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/video_decoding_extension_query_codec_caps_function.h b/docs/video/func/video_decoding_extension_query_codec_caps_function.h new file mode 100644 index 000000000..f5bc1d1ff --- /dev/null +++ b/docs/video/func/video_decoding_extension_query_codec_caps_function.h @@ -0,0 +1,80 @@ +/** + * @struct wisVideoDecodingExtensionQueryCodecCaps + * @ingroup Functions Video + * + * + * @section wisVideoDecodingExtensionQueryCodecCaps_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WisResult wisVideoDecodingExtensionQueryCodecCaps(WisVideoDecodingExtension* self, + * const WisVideoCodecDesc* codec_desc, + * WisVideoCodecCaps* caps); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WisResult wisVKVideoDecodingExtensionQueryCodecCaps(WisVKVideoDecodingExtension* self, + * const WisVideoCodecDesc* codec_desc, + * WisVideoCodecCaps* caps); + * + * // Provided by Wisdom 0.7.1. + * WisResult wisDX12VideoDecodingExtensionQueryCodecCaps(WisDX12VideoDecodingExtension* self, + * const WisVideoCodecDesc* codec_desc, + * WisVideoCodecCaps* caps); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::VideoCodecCaps VideoDecodingExtension::QueryCodecCaps(const wis::VideoCodecDesc& codec_desc, + * wis::Result& out_result) + * noexcept; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::VideoCodecCaps VKVideoDecodingExtension::QueryCodecCaps(const wis::VideoCodecDesc& codec_desc, + * wis::Result& out_result) + * noexcept; + * + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD wis::VideoCodecCaps DX12VideoDecodingExtension::QueryCodecCaps(const wis::VideoCodecDesc& codec_desc, + * wis::Result& out_result) + * noexcept; + * } + * ``` + *
+ * \endcond + * + * @section wisVideoDecodingExtensionQueryCodecCaps_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisVideoDecodingExtension instance. + * - `codec_desc` Information about the video codec to query capabilities for. The 'codec' field @wis_should specify the + * codec to check, and the function will fill in the supported bit depths and chroma subsampling formats for that codec. + * - `caps` Capability data for the requested codec configuration. + * + * - **return** denoting the outcome of operation. + * \endcond + * + * @section wisVideoDecodingExtensionQueryCodecCaps_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisVideoDecodingExtensionQueryCodecCaps_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/func/video_decoding_extension_supported_function.h b/docs/video/func/video_decoding_extension_supported_function.h new file mode 100644 index 000000000..d86aafb4c --- /dev/null +++ b/docs/video/func/video_decoding_extension_supported_function.h @@ -0,0 +1,58 @@ +/** + * @struct wisVideoDecodingExtensionSupported + * @ingroup Functions Video + * + * + * @section wisVideoDecodingExtensionSupported_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * bool wisVideoDecodingExtensionSupported(WisVideoDecodingExtension* self); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * bool wisVKVideoDecodingExtensionSupported(WisVKVideoDecodingExtension* self); + * + * // Provided by Wisdom 0.7.1. + * bool wisDX12VideoDecodingExtensionSupported(WisDX12VideoDecodingExtension* self); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis + * ``` + *
+ * + * \endcond + * + * @section wisVideoDecodingExtensionSupported_memb Parameters + *
+ * \cond WIS_GEN_DESC + * * - **this** `self` self is a pointer to the valid WisVideoDecodingExtension instance. + * + * - **return** true if raytracing is supported, false otherwise. + * + * \endcond + * + * @section wisVideoDecodingExtensionSupported_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisVideoDecodingExtensionSupported_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/video/handle/video_decode_command_list_handle.h b/docs/video/handle/video_decode_command_list_handle.h new file mode 100644 index 000000000..914dd9515 --- /dev/null +++ b/docs/video/handle/video_decode_command_list_handle.h @@ -0,0 +1,29 @@ +/** + * @struct WisVideoDecodeCommandList + * @ingroup Handles Video + * + * + * @section WisVideoDecodeCommandList_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * Vulkan Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WIS_DEFINE_HANDLE(WisVKVideoDecodeCommandList,7); + * ``` + * DX12 Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WIS_DEFINE_HANDLE(WisDX12VideoDecodeCommandList,4); + * ``` + * \endcond + * + * @section WisVideoDecodeCommandList_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisDestroyVideoDecodeCommandList, wisVideoDecodingExtensionCreateCommandList, wisVideoDecodeCommandListBegin, + * wisVideoDecodeCommandListEnd, wisVideoDecodeCommandListInsertBarriers, wisVideoDecodeCommandListDecodeFrame + * \endcond + */ diff --git a/docs/video/handle/video_decoder_handle.h b/docs/video/handle/video_decoder_handle.h new file mode 100644 index 000000000..02697e371 --- /dev/null +++ b/docs/video/handle/video_decoder_handle.h @@ -0,0 +1,29 @@ +/** + * @struct WisVideoDecoder + * @ingroup Handles Video + * + * + * @section WisVideoDecoder_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * Vulkan Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WIS_DEFINE_HANDLE(WisVKVideoDecoder,6); + * ``` + * DX12 Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WIS_DEFINE_HANDLE(WisDX12VideoDecoder,3); + * ``` + * \endcond + * + * @section WisVideoDecoder_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisDestroyVideoDecoder, wisVideoDecodingExtensionCreateDecoder, wisVideoDecodingExtensionCreateParameters, + * wisVideoDecodeCommandListDecodeFrame + * \endcond + */ diff --git a/docs/video/handle/video_decoder_parameters_handle.h b/docs/video/handle/video_decoder_parameters_handle.h new file mode 100644 index 000000000..39a1b2fde --- /dev/null +++ b/docs/video/handle/video_decoder_parameters_handle.h @@ -0,0 +1,28 @@ +/** + * @struct WisVideoDecoderParameters + * @ingroup Handles Video + * + * + * @section WisVideoDecoderParameters_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * Vulkan Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WIS_DEFINE_HANDLE(WisVKVideoDecoderParameters,4); + * ``` + * DX12 Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WIS_DEFINE_HANDLE(WisDX12VideoDecoderParameters,2); + * ``` + * \endcond + * + * @section WisVideoDecoderParameters_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisDestroyVideoDecoderParameters, wisVideoDecodingExtensionCreateParameters, wisVideoDecodeCommandListDecodeFrame + * \endcond + */ diff --git a/docs/video/handle/video_decoding_extension_handle.h b/docs/video/handle/video_decoding_extension_handle.h new file mode 100644 index 000000000..19cd8bc7b --- /dev/null +++ b/docs/video/handle/video_decoding_extension_handle.h @@ -0,0 +1,30 @@ +/** + * @struct WisVideoDecodingExtension + * @ingroup Handles Video + * + * + * @section WisVideoDecodingExtension_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * Vulkan Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WIS_DEFINE_VK_DEVICE_EXT_HANDLE(WisVKVideoDecodingExtension,5); + * ``` + * DX12 Version: + * ```c + * // Provided by Wisdom 0.7.1. + * WIS_DEFINE_DX12_DEVICE_EXT_HANDLE(WisDX12VideoDecodingExtension,2); + * ``` + * \endcond + * + * @section WisVideoDecodingExtension_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisDestroyVideoDecodingExtension, wisInitVideoDecodingExtension, wisVideoDecodingExtensionQueryCodecCaps, + * wisVideoDecodingExtensionCreateDecoder, wisVideoDecodingExtensionCreateCommandList, + * wisVideoDecodingExtensionCreateParameters + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_c_d_e_f_struct.h b/docs/video/struct/std_video_a_v1_c_d_e_f_struct.h new file mode 100644 index 000000000..157910d9b --- /dev/null +++ b/docs/video/struct/std_video_a_v1_c_d_e_f_struct.h @@ -0,0 +1,62 @@ +/** + * @struct WisStdVideoAV1CDEF + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1CDEF_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1CDEF { + * uint8_t cdef_damping_minus_3; + * uint8_t cdef_bits; + * uint8_t cdef_y_pri_strength[8]; + * uint8_t cdef_y_sec_strength[8]; + * uint8_t cdef_uv_pri_strength[8]; + * uint8_t cdef_uv_sec_strength[8]; + * } WisStdVideoAV1CDEF; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1CDEF { + * std::uint8_t cdef_damping_minus_3; + * std::uint8_t cdef_bits; + * std::array cdef_y_pri_strength; + * std::array cdef_y_sec_strength; + * std::array cdef_uv_pri_strength; + * std::array cdef_uv_sec_strength; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1CDEF_memb Members + *
+ * \cond WIS_GEN_DESC + * - `cdef_damping_minus_3` Controls the amount of damping in the deringing filter. + * - `cdef_bits` Specifies the number of bits needed to specify the CDEF filter strength. + * - `cdef_y_pri_strength` Primary filter strength for Y. + * - `cdef_y_sec_strength` Secondary filter strength for Y. + * - `cdef_uv_pri_strength` Primary filter strength for UV. + * - `cdef_uv_sec_strength` Secondary filter strength for UV. + * \endcond + * + * @section WisStdVideoAV1CDEF_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1CDEF_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_color_config_flags_struct.h b/docs/video/struct/std_video_a_v1_color_config_flags_struct.h new file mode 100644 index 000000000..fdab89fca --- /dev/null +++ b/docs/video/struct/std_video_a_v1_color_config_flags_struct.h @@ -0,0 +1,59 @@ +/** + * @struct WisStdVideoAV1ColorConfigFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1ColorConfigFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1ColorConfigFlags { + * uint32_t mono_chrome : 1; + * uint32_t color_range : 1; + * uint32_t separate_uv_delta_q : 1; + * uint32_t color_description_present_flag : 1; + * uint32_t reserved : 28; + * } WisStdVideoAV1ColorConfigFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1ColorConfigFlags { + * std::uint32_t mono_chrome : 1; + * std::uint32_t color_range : 1; + * std::uint32_t separate_uv_delta_q : 1; + * std::uint32_t color_description_present_flag : 1; + * std::uint32_t reserved : 28; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1ColorConfigFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `mono_chrome` Indicates if the video does not contain U and V color planes. + * - `color_range` Flag indicating if full color range is used. + * - `separate_uv_delta_q` Flag indicating U and V planes have separate delta quantization. + * - `color_description_present_flag` Indicates if color description is present. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoAV1ColorConfigFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1ColorConfigFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1ColorConfig + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_color_config_struct.h b/docs/video/struct/std_video_a_v1_color_config_struct.h new file mode 100644 index 000000000..9f522029a --- /dev/null +++ b/docs/video/struct/std_video_a_v1_color_config_struct.h @@ -0,0 +1,71 @@ +/** + * @struct WisStdVideoAV1ColorConfig + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1ColorConfig_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1ColorConfig { + * WisStdVideoAV1ColorConfigFlags flags; + * uint8_t BitDepth; + * uint8_t subsampling_x; + * uint8_t subsampling_y; + * uint8_t reserved1; + * WisStdVideoAV1ColorPrimaries color_primaries; + * WisStdVideoAV1TransferCharacteristics transfer_characteristics; + * WisStdVideoAV1MatrixCoefficients matrix_coefficients; + * WisStdVideoAV1ChromaSamplePosition chroma_sample_position; + * } WisStdVideoAV1ColorConfig; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1ColorConfig { + * wis::StdVideoAV1ColorConfigFlags flags; + * std::uint8_t BitDepth; + * std::uint8_t subsampling_x; + * std::uint8_t subsampling_y; + * std::uint8_t reserved1; + * wis::StdVideoAV1ColorPrimaries color_primaries; + * wis::StdVideoAV1TransferCharacteristics transfer_characteristics; + * wis::StdVideoAV1MatrixCoefficients matrix_coefficients; + * wis::StdVideoAV1ChromaSamplePosition chroma_sample_position; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1ColorConfig_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Color configuration flags. + * - `BitDepth` Bit depth of the color samples (8, 10, or 12). + * - `subsampling_x` Chroma subsampling x. + * - `subsampling_y` Chroma subsampling y. + * - `reserved1` No description. + * - `color_primaries` Color primaries. + * - `transfer_characteristics` Transfer characteristics. + * - `matrix_coefficients` Matrix coefficients. + * - `chroma_sample_position` Chroma sample position. + * \endcond + * + * @section WisStdVideoAV1ColorConfig_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1ColorConfig_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1SequenceHeader + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_film_grain_flags_struct.h b/docs/video/struct/std_video_a_v1_film_grain_flags_struct.h new file mode 100644 index 000000000..7272bdcdd --- /dev/null +++ b/docs/video/struct/std_video_a_v1_film_grain_flags_struct.h @@ -0,0 +1,59 @@ +/** + * @struct WisStdVideoAV1FilmGrainFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1FilmGrainFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1FilmGrainFlags { + * uint32_t chroma_scaling_from_luma : 1; + * uint32_t overlap_flag : 1; + * uint32_t clip_to_restricted_range : 1; + * uint32_t update_grain : 1; + * uint32_t reserved : 28; + * } WisStdVideoAV1FilmGrainFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1FilmGrainFlags { + * std::uint32_t chroma_scaling_from_luma : 1; + * std::uint32_t overlap_flag : 1; + * std::uint32_t clip_to_restricted_range : 1; + * std::uint32_t update_grain : 1; + * std::uint32_t reserved : 28; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1FilmGrainFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `chroma_scaling_from_luma` Flag indicating that chroma scaling is derived from luma. + * - `overlap_flag` Flag indicating overlapping film grain blocks. + * - `clip_to_restricted_range` Flag indicating clipping to restricted range. + * - `update_grain` Flag indicating the film grain parameters are updated in this frame. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoAV1FilmGrainFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1FilmGrainFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1FilmGrain + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_film_grain_struct.h b/docs/video/struct/std_video_a_v1_film_grain_struct.h new file mode 100644 index 000000000..e75dee79b --- /dev/null +++ b/docs/video/struct/std_video_a_v1_film_grain_struct.h @@ -0,0 +1,119 @@ +/** + * @struct WisStdVideoAV1FilmGrain + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1FilmGrain_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1FilmGrain { + * WisStdVideoAV1FilmGrainFlags flags; + * uint8_t grain_scaling_minus_8; + * uint8_t ar_coeff_lag; + * uint8_t ar_coeff_shift_minus_6; + * uint8_t grain_scale_shift; + * uint16_t grain_seed; + * uint8_t film_grain_params_ref_idx; + * uint8_t num_y_points; + * uint8_t point_y_value[14]; + * uint8_t point_y_scaling[14]; + * uint8_t num_cb_points; + * uint8_t point_cb_value[10]; + * uint8_t point_cb_scaling[10]; + * uint8_t num_cr_points; + * uint8_t point_cr_value[10]; + * uint8_t point_cr_scaling[10]; + * int8_t ar_coeffs_y_plus_128[24]; + * int8_t ar_coeffs_cb_plus_128[25]; + * int8_t ar_coeffs_cr_plus_128[25]; + * uint8_t cb_mult; + * uint8_t cb_luma_mult; + * uint16_t cb_offset; + * uint8_t cr_mult; + * uint8_t cr_luma_mult; + * uint16_t cr_offset; + * } WisStdVideoAV1FilmGrain; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1FilmGrain { + * wis::StdVideoAV1FilmGrainFlags flags; + * std::uint8_t grain_scaling_minus_8; + * std::uint8_t ar_coeff_lag; + * std::uint8_t ar_coeff_shift_minus_6; + * std::uint8_t grain_scale_shift; + * std::uint16_t grain_seed; + * std::uint8_t film_grain_params_ref_idx; + * std::uint8_t num_y_points; + * std::array point_y_value; + * std::array point_y_scaling; + * std::uint8_t num_cb_points; + * std::array point_cb_value; + * std::array point_cb_scaling; + * std::uint8_t num_cr_points; + * std::array point_cr_value; + * std::array point_cr_scaling; + * std::array ar_coeffs_y_plus_128; + * std::array ar_coeffs_cb_plus_128; + * std::array ar_coeffs_cr_plus_128; + * std::uint8_t cb_mult; + * std::uint8_t cb_luma_mult; + * std::uint16_t cb_offset; + * std::uint8_t cr_mult; + * std::uint8_t cr_luma_mult; + * std::uint16_t cr_offset; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1FilmGrain_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Film grain flags. + * - `grain_scaling_minus_8` Shift value for the film grain scale calculation. + * - `ar_coeff_lag` Number of auto-regressive coefficients. + * - `ar_coeff_shift_minus_6` Shift value for auto-regressive coefficients. + * - `grain_scale_shift` Specifies how much the Gaussian random numbers @wis_should be scaled down. + * - `grain_seed` Specifies the seed for the pseudo-random number generator. + * - `film_grain_params_ref_idx` Specifies the reference frame index to obtain the film grain parameters from. + * - `num_y_points` Number of points for luma scaling. + * - `point_y_value` Luma point values. + * - `point_y_scaling` Luma point scaling. + * - `num_cb_points` Number of points for Cb scaling. + * - `point_cb_value` Cb point values. + * - `point_cb_scaling` Cb point scaling. + * - `num_cr_points` Number of points for Cr scaling. + * - `point_cr_value` Cr point values. + * - `point_cr_scaling` Cr point scaling. + * - `ar_coeffs_y_plus_128` Auto-regressive coefficients for Y. + * - `ar_coeffs_cb_plus_128` Auto-regressive coefficients for Cb. + * - `ar_coeffs_cr_plus_128` Auto-regressive coefficients for Cr. + * - `cb_mult` Cb multiplier for chroma scaling from luma. + * - `cb_luma_mult` Cb luma multiplier for chroma scaling from luma. + * - `cb_offset` Cb offset for chroma scaling from luma. + * - `cr_mult` Cr multiplier for chroma scaling from luma. + * - `cr_luma_mult` Cr luma multiplier for chroma scaling from luma. + * - `cr_offset` Cr offset for chroma scaling from luma. + * \endcond + * + * @section WisStdVideoAV1FilmGrain_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1FilmGrain_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_global_motion_struct.h b/docs/video/struct/std_video_a_v1_global_motion_struct.h new file mode 100644 index 000000000..3f817495b --- /dev/null +++ b/docs/video/struct/std_video_a_v1_global_motion_struct.h @@ -0,0 +1,50 @@ +/** + * @struct WisStdVideoAV1GlobalMotion + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1GlobalMotion_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1GlobalMotion { + * uint8_t GmType[8]; + * int32_t gm_params[8*6]; + * } WisStdVideoAV1GlobalMotion; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1GlobalMotion { + * std::array GmType; + * std::array gm_params; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1GlobalMotion_memb Members + *
+ * \cond WIS_GEN_DESC + * - `GmType` Array specifying the global motion type for each reference frame. + * - `gm_params` Array of global motion parameters. + * \endcond + * + * @section WisStdVideoAV1GlobalMotion_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1GlobalMotion_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_loop_filter_flags_struct.h b/docs/video/struct/std_video_a_v1_loop_filter_flags_struct.h new file mode 100644 index 000000000..7830d19dd --- /dev/null +++ b/docs/video/struct/std_video_a_v1_loop_filter_flags_struct.h @@ -0,0 +1,55 @@ +/** + * @struct WisStdVideoAV1LoopFilterFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1LoopFilterFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1LoopFilterFlags { + * uint32_t loop_filter_delta_enabled : 1; + * uint32_t loop_filter_delta_update : 1; + * uint32_t reserved : 30; + * } WisStdVideoAV1LoopFilterFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1LoopFilterFlags { + * std::uint32_t loop_filter_delta_enabled : 1; + * std::uint32_t loop_filter_delta_update : 1; + * std::uint32_t reserved : 30; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1LoopFilterFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `loop_filter_delta_enabled` Indicates whether the filter level depends on the mode and reference frame used to + * predict a block. + * - `loop_filter_delta_update` Indicates whether additional syntax elements are present that specify which mode and + * reference frame deltas are to be updated. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoAV1LoopFilterFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1LoopFilterFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1LoopFilter + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_loop_filter_struct.h b/docs/video/struct/std_video_a_v1_loop_filter_struct.h new file mode 100644 index 000000000..1b73d23cb --- /dev/null +++ b/docs/video/struct/std_video_a_v1_loop_filter_struct.h @@ -0,0 +1,65 @@ +/** + * @struct WisStdVideoAV1LoopFilter + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1LoopFilter_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1LoopFilter { + * WisStdVideoAV1LoopFilterFlags flags; + * uint8_t loop_filter_level[4]; + * uint8_t loop_filter_sharpness; + * uint8_t update_ref_delta; + * int8_t loop_filter_ref_deltas[8]; + * uint8_t update_mode_delta; + * int8_t loop_filter_mode_deltas[2]; + * } WisStdVideoAV1LoopFilter; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1LoopFilter { + * wis::StdVideoAV1LoopFilterFlags flags; + * std::array loop_filter_level; + * std::uint8_t loop_filter_sharpness; + * std::uint8_t update_ref_delta; + * std::array loop_filter_ref_deltas; + * std::uint8_t update_mode_delta; + * std::array loop_filter_mode_deltas; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1LoopFilter_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Loop filter flags. + * - `loop_filter_level` Array containing loop filter strength values. + * - `loop_filter_sharpness` Loop filter sharpness. + * - `update_ref_delta` Indicates that the loop filter ref deltas are to be updated. + * - `loop_filter_ref_deltas` Loop filter reference deltas. + * - `update_mode_delta` Indicates that the loop filter mode deltas are to be updated. + * - `loop_filter_mode_deltas` Loop filter mode deltas. + * \endcond + * + * @section WisStdVideoAV1LoopFilter_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1LoopFilter_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_loop_restoration_struct.h b/docs/video/struct/std_video_a_v1_loop_restoration_struct.h new file mode 100644 index 000000000..e75cb75b6 --- /dev/null +++ b/docs/video/struct/std_video_a_v1_loop_restoration_struct.h @@ -0,0 +1,50 @@ +/** + * @struct WisStdVideoAV1LoopRestoration + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1LoopRestoration_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1LoopRestoration { + * WisStdVideoAV1FrameRestorationType FrameRestorationType[3]; + * uint16_t LoopRestorationSize[3]; + * } WisStdVideoAV1LoopRestoration; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1LoopRestoration { + * std::array FrameRestorationType; + * std::array LoopRestorationSize; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1LoopRestoration_memb Members + *
+ * \cond WIS_GEN_DESC + * - `FrameRestorationType` Array specifying the loop restoration type for each plane (Y, U, V). + * - `LoopRestorationSize` Array specifying the size of loop restoration units for each plane. + * \endcond + * + * @section WisStdVideoAV1LoopRestoration_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1LoopRestoration_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_quantization_flags_struct.h b/docs/video/struct/std_video_a_v1_quantization_flags_struct.h new file mode 100644 index 000000000..aadfd37d2 --- /dev/null +++ b/docs/video/struct/std_video_a_v1_quantization_flags_struct.h @@ -0,0 +1,53 @@ +/** + * @struct WisStdVideoAV1QuantizationFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1QuantizationFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1QuantizationFlags { + * uint32_t using_qmatrix : 1; + * uint32_t diff_uv_delta : 1; + * uint32_t reserved : 30; + * } WisStdVideoAV1QuantizationFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1QuantizationFlags { + * std::uint32_t using_qmatrix : 1; + * std::uint32_t diff_uv_delta : 1; + * std::uint32_t reserved : 30; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1QuantizationFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `using_qmatrix` Specifies whether the quantizer matrix @wis_should be used. + * - `diff_uv_delta` Specifies whether the U and V delta quantizer values are transmitted separately. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoAV1QuantizationFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1QuantizationFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1Quantization + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_quantization_struct.h b/docs/video/struct/std_video_a_v1_quantization_struct.h new file mode 100644 index 000000000..e9c459a31 --- /dev/null +++ b/docs/video/struct/std_video_a_v1_quantization_struct.h @@ -0,0 +1,74 @@ +/** + * @struct WisStdVideoAV1Quantization + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1Quantization_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1Quantization { + * WisStdVideoAV1QuantizationFlags flags; + * uint8_t base_q_idx; + * int8_t DeltaQYDc; + * int8_t DeltaQUDc; + * int8_t DeltaQUAc; + * int8_t DeltaQVDc; + * int8_t DeltaQVAc; + * uint8_t qm_y; + * uint8_t qm_u; + * uint8_t qm_v; + * } WisStdVideoAV1Quantization; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1Quantization { + * wis::StdVideoAV1QuantizationFlags flags; + * std::uint8_t base_q_idx; + * std::int8_t DeltaQYDc; + * std::int8_t DeltaQUDc; + * std::int8_t DeltaQUAc; + * std::int8_t DeltaQVDc; + * std::int8_t DeltaQVAc; + * std::uint8_t qm_y; + * std::uint8_t qm_u; + * std::uint8_t qm_v; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1Quantization_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Quantization flags. + * - `base_q_idx` Indicates the base frame qindex. + * - `DeltaQYDc` Y DC quantizer relative to base_q_idx. + * - `DeltaQUDc` U DC quantizer relative to base_q_idx. + * - `DeltaQUAc` U AC quantizer relative to base_q_idx. + * - `DeltaQVDc` V DC quantizer relative to base_q_idx. + * - `DeltaQVAc` V AC quantizer relative to base_q_idx. + * - `qm_y` Specifies the level in the quantizer matrix that @wis_should be used for luma plane decoding. + * - `qm_u` Specifies the level in the quantizer matrix that @wis_should be used for chroma U plane decoding. + * - `qm_v` Specifies the level in the quantizer matrix that @wis_should be used for chroma V plane decoding. + * \endcond + * + * @section WisStdVideoAV1Quantization_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1Quantization_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_segmentation_struct.h b/docs/video/struct/std_video_a_v1_segmentation_struct.h new file mode 100644 index 000000000..13826d8f8 --- /dev/null +++ b/docs/video/struct/std_video_a_v1_segmentation_struct.h @@ -0,0 +1,50 @@ +/** + * @struct WisStdVideoAV1Segmentation + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1Segmentation_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1Segmentation { + * uint8_t FeatureEnabled[8]; + * int16_t FeatureData[8*8]; + * } WisStdVideoAV1Segmentation; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1Segmentation { + * std::array FeatureEnabled; + * std::array FeatureData; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1Segmentation_memb Members + *
+ * \cond WIS_GEN_DESC + * - `FeatureEnabled` Array specifying whether the feature is enabled for a segment. + * - `FeatureData` Array specifying the feature data for a segment feature. + * \endcond + * + * @section WisStdVideoAV1Segmentation_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1Segmentation_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_sequence_header_flags_struct.h b/docs/video/struct/std_video_a_v1_sequence_header_flags_struct.h new file mode 100644 index 000000000..759623153 --- /dev/null +++ b/docs/video/struct/std_video_a_v1_sequence_header_flags_struct.h @@ -0,0 +1,104 @@ +/** + * @struct WisStdVideoAV1SequenceHeaderFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1SequenceHeaderFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1SequenceHeaderFlags { + * uint32_t still_picture : 1; + * uint32_t reduced_still_picture_header : 1; + * uint32_t use_128x128_superblock : 1; + * uint32_t enable_filter_intra : 1; + * uint32_t enable_intra_edge_filter : 1; + * uint32_t enable_interintra_compound : 1; + * uint32_t enable_masked_compound : 1; + * uint32_t enable_warped_motion : 1; + * uint32_t enable_dual_filter : 1; + * uint32_t enable_order_hint : 1; + * uint32_t enable_jnt_comp : 1; + * uint32_t enable_ref_frame_mvs : 1; + * uint32_t frame_id_numbers_present_flag : 1; + * uint32_t enable_superres : 1; + * uint32_t enable_cdef : 1; + * uint32_t enable_restoration : 1; + * uint32_t film_grain_params_present : 1; + * uint32_t timing_info_present_flag : 1; + * uint32_t initial_display_delay_present_flag : 1; + * uint32_t reserved : 13; + * } WisStdVideoAV1SequenceHeaderFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1SequenceHeaderFlags { + * std::uint32_t still_picture : 1; + * std::uint32_t reduced_still_picture_header : 1; + * std::uint32_t use_128x128_superblock : 1; + * std::uint32_t enable_filter_intra : 1; + * std::uint32_t enable_intra_edge_filter : 1; + * std::uint32_t enable_interintra_compound : 1; + * std::uint32_t enable_masked_compound : 1; + * std::uint32_t enable_warped_motion : 1; + * std::uint32_t enable_dual_filter : 1; + * std::uint32_t enable_order_hint : 1; + * std::uint32_t enable_jnt_comp : 1; + * std::uint32_t enable_ref_frame_mvs : 1; + * std::uint32_t frame_id_numbers_present_flag : 1; + * std::uint32_t enable_superres : 1; + * std::uint32_t enable_cdef : 1; + * std::uint32_t enable_restoration : 1; + * std::uint32_t film_grain_params_present : 1; + * std::uint32_t timing_info_present_flag : 1; + * std::uint32_t initial_display_delay_present_flag : 1; + * std::uint32_t reserved : 13; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1SequenceHeaderFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `still_picture` Specifies if the video sequence contains a single still picture. + * - `reduced_still_picture_header` Specifies if reduced header parameters are used for a still picture. + * - `use_128x128_superblock` Specifies if superblocks are 128x128 or 64x64. + * - `enable_filter_intra` Specifies if the filter intra predictor can be used. + * - `enable_intra_edge_filter` Specifies if intra edge filtering can be used. + * - `enable_interintra_compound` Specifies if inter-intra compound prediction can be used. + * - `enable_masked_compound` Specifies if masked compound prediction can be used. + * - `enable_warped_motion` Specifies if warped motion can be used. + * - `enable_dual_filter` Specifies if dual interpolation filters can be used. + * - `enable_order_hint` Specifies if order hints are used. + * - `enable_jnt_comp` Specifies if the distance weights process is used for compound prediction. + * - `enable_ref_frame_mvs` Specifies if reference frame motion vectors are present. + * - `frame_id_numbers_present_flag` Specifies if frame ID numbers are present. + * - `enable_superres` Specifies if the superresolution feature can be used. + * - `enable_cdef` Specifies if the CDEF filtering process can be used. + * - `enable_restoration` Specifies if loop restoration can be used. + * - `film_grain_params_present` Specifies if film grain parameters are present. + * - `timing_info_present_flag` Specifies if timing info is present. + * - `initial_display_delay_present_flag` Specifies if the initial display delay info is present. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoAV1SequenceHeaderFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1SequenceHeaderFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1SequenceHeader + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_sequence_header_struct.h b/docs/video/struct/std_video_a_v1_sequence_header_struct.h new file mode 100644 index 000000000..97e523447 --- /dev/null +++ b/docs/video/struct/std_video_a_v1_sequence_header_struct.h @@ -0,0 +1,86 @@ +/** + * @struct WisStdVideoAV1SequenceHeader + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1SequenceHeader_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1SequenceHeader { + * WisStdVideoAV1SequenceHeaderFlags flags; + * WisStdVideoAV1Profile seq_profile; + * uint8_t frame_width_bits_minus_1; + * uint8_t frame_height_bits_minus_1; + * uint16_t max_frame_width_minus_1; + * uint16_t max_frame_height_minus_1; + * uint8_t delta_frame_id_length_minus_2; + * uint8_t additional_frame_id_length_minus_1; + * uint8_t order_hint_bits_minus_1; + * uint8_t seq_force_integer_mv; + * uint8_t seq_force_screen_content_tools; + * uint8_t reserved1[5]; + * const WisStdVideoAV1ColorConfig* pColorConfig; + * const WisStdVideoAV1TimingInfo* pTimingInfo; + * } WisStdVideoAV1SequenceHeader; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1SequenceHeader { + * wis::StdVideoAV1SequenceHeaderFlags flags; + * wis::StdVideoAV1Profile seq_profile; + * std::uint8_t frame_width_bits_minus_1; + * std::uint8_t frame_height_bits_minus_1; + * std::uint16_t max_frame_width_minus_1; + * std::uint16_t max_frame_height_minus_1; + * std::uint8_t delta_frame_id_length_minus_2; + * std::uint8_t additional_frame_id_length_minus_1; + * std::uint8_t order_hint_bits_minus_1; + * std::uint8_t seq_force_integer_mv; + * std::uint8_t seq_force_screen_content_tools; + * std::array reserved1; + * const wis::StdVideoAV1ColorConfig* pColorConfig; + * const wis::StdVideoAV1TimingInfo* pTimingInfo; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1SequenceHeader_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Sequence header flags. + * - `seq_profile` AV1 profile. + * - `frame_width_bits_minus_1` Number of bits used to specify the frame width minus 1. + * - `frame_height_bits_minus_1` Number of bits used to specify the frame height minus 1. + * - `max_frame_width_minus_1` Maximum frame width minus 1. + * - `max_frame_height_minus_1` Maximum frame height minus 1. + * - `delta_frame_id_length_minus_2` Specifies the number of bits used to encode delta_frame_id. + * - `additional_frame_id_length_minus_1` Used to calculate the number of bits used to encode frame_id. + * - `order_hint_bits_minus_1` Used to compute OrderHintBits. + * - `seq_force_integer_mv` Equal to 1: motion vectors will always be integers. + * - `seq_force_screen_content_tools` Screen content tools setting. + * - `reserved1` No description. + * - `pColorConfig` Pointer to color configuration parameters. + * - `pTimingInfo` Pointer to timing info parameters. + * \endcond + * + * @section WisStdVideoAV1SequenceHeader_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1SequenceHeader_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodeAV1Desc + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_tile_info_flags_struct.h b/docs/video/struct/std_video_a_v1_tile_info_flags_struct.h new file mode 100644 index 000000000..5cc810f6e --- /dev/null +++ b/docs/video/struct/std_video_a_v1_tile_info_flags_struct.h @@ -0,0 +1,50 @@ +/** + * @struct WisStdVideoAV1TileInfoFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1TileInfoFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1TileInfoFlags { + * uint32_t uniform_tile_spacing_flag : 1; + * uint32_t reserved : 31; + * } WisStdVideoAV1TileInfoFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1TileInfoFlags { + * std::uint32_t uniform_tile_spacing_flag : 1; + * std::uint32_t reserved : 31; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1TileInfoFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `uniform_tile_spacing_flag` Indicates that the tiles are uniformly spaced across the picture. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoAV1TileInfoFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1TileInfoFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1TileInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_tile_info_struct.h b/docs/video/struct/std_video_a_v1_tile_info_struct.h new file mode 100644 index 000000000..058eda81d --- /dev/null +++ b/docs/video/struct/std_video_a_v1_tile_info_struct.h @@ -0,0 +1,74 @@ +/** + * @struct WisStdVideoAV1TileInfo + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1TileInfo_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1TileInfo { + * WisStdVideoAV1TileInfoFlags flags; + * uint8_t TileCols; + * uint8_t TileRows; + * uint16_t context_update_tile_id; + * uint8_t tile_size_bytes_minus_1; + * uint8_t reserved1[7]; + * const uint16_t* pMiColStarts; + * const uint16_t* pMiRowStarts; + * const uint16_t* pWidthInSbsMinus1; + * const uint16_t* pHeightInSbsMinus1; + * } WisStdVideoAV1TileInfo; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1TileInfo { + * wis::StdVideoAV1TileInfoFlags flags; + * std::uint8_t TileCols; + * std::uint8_t TileRows; + * std::uint16_t context_update_tile_id; + * std::uint8_t tile_size_bytes_minus_1; + * std::array reserved1; + * const std::uint16_t* pMiColStarts; + * const std::uint16_t* pMiRowStarts; + * const std::uint16_t* pWidthInSbsMinus1; + * const std::uint16_t* pHeightInSbsMinus1; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1TileInfo_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Tile info flags. + * - `TileCols` Number of tiles across the picture. + * - `TileRows` Number of tiles down the picture. + * - `context_update_tile_id` Specifies which tile to use for the CDF update. + * - `tile_size_bytes_minus_1` Specifies the number of bytes needed to code each tile size. + * - `reserved1` No description. + * - `pMiColStarts` Pointer to an array specifying the start column (in MI units) for each tile column. + * - `pMiRowStarts` Pointer to an array specifying the start row (in MI units) for each tile row. + * - `pWidthInSbsMinus1` Pointer to an array of tile widths in superblocks minus 1. + * - `pHeightInSbsMinus1` Pointer to an array of tile heights in superblocks minus 1. + * \endcond + * + * @section WisStdVideoAV1TileInfo_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1TileInfo_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_timing_info_flags_struct.h b/docs/video/struct/std_video_a_v1_timing_info_flags_struct.h new file mode 100644 index 000000000..62caf49e0 --- /dev/null +++ b/docs/video/struct/std_video_a_v1_timing_info_flags_struct.h @@ -0,0 +1,50 @@ +/** + * @struct WisStdVideoAV1TimingInfoFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1TimingInfoFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1TimingInfoFlags { + * uint32_t equal_picture_interval : 1; + * uint32_t reserved : 31; + * } WisStdVideoAV1TimingInfoFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1TimingInfoFlags { + * std::uint32_t equal_picture_interval : 1; + * std::uint32_t reserved : 31; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1TimingInfoFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `equal_picture_interval` Indicates if pictures @wis_should be displayed with equal intervals. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoAV1TimingInfoFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1TimingInfoFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1TimingInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_a_v1_timing_info_struct.h b/docs/video/struct/std_video_a_v1_timing_info_struct.h new file mode 100644 index 000000000..c14170efd --- /dev/null +++ b/docs/video/struct/std_video_a_v1_timing_info_struct.h @@ -0,0 +1,56 @@ +/** + * @struct WisStdVideoAV1TimingInfo + * @ingroup Structures Video + * + * + * @section WisStdVideoAV1TimingInfo_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoAV1TimingInfo { + * WisStdVideoAV1TimingInfoFlags flags; + * uint32_t num_units_in_display_tick; + * uint32_t time_scale; + * uint32_t num_ticks_per_picture_minus_1; + * } WisStdVideoAV1TimingInfo; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoAV1TimingInfo { + * wis::StdVideoAV1TimingInfoFlags flags; + * std::uint32_t num_units_in_display_tick; + * std::uint32_t time_scale; + * std::uint32_t num_ticks_per_picture_minus_1; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoAV1TimingInfo_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Timing flags. + * - `num_units_in_display_tick` Number of units in a display tick. + * - `time_scale` Time scale. + * - `num_ticks_per_picture_minus_1` Ticks per picture minus 1. + * \endcond + * + * @section WisStdVideoAV1TimingInfo_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoAV1TimingInfo_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoAV1SequenceHeader + * \endcond + */ diff --git a/docs/video/struct/std_video_decode_a_v1_picture_info_flags_struct.h b/docs/video/struct/std_video_decode_a_v1_picture_info_flags_struct.h new file mode 100644 index 000000000..9ebb29882 --- /dev/null +++ b/docs/video/struct/std_video_decode_a_v1_picture_info_flags_struct.h @@ -0,0 +1,134 @@ +/** + * @struct WisStdVideoDecodeAV1PictureInfoFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoDecodeAV1PictureInfoFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoDecodeAV1PictureInfoFlags { + * uint32_t error_resilient_mode : 1; + * uint32_t disable_cdf_update : 1; + * uint32_t use_superres : 1; + * uint32_t render_and_frame_size_different : 1; + * uint32_t allow_screen_content_tools : 1; + * uint32_t is_filter_switchable : 1; + * uint32_t force_integer_mv : 1; + * uint32_t frame_size_override_flag : 1; + * uint32_t buffer_removal_time_present_flag : 1; + * uint32_t allow_intrabc : 1; + * uint32_t frame_refs_short_signaling : 1; + * uint32_t allow_high_precision_mv : 1; + * uint32_t is_motion_mode_switchable : 1; + * uint32_t use_ref_frame_mvs : 1; + * uint32_t disable_frame_end_update_cdf : 1; + * uint32_t allow_warped_motion : 1; + * uint32_t reduced_tx_set : 1; + * uint32_t reference_select : 1; + * uint32_t skip_mode_present : 1; + * uint32_t delta_q_present : 1; + * uint32_t delta_lf_present : 1; + * uint32_t delta_lf_multi : 1; + * uint32_t segmentation_enabled : 1; + * uint32_t segmentation_update_map : 1; + * uint32_t segmentation_temporal_update : 1; + * uint32_t segmentation_update_data : 1; + * uint32_t UsesLr : 1; + * uint32_t usesChromaLr : 1; + * uint32_t apply_grain : 1; + * uint32_t reserved : 3; + * } WisStdVideoDecodeAV1PictureInfoFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoDecodeAV1PictureInfoFlags { + * std::uint32_t error_resilient_mode : 1; + * std::uint32_t disable_cdf_update : 1; + * std::uint32_t use_superres : 1; + * std::uint32_t render_and_frame_size_different : 1; + * std::uint32_t allow_screen_content_tools : 1; + * std::uint32_t is_filter_switchable : 1; + * std::uint32_t force_integer_mv : 1; + * std::uint32_t frame_size_override_flag : 1; + * std::uint32_t buffer_removal_time_present_flag : 1; + * std::uint32_t allow_intrabc : 1; + * std::uint32_t frame_refs_short_signaling : 1; + * std::uint32_t allow_high_precision_mv : 1; + * std::uint32_t is_motion_mode_switchable : 1; + * std::uint32_t use_ref_frame_mvs : 1; + * std::uint32_t disable_frame_end_update_cdf : 1; + * std::uint32_t allow_warped_motion : 1; + * std::uint32_t reduced_tx_set : 1; + * std::uint32_t reference_select : 1; + * std::uint32_t skip_mode_present : 1; + * std::uint32_t delta_q_present : 1; + * std::uint32_t delta_lf_present : 1; + * std::uint32_t delta_lf_multi : 1; + * std::uint32_t segmentation_enabled : 1; + * std::uint32_t segmentation_update_map : 1; + * std::uint32_t segmentation_temporal_update : 1; + * std::uint32_t segmentation_update_data : 1; + * std::uint32_t UsesLr : 1; + * std::uint32_t usesChromaLr : 1; + * std::uint32_t apply_grain : 1; + * std::uint32_t reserved : 3; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoDecodeAV1PictureInfoFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `error_resilient_mode` Indicates error resilient mode is enabled. + * - `disable_cdf_update` Indicates CDF update is disabled. + * - `use_superres` Indicates superresolution is enabled for this frame. + * - `render_and_frame_size_different` Indicates actual frame size and render frame size are different. + * - `allow_screen_content_tools` Indicates screen content tools are allowed. + * - `is_filter_switchable` Indicates whether interpolation filter is switchable. + * - `force_integer_mv` Indicates whether motion vectors @wis_must be forced to integer. + * - `frame_size_override_flag` Indicates if frame size override is set. + * - `buffer_removal_time_present_flag` Indicates whether buffer removal time is present. + * - `allow_intrabc` Indicates if intra block copy is allowed. + * - `frame_refs_short_signaling` Indicates if reference frames are completely decided by last_frame_idx. + * - `allow_high_precision_mv` Indicates whether high precision motion vectors are allowed. + * - `is_motion_mode_switchable` Indicates whether motion mode is switchable. + * - `use_ref_frame_mvs` Indicates whether reference frame MVs are used. + * - `disable_frame_end_update_cdf` Specifies whether the frame end CDF update is skipped. + * - `allow_warped_motion` Indicates whether warped motion is allowed for this frame. + * - `reduced_tx_set` Indicates whether the frame uses a reduced transform set. + * - `reference_select` Specifies that the mode info for inter blocks contains the syntax element comp_mode. + * - `skip_mode_present` Specifies whether skip mode is allowed. + * - `delta_q_present` Specifies whether a delta q index is present for the frame. + * - `delta_lf_present` Specifies whether delta loop filter values are present. + * - `delta_lf_multi` Specifies whether independent delta loop filter values are used. + * - `segmentation_enabled` Indicates if segmentation is enabled. + * - `segmentation_update_map` Indicates if segmentation map is updated. + * - `segmentation_temporal_update` Indicates if temporal segmentation is updated. + * - `segmentation_update_data` Indicates if segmentation feature data is updated. + * - `UsesLr` Indicates if loop restoration is used. + * - `usesChromaLr` Indicates if loop restoration is used for chroma. + * - `apply_grain` Indicates if film grain @wis_should be applied. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoDecodeAV1PictureInfoFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoDecodeAV1PictureInfoFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1PictureInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_decode_a_v1_picture_info_struct.h b/docs/video/struct/std_video_decode_a_v1_picture_info_struct.h new file mode 100644 index 000000000..dd89121cd --- /dev/null +++ b/docs/video/struct/std_video_decode_a_v1_picture_info_struct.h @@ -0,0 +1,117 @@ +/** + * @struct WisStdVideoDecodeAV1PictureInfo + * @ingroup Structures Video + * + * + * @section WisStdVideoDecodeAV1PictureInfo_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoDecodeAV1PictureInfo { + * WisStdVideoDecodeAV1PictureInfoFlags flags; + * WisStdVideoAV1FrameType frame_type; + * uint32_t current_frame_id; + * uint8_t OrderHint; + * uint8_t primary_ref_frame; + * uint8_t refresh_frame_flags; + * uint8_t reserved1; + * WisStdVideoAV1InterpolationFilter interpolation_filter; + * WisStdVideoAV1TxMode TxMode; + * uint8_t delta_q_res; + * uint8_t delta_lf_res; + * uint8_t SkipModeFrame[2]; + * uint8_t coded_denom; + * uint8_t reserved2[3]; + * uint8_t OrderHints[8]; + * uint32_t expectedFrameId[8]; + * const WisStdVideoAV1TileInfo* pTileInfo; + * const WisStdVideoAV1Quantization* pQuantization; + * const WisStdVideoAV1Segmentation* pSegmentation; + * const WisStdVideoAV1LoopFilter* pLoopFilter; + * const WisStdVideoAV1CDEF* pCDEF; + * const WisStdVideoAV1LoopRestoration* pLoopRestoration; + * const WisStdVideoAV1GlobalMotion* pGlobalMotion; + * const WisStdVideoAV1FilmGrain* pFilmGrain; + * } WisStdVideoDecodeAV1PictureInfo; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoDecodeAV1PictureInfo { + * wis::StdVideoDecodeAV1PictureInfoFlags flags; + * wis::StdVideoAV1FrameType frame_type; + * std::uint32_t current_frame_id; + * std::uint8_t OrderHint; + * std::uint8_t primary_ref_frame; + * std::uint8_t refresh_frame_flags; + * std::uint8_t reserved1; + * wis::StdVideoAV1InterpolationFilter interpolation_filter; + * wis::StdVideoAV1TxMode TxMode; + * std::uint8_t delta_q_res; + * std::uint8_t delta_lf_res; + * std::array SkipModeFrame; + * std::uint8_t coded_denom; + * std::array reserved2; + * std::array OrderHints; + * std::array expectedFrameId; + * const wis::StdVideoAV1TileInfo* pTileInfo; + * const wis::StdVideoAV1Quantization* pQuantization; + * const wis::StdVideoAV1Segmentation* pSegmentation; + * const wis::StdVideoAV1LoopFilter* pLoopFilter; + * const wis::StdVideoAV1CDEF* pCDEF; + * const wis::StdVideoAV1LoopRestoration* pLoopRestoration; + * const wis::StdVideoAV1GlobalMotion* pGlobalMotion; + * const wis::StdVideoAV1FilmGrain* pFilmGrain; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoDecodeAV1PictureInfo_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Decode picture info flags. + * - `frame_type` Frame type: Key, Inter, Intra-only, or Switch. + * - `current_frame_id` Specifies the frame ID for the current frame. + * - `OrderHint` Order hint of the current frame used for motion vector scaling. + * - `primary_ref_frame` Index of the reference frame containing the CDF values to be loaded at the start of the frame. + * - `refresh_frame_flags` An 8-bit mask that specifies which reference frame slots will be updated with the current + * frame. + * - `reserved1` No description. + * - `interpolation_filter` Specifies the filter selection used for performing inter prediction. + * - `TxMode` Specifies how the transform size is determined. + * - `delta_q_res` Specifies the left shift to be applied to decoded delta q values. + * - `delta_lf_res` Specifies the left shift to be applied to decoded delta loop filter values. + * - `SkipModeFrame` Specifies the indices of the reference frames to be used for skip mode. + * - `coded_denom` Denominator for frame size calculation if superres is enabled. + * - `reserved2` No description. + * - `OrderHints` Order hints of the decoded reference frames. + * - `expectedFrameId` Expected frame IDs for reference frames. + * - `pTileInfo` Pointer to AV1 tile information. + * - `pQuantization` Pointer to standard quantization matrices and values. + * - `pSegmentation` Pointer to segmentation parameter information. + * - `pLoopFilter` Pointer to loop filter parameters. + * - `pCDEF` Pointer to CDEF parameters. + * - `pLoopRestoration` Pointer to loop restoration parameters. + * - `pGlobalMotion` Pointer to global motion parameters. + * - `pFilmGrain` Pointer to film grain synthesis parameters. + * \endcond + * + * @section WisStdVideoDecodeAV1PictureInfo_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoDecodeAV1PictureInfo_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodePictureDesc + * \endcond + */ diff --git a/docs/video/struct/std_video_decode_a_v1_reference_info_flags_struct.h b/docs/video/struct/std_video_decode_a_v1_reference_info_flags_struct.h new file mode 100644 index 000000000..f8f9fd781 --- /dev/null +++ b/docs/video/struct/std_video_decode_a_v1_reference_info_flags_struct.h @@ -0,0 +1,53 @@ +/** + * @struct WisStdVideoDecodeAV1ReferenceInfoFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoDecodeAV1ReferenceInfoFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoDecodeAV1ReferenceInfoFlags { + * uint32_t disable_frame_end_update_cdf : 1; + * uint32_t segmentation_enabled : 1; + * uint32_t reserved : 30; + * } WisStdVideoDecodeAV1ReferenceInfoFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoDecodeAV1ReferenceInfoFlags { + * std::uint32_t disable_frame_end_update_cdf : 1; + * std::uint32_t segmentation_enabled : 1; + * std::uint32_t reserved : 30; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoDecodeAV1ReferenceInfoFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `disable_frame_end_update_cdf` Reference originally had disabled frame end CDF update. + * - `segmentation_enabled` Reference originally had segmentation enabled. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoDecodeAV1ReferenceInfoFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoDecodeAV1ReferenceInfoFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeAV1ReferenceInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_decode_a_v1_reference_info_struct.h b/docs/video/struct/std_video_decode_a_v1_reference_info_struct.h new file mode 100644 index 000000000..65ae67a97 --- /dev/null +++ b/docs/video/struct/std_video_decode_a_v1_reference_info_struct.h @@ -0,0 +1,60 @@ +/** + * @struct WisStdVideoDecodeAV1ReferenceInfo + * @ingroup Structures Video + * + * + * @section WisStdVideoDecodeAV1ReferenceInfo_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoDecodeAV1ReferenceInfo { + * WisStdVideoDecodeAV1ReferenceInfoFlags flags; + * uint8_t frame_type; + * uint8_t RefFrameSignBias; + * uint8_t OrderHint; + * uint8_t SavedOrderHints[8]; + * } WisStdVideoDecodeAV1ReferenceInfo; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoDecodeAV1ReferenceInfo { + * wis::StdVideoDecodeAV1ReferenceInfoFlags flags; + * std::uint8_t frame_type; + * std::uint8_t RefFrameSignBias; + * std::uint8_t OrderHint; + * std::array SavedOrderHints; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoDecodeAV1ReferenceInfo_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Reference information flags. + * - `frame_type` Frame type of the reference frame. + * - `RefFrameSignBias` Specifies the direction of the reference frame relative to other references used in motion + * vector derivation. + * - `OrderHint` Order hint of the reference frame. + * - `SavedOrderHints` Saved order hints when this reference frame was decoded. + * \endcond + * + * @section WisStdVideoDecodeAV1ReferenceInfo_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoDecodeAV1ReferenceInfo_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodePictureDesc + * \endcond + */ diff --git a/docs/video/struct/std_video_decode_h265_picture_info_flags_struct.h b/docs/video/struct/std_video_decode_h265_picture_info_flags_struct.h new file mode 100644 index 000000000..1bd865081 --- /dev/null +++ b/docs/video/struct/std_video_decode_h265_picture_info_flags_struct.h @@ -0,0 +1,59 @@ +/** + * @struct WisStdVideoDecodeH265PictureInfoFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoDecodeH265PictureInfoFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoDecodeH265PictureInfoFlags { + * uint32_t IrapPicFlag : 1; + * uint32_t IdrPicFlag : 1; + * uint32_t IsReference : 1; + * uint32_t short_term_ref_pic_set_sps_flag : 1; + * uint32_t reserved : 28; + * } WisStdVideoDecodeH265PictureInfoFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoDecodeH265PictureInfoFlags { + * std::uint32_t IrapPicFlag : 1; + * std::uint32_t IdrPicFlag : 1; + * std::uint32_t IsReference : 1; + * std::uint32_t short_term_ref_pic_set_sps_flag : 1; + * std::uint32_t reserved : 28; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoDecodeH265PictureInfoFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `IrapPicFlag` Specifies that the picture is an IRAP picture. + * - `IdrPicFlag` Specifies that the picture is an IDR picture. + * - `IsReference` Specifies that the picture is a reference picture. + * - `short_term_ref_pic_set_sps_flag` Specifies that the short-term ref pic set is from SPS. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoDecodeH265PictureInfoFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoDecodeH265PictureInfoFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeH265PictureInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_decode_h265_picture_info_struct.h b/docs/video/struct/std_video_decode_h265_picture_info_struct.h new file mode 100644 index 000000000..fd6d4fd14 --- /dev/null +++ b/docs/video/struct/std_video_decode_h265_picture_info_struct.h @@ -0,0 +1,77 @@ +/** + * @struct WisStdVideoDecodeH265PictureInfo + * @ingroup Structures Video + * + * + * @section WisStdVideoDecodeH265PictureInfo_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoDecodeH265PictureInfo { + * WisStdVideoDecodeH265PictureInfoFlags flags; + * uint8_t sps_video_parameter_set_id; + * uint8_t pps_seq_parameter_set_id; + * uint8_t pps_pic_parameter_set_id; + * uint8_t NumDeltaPocsOfRefRpsIdx; + * int32_t PicOrderCntVal; + * uint16_t NumBitsForSTRefPicSetInSlice; + * uint16_t reserved; + * uint8_t RefPicSetStCurrBefore[8]; + * uint8_t RefPicSetStCurrAfter[8]; + * uint8_t RefPicSetLtCurr[8]; + * } WisStdVideoDecodeH265PictureInfo; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoDecodeH265PictureInfo { + * wis::StdVideoDecodeH265PictureInfoFlags flags; + * std::uint8_t sps_video_parameter_set_id; + * std::uint8_t pps_seq_parameter_set_id; + * std::uint8_t pps_pic_parameter_set_id; + * std::uint8_t NumDeltaPocsOfRefRpsIdx; + * std::int32_t PicOrderCntVal; + * std::uint16_t NumBitsForSTRefPicSetInSlice; + * std::uint16_t reserved; + * std::array RefPicSetStCurrBefore; + * std::array RefPicSetStCurrAfter; + * std::array RefPicSetLtCurr; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoDecodeH265PictureInfo_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Decode picture flags. + * - `sps_video_parameter_set_id` SPS VPS ID. + * - `pps_seq_parameter_set_id` PPS SPS ID. + * - `pps_pic_parameter_set_id` PPS ID. + * - `NumDeltaPocsOfRefRpsIdx` Number of delta POCs of reference RPS index. + * - `PicOrderCntVal` Picture order count value. + * - `NumBitsForSTRefPicSetInSlice` Number of bits for short-term ref pic set in slice. + * - `reserved` No description. + * - `RefPicSetStCurrBefore` Short-term reference pictures before the current picture in output order. + * - `RefPicSetStCurrAfter` Short-term reference pictures after the current picture in output order. + * - `RefPicSetLtCurr` Long-term reference pictures currently used. + * \endcond + * + * @section WisStdVideoDecodeH265PictureInfo_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoDecodeH265PictureInfo_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodePictureDesc + * \endcond + */ diff --git a/docs/video/struct/std_video_decode_h265_reference_info_flags_struct.h b/docs/video/struct/std_video_decode_h265_reference_info_flags_struct.h new file mode 100644 index 000000000..d2e58fe8b --- /dev/null +++ b/docs/video/struct/std_video_decode_h265_reference_info_flags_struct.h @@ -0,0 +1,53 @@ +/** + * @struct WisStdVideoDecodeH265ReferenceInfoFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoDecodeH265ReferenceInfoFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoDecodeH265ReferenceInfoFlags { + * uint32_t used_for_long_term_reference : 1; + * uint32_t unused_for_reference : 1; + * uint32_t reserved : 30; + * } WisStdVideoDecodeH265ReferenceInfoFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoDecodeH265ReferenceInfoFlags { + * std::uint32_t used_for_long_term_reference : 1; + * std::uint32_t unused_for_reference : 1; + * std::uint32_t reserved : 30; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoDecodeH265ReferenceInfoFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `used_for_long_term_reference` Specifies that the reference is used for long-term reference. + * - `unused_for_reference` Specifies that the reference is unused for reference. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoDecodeH265ReferenceInfoFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoDecodeH265ReferenceInfoFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoDecodeH265ReferenceInfo + * \endcond + */ diff --git a/docs/video/struct/std_video_decode_h265_reference_info_struct.h b/docs/video/struct/std_video_decode_h265_reference_info_struct.h new file mode 100644 index 000000000..0ddebe3cb --- /dev/null +++ b/docs/video/struct/std_video_decode_h265_reference_info_struct.h @@ -0,0 +1,50 @@ +/** + * @struct WisStdVideoDecodeH265ReferenceInfo + * @ingroup Structures Video + * + * + * @section WisStdVideoDecodeH265ReferenceInfo_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoDecodeH265ReferenceInfo { + * WisStdVideoDecodeH265ReferenceInfoFlags flags; + * int32_t PicOrderCntVal; + * } WisStdVideoDecodeH265ReferenceInfo; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoDecodeH265ReferenceInfo { + * wis::StdVideoDecodeH265ReferenceInfoFlags flags; + * std::int32_t PicOrderCntVal; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoDecodeH265ReferenceInfo_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Reference info flags. + * - `PicOrderCntVal` Picture order count of the reference. + * \endcond + * + * @section WisStdVideoDecodeH265ReferenceInfo_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoDecodeH265ReferenceInfo_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodePictureDesc + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_dec_pic_buf_mgr_struct.h b/docs/video/struct/std_video_h265_dec_pic_buf_mgr_struct.h new file mode 100644 index 000000000..0a8a9f423 --- /dev/null +++ b/docs/video/struct/std_video_h265_dec_pic_buf_mgr_struct.h @@ -0,0 +1,53 @@ +/** + * @struct WisStdVideoH265DecPicBufMgr + * @ingroup Structures Video + * + * + * @section WisStdVideoH265DecPicBufMgr_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265DecPicBufMgr { + * uint32_t max_latency_increase_plus1[7]; + * uint8_t max_dec_pic_buffering_minus1[7]; + * uint8_t max_num_reorder_pics[7]; + * } WisStdVideoH265DecPicBufMgr; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265DecPicBufMgr { + * std::array max_latency_increase_plus1; + * std::array max_dec_pic_buffering_minus1; + * std::array max_num_reorder_pics; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265DecPicBufMgr_memb Members + *
+ * \cond WIS_GEN_DESC + * - `max_latency_increase_plus1` Specifies max latency increase for each sub-layer. + * - `max_dec_pic_buffering_minus1` Specifies max decoded picture buffering minus 1 for each sub-layer. + * - `max_num_reorder_pics` Specifies max number of reorder pictures for each sub-layer. + * \endcond + * + * @section WisStdVideoH265DecPicBufMgr_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265DecPicBufMgr_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265VideoParameterSet, WisStdVideoH265SequenceParameterSet + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_hrd_flags_struct.h b/docs/video/struct/std_video_h265_hrd_flags_struct.h new file mode 100644 index 000000000..38ab2f881 --- /dev/null +++ b/docs/video/struct/std_video_h265_hrd_flags_struct.h @@ -0,0 +1,69 @@ +/** + * @struct WisStdVideoH265HrdFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoH265HrdFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265HrdFlags { + * uint32_t nal_hrd_parameters_present_flag : 1; + * uint32_t vcl_hrd_parameters_present_flag : 1; + * uint32_t sub_pic_hrd_params_present_flag : 1; + * uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag : 1; + * uint32_t fixed_pic_rate_general_flag : 8; + * uint32_t fixed_pic_rate_within_cvs_flag : 8; + * uint32_t low_delay_hrd_flag : 8; + * uint32_t reserved : 4; + * } WisStdVideoH265HrdFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265HrdFlags { + * std::uint32_t nal_hrd_parameters_present_flag : 1; + * std::uint32_t vcl_hrd_parameters_present_flag : 1; + * std::uint32_t sub_pic_hrd_params_present_flag : 1; + * std::uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag : 1; + * std::uint32_t fixed_pic_rate_general_flag : 8; + * std::uint32_t fixed_pic_rate_within_cvs_flag : 8; + * std::uint32_t low_delay_hrd_flag : 8; + * std::uint32_t reserved : 4; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265HrdFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `nal_hrd_parameters_present_flag` Specifies that NAL HRD parameters are present. + * - `vcl_hrd_parameters_present_flag` Specifies that VCL HRD parameters are present. + * - `sub_pic_hrd_params_present_flag` Specifies that sub-picture HRD parameters are present. + * - `sub_pic_cpb_params_in_pic_timing_sei_flag` Specifies that sub-picture CPB parameters are present in the pic timing + * SEI. + * - `fixed_pic_rate_general_flag` An 8-bit flag per sub-layer indicating fixed picture rate. + * - `fixed_pic_rate_within_cvs_flag` An 8-bit flag per sub-layer indicating fixed pic rate within CVS. + * - `low_delay_hrd_flag` An 8-bit flag per sub-layer indicating low delay HRD. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoH265HrdFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265HrdFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265HrdParameters + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_hrd_parameters_struct.h b/docs/video/struct/std_video_h265_hrd_parameters_struct.h new file mode 100644 index 000000000..5c3b59036 --- /dev/null +++ b/docs/video/struct/std_video_h265_hrd_parameters_struct.h @@ -0,0 +1,89 @@ +/** + * @struct WisStdVideoH265HrdParameters + * @ingroup Structures Video + * + * + * @section WisStdVideoH265HrdParameters_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265HrdParameters { + * WisStdVideoH265HrdFlags flags; + * uint8_t tick_divisor_minus2; + * uint8_t du_cpb_removal_delay_increment_length_minus1; + * uint8_t dpb_output_delay_du_length_minus1; + * uint8_t bit_rate_scale; + * uint8_t cpb_size_scale; + * uint8_t cpb_size_du_scale; + * uint8_t initial_cpb_removal_delay_length_minus1; + * uint8_t au_cpb_removal_delay_length_minus1; + * uint8_t dpb_output_delay_length_minus1; + * uint8_t cpb_cnt_minus1[7]; + * uint16_t elemental_duration_in_tc_minus1[7]; + * uint16_t reserved[3]; + * const WisStdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersNal; + * const WisStdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersVcl; + * } WisStdVideoH265HrdParameters; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265HrdParameters { + * wis::StdVideoH265HrdFlags flags; + * std::uint8_t tick_divisor_minus2; + * std::uint8_t du_cpb_removal_delay_increment_length_minus1; + * std::uint8_t dpb_output_delay_du_length_minus1; + * std::uint8_t bit_rate_scale; + * std::uint8_t cpb_size_scale; + * std::uint8_t cpb_size_du_scale; + * std::uint8_t initial_cpb_removal_delay_length_minus1; + * std::uint8_t au_cpb_removal_delay_length_minus1; + * std::uint8_t dpb_output_delay_length_minus1; + * std::array cpb_cnt_minus1; + * std::array elemental_duration_in_tc_minus1; + * std::array reserved; + * const wis::StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersNal; + * const wis::StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersVcl; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265HrdParameters_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` HRD flags. + * - `tick_divisor_minus2` Tick divisor minus 2. + * - `du_cpb_removal_delay_increment_length_minus1` DU CPB removal delay increment length minus 1. + * - `dpb_output_delay_du_length_minus1` DPB output delay DU length minus 1. + * - `bit_rate_scale` Bit rate scale. + * - `cpb_size_scale` CPB size scale. + * - `cpb_size_du_scale` CPB size du scale. + * - `initial_cpb_removal_delay_length_minus1` Initial CPB removal delay length minus 1. + * - `au_cpb_removal_delay_length_minus1` AU CPB removal delay length minus 1. + * - `dpb_output_delay_length_minus1` DPB output delay length minus 1. + * - `cpb_cnt_minus1` CPB count minus 1 for each sub-layer. + * - `elemental_duration_in_tc_minus1` Elemental duration in tc minus 1 for each sub-layer. + * - `reserved` No description. + * - `pSubLayerHrdParametersNal` Pointer to NAL sub-layer HRD parameters. + * - `pSubLayerHrdParametersVcl` Pointer to VCL sub-layer HRD parameters. + * \endcond + * + * @section WisStdVideoH265HrdParameters_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265HrdParameters_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265VideoParameterSet, WisStdVideoH265SequenceParameterSetVui + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_long_term_ref_pics_sps_struct.h b/docs/video/struct/std_video_h265_long_term_ref_pics_sps_struct.h new file mode 100644 index 000000000..cb52f6548 --- /dev/null +++ b/docs/video/struct/std_video_h265_long_term_ref_pics_sps_struct.h @@ -0,0 +1,50 @@ +/** + * @struct WisStdVideoH265LongTermRefPicsSps + * @ingroup Structures Video + * + * + * @section WisStdVideoH265LongTermRefPicsSps_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265LongTermRefPicsSps { + * uint32_t used_by_curr_pic_lt_sps_flag; + * uint32_t lt_ref_pic_poc_lsb_sps[32]; + * } WisStdVideoH265LongTermRefPicsSps; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265LongTermRefPicsSps { + * std::uint32_t used_by_curr_pic_lt_sps_flag; + * std::array lt_ref_pic_poc_lsb_sps; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265LongTermRefPicsSps_memb Members + *
+ * \cond WIS_GEN_DESC + * - `used_by_curr_pic_lt_sps_flag` Used by current picture LT SPS flag. + * - `lt_ref_pic_poc_lsb_sps` LT reference picture POC LSB SPS values. + * \endcond + * + * @section WisStdVideoH265LongTermRefPicsSps_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265LongTermRefPicsSps_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265SequenceParameterSet + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_picture_parameter_set_struct.h b/docs/video/struct/std_video_h265_picture_parameter_set_struct.h new file mode 100644 index 000000000..2727334a0 --- /dev/null +++ b/docs/video/struct/std_video_h265_picture_parameter_set_struct.h @@ -0,0 +1,152 @@ +/** + * @struct WisStdVideoH265PictureParameterSet + * @ingroup Structures Video + * + * + * @section WisStdVideoH265PictureParameterSet_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265PictureParameterSet { + * WisStdVideoH265PpsFlags flags; + * uint8_t pps_pic_parameter_set_id; + * uint8_t pps_seq_parameter_set_id; + * uint8_t sps_video_parameter_set_id; + * uint8_t num_extra_slice_header_bits; + * uint8_t num_ref_idx_l0_default_active_minus1; + * uint8_t num_ref_idx_l1_default_active_minus1; + * int8_t init_qp_minus26; + * uint8_t diff_cu_qp_delta_depth; + * int8_t pps_cb_qp_offset; + * int8_t pps_cr_qp_offset; + * int8_t pps_beta_offset_div2; + * int8_t pps_tc_offset_div2; + * uint8_t log2_parallel_merge_level_minus2; + * uint8_t log2_max_transform_skip_block_size_minus2; + * uint8_t diff_cu_chroma_qp_offset_depth; + * uint8_t chroma_qp_offset_list_len_minus1; + * int8_t cb_qp_offset_list[6]; + * int8_t cr_qp_offset_list[6]; + * uint8_t log2_sao_offset_scale_luma; + * uint8_t log2_sao_offset_scale_chroma; + * int8_t pps_act_y_qp_offset_plus5; + * int8_t pps_act_cb_qp_offset_plus5; + * int8_t pps_act_cr_qp_offset_plus3; + * uint8_t pps_num_palette_predictor_initializers; + * uint8_t luma_bit_depth_entry_minus8; + * uint8_t chroma_bit_depth_entry_minus8; + * uint8_t num_tile_columns_minus1; + * uint8_t num_tile_rows_minus1; + * uint8_t reserved1; + * uint8_t reserved2; + * uint16_t column_width_minus1[19]; + * uint16_t row_height_minus1[21]; + * uint32_t reserved3; + * const WisStdVideoH265ScalingLists* pScalingLists; + * const WisStdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries; + * } WisStdVideoH265PictureParameterSet; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265PictureParameterSet { + * wis::StdVideoH265PpsFlags flags; + * std::uint8_t pps_pic_parameter_set_id; + * std::uint8_t pps_seq_parameter_set_id; + * std::uint8_t sps_video_parameter_set_id; + * std::uint8_t num_extra_slice_header_bits; + * std::uint8_t num_ref_idx_l0_default_active_minus1; + * std::uint8_t num_ref_idx_l1_default_active_minus1; + * std::int8_t init_qp_minus26; + * std::uint8_t diff_cu_qp_delta_depth; + * std::int8_t pps_cb_qp_offset; + * std::int8_t pps_cr_qp_offset; + * std::int8_t pps_beta_offset_div2; + * std::int8_t pps_tc_offset_div2; + * std::uint8_t log2_parallel_merge_level_minus2; + * std::uint8_t log2_max_transform_skip_block_size_minus2; + * std::uint8_t diff_cu_chroma_qp_offset_depth; + * std::uint8_t chroma_qp_offset_list_len_minus1; + * std::array cb_qp_offset_list; + * std::array cr_qp_offset_list; + * std::uint8_t log2_sao_offset_scale_luma; + * std::uint8_t log2_sao_offset_scale_chroma; + * std::int8_t pps_act_y_qp_offset_plus5; + * std::int8_t pps_act_cb_qp_offset_plus5; + * std::int8_t pps_act_cr_qp_offset_plus3; + * std::uint8_t pps_num_palette_predictor_initializers; + * std::uint8_t luma_bit_depth_entry_minus8; + * std::uint8_t chroma_bit_depth_entry_minus8; + * std::uint8_t num_tile_columns_minus1; + * std::uint8_t num_tile_rows_minus1; + * std::uint8_t reserved1; + * std::uint8_t reserved2; + * std::array column_width_minus1; + * std::array row_height_minus1; + * std::uint32_t reserved3; + * const wis::StdVideoH265ScalingLists* pScalingLists; + * const wis::StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265PictureParameterSet_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` PPS flags. + * - `pps_pic_parameter_set_id` PPS ID. + * - `pps_seq_parameter_set_id` PPS SPS ID. + * - `sps_video_parameter_set_id` SPS VPS ID. + * - `num_extra_slice_header_bits` Number of extra slice header bits. + * - `num_ref_idx_l0_default_active_minus1` Number of ref idx L0 default active minus 1. + * - `num_ref_idx_l1_default_active_minus1` Number of ref idx L1 default active minus 1. + * - `init_qp_minus26` Init QP minus 26. + * - `diff_cu_qp_delta_depth` Diff CU QP delta depth. + * - `pps_cb_qp_offset` PPS Cb QP offset. + * - `pps_cr_qp_offset` PPS Cr QP offset. + * - `pps_beta_offset_div2` PPS beta offset div 2. + * - `pps_tc_offset_div2` PPS tc offset div 2. + * - `log2_parallel_merge_level_minus2` Log2 parallel merge level minus 2. + * - `log2_max_transform_skip_block_size_minus2` Log2 max transform skip block size minus 2. + * - `diff_cu_chroma_qp_offset_depth` Diff CU chroma QP offset depth. + * - `chroma_qp_offset_list_len_minus1` Chroma QP offset list length minus 1. + * - `cb_qp_offset_list` Cb QP offset list. + * - `cr_qp_offset_list` Cr QP offset list. + * - `log2_sao_offset_scale_luma` Log2 SAO offset scale luma. + * - `log2_sao_offset_scale_chroma` Log2 SAO offset scale chroma. + * - `pps_act_y_qp_offset_plus5` PPS ACT Y QP offset plus 5. + * - `pps_act_cb_qp_offset_plus5` PPS ACT Cb QP offset plus 5. + * - `pps_act_cr_qp_offset_plus3` PPS ACT Cr QP offset plus 3. + * - `pps_num_palette_predictor_initializers` Number of palette predictor initializers. + * - `luma_bit_depth_entry_minus8` Luma bit depth entry minus 8. + * - `chroma_bit_depth_entry_minus8` Chroma bit depth entry minus 8. + * - `num_tile_columns_minus1` Number of tile columns minus 1. + * - `num_tile_rows_minus1` Number of tile rows minus 1. + * - `reserved1` No description. + * - `reserved2` No description. + * - `column_width_minus1` Column width minus 1 for each tile column. + * - `row_height_minus1` Row height minus 1 for each tile row. + * - `reserved3` No description. + * - `pScalingLists` Pointer to scaling lists. + * - `pPredictorPaletteEntries` Pointer to predictor palette entries. + * \endcond + * + * @section WisStdVideoH265PictureParameterSet_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265PictureParameterSet_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodeH265Desc + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_pps_flags_struct.h b/docs/video/struct/std_video_h265_pps_flags_struct.h new file mode 100644 index 000000000..97bd5cf89 --- /dev/null +++ b/docs/video/struct/std_video_h265_pps_flags_struct.h @@ -0,0 +1,140 @@ +/** + * @struct WisStdVideoH265PpsFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoH265PpsFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265PpsFlags { + * uint32_t dependent_slice_segments_enabled_flag : 1; + * uint32_t output_flag_present_flag : 1; + * uint32_t sign_data_hiding_enabled_flag : 1; + * uint32_t cabac_init_present_flag : 1; + * uint32_t constrained_intra_pred_flag : 1; + * uint32_t transform_skip_enabled_flag : 1; + * uint32_t cu_qp_delta_enabled_flag : 1; + * uint32_t pps_slice_chroma_qp_offsets_present_flag : 1; + * uint32_t weighted_pred_flag : 1; + * uint32_t weighted_bipred_flag : 1; + * uint32_t transquant_bypass_enabled_flag : 1; + * uint32_t tiles_enabled_flag : 1; + * uint32_t entropy_coding_sync_enabled_flag : 1; + * uint32_t uniform_spacing_flag : 1; + * uint32_t loop_filter_across_tiles_enabled_flag : 1; + * uint32_t pps_loop_filter_across_slices_enabled_flag : 1; + * uint32_t deblocking_filter_control_present_flag : 1; + * uint32_t deblocking_filter_override_enabled_flag : 1; + * uint32_t pps_deblocking_filter_disabled_flag : 1; + * uint32_t pps_scaling_list_data_present_flag : 1; + * uint32_t lists_modification_present_flag : 1; + * uint32_t slice_segment_header_extension_present_flag : 1; + * uint32_t pps_extension_present_flag : 1; + * uint32_t cross_component_prediction_enabled_flag : 1; + * uint32_t chroma_qp_offset_list_enabled_flag : 1; + * uint32_t pps_curr_pic_ref_enabled_flag : 1; + * uint32_t residual_adaptive_colour_transform_enabled_flag : 1; + * uint32_t pps_slice_act_qp_offsets_present_flag : 1; + * uint32_t pps_palette_predictor_initializers_present_flag : 1; + * uint32_t monochrome_palette_flag : 1; + * uint32_t pps_range_extension_flag : 1; + * uint32_t reserved : 1; + * } WisStdVideoH265PpsFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265PpsFlags { + * std::uint32_t dependent_slice_segments_enabled_flag : 1; + * std::uint32_t output_flag_present_flag : 1; + * std::uint32_t sign_data_hiding_enabled_flag : 1; + * std::uint32_t cabac_init_present_flag : 1; + * std::uint32_t constrained_intra_pred_flag : 1; + * std::uint32_t transform_skip_enabled_flag : 1; + * std::uint32_t cu_qp_delta_enabled_flag : 1; + * std::uint32_t pps_slice_chroma_qp_offsets_present_flag : 1; + * std::uint32_t weighted_pred_flag : 1; + * std::uint32_t weighted_bipred_flag : 1; + * std::uint32_t transquant_bypass_enabled_flag : 1; + * std::uint32_t tiles_enabled_flag : 1; + * std::uint32_t entropy_coding_sync_enabled_flag : 1; + * std::uint32_t uniform_spacing_flag : 1; + * std::uint32_t loop_filter_across_tiles_enabled_flag : 1; + * std::uint32_t pps_loop_filter_across_slices_enabled_flag : 1; + * std::uint32_t deblocking_filter_control_present_flag : 1; + * std::uint32_t deblocking_filter_override_enabled_flag : 1; + * std::uint32_t pps_deblocking_filter_disabled_flag : 1; + * std::uint32_t pps_scaling_list_data_present_flag : 1; + * std::uint32_t lists_modification_present_flag : 1; + * std::uint32_t slice_segment_header_extension_present_flag : 1; + * std::uint32_t pps_extension_present_flag : 1; + * std::uint32_t cross_component_prediction_enabled_flag : 1; + * std::uint32_t chroma_qp_offset_list_enabled_flag : 1; + * std::uint32_t pps_curr_pic_ref_enabled_flag : 1; + * std::uint32_t residual_adaptive_colour_transform_enabled_flag : 1; + * std::uint32_t pps_slice_act_qp_offsets_present_flag : 1; + * std::uint32_t pps_palette_predictor_initializers_present_flag : 1; + * std::uint32_t monochrome_palette_flag : 1; + * std::uint32_t pps_range_extension_flag : 1; + * std::uint32_t reserved : 1; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265PpsFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `dependent_slice_segments_enabled_flag` No description. + * - `output_flag_present_flag` No description. + * - `sign_data_hiding_enabled_flag` No description. + * - `cabac_init_present_flag` No description. + * - `constrained_intra_pred_flag` No description. + * - `transform_skip_enabled_flag` No description. + * - `cu_qp_delta_enabled_flag` No description. + * - `pps_slice_chroma_qp_offsets_present_flag` No description. + * - `weighted_pred_flag` No description. + * - `weighted_bipred_flag` No description. + * - `transquant_bypass_enabled_flag` No description. + * - `tiles_enabled_flag` No description. + * - `entropy_coding_sync_enabled_flag` No description. + * - `uniform_spacing_flag` No description. + * - `loop_filter_across_tiles_enabled_flag` No description. + * - `pps_loop_filter_across_slices_enabled_flag` No description. + * - `deblocking_filter_control_present_flag` No description. + * - `deblocking_filter_override_enabled_flag` No description. + * - `pps_deblocking_filter_disabled_flag` No description. + * - `pps_scaling_list_data_present_flag` No description. + * - `lists_modification_present_flag` No description. + * - `slice_segment_header_extension_present_flag` No description. + * - `pps_extension_present_flag` No description. + * - `cross_component_prediction_enabled_flag` No description. + * - `chroma_qp_offset_list_enabled_flag` No description. + * - `pps_curr_pic_ref_enabled_flag` No description. + * - `residual_adaptive_colour_transform_enabled_flag` No description. + * - `pps_slice_act_qp_offsets_present_flag` No description. + * - `pps_palette_predictor_initializers_present_flag` No description. + * - `monochrome_palette_flag` No description. + * - `pps_range_extension_flag` No description. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoH265PpsFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265PpsFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265PictureParameterSet + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_predictor_palette_entries_struct.h b/docs/video/struct/std_video_h265_predictor_palette_entries_struct.h new file mode 100644 index 000000000..322cca32e --- /dev/null +++ b/docs/video/struct/std_video_h265_predictor_palette_entries_struct.h @@ -0,0 +1,47 @@ +/** + * @struct WisStdVideoH265PredictorPaletteEntries + * @ingroup Structures Video + * + * + * @section WisStdVideoH265PredictorPaletteEntries_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265PredictorPaletteEntries { + * uint16_t PredictorPaletteEntries[3*128]; + * } WisStdVideoH265PredictorPaletteEntries; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265PredictorPaletteEntries { + * std::array PredictorPaletteEntries; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265PredictorPaletteEntries_memb Members + *
+ * \cond WIS_GEN_DESC + * - `PredictorPaletteEntries` Predictor palette entries (3 components x 128 entries). + * \endcond + * + * @section WisStdVideoH265PredictorPaletteEntries_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265PredictorPaletteEntries_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265SequenceParameterSet, WisStdVideoH265PictureParameterSet + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_profile_tier_level_flags_struct.h b/docs/video/struct/std_video_h265_profile_tier_level_flags_struct.h new file mode 100644 index 000000000..438df02b2 --- /dev/null +++ b/docs/video/struct/std_video_h265_profile_tier_level_flags_struct.h @@ -0,0 +1,62 @@ +/** + * @struct WisStdVideoH265ProfileTierLevelFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoH265ProfileTierLevelFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265ProfileTierLevelFlags { + * uint32_t general_tier_flag : 1; + * uint32_t general_progressive_source_flag : 1; + * uint32_t general_interlaced_source_flag : 1; + * uint32_t general_non_packed_constraint_flag : 1; + * uint32_t general_frame_only_constraint_flag : 1; + * uint32_t reserved : 27; + * } WisStdVideoH265ProfileTierLevelFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265ProfileTierLevelFlags { + * std::uint32_t general_tier_flag : 1; + * std::uint32_t general_progressive_source_flag : 1; + * std::uint32_t general_interlaced_source_flag : 1; + * std::uint32_t general_non_packed_constraint_flag : 1; + * std::uint32_t general_frame_only_constraint_flag : 1; + * std::uint32_t reserved : 27; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265ProfileTierLevelFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `general_tier_flag` Specifies the tier for the profile (0 = Main, 1 = High). + * - `general_progressive_source_flag` Specifies that the source is progressive. + * - `general_interlaced_source_flag` Specifies that the source is interlaced. + * - `general_non_packed_constraint_flag` Specifies that the source is non-packed. + * - `general_frame_only_constraint_flag` Specifies that the source is frame-only. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoH265ProfileTierLevelFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265ProfileTierLevelFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265ProfileTierLevel + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_profile_tier_level_struct.h b/docs/video/struct/std_video_h265_profile_tier_level_struct.h new file mode 100644 index 000000000..3b12b2b4c --- /dev/null +++ b/docs/video/struct/std_video_h265_profile_tier_level_struct.h @@ -0,0 +1,53 @@ +/** + * @struct WisStdVideoH265ProfileTierLevel + * @ingroup Structures Video + * + * + * @section WisStdVideoH265ProfileTierLevel_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265ProfileTierLevel { + * WisStdVideoH265ProfileTierLevelFlags flags; + * WisStdVideoH265ProfileIdc general_profile_idc; + * WisStdVideoH265LevelIdc general_level_idc; + * } WisStdVideoH265ProfileTierLevel; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265ProfileTierLevel { + * wis::StdVideoH265ProfileTierLevelFlags flags; + * wis::StdVideoH265ProfileIdc general_profile_idc; + * wis::StdVideoH265LevelIdc general_level_idc; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265ProfileTierLevel_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Profile tier level flags. + * - `general_profile_idc` General profile IDC. + * - `general_level_idc` General level IDC. + * \endcond + * + * @section WisStdVideoH265ProfileTierLevel_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265ProfileTierLevel_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265VideoParameterSet, WisStdVideoH265SequenceParameterSet + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_scaling_lists_struct.h b/docs/video/struct/std_video_h265_scaling_lists_struct.h new file mode 100644 index 000000000..3d0abab59 --- /dev/null +++ b/docs/video/struct/std_video_h265_scaling_lists_struct.h @@ -0,0 +1,62 @@ +/** + * @struct WisStdVideoH265ScalingLists + * @ingroup Structures Video + * + * + * @section WisStdVideoH265ScalingLists_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265ScalingLists { + * uint8_t ScalingList4x4[6*16]; + * uint8_t ScalingList8x8[6*64]; + * uint8_t ScalingList16x16[6*64]; + * uint8_t ScalingList32x32[2*64]; + * uint8_t ScalingListDCCoef16x16[6]; + * uint8_t ScalingListDCCoef32x32[2]; + * } WisStdVideoH265ScalingLists; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265ScalingLists { + * std::array ScalingList4x4; + * std::array ScalingList8x8; + * std::array ScalingList16x16; + * std::array ScalingList32x32; + * std::array ScalingListDCCoef16x16; + * std::array ScalingListDCCoef32x32; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265ScalingLists_memb Members + *
+ * \cond WIS_GEN_DESC + * - `ScalingList4x4` 4x4 scaling list data (6 lists x 16 entries). + * - `ScalingList8x8` 8x8 scaling list data (6 lists x 64 entries). + * - `ScalingList16x16` 16x16 scaling list data (6 lists x 64 entries). + * - `ScalingList32x32` 32x32 scaling list data (2 lists x 64 entries). + * - `ScalingListDCCoef16x16` DC coefficients for 16x16 scaling lists. + * - `ScalingListDCCoef32x32` DC coefficients for 32x32 scaling lists. + * \endcond + * + * @section WisStdVideoH265ScalingLists_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265ScalingLists_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265SequenceParameterSet, WisStdVideoH265PictureParameterSet + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_sequence_parameter_set_struct.h b/docs/video/struct/std_video_h265_sequence_parameter_set_struct.h new file mode 100644 index 000000000..97c648f75 --- /dev/null +++ b/docs/video/struct/std_video_h265_sequence_parameter_set_struct.h @@ -0,0 +1,161 @@ +/** + * @struct WisStdVideoH265SequenceParameterSet + * @ingroup Structures Video + * + * + * @section WisStdVideoH265SequenceParameterSet_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265SequenceParameterSet { + * WisStdVideoH265SpsFlags flags; + * WisStdVideoH265ChromaFormatIdc chroma_format_idc; + * uint32_t pic_width_in_luma_samples; + * uint32_t pic_height_in_luma_samples; + * uint8_t sps_video_parameter_set_id; + * uint8_t sps_max_sub_layers_minus1; + * uint8_t sps_seq_parameter_set_id; + * uint8_t bit_depth_luma_minus8; + * uint8_t bit_depth_chroma_minus8; + * uint8_t log2_max_pic_order_cnt_lsb_minus4; + * uint8_t log2_min_luma_coding_block_size_minus3; + * uint8_t log2_diff_max_min_luma_coding_block_size; + * uint8_t log2_min_luma_transform_block_size_minus2; + * uint8_t log2_diff_max_min_luma_transform_block_size; + * uint8_t max_transform_hierarchy_depth_inter; + * uint8_t max_transform_hierarchy_depth_intra; + * uint8_t num_short_term_ref_pic_sets; + * uint8_t num_long_term_ref_pics_sps; + * uint8_t pcm_sample_bit_depth_luma_minus1; + * uint8_t pcm_sample_bit_depth_chroma_minus1; + * uint8_t log2_min_pcm_luma_coding_block_size_minus3; + * uint8_t log2_diff_max_min_pcm_luma_coding_block_size; + * uint8_t reserved1; + * uint8_t reserved2; + * uint8_t palette_max_size; + * uint8_t delta_palette_max_predictor_size; + * uint8_t motion_vector_resolution_control_idc; + * uint8_t sps_num_palette_predictor_initializers_minus1; + * uint32_t conf_win_left_offset; + * uint32_t conf_win_right_offset; + * uint32_t conf_win_top_offset; + * uint32_t conf_win_bottom_offset; + * const WisStdVideoH265ProfileTierLevel* pProfileTierLevel; + * const WisStdVideoH265DecPicBufMgr* pDecPicBufMgr; + * const WisStdVideoH265ScalingLists* pScalingLists; + * const WisStdVideoH265ShortTermRefPicSet* pShortTermRefPicSet; + * const WisStdVideoH265LongTermRefPicsSps* pLongTermRefPicsSps; + * const WisStdVideoH265SequenceParameterSetVui* pSequenceParameterSetVui; + * const WisStdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries; + * } WisStdVideoH265SequenceParameterSet; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265SequenceParameterSet { + * wis::StdVideoH265SpsFlags flags; + * wis::StdVideoH265ChromaFormatIdc chroma_format_idc; + * std::uint32_t pic_width_in_luma_samples; + * std::uint32_t pic_height_in_luma_samples; + * std::uint8_t sps_video_parameter_set_id; + * std::uint8_t sps_max_sub_layers_minus1; + * std::uint8_t sps_seq_parameter_set_id; + * std::uint8_t bit_depth_luma_minus8; + * std::uint8_t bit_depth_chroma_minus8; + * std::uint8_t log2_max_pic_order_cnt_lsb_minus4; + * std::uint8_t log2_min_luma_coding_block_size_minus3; + * std::uint8_t log2_diff_max_min_luma_coding_block_size; + * std::uint8_t log2_min_luma_transform_block_size_minus2; + * std::uint8_t log2_diff_max_min_luma_transform_block_size; + * std::uint8_t max_transform_hierarchy_depth_inter; + * std::uint8_t max_transform_hierarchy_depth_intra; + * std::uint8_t num_short_term_ref_pic_sets; + * std::uint8_t num_long_term_ref_pics_sps; + * std::uint8_t pcm_sample_bit_depth_luma_minus1; + * std::uint8_t pcm_sample_bit_depth_chroma_minus1; + * std::uint8_t log2_min_pcm_luma_coding_block_size_minus3; + * std::uint8_t log2_diff_max_min_pcm_luma_coding_block_size; + * std::uint8_t reserved1; + * std::uint8_t reserved2; + * std::uint8_t palette_max_size; + * std::uint8_t delta_palette_max_predictor_size; + * std::uint8_t motion_vector_resolution_control_idc; + * std::uint8_t sps_num_palette_predictor_initializers_minus1; + * std::uint32_t conf_win_left_offset; + * std::uint32_t conf_win_right_offset; + * std::uint32_t conf_win_top_offset; + * std::uint32_t conf_win_bottom_offset; + * const wis::StdVideoH265ProfileTierLevel* pProfileTierLevel; + * const wis::StdVideoH265DecPicBufMgr* pDecPicBufMgr; + * const wis::StdVideoH265ScalingLists* pScalingLists; + * const wis::StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet; + * const wis::StdVideoH265LongTermRefPicsSps* pLongTermRefPicsSps; + * const wis::StdVideoH265SequenceParameterSetVui* pSequenceParameterSetVui; + * const wis::StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265SequenceParameterSet_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` SPS flags. + * - `chroma_format_idc` Chroma format IDC. + * - `pic_width_in_luma_samples` Picture width in luma samples. + * - `pic_height_in_luma_samples` Picture height in luma samples. + * - `sps_video_parameter_set_id` SPS video parameter set ID. + * - `sps_max_sub_layers_minus1` SPS max sub-layers minus 1. + * - `sps_seq_parameter_set_id` SPS sequence parameter set ID. + * - `bit_depth_luma_minus8` Bit depth luma minus 8. + * - `bit_depth_chroma_minus8` Bit depth chroma minus 8. + * - `log2_max_pic_order_cnt_lsb_minus4` Log2 max POC LSB minus 4. + * - `log2_min_luma_coding_block_size_minus3` Log2 min luma coding block size minus 3. + * - `log2_diff_max_min_luma_coding_block_size` Log2 diff max min luma coding block size. + * - `log2_min_luma_transform_block_size_minus2` Log2 min luma transform block size minus 2. + * - `log2_diff_max_min_luma_transform_block_size` Log2 diff max min luma transform block size. + * - `max_transform_hierarchy_depth_inter` Max transform hierarchy depth inter. + * - `max_transform_hierarchy_depth_intra` Max transform hierarchy depth intra. + * - `num_short_term_ref_pic_sets` Number of short-term reference picture sets. + * - `num_long_term_ref_pics_sps` Number of long-term reference pictures in SPS. + * - `pcm_sample_bit_depth_luma_minus1` PCM sample bit depth luma minus 1. + * - `pcm_sample_bit_depth_chroma_minus1` PCM sample bit depth chroma minus 1. + * - `log2_min_pcm_luma_coding_block_size_minus3` Log2 min PCM luma coding block size minus 3. + * - `log2_diff_max_min_pcm_luma_coding_block_size` Log2 diff max min PCM luma coding block size. + * - `reserved1` No description. + * - `reserved2` No description. + * - `palette_max_size` Palette max size for SCC. + * - `delta_palette_max_predictor_size` Delta palette max predictor size. + * - `motion_vector_resolution_control_idc` Motion vector resolution control IDC. + * - `sps_num_palette_predictor_initializers_minus1` Number of palette predictor initializers minus 1. + * - `conf_win_left_offset` Conformance window left offset. + * - `conf_win_right_offset` Conformance window right offset. + * - `conf_win_top_offset` Conformance window top offset. + * - `conf_win_bottom_offset` Conformance window bottom offset. + * - `pProfileTierLevel` Pointer to profile tier level. + * - `pDecPicBufMgr` Pointer to decoded picture buffer management info. + * - `pScalingLists` Pointer to scaling lists. + * - `pShortTermRefPicSet` Pointer to short-term reference picture sets. + * - `pLongTermRefPicsSps` Pointer to long-term reference pictures in SPS. + * - `pSequenceParameterSetVui` Pointer to sequence parameter set VUI. + * - `pPredictorPaletteEntries` Pointer to predictor palette entries. + * \endcond + * + * @section WisStdVideoH265SequenceParameterSet_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265SequenceParameterSet_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodeH265Desc + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_sequence_parameter_set_vui_struct.h b/docs/video/struct/std_video_h265_sequence_parameter_set_vui_struct.h new file mode 100644 index 000000000..dece528e2 --- /dev/null +++ b/docs/video/struct/std_video_h265_sequence_parameter_set_vui_struct.h @@ -0,0 +1,122 @@ +/** + * @struct WisStdVideoH265SequenceParameterSetVui + * @ingroup Structures Video + * + * + * @section WisStdVideoH265SequenceParameterSetVui_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265SequenceParameterSetVui { + * WisStdVideoH265SpsVuiFlags flags; + * WisStdVideoH265AspectRatioIdc aspect_ratio_idc; + * uint16_t sar_width; + * uint16_t sar_height; + * uint8_t video_format; + * uint8_t colour_primaries; + * uint8_t transfer_characteristics; + * uint8_t matrix_coeffs; + * uint8_t chroma_sample_loc_type_top_field; + * uint8_t chroma_sample_loc_type_bottom_field; + * uint8_t reserved1; + * uint8_t reserved2; + * uint16_t def_disp_win_left_offset; + * uint16_t def_disp_win_right_offset; + * uint16_t def_disp_win_top_offset; + * uint16_t def_disp_win_bottom_offset; + * uint32_t vui_num_units_in_tick; + * uint32_t vui_time_scale; + * uint32_t vui_num_ticks_poc_diff_one_minus1; + * uint16_t min_spatial_segmentation_idc; + * uint16_t reserved3; + * uint8_t max_bytes_per_pic_denom; + * uint8_t max_bits_per_min_cu_denom; + * uint8_t log2_max_mv_length_horizontal; + * uint8_t log2_max_mv_length_vertical; + * const WisStdVideoH265HrdParameters* pHrdParameters; + * } WisStdVideoH265SequenceParameterSetVui; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265SequenceParameterSetVui { + * wis::StdVideoH265SpsVuiFlags flags; + * wis::StdVideoH265AspectRatioIdc aspect_ratio_idc; + * std::uint16_t sar_width; + * std::uint16_t sar_height; + * std::uint8_t video_format; + * std::uint8_t colour_primaries; + * std::uint8_t transfer_characteristics; + * std::uint8_t matrix_coeffs; + * std::uint8_t chroma_sample_loc_type_top_field; + * std::uint8_t chroma_sample_loc_type_bottom_field; + * std::uint8_t reserved1; + * std::uint8_t reserved2; + * std::uint16_t def_disp_win_left_offset; + * std::uint16_t def_disp_win_right_offset; + * std::uint16_t def_disp_win_top_offset; + * std::uint16_t def_disp_win_bottom_offset; + * std::uint32_t vui_num_units_in_tick; + * std::uint32_t vui_time_scale; + * std::uint32_t vui_num_ticks_poc_diff_one_minus1; + * std::uint16_t min_spatial_segmentation_idc; + * std::uint16_t reserved3; + * std::uint8_t max_bytes_per_pic_denom; + * std::uint8_t max_bits_per_min_cu_denom; + * std::uint8_t log2_max_mv_length_horizontal; + * std::uint8_t log2_max_mv_length_vertical; + * const wis::StdVideoH265HrdParameters* pHrdParameters; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265SequenceParameterSetVui_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` SPS VUI flags. + * - `aspect_ratio_idc` Aspect ratio IDC. + * - `sar_width` SAR width. + * - `sar_height` SAR height. + * - `video_format` Video format. + * - `colour_primaries` Colour primaries. + * - `transfer_characteristics` Transfer characteristics. + * - `matrix_coeffs` Matrix coefficients. + * - `chroma_sample_loc_type_top_field` Chroma sample location type top field. + * - `chroma_sample_loc_type_bottom_field` Chroma sample location type bottom field. + * - `reserved1` No description. + * - `reserved2` No description. + * - `def_disp_win_left_offset` Default display window left offset. + * - `def_disp_win_right_offset` Default display window right offset. + * - `def_disp_win_top_offset` Default display window top offset. + * - `def_disp_win_bottom_offset` Default display window bottom offset. + * - `vui_num_units_in_tick` VUI num units in tick. + * - `vui_time_scale` VUI time scale. + * - `vui_num_ticks_poc_diff_one_minus1` VUI num ticks POC diff one minus 1. + * - `min_spatial_segmentation_idc` Minimum spatial segmentation IDC. + * - `reserved3` No description. + * - `max_bytes_per_pic_denom` Max bytes per picture denominator. + * - `max_bits_per_min_cu_denom` Max bits per min CU denominator. + * - `log2_max_mv_length_horizontal` Log2 max MV length horizontal. + * - `log2_max_mv_length_vertical` Log2 max MV length vertical. + * - `pHrdParameters` Pointer to HRD parameters. + * \endcond + * + * @section WisStdVideoH265SequenceParameterSetVui_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265SequenceParameterSetVui_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265SequenceParameterSet + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_short_term_ref_pic_set_flags_struct.h b/docs/video/struct/std_video_h265_short_term_ref_pic_set_flags_struct.h new file mode 100644 index 000000000..52d60063b --- /dev/null +++ b/docs/video/struct/std_video_h265_short_term_ref_pic_set_flags_struct.h @@ -0,0 +1,53 @@ +/** + * @struct WisStdVideoH265ShortTermRefPicSetFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoH265ShortTermRefPicSetFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265ShortTermRefPicSetFlags { + * uint32_t inter_ref_pic_set_prediction_flag : 1; + * uint32_t delta_rps_sign : 1; + * uint32_t reserved : 30; + * } WisStdVideoH265ShortTermRefPicSetFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265ShortTermRefPicSetFlags { + * std::uint32_t inter_ref_pic_set_prediction_flag : 1; + * std::uint32_t delta_rps_sign : 1; + * std::uint32_t reserved : 30; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265ShortTermRefPicSetFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `inter_ref_pic_set_prediction_flag` Specifies that inter ref pic set prediction is used. + * - `delta_rps_sign` Sign of the delta RPS. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoH265ShortTermRefPicSetFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265ShortTermRefPicSetFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265ShortTermRefPicSet + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_short_term_ref_pic_set_struct.h b/docs/video/struct/std_video_h265_short_term_ref_pic_set_struct.h new file mode 100644 index 000000000..f6a825416 --- /dev/null +++ b/docs/video/struct/std_video_h265_short_term_ref_pic_set_struct.h @@ -0,0 +1,86 @@ +/** + * @struct WisStdVideoH265ShortTermRefPicSet + * @ingroup Structures Video + * + * + * @section WisStdVideoH265ShortTermRefPicSet_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265ShortTermRefPicSet { + * WisStdVideoH265ShortTermRefPicSetFlags flags; + * uint32_t delta_idx_minus1; + * uint16_t use_delta_flag; + * uint16_t abs_delta_rps_minus1; + * uint16_t used_by_curr_pic_flag; + * uint16_t used_by_curr_pic_s0_flag; + * uint16_t used_by_curr_pic_s1_flag; + * uint16_t reserved1; + * uint8_t reserved2; + * uint8_t reserved3; + * uint8_t num_negative_pics; + * uint8_t num_positive_pics; + * uint16_t delta_poc_s0_minus1[16]; + * uint16_t delta_poc_s1_minus1[16]; + * } WisStdVideoH265ShortTermRefPicSet; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265ShortTermRefPicSet { + * wis::StdVideoH265ShortTermRefPicSetFlags flags; + * std::uint32_t delta_idx_minus1; + * std::uint16_t use_delta_flag; + * std::uint16_t abs_delta_rps_minus1; + * std::uint16_t used_by_curr_pic_flag; + * std::uint16_t used_by_curr_pic_s0_flag; + * std::uint16_t used_by_curr_pic_s1_flag; + * std::uint16_t reserved1; + * std::uint8_t reserved2; + * std::uint8_t reserved3; + * std::uint8_t num_negative_pics; + * std::uint8_t num_positive_pics; + * std::array delta_poc_s0_minus1; + * std::array delta_poc_s1_minus1; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265ShortTermRefPicSet_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` Short-term ref pic set flags. + * - `delta_idx_minus1` Delta index minus 1. + * - `use_delta_flag` Use delta flag. + * - `abs_delta_rps_minus1` Absolute delta RPS minus 1. + * - `used_by_curr_pic_flag` Used by current picture flag. + * - `used_by_curr_pic_s0_flag` Used by current picture S0 flag. + * - `used_by_curr_pic_s1_flag` Used by current picture S1 flag. + * - `reserved1` No description. + * - `reserved2` No description. + * - `reserved3` No description. + * - `num_negative_pics` Number of negative pictures. + * - `num_positive_pics` Number of positive pictures. + * - `delta_poc_s0_minus1` Delta POC S0 minus 1. + * - `delta_poc_s1_minus1` Delta POC S1 minus 1. + * \endcond + * + * @section WisStdVideoH265ShortTermRefPicSet_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265ShortTermRefPicSet_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265SequenceParameterSet + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_sps_flags_struct.h b/docs/video/struct/std_video_h265_sps_flags_struct.h new file mode 100644 index 000000000..2971ad34f --- /dev/null +++ b/docs/video/struct/std_video_h265_sps_flags_struct.h @@ -0,0 +1,137 @@ +/** + * @struct WisStdVideoH265SpsFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoH265SpsFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265SpsFlags { + * uint32_t sps_temporal_id_nesting_flag : 1; + * uint32_t separate_colour_plane_flag : 1; + * uint32_t conformance_window_flag : 1; + * uint32_t sps_sub_layer_ordering_info_present_flag : 1; + * uint32_t scaling_list_enabled_flag : 1; + * uint32_t sps_scaling_list_data_present_flag : 1; + * uint32_t amp_enabled_flag : 1; + * uint32_t sample_adaptive_offset_enabled_flag : 1; + * uint32_t pcm_enabled_flag : 1; + * uint32_t pcm_loop_filter_disabled_flag : 1; + * uint32_t long_term_ref_pics_present_flag : 1; + * uint32_t sps_temporal_mvp_enabled_flag : 1; + * uint32_t strong_intra_smoothing_enabled_flag : 1; + * uint32_t vui_parameters_present_flag : 1; + * uint32_t sps_extension_present_flag : 1; + * uint32_t sps_range_extension_flag : 1; + * uint32_t transform_skip_rotation_enabled_flag : 1; + * uint32_t transform_skip_context_enabled_flag : 1; + * uint32_t implicit_rdpcm_enabled_flag : 1; + * uint32_t explicit_rdpcm_enabled_flag : 1; + * uint32_t extended_precision_processing_flag : 1; + * uint32_t intra_smoothing_disabled_flag : 1; + * uint32_t high_precision_offsets_enabled_flag : 1; + * uint32_t persistent_rice_adaptation_enabled_flag : 1; + * uint32_t cabac_bypass_alignment_enabled_flag : 1; + * uint32_t sps_scc_extension_flag : 1; + * uint32_t sps_curr_pic_ref_enabled_flag : 1; + * uint32_t palette_mode_enabled_flag : 1; + * uint32_t sps_palette_predictor_initializers_present_flag : 1; + * uint32_t intra_boundary_filtering_disabled_flag : 1; + * uint32_t reserved : 2; + * } WisStdVideoH265SpsFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265SpsFlags { + * std::uint32_t sps_temporal_id_nesting_flag : 1; + * std::uint32_t separate_colour_plane_flag : 1; + * std::uint32_t conformance_window_flag : 1; + * std::uint32_t sps_sub_layer_ordering_info_present_flag : 1; + * std::uint32_t scaling_list_enabled_flag : 1; + * std::uint32_t sps_scaling_list_data_present_flag : 1; + * std::uint32_t amp_enabled_flag : 1; + * std::uint32_t sample_adaptive_offset_enabled_flag : 1; + * std::uint32_t pcm_enabled_flag : 1; + * std::uint32_t pcm_loop_filter_disabled_flag : 1; + * std::uint32_t long_term_ref_pics_present_flag : 1; + * std::uint32_t sps_temporal_mvp_enabled_flag : 1; + * std::uint32_t strong_intra_smoothing_enabled_flag : 1; + * std::uint32_t vui_parameters_present_flag : 1; + * std::uint32_t sps_extension_present_flag : 1; + * std::uint32_t sps_range_extension_flag : 1; + * std::uint32_t transform_skip_rotation_enabled_flag : 1; + * std::uint32_t transform_skip_context_enabled_flag : 1; + * std::uint32_t implicit_rdpcm_enabled_flag : 1; + * std::uint32_t explicit_rdpcm_enabled_flag : 1; + * std::uint32_t extended_precision_processing_flag : 1; + * std::uint32_t intra_smoothing_disabled_flag : 1; + * std::uint32_t high_precision_offsets_enabled_flag : 1; + * std::uint32_t persistent_rice_adaptation_enabled_flag : 1; + * std::uint32_t cabac_bypass_alignment_enabled_flag : 1; + * std::uint32_t sps_scc_extension_flag : 1; + * std::uint32_t sps_curr_pic_ref_enabled_flag : 1; + * std::uint32_t palette_mode_enabled_flag : 1; + * std::uint32_t sps_palette_predictor_initializers_present_flag : 1; + * std::uint32_t intra_boundary_filtering_disabled_flag : 1; + * std::uint32_t reserved : 2; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265SpsFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `sps_temporal_id_nesting_flag` No description. + * - `separate_colour_plane_flag` No description. + * - `conformance_window_flag` No description. + * - `sps_sub_layer_ordering_info_present_flag` No description. + * - `scaling_list_enabled_flag` No description. + * - `sps_scaling_list_data_present_flag` No description. + * - `amp_enabled_flag` No description. + * - `sample_adaptive_offset_enabled_flag` No description. + * - `pcm_enabled_flag` No description. + * - `pcm_loop_filter_disabled_flag` No description. + * - `long_term_ref_pics_present_flag` No description. + * - `sps_temporal_mvp_enabled_flag` No description. + * - `strong_intra_smoothing_enabled_flag` No description. + * - `vui_parameters_present_flag` No description. + * - `sps_extension_present_flag` No description. + * - `sps_range_extension_flag` No description. + * - `transform_skip_rotation_enabled_flag` No description. + * - `transform_skip_context_enabled_flag` No description. + * - `implicit_rdpcm_enabled_flag` No description. + * - `explicit_rdpcm_enabled_flag` No description. + * - `extended_precision_processing_flag` No description. + * - `intra_smoothing_disabled_flag` No description. + * - `high_precision_offsets_enabled_flag` No description. + * - `persistent_rice_adaptation_enabled_flag` No description. + * - `cabac_bypass_alignment_enabled_flag` No description. + * - `sps_scc_extension_flag` No description. + * - `sps_curr_pic_ref_enabled_flag` No description. + * - `palette_mode_enabled_flag` No description. + * - `sps_palette_predictor_initializers_present_flag` No description. + * - `intra_boundary_filtering_disabled_flag` No description. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoH265SpsFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265SpsFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265SequenceParameterSet + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_sps_vui_flags_struct.h b/docs/video/struct/std_video_h265_sps_vui_flags_struct.h new file mode 100644 index 000000000..693d08a73 --- /dev/null +++ b/docs/video/struct/std_video_h265_sps_vui_flags_struct.h @@ -0,0 +1,101 @@ +/** + * @struct WisStdVideoH265SpsVuiFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoH265SpsVuiFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265SpsVuiFlags { + * uint32_t aspect_ratio_info_present_flag : 1; + * uint32_t overscan_info_present_flag : 1; + * uint32_t overscan_appropriate_flag : 1; + * uint32_t video_signal_type_present_flag : 1; + * uint32_t video_full_range_flag : 1; + * uint32_t colour_description_present_flag : 1; + * uint32_t chroma_loc_info_present_flag : 1; + * uint32_t neutral_chroma_indication_flag : 1; + * uint32_t field_seq_flag : 1; + * uint32_t frame_field_info_present_flag : 1; + * uint32_t default_display_window_flag : 1; + * uint32_t vui_timing_info_present_flag : 1; + * uint32_t vui_poc_proportional_to_timing_flag : 1; + * uint32_t vui_hrd_parameters_present_flag : 1; + * uint32_t bitstream_restriction_flag : 1; + * uint32_t tiles_fixed_structure_flag : 1; + * uint32_t motion_vectors_over_pic_boundaries_flag : 1; + * uint32_t restricted_ref_pic_lists_flag : 1; + * uint32_t reserved : 14; + * } WisStdVideoH265SpsVuiFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265SpsVuiFlags { + * std::uint32_t aspect_ratio_info_present_flag : 1; + * std::uint32_t overscan_info_present_flag : 1; + * std::uint32_t overscan_appropriate_flag : 1; + * std::uint32_t video_signal_type_present_flag : 1; + * std::uint32_t video_full_range_flag : 1; + * std::uint32_t colour_description_present_flag : 1; + * std::uint32_t chroma_loc_info_present_flag : 1; + * std::uint32_t neutral_chroma_indication_flag : 1; + * std::uint32_t field_seq_flag : 1; + * std::uint32_t frame_field_info_present_flag : 1; + * std::uint32_t default_display_window_flag : 1; + * std::uint32_t vui_timing_info_present_flag : 1; + * std::uint32_t vui_poc_proportional_to_timing_flag : 1; + * std::uint32_t vui_hrd_parameters_present_flag : 1; + * std::uint32_t bitstream_restriction_flag : 1; + * std::uint32_t tiles_fixed_structure_flag : 1; + * std::uint32_t motion_vectors_over_pic_boundaries_flag : 1; + * std::uint32_t restricted_ref_pic_lists_flag : 1; + * std::uint32_t reserved : 14; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265SpsVuiFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `aspect_ratio_info_present_flag` No description. + * - `overscan_info_present_flag` No description. + * - `overscan_appropriate_flag` No description. + * - `video_signal_type_present_flag` No description. + * - `video_full_range_flag` No description. + * - `colour_description_present_flag` No description. + * - `chroma_loc_info_present_flag` No description. + * - `neutral_chroma_indication_flag` No description. + * - `field_seq_flag` No description. + * - `frame_field_info_present_flag` No description. + * - `default_display_window_flag` No description. + * - `vui_timing_info_present_flag` No description. + * - `vui_poc_proportional_to_timing_flag` No description. + * - `vui_hrd_parameters_present_flag` No description. + * - `bitstream_restriction_flag` No description. + * - `tiles_fixed_structure_flag` No description. + * - `motion_vectors_over_pic_boundaries_flag` No description. + * - `restricted_ref_pic_lists_flag` No description. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoH265SpsVuiFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265SpsVuiFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265SequenceParameterSetVui + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_sub_layer_hrd_parameters_struct.h b/docs/video/struct/std_video_h265_sub_layer_hrd_parameters_struct.h new file mode 100644 index 000000000..1b8f41e7a --- /dev/null +++ b/docs/video/struct/std_video_h265_sub_layer_hrd_parameters_struct.h @@ -0,0 +1,59 @@ +/** + * @struct WisStdVideoH265SubLayerHrdParameters + * @ingroup Structures Video + * + * + * @section WisStdVideoH265SubLayerHrdParameters_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265SubLayerHrdParameters { + * uint32_t bit_rate_value_minus1[32]; + * uint32_t cpb_size_value_minus1[32]; + * uint32_t cpb_size_du_value_minus1[32]; + * uint32_t bit_rate_du_value_minus1[32]; + * uint32_t cbr_flag; + * } WisStdVideoH265SubLayerHrdParameters; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265SubLayerHrdParameters { + * std::array bit_rate_value_minus1; + * std::array cpb_size_value_minus1; + * std::array cpb_size_du_value_minus1; + * std::array bit_rate_du_value_minus1; + * std::uint32_t cbr_flag; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265SubLayerHrdParameters_memb Members + *
+ * \cond WIS_GEN_DESC + * - `bit_rate_value_minus1` Bit rate value minus 1 for each CPB. + * - `cpb_size_value_minus1` CPB size value minus 1 for each CPB. + * - `cpb_size_du_value_minus1` CPB size du value minus 1 for each CPB. + * - `bit_rate_du_value_minus1` Bit rate du value minus 1 for each CPB. + * - `cbr_flag` Specifies constant bit rate flag for each CPB. + * \endcond + * + * @section WisStdVideoH265SubLayerHrdParameters_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265SubLayerHrdParameters_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265HrdParameters + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_video_parameter_set_struct.h b/docs/video/struct/std_video_h265_video_parameter_set_struct.h new file mode 100644 index 000000000..19c23fb97 --- /dev/null +++ b/docs/video/struct/std_video_h265_video_parameter_set_struct.h @@ -0,0 +1,80 @@ +/** + * @struct WisStdVideoH265VideoParameterSet + * @ingroup Structures Video + * + * + * @section WisStdVideoH265VideoParameterSet_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265VideoParameterSet { + * WisStdVideoH265VpsFlags flags; + * uint8_t vps_video_parameter_set_id; + * uint8_t vps_max_sub_layers_minus1; + * uint8_t reserved1; + * uint8_t reserved2; + * uint32_t vps_num_units_in_tick; + * uint32_t vps_time_scale; + * uint32_t vps_num_ticks_poc_diff_one_minus1; + * uint32_t reserved3; + * const WisStdVideoH265DecPicBufMgr* pDecPicBufMgr; + * const WisStdVideoH265HrdParameters* pHrdParameters; + * const WisStdVideoH265ProfileTierLevel* pProfileTierLevel; + * } WisStdVideoH265VideoParameterSet; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265VideoParameterSet { + * wis::StdVideoH265VpsFlags flags; + * std::uint8_t vps_video_parameter_set_id; + * std::uint8_t vps_max_sub_layers_minus1; + * std::uint8_t reserved1; + * std::uint8_t reserved2; + * std::uint32_t vps_num_units_in_tick; + * std::uint32_t vps_time_scale; + * std::uint32_t vps_num_ticks_poc_diff_one_minus1; + * std::uint32_t reserved3; + * const wis::StdVideoH265DecPicBufMgr* pDecPicBufMgr; + * const wis::StdVideoH265HrdParameters* pHrdParameters; + * const wis::StdVideoH265ProfileTierLevel* pProfileTierLevel; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265VideoParameterSet_memb Members + *
+ * \cond WIS_GEN_DESC + * - `flags` VPS flags. + * - `vps_video_parameter_set_id` Specifies the VPS ID. + * - `vps_max_sub_layers_minus1` Specifies the max number of temporal sub-layers minus 1. + * - `reserved1` No description. + * - `reserved2` No description. + * - `vps_num_units_in_tick` Number of time units per tick. + * - `vps_time_scale` Time scale. + * - `vps_num_ticks_poc_diff_one_minus1` VPS num ticks POC diff one minus 1. + * - `reserved3` No description. + * - `pDecPicBufMgr` Pointer to decoded picture buffer management info. + * - `pHrdParameters` Pointer to HRD parameters. + * - `pProfileTierLevel` Pointer to profile tier level. + * \endcond + * + * @section WisStdVideoH265VideoParameterSet_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265VideoParameterSet_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodeH265Desc + * \endcond + */ diff --git a/docs/video/struct/std_video_h265_vps_flags_struct.h b/docs/video/struct/std_video_h265_vps_flags_struct.h new file mode 100644 index 000000000..f35274982 --- /dev/null +++ b/docs/video/struct/std_video_h265_vps_flags_struct.h @@ -0,0 +1,59 @@ +/** + * @struct WisStdVideoH265VpsFlags + * @ingroup Structures Video + * + * + * @section WisStdVideoH265VpsFlags_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisStdVideoH265VpsFlags { + * uint32_t vps_temporal_id_nesting_flag : 1; + * uint32_t vps_sub_layer_ordering_info_present_flag : 1; + * uint32_t vps_timing_info_present_flag : 1; + * uint32_t vps_poc_proportional_to_timing_flag : 1; + * uint32_t reserved : 28; + * } WisStdVideoH265VpsFlags; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct StdVideoH265VpsFlags { + * std::uint32_t vps_temporal_id_nesting_flag : 1; + * std::uint32_t vps_sub_layer_ordering_info_present_flag : 1; + * std::uint32_t vps_timing_info_present_flag : 1; + * std::uint32_t vps_poc_proportional_to_timing_flag : 1; + * std::uint32_t reserved : 28; + * }; + * } + * ``` + * \endcond + * + * @section WisStdVideoH265VpsFlags_memb Members + *
+ * \cond WIS_GEN_DESC + * - `vps_temporal_id_nesting_flag` Specifies that all referenced PPs have temporal_id equal to 0. + * - `vps_sub_layer_ordering_info_present_flag` Specifies that ordering info is present for sub-layers. + * - `vps_timing_info_present_flag` Specifies that timing info is present. + * - `vps_poc_proportional_to_timing_flag` Specifies that POC is proportional to timing. + * - `reserved` No description. + * \endcond + * + * @section WisStdVideoH265VpsFlags_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisStdVideoH265VpsFlags_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisStdVideoH265VideoParameterSet + * \endcond + */ diff --git a/docs/video/struct/video_codec_caps_struct.h b/docs/video/struct/video_codec_caps_struct.h new file mode 100644 index 000000000..a69902bd0 --- /dev/null +++ b/docs/video/struct/video_codec_caps_struct.h @@ -0,0 +1,50 @@ +/** + * @struct WisVideoCodecCaps + * @ingroup Structures Video + * + * + * @section WisVideoCodecCaps_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoCodecCaps { + * bool supported; + * uint64_t min_bitstream_buffer_size_alignment; + * } WisVideoCodecCaps; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoCodecCaps { + * bool supported; + * std::uint64_t min_bitstream_buffer_size_alignment; + * }; + * } + * ``` + * \endcond + * + * @section WisVideoCodecCaps_memb Members + *
+ * \cond WIS_GEN_DESC + * - `supported` True if the requested codec configuration is supported by the device. + * - `min_bitstream_buffer_size_alignment` Minimum required alignment for compressed bitstream buffers in bytes. + * \endcond + * + * @section WisVideoCodecCaps_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoCodecCaps_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisVideoDecodingExtensionQueryCodecCaps + * \endcond + */ diff --git a/docs/video/struct/video_codec_desc_struct.h b/docs/video/struct/video_codec_desc_struct.h new file mode 100644 index 000000000..2aceda3c6 --- /dev/null +++ b/docs/video/struct/video_codec_desc_struct.h @@ -0,0 +1,58 @@ +/** + * @struct WisVideoCodecDesc + * @ingroup Structures Video + * + * + * @section WisVideoCodecDesc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoCodecDesc { + * WisStdCodecProfile codec_profile; + * WisDataFormat image_format; + * uint32_t width; + * uint32_t height; + * } WisVideoCodecDesc; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoCodecDesc { + * wis::StdCodecProfile codec_profile; + * wis::DataFormat image_format; + * std::uint32_t width; + * std::uint32_t height; + * }; + * } + * ``` + * \endcond + * + * @section WisVideoCodecDesc_memb Members + *
+ * \cond WIS_GEN_DESC + * - `codec_profile` The video codec to query capabilities for. + * - `image_format` The data format of the video frames for this codec. This field is used to specify the expected + * format of the video frames that will be decoded using this codec, and can influence the supported bit depths and + * chroma subsampling formats. + * - `width` Max width of the video frame in pixels. + * - `height` Max height of the video frame in pixels. + * \endcond + * + * @section WisVideoCodecDesc_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoCodecDesc_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisVideoDecodingExtensionQueryCodecCaps + * \endcond + */ diff --git a/docs/video/struct/video_codec_info_struct.h b/docs/video/struct/video_codec_info_struct.h new file mode 100644 index 000000000..6674fd0ed --- /dev/null +++ b/docs/video/struct/video_codec_info_struct.h @@ -0,0 +1,51 @@ +/** + * @struct WisVideoCodecInfo + * @ingroup Structures Video + * + * + * @section WisVideoCodecInfo_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoCodecInfo { + * WisComponentBitDepth bit_depths; + * WisChromaSubsampling chroma_subsamplings; + * } WisVideoCodecInfo; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoCodecInfo { + * wis::ComponentBitDepth bit_depths; + * wis::ChromaSubsampling chroma_subsamplings; + * }; + * } + * ``` + * \endcond + * + * @section WisVideoCodecInfo_memb Members + *
+ * \cond WIS_GEN_DESC + * - `bit_depths` Supported bit depths for this codec, represented as a bitmask of ComponentBitDepth flags. + * - `chroma_subsamplings` Supported chroma subsampling formats for this codec, represented as a bitmask of + * ChromaSubsampling flags. + * \endcond + * + * @section WisVideoCodecInfo_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoCodecInfo_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisVideoDecodingExtensionQueryCodecCaps + * \endcond + */ diff --git a/docs/video/struct/video_decode_a_v1_desc_struct.h b/docs/video/struct/video_decode_a_v1_desc_struct.h new file mode 100644 index 000000000..f6058909c --- /dev/null +++ b/docs/video/struct/video_decode_a_v1_desc_struct.h @@ -0,0 +1,48 @@ +/** + * @struct WisVideoDecodeAV1Desc + * @ingroup Structures Video + * + * + * @section WisVideoDecodeAV1Desc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoDecodeAV1Desc { + * WisStdVideoAV1SequenceHeader sequence_header; + * } WisVideoDecodeAV1Desc; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoDecodeAV1Desc { + * wis::StdVideoAV1SequenceHeader sequence_header; + * }; + * } + * ``` + * \endcond + * + * @section WisVideoDecodeAV1Desc_memb Members + *
+ * \cond WIS_GEN_DESC + * - `sequence_header` The AV1 sequence header containing profile, tier, level, chroma format, bit depth, and all + * sequence-level flags. + * \endcond + * + * @section WisVideoDecodeAV1Desc_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoDecodeAV1Desc_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodeParameterDesc + * \endcond + */ diff --git a/docs/video/struct/video_decode_a_v1_parameters_struct.h b/docs/video/struct/video_decode_a_v1_parameters_struct.h new file mode 100644 index 000000000..81b842ba2 --- /dev/null +++ b/docs/video/struct/video_decode_a_v1_parameters_struct.h @@ -0,0 +1,48 @@ +/** + * @struct WisVideoDecodeAV1Parameters + * @ingroup Structures Video + * + * + * @section WisVideoDecodeAV1Parameters_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoDecodeAV1Parameters { + * WisStdVideoAV1SequenceHeader sequence_header; + * } WisVideoDecodeAV1Parameters; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoDecodeAV1Parameters { + * wis::StdVideoAV1SequenceHeader sequence_header; + * }; + * } + * ``` + * \endcond + * + * @section WisVideoDecodeAV1Parameters_memb Members + *
+ * \cond WIS_GEN_DESC + * - `sequence_header` The AV1 sequence header containing profile, tier, level, chroma format, bit depth, and all + * sequence-level flags. + * \endcond + * + * @section WisVideoDecodeAV1Parameters_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoDecodeAV1Parameters_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodeParameters + * \endcond + */ diff --git a/docs/video/struct/video_decode_h265_desc_struct.h b/docs/video/struct/video_decode_h265_desc_struct.h new file mode 100644 index 000000000..9f5303939 --- /dev/null +++ b/docs/video/struct/video_decode_h265_desc_struct.h @@ -0,0 +1,71 @@ +/** + * @struct WisVideoDecodeH265Desc + * @ingroup Structures Video + * + * + * @section WisVideoDecodeH265Desc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoDecodeH265Desc { + * uint32_t max_vps_count; + * uint32_t max_sps_count; + * uint32_t max_pps_count; + * const WisStdVideoH265VideoParameterSet* vps; + * uint32_t vps_count; + * const WisStdVideoH265SequenceParameterSet* sps; + * uint32_t sps_count; + * const WisStdVideoH265PictureParameterSet* pps; + * uint32_t pps_count; + * } WisVideoDecodeH265Desc; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoDecodeH265Desc { + * std::uint32_t max_vps_count; + * std::uint32_t max_sps_count; + * std::uint32_t max_pps_count; + * const wis::StdVideoH265VideoParameterSet* vps; + * std::uint32_t vps_count; + * const wis::StdVideoH265SequenceParameterSet* sps; + * std::uint32_t sps_count; + * const wis::StdVideoH265PictureParameterSet* pps; + * std::uint32_t pps_count; + * }; + * } + * ``` + * \endcond + * + * @section WisVideoDecodeH265Desc_memb Members + *
+ * \cond WIS_GEN_DESC + * - `max_vps_count` Maximum number of VPS entries the slot can hold. + * - `max_sps_count` Maximum number of SPS entries the slot can hold. + * - `max_pps_count` Maximum number of PPS entries the slot can hold. + * - `vps` Pointer to an array of VPS data. + * - `vps_count` Number of VPS entries. + * - `sps` Pointer to an array of SPS data. + * - `sps_count` Number of SPS entries. + * - `pps` Pointer to an array of PPS data. + * - `pps_count` Number of PPS entries. + * \endcond + * + * @section WisVideoDecodeH265Desc_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoDecodeH265Desc_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodeParameterDesc + * \endcond + */ diff --git a/docs/video/struct/video_decode_h265_parameters_struct.h b/docs/video/struct/video_decode_h265_parameters_struct.h new file mode 100644 index 000000000..7ec9daf48 --- /dev/null +++ b/docs/video/struct/video_decode_h265_parameters_struct.h @@ -0,0 +1,71 @@ +/** + * @struct WisVideoDecodeH265Parameters + * @ingroup Structures Video + * + * + * @section WisVideoDecodeH265Parameters_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoDecodeH265Parameters { + * uint32_t max_vps_count; + * uint32_t max_sps_count; + * uint32_t max_pps_count; + * const WisStdVideoH265VideoParameterSet* vps; + * uint32_t vps_count; + * const WisStdVideoH265SequenceParameterSet* sps; + * uint32_t sps_count; + * const WisStdVideoH265PictureParameterSet* pps; + * uint32_t pps_count; + * } WisVideoDecodeH265Parameters; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoDecodeH265Parameters { + * std::uint32_t max_vps_count; + * std::uint32_t max_sps_count; + * std::uint32_t max_pps_count; + * const wis::StdVideoH265VideoParameterSet* vps; + * std::uint32_t vps_count; + * const wis::StdVideoH265SequenceParameterSet* sps; + * std::uint32_t sps_count; + * const wis::StdVideoH265PictureParameterSet* pps; + * std::uint32_t pps_count; + * }; + * } + * ``` + * \endcond + * + * @section WisVideoDecodeH265Parameters_memb Members + *
+ * \cond WIS_GEN_DESC + * - `max_vps_count` Maximum number of VPS entries the slot can hold. + * - `max_sps_count` Maximum number of SPS entries the slot can hold. + * - `max_pps_count` Maximum number of PPS entries the slot can hold. + * - `vps` Pointer to an array of VPS data. + * - `vps_count` Number of VPS entries. + * - `sps` Pointer to an array of SPS data. + * - `sps_count` Number of SPS entries. + * - `pps` Pointer to an array of PPS data. + * - `pps_count` Number of PPS entries. + * \endcond + * + * @section WisVideoDecodeH265Parameters_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoDecodeH265Parameters_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Structs: + * WisVideoDecodeParameters + * \endcond + */ diff --git a/docs/video/struct/video_decode_input_desc_struct.h b/docs/video/struct/video_decode_input_desc_struct.h new file mode 100644 index 000000000..c05dd59ff --- /dev/null +++ b/docs/video/struct/video_decode_input_desc_struct.h @@ -0,0 +1,92 @@ +/** + * @struct WisVideoDecodeInputDesc + * @ingroup Structures Video + * + * + * @section WisVideoDecodeInputDesc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoDecodeInputDesc { + * WisBufferView bitstream_buffer; + * uint64_t offset; + * uint64_t size; + * } WisVideoDecodeInputDesc; + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVKVideoDecodeInputDesc { + * WisVKBufferView bitstream_buffer; + * uint64_t offset; + * uint64_t size; + * } WisVKVideoDecodeInputDesc; + * + * // Provided by Wisdom 0.7.1. + * typedef struct WisDX12VideoDecodeInputDesc { + * WisDX12BufferView bitstream_buffer; + * uint64_t offset; + * uint64_t size; + * } WisDX12VideoDecodeInputDesc; + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoDecodeInputDesc { + * wis::BufferView bitstream_buffer; + * std::uint64_t offset; + * std::uint64_t size; + * }; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VKVideoDecodeInputDesc { + * wis::VKBufferView bitstream_buffer; + * std::uint64_t offset; + * std::uint64_t size; + * }; + * + * // Provided by Wisdom 0.7.1. + * struct DX12VideoDecodeInputDesc { + * wis::DX12BufferView bitstream_buffer; + * std::uint64_t offset; + * std::uint64_t size; + * }; + * } + * ``` + *
+ * \endcond + * + * @section WisVideoDecodeInputDesc_memb Members + *
+ * \cond WIS_GEN_DESC + * - `bitstream_buffer` Input description for a video decode operation that uses a bitstream buffer as input. The buffer + * view @wis_should contain the compressed video data to be decoded. + * - `offset` Offset in the buffer where the bistream data is located. + * - `size` Size of the bitstream data in bytes. + * \endcond + * + * @section WisVideoDecodeInputDesc_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoDecodeInputDesc_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisVideoDecodeCommandListDecodeFrame + * \endcond + */ diff --git a/docs/video/struct/video_decode_output_desc_struct.h b/docs/video/struct/video_decode_output_desc_struct.h new file mode 100644 index 000000000..69ab80cba --- /dev/null +++ b/docs/video/struct/video_decode_output_desc_struct.h @@ -0,0 +1,91 @@ +/** + * @struct WisVideoDecodeOutputDesc + * @ingroup Structures Video + * + * + * @section WisVideoDecodeOutputDesc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoDecodeOutputDesc { + * WisTextureView output_texture; + * WisDataFormat format; + * uint32_t subresource; + * } WisVideoDecodeOutputDesc; + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVKVideoDecodeOutputDesc { + * WisVKTextureView output_texture; + * WisDataFormat format; + * uint32_t subresource; + * } WisVKVideoDecodeOutputDesc; + * + * // Provided by Wisdom 0.7.1. + * typedef struct WisDX12VideoDecodeOutputDesc { + * WisDX12TextureView output_texture; + * WisDataFormat format; + * uint32_t subresource; + * } WisDX12VideoDecodeOutputDesc; + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoDecodeOutputDesc { + * wis::TextureView output_texture; + * wis::DataFormat format; + * std::uint32_t subresource; + * }; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VKVideoDecodeOutputDesc { + * wis::VKTextureView output_texture; + * wis::DataFormat format; + * std::uint32_t subresource; + * }; + * + * // Provided by Wisdom 0.7.1. + * struct DX12VideoDecodeOutputDesc { + * wis::DX12TextureView output_texture; + * wis::DataFormat format; + * std::uint32_t subresource; + * }; + * } + * ``` + *
+ * \endcond + * + * @section WisVideoDecodeOutputDesc_memb Members + *
+ * \cond WIS_GEN_DESC + * - `output_texture` The texture that will receive the decoded video frame. + * - `format` The data format of the output texture. + * - `subresource` The subresource index of the texture to decode into. + * \endcond + * + * @section WisVideoDecodeOutputDesc_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoDecodeOutputDesc_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisVideoDecodeCommandListDecodeFrame + * \endcond + */ diff --git a/docs/video/struct/video_decode_parameter_desc_struct.h b/docs/video/struct/video_decode_parameter_desc_struct.h new file mode 100644 index 000000000..05c73e432 --- /dev/null +++ b/docs/video/struct/video_decode_parameter_desc_struct.h @@ -0,0 +1,53 @@ +/** + * @struct WisVideoDecodeParameterDesc + * @ingroup Structures Video + * + * + * @section WisVideoDecodeParameterDesc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoDecodeParameterDesc { + * WisStdCodecProfile codec; + * const WisVideoDecodeAV1Desc* av1; + * const WisVideoDecodeH265Desc* h265; + * } WisVideoDecodeParameterDesc; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoDecodeParameterDesc { + * wis::StdCodecProfile codec; + * const wis::VideoDecodeAV1Desc* av1; + * const wis::VideoDecodeH265Desc* h265; + * }; + * } + * ``` + * \endcond + * + * @section WisVideoDecodeParameterDesc_memb Members + *
+ * \cond WIS_GEN_DESC + * - `codec` Codec type selector. Determines which parameter set is valid. + * - `av1` AV1 decoder parameters (valid when codec is an AV1 profile). + * - `h265` H.265 decoder parameters (valid when codec is an H.265 profile). + * \endcond + * + * @section WisVideoDecodeParameterDesc_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoDecodeParameterDesc_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisVideoDecodingExtensionCreateParameters + * \endcond + */ diff --git a/docs/video/struct/video_decode_parameters_struct.h b/docs/video/struct/video_decode_parameters_struct.h new file mode 100644 index 000000000..0a3c307d9 --- /dev/null +++ b/docs/video/struct/video_decode_parameters_struct.h @@ -0,0 +1,53 @@ +/** + * @struct WisVideoDecodeParameters + * @ingroup Structures Video + * + * + * @section WisVideoDecodeParameters_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoDecodeParameters { + * WisStdCodecProfile codec; + * const WisVideoDecodeAV1Parameters* av1; + * const WisVideoDecodeH265Parameters* h265; + * } WisVideoDecodeParameters; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoDecodeParameters { + * wis::StdCodecProfile codec; + * const wis::VideoDecodeAV1Parameters* av1; + * const wis::VideoDecodeH265Parameters* h265; + * }; + * } + * ``` + * \endcond + * + * @section WisVideoDecodeParameters_memb Members + *
+ * \cond WIS_GEN_DESC + * - `codec` Codec type selector. Determines which parameter set is valid. + * - `av1` AV1 decoder parameters (valid when codec is an AV1 profile). + * - `h265` H.265 decoder parameters (valid when codec is an H.265 profile). + * \endcond + * + * @section WisVideoDecodeParameters_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoDecodeParameters_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisVideoDecodingExtensionCreateParameters + * \endcond + */ diff --git a/docs/video/struct/video_decode_picture_desc_struct.h b/docs/video/struct/video_decode_picture_desc_struct.h new file mode 100644 index 000000000..2825df65f --- /dev/null +++ b/docs/video/struct/video_decode_picture_desc_struct.h @@ -0,0 +1,112 @@ +/** + * @struct WisVideoDecodePictureDesc + * @ingroup Structures Video + * + * + * @section WisVideoDecodePictureDesc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoDecodePictureDesc { + * WisStdCodecProfile codec; + * const WisStdVideoDecodeAV1PictureInfo* av1_picture_info; + * const WisStdVideoDecodeH265PictureInfo* h265_picture_info; + * const WisStdVideoDecodeAV1ReferenceInfo* av1_reference_info; + * const WisStdVideoDecodeH265ReferenceInfo* h265_reference_info; + * uint32_t reference_frame_count; + * } WisVideoDecodePictureDesc; + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVKVideoDecodePictureDesc { + * WisStdCodecProfile codec; + * const WisStdVideoDecodeAV1PictureInfo* av1_picture_info; + * const WisStdVideoDecodeH265PictureInfo* h265_picture_info; + * const WisStdVideoDecodeAV1ReferenceInfo* av1_reference_info; + * const WisStdVideoDecodeH265ReferenceInfo* h265_reference_info; + * uint32_t reference_frame_count; + * } WisVKVideoDecodePictureDesc; + * + * // Provided by Wisdom 0.7.1. + * typedef struct WisDX12VideoDecodePictureDesc { + * WisStdCodecProfile codec; + * const WisStdVideoDecodeAV1PictureInfo* av1_picture_info; + * const WisStdVideoDecodeH265PictureInfo* h265_picture_info; + * const WisStdVideoDecodeAV1ReferenceInfo* av1_reference_info; + * const WisStdVideoDecodeH265ReferenceInfo* h265_reference_info; + * uint32_t reference_frame_count; + * } WisDX12VideoDecodePictureDesc; + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoDecodePictureDesc { + * wis::StdCodecProfile codec; + * const wis::StdVideoDecodeAV1PictureInfo* av1_picture_info; + * const wis::StdVideoDecodeH265PictureInfo* h265_picture_info; + * const wis::StdVideoDecodeAV1ReferenceInfo* av1_reference_info; + * const wis::StdVideoDecodeH265ReferenceInfo* h265_reference_info; + * std::uint32_t reference_frame_count; + * }; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VKVideoDecodePictureDesc { + * wis::StdCodecProfile codec; + * const wis::StdVideoDecodeAV1PictureInfo* av1_picture_info; + * const wis::StdVideoDecodeH265PictureInfo* h265_picture_info; + * const wis::StdVideoDecodeAV1ReferenceInfo* av1_reference_info; + * const wis::StdVideoDecodeH265ReferenceInfo* h265_reference_info; + * std::uint32_t reference_frame_count; + * }; + * + * // Provided by Wisdom 0.7.1. + * struct DX12VideoDecodePictureDesc { + * wis::StdCodecProfile codec; + * const wis::StdVideoDecodeAV1PictureInfo* av1_picture_info; + * const wis::StdVideoDecodeH265PictureInfo* h265_picture_info; + * const wis::StdVideoDecodeAV1ReferenceInfo* av1_reference_info; + * const wis::StdVideoDecodeH265ReferenceInfo* h265_reference_info; + * std::uint32_t reference_frame_count; + * }; + * } + * ``` + *
+ * \endcond + * + * @section WisVideoDecodePictureDesc_memb Members + *
+ * \cond WIS_GEN_DESC + * - `codec` The codec profile of the current frame. Determines which picture info struct is valid. + * - `av1_picture_info` AV1 picture information (valid when codec is an AV1 profile). + * - `h265_picture_info` H.265 picture information (valid when codec is an H.265 profile). + * - `av1_reference_info` AV1 reference information array (valid when codec is an AV1 profile). + * - `h265_reference_info` H.265 reference information array (valid when codec is an H.265 profile). + * - `reference_frame_count` Number of reference frames for this decode operation. + * \endcond + * + * @section WisVideoDecodePictureDesc_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoDecodePictureDesc_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisVideoDecodeCommandListDecodeFrame + * \endcond + */ diff --git a/docs/video/struct/video_decoder_desc_struct.h b/docs/video/struct/video_decoder_desc_struct.h new file mode 100644 index 000000000..e3c5a6686 --- /dev/null +++ b/docs/video/struct/video_decoder_desc_struct.h @@ -0,0 +1,63 @@ +/** + * @struct WisVideoDecoderDesc + * @ingroup Structures Video + * + * + * @section WisVideoDecoderDesc_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C version: + * ```c + * // Provided by Wisdom 0.7.1. + * typedef struct WisVideoDecoderDesc { + * uint32_t width; + * uint32_t height; + * WisDataFormat image_format; + * WisStdCodecProfile codec_profile; + * uint32_t decode_picture_buffer_count; + * } WisVideoDecoderDesc; + * + * ``` + * C++ version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * struct VideoDecoderDesc { + * std::uint32_t width; + * std::uint32_t height; + * wis::DataFormat image_format; + * wis::StdCodecProfile codec_profile; + * std::uint32_t decode_picture_buffer_count; + * }; + * } + * ``` + * \endcond + * + * @section WisVideoDecoderDesc_memb Members + *
+ * \cond WIS_GEN_DESC + * - `width` Width of the video frame in pixels. + * - `height` Height of the video frame in pixels. + * - `image_format` The data format of the output video frames. This field specifies the expected format of the decoded + * video frames that will be produced by the video decoder, and can influence the supported bit depths and chroma + * subsampling formats. + * - `codec_profile` The video codec profile that the decoder will use for decoding. This field specifies the profile of + * the video codec that the decoder will use for decoding video frames, and can influence the supported bit depths and + * chroma subsampling formats. + * - `decode_picture_buffer_count` The number of decode buffers that the decoder will use for decoding video frames. + * \endcond + * + * @section WisVideoDecoderDesc_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section WisVideoDecoderDesc_see_also See Also + *
+ * \cond WIS_GEN_REFS + * @see Functions: + * wisVideoDecodingExtensionCreateDecoder + * \endcond + */ diff --git a/docs/wisdom/enum/buffer_usage_flags_enum.h b/docs/wisdom/enum/buffer_usage_flags_enum.h index 4b70b0645..e1597323c 100644 --- a/docs/wisdom/enum/buffer_usage_flags_enum.h +++ b/docs/wisdom/enum/buffer_usage_flags_enum.h @@ -21,6 +21,8 @@ * WisBufferUsageFlagsAccelerationStructureBuffer = (1u << 7), * WisBufferUsageFlagsAccelerationStructureInput = (1u << 8), * WisBufferUsageFlagsShaderBindingTable = (1u << 9), + * WisBufferUsageFlagsVideoDecodeDst = (1u << 10), + * WisBufferUsageFlagsVideoDecodeSrc = (1u << 11), * } WisBufferUsageFlags; * ``` * C++ version: @@ -39,6 +41,8 @@ * AccelerationStructureBuffer = (1u << 7), * AccelerationStructureInput = (1u << 8), * ShaderBindingTable = (1u << 9), + * VideoDecodeDst = (1u << 10), + * VideoDecodeSrc = (1u << 11), * }; * } * ``` @@ -65,6 +69,8 @@ * - `WisBufferUsageFlagsAccelerationStructureInput = (1 << 8)`: Buffer is used as a read only acceleration instance * input buffer. * - `WisBufferUsageFlagsShaderBindingTable = (1 << 9)`: Buffer is used as a shader binding table buffer. + * - `WisBufferUsageFlagsVideoDecodeDst = (1 << 10)`: Buffer is used as an output of the video decoding operation. + * - `WisBufferUsageFlagsVideoDecodeSrc = (1 << 11)`: Buffer is used as an input of the video decoding operation. * \endcond * * diff --git a/docs/wisdom/enum/data_format_enum.h b/docs/wisdom/enum/data_format_enum.h index cba9e183e..15301c358 100644 --- a/docs/wisdom/enum/data_format_enum.h +++ b/docs/wisdom/enum/data_format_enum.h @@ -78,6 +78,10 @@ * WisDataFormatBC7RGBAUnorm = 98, * WisDataFormatBC7RGBAUnormSrgb = 99, * WisDataFormatBGRA4Unorm = 115, + * // Provided by Wisdom 0.7.1. WisDataFormatNV12 = 256, + * // Provided by Wisdom 0.7.1. WisDataFormatP010 = 257, + * // Provided by Wisdom 0.7.1. WisDataFormatP012 = 258, + * // Provided by Wisdom 0.7.1. WisDataFormatP016 = 259, * } WisDataFormat; * ``` * C++ version: @@ -153,6 +157,10 @@ * BC7RGBAUnorm = 98, * BC7RGBAUnormSrgb = 99, * BGRA4Unorm = 115, + * // Provided by Wisdom 0.7.1. NV12 = 256, + * // Provided by Wisdom 0.7.1. P010 = 257, + * // Provided by Wisdom 0.7.1. P012 = 258, + * // Provided by Wisdom 0.7.1. P016 = 259, * }; * } * ``` @@ -472,6 +480,23 @@ * a 4-bit G component in bits 4..7, * a 4-bit R component in bits 8..11, * a 4-bit A component in bits 12..15. + * - `WisDataFormatNV12 = 256`: NV12 video format. + * A two-plane format with a single 8-bit Y plane followed by an interleaved UV plane, where the U and V components are + * subsampled by a factor of 2 in both dimensions. The Y plane contains the luma (brightness) information, while the UV + * plane contains the chroma (color) information. This format is commonly used for video encoding and decoding + * applications. + * - `WisDataFormatP010 = 257`: P010 video format. + * A two-plane format similar to NV12, but with 10 bits per channel instead of 8. The Y plane contains 10-bit luma + * information, and the UV plane contains interleaved 10-bit chroma information. This format is used for high-quality + * video encoding and decoding, providing improved color fidelity compared to NV12. + * - `WisDataFormatP012 = 258`: P012 video format. + * A two-plane format similar to P010, but with 12 bits per channel instead of 10. The Y plane contains 12-bit luma + * information, and the UV plane contains interleaved 12-bit chroma information. This format is used for professional + * video applications that require higher color fidelity and dynamic range than P010. + * - `WisDataFormatP016 = 259`: P016 video format. + * A two-plane format similar to P010, but with 16 bits per channel instead of 10. The Y plane contains 16-bit luma + * information, and the UV plane contains interleaved 16-bit chroma information. This format is used for professional + * video applications that require the highest color fidelity and dynamic range. * \endcond * * diff --git a/docs/wisdom/enum/texture_state_enum.h b/docs/wisdom/enum/texture_state_enum.h index 2ccfd8baf..8a3ed01c2 100644 --- a/docs/wisdom/enum/texture_state_enum.h +++ b/docs/wisdom/enum/texture_state_enum.h @@ -28,6 +28,7 @@ * WisTextureStateVideoDecodeWrite = 14, * WisTextureStateResolveDepthStensilDst = 15, * WisTextureStateResolveRenderTargetDst = 16, + * WisTextureStateVideoDecodeDPB = 17, * } WisTextureState; * ``` * C++ version: @@ -53,6 +54,7 @@ * VideoDecodeWrite = 14, * ResolveDepthStensilDst = 15, * ResolveRenderTargetDst = 16, + * VideoDecodeDPB = 17, * }; * } * ``` @@ -85,6 +87,8 @@ * - `WisTextureStateVideoDecodeWrite = 14`: Video Decode Write state. * - `WisTextureStateResolveDepthStensilDst = 15`: Depth Stencil Resolve Destination state. * - `WisTextureStateResolveRenderTargetDst = 16`: Render Target Resolve Destination state. + * - `WisTextureStateVideoDecodeDPB = 17`: Video Decode DPB (Decoded Picture Buffer) state. Used for reference frame + * storage during video decoding. Vulkan only, maps to the same video decode read on other APIs. * \endcond * * diff --git a/docs/wisdom/enum/texture_usage_flags_enum.h b/docs/wisdom/enum/texture_usage_flags_enum.h index 2399836b8..10ea52408 100644 --- a/docs/wisdom/enum/texture_usage_flags_enum.h +++ b/docs/wisdom/enum/texture_usage_flags_enum.h @@ -18,6 +18,9 @@ * WisTextureUsageFlagsShaderResource = (1u << 4), * WisTextureUsageFlagsUnorderedAccess = (1u << 5), * WisTextureUsageFlagsHostCopy = (1u << 7), + * WisTextureUsageFlagsVideoDecodeDst = (1u << 6), + * WisTextureUsageFlagsVideoDecodeSrc = (1u << 8), + * WisTextureUsageFlagsVideoDecodeDpb = (1u << 9), * } WisTextureUsageFlags; * ``` * C++ version: @@ -33,6 +36,9 @@ * ShaderResource = (1u << 4), * UnorderedAccess = (1u << 5), * HostCopy = (1u << 7), + * VideoDecodeDst = (1u << 6), + * VideoDecodeSrc = (1u << 8), + * VideoDecodeDpb = (1u << 9), * }; * } * ``` @@ -55,6 +61,9 @@ * - `WisTextureUsageFlagsShaderResource = (1 << 4)`: Texture is used as a shader resource. * - `WisTextureUsageFlagsUnorderedAccess = (1 << 5)`: Texture is used as an unordered access resource. * - `WisTextureUsageFlagsHostCopy = (1 << 7)`: Texture is used for host copy operations. Works with GPUUpload heap. + * - `WisTextureUsageFlagsVideoDecodeDst = (1 << 6)`: Texture is used as a destination for video decode operations. + * - `WisTextureUsageFlagsVideoDecodeSrc = (1 << 8)`: Texture is used as a source for video decode operations. + * - `WisTextureUsageFlagsVideoDecodeDpb = (1 << 9)`: Texture is used as a DPB storage for video decode. * \endcond * * diff --git a/docs/wisdom/enum/view_heap_flags_enum.h b/docs/wisdom/enum/view_heap_flags_enum.h index 2714ce0ae..fe7c24af7 100644 --- a/docs/wisdom/enum/view_heap_flags_enum.h +++ b/docs/wisdom/enum/view_heap_flags_enum.h @@ -12,6 +12,7 @@ * typedef enum WisViewHeapFlags { * WisViewHeapFlagsNone = 0, * WisViewHeapFlagsAllowMultisample = (1u << 0), + * WisViewHeapFlagsAllowVideoTargets = (1u << 0), * } WisViewHeapFlags; * ``` * C++ version: @@ -21,6 +22,7 @@ * enum class ViewHeapFlags : uint32_t { * None = 0, * AllowMultisample = (1u << 0), + * AllowVideoTargets = (1u << 0), * }; * } * ``` @@ -37,6 +39,8 @@ * - `WisViewHeapFlagsNone = 0`: No flags set. View heap is regular. * - `WisViewHeapFlagsAllowMultisample = (1 << 0)`: Allows the view heap to be used with multisampled resources. If not * set, the view heap does not enable multisample-related usage. + * - `WisViewHeapFlagsAllowVideoTargets = (1 << 0)`: Allows the view heap to be used with video targets. If not set, the + * view heap does not enable video target-related usage. * \endcond * * diff --git a/docs/wisdom/func/view_heap_write_video_decode_target_function.h b/docs/wisdom/func/view_heap_write_video_decode_target_function.h new file mode 100644 index 000000000..e37f37320 --- /dev/null +++ b/docs/wisdom/func/view_heap_write_video_decode_target_function.h @@ -0,0 +1,83 @@ +/** + * @struct wisViewHeapWriteVideoDecodeTarget + * @ingroup Functions Core + * + * + * @section wisViewHeapWriteVideoDecodeTarget_spec Specification + *
+ * + * \cond WIS_GEN_CODE + * C Version: + * ```c + * // Provided by Wisdom 0.7.1. + * uint64_t wisViewHeapWriteVideoDecodeTarget(const WisViewHeap* self, + * const WisTexture* texture, + * const WisRenderTargetDesc* render_target, + * uint32_t index); + * ``` + *
+ * C Implementation Specific Version: + * ```c + * // Provided by Wisdom 0.7.1. + * uint64_t wisVKViewHeapWriteVideoDecodeTarget(const WisVKViewHeap* self, + * const WisVKTexture* texture, + * const WisRenderTargetDesc* render_target, + * uint32_t index); + * + * // Provided by Wisdom 0.7.1. + * uint64_t wisDX12ViewHeapWriteVideoDecodeTarget(const WisDX12ViewHeap* self, + * const WisDX12Texture* texture, + * const WisRenderTargetDesc* render_target, + * uint32_t index); + * ``` + *
+ * + * C++ Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD std::uint64_t ViewHeap::WriteVideoDecodeTarget(const wis::Texture& texture, + * const wis::RenderTargetDesc& render_target, + * std::uint32_t index) const noexcept; + * } + * ``` + *
+ * C++ Implementation Specific Version: + * ```cpp + * namespace wis{ + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD std::uint64_t VKViewHeap::WriteVideoDecodeTarget(const wis::VKTexture& texture, + * const wis::RenderTargetDesc& render_target, + * std::uint32_t index) const noexcept; + * + * // Provided by Wisdom 0.7.1. + * WIS_NODISCARD std::uint64_t DX12ViewHeap::WriteVideoDecodeTarget(const wis::DX12Texture& texture, + * const wis::RenderTargetDesc& render_target, + * std::uint32_t index) const noexcept; + * } + * ``` + *
+ * \endcond + * + * @section wisViewHeapWriteVideoDecodeTarget_memb Parameters + *
+ * \cond WIS_GEN_DESC + * - **this** `self` self is a pointer to the valid WisViewHeap instance. + * - `texture` describes a pointer to WisTexture to write the view for. + * - `render_target` specifies a pointer to WisRenderTargetDesc, which describes the texture view to write. + * - `index` defines the index in the view heap to write the view to. + * + * - **return** CPU descriptor handle for the view heap. + * \endcond + * + * @section wisViewHeapWriteVideoDecodeTarget_descr Description + *
+ * + * \cond WIS_GEN_WIS_IDS + * \endcond + * + * @section wisViewHeapWriteVideoDecodeTarget_see_also See Also + *
+ * \cond WIS_GEN_REFS + * \endcond + */ diff --git a/docs/wisdom/handle/buffer_handle.h b/docs/wisdom/handle/buffer_handle.h index 5ae95a618..c656c74d5 100644 --- a/docs/wisdom/handle/buffer_handle.h +++ b/docs/wisdom/handle/buffer_handle.h @@ -10,7 +10,7 @@ * Vulkan Version: * ```c * // Provided by Wisdom 0.7.0. - * WIS_DEFINE_HANDLE(WisVKBuffer,5); + * WIS_DEFINE_HANDLE(WisVKBuffer,4); * WIS_DEFINE_HANDLE_VIEW(WisVKBuffer,1); * ``` * DX12 Version: diff --git a/docs/wisdom/handle/texture_handle.h b/docs/wisdom/handle/texture_handle.h index e3c7fbc5f..e31fcb262 100644 --- a/docs/wisdom/handle/texture_handle.h +++ b/docs/wisdom/handle/texture_handle.h @@ -26,6 +26,6 @@ * \cond WIS_GEN_REFS * @see Functions: * wisDestroyTexture, wisResourceAllocatorCreateTexture, wisTextureWriteSubresource, wisViewHeapWriteRenderTarget, - * wisViewHeapWriteDepthStencil, wisSwapchainGetTextures + * wisViewHeapWriteDepthStencil, wisViewHeapWriteVideoDecodeTarget, wisSwapchainGetTextures * \endcond */ diff --git a/docs/wisdom/handle/view_heap_handle.h b/docs/wisdom/handle/view_heap_handle.h index 052edb0cb..d4f119cb5 100644 --- a/docs/wisdom/handle/view_heap_handle.h +++ b/docs/wisdom/handle/view_heap_handle.h @@ -24,6 +24,6 @@ * \cond WIS_GEN_REFS * @see Functions: * wisDestroyViewHeap, wisDeviceCreateViewHeap, wisViewHeapWriteRenderTarget, wisViewHeapWriteDepthStencil, - * wisViewHeapGetViewAddress, wisViewHeapCopyViews, wisViewHeapGetCPUHandle + * wisViewHeapWriteVideoDecodeTarget, wisViewHeapGetViewAddress, wisViewHeapCopyViews, wisViewHeapGetCPUHandle * \endcond */ diff --git a/docs/wisdom/struct/render_target_desc_struct.h b/docs/wisdom/struct/render_target_desc_struct.h index e46eb7492..5b4d40270 100644 --- a/docs/wisdom/struct/render_target_desc_struct.h +++ b/docs/wisdom/struct/render_target_desc_struct.h @@ -59,6 +59,6 @@ *
* \cond WIS_GEN_REFS * @see Functions: - * wisViewHeapWriteRenderTarget, wisViewHeapWriteDepthStencil + * wisViewHeapWriteRenderTarget, wisViewHeapWriteDepthStencil, wisViewHeapWriteVideoDecodeTarget * \endcond */ diff --git a/docs/wisdom/struct/texture_desc_struct.h b/docs/wisdom/struct/texture_desc_struct.h index debe86545..e992f3acd 100644 --- a/docs/wisdom/struct/texture_desc_struct.h +++ b/docs/wisdom/struct/texture_desc_struct.h @@ -22,6 +22,8 @@ * WisTextureFlags flags; * WisMemoryType memory_type; * WisMemoryFlags memory_flags; + * const WisDataFormat* cast_formats; + * size_t cast_format_count; * } WisTextureDesc; * * ``` @@ -30,17 +32,18 @@ * namespace wis{ * // Provided by Wisdom 0.7.0. * struct TextureDesc { - * std::uint32_t width; - * std::uint32_t height; - * std::uint16_t depth_or_array_size; - * std::uint16_t mip_levels; - * wis::DataFormat format; - * wis::SampleCount sample_count; - * wis::TextureLayout layout; - * wis::TextureUsageFlags usage_flags; - * wis::TextureFlags flags; - * wis::MemoryType memory_type; - * wis::MemoryFlags memory_flags; + * std::uint32_t width; + * std::uint32_t height; + * std::uint16_t depth_or_array_size; + * std::uint16_t mip_levels; + * wis::DataFormat format; + * wis::SampleCount sample_count; + * wis::TextureLayout layout; + * wis::TextureUsageFlags usage_flags; + * wis::TextureFlags flags; + * wis::MemoryType memory_type; + * wis::MemoryFlags memory_flags; + * wis::span cast_formats; * }; * } * ``` @@ -60,6 +63,9 @@ * - `flags` describes texture flags. Describe additional options for the texture. * - `memory_type` specifies where the texture will be allocated. * - `memory_flags` describes the flags of the memory to allocate for the texture. + * - `cast_formats` points to an array of formats that can be used to cast the texture to another format. Used for + * format casting in shaders. + * - `cast_format_count` defines the number of the number of cast formats in the `WisTextureDesc::cast_formats` array. * \endcond * * @section WisTextureDesc_descr Description diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index b6ed90c5f..571c122ce 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -48,7 +48,15 @@ add_custom_target( include(cmake/deps.cmake) +# Copy assets folder +add_custom_target( + copy_assets + COMMAND ${CMAKE_COMMAND} -E echo "Copying assets to example binaries..." + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/assets ${EXAMPLE_BIN_OUTPUT}/assets) + add_example_suite(backend) add_example_suite(compute_particles_c) add_example_suite(hello_triangle) add_example_suite(multisampling) +add_example_suite(video) diff --git a/examples/assets/avif_sample.avif b/examples/assets/avif_sample.avif new file mode 100644 index 000000000..2bae4c713 Binary files /dev/null and b/examples/assets/avif_sample.avif differ diff --git a/examples/assets/hevc_sample.heic b/examples/assets/hevc_sample.heic new file mode 100644 index 000000000..c1460f7c1 Binary files /dev/null and b/examples/assets/hevc_sample.heic differ diff --git a/examples/cmake/deps.cmake b/examples/cmake/deps.cmake index 4aca08d80..82715b0d4 100644 --- a/examples/cmake/deps.cmake +++ b/examples/cmake/deps.cmake @@ -7,9 +7,71 @@ CPMAddPackage( "SDL_WERROR OFF" ) -# glm -CPMAddPackage( - NAME glm - GITHUB_REPOSITORY g-truc/glm - GIT_TAG origin/master -) +if (WISDOM_BUILD_VIDEO) + # h265nal sets GCC-specific -W flags in debug mode unconditionally, + # which MSVC rejects (/Wextra -> D8021 invalid numeric argument). + # Use DOWNLOAD_ONLY to fetch the source, patch it, then add_subdirectory manually. + if(MSVC) + CPMAddPackage( + NAME h265nal + GITHUB_REPOSITORY chemag/h265nal + GIT_TAG master + DOWNLOAD_ONLY YES + OPTIONS + "BUILD_H265_TESTS OFF" + ) + + # Patch GCC debug flags -> MSVC-compatible equivalents + foreach(CMAKE_FILE + "${h265nal_SOURCE_DIR}/CMakeLists.txt" + "${h265nal_SOURCE_DIR}/src/CMakeLists.txt" + ) + file(READ "${CMAKE_FILE}" _content) + string(REPLACE + "-g -O0 -Wall -Wextra -Wunused-parameter -Wshadow -Wformat -Wextra-semi -Wsign-conversion -Werror" + "/Od /W3" + _content "${_content}" + ) + string(REPLACE + "option(H265NAL_SMALL_FOOTPRINT, \"xmall footprint build\")" + "option(H265NAL_SMALL_FOOTPRINT \"small footprint build\")" + _content "${_content}" + ) + file(WRITE "${CMAKE_FILE}" "${_content}") + endforeach() + + set(BUILD_H265_TESTS OFF) + add_subdirectory("${h265nal_SOURCE_DIR}" "${h265nal_BINARY_DIR}") + else() + CPMAddPackage( + NAME h265nal + GITHUB_REPOSITORY chemag/h265nal + GIT_TAG master + DOWNLOAD_ONLY YES + OPTIONS + "BUILD_H265_TESTS OFF" + ) + + # Patch debug flags (same as MSVC patch but for clang on Windows) + foreach(CMAKE_FILE + "${h265nal_SOURCE_DIR}/CMakeLists.txt" + "${h265nal_SOURCE_DIR}/src/CMakeLists.txt" + ) + file(READ "${CMAKE_FILE}" _content) + string(REPLACE + "-g -O0 -Wall -Wextra -Wunused-parameter -Wshadow -Wformat -Wextra-semi -Wsign-conversion -Werror" + "-g -O0 -Wall -Wextra -Wunused-parameter -Wshadow -Wformat -Wextra-semi -Wsign-conversion -Werror -Wno-deprecated-declarations" + _content "${_content}" + ) + string(REPLACE + "option(H265NAL_SMALL_FOOTPRINT, \"xmall footprint build\")" + "option(H265NAL_SMALL_FOOTPRINT \"small footprint build\")" + _content "${_content}" + ) + file(WRITE "${CMAKE_FILE}" "${_content}") + endforeach() + + set(BUILD_H265_TESTS OFF) + add_subdirectory("${h265nal_SOURCE_DIR}" "${h265nal_BINARY_DIR}") + endif() +endif() diff --git a/examples/shaders/fullscreen.vs.hlsl b/examples/shaders/fullscreen.vs.hlsl new file mode 100644 index 000000000..ddb82e55d --- /dev/null +++ b/examples/shaders/fullscreen.vs.hlsl @@ -0,0 +1,12 @@ +struct VSQuadOut +{ + float2 texcoord : TexCoord; + float4 position : SV_Position; +}; +VSQuadOut main(uint VertexID : SV_VertexID) +{ // ouputs a full screen quad with tex coords + VSQuadOut Out; + Out.texcoord = float2((VertexID << 1) & 2, VertexID & 2); + Out.position = float4(Out.texcoord * float2(2.0f, -2.0f) + float2(-1.0f, 1.0f), 0.0f, 1.0f); + return Out; +} diff --git a/examples/shaders/video.ps.hlsl b/examples/shaders/video.ps.hlsl new file mode 100644 index 000000000..4c86c60b9 --- /dev/null +++ b/examples/shaders/video.ps.hlsl @@ -0,0 +1,31 @@ +struct PSQuadIn +{ + float2 texcoord : TEXCOORD; + float4 position : SV_POSITION; +}; + +Texture2D yTexture : register(t0); +Texture2D uvTexture : register(t1); +SamplerState sampler_tex : register(s0); + +float4 main(PSQuadIn ps_in) + : SV_TARGET0 +{ + // Sample Y and UV components + float y = yTexture.Sample(sampler_tex, ps_in.texcoord).r; + float2 uv = uvTexture.Sample(sampler_tex, ps_in.texcoord).rg; + + // Convert YUV to RGB using BT.709 coefficients + // Normalize Y from [16/255, 235/255] to [0, 1] for limited range + y = (y - 16.0 / 255.0) * (255.0 / (235.0 - 16.0)); + + // Normalize UV from [16/255, 240/255] to [-0.5, 0.5] for limited range + uv = (uv - 128.0 / 255.0); + + float3 color; + color.r = y + 1.5748 * uv.y; // V component + color.g = y - 0.1873 * uv.x - 0.4681 * uv.y; // U and V components + color.b = y + 2.03211 * uv.x; // U component + + return float4(saturate(color), 1.0); +} \ No newline at end of file diff --git a/examples/video/CMakeLists.txt b/examples/video/CMakeLists.txt new file mode 100644 index 000000000..7b1d7fe40 --- /dev/null +++ b/examples/video/CMakeLists.txt @@ -0,0 +1,17 @@ +project(video-${POSTFIX}) + +set(CPP_SOURCES entry_main.cpp app.cpp graphics.cpp) + +add_executable(${PROJECT_NAME}-cpp ${CPP_SOURCES}) +target_link_libraries( + ${PROJECT_NAME}-cpp PUBLIC wis::wisdom-headers wis::wisdom-platform-headers wis::wisdom-video-headers + SDL3::SDL3 h265nal example_backend_cpp-${POSTFIX}) +set_target_properties( + ${PROJECT_NAME}-cpp PROPERTIES CXX_STANDARD 23 RUNTIME_OUTPUT_DIRECTORY + ${EXAMPLE_BIN_OUTPUT}) +target_compile_definitions(${PROJECT_NAME}-cpp PUBLIC ${ADD_DEFINITIONS}) +add_dependencies(${PROJECT_NAME}-cpp copy_sdl wis_test_compile_shaders copy_assets) + +if(POSTFIX STREQUAL "dx12" AND WISDOM_USE_AGILITY_SDK) + wis_install_agility_win32(TARGET ${PROJECT_NAME}-cpp PATCH_EXE) +endif() diff --git a/examples/video/app.cpp b/examples/video/app.cpp new file mode 100644 index 000000000..72b15ae76 --- /dev/null +++ b/examples/video/app.cpp @@ -0,0 +1,566 @@ +#include "app.hpp" +#include "h265_bitstream_parser.h" +#include "h265_common.h" +#include "h265_configuration_box_parser.h" +#include "h265_nal_unit_parser.h" +#include "mbmff.hpp" + +#include