History

swscale/input: add support for NV20

James Almer committed 1 year ago

Commit 2f856b41 parent 15025512 files · +29 −10Browse files

Unified · Split

2 files
  1. libswscale/format.c +2 −0
  2. libswscale/input.c +27 −10
libswscale/format.c+2−0
@@ -226,6 +226,8 @@ static const FormatEntry format_entries[] = { · 225 unmodified lines
226226 [AV_PIX_FMT_Y216LE] = { 1, 1 },
227227 [AV_PIX_FMT_X2RGB10LE] = { 1, 1 },
228228 [AV_PIX_FMT_X2BGR10LE] = { 1, 1 },
229+ [AV_PIX_FMT_NV20BE] = { 1, 0 },
230+ [AV_PIX_FMT_NV20LE] = { 1, 0 },
229231 [AV_PIX_FMT_P210BE] = { 1, 1 },
230232 [AV_PIX_FMT_P210LE] = { 1, 1 },
231233 [AV_PIX_FMT_P212BE] = { 1, 1 },
libswscale/input.c+27−10
@@ -945,8 +945,9 @@ static void nv21ToUV_c(uint8_t *dstU, uint8_t *dstV, · 944 unmodified lines
945945 nvXXtoUV_c(dstV, dstU, src1, width);
946946 }
947947
948−#define p01x_uv_wrapper(bits, shift) \
949− static void p0 ## bits ## LEToUV_c(uint8_t *dstU, uint8_t *dstV, \
948+#define p01x_uv_wrapper(fmt, shift) \
949+ static void fmt ## LEToUV ## _c(uint8_t *dstU, \
950+ uint8_t *dstV, \
950951 const uint8_t *unused0, \
951952 const uint8_t *src1, \
952953 const uint8_t *src2, int width, \
@@ -959,7 +960,8 @@ static void nv21ToUV_c(uint8_t *dstU, uint8_t *dstV, · 6 unmodified lines
959960 } \
960961 } \
961962 \
962− static void p0 ## bits ## BEToUV_c(uint8_t *dstU, uint8_t *dstV, \
963+ static void fmt ## BEToUV ## _c(uint8_t *dstU, \
964+ uint8_t *dstV, \
963965 const uint8_t *unused0, \
964966 const uint8_t *src1, \
965967 const uint8_t *src2, int width, \
@@ -972,8 +974,9 @@ static void nv21ToUV_c(uint8_t *dstU, uint8_t *dstV, · 6 unmodified lines
972974 } \
973975 }
974976
975−#define p01x_wrapper(bits, shift) \
976− static void p0 ## bits ## LEToY_c(uint8_t *dst, const uint8_t *src, \
977+#define p01x_wrapper(fmt, shift) \
978+ static void fmt ## LEToY ## _c(uint8_t *dst, \
979+ const uint8_t *src, \
977980 const uint8_t *unused1, \
978981 const uint8_t *unused2, int width, \
979982 uint32_t *unused, void *opq) \
@@ -984,7 +987,8 @@ static void nv21ToUV_c(uint8_t *dstU, uint8_t *dstV, · 4 unmodified lines
984987 } \
985988 } \
986989 \
987− static void p0 ## bits ## BEToY_c(uint8_t *dst, const uint8_t *src, \
990+ static void fmt ## BEToY ## _c(uint8_t *dst, \
991+ const uint8_t *src, \
988992 const uint8_t *unused1, \
989993 const uint8_t *unused2, int width, \
990994 uint32_t *unused, void *opq) \
@@ -994,11 +998,12 @@ static void nv21ToUV_c(uint8_t *dstU, uint8_t *dstV, · 3 unmodified lines
994998 AV_WN16(dst + i * 2, AV_RB16(src + i * 2) >> shift); \
995999 } \
9961000 } \
997− p01x_uv_wrapper(bits, shift)
1001+ p01x_uv_wrapper(fmt, shift)
9981002
999−p01x_wrapper(10, 6)
1000−p01x_wrapper(12, 4)
1001−p01x_uv_wrapper(16, 0)
1003+p01x_wrapper(nv20, 0)
1004+p01x_wrapper(p010, 6)
1005+p01x_wrapper(p012, 4)
1006+p01x_uv_wrapper(p016, 0)
10021007
10031008 static void bgr24ToY_c(uint8_t *_dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2,
10041009 int width, uint32_t *rgb2yuv, void *opq)
@@ -1910,11 +1915,17 @@ av_cold void ff_sws_init_input_funcs(SwsInternal *c, · 905 unmodified lines
19101915 case AV_PIX_FMT_XV48BE:
19111916 *chrToYV12 = read_xv48be_UV_c;
19121917 break;
1918+ case AV_PIX_FMT_NV20LE:
1919+ *chrToYV12 = nv20LEToUV_c;
1920+ break;
19131921 case AV_PIX_FMT_P010LE:
19141922 case AV_PIX_FMT_P210LE:
19151923 case AV_PIX_FMT_P410LE:
19161924 *chrToYV12 = p010LEToUV_c;
19171925 break;
1926+ case AV_PIX_FMT_NV20BE:
1927+ *chrToYV12 = nv20BEToUV_c;
1928+ break;
19181929 case AV_PIX_FMT_P010BE:
19191930 case AV_PIX_FMT_P210BE:
19201931 case AV_PIX_FMT_P410BE:
@@ -2468,11 +2479,17 @@ av_cold void ff_sws_init_input_funcs(SwsInternal *c, · 547 unmodified lines
24682479 case AV_PIX_FMT_BGRA64LE:
24692480 *lumToYV12 = bgr64LEToY_c;
24702481 break;
2482+ case AV_PIX_FMT_NV20LE:
2483+ *lumToYV12 = nv20LEToY_c;
2484+ break;
24712485 case AV_PIX_FMT_P010LE:
24722486 case AV_PIX_FMT_P210LE:
24732487 case AV_PIX_FMT_P410LE:
24742488 *lumToYV12 = p010LEToY_c;
24752489 break;
2490+ case AV_PIX_FMT_NV20BE:
2491+ *lumToYV12 = nv20BEToY_c;
2492+ break;
24762493 case AV_PIX_FMT_P010BE:
24772494 case AV_PIX_FMT_P210BE:
24782495 case AV_PIX_FMT_P410BE:

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t