swscale: add bt2020 yuv2rgb coefficients.

pull/192/merge
Ronald S. Bultje 9 years ago
parent 98038e2ee0
commit b3eda69490
  1. 1
      libswscale/swscale.h
  2. 2
      libswscale/swscale_internal.h
  3. 2
      libswscale/version.h
  4. 9
      libswscale/yuv2rgb.c

@ -91,6 +91,7 @@ const char *swscale_license(void);
#define SWS_CS_SMPTE170M 5 #define SWS_CS_SMPTE170M 5
#define SWS_CS_SMPTE240M 7 #define SWS_CS_SMPTE240M 7
#define SWS_CS_DEFAULT 5 #define SWS_CS_DEFAULT 5
#define SWS_CS_BT2020 9
/** /**
* Return a pointer to yuv<->rgb coefficients for the given colorspace * Return a pointer to yuv<->rgb coefficients for the given colorspace

@ -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_128[9][8];
extern const uint8_t ff_dither_8x8_220[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; extern const AVClass ff_sws_context_class;

@ -27,7 +27,7 @@
#include "libavutil/version.h" #include "libavutil/version.h"
#define LIBSWSCALE_VERSION_MAJOR 4 #define LIBSWSCALE_VERSION_MAJOR 4
#define LIBSWSCALE_VERSION_MINOR 0 #define LIBSWSCALE_VERSION_MINOR 1
#define LIBSWSCALE_VERSION_MICRO 100 #define LIBSWSCALE_VERSION_MICRO 100
#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \ #define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \

@ -46,7 +46,7 @@
* *
* where Y = cr * R + cg * G + cb * B and cr + cg + cb = 1. * 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 }, /* no sequence_display_extension */
{ 117489, 138438, 13975, 34925 }, /* ITU-R Rec. 709 (1990) */ { 117489, 138438, 13975, 34925 }, /* ITU-R Rec. 709 (1990) */
{ 104597, 132201, 25675, 53279 }, /* unspecified */ { 104597, 132201, 25675, 53279 }, /* unspecified */
@ -54,12 +54,15 @@ const int32_t ff_yuv2rgb_coeffs[8][4] = {
{ 104448, 132798, 24759, 53109 }, /* FCC */ { 104448, 132798, 24759, 53109 }, /* FCC */
{ 104597, 132201, 25675, 53279 }, /* ITU-R Rec. 624-4 System B, G */ { 104597, 132201, 25675, 53279 }, /* ITU-R Rec. 624-4 System B, G */
{ 104597, 132201, 25675, 53279 }, /* SMPTE 170M */ { 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) const int *sws_getCoefficients(int colorspace)
{ {
if (colorspace > 7 || colorspace < 0) if (colorspace > 10 || colorspace < 0 || colorspace == 8)
colorspace = SWS_CS_DEFAULT; colorspace = SWS_CS_DEFAULT;
return ff_yuv2rgb_coeffs[colorspace]; return ff_yuv2rgb_coeffs[colorspace];
} }

Loading…
Cancel
Save