upgrade-gst-base-to-1_14_4
diff --git a/gst-libs/gst/video/video-format.c b/gst-libs/gst/video/video-format.c
index f2fa22b..ebe1ad5 100644
--- a/gst-libs/gst/video/video-format.c
+++ b/gst-libs/gst/video/video-format.c
@@ -5240,6 +5240,12 @@
PSTR222, PLANE012, OFFS0, SUB444, PACK_Y444_12BE),
MAKE_YUV_LE_FORMAT (Y444_12LE, "raw video", 0x00000000, DPTH12_12_12,
PSTR222, PLANE012, OFFS0, SUB444, PACK_Y444_12LE),
+
+ MAKE_YUV_FORMAT (MT21, "raw video", GST_MAKE_FOURCC ('M', 'M', '2', '1'),
+ DPTH888, PSTR122, PLANE011, OFFS001, SUB420, PACK_NV12),
+ MAKE_YUV_FORMAT (I422, "raw video", GST_MAKE_FOURCC ('Y', 'M', '1', '6'),
+ DPTH888, PSTR111, PLANE012, OFFS0, SUB422, PACK_420),
+
MAKE_GRAY_C_LE_FORMAT (GRAY10_LE32, "raw video", DPTH10, PSTR0, PLANE0, OFFS0,
SUB4, PACK_GRAY10_LE32),
MAKE_YUV_C_LE_FORMAT (NV12_10LE32, "raw video",
@@ -5480,6 +5486,10 @@
return GST_VIDEO_FORMAT_IYU1;
case GST_MAKE_FOURCC ('A', 'Y', '6', '4'):
return GST_VIDEO_FORMAT_AYUV64;
+ case GST_MAKE_FOURCC ('M', 'M', '2', '1'):
+ return GST_VIDEO_FORMAT_MT21;
+ case GST_MAKE_FOURCC ('Y', 'M', '1', '6'):
+ return GST_VIDEO_FORMAT_I422;
case GST_MAKE_FOURCC ('X', 'V', '1', '0'):
return GST_VIDEO_FORMAT_GRAY10_LE32;
case GST_MAKE_FOURCC ('X', 'V', '1', '5'):
@@ -5504,9 +5514,11 @@
gst_video_format_from_string (const gchar * format)
{
guint i;
-
g_return_val_if_fail (format != NULL, GST_VIDEO_FORMAT_UNKNOWN);
+ if (strcmp ("MT21", format) == 0)
+ return GST_VIDEO_FORMAT_MT21;
+
for (i = 0; i < G_N_ELEMENTS (formats); i++) {
if (strcmp (GST_VIDEO_FORMAT_INFO_NAME (&formats[i].info), format) == 0)
return GST_VIDEO_FORMAT_INFO_FORMAT (&formats[i].info);
diff --git a/gst-libs/gst/video/video-format.h b/gst-libs/gst/video/video-format.h
index dbf514d..325e0c8 100644
--- a/gst-libs/gst/video/video-format.h
+++ b/gst-libs/gst/video/video-format.h
@@ -195,6 +195,8 @@
GST_VIDEO_FORMAT_I422_12LE,
GST_VIDEO_FORMAT_Y444_12BE,
GST_VIDEO_FORMAT_Y444_12LE,
+ GST_VIDEO_FORMAT_MT21,
+ GST_VIDEO_FORMAT_I422,
GST_VIDEO_FORMAT_GRAY10_LE32,
GST_VIDEO_FORMAT_NV12_10LE32,
GST_VIDEO_FORMAT_NV16_10LE32,
diff --git a/gst-libs/gst/video/video-info.c b/gst-libs/gst/video/video-info.c
index 25f7027..1ffabee 100644
--- a/gst-libs/gst/video/video-info.c
+++ b/gst-libs/gst/video/video-info.c
@@ -785,12 +785,24 @@
info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
info->stride[2] = info->stride[1];
info->offset[0] = 0;
- info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
+ info->offset[1] = GST_ROUND_UP_128 (info->stride[0] * GST_ROUND_UP_2 (height));
cr_h = GST_ROUND_UP_2 (height) / 2;
if (GST_VIDEO_INFO_IS_INTERLACED (info))
cr_h = GST_ROUND_UP_2 (cr_h);
- info->offset[2] = info->offset[1] + info->stride[1] * cr_h;
- info->size = info->offset[2] + info->stride[2] * cr_h;
+ info->offset[2] = info->offset[1] + GST_ROUND_UP_128 (info->stride[1] * cr_h);
+ info->size = info->offset[2] + GST_ROUND_UP_128 (info->stride[2] * cr_h);
+ break;
+
+ case GST_VIDEO_FORMAT_I422:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
+ info->stride[2] = info->stride[1];
+
+ info->offset[0] = 0;
+ info->offset[1] = GST_ROUND_UP_128 (info->stride[0] * GST_ROUND_UP_2 (height));
+ info->offset[2] = info->offset[1] + GST_ROUND_UP_128 (info->stride[1] * GST_ROUND_UP_2 (height));
+
+ info->size = info->stride[0] * GST_ROUND_UP_2 (height) * 2;
break;
case GST_VIDEO_FORMAT_Y41B:
info->stride[0] = GST_ROUND_UP_4 (width);
@@ -835,6 +847,7 @@
break;
case GST_VIDEO_FORMAT_NV12:
case GST_VIDEO_FORMAT_NV21:
+ case GST_VIDEO_FORMAT_MT21:
info->stride[0] = GST_ROUND_UP_4 (width);
info->stride[1] = info->stride[0];
info->offset[0] = 0;