video-converter: add fastpath for some gray formats

This commit is contained in:
Wim Taymans 2015-02-04 18:01:51 +01:00
parent 0737316e7e
commit 3dfbd11fc8
2 changed files with 29 additions and 0 deletions

View file

@ -3336,6 +3336,18 @@ static const VideoTransform transforms[] = {
convert_scale_planes, GST_VIDEO_FORMAT_RGB}, convert_scale_planes, GST_VIDEO_FORMAT_RGB},
{GST_VIDEO_FORMAT_BGR, GST_VIDEO_FORMAT_BGR, TRUE, FALSE, FALSE, 0, 0, {GST_VIDEO_FORMAT_BGR, GST_VIDEO_FORMAT_BGR, TRUE, FALSE, FALSE, 0, 0,
convert_scale_planes, GST_VIDEO_FORMAT_BGR}, convert_scale_planes, GST_VIDEO_FORMAT_BGR},
{GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_GRAY8, TRUE, FALSE, FALSE, 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,
0, 0,
convert_scale_planes, GST_VIDEO_FORMAT_GRAY16_LE},
#else
{GST_VIDEO_FORMAT_GRAY16_BE, GST_VIDEO_FORMAT_GRAY16_BE, TRUE, FALSE, FALSE,
0, 0,
convert_scale_planes, GST_VIDEO_FORMAT_GRAY16_BE},
#endif
}; };
static gboolean static gboolean

View file

@ -1209,6 +1209,18 @@ gst_video_scaler_horizontal (GstVideoScaler * scale, GstVideoFormat format,
break; break;
} }
break; break;
case GST_VIDEO_FORMAT_GRAY16_LE:
case GST_VIDEO_FORMAT_GRAY16_BE:
switch (scale->resampler.max_taps) {
case 1:
func = video_scale_h_near_u16;
break;
default:
func = video_scale_h_ntap_u16;
break;
}
n_elems = 1;
break;
default: default:
goto no_func; goto no_func;
} }
@ -1291,6 +1303,11 @@ gst_video_scaler_vertical (GstVideoScaler * scale, GstVideoFormat format,
bits = 8; bits = 8;
n_elems = 2; n_elems = 2;
break; break;
case GST_VIDEO_FORMAT_GRAY16_LE:
case GST_VIDEO_FORMAT_GRAY16_BE:
bits = 16;
n_elems = 1;
break;
default: default:
goto no_func; goto no_func;
} }