libswscale: add output support for AV_PIX_FMT_GBRAPF32

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Mark Reid 2020-05-03 16:10:04 -07:00 committed by Michael Niedermayer
parent ba5d0515a6
commit b4967fc71c
20 changed files with 221 additions and 15 deletions

View File

@ -2312,6 +2312,82 @@ yuv2gbrp16_full_X_c(SwsContext *c, const int16_t *lumFilter,
} }
} }
static void
yuv2gbrpf32_full_X_c(SwsContext *c, const int16_t *lumFilter,
const int16_t **lumSrcx, int lumFilterSize,
const int16_t *chrFilter, const int16_t **chrUSrcx,
const int16_t **chrVSrcx, int chrFilterSize,
const int16_t **alpSrcx, uint8_t **dest,
int dstW, int y)
{
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(c->dstFormat);
int i;
int hasAlpha = (desc->flags & AV_PIX_FMT_FLAG_ALPHA) && alpSrcx;
uint32_t **dest32 = (uint32_t**)dest;
const int32_t **lumSrc = (const int32_t**)lumSrcx;
const int32_t **chrUSrc = (const int32_t**)chrUSrcx;
const int32_t **chrVSrc = (const int32_t**)chrVSrcx;
const int32_t **alpSrc = (const int32_t**)alpSrcx;
static const float float_mult = 1.0f / 65535.0f;
for (i = 0; i < dstW; i++) {
int j;
int Y = -0x40000000;
int U = -(128 << 23);
int V = -(128 << 23);
int R, G, B, A;
for (j = 0; j < lumFilterSize; j++)
Y += lumSrc[j][i] * (unsigned)lumFilter[j];
for (j = 0; j < chrFilterSize; j++) {
U += chrUSrc[j][i] * (unsigned)chrFilter[j];
V += chrVSrc[j][i] * (unsigned)chrFilter[j];
}
Y >>= 14;
Y += 0x10000;
U >>= 14;
V >>= 14;
if (hasAlpha) {
A = -0x40000000;
for (j = 0; j < lumFilterSize; j++)
A += alpSrc[j][i] * (unsigned)lumFilter[j];
A >>= 1;
A += 0x20002000;
}
Y -= c->yuv2rgb_y_offset;
Y *= c->yuv2rgb_y_coeff;
Y += 1 << 13;
R = V * c->yuv2rgb_v2r_coeff;
G = V * c->yuv2rgb_v2g_coeff + U * c->yuv2rgb_u2g_coeff;
B = U * c->yuv2rgb_u2b_coeff;
R = av_clip_uintp2(Y + R, 30);
G = av_clip_uintp2(Y + G, 30);
B = av_clip_uintp2(Y + B, 30);
dest32[0][i] = av_float2int(float_mult * (float)(G >> 14));
dest32[1][i] = av_float2int(float_mult * (float)(B >> 14));
dest32[2][i] = av_float2int(float_mult * (float)(R >> 14));
if (hasAlpha)
dest32[3][i] = av_float2int(float_mult * (float)(av_clip_uintp2(A, 30) >> 14));
}
if ((!isBE(c->dstFormat)) != (!HAVE_BIGENDIAN)) {
for (i = 0; i < dstW; i++) {
dest32[0][i] = av_bswap32(dest32[0][i]);
dest32[1][i] = av_bswap32(dest32[1][i]);
dest32[2][i] = av_bswap32(dest32[2][i]);
if (hasAlpha)
dest32[3][i] = av_bswap32(dest32[3][i]);
}
}
}
static void static void
yuv2ya8_1_c(SwsContext *c, const int16_t *buf0, yuv2ya8_1_c(SwsContext *c, const int16_t *buf0,
const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *ubuf[2], const int16_t *vbuf[2],
@ -2716,6 +2792,12 @@ av_cold void ff_sws_init_output_funcs(SwsContext *c,
case AV_PIX_FMT_GBRAP16LE: case AV_PIX_FMT_GBRAP16LE:
*yuv2anyX = yuv2gbrp16_full_X_c; *yuv2anyX = yuv2gbrp16_full_X_c;
break; break;
case AV_PIX_FMT_GBRPF32BE:
case AV_PIX_FMT_GBRPF32LE:
case AV_PIX_FMT_GBRAPF32BE:
case AV_PIX_FMT_GBRAPF32LE:
*yuv2anyX = yuv2gbrpf32_full_X_c;
break;
} }
if (!*yuv2packedX && !*yuv2anyX) if (!*yuv2packedX && !*yuv2anyX)
goto YUV_PACKED; goto YUV_PACKED;

View File

@ -189,23 +189,26 @@ int ff_init_slice_from_src(SwsSlice * s, uint8_t *src[4], int stride[4], int src
return 0; return 0;
} }
static void fill_ones(SwsSlice *s, int n, int is16bit) static void fill_ones(SwsSlice *s, int n, int bpc)
{ {
int i; int i, j, k, size, end;
for (i = 0; i < 4; ++i) { for (i = 0; i < 4; ++i) {
int j; size = s->plane[i].available_lines;
int size = s->plane[i].available_lines;
for (j = 0; j < size; ++j) { for (j = 0; j < size; ++j) {
int k; if (bpc == 16) {
int end = is16bit ? n>>1: n; end = (n>>1) + 1;
// fill also one extra element
end += 1;
if (is16bit)
for (k = 0; k < end; ++k) for (k = 0; k < end; ++k)
((int32_t*)(s->plane[i].line[j]))[k] = 1<<18; ((int32_t*)(s->plane[i].line[j]))[k] = 1<<18;
else } else if (bpc == 32) {
end = (n>>2) + 1;
for (k = 0; k < end; ++k)
((int64_t*)(s->plane[i].line[j]))[k] = 1LL<<34;
} else {
end = n + 1;
for (k = 0; k < end; ++k) for (k = 0; k < end; ++k)
((int16_t*)(s->plane[i].line[j]))[k] = 1<<14; ((int16_t*)(s->plane[i].line[j]))[k] = 1<<14;
}
} }
} }
} }
@ -272,6 +275,9 @@ int ff_init_filters(SwsContext * c)
if (c->dstBpc == 16) if (c->dstBpc == 16)
dst_stride <<= 1; dst_stride <<= 1;
if (c->dstBpc == 32)
dst_stride <<= 2;
num_ydesc = need_lum_conv ? 2 : 1; num_ydesc = need_lum_conv ? 2 : 1;
num_cdesc = need_chr_conv ? 2 : 1; num_cdesc = need_chr_conv ? 2 : 1;
@ -302,7 +308,7 @@ int ff_init_filters(SwsContext * c)
res = alloc_lines(&c->slice[i], dst_stride, c->dstW); res = alloc_lines(&c->slice[i], dst_stride, c->dstW);
if (res < 0) goto cleanup; if (res < 0) goto cleanup;
fill_ones(&c->slice[i], dst_stride>>1, c->dstBpc == 16); fill_ones(&c->slice[i], dst_stride>>1, c->dstBpc);
// vertical scaler output // vertical scaler output
++i; ++i;

View File

@ -500,6 +500,11 @@ static int swscale(SwsContext *c, const uint8_t *src[],
fillPlane16(dst[3], dstStride[3], length, height, lastDstY, fillPlane16(dst[3], dstStride[3], length, height, lastDstY,
1, desc->comp[3].depth, 1, desc->comp[3].depth,
isBE(dstFormat)); isBE(dstFormat));
} else if (is32BPS(dstFormat)) {
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(dstFormat);
fillPlane32(dst[3], dstStride[3], length, height, lastDstY,
1, desc->comp[3].depth,
isBE(dstFormat), desc->flags & AV_PIX_FMT_FLAG_FLOAT);
} else } else
fillPlane(dst[3], dstStride[3], length, height, lastDstY, 255); fillPlane(dst[3], dstStride[3], length, height, lastDstY, 255);
} }

View File

@ -647,6 +647,13 @@ static av_always_inline int is16BPS(enum AVPixelFormat pix_fmt)
return desc->comp[0].depth == 16; return desc->comp[0].depth == 16;
} }
static av_always_inline int is32BPS(enum AVPixelFormat pix_fmt)
{
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
av_assert0(desc);
return desc->comp[0].depth == 32;
}
static av_always_inline int isNBPS(enum AVPixelFormat pix_fmt) static av_always_inline int isNBPS(enum AVPixelFormat pix_fmt)
{ {
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
@ -918,8 +925,37 @@ static inline void fillPlane16(uint8_t *plane, int stride, int width, int height
} }
ptr += stride; ptr += stride;
} }
#undef FILL
} }
static inline void fillPlane32(uint8_t *plane, int stride, int width, int height, int y,
int alpha, int bits, const int big_endian, int is_float)
{
int i, j;
uint8_t *ptr = plane + stride * y;
uint32_t v;
uint32_t onef32 = 0x3f800000;
if (is_float)
v = alpha ? onef32 : 0;
else
v = alpha ? 0xFFFFFFFF>>(32-bits) : (1<<(bits-1));
for (i = 0; i < height; i++) {
#define FILL(wfunc) \
for (j = 0; j < width; j++) {\
wfunc(ptr+4*j, v);\
}
if (big_endian) {
FILL(AV_WB32);
} else {
FILL(AV_WL32);
}
ptr += stride;
}
#undef FILL
}
#define MAX_SLICE_PLANES 4 #define MAX_SLICE_PLANES 4
/// Slice plane /// Slice plane

View File

@ -491,6 +491,34 @@ static int bswap_16bpc(SwsContext *c, const uint8_t *src[],
return srcSliceH; return srcSliceH;
} }
static int bswap_32bpc(SwsContext *c, const uint8_t *src[],
int srcStride[], int srcSliceY, int srcSliceH,
uint8_t *dst[], int dstStride[])
{
int i, j, p;
for (p = 0; p < 4; p++) {
int srcstr = srcStride[p] / 4;
int dststr = dstStride[p] / 4;
uint32_t *dstPtr = (uint32_t *) dst[p];
const uint32_t *srcPtr = (const uint32_t *) src[p];
int min_stride = FFMIN(FFABS(srcstr), FFABS(dststr));
if(!dstPtr || !srcPtr)
continue;
dstPtr += (srcSliceY >> c->chrDstVSubSample) * dststr;
for (i = 0; i < (srcSliceH >> c->chrDstVSubSample); i++) {
for (j = 0; j < min_stride; j++) {
dstPtr[j] = av_bswap32(srcPtr[j]);
}
srcPtr += srcstr;
dstPtr += dststr;
}
}
return srcSliceH;
}
static int palToRgbWrapper(SwsContext *c, const uint8_t *src[], int srcStride[], static int palToRgbWrapper(SwsContext *c, const uint8_t *src[], int srcStride[],
int srcSliceY, int srcSliceH, uint8_t *dst[], int srcSliceY, int srcSliceH, uint8_t *dst[],
int dstStride[]) int dstStride[])
@ -2077,6 +2105,11 @@ void ff_get_unscaled_swscale(SwsContext *c)
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YUV444P16)) IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YUV444P16))
c->swscale = bswap_16bpc; c->swscale = bswap_16bpc;
/* bswap 32 bits per pixel/component formats */
if (IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRPF32) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRAPF32))
c->swscale = bswap_32bpc;
if (usePal(srcFormat) && isByteRGB(dstFormat)) if (usePal(srcFormat) && isByteRGB(dstFormat))
c->swscale = palToRgbWrapper; c->swscale = palToRgbWrapper;

View File

@ -236,10 +236,10 @@ static const FormatEntry format_entries[] = {
[AV_PIX_FMT_GBRP14BE] = { 1, 1 }, [AV_PIX_FMT_GBRP14BE] = { 1, 1 },
[AV_PIX_FMT_GBRP16LE] = { 1, 1 }, [AV_PIX_FMT_GBRP16LE] = { 1, 1 },
[AV_PIX_FMT_GBRP16BE] = { 1, 1 }, [AV_PIX_FMT_GBRP16BE] = { 1, 1 },
[AV_PIX_FMT_GBRPF32LE] = { 1, 0 }, [AV_PIX_FMT_GBRPF32LE] = { 1, 1 },
[AV_PIX_FMT_GBRPF32BE] = { 1, 0 }, [AV_PIX_FMT_GBRPF32BE] = { 1, 1 },
[AV_PIX_FMT_GBRAPF32LE] = { 1, 0 }, [AV_PIX_FMT_GBRAPF32LE] = { 1, 1 },
[AV_PIX_FMT_GBRAPF32BE] = { 1, 0 }, [AV_PIX_FMT_GBRAPF32BE] = { 1, 1 },
[AV_PIX_FMT_GBRAP] = { 1, 1 }, [AV_PIX_FMT_GBRAP] = { 1, 1 },
[AV_PIX_FMT_GBRAP16LE] = { 1, 1 }, [AV_PIX_FMT_GBRAP16LE] = { 1, 1 },
[AV_PIX_FMT_GBRAP16BE] = { 1, 1 }, [AV_PIX_FMT_GBRAP16BE] = { 1, 1 },

View File

@ -0,0 +1 @@
pixdesc-gbrapf32be a4fd00f17d746849f30597c496923107

View File

@ -0,0 +1 @@
pixdesc-gbrapf32le 26af38a6975e2ce425e9fec477e6b2ba

View File

@ -0,0 +1 @@
pixdesc-gbrpf32be 3ee0b82f5aaea48ca3c01f4294505d73

View File

@ -0,0 +1 @@
pixdesc-gbrpf32le 0e6b20215ac9b475e917c7bb4cbee349

View File

@ -25,6 +25,8 @@ gbrap12be 0c4c1f8af361571265ca259d5f70f026
gbrap12le 5f1d8c663d4c28863e687192433b34a4 gbrap12le 5f1d8c663d4c28863e687192433b34a4
gbrap16be e4edca4361d643794034e5aa9ef290b1 gbrap16be e4edca4361d643794034e5aa9ef290b1
gbrap16le 9a95b389d2bf556179e8f4b27fb550ab gbrap16le 9a95b389d2bf556179e8f4b27fb550ab
gbrapf32be d908f0950d3735863fe6f0793fa24f76
gbrapf32le f6eab5a145cffc52c055e07c26d3995f
gbrp 5fbc319e30110d19d539f5b274eddb6d gbrp 5fbc319e30110d19d539f5b274eddb6d
gbrp10be 703a17591a2a5c236675c5101c349bcc gbrp10be 703a17591a2a5c236675c5101c349bcc
gbrp10le ee014153f55c011918df5b2394815780 gbrp10le ee014153f55c011918df5b2394815780
@ -36,6 +38,8 @@ gbrp16be 7b6764a504c853b09f5c7d0b2223c5a4
gbrp16le fb9323a5bd060282bec7bfd7d38dc230 gbrp16le fb9323a5bd060282bec7bfd7d38dc230
gbrp9be a4dc6f6f9bb051de2dc348b592ad4282 gbrp9be a4dc6f6f9bb051de2dc348b592ad4282
gbrp9le 699da3a3b324f3fd001a56aee9683384 gbrp9le 699da3a3b324f3fd001a56aee9683384
gbrpf32be ae33c2d738af01ae66a5d2b08a7a60b7
gbrpf32le 4e3305c619337beeeacc5e6b2f42c793
gray 188590b1231afd231ea910815aef2b25 gray 188590b1231afd231ea910815aef2b25
gray10be d486558ecd2e27afc17930be861f0e4c gray10be d486558ecd2e27afc17930be861f0e4c
gray10le 917d687103b2adcca7132bfc070ca54a gray10le 917d687103b2adcca7132bfc070ca54a

View File

@ -25,6 +25,8 @@ gbrap12be c9769d18733cdc2664d8b9af09a03f6d
gbrap12le 3f80453c1ac6c5d1b2febf3ef141b476 gbrap12le 3f80453c1ac6c5d1b2febf3ef141b476
gbrap16be 21c98d0d7e7de2a93f9f095e5bb5c227 gbrap16be 21c98d0d7e7de2a93f9f095e5bb5c227
gbrap16le ea9a96870c1b742dd9f065c5db568184 gbrap16le ea9a96870c1b742dd9f065c5db568184
gbrapf32be ec06b3b168dc74048100f29a4412da90
gbrapf32le 57ee44f9ca41e7b5e6410cdd105442d6
gbrp ec671f573c2105072ab68a1933c58fee gbrp ec671f573c2105072ab68a1933c58fee
gbrp10be 6f0130a41f01e58593d3840446dd94b7 gbrp10be 6f0130a41f01e58593d3840446dd94b7
gbrp10le 9c152b7dfb7ad7bc477518d97316d04f gbrp10le 9c152b7dfb7ad7bc477518d97316d04f
@ -36,6 +38,8 @@ gbrp16be 59e4c27ee33520e23dbceafbec27aa9b
gbrp16le 0768a2462783829f63ed0bfd53d01222 gbrp16le 0768a2462783829f63ed0bfd53d01222
gbrp9be 4af43999e5e9742992b6550ea5ad9b23 gbrp9be 4af43999e5e9742992b6550ea5ad9b23
gbrp9le b4cbfa7878706a14295f09212e41f7fe gbrp9le b4cbfa7878706a14295f09212e41f7fe
gbrpf32be 4f06588a3de6ed0f30436f814eda0909
gbrpf32le b2a9df783d8c2156c5aafc561989918d
gray 0d70b54b4b888ec4dbd89713620ac1ee gray 0d70b54b4b888ec4dbd89713620ac1ee
gray10be 18ed76cab145ab9058cc353fcec6d3c4 gray10be 18ed76cab145ab9058cc353fcec6d3c4
gray10le fd83f7489880160783ddb125615b4638 gray10le fd83f7489880160783ddb125615b4638

View File

@ -25,6 +25,8 @@ gbrap12be e7f471132628b1c034199cc109b84bc2
gbrap12le 886207e5aa379a0312485b94e5fd5edd gbrap12le 886207e5aa379a0312485b94e5fd5edd
gbrap16be eaa0158f27ebc40cde9e3d6eef1e2ba1 gbrap16be eaa0158f27ebc40cde9e3d6eef1e2ba1
gbrap16le 6cf68992d4fcac2aa025d1014b669d24 gbrap16le 6cf68992d4fcac2aa025d1014b669d24
gbrapf32be 37c627796dee55ca6f4e7ca965460680
gbrapf32le 3ff02eb8465b921c09182ec5cfda434a
gbrp 838025a3062f7f31e99196ce66961ad7 gbrp 838025a3062f7f31e99196ce66961ad7
gbrp10be f63c2555ea19fc78b00fd5b3e2b48e8c gbrp10be f63c2555ea19fc78b00fd5b3e2b48e8c
gbrp10le be64c374ab318235d912372e99a0516a gbrp10le be64c374ab318235d912372e99a0516a
@ -36,6 +38,8 @@ gbrp16be 020eff1626415ea726c55b23162ce59a
gbrp16le 0ab77b498d4a39905515b6e1f0329ed2 gbrp16le 0ab77b498d4a39905515b6e1f0329ed2
gbrp9be 170da3a8644cbea61c3caeadc45354c5 gbrp9be 170da3a8644cbea61c3caeadc45354c5
gbrp9le da5d80e6f12cabaa7081bb85d3b7fd30 gbrp9le da5d80e6f12cabaa7081bb85d3b7fd30
gbrpf32be cd5b0edd510652a0bcfd7e36935e3cb0
gbrpf32le 9d42fc5331376b5307268498a06613ce
gray 57fd8e6e00f6be8752726005974cce1b gray 57fd8e6e00f6be8752726005974cce1b
gray10be 437713f3d081238cddb738e106e5a27d gray10be 437713f3d081238cddb738e106e5a27d
gray10le c749b80049b152f4ba3e66a72c0c5acc gray10le c749b80049b152f4ba3e66a72c0c5acc

View File

@ -25,6 +25,8 @@ gbrap12be 302b353dff696ec9fd0d85a0cc14802b
gbrap12le ae2d6db2c9c825f06d92389de21263d2 gbrap12le ae2d6db2c9c825f06d92389de21263d2
gbrap16be 52c10d8046d123dfc4a478276906467c gbrap16be 52c10d8046d123dfc4a478276906467c
gbrap16le 2317737b8f5140add27d121de8f5ba95 gbrap16le 2317737b8f5140add27d121de8f5ba95
gbrapf32be 6781751ef9d444d150cb0a1e1cefe141
gbrapf32le f2ffc9e45dbc9919d516304abb514306
gbrp 506dea2fe492e985a396d1b11ccd8db3 gbrp 506dea2fe492e985a396d1b11ccd8db3
gbrp10be 55bbfe2d472780dcbadf3027778caa0e gbrp10be 55bbfe2d472780dcbadf3027778caa0e
gbrp10le 13a39077ab1b2c3b49afd3e250b84a77 gbrp10le 13a39077ab1b2c3b49afd3e250b84a77
@ -36,6 +38,8 @@ gbrp16be f82e4bda468275f51becf70f3880be52
gbrp16le c7813a905f94aabb2bcade79c9b7e39e gbrp16le c7813a905f94aabb2bcade79c9b7e39e
gbrp9be b8d294d4bc81ceef1fb529e917c02e48 gbrp9be b8d294d4bc81ceef1fb529e917c02e48
gbrp9le 0d42cc9e222d806c33172781b45cb3e3 gbrp9le 0d42cc9e222d806c33172781b45cb3e3
gbrpf32be cef1384ac5c95cf4b3ea2e49133dbef0
gbrpf32le c053b8bf8314196099b1e2e1d0617b75
gray d96e0f1c73d3f0b9506d691b5cd36c73 gray d96e0f1c73d3f0b9506d691b5cd36c73
gray10be c26c73de96b630f1207ff589b6553ebd gray10be c26c73de96b630f1207ff589b6553ebd
gray10le 16e4db1d611ec3fa5c9fd8fbdbf1ffcc gray10le 16e4db1d611ec3fa5c9fd8fbdbf1ffcc

View File

@ -25,6 +25,8 @@ gbrap12be ffe9aa4cbcc42f71757efe18826764ac
gbrap12le 88a85c1b3c5e19e299fdd209b73ac1ba gbrap12le 88a85c1b3c5e19e299fdd209b73ac1ba
gbrap16be 3117e84b258433a7efb9288bbb8815d4 gbrap16be 3117e84b258433a7efb9288bbb8815d4
gbrap16le 3ad08cf8b49d8eb31a1b356ec4b7b88b gbrap16le 3ad08cf8b49d8eb31a1b356ec4b7b88b
gbrapf32be d82e48eb62c1e2d2ce5d614aeda38a99
gbrapf32le 323259d76d5c5350091704813f22bf57
gbrp 0ecfeca171ba3a1a2ff4e92f572b71cf gbrp 0ecfeca171ba3a1a2ff4e92f572b71cf
gbrp10be 774398c2f81757a536c094f16cfc541a gbrp10be 774398c2f81757a536c094f16cfc541a
gbrp10le e9a6434d691be541f789f850963da181 gbrp10le e9a6434d691be541f789f850963da181
@ -36,6 +38,8 @@ gbrp16be 46cf9473646a4b9dbcb05661ade658ec
gbrp16le 6ce6093b24d09c0edcd55b2d6fec89a0 gbrp16le 6ce6093b24d09c0edcd55b2d6fec89a0
gbrp9be 174de037c2a9f2b6fb4d9444ae0ff82f gbrp9be 174de037c2a9f2b6fb4d9444ae0ff82f
gbrp9le ba7c2631fb2967aa909c66509bd243fe gbrp9le ba7c2631fb2967aa909c66509bd243fe
gbrpf32be a53fc24a298bf419051fb57c63cc4cef
gbrpf32le b44dae0881043398bfd704a944094737
gray 8bd4ece1dbf89b20ee785e0515356e07 gray 8bd4ece1dbf89b20ee785e0515356e07
gray10be 160dd03e30d33379de92c70ee52c01fd gray10be 160dd03e30d33379de92c70ee52c01fd
gray10le 6baac1da6be3789409b67cd506afe7da gray10le 6baac1da6be3789409b67cd506afe7da

View File

@ -25,6 +25,8 @@ gbrap12be 48609d6b61ff6313939fa2d9c3ebb6d9
gbrap12le e3b5342c8e47820f2de7e2dd61872312 gbrap12le e3b5342c8e47820f2de7e2dd61872312
gbrap16be 696c84c8b009c7320cad7f3847bb35da gbrap16be 696c84c8b009c7320cad7f3847bb35da
gbrap16le 9bacb81fbbe9cdfd04d71eb55a9719d2 gbrap16le 9bacb81fbbe9cdfd04d71eb55a9719d2
gbrapf32be 5995aba2bf66254f63d5413cd9860353
gbrapf32le aab9c11ec483fe28f7156bfeb9f015a3
gbrp dc06edb62e70024a216c8e303b79b328 gbrp dc06edb62e70024a216c8e303b79b328
gbrp10be 321e7f061d8b9b5801221b6cf3c99666 gbrp10be 321e7f061d8b9b5801221b6cf3c99666
gbrp10le 799ed3afca01076439a0b6785b3dc4bb gbrp10le 799ed3afca01076439a0b6785b3dc4bb
@ -36,6 +38,8 @@ gbrp16be c8c95027703c680ed8f8f91c725db40a
gbrp16le c95c9d7c2b19826b73ff1811d9fe6bdb gbrp16le c95c9d7c2b19826b73ff1811d9fe6bdb
gbrp9be f029d87fa642f4261160471ad27fd53f gbrp9be f029d87fa642f4261160471ad27fd53f
gbrp9le b310d3cf37f7b41d706155993f8f0584 gbrp9le b310d3cf37f7b41d706155993f8f0584
gbrpf32be 83722ee41b4397e19bb075ab305147b5
gbrpf32le 82210a8f9e8708968fa13cf8cf64afe4
gray 52ae18648161ac43144f5c9cd2127786 gray 52ae18648161ac43144f5c9cd2127786
gray10be 8400dec0eefb172849b785d35fc55674 gray10be 8400dec0eefb172849b785d35fc55674
gray10le b7d6e49e8d1291f2b0a57d55e9478ef1 gray10le b7d6e49e8d1291f2b0a57d55e9478ef1

View File

@ -25,6 +25,8 @@ gbrap12be 0c4c1f8af361571265ca259d5f70f026
gbrap12le 5f1d8c663d4c28863e687192433b34a4 gbrap12le 5f1d8c663d4c28863e687192433b34a4
gbrap16be e4edca4361d643794034e5aa9ef290b1 gbrap16be e4edca4361d643794034e5aa9ef290b1
gbrap16le 9a95b389d2bf556179e8f4b27fb550ab gbrap16le 9a95b389d2bf556179e8f4b27fb550ab
gbrapf32be d908f0950d3735863fe6f0793fa24f76
gbrapf32le f6eab5a145cffc52c055e07c26d3995f
gbrp 5fbc319e30110d19d539f5b274eddb6d gbrp 5fbc319e30110d19d539f5b274eddb6d
gbrp10be 703a17591a2a5c236675c5101c349bcc gbrp10be 703a17591a2a5c236675c5101c349bcc
gbrp10le ee014153f55c011918df5b2394815780 gbrp10le ee014153f55c011918df5b2394815780
@ -36,6 +38,8 @@ gbrp16be 7b6764a504c853b09f5c7d0b2223c5a4
gbrp16le fb9323a5bd060282bec7bfd7d38dc230 gbrp16le fb9323a5bd060282bec7bfd7d38dc230
gbrp9be a4dc6f6f9bb051de2dc348b592ad4282 gbrp9be a4dc6f6f9bb051de2dc348b592ad4282
gbrp9le 699da3a3b324f3fd001a56aee9683384 gbrp9le 699da3a3b324f3fd001a56aee9683384
gbrpf32be ae33c2d738af01ae66a5d2b08a7a60b7
gbrpf32le 4e3305c619337beeeacc5e6b2f42c793
gray 188590b1231afd231ea910815aef2b25 gray 188590b1231afd231ea910815aef2b25
gray10be d486558ecd2e27afc17930be861f0e4c gray10be d486558ecd2e27afc17930be861f0e4c
gray10le 917d687103b2adcca7132bfc070ca54a gray10le 917d687103b2adcca7132bfc070ca54a

View File

@ -25,6 +25,8 @@ gbrap12be 1d9b57766ba9c2192403f43967cb9af0
gbrap12le bb1ba1c157717db3dd612a76d38a018e gbrap12le bb1ba1c157717db3dd612a76d38a018e
gbrap16be c72b935a6e57a8e1c37bff08c2db55b1 gbrap16be c72b935a6e57a8e1c37bff08c2db55b1
gbrap16le 13eb0e62b1ac9c1c86c81521eaefab5f gbrap16le 13eb0e62b1ac9c1c86c81521eaefab5f
gbrapf32be 42e53d9edccbd9e09c4cd78780ba92f3
gbrapf32le eebf3973ef94c841f0a1ceb1ed61621d
gbrp dc3387f925f972c61aae7eb23cdc19f0 gbrp dc3387f925f972c61aae7eb23cdc19f0
gbrp10be 0277d4c3a8498d75e2783fb81379e481 gbrp10be 0277d4c3a8498d75e2783fb81379e481
gbrp10le f3d70f8ab845c3c9b8f7452e4a6e285a gbrp10le f3d70f8ab845c3c9b8f7452e4a6e285a
@ -36,6 +38,8 @@ gbrp16be 5fc826cfabebfc1442cb793c4b6303e2
gbrp16le 1b3e0b63d47a3e1b6b20931316883bf2 gbrp16le 1b3e0b63d47a3e1b6b20931316883bf2
gbrp9be d9c88968001e1452ff31fbc8d16b18a0 gbrp9be d9c88968001e1452ff31fbc8d16b18a0
gbrp9le 2ccfed0816bf6bd4bb3a5b7591d9603a gbrp9le 2ccfed0816bf6bd4bb3a5b7591d9603a
gbrpf32be 4614d32e4417f80e0adcc1bdcf6cde42
gbrpf32le 1366ee77e5559672260bbe51040e28b2
gray 221201cc7cfc4964eacd8b3e426fd276 gray 221201cc7cfc4964eacd8b3e426fd276
gray10be 9452756d0b37f4f5c7cae7635e22d747 gray10be 9452756d0b37f4f5c7cae7635e22d747
gray10le 37fd2e1ec6b66410212d39a342e864df gray10le 37fd2e1ec6b66410212d39a342e864df

View File

@ -25,6 +25,8 @@ gbrap12be 1518c9a565d1ba1a45dd369acc1aa75e
gbrap12le 714fe318af81a46f83655c6e7e13351e gbrap12le 714fe318af81a46f83655c6e7e13351e
gbrap16be 39d488528aacff466aac7539c9b948a8 gbrap16be 39d488528aacff466aac7539c9b948a8
gbrap16le 5426ac9457289927bfe2ec03038a8780 gbrap16le 5426ac9457289927bfe2ec03038a8780
gbrapf32be ea02b3912372c8671ff4eacbcbda740a
gbrapf32le 3021d477bdbeba4e2ae7a6bc6cff33e5
gbrp 7b4b6a2f1cdc51455b25515c3ecea944 gbrp 7b4b6a2f1cdc51455b25515c3ecea944
gbrp10be d7401725699b2ddf954caa16a0878a1e gbrp10be d7401725699b2ddf954caa16a0878a1e
gbrp10le 6036711969eae1979be6358f688bd9c8 gbrp10le 6036711969eae1979be6358f688bd9c8
@ -36,6 +38,8 @@ gbrp16be 0d003b88d4f446ae9ba12cab1cbb359a
gbrp16le a1c09038fa4636c9843ab8dd2b7601ea gbrp16le a1c09038fa4636c9843ab8dd2b7601ea
gbrp9be df381b4b27be25d172fa556434478807 gbrp9be df381b4b27be25d172fa556434478807
gbrp9le a5301e978f68b29bfc613b2462ec4888 gbrp9le a5301e978f68b29bfc613b2462ec4888
gbrpf32be b90d6189e71afd6ec1f379489884cc8e
gbrpf32le 48dee2c9cee8ac6582492fd1c7acb183
gray c5f8bc6636fd15dbc57deb4bba1e7379 gray c5f8bc6636fd15dbc57deb4bba1e7379
gray10be 48b421da79c195fd91dffb8fca79a8a2 gray10be 48b421da79c195fd91dffb8fca79a8a2
gray10le 7774e3296916b896afa46f626334a280 gray10le 7774e3296916b896afa46f626334a280

View File

@ -25,6 +25,8 @@ gbrap12be 16a3d105ba852a9fa23ea5232db51b48
gbrap12le 6ef8a3ac4129ec23c34aec14ac41f249 gbrap12le 6ef8a3ac4129ec23c34aec14ac41f249
gbrap16be 70b020b6b9e1896b72f890de3570ffda gbrap16be 70b020b6b9e1896b72f890de3570ffda
gbrap16le e0cf341cdbaf1f5c40016f181bc9d7d4 gbrap16le e0cf341cdbaf1f5c40016f181bc9d7d4
gbrapf32be e82323abcb665014346a3a34a4b084c3
gbrapf32le b24471278a899eb2f9cb563632d29b09
gbrp 413b0f6ea51588d4be5f0c76d43d8796 gbrp 413b0f6ea51588d4be5f0c76d43d8796
gbrp10be d02bd50db83213667808f5bacefe667c gbrp10be d02bd50db83213667808f5bacefe667c
gbrp10le 2d4a5ebc773ffc3d857a6ef24afbe10e gbrp10le 2d4a5ebc773ffc3d857a6ef24afbe10e
@ -36,6 +38,8 @@ gbrp16be 3fef87fe67bf1fd0e2f5056dc0db2ef4
gbrp16le f3b2b76fe707f77eb1376640759f5168 gbrp16le f3b2b76fe707f77eb1376640759f5168
gbrp9be 99c694dd47d12ae48fc8f47a0c410333 gbrp9be 99c694dd47d12ae48fc8f47a0c410333
gbrp9le 26e103a4ab99fb3f58667df490997a36 gbrp9le 26e103a4ab99fb3f58667df490997a36
gbrpf32be 3eaa2d475754c2b4ae3c59dbdb7ccd84
gbrpf32le 0267e215c3d11ae22414c3e29e665896
gray 41811422d5819ed69389357294384c10 gray 41811422d5819ed69389357294384c10
gray10be 52710b3ab3ccf6101d28109f58cd48c4 gray10be 52710b3ab3ccf6101d28109f58cd48c4
gray10le 9c432a163f0cfe9ee2a4b72ae8a7c307 gray10le 9c432a163f0cfe9ee2a4b72ae8a7c307