1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

avcodec/sheervideo: Avoid code duplication when creating VLC tables

The SheerVideo decoder uses two VLC tables and these are in turn created
from structures (called SheerTable) that are naturally paired. This
commit unifies these pairs of SheerTables to arrays and unifies creating
the VLC tables.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
Andreas Rheinhardt 2020-10-10 20:28:16 +02:00
parent d3f35224a9
commit 8227f60fee
2 changed files with 145 additions and 205 deletions

View File

@ -1816,6 +1816,7 @@ static int decode_frame(AVCodecContext *avctx,
{ {
SheerVideoContext *s = avctx->priv_data; SheerVideoContext *s = avctx->priv_data;
ThreadFrame frame = { .f = data }; ThreadFrame frame = { .f = data };
const SheerTable *table;
AVFrame *p = data; AVFrame *p = data;
GetBitContext gb; GetBitContext gb;
unsigned format; unsigned format;
@ -1835,210 +1836,135 @@ static int decode_frame(AVCodecContext *avctx,
case MKTAG(' ', 'R', 'G', 'B'): case MKTAG(' ', 'R', 'G', 'B'):
avctx->pix_fmt = AV_PIX_FMT_RGB0; avctx->pix_fmt = AV_PIX_FMT_RGB0;
s->decode_frame = decode_rgb; s->decode_frame = decode_rgb;
if (s->format != format) { table = rgb;
ret = build_vlc(&s->vlc[0], &l_r_rgb);
ret |= build_vlc(&s->vlc[1], &l_g_rgb);
}
break; break;
case MKTAG(' ', 'r', 'G', 'B'): case MKTAG(' ', 'r', 'G', 'B'):
avctx->pix_fmt = AV_PIX_FMT_RGB0; avctx->pix_fmt = AV_PIX_FMT_RGB0;
s->decode_frame = decode_rgbi; s->decode_frame = decode_rgbi;
if (s->format != format) { table = rgbi;
ret = build_vlc(&s->vlc[0], &l_r_rgbi);
ret |= build_vlc(&s->vlc[1], &l_g_rgbi);
}
break; break;
case MKTAG('A', 'R', 'G', 'X'): case MKTAG('A', 'R', 'G', 'X'):
avctx->pix_fmt = AV_PIX_FMT_GBRAP10; avctx->pix_fmt = AV_PIX_FMT_GBRAP10;
s->decode_frame = decode_argx; s->decode_frame = decode_argx;
if (s->format != format) { table = rgbx;
ret = build_vlc(&s->vlc[0], &l_r_rgbx);
ret |= build_vlc(&s->vlc[1], &l_g_rgbx);
}
break; break;
case MKTAG('A', 'r', 'G', 'X'): case MKTAG('A', 'r', 'G', 'X'):
avctx->pix_fmt = AV_PIX_FMT_GBRAP10; avctx->pix_fmt = AV_PIX_FMT_GBRAP10;
s->decode_frame = decode_argxi; s->decode_frame = decode_argxi;
if (s->format != format) { table = rgbxi;
ret = build_vlc(&s->vlc[0], &l_r_rgbxi);
ret |= build_vlc(&s->vlc[1], &l_g_rgbxi);
}
break; break;
case MKTAG('R', 'G', 'B', 'X'): case MKTAG('R', 'G', 'B', 'X'):
avctx->pix_fmt = AV_PIX_FMT_GBRP10; avctx->pix_fmt = AV_PIX_FMT_GBRP10;
s->decode_frame = decode_rgbx; s->decode_frame = decode_rgbx;
if (s->format != format) { table = rgbx;
ret = build_vlc(&s->vlc[0], &l_r_rgbx);
ret |= build_vlc(&s->vlc[1], &l_g_rgbx);
}
break; break;
case MKTAG('r', 'G', 'B', 'X'): case MKTAG('r', 'G', 'B', 'X'):
avctx->pix_fmt = AV_PIX_FMT_GBRP10; avctx->pix_fmt = AV_PIX_FMT_GBRP10;
s->decode_frame = decode_rgbxi; s->decode_frame = decode_rgbxi;
if (s->format != format) { table = rgbxi;
ret = build_vlc(&s->vlc[0], &l_r_rgbxi);
ret |= build_vlc(&s->vlc[1], &l_g_rgbxi);
}
break; break;
case MKTAG('A', 'R', 'G', 'B'): case MKTAG('A', 'R', 'G', 'B'):
avctx->pix_fmt = AV_PIX_FMT_ARGB; avctx->pix_fmt = AV_PIX_FMT_ARGB;
s->decode_frame = decode_argb; s->decode_frame = decode_argb;
if (s->format != format) { table = rgb;
ret = build_vlc(&s->vlc[0], &l_r_rgb);
ret |= build_vlc(&s->vlc[1], &l_g_rgb);
}
break; break;
case MKTAG('A', 'r', 'G', 'B'): case MKTAG('A', 'r', 'G', 'B'):
avctx->pix_fmt = AV_PIX_FMT_ARGB; avctx->pix_fmt = AV_PIX_FMT_ARGB;
s->decode_frame = decode_argbi; s->decode_frame = decode_argbi;
if (s->format != format) { table = rgbi;
ret = build_vlc(&s->vlc[0], &l_r_rgbi);
ret |= build_vlc(&s->vlc[1], &l_g_rgbi);
}
break; break;
case MKTAG('A', 'Y', 'B', 'R'): case MKTAG('A', 'Y', 'B', 'R'):
s->alt = 1; s->alt = 1;
case MKTAG('A', 'Y', 'b', 'R'): case MKTAG('A', 'Y', 'b', 'R'):
avctx->pix_fmt = AV_PIX_FMT_YUVA444P; avctx->pix_fmt = AV_PIX_FMT_YUVA444P;
s->decode_frame = decode_aybr; s->decode_frame = decode_aybr;
if (s->format != format) { table = ybr;
ret = build_vlc(&s->vlc[0], &l_y_ybr);
ret |= build_vlc(&s->vlc[1], &l_u_ybr);
}
break; break;
case MKTAG('A', 'y', 'B', 'R'): case MKTAG('A', 'y', 'B', 'R'):
s->alt = 1; s->alt = 1;
case MKTAG('A', 'y', 'b', 'R'): case MKTAG('A', 'y', 'b', 'R'):
avctx->pix_fmt = AV_PIX_FMT_YUVA444P; avctx->pix_fmt = AV_PIX_FMT_YUVA444P;
s->decode_frame = decode_aybri; s->decode_frame = decode_aybri;
if (s->format != format) { table = ybri;
ret = build_vlc(&s->vlc[0], &l_y_ybri);
ret |= build_vlc(&s->vlc[1], &l_u_ybri);
}
break; break;
case MKTAG(' ', 'Y', 'B', 'R'): case MKTAG(' ', 'Y', 'B', 'R'):
s->alt = 1; s->alt = 1;
case MKTAG(' ', 'Y', 'b', 'R'): case MKTAG(' ', 'Y', 'b', 'R'):
avctx->pix_fmt = AV_PIX_FMT_YUV444P; avctx->pix_fmt = AV_PIX_FMT_YUV444P;
s->decode_frame = decode_ybr; s->decode_frame = decode_ybr;
if (s->format != format) { table = ybr;
ret = build_vlc(&s->vlc[0], &l_y_ybr);
ret |= build_vlc(&s->vlc[1], &l_u_ybr);
}
break; break;
case MKTAG(' ', 'y', 'B', 'R'): case MKTAG(' ', 'y', 'B', 'R'):
s->alt = 1; s->alt = 1;
case MKTAG(' ', 'y', 'b', 'R'): case MKTAG(' ', 'y', 'b', 'R'):
avctx->pix_fmt = AV_PIX_FMT_YUV444P; avctx->pix_fmt = AV_PIX_FMT_YUV444P;
s->decode_frame = decode_ybri; s->decode_frame = decode_ybri;
if (s->format != format) { table = ybri;
ret = build_vlc(&s->vlc[0], &l_y_ybri);
ret |= build_vlc(&s->vlc[1], &l_u_ybri);
}
break; break;
case MKTAG('Y', 'B', 'R', 0x0a): case MKTAG('Y', 'B', 'R', 0x0a):
avctx->pix_fmt = AV_PIX_FMT_YUV444P10; avctx->pix_fmt = AV_PIX_FMT_YUV444P10;
s->decode_frame = decode_ybr10; s->decode_frame = decode_ybr10;
if (s->format != format) { table = ybr10;
ret = build_vlc(&s->vlc[0], &l_y_ybr10);
ret |= build_vlc(&s->vlc[1], &l_u_ybr10);
}
break; break;
case MKTAG('y', 'B', 'R', 0x0a): case MKTAG('y', 'B', 'R', 0x0a):
avctx->pix_fmt = AV_PIX_FMT_YUV444P10; avctx->pix_fmt = AV_PIX_FMT_YUV444P10;
s->decode_frame = decode_ybr10i; s->decode_frame = decode_ybr10i;
if (s->format != format) { table = ybr10i;
ret = build_vlc(&s->vlc[0], &l_y_ybr10i);
ret |= build_vlc(&s->vlc[1], &l_u_ybr10i);
}
break; break;
case MKTAG('C', 'A', '4', 'p'): case MKTAG('C', 'A', '4', 'p'):
avctx->pix_fmt = AV_PIX_FMT_YUVA444P10; avctx->pix_fmt = AV_PIX_FMT_YUVA444P10;
s->decode_frame = decode_ca4p; s->decode_frame = decode_ca4p;
if (s->format != format) { table = ybr10;
ret = build_vlc(&s->vlc[0], &l_y_ybr10);
ret |= build_vlc(&s->vlc[1], &l_u_ybr10);
}
break; break;
case MKTAG('C', 'A', '4', 'i'): case MKTAG('C', 'A', '4', 'i'):
avctx->pix_fmt = AV_PIX_FMT_YUVA444P10; avctx->pix_fmt = AV_PIX_FMT_YUVA444P10;
s->decode_frame = decode_ca4i; s->decode_frame = decode_ca4i;
if (s->format != format) { table = ybr10i;
ret = build_vlc(&s->vlc[0], &l_y_ybr10i);
ret |= build_vlc(&s->vlc[1], &l_u_ybr10i);
}
break; break;
case MKTAG('B', 'Y', 'R', 'Y'): case MKTAG('B', 'Y', 'R', 'Y'):
avctx->pix_fmt = AV_PIX_FMT_YUV422P; avctx->pix_fmt = AV_PIX_FMT_YUV422P;
s->decode_frame = decode_byry; s->decode_frame = decode_byry;
if (s->format != format) { table = byry;
ret = build_vlc(&s->vlc[0], &l_y_byry);
ret |= build_vlc(&s->vlc[1], &l_u_byry);
}
break; break;
case MKTAG('B', 'Y', 'R', 'y'): case MKTAG('B', 'Y', 'R', 'y'):
avctx->pix_fmt = AV_PIX_FMT_YUV422P; avctx->pix_fmt = AV_PIX_FMT_YUV422P;
s->decode_frame = decode_byryi; s->decode_frame = decode_byryi;
if (s->format != format) { table = byryi;
ret = build_vlc(&s->vlc[0], &l_y_byryi);
ret |= build_vlc(&s->vlc[1], &l_u_byryi);
}
break; break;
case MKTAG('Y', 'b', 'Y', 'r'): case MKTAG('Y', 'b', 'Y', 'r'):
avctx->pix_fmt = AV_PIX_FMT_YUV422P; avctx->pix_fmt = AV_PIX_FMT_YUV422P;
s->decode_frame = decode_ybyr; s->decode_frame = decode_ybyr;
if (s->format != format) { table = ybyr;
ret = build_vlc(&s->vlc[0], &l_y_ybyr);
ret |= build_vlc(&s->vlc[1], &l_u_ybyr);
}
break; break;
case MKTAG('C', '8', '2', 'p'): case MKTAG('C', '8', '2', 'p'):
avctx->pix_fmt = AV_PIX_FMT_YUVA422P; avctx->pix_fmt = AV_PIX_FMT_YUVA422P;
s->decode_frame = decode_c82p; s->decode_frame = decode_c82p;
if (s->format != format) { table = byry;
ret = build_vlc(&s->vlc[0], &l_y_byry);
ret |= build_vlc(&s->vlc[1], &l_u_byry);
}
break; break;
case MKTAG('C', '8', '2', 'i'): case MKTAG('C', '8', '2', 'i'):
avctx->pix_fmt = AV_PIX_FMT_YUVA422P; avctx->pix_fmt = AV_PIX_FMT_YUVA422P;
s->decode_frame = decode_c82i; s->decode_frame = decode_c82i;
if (s->format != format) { table = byryi;
ret = build_vlc(&s->vlc[0], &l_y_byryi);
ret |= build_vlc(&s->vlc[1], &l_u_byryi);
}
break; break;
case MKTAG(0xa2, 'Y', 'R', 'Y'): case MKTAG(0xa2, 'Y', 'R', 'Y'):
avctx->pix_fmt = AV_PIX_FMT_YUV422P10; avctx->pix_fmt = AV_PIX_FMT_YUV422P10;
s->decode_frame = decode_yry10; s->decode_frame = decode_yry10;
if (s->format != format) { table = yry10;
ret = build_vlc(&s->vlc[0], &l_y_yry10);
ret |= build_vlc(&s->vlc[1], &l_u_yry10);
}
break; break;
case MKTAG(0xa2, 'Y', 'R', 'y'): case MKTAG(0xa2, 'Y', 'R', 'y'):
avctx->pix_fmt = AV_PIX_FMT_YUV422P10; avctx->pix_fmt = AV_PIX_FMT_YUV422P10;
s->decode_frame = decode_yry10i; s->decode_frame = decode_yry10i;
if (s->format != format) { table = yry10i;
ret = build_vlc(&s->vlc[0], &l_y_yry10i);
ret |= build_vlc(&s->vlc[1], &l_u_yry10i);
}
break; break;
case MKTAG('C', 'A', '2', 'p'): case MKTAG('C', 'A', '2', 'p'):
avctx->pix_fmt = AV_PIX_FMT_YUVA422P10; avctx->pix_fmt = AV_PIX_FMT_YUVA422P10;
s->decode_frame = decode_ca2p; s->decode_frame = decode_ca2p;
if (s->format != format) { table = yry10;
ret = build_vlc(&s->vlc[0], &l_y_yry10);
ret |= build_vlc(&s->vlc[1], &l_u_yry10);
}
break; break;
case MKTAG('C', 'A', '2', 'i'): case MKTAG('C', 'A', '2', 'i'):
avctx->pix_fmt = AV_PIX_FMT_YUVA422P10; avctx->pix_fmt = AV_PIX_FMT_YUVA422P10;
s->decode_frame = decode_ca2i; s->decode_frame = decode_ca2i;
if (s->format != format) { table = yry10i;
ret = build_vlc(&s->vlc[0], &l_y_yry10i);
ret |= build_vlc(&s->vlc[1], &l_u_yry10i);
}
break; break;
default: default:
avpriv_request_sample(avctx, "unsupported format: 0x%X", format); avpriv_request_sample(avctx, "unsupported format: 0x%X", format);
@ -2046,7 +1972,8 @@ static int decode_frame(AVCodecContext *avctx,
} }
if (s->format != format) { if (s->format != format) {
if (ret < 0) { if ((ret = build_vlc(&s->vlc[0], &table[0])) < 0 ||
(ret = build_vlc(&s->vlc[1], &table[1])) < 0) {
s->format = 0; s->format = 0;
return ret; return ret;
} }

View File

@ -29,134 +29,147 @@ typedef struct SheerTable {
uint16_t nb_16s; uint16_t nb_16s;
} SheerTable; } SheerTable;
static const SheerTable l_r_rgb = { static const SheerTable rgb[2] = {
{
{ 0, 0, 2, 2, 3, 3, 5, 5, 8, 8, 10, 9, 14, 15, 18, { 0, 0, 2, 2, 3, 3, 5, 5, 8, 8, 10, 9, 14, 15, 18,
17, 16, 13, 10, 10, 8, 7, 6, 5, 3, 2, 3, 0, 0, 0 }, 54 17, 16, 13, 10, 10, 8, 7, 6, 5, 3, 2, 3, 0, 0, 0 }, 54
}; },
{
static const SheerTable l_g_rgb = {
{ 0, 2, 0, 2, 0, 1, 1, 0, 2, 1, 3, 3, 4, 7, 13, { 0, 2, 0, 2, 0, 1, 1, 0, 2, 1, 3, 3, 4, 7, 13,
11, 8, 4, 3, 3, 1, 2, 1, 0, 1, 0, 1, 2, 0, 0 }, 180 11, 8, 4, 3, 3, 1, 2, 1, 0, 1, 0, 1, 2, 0, 0 }, 180
}
}; };
static const SheerTable l_r_rgbi = { static const SheerTable rgbi[2] = {
{
{ 0, 0, 1, 3, 3, 3, 6, 8, 8, 11, 12, 15, 18, 21, 38, { 0, 0, 1, 3, 3, 3, 6, 8, 8, 11, 12, 15, 18, 21, 38,
0, 22, 19, 15, 12, 11, 7, 8, 6, 4, 2, 3, 0, 0, 0 }, 0 0, 22, 19, 15, 12, 11, 7, 8, 6, 4, 2, 3, 0, 0, 0 }, 0
}; },
{
static const SheerTable l_g_rgbi = {
{ 1, 0, 1, 1, 1, 1, 2, 1, 2, 4, 3, 5, 5, 6, 12, { 1, 0, 1, 1, 1, 1, 2, 1, 2, 4, 3, 5, 5, 6, 12,
14, 6, 6, 5, 3, 3, 3, 2, 1, 1, 2, 0, 1, 0, 0 }, 164 14, 6, 6, 5, 3, 3, 3, 2, 1, 1, 2, 0, 1, 0, 0 }, 164
}
}; };
static const SheerTable l_y_ybr = { static const SheerTable ybr[2] = {
{
{ 0, 0, 2, 2, 2, 3, 5, 5, 7, 7, 8, 9, 13, 13, 19, { 0, 0, 2, 2, 2, 3, 5, 5, 7, 7, 8, 9, 13, 13, 19,
16, 14, 12, 9, 9, 7, 6, 6, 4, 4, 1, 2, 1, 0, 0 }, 70 16, 14, 12, 9, 9, 7, 6, 6, 4, 4, 1, 2, 1, 0, 0 }, 70
}; },
{
static const SheerTable l_u_ybr = {
{ 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 2, 2, 3, 5, 5, { 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 2, 2, 3, 5, 5,
5, 5, 3, 2, 2, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0 }, 212 5, 5, 3, 2, 2, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0 }, 212
}
}; };
static const SheerTable l_y_ybyr = { static const SheerTable ybyr[2] = {
{
{ 0, 0, 2, 2, 3, 3, 5, 5, 8, 8, 10, 10, 13, 15, 19, { 0, 0, 2, 2, 3, 3, 5, 5, 8, 8, 10, 10, 13, 15, 19,
18, 15, 12, 10, 10, 8, 7, 6, 5, 3, 2, 3, 0, 0, 0 }, 54 18, 15, 12, 10, 10, 8, 7, 6, 5, 3, 2, 3, 0, 0, 0 }, 54
}; },
{
static const SheerTable l_u_ybyr = {
{ 1, 1, 0, 1, 0, 1, 0, 1, 1, 2, 2, 3, 2, 5, 5, { 1, 1, 0, 1, 0, 1, 0, 1, 1, 2, 2, 3, 2, 5, 5,
5, 4, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 1, 0, 0 }, 208 5, 4, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 1, 0, 0 }, 208
}
}; };
static const SheerTable l_y_byry = { static const SheerTable byry[2] = {
{
{ 0, 0, 2, 2, 2, 3, 5, 5, 7, 7, 8, 11, 10, 14, 19, { 0, 0, 2, 2, 2, 3, 5, 5, 7, 7, 8, 11, 10, 14, 19,
14, 16, 12, 10, 8, 7, 6, 6, 4, 4, 1, 2, 1, 0, 0 }, 70 14, 16, 12, 10, 8, 7, 6, 6, 4, 4, 1, 2, 1, 0, 0 }, 70
}; },
{
static const SheerTable l_u_byry = {
{ 1, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 2, 3, 4, 6, { 1, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 2, 3, 4, 6,
6, 4, 2, 3, 2, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0 }, 208 6, 4, 2, 3, 2, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0 }, 208
}
}; };
static const SheerTable l_y_ybr10i = { static const SheerTable ybr10i[2] = {
{
{ 0, 0, 1, 0, 3, 8, 9, 12, 19, 27, 27, 39, 50, 63, 93, { 0, 0, 1, 0, 3, 8, 9, 12, 19, 27, 27, 39, 50, 63, 93,
89, 64, 50, 38, 26, 26, 20, 12, 9, 8, 3, 0, 0, 0, 0 }, 328 89, 64, 50, 38, 26, 26, 20, 12, 9, 8, 3, 0, 0, 0, 0 }, 328
}; },
{
static const SheerTable l_u_ybr10i = {
{ 0, 1, 1, 2, 2, 1, 2, 2, 4, 4, 6, 7, 9, 13, 28, { 0, 1, 1, 2, 2, 1, 2, 2, 4, 4, 6, 7, 9, 13, 28,
28, 12, 11, 6, 7, 5, 3, 3, 1, 1, 2, 2, 1, 0, 0 }, 860 28, 12, 11, 6, 7, 5, 3, 3, 1, 1, 2, 2, 1, 0, 0 }, 860
}
}; };
static const SheerTable l_y_ybr10 = { static const SheerTable ybr10[2] = {
{
{ 0, 0, 0, 1, 6, 6, 8, 12, 18, 21, 27, 29, 36, 47, 71, { 0, 0, 0, 1, 6, 6, 8, 12, 18, 21, 27, 29, 36, 47, 71,
72, 46, 36, 29, 27, 21, 17, 13, 7, 7, 5, 0, 0, 0, 0 }, 462 72, 46, 36, 29, 27, 21, 17, 13, 7, 7, 5, 0, 0, 0, 0 }, 462
}; },
{
static const SheerTable l_u_ybr10 = {
{ 0, 1, 2, 1, 2, 1, 1, 1, 2, 3, 2, 5, 6, 10, 20, { 0, 1, 2, 1, 2, 1, 1, 1, 2, 3, 2, 5, 6, 10, 20,
20, 10, 6, 4, 3, 2, 2, 2, 1, 1, 1, 2, 1, 0, 0 }, 912 20, 10, 6, 4, 3, 2, 2, 2, 1, 1, 1, 2, 1, 0, 0 }, 912
}
}; };
static const SheerTable l_r_rgbx = { static const SheerTable rgbx[2] = {
{
{ 0, 0, 0, 1, 3, 9, 10, 13, 19, 26, 28, 35, 40, 53, 77, { 0, 0, 0, 1, 3, 9, 10, 13, 19, 26, 28, 35, 40, 53, 77,
77, 50, 42, 34, 28, 25, 19, 13, 10, 8, 4, 0, 0, 0, 0 }, 400 77, 50, 42, 34, 28, 25, 19, 13, 10, 8, 4, 0, 0, 0, 0 }, 400
}; },
{
static const SheerTable l_g_rgbx = {
{ 0, 0, 1, 2, 6, 4, 3, 2, 3, 4, 6, 8, 10, 18, 39, { 0, 0, 1, 2, 6, 4, 3, 2, 3, 4, 6, 8, 10, 18, 39,
39, 18, 11, 8, 6, 4, 4, 1, 3, 5, 4, 3, 0, 0, 0 }, 812 39, 18, 11, 8, 6, 4, 4, 1, 3, 5, 4, 3, 0, 0, 0 }, 812
}
}; };
static const SheerTable l_y_yry10 = { static const SheerTable yry10[2] = {
{
{ 0, 0, 0, 1, 6, 6, 8, 12, 18, 21, 27, 29, 36, 47, 71, { 0, 0, 0, 1, 6, 6, 8, 12, 18, 21, 27, 29, 36, 47, 71,
72, 46, 36, 29, 27, 21, 17, 13, 7, 7, 5, 0, 0, 0, 0 }, 462 72, 46, 36, 29, 27, 21, 17, 13, 7, 7, 5, 0, 0, 0, 0 }, 462
}; },
{
static const SheerTable l_u_yry10 = {
{ 0, 1, 2, 1, 1, 1, 2, 3, 2, 4, 5, 5, 8, 14, 16, { 0, 1, 2, 1, 1, 1, 2, 3, 2, 4, 5, 5, 8, 14, 16,
18, 11, 7, 7, 4, 4, 3, 2, 2, 1, 1, 2, 1, 0, 0 }, 896 18, 11, 7, 7, 4, 4, 3, 2, 2, 1, 1, 2, 1, 0, 0 }, 896
}
}; };
static const SheerTable l_y_yry10i = { static const SheerTable yry10i[2] = {
{
{ 0, 0, 1, 0, 3, 8, 9, 12, 19, 27, 27, 40, 48, 64, 93, { 0, 0, 1, 0, 3, 8, 9, 12, 19, 27, 27, 40, 48, 64, 93,
89, 65, 49, 38, 26, 26, 20, 12, 9, 8, 3, 0, 0, 0, 0 }, 328 89, 65, 49, 38, 26, 26, 20, 12, 9, 8, 3, 0, 0, 0, 0 }, 328
}; },
{
static const SheerTable l_u_yry10i = {
{ 0, 1, 0, 3, 1, 3, 3, 3, 6, 7, 7, 12, 11, 19, 23, { 0, 1, 0, 3, 1, 3, 3, 3, 6, 7, 7, 12, 11, 19, 23,
20, 18, 12, 12, 8, 6, 5, 4, 3, 2, 2, 2, 1, 0, 0 }, 830 20, 18, 12, 12, 8, 6, 5, 4, 3, 2, 2, 2, 1, 0, 0 }, 830
}
}; };
static const SheerTable l_y_ybri = { static const SheerTable ybri[2] = {
{
{ 0, 0, 2, 2, 2, 3, 5, 5, 7, 10, 11, 13, 15, 13, 26, { 0, 0, 2, 2, 2, 3, 5, 5, 7, 10, 11, 13, 15, 13, 26,
20, 16, 17, 12, 11, 9, 7, 5, 5, 3, 3, 1, 1, 0, 0 }, 32 20, 16, 17, 12, 11, 9, 7, 5, 5, 3, 3, 1, 1, 0, 0 }, 32
}; },
{
static const SheerTable l_u_ybri = {
{ 1, 0, 1, 0, 1, 1, 0, 2, 1, 2, 2, 2, 3, 6, 6, { 1, 0, 1, 0, 1, 1, 0, 2, 1, 2, 2, 2, 3, 6, 6,
5, 6, 3, 2, 2, 2, 1, 2, 0, 1, 1, 0, 0, 1, 0 }, 202 5, 6, 3, 2, 2, 2, 1, 2, 0, 1, 1, 0, 0, 1, 0 }, 202
}
}; };
static const SheerTable l_y_byryi = { static const SheerTable byryi[2] = {
{
{ 0, 0, 2, 2, 2, 2, 6, 5, 8, 8, 12, 12, 16, 14, 24, { 0, 0, 2, 2, 2, 2, 6, 5, 8, 8, 12, 12, 16, 14, 24,
20, 16, 18, 12, 12, 8, 7, 5, 6, 3, 1, 2, 1, 0, 0 }, 32 20, 16, 18, 12, 12, 8, 7, 5, 6, 3, 1, 2, 1, 0, 0 }, 32
}; },
{
static const SheerTable l_u_byryi = {
{ 1, 0, 1, 1, 0, 2, 1, 2, 2, 3, 3, 4, 5, 4, 6, { 1, 0, 1, 1, 0, 2, 1, 2, 2, 3, 3, 4, 5, 4, 6,
7, 5, 4, 4, 3, 3, 2, 2, 2, 0, 1, 1, 1, 0, 0 }, 186 7, 5, 4, 4, 3, 3, 2, 2, 2, 0, 1, 1, 1, 0, 0 }, 186
}
}; };
static const SheerTable l_r_rgbxi = { static const SheerTable rgbxi[2] = {
{
{ 0, 0, 1, 3, 2, 3, 4, 6, 16, 23, 27, 29, 24, 29, 76, { 0, 0, 1, 3, 2, 3, 4, 6, 16, 23, 27, 29, 24, 29, 76,
78, 29, 21, 29, 27, 23, 15, 7, 4, 3, 2, 3, 0, 0, 0 }, 540 78, 29, 21, 29, 27, 23, 15, 7, 4, 3, 2, 3, 0, 0, 0 }, 540
}; },
{
static const SheerTable l_g_rgbxi = {
{ 0, 1, 1, 2, 0, 2, 6, 4, 3, 9, 7, 12, 13, 16, 29, { 0, 1, 1, 2, 0, 2, 6, 4, 3, 9, 7, 12, 13, 16, 29,
32, 17, 14, 12, 7, 8, 4, 4, 6, 2, 0, 2, 1, 0, 0 }, 810 32, 17, 14, 12, 7, 8, 4, 4, 6, 2, 0, 2, 1, 0, 0 }, 810
}
}; };
#endif /* AVCODEC_SHEERVIDEODATA_H */ #endif /* AVCODEC_SHEERVIDEODATA_H */