aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Conrad <lessen42@gmail.com>2010-02-05 16:09:03 +0000
committerDavid Conrad <lessen42@gmail.com>2010-02-05 16:09:03 +0000
commit3f3dc76cb1fbf9b14536b993a6f435e8ab806585 (patch)
tree8e0512f224d5032bfa1a7b1b823da9cf4f89a3dd
parentbf8ae197b618be06e0fb74d17fbf5010c0be63d8 (diff)
downloadffmpeg-3f3dc76cb1fbf9b14536b993a6f435e8ab806585.tar.gz
Add function to translate SWS_CS_* to coefficient array
Originally committed as revision 30513 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
-rw-r--r--libswscale/swscale.h8
-rw-r--r--libswscale/yuv2rgb.c7
2 files changed, 14 insertions, 1 deletions
diff --git a/libswscale/swscale.h b/libswscale/swscale.h
index 9e14262d30..ba198aaf2f 100644
--- a/libswscale/swscale.h
+++ b/libswscale/swscale.h
@@ -30,7 +30,7 @@
#include "libavutil/avutil.h"
#define LIBSWSCALE_VERSION_MAJOR 0
-#define LIBSWSCALE_VERSION_MINOR 9
+#define LIBSWSCALE_VERSION_MINOR 10
#define LIBSWSCALE_VERSION_MICRO 0
#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
@@ -103,6 +103,12 @@ const char *swscale_license(void);
#define SWS_CS_SMPTE240M 7
#define SWS_CS_DEFAULT 5
+/**
+ * Returns a pointer to yuv<->rgb coefficients for the given colorspace
+ * suitable for sws_setColorspaceDetails()
+ * @colorspace one of SWS_CS_* If invalid, SWS_CS_DEFAULT is used.
+ */
+const int * sws_getCoefficients(int colorspace);
// when used for filters they must have an odd number of elements
diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c
index 3c7bb3fd9f..a019bf76fd 100644
--- a/libswscale/yuv2rgb.c
+++ b/libswscale/yuv2rgb.c
@@ -49,6 +49,13 @@ const int32_t ff_yuv2rgb_coeffs[8][4] = {
{117579, 136230, 16907, 35559} /* SMPTE 240M (1987) */
};
+const int * sws_getCoefficients(int colorspace)
+{
+ if (colorspace > 7 || colorspace < 0)
+ colorspace = SWS_CS_DEFAULT;
+ return ff_yuv2rgb_coeffs[colorspace];
+}
+
#define LOADCHROMA(i) \
U = pu[i]; \
V = pv[i]; \