gif: use only one graphic control extension block per image.

The encoder now doesn't produce any extra graphic control extension
block anymore. Only the image is encoded, and the muxer writing
its own GCE containing notably the timing information now includes the
optional palette transmitted through packet side data.

This commit avoid setting clashes between the two GCE, and reduce the
size of the generated file with pal8 output.
This commit is contained in:
Clément Bœsch 2013-04-18 03:35:20 +02:00
parent 7b80b3cef0
commit 13478b270a
3 changed files with 205 additions and 198 deletions

View File

@ -56,28 +56,6 @@ static int gif_image_write_image(AVCodecContext *avctx,
int x_start = 0, y_start = 0;
const uint8_t *ptr;
/* Mark one colour as transparent if the input palette contains at least
* one colour that is more than 50% transparent. */
if (palette) {
unsigned i, smallest_alpha = 0xFF, alpha_component = 0;
for (i = 0; i < AVPALETTE_COUNT; i++) {
const uint32_t v = palette[i];
if (v >> 24 < smallest_alpha) {
smallest_alpha = v >> 24;
alpha_component = i;
}
}
if (smallest_alpha < 128) {
bytestream_put_byte(bytestream, 0x21); /* Extension Introducer */
bytestream_put_byte(bytestream, 0xf9); /* Graphic Control Label */
bytestream_put_byte(bytestream, 0x04); /* block length */
bytestream_put_byte(bytestream, 0x01); /* Transparent Color Flag */
bytestream_put_le16(bytestream, 0x00); /* no delay */
bytestream_put_byte(bytestream, alpha_component);
bytestream_put_byte(bytestream, 0x00);
}
}
/* Crop image */
// TODO support with palette change
if (s->last_frame && !palette) {
@ -210,8 +188,13 @@ static int gif_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
p->pict_type = AV_PICTURE_TYPE_I;
p->key_frame = 1;
if (avctx->pix_fmt == AV_PIX_FMT_PAL8)
if (avctx->pix_fmt == AV_PIX_FMT_PAL8) {
uint8_t *pal_exdata = av_packet_new_side_data(pkt, AV_PKT_DATA_PALETTE, AVPALETTE_SIZE);
if (!pal_exdata)
return AVERROR(ENOMEM);
memcpy(pal_exdata, p->data[1], AVPALETTE_SIZE);
palette = (uint32_t*)p->data[1];
}
gif_image_write_image(avctx, &outbuf_ptr, end, palette, pict->data[0], pict->linesize[0]);
if (!s->last_frame) {

View File

@ -102,15 +102,39 @@ static int gif_write_header(AVFormatContext *s)
static int gif_write_packet(AVFormatContext *s, AVPacket *pkt)
{
int size;
AVCodecContext *enc = s->streams[pkt->stream_index]->codec;
AVIOContext *pb = s->pb;
int jiffies;
uint8_t flags = 0x4, transparent_color_index = 0x1f;
const uint32_t *palette;
/* Mark one colour as transparent if the input palette contains at least
* one colour that is more than 50% transparent. */
palette = (uint32_t*)av_packet_get_side_data(pkt, AV_PKT_DATA_PALETTE, &size);
if (palette && size != AVPALETTE_SIZE) {
av_log(s, AV_LOG_ERROR, "Invalid palette extradata\n");
return AVERROR_INVALIDDATA;
}
if (palette) {
unsigned i, smallest_alpha = 0xff;
for (i = 0; i < AVPALETTE_COUNT; i++) {
const uint32_t v = palette[i];
if (v >> 24 < smallest_alpha) {
smallest_alpha = v >> 24;
transparent_color_index = i;
}
}
if (smallest_alpha < 128)
flags |= 0x1; /* Transparent Color Flag */
}
/* graphic control extension block */
avio_w8(pb, 0x21);
avio_w8(pb, 0xf9);
avio_w8(pb, 0x04); /* block size */
avio_w8(pb, 0x04); /* flags */
avio_w8(pb, flags);
/* 1 jiffy is 1/70 s */
/* the delay_time field indicates the number of jiffies - 1 */
@ -121,7 +145,7 @@ static int gif_write_packet(AVFormatContext *s, AVPacket *pkt)
avio_wl16(pb, jiffies);
avio_w8(pb, 0x1f); /* transparent color index */
avio_w8(pb, transparent_color_index);
avio_w8(pb, 0x00);
avio_write(pb, pkt->data, pkt->size);

View File

@ -1,174 +1,174 @@
#tb 0: 1/100
0, 0, 0, 1, 1320, 0x95d1a9e9
0, 10, 10, 1, 1463, 0xa697fe95
0, 20, 20, 1, 1637, 0x294d54f9
0, 30, 30, 1, 1755, 0x7e0b9c4d
0, 40, 40, 1, 1896, 0x4aacc768
0, 50, 50, 1, 2038, 0x209d1490
0, 60, 60, 1, 2168, 0x0c405606
0, 70, 70, 1, 2258, 0xc2fa9229
0, 80, 80, 1, 2441, 0x2076ec47
0, 90, 90, 1, 2565, 0x15742730
0, 100, 100, 1, 2733, 0x2eb57d95
0, 110, 110, 1, 2849, 0x9f16ad46
0, 120, 120, 1, 2981, 0xf139f908
0, 130, 130, 1, 3081, 0x0b2a4aeb
0, 140, 140, 1, 3200, 0x35227f42
0, 150, 150, 1, 3315, 0x35edc001
0, 160, 160, 1, 3462, 0x27a20d23
0, 170, 170, 1, 3599, 0x83c52b01
0, 180, 180, 1, 3712, 0x947d49d1
0, 190, 190, 1, 3838, 0xf87eb223
0, 200, 200, 1, 3948, 0x5203eede
0, 210, 210, 1, 4083, 0x32101e33
0, 220, 220, 1, 4186, 0x6b0e5a13
0, 230, 230, 1, 4323, 0x6326a0f5
0, 240, 240, 1, 4426, 0x5f6bd655
0, 250, 250, 1, 4564, 0xc62005fd
0, 260, 260, 1, 4664, 0x43e97006
0, 270, 270, 1, 4808, 0xf6e08d4f
0, 280, 280, 1, 4932, 0x2d51e0b5
0, 290, 290, 1, 5071, 0x25e830c7
0, 300, 300, 1, 5246, 0x452e945c
0, 310, 310, 1, 5353, 0x27eec140
0, 320, 320, 1, 5535, 0xda38038c
0, 330, 330, 1, 5691, 0x358970e4
0, 340, 340, 1, 5835, 0xd89201d8
0, 350, 350, 1, 5966, 0xfbee1fed
0, 360, 360, 1, 6082, 0xd4b88e90
0, 370, 370, 1, 6276, 0x1b02e684
0, 380, 380, 1, 6382, 0xc1db2297
0, 390, 390, 1, 6509, 0xc65473a6
0, 400, 400, 1, 6621, 0xca917a35
0, 410, 410, 1, 6714, 0x70f29b1d
0, 420, 420, 1, 6822, 0x6f02e7ec
0, 430, 430, 1, 6880, 0x95440d97
0, 440, 440, 1, 6983, 0xab7a43fb
0, 450, 450, 1, 7085, 0xc3427580
0, 460, 460, 1, 7242, 0x3d00c5f0
0, 470, 470, 1, 7349, 0x453fad59
0, 480, 480, 1, 7513, 0x96d12666
0, 490, 490, 1, 7575, 0xf8cb3c77
0, 500, 500, 1, 7759, 0x1fe6ab40
0, 510, 510, 1, 7846, 0x3853fd0f
0, 520, 520, 1, 7975, 0x88d02c47
0, 530, 530, 1, 8092, 0xe28a3368
0, 540, 540, 1, 8188, 0x159a5d3b
0, 550, 550, 1, 8307, 0x598cae50
0, 560, 560, 1, 8436, 0xd104ee50
0, 570, 570, 1, 8498, 0x0b1527ed
0, 580, 580, 1, 8559, 0x0f722288
0, 590, 590, 1, 8661, 0x3efb2500
0, 600, 600, 1, 8774, 0x1e188a8b
0, 610, 610, 1, 8848, 0x5b438dbb
0, 620, 620, 1, 8968, 0x4b47ecb3
0, 630, 630, 1, 9036, 0x7a8e0791
0, 640, 640, 1, 9114, 0x7379131a
0, 650, 650, 1, 9258, 0x06099246
0, 660, 660, 1, 9423, 0x721ac9ab
0, 670, 670, 1, 9529, 0xbb1c0d18
0, 680, 680, 1, 9608, 0xc29a05f0
0, 690, 690, 1, 9668, 0xf35221ff
0, 700, 700, 1, 9709, 0x8c6d33f0
0, 710, 710, 1, 9810, 0x2d5b59f4
0, 720, 720, 1, 9879, 0x110ea6e5
0, 730, 730, 1, 10038, 0x5945f5f4
0, 740, 740, 1, 10120, 0xab24f519
0, 750, 750, 1, 10218, 0x090d305a
0, 760, 760, 1, 10231, 0xa77e6a66
0, 770, 770, 1, 10313, 0x192254b7
0, 780, 780, 1, 10444, 0x36609934
0, 790, 790, 1, 10670, 0xfa971206
0, 800, 800, 1, 10902, 0x01b59fd5
0, 810, 810, 1, 10992, 0x1f2ab0bc
0, 820, 820, 1, 11044, 0x7f5b1dc2
0, 830, 830, 1, 11170, 0x0beaee49
0, 840, 840, 1, 11267, 0xb1ae3808
0, 850, 850, 1, 11427, 0x2cc9aa3f
0, 860, 860, 1, 11529, 0x654de4f3
0, 870, 870, 1, 11632, 0xf4972bdf
0, 880, 880, 1, 11825, 0x0cd2548c
0, 890, 890, 1, 11864, 0x80758637
0, 900, 900, 1, 11949, 0x87c86fb9
0, 910, 910, 1, 12088, 0x1b99c82b
0, 920, 920, 1, 12160, 0x72fbf4ac
0, 930, 930, 1, 12305, 0x9f62069a
0, 940, 940, 1, 12295, 0x0625d96b
0, 950, 950, 1, 12496, 0xe67cb2cf
0, 960, 960, 1, 12660, 0x4d1d05ea
0, 970, 970, 1, 12763, 0x12542531
0, 980, 980, 1, 12916, 0x37c444db
0, 990, 990, 1, 13021, 0xa1c89f22
0, 1000, 1000, 1, 13184, 0xe13ad0be
0, 1010, 1010, 1, 13315, 0x11b93a5d
0, 1020, 1020, 1, 13336, 0x128254ee
0, 1030, 1030, 1, 13536, 0x48b7b5de
0, 1040, 1040, 1, 13728, 0x03f4d302
0, 1050, 1050, 1, 13821, 0xfe4e97eb
0, 1060, 1060, 1, 14002, 0x0de77dfc
0, 1070, 1070, 1, 14156, 0xf1b1d4e1
0, 1080, 1080, 1, 14256, 0x355320cc
0, 1090, 1090, 1, 14451, 0x306cb131
0, 1100, 1100, 1, 14508, 0xca729c8e
0, 1110, 1110, 1, 14683, 0x7abec197
0, 1120, 1120, 1, 14852, 0xa5b90496
0, 1130, 1130, 1, 15090, 0xcd29839d
0, 1140, 1140, 1, 15225, 0xfd85f899
0, 1150, 1150, 1, 15340, 0x07411310
0, 1160, 1160, 1, 15473, 0xe90086c1
0, 1170, 1170, 1, 15583, 0x524da1f3
0, 1180, 1180, 1, 15683, 0x404cbd62
0, 1190, 1190, 1, 15779, 0x3ec01717
0, 1200, 1200, 1, 15934, 0xac8b4c03
0, 1210, 1210, 1, 16116, 0xb4fa83c9
0, 1220, 1220, 1, 16153, 0x18f669c1
0, 1230, 1230, 1, 16303, 0x765b10e4
0, 1240, 1240, 1, 16460, 0xc4a8149a
0, 1250, 1250, 1, 16475, 0x48664e2d
0, 1260, 1260, 1, 16710, 0x8a599742
0, 1270, 1270, 1, 16848, 0x8634a3d5
0, 1280, 1280, 1, 16955, 0x01f1ebda
0, 1290, 1290, 1, 17044, 0xd57b47df
0, 1300, 1300, 1, 17153, 0xc5cf7bc7
0, 1310, 1310, 1, 17375, 0xbbeea767
0, 1320, 1320, 1, 17476, 0xd7a25686
0, 1330, 1330, 1, 17602, 0x1c99b228
0, 1340, 1340, 1, 17676, 0xd860d1d2
0, 1350, 1350, 1, 17799, 0xe4ccb3ae
0, 1360, 1360, 1, 17930, 0xf322e416
0, 1370, 1370, 1, 18201, 0xc6f1cfa7
0, 1380, 1380, 1, 18409, 0x7cdfe609
0, 1390, 1390, 1, 18686, 0xf65e5519
0, 1400, 1400, 1, 18790, 0x6d5c8a90
0, 1410, 1410, 1, 18891, 0x4702a6cf
0, 1420, 1420, 1, 18995, 0x69e5e02d
0, 1430, 1430, 1, 19058, 0xc56f0272
0, 1440, 1440, 1, 19223, 0xe89733f6
0, 1450, 1450, 1, 19501, 0xdb80f9e9
0, 1460, 1460, 1, 19566, 0xa3952da8
0, 1470, 1470, 1, 19692, 0x65925150
0, 1480, 1480, 1, 19730, 0x1352599a
0, 1490, 1490, 1, 19916, 0xd246bf9b
0, 1500, 1500, 1, 20136, 0x1c462eea
0, 1510, 1510, 1, 20210, 0xdec93f63
0, 1520, 1520, 1, 20311, 0xdff7836e
0, 1530, 1530, 1, 20377, 0x753d813f
0, 1540, 1540, 1, 20478, 0x7592b1a8
0, 1550, 1550, 1, 20597, 0x58313994
0, 1560, 1560, 1, 20717, 0xcdd9c665
0, 1570, 1570, 1, 20816, 0x803b4b03
0, 1580, 1580, 1, 20912, 0xce36ce22
0, 1590, 1590, 1, 20975, 0x1d08e543
0, 1600, 1600, 1, 21130, 0xc966e24c
0, 1610, 1610, 1, 21343, 0x735e614e
0, 1620, 1620, 1, 21455, 0x78d7afd1
0, 1630, 1630, 1, 21533, 0x62a10f46
0, 1640, 1640, 1, 21645, 0x8e53a12f
0, 1650, 1650, 1, 21931, 0x3b2f7226
0, 1660, 1660, 1, 22009, 0xf06bc58a
0, 1670, 1670, 1, 22115, 0xeeb1c5d7
0, 1680, 1680, 1, 22211, 0xcbab1084
0, 1690, 1690, 1, 22380, 0xf07d5cb7
0, 1700, 1700, 1, 22443, 0xcb79441c
0, 1710, 1710, 1, 22588, 0xcad49814
0, 1720, 1720, 1, 22706, 0x34924e43
0, 0, 0, 1, 1320, 0x95d1a9e9, S=1, 1024, 0xec907a9e
0, 10, 10, 1, 1463, 0xa697fe95, S=1, 1024, 0xec907a9e
0, 20, 20, 1, 1637, 0x294d54f9, S=1, 1024, 0xec907a9e
0, 30, 30, 1, 1755, 0x7e0b9c4d, S=1, 1024, 0xec907a9e
0, 40, 40, 1, 1896, 0x4aacc768, S=1, 1024, 0xec907a9e
0, 50, 50, 1, 2038, 0x209d1490, S=1, 1024, 0xec907a9e
0, 60, 60, 1, 2168, 0x0c405606, S=1, 1024, 0xec907a9e
0, 70, 70, 1, 2258, 0xc2fa9229, S=1, 1024, 0xec907a9e
0, 80, 80, 1, 2441, 0x2076ec47, S=1, 1024, 0xec907a9e
0, 90, 90, 1, 2565, 0x15742730, S=1, 1024, 0xec907a9e
0, 100, 100, 1, 2733, 0x2eb57d95, S=1, 1024, 0xec907a9e
0, 110, 110, 1, 2849, 0x9f16ad46, S=1, 1024, 0xec907a9e
0, 120, 120, 1, 2981, 0xf139f908, S=1, 1024, 0xec907a9e
0, 130, 130, 1, 3081, 0x0b2a4aeb, S=1, 1024, 0xec907a9e
0, 140, 140, 1, 3200, 0x35227f42, S=1, 1024, 0xec907a9e
0, 150, 150, 1, 3315, 0x35edc001, S=1, 1024, 0xec907a9e
0, 160, 160, 1, 3462, 0x27a20d23, S=1, 1024, 0xec907a9e
0, 170, 170, 1, 3599, 0x83c52b01, S=1, 1024, 0xec907a9e
0, 180, 180, 1, 3712, 0x947d49d1, S=1, 1024, 0xec907a9e
0, 190, 190, 1, 3838, 0xf87eb223, S=1, 1024, 0xec907a9e
0, 200, 200, 1, 3948, 0x5203eede, S=1, 1024, 0xec907a9e
0, 210, 210, 1, 4083, 0x32101e33, S=1, 1024, 0xec907a9e
0, 220, 220, 1, 4186, 0x6b0e5a13, S=1, 1024, 0xec907a9e
0, 230, 230, 1, 4323, 0x6326a0f5, S=1, 1024, 0xec907a9e
0, 240, 240, 1, 4426, 0x5f6bd655, S=1, 1024, 0xec907a9e
0, 250, 250, 1, 4564, 0xc62005fd, S=1, 1024, 0xec907a9e
0, 260, 260, 1, 4664, 0x43e97006, S=1, 1024, 0xec907a9e
0, 270, 270, 1, 4808, 0xf6e08d4f, S=1, 1024, 0xec907a9e
0, 280, 280, 1, 4932, 0x2d51e0b5, S=1, 1024, 0xec907a9e
0, 290, 290, 1, 5071, 0x25e830c7, S=1, 1024, 0xec907a9e
0, 300, 300, 1, 5246, 0x452e945c, S=1, 1024, 0xec907a9e
0, 310, 310, 1, 5353, 0x27eec140, S=1, 1024, 0xec907a9e
0, 320, 320, 1, 5535, 0xda38038c, S=1, 1024, 0xec907a9e
0, 330, 330, 1, 5691, 0x358970e4, S=1, 1024, 0xec907a9e
0, 340, 340, 1, 5835, 0xd89201d8, S=1, 1024, 0xec907a9e
0, 350, 350, 1, 5966, 0xfbee1fed, S=1, 1024, 0xec907a9e
0, 360, 360, 1, 6082, 0xd4b88e90, S=1, 1024, 0xec907a9e
0, 370, 370, 1, 6276, 0x1b02e684, S=1, 1024, 0xec907a9e
0, 380, 380, 1, 6382, 0xc1db2297, S=1, 1024, 0xec907a9e
0, 390, 390, 1, 6509, 0xc65473a6, S=1, 1024, 0xec907a9e
0, 400, 400, 1, 6621, 0xca917a35, S=1, 1024, 0xec907a9e
0, 410, 410, 1, 6714, 0x70f29b1d, S=1, 1024, 0xec907a9e
0, 420, 420, 1, 6822, 0x6f02e7ec, S=1, 1024, 0xec907a9e
0, 430, 430, 1, 6880, 0x95440d97, S=1, 1024, 0xec907a9e
0, 440, 440, 1, 6983, 0xab7a43fb, S=1, 1024, 0xec907a9e
0, 450, 450, 1, 7085, 0xc3427580, S=1, 1024, 0xec907a9e
0, 460, 460, 1, 7242, 0x3d00c5f0, S=1, 1024, 0xec907a9e
0, 470, 470, 1, 7349, 0x453fad59, S=1, 1024, 0xec907a9e
0, 480, 480, 1, 7513, 0x96d12666, S=1, 1024, 0xec907a9e
0, 490, 490, 1, 7575, 0xf8cb3c77, S=1, 1024, 0xec907a9e
0, 500, 500, 1, 7759, 0x1fe6ab40, S=1, 1024, 0xec907a9e
0, 510, 510, 1, 7846, 0x3853fd0f, S=1, 1024, 0xec907a9e
0, 520, 520, 1, 7975, 0x88d02c47, S=1, 1024, 0xec907a9e
0, 530, 530, 1, 8092, 0xe28a3368, S=1, 1024, 0xec907a9e
0, 540, 540, 1, 8188, 0x159a5d3b, S=1, 1024, 0xec907a9e
0, 550, 550, 1, 8307, 0x598cae50, S=1, 1024, 0xec907a9e
0, 560, 560, 1, 8436, 0xd104ee50, S=1, 1024, 0xec907a9e
0, 570, 570, 1, 8498, 0x0b1527ed, S=1, 1024, 0xec907a9e
0, 580, 580, 1, 8559, 0x0f722288, S=1, 1024, 0xec907a9e
0, 590, 590, 1, 8661, 0x3efb2500, S=1, 1024, 0xec907a9e
0, 600, 600, 1, 8774, 0x1e188a8b, S=1, 1024, 0xec907a9e
0, 610, 610, 1, 8848, 0x5b438dbb, S=1, 1024, 0xec907a9e
0, 620, 620, 1, 8968, 0x4b47ecb3, S=1, 1024, 0xec907a9e
0, 630, 630, 1, 9036, 0x7a8e0791, S=1, 1024, 0xec907a9e
0, 640, 640, 1, 9114, 0x7379131a, S=1, 1024, 0xec907a9e
0, 650, 650, 1, 9258, 0x06099246, S=1, 1024, 0xec907a9e
0, 660, 660, 1, 9423, 0x721ac9ab, S=1, 1024, 0xec907a9e
0, 670, 670, 1, 9529, 0xbb1c0d18, S=1, 1024, 0xec907a9e
0, 680, 680, 1, 9608, 0xc29a05f0, S=1, 1024, 0xec907a9e
0, 690, 690, 1, 9668, 0xf35221ff, S=1, 1024, 0xec907a9e
0, 700, 700, 1, 9709, 0x8c6d33f0, S=1, 1024, 0xec907a9e
0, 710, 710, 1, 9810, 0x2d5b59f4, S=1, 1024, 0xec907a9e
0, 720, 720, 1, 9879, 0x110ea6e5, S=1, 1024, 0xec907a9e
0, 730, 730, 1, 10038, 0x5945f5f4, S=1, 1024, 0xec907a9e
0, 740, 740, 1, 10120, 0xab24f519, S=1, 1024, 0xec907a9e
0, 750, 750, 1, 10218, 0x090d305a, S=1, 1024, 0xec907a9e
0, 760, 760, 1, 10231, 0xa77e6a66, S=1, 1024, 0xec907a9e
0, 770, 770, 1, 10313, 0x192254b7, S=1, 1024, 0xec907a9e
0, 780, 780, 1, 10444, 0x36609934, S=1, 1024, 0xec907a9e
0, 790, 790, 1, 10670, 0xfa971206, S=1, 1024, 0xec907a9e
0, 800, 800, 1, 10902, 0x01b59fd5, S=1, 1024, 0xec907a9e
0, 810, 810, 1, 10992, 0x1f2ab0bc, S=1, 1024, 0xec907a9e
0, 820, 820, 1, 11044, 0x7f5b1dc2, S=1, 1024, 0xec907a9e
0, 830, 830, 1, 11170, 0x0beaee49, S=1, 1024, 0xec907a9e
0, 840, 840, 1, 11267, 0xb1ae3808, S=1, 1024, 0xec907a9e
0, 850, 850, 1, 11427, 0x2cc9aa3f, S=1, 1024, 0xec907a9e
0, 860, 860, 1, 11529, 0x654de4f3, S=1, 1024, 0xec907a9e
0, 870, 870, 1, 11632, 0xf4972bdf, S=1, 1024, 0xec907a9e
0, 880, 880, 1, 11825, 0x0cd2548c, S=1, 1024, 0xec907a9e
0, 890, 890, 1, 11864, 0x80758637, S=1, 1024, 0xec907a9e
0, 900, 900, 1, 11949, 0x87c86fb9, S=1, 1024, 0xec907a9e
0, 910, 910, 1, 12088, 0x1b99c82b, S=1, 1024, 0xec907a9e
0, 920, 920, 1, 12160, 0x72fbf4ac, S=1, 1024, 0xec907a9e
0, 930, 930, 1, 12305, 0x9f62069a, S=1, 1024, 0xec907a9e
0, 940, 940, 1, 12295, 0x0625d96b, S=1, 1024, 0xec907a9e
0, 950, 950, 1, 12496, 0xe67cb2cf, S=1, 1024, 0xec907a9e
0, 960, 960, 1, 12660, 0x4d1d05ea, S=1, 1024, 0xec907a9e
0, 970, 970, 1, 12763, 0x12542531, S=1, 1024, 0xec907a9e
0, 980, 980, 1, 12916, 0x37c444db, S=1, 1024, 0xec907a9e
0, 990, 990, 1, 13021, 0xa1c89f22, S=1, 1024, 0xec907a9e
0, 1000, 1000, 1, 13184, 0xe13ad0be, S=1, 1024, 0xec907a9e
0, 1010, 1010, 1, 13315, 0x11b93a5d, S=1, 1024, 0xec907a9e
0, 1020, 1020, 1, 13336, 0x128254ee, S=1, 1024, 0xec907a9e
0, 1030, 1030, 1, 13536, 0x48b7b5de, S=1, 1024, 0xec907a9e
0, 1040, 1040, 1, 13728, 0x03f4d302, S=1, 1024, 0xec907a9e
0, 1050, 1050, 1, 13821, 0xfe4e97eb, S=1, 1024, 0xec907a9e
0, 1060, 1060, 1, 14002, 0x0de77dfc, S=1, 1024, 0xec907a9e
0, 1070, 1070, 1, 14156, 0xf1b1d4e1, S=1, 1024, 0xec907a9e
0, 1080, 1080, 1, 14256, 0x355320cc, S=1, 1024, 0xec907a9e
0, 1090, 1090, 1, 14451, 0x306cb131, S=1, 1024, 0xec907a9e
0, 1100, 1100, 1, 14508, 0xca729c8e, S=1, 1024, 0xec907a9e
0, 1110, 1110, 1, 14683, 0x7abec197, S=1, 1024, 0xec907a9e
0, 1120, 1120, 1, 14852, 0xa5b90496, S=1, 1024, 0xec907a9e
0, 1130, 1130, 1, 15090, 0xcd29839d, S=1, 1024, 0xec907a9e
0, 1140, 1140, 1, 15225, 0xfd85f899, S=1, 1024, 0xec907a9e
0, 1150, 1150, 1, 15340, 0x07411310, S=1, 1024, 0xec907a9e
0, 1160, 1160, 1, 15473, 0xe90086c1, S=1, 1024, 0xec907a9e
0, 1170, 1170, 1, 15583, 0x524da1f3, S=1, 1024, 0xec907a9e
0, 1180, 1180, 1, 15683, 0x404cbd62, S=1, 1024, 0xec907a9e
0, 1190, 1190, 1, 15779, 0x3ec01717, S=1, 1024, 0xec907a9e
0, 1200, 1200, 1, 15934, 0xac8b4c03, S=1, 1024, 0xec907a9e
0, 1210, 1210, 1, 16116, 0xb4fa83c9, S=1, 1024, 0xec907a9e
0, 1220, 1220, 1, 16153, 0x18f669c1, S=1, 1024, 0xec907a9e
0, 1230, 1230, 1, 16303, 0x765b10e4, S=1, 1024, 0xec907a9e
0, 1240, 1240, 1, 16460, 0xc4a8149a, S=1, 1024, 0xec907a9e
0, 1250, 1250, 1, 16475, 0x48664e2d, S=1, 1024, 0xec907a9e
0, 1260, 1260, 1, 16710, 0x8a599742, S=1, 1024, 0xec907a9e
0, 1270, 1270, 1, 16848, 0x8634a3d5, S=1, 1024, 0xec907a9e
0, 1280, 1280, 1, 16955, 0x01f1ebda, S=1, 1024, 0xec907a9e
0, 1290, 1290, 1, 17044, 0xd57b47df, S=1, 1024, 0xec907a9e
0, 1300, 1300, 1, 17153, 0xc5cf7bc7, S=1, 1024, 0xec907a9e
0, 1310, 1310, 1, 17375, 0xbbeea767, S=1, 1024, 0xec907a9e
0, 1320, 1320, 1, 17476, 0xd7a25686, S=1, 1024, 0xec907a9e
0, 1330, 1330, 1, 17602, 0x1c99b228, S=1, 1024, 0xec907a9e
0, 1340, 1340, 1, 17676, 0xd860d1d2, S=1, 1024, 0xec907a9e
0, 1350, 1350, 1, 17799, 0xe4ccb3ae, S=1, 1024, 0xec907a9e
0, 1360, 1360, 1, 17930, 0xf322e416, S=1, 1024, 0xec907a9e
0, 1370, 1370, 1, 18201, 0xc6f1cfa7, S=1, 1024, 0xec907a9e
0, 1380, 1380, 1, 18409, 0x7cdfe609, S=1, 1024, 0xec907a9e
0, 1390, 1390, 1, 18686, 0xf65e5519, S=1, 1024, 0xec907a9e
0, 1400, 1400, 1, 18790, 0x6d5c8a90, S=1, 1024, 0xec907a9e
0, 1410, 1410, 1, 18891, 0x4702a6cf, S=1, 1024, 0xec907a9e
0, 1420, 1420, 1, 18995, 0x69e5e02d, S=1, 1024, 0xec907a9e
0, 1430, 1430, 1, 19058, 0xc56f0272, S=1, 1024, 0xec907a9e
0, 1440, 1440, 1, 19223, 0xe89733f6, S=1, 1024, 0xec907a9e
0, 1450, 1450, 1, 19501, 0xdb80f9e9, S=1, 1024, 0xec907a9e
0, 1460, 1460, 1, 19566, 0xa3952da8, S=1, 1024, 0xec907a9e
0, 1470, 1470, 1, 19692, 0x65925150, S=1, 1024, 0xec907a9e
0, 1480, 1480, 1, 19730, 0x1352599a, S=1, 1024, 0xec907a9e
0, 1490, 1490, 1, 19916, 0xd246bf9b, S=1, 1024, 0xec907a9e
0, 1500, 1500, 1, 20136, 0x1c462eea, S=1, 1024, 0xec907a9e
0, 1510, 1510, 1, 20210, 0xdec93f63, S=1, 1024, 0xec907a9e
0, 1520, 1520, 1, 20311, 0xdff7836e, S=1, 1024, 0xec907a9e
0, 1530, 1530, 1, 20377, 0x753d813f, S=1, 1024, 0xec907a9e
0, 1540, 1540, 1, 20478, 0x7592b1a8, S=1, 1024, 0xec907a9e
0, 1550, 1550, 1, 20597, 0x58313994, S=1, 1024, 0xec907a9e
0, 1560, 1560, 1, 20717, 0xcdd9c665, S=1, 1024, 0xec907a9e
0, 1570, 1570, 1, 20816, 0x803b4b03, S=1, 1024, 0xec907a9e
0, 1580, 1580, 1, 20912, 0xce36ce22, S=1, 1024, 0xec907a9e
0, 1590, 1590, 1, 20975, 0x1d08e543, S=1, 1024, 0xec907a9e
0, 1600, 1600, 1, 21130, 0xc966e24c, S=1, 1024, 0xec907a9e
0, 1610, 1610, 1, 21343, 0x735e614e, S=1, 1024, 0xec907a9e
0, 1620, 1620, 1, 21455, 0x78d7afd1, S=1, 1024, 0xec907a9e
0, 1630, 1630, 1, 21533, 0x62a10f46, S=1, 1024, 0xec907a9e
0, 1640, 1640, 1, 21645, 0x8e53a12f, S=1, 1024, 0xec907a9e
0, 1650, 1650, 1, 21931, 0x3b2f7226, S=1, 1024, 0xec907a9e
0, 1660, 1660, 1, 22009, 0xf06bc58a, S=1, 1024, 0xec907a9e
0, 1670, 1670, 1, 22115, 0xeeb1c5d7, S=1, 1024, 0xec907a9e
0, 1680, 1680, 1, 22211, 0xcbab1084, S=1, 1024, 0xec907a9e
0, 1690, 1690, 1, 22380, 0xf07d5cb7, S=1, 1024, 0xec907a9e
0, 1700, 1700, 1, 22443, 0xcb79441c, S=1, 1024, 0xec907a9e
0, 1710, 1710, 1, 22588, 0xcad49814, S=1, 1024, 0xec907a9e
0, 1720, 1720, 1, 22706, 0x34924e43, S=1, 1024, 0xec907a9e