#undef GST_VIDEO_SIZE_RANGE
#define GST_VIDEO_SIZE_RANGE "(int) [ 1, 32767]"
- #define GST_VIDEO_FORMATS "{ \"I420\", \"YV12\", \"YUY2\", \"UYVY\", \"AYUV\", \"RGBx\", " \
- "\"BGRx\", \"xRGB\", \"xBGR\", \"RGBA\", \"BGRA\", \"ARGB\", \"ABGR\", \"RGB\", " \
- "\"BGR\", \"Y41B\", \"Y42B\", \"YVYU\", \"Y444\", \"GRAY8\", \"GRAY16_BE\", \"GRAY16_LE\", " \
- "\"v308\", \"Y800\", \"Y16\", \"RGB16\", \"RGB15\", \"ARGB64\", \"AYUV64\" } "
++#define GST_VIDEO_FORMATS "{ I420, YV12, YUY2, UYVY, AYUV, RGBx, " \
++ "BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, " \
++ "BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, " \
++ "v308, Y800, Y16, RGB16, RGB15, ARGB64, AYUV64, NV12 } "
+
+
static GstStaticCaps gst_video_scale_format_caps[] = {
- GST_STATIC_CAPS (GST_VIDEO_CAPS_RGBA),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_ARGB),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRA),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_ABGR),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AYUV")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_RGBx),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_xRGB),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_xBGR),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y444")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("v308")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_BGR),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y42B")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("YUY2")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("YVYU")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("UYVY")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("YV12")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y41B")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB_16),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB_15),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_GRAY16 ("BYTE_ORDER")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y16 ")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_GRAY8),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y800")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y8 ")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("GREY")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AY64")),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_ARGB_64),
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("NV12"))
+ GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS))
};
#define GST_TYPE_VIDEO_SCALE_METHOD (gst_video_scale_method_get_type())
case GST_VIDEO_FORMAT_ARGB64:
case GST_VIDEO_FORMAT_AYUV64:
if (add_borders)
- vs_fill_borders_AYUV64 (&dest, black);
+ vs_fill_borders_AYUV64 (&dest[0], black);
switch (method) {
case GST_VIDEO_SCALE_NEAREST:
- vs_image_scale_nearest_AYUV64 (&dest, &src, videoscale->tmp_buf);
+ vs_image_scale_nearest_AYUV64 (&dest[0], &src[0],
+ videoscale->tmp_buf);
break;
case GST_VIDEO_SCALE_BILINEAR:
- vs_image_scale_linear_AYUV64 (&dest, &src, videoscale->tmp_buf);
+ vs_image_scale_linear_AYUV64 (&dest[0], &src[0], videoscale->tmp_buf);
break;
case GST_VIDEO_SCALE_4TAP:
- vs_image_scale_4tap_AYUV64 (&dest, &src, videoscale->tmp_buf);
+ vs_image_scale_4tap_AYUV64 (&dest[0], &src[0], videoscale->tmp_buf);
break;
- vs_image_scale_lanczos_AYUV64 (&dest, &src, videoscale->tmp_buf,
+ case GST_VIDEO_SCALE_LANCZOS:
++ vs_image_scale_lanczos_AYUV64 (&dest[0], &src[0], videoscale->tmp_buf,
+ videoscale->sharpness, videoscale->dither, videoscale->submethod,
+ videoscale->envelope, videoscale->sharpen);
+ break;
default:
goto unknown_mode;
}
goto unknown_mode;
}
break;
- vs_image_scale_nearest_Y (&dest, &src, videoscale->tmp_buf);
- vs_image_scale_nearest_NV12 (&dest_u, &src_u, videoscale->tmp_buf);
+ case GST_VIDEO_FORMAT_NV12:
+ switch (method) {
+ case GST_VIDEO_SCALE_NEAREST:
- vs_image_scale_linear_Y (&dest, &src, videoscale->tmp_buf);
- vs_image_scale_linear_NV12 (&dest_u, &src_u, videoscale->tmp_buf);
++ vs_image_scale_nearest_Y (&dest[0], &src[0], videoscale->tmp_buf);
++ vs_image_scale_nearest_NV12 (&dest[1], &src[1], videoscale->tmp_buf);
+ break;
+ case GST_VIDEO_SCALE_BILINEAR:
++ vs_image_scale_linear_Y (&dest[0], &src[0], videoscale->tmp_buf);
++ vs_image_scale_linear_NV12 (&dest[1], &src[1], videoscale->tmp_buf);
+ break;
+ default:
+ goto unknown_mode;
+ }
+ break;
case GST_VIDEO_FORMAT_RGB16:
if (add_borders)
- vs_fill_borders_RGB565 (&dest, black);
+ vs_fill_borders_RGB565 (&dest[0], black);
switch (method) {
case GST_VIDEO_SCALE_NEAREST:
- vs_image_scale_nearest_RGB565 (&dest, &src, videoscale->tmp_buf);
+ vs_image_scale_nearest_RGB565 (&dest[0], &src[0],
+ videoscale->tmp_buf);
break;
case GST_VIDEO_SCALE_BILINEAR:
- vs_image_scale_linear_RGB565 (&dest, &src, videoscale->tmp_buf);
+ vs_image_scale_linear_RGB565 (&dest[0], &src[0], videoscale->tmp_buf);
break;
case GST_VIDEO_SCALE_4TAP:
- vs_image_scale_4tap_RGB565 (&dest, &src, videoscale->tmp_buf);
+ vs_image_scale_4tap_RGB565 (&dest[0], &src[0], videoscale->tmp_buf);
break;
default:
goto unknown_mode;
} formats[] = {
/* 24 bit */
{
- GST_VIDEO_CAPS_RGB, GST_VIDEO_FORMAT_RGB}, {
- GST_VIDEO_CAPS_BGR, GST_VIDEO_FORMAT_BGR},
+ GST_VIDEO_CAPS_MAKE ("RGB"), GST_VIDEO_FORMAT_RGB}, {
+ GST_VIDEO_CAPS_MAKE ("BGR"), GST_VIDEO_FORMAT_BGR},
/* 32 bit (no alpha) */
{
- GST_VIDEO_CAPS_RGBx, GST_VIDEO_FORMAT_RGBx}, {
- GST_VIDEO_CAPS_xRGB, GST_VIDEO_FORMAT_xRGB}, {
- GST_VIDEO_CAPS_BGRx, GST_VIDEO_FORMAT_BGRx}, {
- GST_VIDEO_CAPS_xBGR, GST_VIDEO_FORMAT_xBGR},
+ GST_VIDEO_CAPS_MAKE ("RGBx"), GST_VIDEO_FORMAT_RGBx}, {
+ GST_VIDEO_CAPS_MAKE ("xRGB"), GST_VIDEO_FORMAT_xRGB}, {
+ GST_VIDEO_CAPS_MAKE ("BGRx"), GST_VIDEO_FORMAT_BGRx}, {
+ GST_VIDEO_CAPS_MAKE ("xBGR"), GST_VIDEO_FORMAT_xBGR},
/* 32 bit (with alpha) */
{
- GST_VIDEO_CAPS_RGBA, GST_VIDEO_FORMAT_RGBA}, {
- GST_VIDEO_CAPS_ARGB, GST_VIDEO_FORMAT_ARGB}, {
- GST_VIDEO_CAPS_BGRA, GST_VIDEO_FORMAT_BGRA}, {
- GST_VIDEO_CAPS_ABGR, GST_VIDEO_FORMAT_ABGR},
+ GST_VIDEO_CAPS_MAKE ("RGBA"), GST_VIDEO_FORMAT_RGBA}, {
+ GST_VIDEO_CAPS_MAKE ("ARGB"), GST_VIDEO_FORMAT_ARGB}, {
+ GST_VIDEO_CAPS_MAKE ("BGRA"), GST_VIDEO_FORMAT_BGRA}, {
- GST_VIDEO_CAPS_MAKE ("ABGR"), GST_VIDEO_FORMAT_ABGR}
++ GST_VIDEO_CAPS_MAKE ("ABGR"), GST_VIDEO_FORMAT_ABGR},
+ /* 16 bit */
+ {
- GST_VIDEO_CAPS_RGB_16, GST_VIDEO_FORMAT_RGB16}, {
- GST_VIDEO_CAPS_BGR_16, GST_VIDEO_FORMAT_BGR16}, {
- GST_VIDEO_CAPS_RGB_15, GST_VIDEO_FORMAT_RGB15}, {
- GST_VIDEO_CAPS_BGR_15, GST_VIDEO_FORMAT_BGR15}
++ GST_VIDEO_CAPS_MAKE ("RGB16"), GST_VIDEO_FORMAT_RGB16}, {
++ GST_VIDEO_CAPS_MAKE ("BGR16"), GST_VIDEO_FORMAT_BGR16}, {
++ GST_VIDEO_CAPS_MAKE ("RGB15"), GST_VIDEO_FORMAT_RGB15}, {
++ GST_VIDEO_CAPS_MAKE ("BGR15"), GST_VIDEO_FORMAT_BGR15}
};
gint i;