.. Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. NVIDIA CORPORATION and its licensors retain all intellectual property and proprietary rights in and to this software, related documentation and any modifications thereto. Any use, reproduction, disclosure or distribution of this software and related documentation without an express license agreement from NVIDIA CORPORATION is strictly prohibited. .. _VideoDecoderExtension: VideoDecoderExtension --------------------- NVIDIA GXF component for H.264 video decode. The video Decoder GXF extension is based on V4L2 APIs. It uses the hardware video Decode engine on the platform by interfacing with V4L2 APIs. It gives out decoded yuv frame. This extension is supported on Tegra and dGPU platforms. For x86+dGPU, the extension has a dependency on DeepStream. Please install nvidia DeepStream SDK (version 6.3) before running pipelines for x86+dGPU. * UUID: edc99001-73bd-435c-af0c-e013dcda3439 * Version: 1.0.0 * Author: NVIDIA * License: Proprietary Components ~~~~~~~~~~~~ This extension is implemented using three components: :code:`VideoDecoderRequest`, :code:`VideoDecoderResponse` and :code:`VideoDecoderContext` nvidia::gxf::VideoDecoderRequest ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This codelet starts H.264 video decoding process by queueing the input buffer. * Component ID: 39c030763a42-4927-9960-0072b4e1bc69 * Base Type: nvidia::gxf::Codelet Parameters ++++++++++++ **input_frame** Receiver to get the input data(receive compressed data) * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_HANDLE * Handle Type: nvidia::gxf::Receiver | **inbuf_storage_type** Input buffer storage type Valid values: 0: Host memory 1: Device memory * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_UINT32 * Default: 1 | **videodecoder_context** Handle to video decoder context component * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_HANDLE * Handle Type: gxf::Handle | **scheduling_term** Handle to async scheduling term to get/set event state for VideoDecoderResponse codelet. * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_HANDLE * Handle Type: gxf::Handle | **codec** Video codec to be used, only H.264 supported. Valid values: 0: H.264 codec * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_UINT32 * Default: 0 | **disableDPB** Enable low latency decode, works only for IPPP case * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_UINT32 * Default: 0 | **output_format** Output frame video format * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_STRING Valid values: nv12: NV12(YUV420, 2 planes: Y, UV interleaved) pitch linear format yuv420planar: YUV420 planar(3 planes:Y,U,V) pitch linear format nvidia::gxf::VideoDecoderResponse ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This codelet completes the video decoding process by publishing decoded YUV buffer. * Component ID: 6cc164db5db4-431e-8b63a45ea1e7-b8a6 * Base Type: nvidia::gxf::Codelet Parameters ++++++++++++ **output_transmitter** Transmitter to publish the output yuv data(video buffer) * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_HANDLE * Handle Type: nvidia::gxf::Transmitter | **pool** Memory pool for allocating output data. * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_HANDLE * Handle Type: nvidia::gxf::Allocator | **outbuf_storage_type** Output buffer storage type Valid values: 0: Host memory 1: Device memory * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_INT32 * Default: 1 | **videodecoder_context** Handle to video decoder context component * Flags: GXF_PARAMETER_FLAGS_NONE * Type: GXF_PARAMETER_TYPE_HANDLE * Handle Type: gxf::Handle nvidia::gxf::VideoDecoderContext ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Component that implements the Video Decoder context * Component ID: c69e604d9f1d-425e-ad5f121a7e9d-3456 * Base Type: nvidia::gxf::Component Parameters ++++++++++++ None