[FFmpeg-cvslog] swscale: add bt2020 yuv2rgb coefficients.
Ronald S. Bultje
git at videolan.org
Fri Apr 1 22:09:44 CEST 2016
ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Thu Mar 31 16:01:09 2016 -0400| [b3eda69490db5172f08a2816bc828ca920b4e1c2] | committer: Ronald S. Bultje
swscale: add bt2020 yuv2rgb coefficients.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b3eda69490db5172f08a2816bc828ca920b4e1c2
---
libswscale/swscale.h | 1 +
libswscale/swscale_internal.h | 2 +-
libswscale/version.h | 2 +-
libswscale/yuv2rgb.c | 9 ++++++---
4 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/libswscale/swscale.h b/libswscale/swscale.h
index 8449948..87511a8 100644
--- a/libswscale/swscale.h
+++ b/libswscale/swscale.h
@@ -91,6 +91,7 @@ const char *swscale_license(void);
#define SWS_CS_SMPTE170M 5
#define SWS_CS_SMPTE240M 7
#define SWS_CS_DEFAULT 5
+#define SWS_CS_BT2020 9
/**
* Return a pointer to yuv<->rgb coefficients for the given colorspace
diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
index 6647c72..566c6d5 100644
--- a/libswscale/swscale_internal.h
+++ b/libswscale/swscale_internal.h
@@ -861,7 +861,7 @@ extern const uint8_t ff_dither_8x8_73[9][8];
extern const uint8_t ff_dither_8x8_128[9][8];
extern const uint8_t ff_dither_8x8_220[9][8];
-extern const int32_t ff_yuv2rgb_coeffs[8][4];
+extern const int32_t ff_yuv2rgb_coeffs[11][4];
extern const AVClass ff_sws_context_class;
diff --git a/libswscale/version.h b/libswscale/version.h
index 5c1cfb1..d03a5cb 100644
--- a/libswscale/version.h
+++ b/libswscale/version.h
@@ -27,7 +27,7 @@
#include "libavutil/version.h"
#define LIBSWSCALE_VERSION_MAJOR 4
-#define LIBSWSCALE_VERSION_MINOR 0
+#define LIBSWSCALE_VERSION_MINOR 1
#define LIBSWSCALE_VERSION_MICRO 100
#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c
index a0242bf..1fe5abe 100644
--- a/libswscale/yuv2rgb.c
+++ b/libswscale/yuv2rgb.c
@@ -46,7 +46,7 @@
*
* where Y = cr * R + cg * G + cb * B and cr + cg + cb = 1.
*/
-const int32_t ff_yuv2rgb_coeffs[8][4] = {
+const int32_t ff_yuv2rgb_coeffs[11][4] = {
{ 117489, 138438, 13975, 34925 }, /* no sequence_display_extension */
{ 117489, 138438, 13975, 34925 }, /* ITU-R Rec. 709 (1990) */
{ 104597, 132201, 25675, 53279 }, /* unspecified */
@@ -54,12 +54,15 @@ const int32_t ff_yuv2rgb_coeffs[8][4] = {
{ 104448, 132798, 24759, 53109 }, /* FCC */
{ 104597, 132201, 25675, 53279 }, /* ITU-R Rec. 624-4 System B, G */
{ 104597, 132201, 25675, 53279 }, /* SMPTE 170M */
- { 117579, 136230, 16907, 35559 } /* SMPTE 240M (1987) */
+ { 117579, 136230, 16907, 35559 }, /* SMPTE 240M (1987) */
+ { 0 }, /* YCgCo */
+ { 110013, 140363, 12277, 42626 }, /* Bt-2020-NCL */
+ { 110013, 140363, 12277, 42626 }, /* Bt-2020-CL */
};
const int *sws_getCoefficients(int colorspace)
{
- if (colorspace > 7 || colorspace < 0)
+ if (colorspace > 10 || colorspace < 0 || colorspace == 8)
colorspace = SWS_CS_DEFAULT;
return ff_yuv2rgb_coeffs[colorspace];
}
More information about the ffmpeg-cvslog
mailing list