if (convert->fill_border && (convert->out_height < convert->out_maxheight ||
convert->out_width < convert->out_maxwidth)) {
- gint i;
- guint8 *b;
- guint64 border_val, v;
+ guint64 border_val;
- b = convert->borderline = g_malloc0 (sizeof (guint16) * width * 4);
+ convert->borderline = g_malloc0 (sizeof (guint16) * width * 4);
if (GST_VIDEO_INFO_IS_YUV (&convert->out_info)) {
/* FIXME, convert to AYUV, just black for now */
} else {
border_val = convert->border_argb;
}
-
- if (convert->out_bits == 8)
- v = (border_val << 32) | border_val;
- else {
- guint64 c;
-
- c = (border_val >> 24) & 0xff;
- v = (c << 56) | (c << 48);
- c = (border_val >> 16) & 0xff;
- v |= (c << 40) | (c << 32);
- c = (border_val >> 8) & 0xff;
- v |= (c << 24) | (c << 16);
- c = (border_val) & 0xff;
- v |= (c << 8) | c;
- }
- v = GINT64_TO_BE (v);
- for (i = 0; i < width; i++) {
- memcpy (b, &v, 8);
- b += 8;
- }
+ if (convert->pack_bits == 8)
+ video_orc_splat_u32 (convert->borderline, border_val, width);
+ else
+ video_orc_splat_u64 (convert->borderline, border_val, width);
} else {
convert->borderline = NULL;
}