History

avfilter/vsrc_testsrc: add support for RGB48/RGBA64

James Almer committed 2 years ago

Commit c8438541 parent e7382b41 file · +20 −0Browse files

Unified · Split

libavfilter/vsrc_testsrc.c+20−0
@@ -1000,6 +1000,7 @@ static void rgbtest_put_pixel(uint8_t *dstp[4], int dst_linesizep[4], · 999 unmodified lines
10001000 uint8_t *dst = dstp[0];
10011001 ptrdiff_t dst_linesize = dst_linesizep[0];
10021002 uint32_t v;
1003+ uint64_t v16;
10031004 uint8_t *p;
10041005 uint16_t *p16;
10051006
@@ -1016,6 +1017,23 @@ static void rgbtest_put_pixel(uint8_t *dstp[4], int dst_linesizep[4], · 10 unmodified lines
10161017 p = dst + 3*x + y*dst_linesize;
10171018 AV_WL24(p, v);
10181019 break;
1020+ case AV_PIX_FMT_RGB48:
1021+ case AV_PIX_FMT_BGR48:
1022+ v16 = ((uint64_t)r << (rgba_map[R]*16)) + ((uint64_t)g << (rgba_map[G]*16)) + ((uint64_t)b << (rgba_map[B]*16));
1023+ p16 = (uint16_t *)(dst + 6*x + y*dst_linesize);
1024+ *p16++ = v16 >> 32;
1025+ *p16++ = v16 >> 16;
1026+ *p16++ = v16;
1027+ break;
1028+ case AV_PIX_FMT_RGBA64:
1029+ case AV_PIX_FMT_BGRA64:
1030+ v16 = ((uint64_t)r << (rgba_map[R]*16)) + ((uint64_t)g << (rgba_map[G]*16)) + ((uint64_t)b << (rgba_map[B]*16));
1031+ p16 = (uint16_t *)(dst + 8*x + y*dst_linesize);
1032+ *p16++ = v16 >> 32;
1033+ *p16++ = v16 >> 16;
1034+ *p16++ = v16;
1035+ *p16++ = 0xffff;
1036+ break;
10191037 case AV_PIX_FMT_RGBA:
10201038 case AV_PIX_FMT_BGRA:
10211039 case AV_PIX_FMT_ARGB:
@@ -1114,6 +1132,8 @@ static const enum AVPixelFormat rgbtest_pix_fmts[] = { · 92 unmodified lines
11141132 AV_PIX_FMT_RGB444, AV_PIX_FMT_BGR444,
11151133 AV_PIX_FMT_RGB565, AV_PIX_FMT_BGR565,
11161134 AV_PIX_FMT_RGB555, AV_PIX_FMT_BGR555,
1135+ AV_PIX_FMT_RGB48, AV_PIX_FMT_BGR48,
1136+ AV_PIX_FMT_RGBA64, AV_PIX_FMT_BGRA64,
11171137 AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10,
11181138 AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16,
11191139 AV_PIX_FMT_X2RGB10LE, AV_PIX_FMT_X2BGR10LE,

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