summaryrefslogtreecommitdiff
path: root/gst/geometrictransform
diff options
context:
space:
mode:
Diffstat (limited to 'gst/geometrictransform')
-rw-r--r--gst/geometrictransform/gstgeometrictransform.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gst/geometrictransform/gstgeometrictransform.c b/gst/geometrictransform/gstgeometrictransform.c
index 34ce49481..4c08b20ea 100644
--- a/gst/geometrictransform/gstgeometrictransform.c
+++ b/gst/geometrictransform/gstgeometrictransform.c
@@ -240,7 +240,16 @@ gst_geometric_transform_transform_frame (GstVideoFilter * vfilter,
in_data = GST_VIDEO_FRAME_PLANE_DATA (in_frame, 0);
out_data = GST_VIDEO_FRAME_PLANE_DATA (out_frame, 0);
- memset (out_data, 0, out_frame->map[0].size);
+
+ if (GST_VIDEO_FRAME_FORMAT (out_frame) == GST_VIDEO_FORMAT_AYUV) {
+ /* in AYUV black is not just all zeros:
+ * 0x10 is black for Y,
+ * 0x80 is black for Cr and Cb */
+ for (int i = 0; i < out_frame->map[0].size; i += 4)
+ GST_WRITE_UINT32_BE (out_data + i, 0xff108080);
+ } else {
+ memset (out_data, 0, out_frame->map[0].size);
+ }
GST_OBJECT_LOCK (gt);
if (gt->precalc_map) {