- r = (void *)c->table_rV[V]; \
- g = (void *)(c->table_gU[U] + c->table_gV[V]); \
- b = (void *)c->table_bU[U];
-
-#define PUTRGB(dst,src,i) \
- Y = src[2*i]; \
- dst[2*i ] = r[Y] + g[Y] + b[Y]; \
- Y = src[2*i+1]; \
- dst[2*i+1] = r[Y] + g[Y] + b[Y];
-
-#define PUTRGB24(dst,src,i) \
- Y = src[2*i]; \
- dst[6*i+0] = r[Y]; dst[6*i+1] = g[Y]; dst[6*i+2] = b[Y]; \
- Y = src[2*i+1]; \
- dst[6*i+3] = r[Y]; dst[6*i+4] = g[Y]; dst[6*i+5] = b[Y];
-
-#define PUTBGR24(dst,src,i) \
- Y = src[2*i]; \
- dst[6*i+0] = b[Y]; dst[6*i+1] = g[Y]; dst[6*i+2] = r[Y]; \
- Y = src[2*i+1]; \
- dst[6*i+3] = b[Y]; dst[6*i+4] = g[Y]; dst[6*i+5] = r[Y];
-
-#define PUTRGBA(dst,ysrc,asrc,i,s) \
- Y = ysrc[2*i]; \
- dst[2*i ] = r[Y] + g[Y] + b[Y] + (asrc[2*i ]<<s); \
- Y = ysrc[2*i+1]; \
- dst[2*i+1] = r[Y] + g[Y] + b[Y] + (asrc[2*i+1]<<s);
-
-#define PUTRGB48(dst,src,i) \
- Y = src[2*i]; \
- dst[12*i+ 0] = dst[12*i+ 1] = r[Y]; \
- dst[12*i+ 2] = dst[12*i+ 3] = g[Y]; \
- dst[12*i+ 4] = dst[12*i+ 5] = b[Y]; \
- Y = src[2*i+1]; \
- dst[12*i+ 6] = dst[12*i+ 7] = r[Y]; \
- dst[12*i+ 8] = dst[12*i+ 9] = g[Y]; \
- dst[12*i+10] = dst[12*i+11] = b[Y];
-
-#define PUTBGR48(dst,src,i) \
- Y = src[2*i]; \
- dst[12*i+ 0] = dst[12*i+ 1] = b[Y]; \
- dst[12*i+ 2] = dst[12*i+ 3] = g[Y]; \
- dst[12*i+ 4] = dst[12*i+ 5] = r[Y]; \
- Y = src[2*i+1]; \
- dst[12*i+ 6] = dst[12*i+ 7] = b[Y]; \
- dst[12*i+ 8] = dst[12*i+ 9] = g[Y]; \
- dst[12*i+10] = dst[12*i+11] = r[Y];
-
-#define YUV2RGBFUNC(func_name, dst_type, alpha) \
-static int func_name(SwsContext *c, const uint8_t* src[], int srcStride[], int srcSliceY, \
- int srcSliceH, uint8_t* dst[], int dstStride[]) \
-{\
- int y;\
-\
- if (!alpha && c->srcFormat == PIX_FMT_YUV422P) {\
- srcStride[1] *= 2;\
- srcStride[2] *= 2;\
- }\
- for (y=0; y<srcSliceH; y+=2) {\
- dst_type *dst_1 = (dst_type*)(dst[0] + (y+srcSliceY )*dstStride[0]);\
- dst_type *dst_2 = (dst_type*)(dst[0] + (y+srcSliceY+1)*dstStride[0]);\
- dst_type av_unused *r, *b;\
- dst_type *g;\
- const uint8_t *py_1 = src[0] + y*srcStride[0];\
- const uint8_t *py_2 = py_1 + srcStride[0];\
- const uint8_t *pu = src[1] + (y>>1)*srcStride[1];\
- const uint8_t *pv = src[2] + (y>>1)*srcStride[2];\
- const uint8_t av_unused *pa_1, *pa_2;\
- unsigned int h_size = c->dstW>>3;\
- if (alpha) {\
- pa_1 = src[3] + y*srcStride[3];\
- pa_2 = pa_1 + srcStride[3];\
- }\
- while (h_size--) {\
- int av_unused U, V;\
- int Y;\
-
-#define ENDYUV2RGBLINE(dst_delta)\
- pu += 4;\
- pv += 4;\
- py_1 += 8;\
- py_2 += 8;\
- dst_1 += dst_delta;\
- dst_2 += dst_delta;\
- }\
- if (c->dstW & 4) {\
- int av_unused Y, U, V;\
-
-#define ENDYUV2RGBFUNC()\
- }\
- }\
- return srcSliceH;\
-}
+ r = (void *)c->table_rV[V+YUVRGB_TABLE_HEADROOM]; \
+ g = (void *)(c->table_gU[U+YUVRGB_TABLE_HEADROOM] + c->table_gV[V+YUVRGB_TABLE_HEADROOM]); \
+ b = (void *)c->table_bU[U+YUVRGB_TABLE_HEADROOM];
+
+#define PUTRGB(dst, src, i) \
+ Y = src[2 * i]; \
+ dst[2 * i] = r[Y] + g[Y] + b[Y]; \
+ Y = src[2 * i + 1]; \
+ dst[2 * i + 1] = r[Y] + g[Y] + b[Y];
+
+#define PUTRGB24(dst, src, i) \
+ Y = src[2 * i]; \
+ dst[6 * i + 0] = r[Y]; \
+ dst[6 * i + 1] = g[Y]; \
+ dst[6 * i + 2] = b[Y]; \
+ Y = src[2 * i + 1]; \
+ dst[6 * i + 3] = r[Y]; \
+ dst[6 * i + 4] = g[Y]; \
+ dst[6 * i + 5] = b[Y];
+
+#define PUTBGR24(dst, src, i) \
+ Y = src[2 * i]; \
+ dst[6 * i + 0] = b[Y]; \
+ dst[6 * i + 1] = g[Y]; \
+ dst[6 * i + 2] = r[Y]; \
+ Y = src[2 * i + 1]; \
+ dst[6 * i + 3] = b[Y]; \
+ dst[6 * i + 4] = g[Y]; \
+ dst[6 * i + 5] = r[Y];
+
+#define PUTRGBA(dst, ysrc, asrc, i, s) \
+ Y = ysrc[2 * i]; \
+ dst[2 * i] = r[Y] + g[Y] + b[Y] + (asrc[2 * i] << s); \
+ Y = ysrc[2 * i + 1]; \
+ dst[2 * i + 1] = r[Y] + g[Y] + b[Y] + (asrc[2 * i + 1] << s);
+
+#define PUTRGB48(dst, src, i) \
+ Y = src[ 2 * i]; \
+ dst[12 * i + 0] = dst[12 * i + 1] = r[Y]; \
+ dst[12 * i + 2] = dst[12 * i + 3] = g[Y]; \
+ dst[12 * i + 4] = dst[12 * i + 5] = b[Y]; \
+ Y = src[ 2 * i + 1]; \
+ dst[12 * i + 6] = dst[12 * i + 7] = r[Y]; \
+ dst[12 * i + 8] = dst[12 * i + 9] = g[Y]; \
+ dst[12 * i + 10] = dst[12 * i + 11] = b[Y];
+
+#define PUTBGR48(dst, src, i) \
+ Y = src[2 * i]; \
+ dst[12 * i + 0] = dst[12 * i + 1] = b[Y]; \
+ dst[12 * i + 2] = dst[12 * i + 3] = g[Y]; \
+ dst[12 * i + 4] = dst[12 * i + 5] = r[Y]; \
+ Y = src[2 * i + 1]; \
+ dst[12 * i + 6] = dst[12 * i + 7] = b[Y]; \
+ dst[12 * i + 8] = dst[12 * i + 9] = g[Y]; \
+ dst[12 * i + 10] = dst[12 * i + 11] = r[Y];
+
+#define YUV2RGBFUNC(func_name, dst_type, alpha) \
+ static int func_name(SwsContext *c, const uint8_t *src[], \
+ int srcStride[], int srcSliceY, int srcSliceH, \
+ uint8_t *dst[], int dstStride[]) \
+ { \
+ int y; \
+ \
+ if (!alpha && c->srcFormat == PIX_FMT_YUV422P) { \
+ srcStride[1] *= 2; \
+ srcStride[2] *= 2; \
+ } \
+ for (y = 0; y < srcSliceH; y += 2) { \
+ dst_type *dst_1 = \
+ (dst_type *)(dst[0] + (y + srcSliceY) * dstStride[0]); \
+ dst_type *dst_2 = \
+ (dst_type *)(dst[0] + (y + srcSliceY + 1) * dstStride[0]); \
+ dst_type av_unused *r, *g, *b; \
+ const uint8_t *py_1 = src[0] + y * srcStride[0]; \
+ const uint8_t *py_2 = py_1 + srcStride[0]; \
+ const uint8_t *pu = src[1] + (y >> 1) * srcStride[1]; \
+ const uint8_t *pv = src[2] + (y >> 1) * srcStride[2]; \
+ const uint8_t av_unused *pa_1, *pa_2; \
+ unsigned int h_size = c->dstW >> 3; \
+ if (alpha) { \
+ pa_1 = src[3] + y * srcStride[3]; \
+ pa_2 = pa_1 + srcStride[3]; \
+ } \
+ while (h_size--) { \
+ int av_unused U, V, Y; \
+
+#define ENDYUV2RGBLINE(dst_delta) \
+ pu += 4; \
+ pv += 4; \
+ py_1 += 8; \
+ py_2 += 8; \
+ dst_1 += dst_delta; \
+ dst_2 += dst_delta; \
+ } \
+ if (c->dstW & 4) { \
+ int av_unused Y, U, V; \
+
+#define ENDYUV2RGBFUNC() \
+ } \
+ } \
+ return srcSliceH; \
+ }