From f5326039938ca0599265462aed529fa10db5074f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Thu, 15 Jan 2015 11:39:06 +0100 Subject: [PATCH] avfilter: add showpalette filter --- Changelog | 1 + doc/filters.texi | 13 ++ libavfilter/Makefile | 1 + libavfilter/allfilters.c | 1 + libavfilter/version.h | 4 +- libavfilter/vf_showpalette.c | 127 +++++++++++++++ tests/fate/filter-video.mak | 3 + tests/ref/fate/filter-showpalette | 316 ++++++++++++++++++++++++++++++++++++++ 8 files changed, 464 insertions(+), 2 deletions(-) create mode 100644 libavfilter/vf_showpalette.c create mode 100644 tests/ref/fate/filter-showpalette diff --git a/Changelog b/Changelog index 4fc38004b6..04f17281c3 100644 --- a/Changelog +++ b/Changelog @@ -15,6 +15,7 @@ version : - VOC seeking support - Closed caption Decoder - fspp, uspp, pp7 MPlayer postprocessing filters ported to native filters +- showpalette filter version 2.5: diff --git a/doc/filters.texi b/doc/filters.texi index 154508cfff..25237630ce 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -6885,6 +6885,19 @@ pad="2*iw:2*ih:ow-iw:oh-ih" @end example @end itemize +@section showpalette + +Displays the 256 colors palette of each frame. This filter is only relevant for +@var{pal8} pixel format frames. + +It accepts the following option: + +@table @option +@item s +Set the size of the box used to represent one palette color entry. Default is +@code{30} (for a @code{30x30} pixel box). +@end table + @section perspective Correct perspective of video not recorded perpendicular to the screen. diff --git a/libavfilter/Makefile b/libavfilter/Makefile index 37f5a65f69..1f0eb15676 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -181,6 +181,7 @@ OBJS-$(CONFIG_SETPTS_FILTER) += setpts.o OBJS-$(CONFIG_SETSAR_FILTER) += vf_aspect.o OBJS-$(CONFIG_SETTB_FILTER) += settb.o OBJS-$(CONFIG_SHOWINFO_FILTER) += vf_showinfo.o +OBJS-$(CONFIG_SHOWPALETTE_FILTER) += vf_showpalette.o OBJS-$(CONFIG_SHUFFLEPLANES_FILTER) += vf_shuffleplanes.o OBJS-$(CONFIG_SIGNALSTATS_FILTER) += vf_signalstats.o OBJS-$(CONFIG_SMARTBLUR_FILTER) += vf_smartblur.o diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index b19da616b0..028e3ea2d2 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -196,6 +196,7 @@ void avfilter_register_all(void) REGISTER_FILTER(SETSAR, setsar, vf); REGISTER_FILTER(SETTB, settb, vf); REGISTER_FILTER(SHOWINFO, showinfo, vf); + REGISTER_FILTER(SHOWPALETTE, showpalette, vf); REGISTER_FILTER(SHUFFLEPLANES, shuffleplanes, vf); REGISTER_FILTER(SIGNALSTATS, signalstats, vf); REGISTER_FILTER(SMARTBLUR, smartblur, vf); diff --git a/libavfilter/version.h b/libavfilter/version.h index 383eb55ef4..021f01c73a 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -30,8 +30,8 @@ #include "libavutil/version.h" #define LIBAVFILTER_VERSION_MAJOR 5 -#define LIBAVFILTER_VERSION_MINOR 7 -#define LIBAVFILTER_VERSION_MICRO 101 +#define LIBAVFILTER_VERSION_MINOR 8 +#define LIBAVFILTER_VERSION_MICRO 100 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ LIBAVFILTER_VERSION_MINOR, \ diff --git a/libavfilter/vf_showpalette.c b/libavfilter/vf_showpalette.c new file mode 100644 index 0000000000..adcfeb4f10 --- /dev/null +++ b/libavfilter/vf_showpalette.c @@ -0,0 +1,127 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Display frame palette (AV_PIX_FMT_PAL8) + */ + +#include "libavutil/avassert.h" +#include "libavutil/opt.h" +#include "avfilter.h" +#include "formats.h" +#include "internal.h" +#include "video.h" + +typedef struct { + const AVClass *class; + int size; +} ShowPaletteContext; + +#define OFFSET(x) offsetof(ShowPaletteContext, x) +#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM +static const AVOption showpalette_options[] = { + { "s", "set pixel box size", OFFSET(size), AV_OPT_TYPE_INT, {.i64=30}, 1, 100, FLAGS }, + { NULL } +}; + +AVFILTER_DEFINE_CLASS(showpalette); + +static int query_formats(AVFilterContext *ctx) +{ + static const enum AVPixelFormat in_fmts[] = {AV_PIX_FMT_PAL8, AV_PIX_FMT_NONE}; + static const enum AVPixelFormat out_fmts[] = {AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE}; + AVFilterFormats *in = ff_make_format_list(in_fmts); + AVFilterFormats *out = ff_make_format_list(out_fmts); + if (!in || !out) + return AVERROR(ENOMEM); + ff_formats_ref(in, &ctx->inputs[0]->out_formats); + ff_formats_ref(out, &ctx->outputs[0]->in_formats); + return 0; +} + +static int config_output(AVFilterLink *outlink) +{ + AVFilterContext *ctx = outlink->src; + const ShowPaletteContext *s = ctx->priv; + outlink->w = outlink->h = 16 * s->size; + return 0; +} + +static int disp_palette(AVFrame *out, const AVFrame *in, int size) +{ + int x, y, i, j; + uint32_t *dst = (uint32_t *)out->data[0]; + const int dst_linesize = out->linesize[0] >> 2; + const uint32_t *pal = (uint32_t *)in->data[1]; + + for (y = 0; y < 16; y++) + for (x = 0; x < 16; x++) + for (j = 0; j < size; j++) + for (i = 0; i < size; i++) + dst[(y*dst_linesize + x) * size + j*dst_linesize + i] = pal[y*16 + x]; + return 0; +} + +static int filter_frame(AVFilterLink *inlink, AVFrame *in) +{ + int ret; + AVFrame *out; + AVFilterContext *ctx = inlink->dst; + const ShowPaletteContext *s= ctx->priv; + AVFilterLink *outlink = ctx->outputs[0]; + + out = ff_get_video_buffer(outlink, outlink->w, outlink->h); + if (!out) { + av_frame_free(&in); + return AVERROR(ENOMEM); + } + av_frame_copy_props(out, in); + ret = disp_palette(out, in, s->size); + av_frame_free(&in); + return ret < 0 ? ret : ff_filter_frame(outlink, out); +} + +static const AVFilterPad showpalette_inputs[] = { + { + .name = "default", + .type = AVMEDIA_TYPE_VIDEO, + .filter_frame = filter_frame, + }, + { NULL } +}; + +static const AVFilterPad showpalette_outputs[] = { + { + .name = "default", + .type = AVMEDIA_TYPE_VIDEO, + .config_props = config_output, + }, + { NULL } +}; + +AVFilter ff_vf_showpalette = { + .name = "showpalette", + .description = NULL_IF_CONFIG_SMALL("Display frame palette"), + .priv_size = sizeof(ShowPaletteContext), + .query_formats = query_formats, + .inputs = showpalette_inputs, + .outputs = showpalette_outputs, + .priv_class = &showpalette_class, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, +}; diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak index 414d96de3e..e50e387dd7 100644 --- a/tests/fate/filter-video.mak +++ b/tests/fate/filter-video.mak @@ -26,6 +26,9 @@ FATE_FILTER-$(call ALLYES, MCDEINT_FILTER, MPEGTS_DEMUXER, MPEG2VIDEO_DECODER SN FATE_FILTER-$(call ALLYES, CODECVIEW_FILTER RM_DEMUXER RV40_DECODER) += fate-filter-codecview-mvs fate-filter-codecview-mvs: CMD = framecrc -flags2 +export_mvs -i $(TARGET_SAMPLES)/real/spygames-2MB.rmvb -vf codecview=mv=pf+bf+bb -vframes 60 -an +FATE_FILTER-$(call ALLYES, SHOWPALETTE_FILTER FLIC_DEMUXER FLIC_DECODER) += fate-filter-showpalette +fate-filter-showpalette: CMD = framecrc -i $(TARGET_SAMPLES)/fli/fli-engines.fli -vf showpalette=3 -pix_fmt bgra + FATE_SAMPLES_AVCONV += $(FATE_FILTER-yes) FATE_FILTER-$(call ALLYES, AVDEVICE LIFE_FILTER) += fate-filter-lavd-life diff --git a/tests/ref/fate/filter-showpalette b/tests/ref/fate/filter-showpalette new file mode 100644 index 0000000000..1a13c2356d --- /dev/null +++ b/tests/ref/fate/filter-showpalette @@ -0,0 +1,316 @@ +#tb 0: 1/35 +0, 0, 0, 1, 9216, 0xc72e034e +0, 1, 1, 1, 9216, 0xc72e034e +0, 2, 2, 1, 9216, 0xc72e034e +0, 3, 3, 1, 9216, 0xc72e034e +0, 4, 4, 1, 9216, 0xc72e034e +0, 5, 5, 1, 9216, 0xc72e034e +0, 6, 6, 1, 9216, 0xc72e034e +0, 7, 7, 1, 9216, 0xc72e034e +0, 8, 8, 1, 9216, 0xc72e034e +0, 9, 9, 1, 9216, 0xc72e034e +0, 10, 10, 1, 9216, 0xc72e034e +0, 11, 11, 1, 9216, 0xc72e034e +0, 12, 12, 1, 9216, 0xc72e034e +0, 13, 13, 1, 9216, 0xc72e034e +0, 14, 14, 1, 9216, 0xc72e034e +0, 15, 15, 1, 9216, 0xc72e034e +0, 16, 16, 1, 9216, 0xc72e034e +0, 17, 17, 1, 9216, 0xc72e034e +0, 18, 18, 1, 9216, 0xc72e034e +0, 19, 19, 1, 9216, 0xc72e034e +0, 20, 20, 1, 9216, 0xc72e034e +0, 21, 21, 1, 9216, 0xc72e034e +0, 22, 22, 1, 9216, 0xc72e034e +0, 23, 23, 1, 9216, 0xc72e034e +0, 24, 24, 1, 9216, 0xc72e034e +0, 25, 25, 1, 9216, 0xc72e034e +0, 26, 26, 1, 9216, 0xc72e034e +0, 27, 27, 1, 9216, 0xc72e034e +0, 28, 28, 1, 9216, 0xc72e034e +0, 29, 29, 1, 9216, 0xc72e034e +0, 30, 30, 1, 9216, 0xc72e034e +0, 31, 31, 1, 9216, 0xc72e034e +0, 32, 32, 1, 9216, 0xc72e034e +0, 33, 33, 1, 9216, 0xc72e034e +0, 34, 34, 1, 9216, 0xc72e034e +0, 35, 35, 1, 9216, 0xc72e034e +0, 36, 36, 1, 9216, 0xc72e034e +0, 37, 37, 1, 9216, 0xc72e034e +0, 38, 38, 1, 9216, 0xc72e034e +0, 39, 39, 1, 9216, 0xc72e034e +0, 40, 40, 1, 9216, 0xc72e034e +0, 41, 41, 1, 9216, 0xc72e034e +0, 42, 42, 1, 9216, 0xc72e034e +0, 43, 43, 1, 9216, 0xc72e034e +0, 44, 44, 1, 9216, 0xc72e034e +0, 45, 45, 1, 9216, 0xc72e034e +0, 46, 46, 1, 9216, 0xc72e034e +0, 47, 47, 1, 9216, 0xc72e034e +0, 48, 48, 1, 9216, 0xc72e034e +0, 49, 49, 1, 9216, 0xc72e034e +0, 50, 50, 1, 9216, 0xc72e034e +0, 51, 51, 1, 9216, 0xc72e034e +0, 52, 52, 1, 9216, 0xc72e034e +0, 53, 53, 1, 9216, 0xc72e034e +0, 54, 54, 1, 9216, 0xc72e034e +0, 55, 55, 1, 9216, 0xc72e034e +0, 56, 56, 1, 9216, 0xc72e034e +0, 57, 57, 1, 9216, 0xc72e034e +0, 58, 58, 1, 9216, 0xc72e034e +0, 59, 59, 1, 9216, 0xc72e034e +0, 60, 60, 1, 9216, 0xc72e034e +0, 61, 61, 1, 9216, 0xc72e034e +0, 62, 62, 1, 9216, 0xc72e034e +0, 63, 63, 1, 9216, 0xc72e034e +0, 64, 64, 1, 9216, 0xc72e034e +0, 65, 65, 1, 9216, 0xc72e034e +0, 66, 66, 1, 9216, 0xc72e034e +0, 67, 67, 1, 9216, 0xc72e034e +0, 68, 68, 1, 9216, 0xc72e034e +0, 69, 69, 1, 9216, 0xc72e034e +0, 70, 70, 1, 9216, 0xc72e034e +0, 71, 71, 1, 9216, 0xc72e034e +0, 72, 72, 1, 9216, 0xc72e034e +0, 73, 73, 1, 9216, 0xc72e034e +0, 74, 74, 1, 9216, 0xc72e034e +0, 75, 75, 1, 9216, 0xc72e034e +0, 76, 76, 1, 9216, 0xc72e034e +0, 77, 77, 1, 9216, 0xc72e034e +0, 78, 78, 1, 9216, 0xc72e034e +0, 79, 79, 1, 9216, 0xc72e034e +0, 80, 80, 1, 9216, 0xc72e034e +0, 81, 81, 1, 9216, 0xc72e034e +0, 82, 82, 1, 9216, 0xc72e034e +0, 83, 83, 1, 9216, 0xc72e034e +0, 84, 84, 1, 9216, 0xc72e034e +0, 85, 85, 1, 9216, 0xc72e034e +0, 86, 86, 1, 9216, 0xc72e034e +0, 87, 87, 1, 9216, 0xc72e034e +0, 88, 88, 1, 9216, 0xc72e034e +0, 89, 89, 1, 9216, 0xc72e034e +0, 90, 90, 1, 9216, 0xf75be32f +0, 91, 91, 1, 9216, 0xf75be32f +0, 92, 92, 1, 9216, 0xbb5bc1ae +0, 93, 93, 1, 9216, 0xbb5bc1ae +0, 94, 94, 1, 9216, 0x67e4a45c +0, 95, 95, 1, 9216, 0x67e4a45c +0, 96, 96, 1, 9216, 0x6a42832c +0, 97, 97, 1, 9216, 0x6a42832c +0, 98, 98, 1, 9216, 0x44da649f +0, 99, 99, 1, 9216, 0x44da649f +0, 100, 100, 1, 9216, 0x60273f76 +0, 101, 101, 1, 9216, 0x60273f76 +0, 102, 102, 1, 9216, 0x5f0b20aa +0, 103, 103, 1, 9216, 0x5f0b20aa +0, 104, 104, 1, 9216, 0xd382ff8f +0, 105, 105, 1, 9216, 0xd382ff8f +0, 106, 106, 1, 9216, 0x5a29e2a0 +0, 107, 107, 1, 9216, 0x5a29e2a0 +0, 108, 108, 1, 9216, 0x13ffc143 +0, 109, 109, 1, 9216, 0x93aba0d9 +0, 110, 110, 1, 9216, 0x93aba0d9 +0, 111, 111, 1, 9216, 0x93aba0d9 +0, 112, 112, 1, 9216, 0x93aba0d9 +0, 113, 113, 1, 9216, 0x93aba0d9 +0, 114, 114, 1, 9216, 0x93aba0d9 +0, 115, 115, 1, 9216, 0x93aba0d9 +0, 116, 116, 1, 9216, 0x93aba0d9 +0, 117, 117, 1, 9216, 0x93aba0d9 +0, 118, 118, 1, 9216, 0x93aba0d9 +0, 119, 119, 1, 9216, 0x93aba0d9 +0, 120, 120, 1, 9216, 0x93aba0d9 +0, 121, 121, 1, 9216, 0x93aba0d9 +0, 122, 122, 1, 9216, 0x93aba0d9 +0, 123, 123, 1, 9216, 0x93aba0d9 +0, 124, 124, 1, 9216, 0x93aba0d9 +0, 125, 125, 1, 9216, 0x93aba0d9 +0, 126, 126, 1, 9216, 0x93aba0d9 +0, 127, 127, 1, 9216, 0x93aba0d9 +0, 128, 128, 1, 9216, 0x93aba0d9 +0, 129, 129, 1, 9216, 0x93aba0d9 +0, 130, 130, 1, 9216, 0x93aba0d9 +0, 131, 131, 1, 9216, 0x93aba0d9 +0, 132, 132, 1, 9216, 0x93aba0d9 +0, 133, 133, 1, 9216, 0x93aba0d9 +0, 134, 134, 1, 9216, 0x93aba0d9 +0, 135, 135, 1, 9216, 0x93aba0d9 +0, 136, 136, 1, 9216, 0x93aba0d9 +0, 137, 137, 1, 9216, 0x93aba0d9 +0, 138, 138, 1, 9216, 0x93aba0d9 +0, 139, 139, 1, 9216, 0x93aba0d9 +0, 140, 140, 1, 9216, 0x93aba0d9 +0, 141, 141, 1, 9216, 0x93aba0d9 +0, 142, 142, 1, 9216, 0x93aba0d9 +0, 143, 143, 1, 9216, 0x93aba0d9 +0, 144, 144, 1, 9216, 0x93aba0d9 +0, 145, 145, 1, 9216, 0x93aba0d9 +0, 146, 146, 1, 9216, 0x93aba0d9 +0, 147, 147, 1, 9216, 0x93aba0d9 +0, 148, 148, 1, 9216, 0x93aba0d9 +0, 149, 149, 1, 9216, 0x93aba0d9 +0, 150, 150, 1, 9216, 0x93aba0d9 +0, 151, 151, 1, 9216, 0x93aba0d9 +0, 152, 152, 1, 9216, 0x93aba0d9 +0, 153, 153, 1, 9216, 0x93aba0d9 +0, 154, 154, 1, 9216, 0x93aba0d9 +0, 155, 155, 1, 9216, 0x93aba0d9 +0, 156, 156, 1, 9216, 0x93aba0d9 +0, 157, 157, 1, 9216, 0x93aba0d9 +0, 158, 158, 1, 9216, 0x93aba0d9 +0, 159, 159, 1, 9216, 0x93aba0d9 +0, 160, 160, 1, 9216, 0x93aba0d9 +0, 161, 161, 1, 9216, 0x93aba0d9 +0, 162, 162, 1, 9216, 0x93aba0d9 +0, 163, 163, 1, 9216, 0x93aba0d9 +0, 164, 164, 1, 9216, 0x93aba0d9 +0, 165, 165, 1, 9216, 0x93aba0d9 +0, 166, 166, 1, 9216, 0x93aba0d9 +0, 167, 167, 1, 9216, 0x93aba0d9 +0, 168, 168, 1, 9216, 0x93aba0d9 +0, 169, 169, 1, 9216, 0x93aba0d9 +0, 170, 170, 1, 9216, 0x93aba0d9 +0, 171, 171, 1, 9216, 0x93aba0d9 +0, 172, 172, 1, 9216, 0x93aba0d9 +0, 173, 173, 1, 9216, 0x93aba0d9 +0, 174, 174, 1, 9216, 0x93aba0d9 +0, 175, 175, 1, 9216, 0x93aba0d9 +0, 176, 176, 1, 9216, 0x93aba0d9 +0, 177, 177, 1, 9216, 0x93aba0d9 +0, 178, 178, 1, 9216, 0x93aba0d9 +0, 179, 179, 1, 9216, 0x93aba0d9 +0, 180, 180, 1, 9216, 0x93aba0d9 +0, 181, 181, 1, 9216, 0x93aba0d9 +0, 182, 182, 1, 9216, 0x93aba0d9 +0, 183, 183, 1, 9216, 0x93aba0d9 +0, 184, 184, 1, 9216, 0x93aba0d9 +0, 185, 185, 1, 9216, 0x93aba0d9 +0, 186, 186, 1, 9216, 0x93aba0d9 +0, 187, 187, 1, 9216, 0x93aba0d9 +0, 188, 188, 1, 9216, 0x93aba0d9 +0, 189, 189, 1, 9216, 0x93aba0d9 +0, 190, 190, 1, 9216, 0x93aba0d9 +0, 191, 191, 1, 9216, 0x93aba0d9 +0, 192, 192, 1, 9216, 0x93aba0d9 +0, 193, 193, 1, 9216, 0x93aba0d9 +0, 194, 194, 1, 9216, 0x93aba0d9 +0, 195, 195, 1, 9216, 0x93aba0d9 +0, 196, 196, 1, 9216, 0x93aba0d9 +0, 197, 197, 1, 9216, 0x93aba0d9 +0, 198, 198, 1, 9216, 0x93aba0d9 +0, 199, 199, 1, 9216, 0x93aba0d9 +0, 200, 200, 1, 9216, 0x93aba0d9 +0, 201, 201, 1, 9216, 0x93aba0d9 +0, 202, 202, 1, 9216, 0x93aba0d9 +0, 203, 203, 1, 9216, 0x93aba0d9 +0, 204, 204, 1, 9216, 0x93aba0d9 +0, 205, 205, 1, 9216, 0x93aba0d9 +0, 206, 206, 1, 9216, 0x93aba0d9 +0, 207, 207, 1, 9216, 0x93aba0d9 +0, 208, 208, 1, 9216, 0x93aba0d9 +0, 209, 209, 1, 9216, 0x93aba0d9 +0, 210, 210, 1, 9216, 0xb57cbdda +0, 211, 211, 1, 9216, 0xfad4d7a8 +0, 212, 212, 1, 9216, 0x4a0bf635 +0, 213, 213, 1, 9216, 0x44880d81 +0, 214, 214, 1, 9216, 0x4de02b90 +0, 215, 215, 1, 9216, 0x2a4f4ac8 +0, 216, 216, 1, 9216, 0x96616376 +0, 217, 217, 1, 9216, 0x65c88629 +0, 218, 218, 1, 9216, 0x3d4a9efb +0, 219, 219, 1, 9216, 0x85a5bdbe +0, 220, 220, 1, 9216, 0x653edbd6 +0, 221, 221, 1, 9216, 0x9f28f433 +0, 222, 222, 1, 9216, 0x8f3f13ef +0, 223, 223, 1, 9216, 0x43e32e56 +0, 224, 224, 1, 9216, 0x780d3969 +0, 225, 225, 1, 9216, 0x780d3969 +0, 226, 226, 1, 9216, 0x780d3969 +0, 227, 227, 1, 9216, 0x780d3969 +0, 228, 228, 1, 9216, 0x780d3969 +0, 229, 229, 1, 9216, 0x780d3969 +0, 230, 230, 1, 9216, 0x780d3969 +0, 231, 231, 1, 9216, 0x780d3969 +0, 232, 232, 1, 9216, 0x780d3969 +0, 233, 233, 1, 9216, 0x780d3969 +0, 234, 234, 1, 9216, 0x780d3969 +0, 235, 235, 1, 9216, 0x780d3969 +0, 236, 236, 1, 9216, 0x780d3969 +0, 237, 237, 1, 9216, 0x780d3969 +0, 238, 238, 1, 9216, 0x780d3969 +0, 239, 239, 1, 9216, 0x780d3969 +0, 240, 240, 1, 9216, 0x780d3969 +0, 241, 241, 1, 9216, 0x780d3969 +0, 242, 242, 1, 9216, 0x780d3969 +0, 243, 243, 1, 9216, 0x780d3969 +0, 244, 244, 1, 9216, 0x780d3969 +0, 245, 245, 1, 9216, 0x780d3969 +0, 246, 246, 1, 9216, 0x780d3969 +0, 247, 247, 1, 9216, 0x780d3969 +0, 248, 248, 1, 9216, 0x780d3969 +0, 249, 249, 1, 9216, 0x780d3969 +0, 250, 250, 1, 9216, 0x780d3969 +0, 251, 251, 1, 9216, 0x780d3969 +0, 252, 252, 1, 9216, 0x780d3969 +0, 253, 253, 1, 9216, 0x780d3969 +0, 254, 254, 1, 9216, 0x780d3969 +0, 255, 255, 1, 9216, 0x780d3969 +0, 256, 256, 1, 9216, 0x780d3969 +0, 257, 257, 1, 9216, 0x780d3969 +0, 258, 258, 1, 9216, 0x780d3969 +0, 259, 259, 1, 9216, 0x780d3969 +0, 260, 260, 1, 9216, 0x780d3969 +0, 261, 261, 1, 9216, 0x780d3969 +0, 262, 262, 1, 9216, 0x780d3969 +0, 263, 263, 1, 9216, 0x780d3969 +0, 264, 264, 1, 9216, 0x780d3969 +0, 265, 265, 1, 9216, 0x780d3969 +0, 266, 266, 1, 9216, 0x780d3969 +0, 267, 267, 1, 9216, 0x780d3969 +0, 268, 268, 1, 9216, 0x780d3969 +0, 269, 269, 1, 9216, 0x780d3969 +0, 270, 270, 1, 9216, 0x780d3969 +0, 271, 271, 1, 9216, 0x780d3969 +0, 272, 272, 1, 9216, 0x780d3969 +0, 273, 273, 1, 9216, 0x780d3969 +0, 274, 274, 1, 9216, 0x780d3969 +0, 275, 275, 1, 9216, 0x780d3969 +0, 276, 276, 1, 9216, 0x780d3969 +0, 277, 277, 1, 9216, 0x780d3969 +0, 278, 278, 1, 9216, 0x780d3969 +0, 279, 279, 1, 9216, 0x780d3969 +0, 280, 280, 1, 9216, 0x780d3969 +0, 281, 281, 1, 9216, 0x780d3969 +0, 282, 282, 1, 9216, 0x780d3969 +0, 283, 283, 1, 9216, 0x780d3969 +0, 284, 284, 1, 9216, 0x780d3969 +0, 285, 285, 1, 9216, 0x780d3969 +0, 286, 286, 1, 9216, 0x780d3969 +0, 287, 287, 1, 9216, 0x780d3969 +0, 288, 288, 1, 9216, 0x780d3969 +0, 289, 289, 1, 9216, 0x780d3969 +0, 290, 290, 1, 9216, 0x780d3969 +0, 291, 291, 1, 9216, 0x780d3969 +0, 292, 292, 1, 9216, 0x780d3969 +0, 293, 293, 1, 9216, 0x780d3969 +0, 294, 294, 1, 9216, 0x780d3969 +0, 295, 295, 1, 9216, 0x780d3969 +0, 296, 296, 1, 9216, 0x780d3969 +0, 297, 297, 1, 9216, 0x780d3969 +0, 298, 298, 1, 9216, 0x780d3969 +0, 299, 299, 1, 9216, 0x780d3969 +0, 300, 300, 1, 9216, 0x780d3969 +0, 301, 301, 1, 9216, 0x780d3969 +0, 302, 302, 1, 9216, 0x780d3969 +0, 303, 303, 1, 9216, 0x780d3969 +0, 304, 304, 1, 9216, 0x780d3969 +0, 305, 305, 1, 9216, 0x780d3969 +0, 306, 306, 1, 9216, 0x780d3969 +0, 307, 307, 1, 9216, 0x780d3969 +0, 308, 308, 1, 9216, 0x780d3969 +0, 309, 309, 1, 9216, 0x780d3969 +0, 310, 310, 1, 9216, 0x780d3969 +0, 311, 311, 1, 9216, 0x780d3969 +0, 312, 312, 1, 9216, 0x780d3969 +0, 313, 313, 1, 9216, 0x780d3969 +0, 314, 314, 1, 9216, 0xc72e034e -- 2.11.0