}
}
+static void
+getline_A420 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
+ int j)
+{
+ cogorc_getline_A420 (dest,
+ FRAME_GET_LINE (src, 0, j),
+ FRAME_GET_LINE (src, 1, j >> 1),
+ FRAME_GET_LINE (src, 2, j >> 1),
+ FRAME_GET_LINE (src, 3, j), convert->width);
+}
+
+static void
+putline_A420 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
+ int j)
+{
+ cogorc_putline_A420 (FRAME_GET_LINE (dest, 0, j),
+ FRAME_GET_LINE (dest, 1, j >> 1),
+ FRAME_GET_LINE (dest, 2, j >> 1),
+ FRAME_GET_LINE (dest, 3, j), src, convert->width / 2);
+}
+
typedef struct
{
GstVideoFormat format;
//{GST_VIDEO_FORMAT_BGR16, getline_BGR16, putline_BGR16},
//{GST_VIDEO_FORMAT_RGB15, getline_RGB15, putline_RGB15},
//{GST_VIDEO_FORMAT_BGR15, getline_BGR15, putline_BGR15},
- {GST_VIDEO_FORMAT_UYVP, getline_UYVP, putline_UYVP}
- //{GST_VIDEO_FORMAT_A420, getline_A420, putline_A420}
+ {GST_VIDEO_FORMAT_UYVP, getline_UYVP, putline_UYVP},
+ {GST_VIDEO_FORMAT_A420, getline_A420, putline_A420}
};
static void
#define CSP_VIDEO_CAPS \
"video/x-raw-yuv, width = "GST_VIDEO_SIZE_RANGE" , " \
"height="GST_VIDEO_SIZE_RANGE",framerate="GST_VIDEO_FPS_RANGE"," \
- "format= (fourcc) { I420 , NV12 , NV21 , YV12 , YUY2 , Y42B , Y444 , YUV9 , YVU9 , Y41B , Y800 , Y8 , GREY , Y16 , UYVY , YVYU , IYU1 , v308 , AYUV, v210 } ;" \
+ "format= (fourcc) { I420 , NV12 , NV21 , YV12 , YUY2 , Y42B , Y444 , YUV9 , YVU9 , Y41B , Y800 , Y8 , GREY , Y16 , UYVY , YVYU , IYU1 , v308 , AYUV, v210, A420 } ;" \
GST_VIDEO_CAPS_RGB";" \
GST_VIDEO_CAPS_BGR";" \
GST_VIDEO_CAPS_RGBx";" \