case VA_FOURCC ('R', 'G', 'B', 'X'):
case VA_FOURCC ('X', 'B', 'G', 'R'):
case VA_FOURCC ('B', 'G', 'R', 'X'):
+ case VA_FOURCC ('Y', '2', '1', '0'):
data_size = 4 * width * height;
break;
case VA_FOURCC ('P', '0', '1', '0'):
* @GST_VAAPI_CHROMA_TYPE_RGB32: 32-bit RGB chroma format
* @GST_VAAPI_CHROMA_TYPE_RGB16: 16-bit RGB chroma format
* @GST_VAAPI_CHROMA_TYPE_YUV420_10BPP: YUV 4:2:0 chroma format, more than 8 bits per channel
+ * @GST_VAAPI_CHROMA_TYPE_YUV422_10BPP: YUV 4:2:2 chroma format, more than 8 bits per channel
*
* The set of all chroma types for #GstVaapiSurface.
*/
GST_VAAPI_CHROMA_TYPE_YUV400,
GST_VAAPI_CHROMA_TYPE_RGB32,
GST_VAAPI_CHROMA_TYPE_RGB16,
- GST_VAAPI_CHROMA_TYPE_YUV420_10BPP
+ GST_VAAPI_CHROMA_TYPE_YUV420_10BPP,
+ GST_VAAPI_CHROMA_TYPE_YUV422_10BPP,
} GstVaapiChromaType;
/**
chroma_type = GST_VAAPI_CHROMA_TYPE_YUV420_10BPP;
break;
#endif
+#if VA_CHECK_VERSION(1,2,0)
+ case VA_RT_FORMAT_YUV422_10:
+ chroma_type = GST_VAAPI_CHROMA_TYPE_YUV422_10BPP;
+ break;
+#endif
default:
chroma_type = 0;
break;
format = VA_RT_FORMAT_YUV420_10BPP;
break;
#endif
+#if VA_CHECK_VERSION(1,2,0)
+ case GST_VAAPI_CHROMA_TYPE_YUV422_10BPP:
+ format = VA_RT_FORMAT_YUV422_10;
+ break;
+#endif
default:
format = 0;
break;
chroma_type = GST_VAAPI_CHROMA_TYPE_YUV420_10BPP;
break;
case 2:
- chroma_type = GST_VAAPI_CHROMA_TYPE_YUV422;
+ if (luma_bit_depth == 8)
+ chroma_type = GST_VAAPI_CHROMA_TYPE_YUV422;
+ else if (luma_bit_depth > 8)
+ chroma_type = GST_VAAPI_CHROMA_TYPE_YUV422_10BPP;
break;
case 3:
chroma_type = GST_VAAPI_CHROMA_TYPE_YUV444;
DEF_YUV (I420, ('I', '4', '2', '0'), LSB, 12, 420),
DEF_YUV (YUY2, ('Y', 'U', 'Y', '2'), LSB, 16, 422),
DEF_YUV (UYVY, ('U', 'Y', 'V', 'Y'), LSB, 16, 422),
+ DEF_YUV (Y210, ('Y', '2', '1', '0'), LSB, 32, 422_10BPP),
DEF_YUV (AYUV, ('A', 'Y', 'U', 'V'), LSB, 32, 444),
#if G_BYTE_ORDER == G_BIG_ENDIAN
DEF_RGB (ARGB, ('A', 'R', 'G', 'B'), MSB, 32,
return GST_VIDEO_FORMAT_P010_10LE;
case GST_VAAPI_CHROMA_TYPE_YUV444:
return GST_VIDEO_FORMAT_AYUV;
+ case GST_VAAPI_CHROMA_TYPE_YUV422_10BPP:
+ return GST_VIDEO_FORMAT_Y210;
default:
return GST_VIDEO_FORMAT_UNKNOWN;
}
#if (USE_GLX || USE_EGL)
GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS ";"
#endif
- GST_VIDEO_CAPS_MAKE("{ NV12, I420, YV12, YUY2, UYVY, P010_10LE }") ";"
+ GST_VIDEO_CAPS_MAKE("{ NV12, I420, YV12, YUY2, UYVY, Y210, P010_10LE }") ";"
GST_VAAPI_MAKE_DMABUF_CAPS;
static GstStaticPadTemplate gst_vaapidecode_src_factory =
#define GST_VAAPI_MAKE_SURFACE_CAPS \
GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \
- GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, "{ ENCODED, NV12, I420, YV12, YUY2, UYVY, P010_10LE }")
+ GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, "{ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210, P010_10LE }")
#define GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS \
GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \