diff options
Diffstat (limited to 'media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch')
-rw-r--r-- | media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch new file mode 100644 index 0000000..fae77f7 --- /dev/null +++ b/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch @@ -0,0 +1,77 @@ +From f392c3f35052b57343e814d8f2d52b4f788d5d45 Mon Sep 17 00:00:00 2001 +From: Rob Clark <rob@ti.com> +Date: Fri, 20 Nov 2009 18:43:12 -0600 +Subject: [PATCH 07/24] Add NV12 support in stridetransform + +--- + gst-libs/gst/video/video.c | 3 +++ + gst/stride/gststridetransform.c | 12 ++++-------- + 2 files changed, 7 insertions(+), 8 deletions(-) + +diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c +index 24f1ac8..ff9c4fb 100644 +--- a/gst-libs/gst/video/video.c ++++ b/gst-libs/gst/video/video.c +@@ -2025,6 +2025,9 @@ gst_video_format_get_size_strided (GstVideoFormat format, + case GST_VIDEO_FORMAT_Y42B: + case GST_VIDEO_FORMAT_Y444: + return GST_ROUND_UP_4 (3 * rowstride * height); ++ case GST_VIDEO_FORMAT_NV12: ++ case GST_VIDEO_FORMAT_NV21: ++ return GST_ROUND_UP_4 (rowstride) * GST_ROUND_UP_2 (height) * 3 / 2; + default: + return 0; + } +diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c +index ea52500..56207d0 100644 +--- a/gst/stride/gststridetransform.c ++++ b/gst/stride/gststridetransform.c +@@ -2,7 +2,7 @@ + * + * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/ + * +- * Description: V4L2 sink element ++ * Description: stride transform element + * Created on: Jul 30, 2009 + * Author: Rob Clark <rob@ti.com> + * +@@ -62,7 +62,7 @@ GST_ELEMENT_DETAILS ("Stride transform", + + /* TODO: add rgb formats too! */ + #define SUPPORTED_CAPS \ +- GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY }", "[ 0, max ]") ++ GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]") + + + static GstStaticPadTemplate src_template = +@@ -357,12 +357,10 @@ stridify (GstStrideTransform *self, guchar *strided, guchar *unstrided) + gint stride = self->out_rowstride; + + switch (self->format) { +-#if 0 /* TODO */ + case GST_VIDEO_FORMAT_NV12: + g_return_val_if_fail (stride >= width, GST_FLOW_ERROR); +- stridemove (strided, unstrided, stride, width, height * 1.5); ++ stridemove (strided, unstrided, stride, width, (GST_ROUND_UP_2 (height) * 3) / 2); + return GST_FLOW_OK; +-#endif + case GST_VIDEO_FORMAT_I420: + case GST_VIDEO_FORMAT_YV12: + g_return_val_if_fail (stride >= width, GST_FLOW_ERROR); +@@ -403,12 +401,10 @@ unstridify (GstStrideTransform *self, guchar *unstrided, guchar *strided) + gint stride = self->in_rowstride; + + switch (self->format) { +-#if 0 /* TODO */ + case GST_VIDEO_FORMAT_NV12: + g_return_val_if_fail (stride >= width, GST_FLOW_ERROR); +- stridemove (unstrided, strided, width, stride, height * 1.5); ++ stridemove (unstrided, strided, width, stride, (GST_ROUND_UP_2 (height) * 3) / 2); + return GST_FLOW_OK; +-#endif + case GST_VIDEO_FORMAT_I420: + case GST_VIDEO_FORMAT_YV12: + g_return_val_if_fail (stride >= width, GST_FLOW_ERROR); +-- +1.7.1 + |