L4T Multimedia API Reference27.1 Release |
NVIDIA Tegra V4L2 Video Decoder Description and Extensions.
The video decoder device node is "/dev/nvhost-nvdec"
.
OUTPUT PLANE | CAPTURE PLANE |
---|---|
V4L2_PIX_FMT_H264 | V4L2_PIX_FMT_NV12M |
V4L2_PIX_FMT_H265 | V4L2_PIX_FMT_NV12M |
MEMORY | OUTPUT PLANE | CAPTURE PLANE |
---|---|---|
V4L2_MEMORY_MMAP | Y | Y |
V4L2_MEMORY_DMABUF | N | N |
V4L2_MEMORY_USERPTR | N | N |
Event | Purpose |
---|---|
V4L2_EVENT_RESOLUTION_CHANGE | Resolution of the stream has changed. |
When the decoder generates a V4L2_EVENT_RESOLUTION_CHANGE
event, the application calls STREAMOFF
on the capture plane to tell the decoder to deallocate the current buffers by calling REQBUF with count zero, get the new capture plane format, and then proceed with setting up the buffers for the capture plane.
In case of decoder, the buffer format might differ from the display resolution. The application must use VIDIOC_G_CROP
to get the display resolution.
The following sequence must be followed for sending EOS and recieving EOS from the decoder.
v4l2_buffer.m.planes[0].bytesused = 0
).v4l2_buffer.m.planes[0].bytesused == 0
)Decoder supports reporting frame related metadata, including error reports and DPB info. See V4L2_CID_MPEG_VIDEO_ERROR_REPORTING
, V4L2_CID_MPEG_VIDEODEC_METADATA
and v4l2_ctrl_video_metadata
for more information.
Data Structures | |
struct | v4l2_ctrl_videodec_statusmetadata_ |
Holds the decoder error status metadata for the frame. More... | |
struct | v4l2_ctrl_videodec_refframe_metadata_ |
Holds the the frame specific metadata for a reference frame. More... | |
struct | v4l2_ctrl_videodec_currentframe_metadata_ |
Holds the the frame specific metadata for the current frame. More... | |
struct | v4l2_ctrl_videodec_dpbinfometadata_ |
Holds the decoder DPB info metadata. More... | |
struct | v4l2_ctrl_h264dec_bufmetadata_ |
Holds H.264 specific decoder metadata for the frame. More... | |
struct | v4l2_ctrl_hevcdec_bufmetadata_ |
Holds H.265 specific decoder metadata for the frame. More... | |
struct | v4l2_ctrl_videodec_outputbuf_metadata_ |
Holds the video decoder output metadata for a frame. More... | |
Macros | |
#define | V4L2_CID_MPEG_VIDEO_DISABLE_COMPLETE_FRAME_INPUT (V4L2_CID_MPEG_BASE+515) |
Control ID to indicate to the decoder that the input buffers do not contain complete buffers. More... | |
#define | V4L2_CID_MPEG_VIDEO_DISABLE_DPB (V4L2_CID_MPEG_BASE+516) |
Control ID to disable decoder DPB management. More... | |
#define | V4L2_CID_MPEG_VIDEO_ERROR_REPORTING (V4L2_CID_MPEG_BASE+517) |
Control ID to enable decoder error and metadata reporting. More... | |
#define | V4L2_CID_MPEG_VIDEO_SKIP_FRAMES (V4L2_CID_MPEG_BASE+518) |
Control ID to set the skip frames property of the decoder. More... | |
#define | V4L2_CID_MPEG_VIDEODEC_METADATA (V4L2_CID_MPEG_BASE+519) |
Control ID to get the decoder output metadata. More... | |
Enumerations | |
enum | v4l2_skip_frames_type { V4L2_SKIP_FRAMES_TYPE_NONE = 0, V4L2_SKIP_FRAMES_TYPE_NONREF = 1, V4L2_SKIP_FRAMES_TYPE_DECODE_IDR_ONLY = 2 } |
Enum v4l2_skip_frames_type, possible methods for decoder skip frames. More... | |
#define V4L2_CID_MPEG_VIDEO_DISABLE_COMPLETE_FRAME_INPUT (V4L2_CID_MPEG_BASE+515) |
Control ID to indicate to the decoder that the input buffers do not contain complete buffers.
A boolean value must be supplied with this control.
Definition at line 436 of file v4l2_nv_extensions.h.
#define V4L2_CID_MPEG_VIDEO_DISABLE_DPB (V4L2_CID_MPEG_BASE+516) |
Control ID to disable decoder DPB management.
A boolean value must be supplied with this control.
Definition at line 448 of file v4l2_nv_extensions.h.
#define V4L2_CID_MPEG_VIDEO_ERROR_REPORTING (V4L2_CID_MPEG_BASE+517) |
Control ID to enable decoder error and metadata reporting.
A boolean value must be supplied with this control.
Definition at line 458 of file v4l2_nv_extensions.h.
#define V4L2_CID_MPEG_VIDEO_SKIP_FRAMES (V4L2_CID_MPEG_BASE+518) |
Control ID to set the skip frames property of the decoder.
Decoder must be configured to skip certain types of frames. One v4l2_skip_frames_type
must be passed.
Definition at line 470 of file v4l2_nv_extensions.h.
#define V4L2_CID_MPEG_VIDEODEC_METADATA (V4L2_CID_MPEG_BASE+519) |
Control ID to get the decoder output metadata.
A pointer to a valid v4l2_ctrl_video_metadata
structure must be supplied with this control.
Definition at line 485 of file v4l2_nv_extensions.h.
typedef struct v4l2_ctrl_h264dec_bufmetadata_ v4l2_ctrl_h264dec_bufmetadata |
Holds H.264 specific decoder metadata for the frame.
typedef struct v4l2_ctrl_hevcdec_bufmetadata_ v4l2_ctrl_hevcdec_bufmetadata |
Holds H.265 specific decoder metadata for the frame.
Holds the the frame specific metadata for the current frame.
Holds the decoder DPB info metadata.
Holds the video decoder output metadata for a frame.
Holds the the frame specific metadata for a reference frame.
Holds the decoder error status metadata for the frame.
Enum v4l2_skip_frames_type, possible methods for decoder skip frames.
Enumerator | |
---|---|
V4L2_SKIP_FRAMES_TYPE_NONE |
Do not skip any frame. |
V4L2_SKIP_FRAMES_TYPE_NONREF |
Skip all non-reference frames. |
V4L2_SKIP_FRAMES_TYPE_DECODE_IDR_ONLY |
Skip all frames except IDR. |
Definition at line 900 of file v4l2_nv_extensions.h.