Commit c14fc458 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit 'aa2ba8c9'

* commit 'aa2ba8c9':
  swscale: Move extern declarations for tables to swscale_internal.h

Conflicts:
	libswscale/output.c
	libswscale/swscale_internal.h
	libswscale/swscale_unscaled.c
	libswscale/utils.c
	libswscale/yuv2rgb.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 1ef0b8f9 aa2ba8c9
...@@ -36,19 +36,19 @@ ...@@ -36,19 +36,19 @@
#include "swscale.h" #include "swscale.h"
#include "swscale_internal.h" #include "swscale_internal.h"
DECLARE_ALIGNED(8, const uint8_t, dither_2x2_4)[][8]={ DECLARE_ALIGNED(8, const uint8_t, ff_dither_2x2_4)[][8] = {
{ 1, 3, 1, 3, 1, 3, 1, 3, }, { 1, 3, 1, 3, 1, 3, 1, 3, },
{ 2, 0, 2, 0, 2, 0, 2, 0, }, { 2, 0, 2, 0, 2, 0, 2, 0, },
{ 1, 3, 1, 3, 1, 3, 1, 3, }, { 1, 3, 1, 3, 1, 3, 1, 3, },
}; };
DECLARE_ALIGNED(8, const uint8_t, dither_2x2_8)[][8]={ DECLARE_ALIGNED(8, const uint8_t, ff_dither_2x2_8)[][8] = {
{ 6, 2, 6, 2, 6, 2, 6, 2, }, { 6, 2, 6, 2, 6, 2, 6, 2, },
{ 0, 4, 0, 4, 0, 4, 0, 4, }, { 0, 4, 0, 4, 0, 4, 0, 4, },
{ 6, 2, 6, 2, 6, 2, 6, 2, }, { 6, 2, 6, 2, 6, 2, 6, 2, },
}; };
DECLARE_ALIGNED(8, const uint8_t, dither_4x4_16)[][8]={ DECLARE_ALIGNED(8, const uint8_t, ff_dither_4x4_16)[][8] = {
{ 8, 4, 11, 7, 8, 4, 11, 7, }, { 8, 4, 11, 7, 8, 4, 11, 7, },
{ 2, 14, 1, 13, 2, 14, 1, 13, }, { 2, 14, 1, 13, 2, 14, 1, 13, },
{ 10, 6, 9, 5, 10, 6, 9, 5, }, { 10, 6, 9, 5, 10, 6, 9, 5, },
...@@ -56,7 +56,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_4x4_16)[][8]={ ...@@ -56,7 +56,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_4x4_16)[][8]={
{ 8, 4, 11, 7, 8, 4, 11, 7, }, { 8, 4, 11, 7, 8, 4, 11, 7, },
}; };
DECLARE_ALIGNED(8, const uint8_t, dither_8x8_32)[][8]={ DECLARE_ALIGNED(8, const uint8_t, ff_dither_8x8_32)[][8] = {
{ 17, 9, 23, 15, 16, 8, 22, 14, }, { 17, 9, 23, 15, 16, 8, 22, 14, },
{ 5, 29, 3, 27, 4, 28, 2, 26, }, { 5, 29, 3, 27, 4, 28, 2, 26, },
{ 21, 13, 19, 11, 20, 12, 18, 10, }, { 21, 13, 19, 11, 20, 12, 18, 10, },
...@@ -68,7 +68,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_32)[][8]={ ...@@ -68,7 +68,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_32)[][8]={
{ 17, 9, 23, 15, 16, 8, 22, 14, }, { 17, 9, 23, 15, 16, 8, 22, 14, },
}; };
DECLARE_ALIGNED(8, const uint8_t, dither_8x8_73)[][8]={ DECLARE_ALIGNED(8, const uint8_t, ff_dither_8x8_73)[][8] = {
{ 0, 55, 14, 68, 3, 58, 17, 72, }, { 0, 55, 14, 68, 3, 58, 17, 72, },
{ 37, 18, 50, 32, 40, 22, 54, 35, }, { 37, 18, 50, 32, 40, 22, 54, 35, },
{ 9, 64, 5, 59, 13, 67, 8, 63, }, { 9, 64, 5, 59, 13, 67, 8, 63, },
...@@ -81,7 +81,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_73)[][8]={ ...@@ -81,7 +81,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_73)[][8]={
}; };
#if 1 #if 1
DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220)[][8]={ DECLARE_ALIGNED(8, const uint8_t, ff_dither_8x8_220)[][8] = {
{117, 62, 158, 103, 113, 58, 155, 100, }, {117, 62, 158, 103, 113, 58, 155, 100, },
{ 34, 199, 21, 186, 31, 196, 17, 182, }, { 34, 199, 21, 186, 31, 196, 17, 182, },
{144, 89, 131, 76, 141, 86, 127, 72, }, {144, 89, 131, 76, 141, 86, 127, 72, },
...@@ -94,7 +94,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220)[][8]={ ...@@ -94,7 +94,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220)[][8]={
}; };
#elif 1 #elif 1
// tries to correct a gamma of 1.5 // tries to correct a gamma of 1.5
DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220)[][8]={ DECLARE_ALIGNED(8, const uint8_t, ff_dither_8x8_220)[][8] = {
{ 0, 143, 18, 200, 2, 156, 25, 215, }, { 0, 143, 18, 200, 2, 156, 25, 215, },
{ 78, 28, 125, 64, 89, 36, 138, 74, }, { 78, 28, 125, 64, 89, 36, 138, 74, },
{ 10, 180, 3, 161, 16, 195, 8, 175, }, { 10, 180, 3, 161, 16, 195, 8, 175, },
...@@ -107,7 +107,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220)[][8]={ ...@@ -107,7 +107,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220)[][8]={
}; };
#elif 1 #elif 1
// tries to correct a gamma of 2.0 // tries to correct a gamma of 2.0
DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220)[][8]={ DECLARE_ALIGNED(8, const uint8_t, ff_dither_8x8_220)[][8] = {
{ 0, 124, 8, 193, 0, 140, 12, 213, }, { 0, 124, 8, 193, 0, 140, 12, 213, },
{ 55, 14, 104, 42, 66, 19, 119, 52, }, { 55, 14, 104, 42, 66, 19, 119, 52, },
{ 3, 168, 1, 145, 6, 187, 3, 162, }, { 3, 168, 1, 145, 6, 187, 3, 162, },
...@@ -120,7 +120,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220)[][8]={ ...@@ -120,7 +120,7 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220)[][8]={
}; };
#else #else
// tries to correct a gamma of 2.5 // tries to correct a gamma of 2.5
DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220)[][8]={ DECLARE_ALIGNED(8, const uint8_t, ff_dither_8x8_220)[][8] = {
{ 0, 107, 3, 187, 0, 125, 6, 212, }, { 0, 107, 3, 187, 0, 125, 6, 212, },
{ 39, 7, 86, 28, 49, 11, 102, 36, }, { 39, 7, 86, 28, 49, 11, 102, 36, },
{ 1, 158, 0, 131, 3, 180, 1, 151, }, { 1, 158, 0, 131, 3, 180, 1, 151, },
...@@ -329,7 +329,7 @@ yuv2mono_X_c_template(SwsContext *c, const int16_t *lumFilter, ...@@ -329,7 +329,7 @@ yuv2mono_X_c_template(SwsContext *c, const int16_t *lumFilter,
const int16_t **alpSrc, uint8_t *dest, int dstW, const int16_t **alpSrc, uint8_t *dest, int dstW,
int y, enum AVPixelFormat target) int y, enum AVPixelFormat target)
{ {
const uint8_t * const d128=dither_8x8_220[y&7]; const uint8_t * const d128 = ff_dither_8x8_220[y&7];
int i; int i;
unsigned acc = 0; unsigned acc = 0;
int err = 0; int err = 0;
...@@ -382,7 +382,7 @@ yuv2mono_2_c_template(SwsContext *c, const int16_t *buf[2], ...@@ -382,7 +382,7 @@ yuv2mono_2_c_template(SwsContext *c, const int16_t *buf[2],
enum AVPixelFormat target) enum AVPixelFormat target)
{ {
const int16_t *buf0 = buf[0], *buf1 = buf[1]; const int16_t *buf0 = buf[0], *buf1 = buf[1];
const uint8_t * const d128 = dither_8x8_220[y & 7]; const uint8_t * const d128 = ff_dither_8x8_220[y & 7];
int yalpha1 = 4096 - yalpha; int yalpha1 = 4096 - yalpha;
int i; int i;
...@@ -440,7 +440,7 @@ yuv2mono_1_c_template(SwsContext *c, const int16_t *buf0, ...@@ -440,7 +440,7 @@ yuv2mono_1_c_template(SwsContext *c, const int16_t *buf0,
const int16_t *abuf0, uint8_t *dest, int dstW, const int16_t *abuf0, uint8_t *dest, int dstW,
int uvalpha, int y, enum AVPixelFormat target) int uvalpha, int y, enum AVPixelFormat target)
{ {
const uint8_t * const d128 = dither_8x8_220[y & 7]; const uint8_t * const d128 = ff_dither_8x8_220[y & 7];
int i; int i;
if (c->dither == SWS_DITHER_ED) { if (c->dither == SWS_DITHER_ED) {
...@@ -1188,26 +1188,26 @@ yuv2rgb_write(uint8_t *_dest, int i, int Y1, int Y2, ...@@ -1188,26 +1188,26 @@ yuv2rgb_write(uint8_t *_dest, int i, int Y1, int Y2,
int dr1, dg1, db1, dr2, dg2, db2; int dr1, dg1, db1, dr2, dg2, db2;
if (target == AV_PIX_FMT_RGB565 || target == AV_PIX_FMT_BGR565) { if (target == AV_PIX_FMT_RGB565 || target == AV_PIX_FMT_BGR565) {
dr1 = dither_2x2_8[ y & 1 ][0]; dr1 = ff_dither_2x2_8[ y & 1 ][0];
dg1 = dither_2x2_4[ y & 1 ][0]; dg1 = ff_dither_2x2_4[ y & 1 ][0];
db1 = dither_2x2_8[(y & 1) ^ 1][0]; db1 = ff_dither_2x2_8[(y & 1) ^ 1][0];
dr2 = dither_2x2_8[ y & 1 ][1]; dr2 = ff_dither_2x2_8[ y & 1 ][1];
dg2 = dither_2x2_4[ y & 1 ][1]; dg2 = ff_dither_2x2_4[ y & 1 ][1];
db2 = dither_2x2_8[(y & 1) ^ 1][1]; db2 = ff_dither_2x2_8[(y & 1) ^ 1][1];
} else if (target == AV_PIX_FMT_RGB555 || target == AV_PIX_FMT_BGR555) { } else if (target == AV_PIX_FMT_RGB555 || target == AV_PIX_FMT_BGR555) {
dr1 = dither_2x2_8[ y & 1 ][0]; dr1 = ff_dither_2x2_8[ y & 1 ][0];
dg1 = dither_2x2_8[ y & 1 ][1]; dg1 = ff_dither_2x2_8[ y & 1 ][1];
db1 = dither_2x2_8[(y & 1) ^ 1][0]; db1 = ff_dither_2x2_8[(y & 1) ^ 1][0];
dr2 = dither_2x2_8[ y & 1 ][1]; dr2 = ff_dither_2x2_8[ y & 1 ][1];
dg2 = dither_2x2_8[ y & 1 ][0]; dg2 = ff_dither_2x2_8[ y & 1 ][0];
db2 = dither_2x2_8[(y & 1) ^ 1][1]; db2 = ff_dither_2x2_8[(y & 1) ^ 1][1];
} else { } else {
dr1 = dither_4x4_16[ y & 3 ][0]; dr1 = ff_dither_4x4_16[ y & 3 ][0];
dg1 = dither_4x4_16[ y & 3 ][1]; dg1 = ff_dither_4x4_16[ y & 3 ][1];
db1 = dither_4x4_16[(y & 3) ^ 3][0]; db1 = ff_dither_4x4_16[(y & 3) ^ 3][0];
dr2 = dither_4x4_16[ y & 3 ][1]; dr2 = ff_dither_4x4_16[ y & 3 ][1];
dg2 = dither_4x4_16[ y & 3 ][0]; dg2 = ff_dither_4x4_16[ y & 3 ][0];
db2 = dither_4x4_16[(y & 3) ^ 3][1]; db2 = ff_dither_4x4_16[(y & 3) ^ 3][1];
} }
dest[i * 2 + 0] = r[Y1 + dr1] + g[Y1 + dg1] + b[Y1 + db1]; dest[i * 2 + 0] = r[Y1 + dr1] + g[Y1 + dg1] + b[Y1 + db1];
...@@ -1220,15 +1220,15 @@ yuv2rgb_write(uint8_t *_dest, int i, int Y1, int Y2, ...@@ -1220,15 +1220,15 @@ yuv2rgb_write(uint8_t *_dest, int i, int Y1, int Y2,
int dr1, dg1, db1, dr2, dg2, db2; int dr1, dg1, db1, dr2, dg2, db2;
if (target == AV_PIX_FMT_RGB8 || target == AV_PIX_FMT_BGR8) { if (target == AV_PIX_FMT_RGB8 || target == AV_PIX_FMT_BGR8) {
const uint8_t * const d64 = dither_8x8_73[y & 7]; const uint8_t * const d64 = ff_dither_8x8_73[y & 7];
const uint8_t * const d32 = dither_8x8_32[y & 7]; const uint8_t * const d32 = ff_dither_8x8_32[y & 7];
dr1 = dg1 = d32[(i * 2 + 0) & 7]; dr1 = dg1 = d32[(i * 2 + 0) & 7];
db1 = d64[(i * 2 + 0) & 7]; db1 = d64[(i * 2 + 0) & 7];
dr2 = dg2 = d32[(i * 2 + 1) & 7]; dr2 = dg2 = d32[(i * 2 + 1) & 7];
db2 = d64[(i * 2 + 1) & 7]; db2 = d64[(i * 2 + 1) & 7];
} else { } else {
const uint8_t * const d64 = dither_8x8_73 [y & 7]; const uint8_t * const d64 = ff_dither_8x8_73 [y & 7];
const uint8_t * const d128 = dither_8x8_220[y & 7]; const uint8_t * const d128 = ff_dither_8x8_220[y & 7];
dr1 = db1 = d128[(i * 2 + 0) & 7]; dr1 = db1 = d128[(i * 2 + 0) & 7];
dg1 = d64[(i * 2 + 0) & 7]; dg1 = d64[(i * 2 + 0) & 7];
dr2 = db2 = d128[(i * 2 + 1) & 7]; dr2 = db2 = d128[(i * 2 + 1) & 7];
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include "swscale_internal.h" #include "swscale_internal.h"
#include "swscale.h" #include "swscale.h"
DECLARE_ALIGNED(8, const uint8_t, dither_8x8_128)[8][8] = { DECLARE_ALIGNED(8, const uint8_t, ff_dither_8x8_128)[][8] = {
{ 36, 68, 60, 92, 34, 66, 58, 90, }, { 36, 68, 60, 92, 34, 66, 58, 90, },
{ 100, 4, 124, 28, 98, 2, 122, 26, }, { 100, 4, 124, 28, 98, 2, 122, 26, },
{ 52, 84, 44, 76, 50, 82, 42, 74, }, { 52, 84, 44, 76, 50, 82, 42, 74, },
...@@ -557,8 +557,8 @@ static int swScale(SwsContext *c, const uint8_t *src[], ...@@ -557,8 +557,8 @@ static int swScale(SwsContext *c, const uint8_t *src[],
lastInLumBuf, lastInChrBuf); lastInLumBuf, lastInChrBuf);
#endif #endif
if (should_dither) { if (should_dither) {
c->chrDither8 = dither_8x8_128[chrDstY & 7]; c->chrDither8 = ff_dither_8x8_128[chrDstY & 7];
c->lumDither8 = dither_8x8_128[dstY & 7]; c->lumDither8 = ff_dither_8x8_128[dstY & 7];
} }
if (dstY >= dstH - 2) { if (dstY >= dstH - 2) {
/* hmm looks like we can't use MMX here without overwriting /* hmm looks like we can't use MMX here without overwriting
......
...@@ -815,6 +815,15 @@ static av_always_inline int usePal(enum AVPixelFormat pix_fmt) ...@@ -815,6 +815,15 @@ static av_always_inline int usePal(enum AVPixelFormat pix_fmt)
extern const uint64_t ff_dither4[2]; extern const uint64_t ff_dither4[2];
extern const uint64_t ff_dither8[2]; extern const uint64_t ff_dither8[2];
extern const uint8_t ff_dither_2x2_4[3][8];
extern const uint8_t ff_dither_2x2_8[3][8];
extern const uint8_t ff_dither_4x4_16[5][8];
extern const uint8_t ff_dither_8x8_32[9][8];
extern const uint8_t ff_dither_8x8_73[9][8];
extern const uint8_t ff_dither_8x8_128[8][8];
extern const uint8_t ff_dither_8x8_220[9][8];
extern const int32_t ff_yuv2rgb_coeffs[8][4];
extern const AVClass sws_context_class; extern const AVClass sws_context_class;
......
...@@ -226,8 +226,6 @@ int sws_isSupportedEndiannessConversion(enum AVPixelFormat pix_fmt) ...@@ -226,8 +226,6 @@ int sws_isSupportedEndiannessConversion(enum AVPixelFormat pix_fmt)
format_entries[pix_fmt].is_supported_endianness : 0; format_entries[pix_fmt].is_supported_endianness : 0;
} }
extern const int32_t ff_yuv2rgb_coeffs[8][4];
#if FF_API_SWS_FORMAT_NAME #if FF_API_SWS_FORMAT_NAME
const char *sws_format_name(enum AVPixelFormat format) const char *sws_format_name(enum AVPixelFormat format)
{ {
......
...@@ -35,13 +35,6 @@ ...@@ -35,13 +35,6 @@
#include "swscale_internal.h" #include "swscale_internal.h"
#include "libavutil/pixdesc.h" #include "libavutil/pixdesc.h"
extern const uint8_t dither_2x2_4[3][8];
extern const uint8_t dither_2x2_8[3][8];
extern const uint8_t dither_4x4_16[5][8];
extern const uint8_t dither_8x8_32[9][8];
extern const uint8_t dither_8x8_73[9][8];
extern const uint8_t dither_8x8_220[9][8];
const int32_t ff_yuv2rgb_coeffs[8][4] = { const int32_t ff_yuv2rgb_coeffs[8][4] = {
{ 117504, 138453, 13954, 34903 }, /* no sequence_display_extension */ { 117504, 138453, 13954, 34903 }, /* no sequence_display_extension */
{ 117504, 138453, 13954, 34903 }, /* ITU-R Rec. 709 (1990) */ { 117504, 138453, 13954, 34903 }, /* ITU-R Rec. 709 (1990) */
...@@ -390,9 +383,9 @@ ENDYUV2RGBLINE(24, 1) ...@@ -390,9 +383,9 @@ ENDYUV2RGBLINE(24, 1)
ENDYUV2RGBFUNC() ENDYUV2RGBFUNC()
YUV2RGBFUNC(yuv2rgb_c_16_ordered_dither, uint16_t, 0) YUV2RGBFUNC(yuv2rgb_c_16_ordered_dither, uint16_t, 0)
const uint8_t *d16 = dither_2x2_8[y & 1]; const uint8_t *d16 = ff_dither_2x2_8[y & 1];
const uint8_t *e16 = dither_2x2_4[y & 1]; const uint8_t *e16 = ff_dither_2x2_4[y & 1];
const uint8_t *f16 = dither_2x2_8[(y & 1)^1]; const uint8_t *f16 = ff_dither_2x2_8[(y & 1)^1];
#define PUTRGB16(dst, src, i, o) \ #define PUTRGB16(dst, src, i, o) \
Y = src[2 * i]; \ Y = src[2 * i]; \
...@@ -421,8 +414,8 @@ YUV2RGBFUNC(yuv2rgb_c_16_ordered_dither, uint16_t, 0) ...@@ -421,8 +414,8 @@ YUV2RGBFUNC(yuv2rgb_c_16_ordered_dither, uint16_t, 0)
CLOSEYUV2RGBFUNC(8) CLOSEYUV2RGBFUNC(8)
YUV2RGBFUNC(yuv2rgb_c_15_ordered_dither, uint16_t, 0) YUV2RGBFUNC(yuv2rgb_c_15_ordered_dither, uint16_t, 0)
const uint8_t *d16 = dither_2x2_8[y & 1]; const uint8_t *d16 = ff_dither_2x2_8[y & 1];
const uint8_t *e16 = dither_2x2_8[(y & 1)^1]; const uint8_t *e16 = ff_dither_2x2_8[(y & 1)^1];
#define PUTRGB15(dst, src, i, o) \ #define PUTRGB15(dst, src, i, o) \
Y = src[2 * i]; \ Y = src[2 * i]; \
...@@ -452,7 +445,7 @@ CLOSEYUV2RGBFUNC(8) ...@@ -452,7 +445,7 @@ CLOSEYUV2RGBFUNC(8)
// r, g, b, dst_1, dst_2 // r, g, b, dst_1, dst_2
YUV2RGBFUNC(yuv2rgb_c_12_ordered_dither, uint16_t, 0) YUV2RGBFUNC(yuv2rgb_c_12_ordered_dither, uint16_t, 0)
const uint8_t *d16 = dither_4x4_16[y & 3]; const uint8_t *d16 = ff_dither_4x4_16[y & 3];
#define PUTRGB12(dst, src, i, o) \ #define PUTRGB12(dst, src, i, o) \
Y = src[2 * i]; \ Y = src[2 * i]; \
...@@ -483,8 +476,8 @@ CLOSEYUV2RGBFUNC(8) ...@@ -483,8 +476,8 @@ CLOSEYUV2RGBFUNC(8)
// r, g, b, dst_1, dst_2 // r, g, b, dst_1, dst_2
YUV2RGBFUNC(yuv2rgb_c_8_ordered_dither, uint8_t, 0) YUV2RGBFUNC(yuv2rgb_c_8_ordered_dither, uint8_t, 0)
const uint8_t *d32 = dither_8x8_32[y & 7]; const uint8_t *d32 = ff_dither_8x8_32[y & 7];
const uint8_t *d64 = dither_8x8_73[y & 7]; const uint8_t *d64 = ff_dither_8x8_73[y & 7];
#define PUTRGB8(dst, src, i, o) \ #define PUTRGB8(dst, src, i, o) \
Y = src[2 * i]; \ Y = src[2 * i]; \
...@@ -514,8 +507,8 @@ YUV2RGBFUNC(yuv2rgb_c_8_ordered_dither, uint8_t, 0) ...@@ -514,8 +507,8 @@ YUV2RGBFUNC(yuv2rgb_c_8_ordered_dither, uint8_t, 0)
CLOSEYUV2RGBFUNC(8) CLOSEYUV2RGBFUNC(8)
YUV2RGBFUNC(yuv2rgb_c_4_ordered_dither, uint8_t, 0) YUV2RGBFUNC(yuv2rgb_c_4_ordered_dither, uint8_t, 0)
const uint8_t * d64 = dither_8x8_73[y & 7]; const uint8_t * d64 = ff_dither_8x8_73[y & 7];
const uint8_t *d128 = dither_8x8_220[y & 7]; const uint8_t *d128 = ff_dither_8x8_220[y & 7];
int acc; int acc;
#define PUTRGB4D(dst, src, i, o) \ #define PUTRGB4D(dst, src, i, o) \
...@@ -547,8 +540,8 @@ YUV2RGBFUNC(yuv2rgb_c_4_ordered_dither, uint8_t, 0) ...@@ -547,8 +540,8 @@ YUV2RGBFUNC(yuv2rgb_c_4_ordered_dither, uint8_t, 0)
CLOSEYUV2RGBFUNC(4) CLOSEYUV2RGBFUNC(4)
YUV2RGBFUNC(yuv2rgb_c_4b_ordered_dither, uint8_t, 0) YUV2RGBFUNC(yuv2rgb_c_4b_ordered_dither, uint8_t, 0)
const uint8_t *d64 = dither_8x8_73[y & 7]; const uint8_t *d64 = ff_dither_8x8_73[y & 7];
const uint8_t *d128 = dither_8x8_220[y & 7]; const uint8_t *d128 = ff_dither_8x8_220[y & 7];
#define PUTRGB4DB(dst, src, i, o) \ #define PUTRGB4DB(dst, src, i, o) \
Y = src[2 * i]; \ Y = src[2 * i]; \
...@@ -578,7 +571,7 @@ YUV2RGBFUNC(yuv2rgb_c_4b_ordered_dither, uint8_t, 0) ...@@ -578,7 +571,7 @@ YUV2RGBFUNC(yuv2rgb_c_4b_ordered_dither, uint8_t, 0)
CLOSEYUV2RGBFUNC(8) CLOSEYUV2RGBFUNC(8)
YUV2RGBFUNC(yuv2rgb_c_1_ordered_dither, uint8_t, 0) YUV2RGBFUNC(yuv2rgb_c_1_ordered_dither, uint8_t, 0)
const uint8_t *d128 = dither_8x8_220[y & 7]; const uint8_t *d128 = ff_dither_8x8_220[y & 7];
char out_1 = 0, out_2 = 0; char out_1 = 0, out_2 = 0;
g = c->table_gU[128 + YUVRGB_TABLE_HEADROOM] + c->table_gV[128 + YUVRGB_TABLE_HEADROOM]; g = c->table_gU[128 + YUVRGB_TABLE_HEADROOM] + c->table_gV[128 + YUVRGB_TABLE_HEADROOM];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment