mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-28 03:00:35 +00:00
video-converter: add more scaler fastpaths
This commit is contained in:
parent
72076e9521
commit
80ca1462cd
2 changed files with 112 additions and 138 deletions
|
@ -3595,6 +3595,8 @@ setup_scale (GstVideoConverter * convert, GstFormat fformat)
|
|||
switch (GST_VIDEO_INFO_FORMAT (in_info)) {
|
||||
case GST_VIDEO_FORMAT_RGB15:
|
||||
case GST_VIDEO_FORMAT_RGB16:
|
||||
case GST_VIDEO_FORMAT_BGR15:
|
||||
case GST_VIDEO_FORMAT_BGR16:
|
||||
if (method != GST_VIDEO_RESAMPLER_METHOD_NEAREST)
|
||||
return FALSE;
|
||||
break;
|
||||
|
@ -3690,229 +3692,199 @@ typedef struct
|
|||
|
||||
static const VideoTransform transforms[] = {
|
||||
{GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_I420_YUY2},
|
||||
FALSE, 0, 0, convert_I420_YUY2},
|
||||
{GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_I420_UYVY},
|
||||
FALSE, 0, 0, convert_I420_UYVY},
|
||||
{GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_I420_AYUV},
|
||||
FALSE, 0, 0, convert_I420_AYUV},
|
||||
{GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_I420_Y42B},
|
||||
FALSE, 0, 0, convert_I420_Y42B},
|
||||
{GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_I420_Y444},
|
||||
FALSE, 0, 0, convert_I420_Y444},
|
||||
|
||||
{GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_I420_YUY2},
|
||||
FALSE, 0, 0, convert_I420_YUY2},
|
||||
{GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_I420_UYVY},
|
||||
FALSE, 0, 0, convert_I420_UYVY},
|
||||
{GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_I420_AYUV},
|
||||
FALSE, 0, 0, convert_I420_AYUV},
|
||||
{GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_I420_Y42B},
|
||||
FALSE, 0, 0, convert_I420_Y42B},
|
||||
{GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_I420_Y444},
|
||||
FALSE, 0, 0, convert_I420_Y444},
|
||||
|
||||
{GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_I420, TRUE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_YUY2_I420},
|
||||
FALSE, 0, 0, convert_YUY2_I420},
|
||||
{GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_YV12, TRUE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_YUY2_I420},
|
||||
FALSE, 0, 0, convert_YUY2_I420},
|
||||
{GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_UYVY_YUY2}, /* alias */
|
||||
TRUE, 0, 0, convert_UYVY_YUY2}, /* alias */
|
||||
{GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 1, 0,
|
||||
convert_YUY2_AYUV},
|
||||
TRUE, 1, 0, convert_YUY2_AYUV},
|
||||
{GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_Y42B, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_YUY2_Y42B},
|
||||
TRUE, 0, 0, convert_YUY2_Y42B},
|
||||
{GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_Y444, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_YUY2_Y444},
|
||||
TRUE, 0, 0, convert_YUY2_Y444},
|
||||
|
||||
{GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_I420, TRUE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_UYVY_I420},
|
||||
FALSE, 0, 0, convert_UYVY_I420},
|
||||
{GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_YV12, TRUE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_UYVY_I420},
|
||||
FALSE, 0, 0, convert_UYVY_I420},
|
||||
{GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_UYVY_YUY2},
|
||||
TRUE, 0, 0, convert_UYVY_YUY2},
|
||||
{GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_UYVY_AYUV},
|
||||
TRUE, 0, 0, convert_UYVY_AYUV},
|
||||
{GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_Y42B, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_UYVY_Y42B},
|
||||
TRUE, 0, 0, convert_UYVY_Y42B},
|
||||
{GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_Y444, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_UYVY_Y444},
|
||||
TRUE, 0, 0, convert_UYVY_Y444},
|
||||
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_I420, FALSE, FALSE, TRUE, TRUE,
|
||||
TRUE, 1, 1,
|
||||
convert_AYUV_I420},
|
||||
TRUE, 1, 1, convert_AYUV_I420},
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, TRUE, TRUE,
|
||||
TRUE, 1, 1,
|
||||
convert_AYUV_I420},
|
||||
TRUE, 1, 1, convert_AYUV_I420},
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 1, 0,
|
||||
convert_AYUV_YUY2},
|
||||
TRUE, 1, 0, convert_AYUV_YUY2},
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 1, 0,
|
||||
convert_AYUV_UYVY},
|
||||
TRUE, 1, 0, convert_AYUV_UYVY},
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_Y42B, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 1, 0,
|
||||
convert_AYUV_Y42B},
|
||||
TRUE, 1, 0, convert_AYUV_Y42B},
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_Y444, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_AYUV_Y444},
|
||||
TRUE, 0, 0, convert_AYUV_Y444},
|
||||
|
||||
{GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_I420, FALSE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_Y42B_I420},
|
||||
FALSE, 0, 0, convert_Y42B_I420},
|
||||
{GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, TRUE, FALSE,
|
||||
FALSE, 0, 0,
|
||||
convert_Y42B_I420},
|
||||
FALSE, 0, 0, convert_Y42B_I420},
|
||||
{GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_Y42B_YUY2},
|
||||
TRUE, 0, 0, convert_Y42B_YUY2},
|
||||
{GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_Y42B_UYVY},
|
||||
TRUE, 0, 0, convert_Y42B_UYVY},
|
||||
{GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 1, 0,
|
||||
convert_Y42B_AYUV},
|
||||
TRUE, 1, 0, convert_Y42B_AYUV},
|
||||
{GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_Y444, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_Y42B_Y444},
|
||||
TRUE, 0, 0, convert_Y42B_Y444},
|
||||
|
||||
{GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_I420, FALSE, FALSE, TRUE, FALSE,
|
||||
FALSE, 1, 0,
|
||||
convert_Y444_I420},
|
||||
FALSE, 1, 0, convert_Y444_I420},
|
||||
{GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, TRUE, FALSE,
|
||||
FALSE, 1, 0,
|
||||
convert_Y444_I420},
|
||||
FALSE, 1, 0, convert_Y444_I420},
|
||||
{GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 1, 0,
|
||||
convert_Y444_YUY2},
|
||||
TRUE, 1, 0, convert_Y444_YUY2},
|
||||
{GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 1, 0,
|
||||
convert_Y444_UYVY},
|
||||
TRUE, 1, 0, convert_Y444_UYVY},
|
||||
{GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_Y444_AYUV},
|
||||
TRUE, 0, 0, convert_Y444_AYUV},
|
||||
{GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_Y42B, TRUE, FALSE, TRUE, TRUE,
|
||||
TRUE, 1, 0,
|
||||
convert_Y444_Y42B},
|
||||
TRUE, 1, 0, convert_Y444_Y42B},
|
||||
|
||||
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_ARGB, TRUE, TRUE, TRUE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_AYUV_ARGB},
|
||||
0, 0, convert_AYUV_ARGB},
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_BGRA, TRUE, TRUE, TRUE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_AYUV_BGRA},
|
||||
0, 0, convert_AYUV_BGRA},
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_xRGB, TRUE, TRUE, TRUE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_AYUV_ARGB}, /* alias */
|
||||
0, 0, convert_AYUV_ARGB}, /* alias */
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_BGRx, TRUE, TRUE, TRUE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_AYUV_BGRA}, /* alias */
|
||||
0, 0, convert_AYUV_BGRA}, /* alias */
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_ABGR, TRUE, TRUE, TRUE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_AYUV_ABGR},
|
||||
0, 0, convert_AYUV_ABGR},
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_RGBA, TRUE, TRUE, TRUE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_AYUV_RGBA},
|
||||
0, 0, convert_AYUV_RGBA},
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_xBGR, TRUE, TRUE, TRUE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_AYUV_ABGR}, /* alias */
|
||||
0, 0, convert_AYUV_ABGR}, /* alias */
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_RGBx, TRUE, TRUE, TRUE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_AYUV_RGBA}, /* alias */
|
||||
0, 0, convert_AYUV_RGBA}, /* alias */
|
||||
|
||||
{GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_BGRA, FALSE, TRUE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_I420_BGRA},
|
||||
TRUE, 0, 0, convert_I420_BGRA},
|
||||
{GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_BGRx, FALSE, TRUE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_I420_BGRA},
|
||||
TRUE, 0, 0, convert_I420_BGRA},
|
||||
{GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_BGRA, FALSE, TRUE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_I420_BGRA},
|
||||
TRUE, 0, 0, convert_I420_BGRA},
|
||||
{GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_BGRx, FALSE, TRUE, TRUE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_I420_BGRA},
|
||||
TRUE, 0, 0, convert_I420_BGRA},
|
||||
#endif
|
||||
|
||||
/* scalers */
|
||||
{GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_I420, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
{GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_YV12, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
{GST_VIDEO_FORMAT_Y41B, GST_VIDEO_FORMAT_Y41B, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
{GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_Y42B, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
{GST_VIDEO_FORMAT_A420, GST_VIDEO_FORMAT_A420, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
{GST_VIDEO_FORMAT_YUV9, GST_VIDEO_FORMAT_YUV9, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
{GST_VIDEO_FORMAT_YVU9, GST_VIDEO_FORMAT_YVU9, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
{GST_VIDEO_FORMAT_GBR, GST_VIDEO_FORMAT_GBR, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
|
||||
{GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_YUY2},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_YUY2},
|
||||
{GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_UYVY},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_UYVY},
|
||||
{GST_VIDEO_FORMAT_YVYU, GST_VIDEO_FORMAT_YVYU, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_YVYU},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_YVYU},
|
||||
|
||||
{GST_VIDEO_FORMAT_RGB15, GST_VIDEO_FORMAT_RGB15, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_NV12},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_NV12},
|
||||
{GST_VIDEO_FORMAT_RGB16, GST_VIDEO_FORMAT_RGB16, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_NV12},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_NV12},
|
||||
{GST_VIDEO_FORMAT_BGR15, GST_VIDEO_FORMAT_BGR15, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_NV12},
|
||||
{GST_VIDEO_FORMAT_BGR16, GST_VIDEO_FORMAT_BGR16, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_NV12},
|
||||
|
||||
{GST_VIDEO_FORMAT_RGB, GST_VIDEO_FORMAT_RGB, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_RGB},
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_RGB},
|
||||
{GST_VIDEO_FORMAT_BGR, GST_VIDEO_FORMAT_BGR, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_BGR},
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_BGR},
|
||||
{GST_VIDEO_FORMAT_v308, GST_VIDEO_FORMAT_v308, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_v308},
|
||||
|
||||
{GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_AYUV},
|
||||
|
||||
{GST_VIDEO_FORMAT_ARGB, GST_VIDEO_FORMAT_ARGB, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_ARGB},
|
||||
{GST_VIDEO_FORMAT_xRGB, GST_VIDEO_FORMAT_xRGB, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_xRGB},
|
||||
{GST_VIDEO_FORMAT_ABGR, GST_VIDEO_FORMAT_ABGR, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_ABGR},
|
||||
{GST_VIDEO_FORMAT_xBGR, GST_VIDEO_FORMAT_xBGR, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_xBGR},
|
||||
{GST_VIDEO_FORMAT_RGBA, GST_VIDEO_FORMAT_RGBA, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_RGBA},
|
||||
{GST_VIDEO_FORMAT_RGBx, GST_VIDEO_FORMAT_RGBx, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_RGBx},
|
||||
{GST_VIDEO_FORMAT_BGRA, GST_VIDEO_FORMAT_BGRA, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_BGRA},
|
||||
{GST_VIDEO_FORMAT_BGRx, GST_VIDEO_FORMAT_BGRx, TRUE, FALSE, FALSE, TRUE, TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_BGRx},
|
||||
|
||||
{GST_VIDEO_FORMAT_ARGB64, GST_VIDEO_FORMAT_ARGB64, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_ARGB64},
|
||||
{GST_VIDEO_FORMAT_AYUV64, GST_VIDEO_FORMAT_AYUV64, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE,
|
||||
0, 0, convert_scale_planes, GST_VIDEO_FORMAT_AYUV64},
|
||||
|
||||
{GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_Y444, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
{GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_GRAY8, TRUE, FALSE, FALSE, TRUE,
|
||||
TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY8},
|
||||
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
|
||||
{GST_VIDEO_FORMAT_GRAY16_LE, GST_VIDEO_FORMAT_GRAY16_LE, TRUE, FALSE, FALSE,
|
||||
TRUE, TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_GRAY16_LE},
|
||||
TRUE, TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY16_LE},
|
||||
#else
|
||||
{GST_VIDEO_FORMAT_GRAY16_BE, GST_VIDEO_FORMAT_GRAY16_BE, TRUE, FALSE, FALSE,
|
||||
TRUE, TRUE, 0, 0,
|
||||
convert_scale_planes, GST_VIDEO_FORMAT_GRAY16_BE},
|
||||
TRUE, TRUE, 0, 0, convert_scale_planes, GST_VIDEO_FORMAT_GRAY16_BE},
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -1150,6 +1150,7 @@ gst_video_scaler_horizontal (GstVideoScaler * scale, GstVideoFormat format,
|
|||
break;
|
||||
case GST_VIDEO_FORMAT_RGB:
|
||||
case GST_VIDEO_FORMAT_BGR:
|
||||
case GST_VIDEO_FORMAT_v308:
|
||||
switch (scale->resampler.max_taps) {
|
||||
case 1:
|
||||
func = video_scale_h_near_3u8;
|
||||
|
@ -1276,6 +1277,7 @@ gst_video_scaler_vertical (GstVideoScaler * scale, GstVideoFormat format,
|
|||
break;
|
||||
case GST_VIDEO_FORMAT_RGB:
|
||||
case GST_VIDEO_FORMAT_BGR:
|
||||
case GST_VIDEO_FORMAT_v308:
|
||||
bits = 8;
|
||||
n_elems = 3;
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue