video: Add 10bit 422 NV16_10LE40 format
Similar to NV12_10LE40, this is a 422 variant. This format is also named NV20 (20bit per pixels) in other stack and is produced by rkvdec decoder. Co-authored-by: Sebastian Fricke <sebastian.fricke@collabora.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612>
This commit is contained in:
parent
1c8b01ccbc
commit
239c0eb5f8
@ -3068,7 +3068,7 @@ Formats are sorted by decreasing "quality", using these criteria by priority:
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</constant>
|
||||
<constant name="VIDEO_FORMATS_ALL_STR" value="A444_16BE, A444_16LE, AYUV64, ARGB64, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, Y416_LE, RGBA64_LE, ARGB64_LE, BGRA64_LE, ABGR64_LE, A422_16BE, A422_16LE, A420_16BE, A420_16LE, A444_12BE, GBRA_12BE, A444_12LE, GBRA_12LE, Y412_BE, Y412_LE, A422_12BE, A422_12LE, A420_12BE, A420_12LE, A444_10BE, GBRA_10BE, A444_10LE, GBRA_10LE, A422_10BE, A422_10LE, A420_10BE, A420_10LE, Y410, BGR10A2_LE, RGB10A2_LE, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16BE, GBR_16BE, Y444_16LE, GBR_16LE, Y216_BE, v216, Y216_LE, P016_BE, P016_LE, Y444_12BE, GBR_12BE, Y444_12LE, GBR_12LE, I422_12BE, I422_12LE, Y212_BE, Y212_LE, I420_12BE, I420_12LE, P012_BE, P012_LE, Y444_10BE, GBR_10BE, Y444_10LE, GBR_10LE, r210, I422_10BE, I422_10LE, NV16_10LE32, Y210, UYVP, v210, I420_10BE, I420_10LE, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, P010_10LE, NV12_10LE40, NV12_10LE32, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_BE, GRAY16_LE, GRAY10_LE16, GRAY10_LE32, GRAY8" c:type="GST_VIDEO_FORMATS_ALL_STR" version="1.24">
|
||||
<constant name="VIDEO_FORMATS_ALL_STR" value="A444_16BE, A444_16LE, AYUV64, ARGB64, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, Y416_LE, RGBA64_LE, ARGB64_LE, BGRA64_LE, ABGR64_LE, A422_16BE, A422_16LE, A420_16BE, A420_16LE, A444_12BE, GBRA_12BE, A444_12LE, GBRA_12LE, Y412_BE, Y412_LE, A422_12BE, A422_12LE, A420_12BE, A420_12LE, A444_10BE, GBRA_10BE, A444_10LE, GBRA_10LE, A422_10BE, A422_10LE, A420_10BE, A420_10LE, Y410, BGR10A2_LE, RGB10A2_LE, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16BE, GBR_16BE, Y444_16LE, GBR_16LE, Y216_BE, v216, Y216_LE, P016_BE, P016_LE, Y444_12BE, GBR_12BE, Y444_12LE, GBR_12LE, I422_12BE, I422_12LE, Y212_BE, Y212_LE, I420_12BE, I420_12LE, P012_BE, P012_LE, Y444_10BE, GBR_10BE, Y444_10LE, GBR_10LE, r210, I422_10BE, I422_10LE, NV16_10LE40, NV16_10LE32, Y210, UYVP, v210, I420_10BE, I420_10LE, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, P010_10LE, NV12_10LE40, NV12_10LE32, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_BE, GRAY16_LE, GRAY10_LE16, GRAY10_LE32, GRAY8" c:type="GST_VIDEO_FORMATS_ALL_STR" version="1.24">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h">Declare all video formats as a string.
|
||||
|
||||
Formats are sorted by decreasing "quality", using these criteria by priority:
|
||||
@ -3444,7 +3444,7 @@ Return the width of one tile in pixels, zero if its not an integer.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<constant name="VIDEO_FORMAT_LAST" value="139" c:type="GST_VIDEO_FORMAT_LAST" version="1.26">
|
||||
<constant name="VIDEO_FORMAT_LAST" value="140" c:type="GST_VIDEO_FORMAT_LAST" version="1.26">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h">Number of video formats in #GstVideoFormat.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h"/>
|
||||
<type name="gint" c:type="gint"/>
|
||||
@ -10742,6 +10742,9 @@ bits.</doc>
|
||||
<member name="gray10_le16" value="138" c:identifier="GST_VIDEO_FORMAT_GRAY10_LE16" version="1.26" glib:nick="gray10-le16" glib:name="GST_VIDEO_FORMAT_GRAY10_LE16">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h">10-bit grayscale, packed into 16bit words (6 bits left padding)</doc>
|
||||
</member>
|
||||
<member name="nv16_10le40" value="139" c:identifier="GST_VIDEO_FORMAT_NV16_10LE40" version="1.28" glib:nick="nv16-10le40" glib:name="GST_VIDEO_FORMAT_NV16_10LE40">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h">Fully packed variant of NV16_10LE32</doc>
|
||||
</member>
|
||||
<function name="from_fourcc" c:identifier="gst_video_format_from_fourcc">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.c">Converts a FOURCC value into the corresponding #GstVideoFormat.
|
||||
If the FOURCC cannot be represented by #GstVideoFormat,
|
||||
|
@ -188,7 +188,7 @@ gst_interlace_pattern_get_type (void)
|
||||
"v308, IYU2, Y444, NV24, " /* 8-bit 4:4:4 */ \
|
||||
"v216, I422_12BE, I422_12LE, " /* 16-bit 4:2:2 */ \
|
||||
"Y212_BE, Y212_LE, " /* 12-bit 4:2:2 */ \
|
||||
"UYVP, Y210, NV16_10LE32, v210, I422_10BE, I422_10LE, " /* 10-bit 4:2:2 */ \
|
||||
"UYVP, Y210, NV16_10LE40, NV16_10LE32, v210, I422_10BE, I422_10LE, " /* 10-bit 4:2:2 */ \
|
||||
"YUY2, UYVY, VYUY, YVYU, Y42B, NV16, NV61, " /* 8-bit 4:2:2 */ \
|
||||
"P016_BE, P016_LE, " /* 16-bit 4:2:0 */ \
|
||||
"I420_12BE, I420_12LE, P012_BE, P012_LE, " /* 12-bit 4:2:0 */ \
|
||||
|
@ -7925,6 +7925,7 @@ get_scale_format (GstVideoFormat format, gint plane)
|
||||
case GST_VIDEO_FORMAT_NV12_10LE32:
|
||||
case GST_VIDEO_FORMAT_NV16_10LE32:
|
||||
case GST_VIDEO_FORMAT_NV12_10LE40:
|
||||
case GST_VIDEO_FORMAT_NV16_10LE40:
|
||||
case GST_VIDEO_FORMAT_BGR10A2_LE:
|
||||
case GST_VIDEO_FORMAT_RGB10A2_LE:
|
||||
case GST_VIDEO_FORMAT_Y444_16BE:
|
||||
|
@ -5636,6 +5636,160 @@ pack_NV16_10LE32 (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
|
||||
}
|
||||
}
|
||||
|
||||
#define PACK_NV16_10LE40 GST_VIDEO_FORMAT_AYUV64, unpack_NV16_10LE40, 1, pack_NV16_10LE40
|
||||
static void
|
||||
unpack_NV16_10LE40 (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
|
||||
gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
|
||||
const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
|
||||
{
|
||||
gint i;
|
||||
guint16 *restrict d = dest;
|
||||
const guint8 *restrict sy = GET_PLANE_LINE (0, y);
|
||||
const guint8 *restrict suv = GET_PLANE_LINE (1, y);
|
||||
guint16 Y0 = 0, Y1 = 0, Yn = 0, Un = 0, Vn = 0;
|
||||
guint32 UV = 0;
|
||||
|
||||
for (i = 0; i < width; i++) {
|
||||
gboolean update_c = FALSE;
|
||||
|
||||
switch (i & 3) {
|
||||
case 0:
|
||||
Y0 = GST_READ_UINT16_LE (sy);
|
||||
Yn = Y0 & 0x3ff;
|
||||
sy += 2;
|
||||
|
||||
UV = GST_READ_UINT32_LE (suv);
|
||||
Un = UV & 0x3ff;
|
||||
Vn = (UV >> 10) & 0x3ff;
|
||||
suv += 4;
|
||||
|
||||
Yn <<= 6;
|
||||
Un <<= 6;
|
||||
Vn <<= 6;
|
||||
update_c = TRUE;
|
||||
break;
|
||||
case 1:
|
||||
Y1 = GST_READ_UINT16_LE (sy);
|
||||
Yn = (Y0 >> 10) | ((Y1 & 0xf) << 6);
|
||||
sy += 2;
|
||||
|
||||
Yn <<= 6;
|
||||
break;
|
||||
case 2:
|
||||
Yn = (Y1 >> 4) & 0x3ff;
|
||||
|
||||
Un = (UV >> 20) & 0x3ff;
|
||||
Vn = (UV >> 30);
|
||||
UV = GST_READ_UINT8 (suv);
|
||||
Vn |= (UV << 2);
|
||||
suv++;
|
||||
|
||||
Yn <<= 6;
|
||||
Un <<= 6;
|
||||
Vn <<= 6;
|
||||
update_c = TRUE;
|
||||
break;
|
||||
case 3:
|
||||
Y0 = GST_READ_UINT8 (sy);
|
||||
Yn = (Y1 >> 14) | (Y0 << 2);
|
||||
sy++;
|
||||
|
||||
Yn <<= 6;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
|
||||
Yn |= Yn >> 10;
|
||||
if (update_c) {
|
||||
Un |= Un >> 10;
|
||||
Vn |= Vn >> 10;
|
||||
}
|
||||
}
|
||||
|
||||
d[i * 4 + 0] = 0xffff;
|
||||
d[i * 4 + 1] = Yn;
|
||||
d[i * 4 + 2] = Un;
|
||||
d[i * 4 + 3] = Vn;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
pack_NV16_10LE40 (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
|
||||
const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
|
||||
const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
|
||||
gint y, gint width)
|
||||
{
|
||||
gint i;
|
||||
guint8 *restrict dy = GET_PLANE_LINE (0, y);
|
||||
guint8 *restrict duv = GET_PLANE_LINE (1, y);
|
||||
guint16 Y0 = 0, Y1 = 0, Y2 = 0, Y3 = 0, U0, V0 = 0, U1 = 0, V1 = 0;
|
||||
const guint16 *restrict s = src;
|
||||
|
||||
for (i = 0; i < width; i++) {
|
||||
switch (i & 3) {
|
||||
case 0:
|
||||
Y0 = s[i * 4 + 1] >> 6;
|
||||
GST_WRITE_UINT8 (dy, Y0 & 0xff);
|
||||
dy++;
|
||||
|
||||
U0 = s[i * 4 + 2] >> 6;
|
||||
V0 = s[i * 4 + 3] >> 6;
|
||||
|
||||
GST_WRITE_UINT8 (duv, U0 & 0xff);
|
||||
duv++;
|
||||
|
||||
GST_WRITE_UINT8 (duv, (U0 >> 8) | ((V0 & 0x3f) << 2));
|
||||
duv++;
|
||||
break;
|
||||
case 1:
|
||||
Y1 = s[i * 4 + 1] >> 6;
|
||||
GST_WRITE_UINT8 (dy, (Y0 >> 8) | ((Y1 & 0x3f) << 2));
|
||||
dy++;
|
||||
break;
|
||||
case 2:
|
||||
Y2 = s[i * 4 + 1] >> 6;
|
||||
GST_WRITE_UINT8 (dy, (Y1 >> 6) | ((Y2 & 0xf) << 4));
|
||||
dy++;
|
||||
|
||||
U1 = s[i * 4 + 2] >> 6;
|
||||
V1 = s[i * 4 + 3] >> 6;
|
||||
|
||||
GST_WRITE_UINT8 (duv, (V0 >> 6) | ((U1 & 0xf) << 4));
|
||||
duv++;
|
||||
|
||||
GST_WRITE_UINT8 (duv, (U1 >> 4) | ((V1 & 0x3) << 6));
|
||||
duv++;
|
||||
|
||||
GST_WRITE_UINT8 (duv, V1 >> 2);
|
||||
duv++;
|
||||
break;
|
||||
case 3:
|
||||
Y3 = s[i * 4 + 1] >> 6;
|
||||
GST_WRITE_UINT8 (dy, (Y2 >> 4) | ((Y3 & 0x3) << 6));
|
||||
dy++;
|
||||
GST_WRITE_UINT8 (dy, (Y3 >> 2));
|
||||
dy++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (width & 3) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
GST_WRITE_UINT8 (dy, Y0 >> 8);
|
||||
GST_WRITE_UINT8 (duv, V0 >> 6);
|
||||
break;
|
||||
case 2:
|
||||
GST_WRITE_UINT8 (dy, Y1 >> 6);
|
||||
GST_WRITE_UINT8 (duv, V0 >> 6);
|
||||
break;
|
||||
case 3:
|
||||
GST_WRITE_UINT8 (dy, Y2 >> 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#define PACK_NV12_10LE40 GST_VIDEO_FORMAT_AYUV64, unpack_NV12_10LE40, 1, pack_NV12_10LE40
|
||||
static void
|
||||
unpack_NV12_10LE40 (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
|
||||
@ -8108,6 +8262,9 @@ static const VideoFormat formats[] = {
|
||||
PSTR8888, PLANE0, OFFS0, SUB4444, PACK_Y416_BE),
|
||||
MAKE_GRAY_LE_FORMAT (GRAY10_LE16, "raw video", DPTH10, PSTR2, PLANE0, OFFS0,
|
||||
SUB4, PACK_GRAY10_LE16),
|
||||
MAKE_YUV_C_LE_FORMAT (NV16_10LE40, "raw video",
|
||||
GST_MAKE_FOURCC ('N', 'V', '2', '0'), DPTH10_10_10, PSTR0, PLANE011,
|
||||
OFFS0, SUB422, PACK_NV16_10LE40),
|
||||
};
|
||||
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS;
|
||||
|
@ -174,6 +174,7 @@ G_BEGIN_DECLS
|
||||
* @GST_VIDEO_FORMAT_Y416_LE: packed 4:4:4:4 YUV, 16 bits per channel(U-Y-V-A) (Since: 1.26)
|
||||
* @GST_VIDEO_FORMAT_Y416_BE: packed 4:4:4:4 YUV, 16 bits per channel(U-Y-V-A) (Since: 1.26)
|
||||
* @GST_VIDEO_FORMAT_GRAY10_LE16: 10-bit grayscale, packed into 16bit words (6 bits padding) (Since: 1.26)
|
||||
* @GST_VIDEO_FORMAT_NV16_10LE40: Fully packed variant of NV16_10LE32 (Since: 1.28)
|
||||
*
|
||||
* Enum value describing the most common video formats.
|
||||
*
|
||||
@ -670,6 +671,15 @@ typedef enum {
|
||||
*/
|
||||
GST_VIDEO_FORMAT_GRAY10_LE16,
|
||||
|
||||
/**
|
||||
* GST_VIDEO_FORMAT_NV16_10LE40:
|
||||
*
|
||||
* Fully packed variant of NV16_10LE32
|
||||
*
|
||||
* Since: 1.28
|
||||
*/
|
||||
GST_VIDEO_FORMAT_NV16_10LE40,
|
||||
|
||||
/* Update GST_VIDEO_FORMAT_LAST below when adding more formats here */
|
||||
} GstVideoFormat;
|
||||
|
||||
@ -680,7 +690,7 @@ typedef enum {
|
||||
*
|
||||
* Since: 1.26
|
||||
*/
|
||||
#define GST_VIDEO_FORMAT_LAST (GST_VIDEO_FORMAT_GRAY10_LE16 + 1)
|
||||
#define GST_VIDEO_FORMAT_LAST (GST_VIDEO_FORMAT_NV16_10LE40 + 1)
|
||||
|
||||
#define GST_VIDEO_MAX_PLANES 4
|
||||
#define GST_VIDEO_MAX_COMPONENTS 4
|
||||
@ -1159,7 +1169,7 @@ gconstpointer gst_video_format_get_palette (GstVideoFormat format, gsi
|
||||
"Y216_BE, v216, Y216_LE, P016_BE, P016_LE, Y444_12BE, GBR_12BE, Y444_12LE, " \
|
||||
"GBR_12LE, I422_12BE, I422_12LE, Y212_BE, Y212_LE, I420_12BE, I420_12LE, " \
|
||||
"P012_BE, P012_LE, Y444_10BE, GBR_10BE, Y444_10LE, GBR_10LE, r210, " \
|
||||
"I422_10BE, I422_10LE, NV16_10LE32, Y210, UYVP, v210, I420_10BE, " \
|
||||
"I422_10BE, I422_10LE, NV16_10LE40, NV16_10LE32, Y210, UYVP, v210, I420_10BE, " \
|
||||
"I420_10LE, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, " \
|
||||
"P010_10LE, NV12_10LE40, NV12_10LE32, Y444, BGRP, GBR, RGBP, NV24, v308, " \
|
||||
"IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, " \
|
||||
@ -1178,7 +1188,7 @@ gconstpointer gst_video_format_get_palette (GstVideoFormat format, gsi
|
||||
"Y216_LE, Y216_BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, " \
|
||||
"GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, " \
|
||||
"P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, " \
|
||||
"I422_10LE, I422_10BE, NV16_10LE32, Y210, UYVP, v210, I420_10LE, " \
|
||||
"I422_10LE, I422_10BE, NV16_10LE40, NV16_10LE32, Y210, UYVP, v210, I420_10LE, " \
|
||||
"I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, " \
|
||||
"MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, " \
|
||||
"v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, " \
|
||||
|
@ -27,6 +27,7 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "video-format.h"
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
@ -583,6 +584,7 @@ static const struct FormatMap
|
||||
{GST_VIDEO_FORMAT_GRAY8, DRM_FORMAT_R8, DRM_FORMAT_MOD_LINEAR},
|
||||
{GST_VIDEO_FORMAT_GRAY16_LE, DRM_FORMAT_R16, DRM_FORMAT_MOD_LINEAR},
|
||||
{GST_VIDEO_FORMAT_GRAY16_BE, DRM_FORMAT_R16 | DRM_FORMAT_BIG_ENDIAN, DRM_FORMAT_MOD_LINEAR},
|
||||
{GST_VIDEO_FORMAT_NV16_10LE40, DRM_FORMAT_NV20, DRM_FORMAT_MOD_LINEAR},
|
||||
};
|
||||
/* *INDENT-ON* */
|
||||
|
||||
|
@ -1318,6 +1318,13 @@ fill_planes (GstVideoInfo * info, gsize plane_size[GST_VIDEO_MAX_PLANES])
|
||||
info->offset[1] = info->stride[0] * height;
|
||||
info->size = info->stride[0] * height * 2;
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_NV16_10LE40:
|
||||
info->stride[0] = ((width * 5 >> 2) + 4) / 5 * 5;
|
||||
info->stride[1] = info->stride[0];
|
||||
info->offset[0] = 0;
|
||||
info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
|
||||
info->size = info->offset[1] * 2;
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_NV12_10LE40:
|
||||
info->stride[0] = ((width * 5 >> 2) + 4) / 5 * 5;
|
||||
info->stride[1] = info->stride[0];
|
||||
|
@ -3261,6 +3261,7 @@ GST_START_TEST (test_video_formats_pstrides)
|
||||
|| fmt == GST_VIDEO_FORMAT_NV12_10LE32
|
||||
|| fmt == GST_VIDEO_FORMAT_NV16_10LE32
|
||||
|| fmt == GST_VIDEO_FORMAT_NV12_10LE40
|
||||
|| fmt == GST_VIDEO_FORMAT_NV16_10LE40
|
||||
|| fmt == GST_VIDEO_FORMAT_Y410
|
||||
|| fmt == GST_VIDEO_FORMAT_NV12_8L128
|
||||
|| fmt == GST_VIDEO_FORMAT_NV12_10BE_8L128
|
||||
|
Loading…
x
Reference in New Issue
Block a user