v4l2codecs: Add Rockchip 8bit/10bit 422 formats

This enable NV16 and NV16_10LE40 formats. These formats are
produced by notably rkvdec driver.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612>
This commit is contained in:
Nicolas Dufresne 2023-11-06 15:19:33 -05:00 committed by GStreamer Marge Bot
parent 239c0eb5f8
commit cb67f760f0
3 changed files with 7 additions and 5 deletions

View File

@ -30,10 +30,6 @@ GST_DEBUG_CATEGORY_EXTERN (gstv4l2codecs_debug);
#define V4L2_PIX_FMT_NC12 v4l2_fourcc('N', 'C', '1', '2') /* Y/CbCr 4:2:0 (128b cols) */
#endif
#ifndef V4L2_PIX_FMT_NV15
#define V4L2_PIX_FMT_NV15 v4l2_fourcc('N', 'V', '1', '5') /* 15 Y/CbCr 4:2:0 10-bit packed */
#endif
typedef struct
{
guint32 v4l2_pix_fmt;
@ -46,6 +42,8 @@ typedef struct
/* *INDENT-OFF* */
/* Keep the same order as GST_V4L2_DEFAULT_VIDEO_FORMATS */
static const GstV4l2FormatDesc gst_v4l2_descriptions[] = {
{V4L2_PIX_FMT_NV20, GST_VIDEO_FORMAT_NV16_10LE40, DRM_FORMAT_INVALID, DRM_FORMAT_MOD_INVALID, 0},
{V4L2_PIX_FMT_NV16, GST_VIDEO_FORMAT_NV16, DRM_FORMAT_INVALID, DRM_FORMAT_MOD_INVALID, 0},
{V4L2_PIX_FMT_MT2110R, GST_VIDEO_FORMAT_MT2110R, DRM_FORMAT_INVALID, DRM_FORMAT_MOD_INVALID, 0},
{V4L2_PIX_FMT_MT2110T, GST_VIDEO_FORMAT_MT2110T, DRM_FORMAT_INVALID, DRM_FORMAT_MOD_INVALID, 0},
{V4L2_PIX_FMT_NV15_4L4, GST_VIDEO_FORMAT_NV12_10LE40_4L4, DRM_FORMAT_INVALID, DRM_FORMAT_MOD_INVALID, 0},

View File

@ -28,6 +28,8 @@
* and prefering bandwidth over alignment (NV12_10LE40 over P010_LE).
*/
#define GST_V4L2_DEFAULT_VIDEO_FORMATS "{ " \
"NV16_10LE40, " \
"NV16, " \
"MT2110R, " \
"MT2110T, " \
"NV12_10LE40_4L4, " \

View File

@ -611,8 +611,10 @@ struct v4l2_pix_format {
/* two planes -- one Y, one Cr + Cb interleaved */
#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */
#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */
#define V4L2_PIX_FMT_NV15 v4l2_fourcc('N', 'V', '1', '5') /* 15 Y/CbCr 4:2:0 10-bit packed */
#define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */
#define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */
#define V4L2_PIX_FMT_NV20 v4l2_fourcc('N', 'V', '2', '0') /* 20 Y/CbCr 4:2:2 10-bit packed */
#define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */
#define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */
#define V4L2_PIX_FMT_P010 v4l2_fourcc('P', '0', '1', '0') /* 24 Y/CbCr 4:2:0 10-bit per component */