diff --git a/libavformat/spdifdec.c b/libavformat/spdifdec.c index 672133581a..7a6b77aae8 100644 --- a/libavformat/spdifdec.c +++ b/libavformat/spdifdec.c @@ -31,6 +31,7 @@ #include "libavcodec/adts_parser.h" #include "avformat.h" +#include "internal.h" #include "spdif.h" static int spdif_get_offset_and_codec(AVFormatContext *s, @@ -93,6 +94,10 @@ static int spdif_get_offset_and_codec(AVFormatContext *s, *offset = 8192; *codec = AV_CODEC_ID_DTS; break; + case IEC61937_EAC3: + *offset = 24576; + *codec = AV_CODEC_ID_EAC3; + break; default: if (s) { /* be silent during a probe */ avpriv_request_sample(s, "Data type 0x%04x in IEC 61937", @@ -170,6 +175,16 @@ static int spdif_read_header(AVFormatContext *s) return 0; } +static int spdif_get_pkt_size_bits(int type, int code) +{ + switch (type & 0xff) { + case IEC61937_EAC3: + return code << 3; + default: + return code; + } +} + int ff_spdif_read_packet(AVFormatContext *s, AVPacket *pkt) { AVIOContext *pb = s->pb; @@ -185,7 +200,7 @@ int ff_spdif_read_packet(AVFormatContext *s, AVPacket *pkt) } data_type = avio_rl16(pb); - pkt_size_bits = avio_rl16(pb); + pkt_size_bits = spdif_get_pkt_size_bits(data_type, avio_rl16(pb)); if (pkt_size_bits % 16) avpriv_request_sample(s, "Packet not ending at a 16-bit boundary"); @@ -218,6 +233,8 @@ int ff_spdif_read_packet(AVFormatContext *s, AVPacket *pkt) } st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = codec_id; + if (codec_id == AV_CODEC_ID_EAC3) + ffstream(st)->need_parsing = AVSTREAM_PARSE_FULL; } else if (codec_id != s->streams[0]->codecpar->codec_id) { avpriv_report_missing_feature(s, "Codec change in IEC 61937"); return AVERROR_PATCHWELCOME; diff --git a/tests/fate/spdif.mak b/tests/fate/spdif.mak index 093b8138e8..85627b2241 100644 --- a/tests/fate/spdif.mak +++ b/tests/fate/spdif.mak @@ -24,6 +24,9 @@ fate-spdif-dca-master-core: CMD = md5 -i $(TARGET_SAMPLES)/dts/master_audio_7.1_ FATE_SPDIF-$(call DEMMUX, EAC3, SPDIF) += fate-spdif-eac3 fate-spdif-eac3: CMD = md5 -i $(TARGET_SAMPLES)/eac3/csi_miami_stereo_128_spx.eac3 -c copy -f spdif +FATE_SPDIF_REMUX-$(call ALLYES, EAC3_DEMUXER EAC3_DECODER SPDIF_MUXER SPDIF_DEMUXER) += fate-spdif-eac3-remux +fate-spdif-eac3-remux: CMD = transcode eac3 $(TARGET_SAMPLES)/eac3/csi_miami_stereo_128_spx.eac3 spdif "-c copy" "-c copy" + FATE_SPDIF-$(call DEMMUX, MLP, SPDIF) += fate-spdif-mlp fate-spdif-mlp: CMD = md5 -i $(TARGET_SAMPLES)/lossless-audio/luckynight-partial.mlp -c copy -f spdif diff --git a/tests/ref/fate/spdif-eac3-remux b/tests/ref/fate/spdif-eac3-remux new file mode 100644 index 0000000000..43399fefba --- /dev/null +++ b/tests/ref/fate/spdif-eac3-remux @@ -0,0 +1,659 @@ +b881db03eb6370e057645396d1880260 *tests/data/fate/spdif-eac3-remux.spdif +16023552 tests/data/fate/spdif-eac3-remux.spdif +#tb 0: 1/90000 +#media_type 0: audio +#codec_id 0: eac3 +#sample_rate 0: 48000 +#channel_layout_name 0: stereo +0, 0, 0, 2880, 352, 0x0ae5a595 +0, 2880, 2880, 2880, 512, 0x2beaf79f +0, 5760, 5760, 2880, 512, 0x29ddf9d6 +0, 8640, 8640, 2880, 512, 0xba0afa79 +0, 11520, 11520, 2880, 512, 0xe019f394 +0, 14400, 14400, 2880, 512, 0xf501f5ab +0, 17280, 17280, 2880, 512, 0x5ed3f35c +0, 20160, 20160, 2880, 512, 0xb2a5f67b +0, 23040, 23040, 2880, 512, 0xdab3f328 +0, 25920, 25920, 2880, 512, 0x490dfa2e +0, 28800, 28800, 2880, 512, 0x26dffa1d +0, 31680, 31680, 2880, 512, 0xa8daf5cd +0, 34560, 34560, 2880, 512, 0x823a01e1 +0, 37440, 37440, 2880, 512, 0xf2feee89 +0, 40320, 40320, 2880, 512, 0x58f5ebe2 +0, 43200, 43200, 2880, 512, 0x8618f679 +0, 46080, 46080, 2880, 512, 0xfbe3f0e9 +0, 48960, 48960, 2880, 512, 0xadc3f479 +0, 51840, 51840, 2880, 512, 0xe85ef861 +0, 54720, 54720, 2880, 512, 0x788cf985 +0, 57600, 57600, 2880, 512, 0x44cf00c1 +0, 60480, 60480, 2880, 512, 0x3398fbf8 +0, 63360, 63360, 2880, 512, 0xfbfafc32 +0, 66240, 66240, 2880, 512, 0x68fdf9db +0, 69120, 69120, 2880, 512, 0xb848f4fa +0, 72000, 72000, 2880, 512, 0x245af55e +0, 74880, 74880, 2880, 512, 0x5027f295 +0, 77760, 77760, 2880, 512, 0x7d74f988 +0, 80640, 80640, 2880, 512, 0x7179f92d +0, 83520, 83520, 2880, 512, 0xb2eff797 +0, 86400, 86400, 2880, 512, 0x1625f5fa +0, 89280, 89280, 2880, 512, 0x3682f8b4 +0, 92160, 92160, 2880, 512, 0xc9e3f9a6 +0, 95040, 95040, 2880, 512, 0x1fd50294 +0, 97920, 97920, 2880, 512, 0xacd0f967 +0, 100800, 100800, 2880, 512, 0xfce1f614 +0, 103680, 103680, 2880, 512, 0x8a96f555 +0, 106560, 106560, 2880, 512, 0xeb93e8eb +0, 109440, 109440, 2880, 512, 0x3d63f049 +0, 112320, 112320, 2880, 512, 0x92ffefa2 +0, 115200, 115200, 2880, 512, 0x634ced64 +0, 118080, 118080, 2880, 512, 0xf372f256 +0, 120960, 120960, 2880, 512, 0xef28ec45 +0, 123840, 123840, 2880, 512, 0x0973f647 +0, 126720, 126720, 2880, 512, 0x11e1f7d9 +0, 129600, 129600, 2880, 512, 0x63ccf4f7 +0, 132480, 132480, 2880, 512, 0xa0e4f3c8 +0, 135360, 135360, 2880, 512, 0x0ab3f11a +0, 138240, 138240, 2880, 512, 0xcbf8f8a2 +0, 141120, 141120, 2880, 512, 0xb102ff6f +0, 144000, 144000, 2880, 512, 0xbfa6ff2f +0, 146880, 146880, 2880, 512, 0xc88301c4 +0, 149760, 149760, 2880, 512, 0xab08f52a +0, 152640, 152640, 2880, 512, 0x9401f177 +0, 155520, 155520, 2880, 512, 0xd8faf12c +0, 158400, 158400, 2880, 512, 0x9f19f770 +0, 161280, 161280, 2880, 512, 0x27eaf637 +0, 164160, 164160, 2880, 512, 0xdaa4f256 +0, 167040, 167040, 2880, 512, 0x6170f6ef +0, 169920, 169920, 2880, 512, 0xeaf8fee4 +0, 172800, 172800, 2880, 512, 0xd438f881 +0, 175680, 175680, 2880, 512, 0x9970f701 +0, 178560, 178560, 2880, 512, 0x9d9af25c +0, 181440, 181440, 2880, 512, 0xa9ee049e +0, 184320, 184320, 2880, 512, 0xe87af4a7 +0, 187200, 187200, 2880, 512, 0x5776f68a +0, 190080, 190080, 2880, 512, 0xce3af291 +0, 192960, 192960, 2880, 512, 0x4994f1e9 +0, 195840, 195840, 2880, 512, 0x97d8f8e4 +0, 198720, 198720, 2880, 512, 0x1b03f2bb +0, 201600, 201600, 2880, 512, 0xa674ede4 +0, 204480, 204480, 2880, 512, 0x9607eede +0, 207360, 207360, 2880, 512, 0xf225ed64 +0, 210240, 210240, 2880, 512, 0xa59ff1af +0, 213120, 213120, 2880, 512, 0xa73cf082 +0, 216000, 216000, 2880, 512, 0xb504f86f +0, 218880, 218880, 2880, 512, 0x3e7cf849 +0, 221760, 221760, 2880, 512, 0x2625f150 +0, 224640, 224640, 2880, 512, 0x8dc7fa6c +0, 227520, 227520, 2880, 512, 0x4116f6fb +0, 230400, 230400, 2880, 512, 0xfb41f025 +0, 233280, 233280, 2880, 512, 0xf2ddf047 +0, 236160, 236160, 2880, 512, 0x3e3af43d +0, 239040, 239040, 2880, 512, 0xbd12031c +0, 241920, 241920, 2880, 512, 0x144bfa82 +0, 244800, 244800, 2880, 512, 0x4221f8b4 +0, 247680, 247680, 2880, 512, 0x95e1f375 +0, 250560, 250560, 2880, 512, 0x15a1e638 +0, 253440, 253440, 2880, 512, 0x3945f461 +0, 256320, 256320, 2880, 512, 0xa95ef996 +0, 259200, 259200, 2880, 512, 0x84caee4a +0, 262080, 262080, 2880, 512, 0x0339f13a +0, 264960, 264960, 2880, 512, 0x010c01b5 +0, 267840, 267840, 2880, 512, 0xb042eb63 +0, 270720, 270720, 2880, 512, 0x1d30f50b +0, 273600, 273600, 2880, 512, 0x8ef1f411 +0, 276480, 276480, 2880, 512, 0x1f68f161 +0, 279360, 279360, 2880, 512, 0xc2a002e2 +0, 282240, 282240, 2880, 512, 0x87bef3a3 +0, 285120, 285120, 2880, 512, 0xee24fc34 +0, 288000, 288000, 2880, 512, 0x0de2f86f +0, 290880, 290880, 2880, 512, 0xda6ef5c5 +0, 293760, 293760, 2880, 512, 0x538ef1b3 +0, 296640, 296640, 2880, 512, 0x059befac +0, 299520, 299520, 2880, 512, 0x0fedfa87 +0, 302400, 302400, 2880, 512, 0x8f04f38c +0, 305280, 305280, 2880, 512, 0x4195f4fa +0, 308160, 308160, 2880, 512, 0x36e5fa8a +0, 311040, 311040, 2880, 512, 0x27cdf74e +0, 313920, 313920, 2880, 512, 0x0a7dee39 +0, 316800, 316800, 2880, 512, 0xb143f9fe +0, 319680, 319680, 2880, 512, 0x57dff4eb +0, 322560, 322560, 2880, 512, 0xbf56ee82 +0, 325440, 325440, 2880, 512, 0x8752f6a5 +0, 328320, 328320, 2880, 512, 0xa647fd42 +0, 331200, 331200, 2880, 512, 0xe8f9eb59 +0, 334080, 334080, 2880, 512, 0xba0aeb49 +0, 336960, 336960, 2880, 512, 0xaa42f9f6 +0, 339840, 339840, 2880, 512, 0xc664ed11 +0, 342720, 342720, 2880, 512, 0xbcaaf855 +0, 345600, 345600, 2880, 512, 0x2631f9ed +0, 348480, 348480, 2880, 512, 0xc4f8f251 +0, 351360, 351360, 2880, 512, 0x1fc2f2af +0, 354240, 354240, 2880, 512, 0xdd2ff3c7 +0, 357120, 357120, 2880, 512, 0xb783f7f9 +0, 360000, 360000, 2880, 512, 0xf6acf1cb +0, 362880, 362880, 2880, 512, 0x1db2fb58 +0, 365760, 365760, 2880, 512, 0x2241e93d +0, 368640, 368640, 2880, 512, 0x619bf1bf +0, 371520, 371520, 2880, 512, 0xe3ddf0ce +0, 374400, 374400, 2880, 512, 0xd94af1be +0, 377280, 377280, 2880, 512, 0xc899f2ab +0, 380160, 380160, 2880, 512, 0xd044f1f7 +0, 383040, 383040, 2880, 512, 0xce7507a7 +0, 385920, 385920, 2880, 512, 0x2421e95b +0, 388800, 388800, 2880, 512, 0x2c52f48c +0, 391680, 391680, 2880, 512, 0xda31fc4e +0, 394560, 394560, 2880, 512, 0xb8dcfdda +0, 397440, 397440, 2880, 512, 0xccc6f055 +0, 400320, 400320, 2880, 512, 0x8c01f9d9 +0, 403200, 403200, 2880, 512, 0xcf36ec40 +0, 406080, 406080, 2880, 512, 0x5bcafa5c +0, 408960, 408960, 2880, 512, 0xb756f560 +0, 411840, 411840, 2880, 512, 0x1849f744 +0, 414720, 414720, 2880, 512, 0x9d9bf5ac +0, 417600, 417600, 2880, 512, 0xaea3f847 +0, 420480, 420480, 2880, 512, 0xfd84f817 +0, 423360, 423360, 2880, 512, 0x5ba0ed29 +0, 426240, 426240, 2880, 512, 0xd3b3f400 +0, 429120, 429120, 2880, 512, 0x6156f6d9 +0, 432000, 432000, 2880, 512, 0xdbc8f4b9 +0, 434880, 434880, 2880, 512, 0x4a48fbe3 +0, 437760, 437760, 2880, 512, 0x7c3cf3ed +0, 440640, 440640, 2880, 512, 0x078eefa2 +0, 443520, 443520, 2880, 512, 0x6b02ec30 +0, 446400, 446400, 2880, 512, 0xa0daf283 +0, 449280, 449280, 2880, 512, 0x6c33f746 +0, 452160, 452160, 2880, 512, 0x38cff4c4 +0, 455040, 455040, 2880, 512, 0xe84cf3fe +0, 457920, 457920, 2880, 512, 0x1a4cfda0 +0, 460800, 460800, 2880, 512, 0x5590f98b +0, 463680, 463680, 2880, 512, 0xbf90f59b +0, 466560, 466560, 2880, 512, 0x3f14f53c +0, 469440, 469440, 2880, 512, 0x12c2ef31 +0, 472320, 472320, 2880, 512, 0xd743f1b0 +0, 475200, 475200, 2880, 512, 0x0ee4f04e +0, 478080, 478080, 2880, 512, 0x0c26f820 +0, 480960, 480960, 2880, 512, 0x4049eb94 +0, 483840, 483840, 2880, 512, 0x89f5f9a2 +0, 486720, 486720, 2880, 512, 0x17d6f6b0 +0, 489600, 489600, 2880, 512, 0x4d2bf5ae +0, 492480, 492480, 2880, 512, 0x2c20f897 +0, 495360, 495360, 2880, 512, 0xe544f11f +0, 498240, 498240, 2880, 512, 0xcaa8f65c +0, 501120, 501120, 2880, 512, 0x1fe6f579 +0, 504000, 504000, 2880, 512, 0x0e85f278 +0, 506880, 506880, 2880, 512, 0x8eddf38c +0, 509760, 509760, 2880, 512, 0x1ea0f289 +0, 512640, 512640, 2880, 512, 0xd76b0034 +0, 515520, 515520, 2880, 512, 0xbe49f9d1 +0, 518400, 518400, 2880, 512, 0xdc3dfded +0, 521280, 521280, 2880, 512, 0x8143f179 +0, 524160, 524160, 2880, 512, 0x6af6f624 +0, 527040, 527040, 2880, 512, 0x638cf7c9 +0, 529920, 529920, 2880, 512, 0xe1e7f4f1 +0, 532800, 532800, 2880, 512, 0xcfbdefd2 +0, 535680, 535680, 2880, 512, 0xae49ecfe +0, 538560, 538560, 2880, 512, 0xdfc8ed5f +0, 541440, 541440, 2880, 512, 0xedd9f0b0 +0, 544320, 544320, 2880, 512, 0xc192f77b +0, 547200, 547200, 2880, 512, 0x88330350 +0, 550080, 550080, 2880, 512, 0x589cfdcc +0, 552960, 552960, 2880, 512, 0x722afae6 +0, 555840, 555840, 2880, 512, 0x5ab9f3cf +0, 558720, 558720, 2880, 512, 0x2dc20161 +0, 561600, 561600, 2880, 512, 0x5117f4e7 +0, 564480, 564480, 2880, 512, 0xaa010049 +0, 567360, 567360, 2880, 512, 0xb5fcf73e +0, 570240, 570240, 2880, 512, 0x66afe3ef +0, 573120, 573120, 2880, 512, 0x3d7bf815 +0, 576000, 576000, 2880, 512, 0x6895ea7c +0, 578880, 578880, 2880, 512, 0x26bbf14e +0, 581760, 581760, 2880, 512, 0x5856ed50 +0, 584640, 584640, 2880, 512, 0x86e4eb6d +0, 587520, 587520, 2880, 512, 0xf68dfbf7 +0, 590400, 590400, 2880, 512, 0x201ff70d +0, 593280, 593280, 2880, 512, 0xdd15e87a +0, 596160, 596160, 2880, 512, 0x50e8fa44 +0, 599040, 599040, 2880, 512, 0x1442f398 +0, 601920, 601920, 2880, 512, 0xe2e9f40b +0, 604800, 604800, 2880, 512, 0xcbfdf354 +0, 607680, 607680, 2880, 512, 0x631100f3 +0, 610560, 610560, 2880, 512, 0x3aa6f9ea +0, 613440, 613440, 2880, 512, 0xb6c5f5e6 +0, 616320, 616320, 2880, 512, 0xe98df623 +0, 619200, 619200, 2880, 512, 0x449dfb59 +0, 622080, 622080, 2880, 512, 0x4faefbb6 +0, 624960, 624960, 2880, 512, 0xcef1eb38 +0, 627840, 627840, 2880, 512, 0x94fcfcf5 +0, 630720, 630720, 2880, 512, 0x2bcaf97f +0, 633600, 633600, 2880, 512, 0xba8af49c +0, 636480, 636480, 2880, 512, 0xad64fc39 +0, 639360, 639360, 2880, 512, 0xb2a2f9fe +0, 642240, 642240, 2880, 512, 0xc96105a3 +0, 645120, 645120, 2880, 512, 0x20c2f7ca +0, 648000, 648000, 2880, 512, 0x5ccdfa46 +0, 650880, 650880, 2880, 512, 0x95eef21c +0, 653760, 653760, 2880, 512, 0xafa9fad1 +0, 656640, 656640, 2880, 512, 0x3134f5cd +0, 659520, 659520, 2880, 512, 0xbb08f702 +0, 662400, 662400, 2880, 512, 0x2829f1a0 +0, 665280, 665280, 2880, 512, 0x1a16fe88 +0, 668160, 668160, 2880, 512, 0x6d87f5cd +0, 671040, 671040, 2880, 512, 0x8170f89a +0, 673920, 673920, 2880, 512, 0xc99df656 +0, 676800, 676800, 2880, 512, 0x2015f2f0 +0, 679680, 679680, 2880, 512, 0x093df67d +0, 682560, 682560, 2880, 512, 0xaa35ee1a +0, 685440, 685440, 2880, 512, 0xc6caee7e +0, 688320, 688320, 2880, 512, 0xc97bf536 +0, 691200, 691200, 2880, 512, 0x7a37f73b +0, 694080, 694080, 2880, 512, 0xa2cdee4d +0, 696960, 696960, 2880, 512, 0xefd5016c +0, 699840, 699840, 2880, 512, 0x562ef6da +0, 702720, 702720, 2880, 512, 0x4203f1ed +0, 705600, 705600, 2880, 512, 0x5ec7f7f0 +0, 708480, 708480, 2880, 512, 0x156ff026 +0, 711360, 711360, 2880, 512, 0xcba8fc0a +0, 714240, 714240, 2880, 512, 0x420b03c3 +0, 717120, 717120, 2880, 512, 0x37f0f2be +0, 720000, 720000, 2880, 512, 0x35d0fc17 +0, 722880, 722880, 2880, 512, 0x1d30f537 +0, 725760, 725760, 2880, 512, 0x5a84e506 +0, 728640, 728640, 2880, 512, 0x2fd8eba5 +0, 731520, 731520, 2880, 512, 0x3271f624 +0, 734400, 734400, 2880, 512, 0xdcc4ea3b +0, 737280, 737280, 2880, 512, 0x0d76ee13 +0, 740160, 740160, 2880, 512, 0xba46f2a5 +0, 743040, 743040, 2880, 512, 0xb1540424 +0, 745920, 745920, 2880, 512, 0x0c88fae6 +0, 748800, 748800, 2880, 512, 0xe879f89b +0, 751680, 751680, 2880, 512, 0xae96f934 +0, 754560, 754560, 2880, 512, 0xc17405ec +0, 757440, 757440, 2880, 512, 0x95b8f486 +0, 760320, 760320, 2880, 512, 0x03bbf5a9 +0, 763200, 763200, 2880, 512, 0x63eaf8d6 +0, 766080, 766080, 2880, 512, 0x7a6bfa96 +0, 768960, 768960, 2880, 512, 0x2eabee80 +0, 771840, 771840, 2880, 512, 0x8693f3c1 +0, 774720, 774720, 2880, 512, 0xc8b6f42a +0, 777600, 777600, 2880, 512, 0x9b5bf344 +0, 780480, 780480, 2880, 512, 0xda81f513 +0, 783360, 783360, 2880, 512, 0x4789fa4d +0, 786240, 786240, 2880, 512, 0xe70aed30 +0, 789120, 789120, 2880, 512, 0x0e51f579 +0, 792000, 792000, 2880, 512, 0x171503c9 +0, 794880, 794880, 2880, 512, 0xc965f98c +0, 797760, 797760, 2880, 512, 0x816ef627 +0, 800640, 800640, 2880, 512, 0x441ceb6c +0, 803520, 803520, 2880, 512, 0xedbcf1e5 +0, 806400, 806400, 2880, 512, 0x1168fec7 +0, 809280, 809280, 2880, 512, 0x488afa1e +0, 812160, 812160, 2880, 512, 0x6d1dec39 +0, 815040, 815040, 2880, 512, 0x54c7f611 +0, 817920, 817920, 2880, 512, 0x0803eae6 +0, 820800, 820800, 2880, 512, 0xcd85eb6d +0, 823680, 823680, 2880, 512, 0x3f920034 +0, 826560, 826560, 2880, 512, 0x4b55ea47 +0, 829440, 829440, 2880, 512, 0xdfd7f681 +0, 832320, 832320, 2880, 512, 0x20ccef96 +0, 835200, 835200, 2880, 512, 0x122cf656 +0, 838080, 838080, 2880, 512, 0xe38fef19 +0, 840960, 840960, 2880, 512, 0xa11ff565 +0, 843840, 843840, 2880, 512, 0x931cf83e +0, 846720, 846720, 2880, 512, 0xb854010c +0, 849600, 849600, 2880, 512, 0xf607f233 +0, 852480, 852480, 2880, 512, 0xfd9de7e9 +0, 855360, 855360, 2880, 512, 0xe401fa53 +0, 858240, 858240, 2880, 512, 0x15aef9f2 +0, 861120, 861120, 2880, 512, 0x0071f50e +0, 864000, 864000, 2880, 512, 0xa3c7f029 +0, 866880, 866880, 2880, 512, 0x9b73ed64 +0, 869760, 869760, 2880, 512, 0x0087fbea +0, 872640, 872640, 2880, 512, 0x9871effb +0, 875520, 875520, 2880, 512, 0x0e36ebe3 +0, 878400, 878400, 2880, 512, 0x982e015e +0, 881280, 881280, 2880, 512, 0xca67f667 +0, 884160, 884160, 2880, 512, 0xc504fd51 +0, 887040, 887040, 2880, 512, 0xf5c7f167 +0, 889920, 889920, 2880, 512, 0x75aaece8 +0, 892800, 892800, 2880, 512, 0x288effcf +0, 895680, 895680, 2880, 512, 0xb640f057 +0, 898560, 898560, 2880, 512, 0xbb7cf4a9 +0, 901440, 901440, 2880, 512, 0xccf200d6 +0, 904320, 904320, 2880, 512, 0x1a00f229 +0, 907200, 907200, 2880, 512, 0xa95bf1be +0, 910080, 910080, 2880, 512, 0x3c1af28d +0, 912960, 912960, 2880, 512, 0x11d1ef54 +0, 915840, 915840, 2880, 512, 0xf9ae02aa +0, 918720, 918720, 2880, 512, 0x4476ee68 +0, 921600, 921600, 2880, 512, 0x7f43eb80 +0, 924480, 924480, 2880, 512, 0x245af906 +0, 927360, 927360, 2880, 512, 0xbb06f0a8 +0, 930240, 930240, 2880, 512, 0xe51bf461 +0, 933120, 933120, 2880, 512, 0xd767f7fd +0, 936000, 936000, 2880, 512, 0xd517f1ca +0, 938880, 938880, 2880, 512, 0x3311eb45 +0, 941760, 941760, 2880, 512, 0xee0ef61e +0, 944640, 944640, 2880, 512, 0x9e7cfe9b +0, 947520, 947520, 2880, 512, 0x353ef03a +0, 950400, 950400, 2880, 512, 0x92f6fcfa +0, 953280, 953280, 2880, 512, 0xe458f3d0 +0, 956160, 956160, 2880, 512, 0xebf3f8af +0, 959040, 959040, 2880, 512, 0xc0f6f981 +0, 961920, 961920, 2880, 512, 0x3e31fb6c +0, 964800, 964800, 2880, 512, 0xd679031b +0, 967680, 967680, 2880, 512, 0x6571f361 +0, 970560, 970560, 2880, 512, 0xf410f507 +0, 973440, 973440, 2880, 512, 0x2217f817 +0, 976320, 976320, 2880, 512, 0xaa53f6ee +0, 979200, 979200, 2880, 512, 0xa574fa14 +0, 982080, 982080, 2880, 512, 0xcd7ff09d +0, 984960, 984960, 2880, 512, 0xa650f7d6 +0, 987840, 987840, 2880, 512, 0x6b4ff467 +0, 990720, 990720, 2880, 512, 0x9355f3cb +0, 993600, 993600, 2880, 512, 0x7546eb8b +0, 996480, 996480, 2880, 512, 0x4ac6f4c8 +0, 999360, 999360, 2880, 512, 0xcf69f62c +0, 1002240, 1002240, 2880, 512, 0x93a0e35d +0, 1005120, 1005120, 2880, 512, 0x60c5f0f5 +0, 1008000, 1008000, 2880, 512, 0x75a4fb42 +0, 1010880, 1010880, 2880, 512, 0x2615ff1f +0, 1013760, 1013760, 2880, 512, 0xb95df9a2 +0, 1016640, 1016640, 2880, 512, 0xb8c5fafb +0, 1019520, 1019520, 2880, 512, 0x3465fd2b +0, 1022400, 1022400, 2880, 512, 0xa758f489 +0, 1025280, 1025280, 2880, 512, 0xe4bafd7f +0, 1028160, 1028160, 2880, 512, 0xfa45f603 +0, 1031040, 1031040, 2880, 512, 0x875b04f1 +0, 1033920, 1033920, 2880, 512, 0x171bf602 +0, 1036800, 1036800, 2880, 512, 0x557cf2fd +0, 1039680, 1039680, 2880, 512, 0x3a4303c0 +0, 1042560, 1042560, 2880, 512, 0xbd0feef3 +0, 1045440, 1045440, 2880, 512, 0x3ca3ed7f +0, 1048320, 1048320, 2880, 512, 0x4a4bf0b3 +0, 1051200, 1051200, 2880, 512, 0xdef5f4a3 +0, 1054080, 1054080, 2880, 512, 0x96a7f939 +0, 1056960, 1056960, 2880, 512, 0x3dc4f2fb +0, 1059840, 1059840, 2880, 512, 0xa323ec80 +0, 1062720, 1062720, 2880, 512, 0x8b49eebf +0, 1065600, 1065600, 2880, 512, 0xb4a3f983 +0, 1068480, 1068480, 2880, 512, 0x5a61ecf5 +0, 1071360, 1071360, 2880, 512, 0x10b0dbda +0, 1074240, 1074240, 2880, 512, 0x4836f474 +0, 1077120, 1077120, 2880, 512, 0xe6f1ee87 +0, 1080000, 1080000, 2880, 512, 0x1e1bf474 +0, 1082880, 1082880, 2880, 512, 0xe25bf263 +0, 1085760, 1085760, 2880, 512, 0x29a9f348 +0, 1088640, 1088640, 2880, 512, 0x8cf6f85d +0, 1091520, 1091520, 2880, 512, 0x3690f40a +0, 1094400, 1094400, 2880, 512, 0x072dfcb5 +0, 1097280, 1097280, 2880, 512, 0x9611f8c7 +0, 1100160, 1100160, 2880, 512, 0x3ee7f622 +0, 1103040, 1103040, 2880, 512, 0xdb37f787 +0, 1105920, 1105920, 2880, 512, 0xc09bf2e3 +0, 1108800, 1108800, 2880, 512, 0xae37f9ea +0, 1111680, 1111680, 2880, 512, 0x2764f6b0 +0, 1114560, 1114560, 2880, 512, 0x871be490 +0, 1117440, 1117440, 2880, 512, 0x2e7cefca +0, 1120320, 1120320, 2880, 512, 0x000dece5 +0, 1123200, 1123200, 2880, 512, 0xbe9bea16 +0, 1126080, 1126080, 2880, 512, 0x202cf37c +0, 1128960, 1128960, 2880, 512, 0xae02fa29 +0, 1131840, 1131840, 2880, 512, 0x5eb4efc9 +0, 1134720, 1134720, 2880, 512, 0x7a82ffce +0, 1137600, 1137600, 2880, 512, 0x4c0fefb2 +0, 1140480, 1140480, 2880, 512, 0x0d55fd52 +0, 1143360, 1143360, 2880, 512, 0x00c8f568 +0, 1146240, 1146240, 2880, 512, 0x9d9ef306 +0, 1149120, 1149120, 2880, 512, 0x53bbf79c +0, 1152000, 1152000, 2880, 512, 0xf1fbf3f4 +0, 1154880, 1154880, 2880, 512, 0x0ae0ed0b +0, 1157760, 1157760, 2880, 512, 0x3374ffc1 +0, 1160640, 1160640, 2880, 512, 0xbba1f546 +0, 1163520, 1163520, 2880, 512, 0xaffeee35 +0, 1166400, 1166400, 2880, 512, 0x81dff38d +0, 1169280, 1169280, 2880, 512, 0x29edeafb +0, 1172160, 1172160, 2880, 512, 0x406fecbe +0, 1175040, 1175040, 2880, 512, 0xee28f8dc +0, 1177920, 1177920, 2880, 512, 0x4b1af28a +0, 1180800, 1180800, 2880, 512, 0x83ab0058 +0, 1183680, 1183680, 2880, 512, 0x25d0f735 +0, 1186560, 1186560, 2880, 512, 0xec5ff319 +0, 1189440, 1189440, 2880, 512, 0x1723f121 +0, 1192320, 1192320, 2880, 512, 0x266cedd8 +0, 1195200, 1195200, 2880, 512, 0x15b1031a +0, 1198080, 1198080, 2880, 512, 0x4a83f6b6 +0, 1200960, 1200960, 2880, 512, 0x8cd1fb9f +0, 1203840, 1203840, 2880, 512, 0x76f4f696 +0, 1206720, 1206720, 2880, 512, 0x9c04fa16 +0, 1209600, 1209600, 2880, 512, 0x5d1600ce +0, 1212480, 1212480, 2880, 512, 0x40d9f905 +0, 1215360, 1215360, 2880, 512, 0xb9eef26c +0, 1218240, 1218240, 2880, 512, 0x5557ed03 +0, 1221120, 1221120, 2880, 512, 0xa3b0f348 +0, 1224000, 1224000, 2880, 512, 0xac9ffa65 +0, 1226880, 1226880, 2880, 512, 0xbb49fcf1 +0, 1229760, 1229760, 2880, 512, 0xc324f4da +0, 1232640, 1232640, 2880, 512, 0xe9d2e875 +0, 1235520, 1235520, 2880, 512, 0x822cef30 +0, 1238400, 1238400, 2880, 512, 0x56f6f7a8 +0, 1241280, 1241280, 2880, 512, 0xf82cf718 +0, 1244160, 1244160, 2880, 512, 0xb75bfaa1 +0, 1247040, 1247040, 2880, 512, 0xdd4dfed6 +0, 1249920, 1249920, 2880, 512, 0x4392f531 +0, 1252800, 1252800, 2880, 512, 0xf50cf9fa +0, 1255680, 1255680, 2880, 512, 0x1181ead9 +0, 1258560, 1258560, 2880, 512, 0x4925fb83 +0, 1261440, 1261440, 2880, 512, 0x53a7faf8 +0, 1264320, 1264320, 2880, 512, 0x0042f4f9 +0, 1267200, 1267200, 2880, 512, 0x0ed8fa2c +0, 1270080, 1270080, 2880, 512, 0x9a1ef892 +0, 1272960, 1272960, 2880, 512, 0x4b35ee26 +0, 1275840, 1275840, 2880, 512, 0x6596fc07 +0, 1278720, 1278720, 2880, 512, 0xd3fcf908 +0, 1281600, 1281600, 2880, 512, 0x4f3ce991 +0, 1284480, 1284480, 2880, 512, 0xd8f7fc2a +0, 1287360, 1287360, 2880, 512, 0x3dd4f26c +0, 1290240, 1290240, 2880, 512, 0x4f49fc77 +0, 1293120, 1293120, 2880, 512, 0x3e08e521 +0, 1296000, 1296000, 2880, 512, 0xd180f348 +0, 1298880, 1298880, 2880, 512, 0xebeaf520 +0, 1301760, 1301760, 2880, 512, 0xed06f763 +0, 1304640, 1304640, 2880, 512, 0x9766ef09 +0, 1307520, 1307520, 2880, 512, 0xc4a6fc00 +0, 1310400, 1310400, 2880, 512, 0x5547f0ae +0, 1313280, 1313280, 2880, 512, 0x300cf213 +0, 1316160, 1316160, 2880, 512, 0x35ba0678 +0, 1319040, 1319040, 2880, 512, 0xa8baf485 +0, 1321920, 1321920, 2880, 512, 0xc0cbe8e8 +0, 1324800, 1324800, 2880, 512, 0x081aeed1 +0, 1327680, 1327680, 2880, 512, 0x2017ec33 +0, 1330560, 1330560, 2880, 512, 0x8739f958 +0, 1333440, 1333440, 2880, 512, 0xb797f52e +0, 1336320, 1336320, 2880, 512, 0x818afdf2 +0, 1339200, 1339200, 2880, 512, 0xbbabf0fe +0, 1342080, 1342080, 2880, 512, 0x843600db +0, 1344960, 1344960, 2880, 512, 0x610b02c9 +0, 1347840, 1347840, 2880, 512, 0x0bf8edfe +0, 1350720, 1350720, 2880, 512, 0x9310edea +0, 1353600, 1353600, 2880, 512, 0x08c2f355 +0, 1356480, 1356480, 2880, 512, 0x1b23f44c +0, 1359360, 1359360, 2880, 512, 0x4be9f384 +0, 1362240, 1362240, 2880, 512, 0x5fbef21d +0, 1365120, 1365120, 2880, 512, 0x7412ef5e +0, 1368000, 1368000, 2880, 512, 0x9ae7f608 +0, 1370880, 1370880, 2880, 512, 0x0f41f270 +0, 1373760, 1373760, 2880, 512, 0x42c1f982 +0, 1376640, 1376640, 2880, 512, 0x4538f04b +0, 1379520, 1379520, 2880, 512, 0x09baf2e1 +0, 1382400, 1382400, 2880, 512, 0xed8ff3ba +0, 1385280, 1385280, 2880, 512, 0xb110f516 +0, 1388160, 1388160, 2880, 512, 0x3837f06a +0, 1391040, 1391040, 2880, 512, 0x54aef484 +0, 1393920, 1393920, 2880, 512, 0xb047f61d +0, 1396800, 1396800, 2880, 512, 0xdff4fb98 +0, 1399680, 1399680, 2880, 512, 0x9da60009 +0, 1402560, 1402560, 2880, 512, 0x7bb6f236 +0, 1405440, 1405440, 2880, 512, 0x9f96ea0e +0, 1408320, 1408320, 2880, 512, 0xc5adf19a +0, 1411200, 1411200, 2880, 512, 0x2e9cf6f8 +0, 1414080, 1414080, 2880, 512, 0xada8fadc +0, 1416960, 1416960, 2880, 512, 0x100a07fd +0, 1419840, 1419840, 2880, 512, 0xa26af433 +0, 1422720, 1422720, 2880, 512, 0xc82cf15e +0, 1425600, 1425600, 2880, 512, 0x7f88f10d +0, 1428480, 1428480, 2880, 512, 0x776df377 +0, 1431360, 1431360, 2880, 512, 0x30b0f60d +0, 1434240, 1434240, 2880, 512, 0xcecbf9a3 +0, 1437120, 1437120, 2880, 512, 0xffa8f5c2 +0, 1440000, 1440000, 2880, 512, 0x9052e7cb +0, 1442880, 1442880, 2880, 512, 0x0048f2cc +0, 1445760, 1445760, 2880, 512, 0xc8fff912 +0, 1448640, 1448640, 2880, 512, 0xf22debb8 +0, 1451520, 1451520, 2880, 512, 0x7b4beb82 +0, 1454400, 1454400, 2880, 512, 0x428ff33e +0, 1457280, 1457280, 2880, 512, 0xb3c1f426 +0, 1460160, 1460160, 2880, 512, 0xb08af561 +0, 1463040, 1463040, 2880, 512, 0xaf62ee68 +0, 1465920, 1465920, 2880, 512, 0xdb25f226 +0, 1468800, 1468800, 2880, 512, 0xa577f9d5 +0, 1471680, 1471680, 2880, 512, 0xd21af205 +0, 1474560, 1474560, 2880, 512, 0x8734f052 +0, 1477440, 1477440, 2880, 512, 0xcb0bf009 +0, 1480320, 1480320, 2880, 512, 0xde0bf8a7 +0, 1483200, 1483200, 2880, 512, 0x9fbefd0d +0, 1486080, 1486080, 2880, 512, 0xc329ee26 +0, 1488960, 1488960, 2880, 512, 0xfc6007a0 +0, 1491840, 1491840, 2880, 512, 0x6782004b +0, 1494720, 1494720, 2880, 512, 0x4adbf43c +0, 1497600, 1497600, 2880, 512, 0x5b85f198 +0, 1500480, 1500480, 2880, 512, 0x1576fbfe +0, 1503360, 1503360, 2880, 512, 0x62ebf217 +0, 1506240, 1506240, 2880, 512, 0xd8a9f5fe +0, 1509120, 1509120, 2880, 512, 0x3270f500 +0, 1512000, 1512000, 2880, 512, 0x99e9eca2 +0, 1514880, 1514880, 2880, 512, 0x0d3c02c9 +0, 1517760, 1517760, 2880, 512, 0x8769f484 +0, 1520640, 1520640, 2880, 512, 0xd6cef92a +0, 1523520, 1523520, 2880, 512, 0x9150f4b7 +0, 1526400, 1526400, 2880, 512, 0x760d00ce +0, 1529280, 1529280, 2880, 512, 0xc595f17d +0, 1532160, 1532160, 2880, 512, 0x3720fd55 +0, 1535040, 1535040, 2880, 512, 0x28e5f02b +0, 1537920, 1537920, 2880, 512, 0x9e87f7bd +0, 1540800, 1540800, 2880, 512, 0x4571fe9a +0, 1543680, 1543680, 2880, 512, 0xbf06f83f +0, 1546560, 1546560, 2880, 512, 0xb6bff67e +0, 1549440, 1549440, 2880, 512, 0x582cfa1b +0, 1552320, 1552320, 2880, 512, 0x9277f53b +0, 1555200, 1555200, 2880, 512, 0xd541fa0e +0, 1558080, 1558080, 2880, 512, 0xb9f7f791 +0, 1560960, 1560960, 2880, 512, 0xb5ccf6d3 +0, 1563840, 1563840, 2880, 512, 0xb03ef2a1 +0, 1566720, 1566720, 2880, 512, 0x6970fb11 +0, 1569600, 1569600, 2880, 512, 0x478df6bd +0, 1572480, 1572480, 2880, 512, 0x7ce4eff2 +0, 1575360, 1575360, 2880, 512, 0x5f8af8bb +0, 1578240, 1578240, 2880, 512, 0xa990f10c +0, 1581120, 1581120, 2880, 512, 0x0b5e0603 +0, 1584000, 1584000, 2880, 512, 0x5f5ff667 +0, 1586880, 1586880, 2880, 512, 0xf3f1f7e5 +0, 1589760, 1589760, 2880, 512, 0xb7b1f92c +0, 1592640, 1592640, 2880, 512, 0x5c5afc2d +0, 1595520, 1595520, 2880, 512, 0xc389ecc8 +0, 1598400, 1598400, 2880, 512, 0x86edf4a8 +0, 1601280, 1601280, 2880, 512, 0x31cfeba8 +0, 1604160, 1604160, 2880, 512, 0xea9cf360 +0, 1607040, 1607040, 2880, 512, 0xbc04f016 +0, 1609920, 1609920, 2880, 512, 0x6617ed55 +0, 1612800, 1612800, 2880, 512, 0xe20afad2 +0, 1615680, 1615680, 2880, 512, 0x4706f61a +0, 1618560, 1618560, 2880, 512, 0xa6a8fd93 +0, 1621440, 1621440, 2880, 512, 0x9655e7ae +0, 1624320, 1624320, 2880, 512, 0x0ac2f354 +0, 1627200, 1627200, 2880, 512, 0x62e2f89a +0, 1630080, 1630080, 2880, 512, 0x35baf1cb +0, 1632960, 1632960, 2880, 512, 0xc02ff90e +0, 1635840, 1635840, 2880, 512, 0xf3f8f24b +0, 1638720, 1638720, 2880, 512, 0x10b9ebd6 +0, 1641600, 1641600, 2880, 512, 0x0482084b +0, 1644480, 1644480, 2880, 512, 0xc14cee2e +0, 1647360, 1647360, 2880, 512, 0x21ddf5ea +0, 1650240, 1650240, 2880, 512, 0x8090f51f +0, 1653120, 1653120, 2880, 512, 0x6496ed68 +0, 1656000, 1656000, 2880, 512, 0x4bb3fa69 +0, 1658880, 1658880, 2880, 512, 0x1e18e8d7 +0, 1661760, 1661760, 2880, 512, 0xb758fa60 +0, 1664640, 1664640, 2880, 512, 0xa5c6f671 +0, 1667520, 1667520, 2880, 512, 0x6dbcf15e +0, 1670400, 1670400, 2880, 512, 0x56c4f227 +0, 1673280, 1673280, 2880, 512, 0x17280149 +0, 1676160, 1676160, 2880, 512, 0x8c57f584 +0, 1679040, 1679040, 2880, 512, 0x518ef2b4 +0, 1681920, 1681920, 2880, 512, 0x8a69ebe6 +0, 1684800, 1684800, 2880, 512, 0xf954e97c +0, 1687680, 1687680, 2880, 512, 0x62e1f8db +0, 1690560, 1690560, 2880, 512, 0x637af9fa +0, 1693440, 1693440, 2880, 512, 0xecbcf846 +0, 1696320, 1696320, 2880, 512, 0x2481ecac +0, 1699200, 1699200, 2880, 512, 0x7d3cf940 +0, 1702080, 1702080, 2880, 512, 0x4823efc4 +0, 1704960, 1704960, 2880, 512, 0x31d5f1ca +0, 1707840, 1707840, 2880, 512, 0x3024f40f +0, 1710720, 1710720, 2880, 512, 0xf172f644 +0, 1713600, 1713600, 2880, 512, 0x2502f1b9 +0, 1716480, 1716480, 2880, 512, 0x9ee8f50b +0, 1719360, 1719360, 2880, 512, 0x0605fcc0 +0, 1722240, 1722240, 2880, 512, 0xf202f11d +0, 1725120, 1725120, 2880, 512, 0x449df7a2 +0, 1728000, 1728000, 2880, 512, 0x16e8f468 +0, 1730880, 1730880, 2880, 512, 0xceeafba5 +0, 1733760, 1733760, 2880, 512, 0xc8410340 +0, 1736640, 1736640, 2880, 512, 0xc0e5fe5a +0, 1739520, 1739520, 2880, 512, 0x60cafeb7 +0, 1742400, 1742400, 2880, 512, 0x8277fb6a +0, 1745280, 1745280, 2880, 512, 0xa77dfac9 +0, 1748160, 1748160, 2880, 512, 0x7b2bf1d1 +0, 1751040, 1751040, 2880, 512, 0x63aafabd +0, 1753920, 1753920, 2880, 512, 0xf56cf575 +0, 1756800, 1756800, 2880, 512, 0x2048f966 +0, 1759680, 1759680, 2880, 512, 0x392b0c6a +0, 1762560, 1762560, 2880, 512, 0x7d87f244 +0, 1765440, 1765440, 2880, 512, 0xecbcfedc +0, 1768320, 1768320, 2880, 512, 0x4780f2ef +0, 1771200, 1771200, 2880, 512, 0x1a28f8ff +0, 1774080, 1774080, 2880, 512, 0xda51fcc5 +0, 1776960, 1776960, 2880, 512, 0x7009f7ff +0, 1779840, 1779840, 2880, 512, 0x1e5af6a2 +0, 1782720, 1782720, 2880, 512, 0xcb83e8c3 +0, 1785600, 1785600, 2880, 512, 0x2cbbe8ae +0, 1788480, 1788480, 2880, 512, 0x5cc0ebbd +0, 1791360, 1791360, 2880, 512, 0x5e13f33b +0, 1794240, 1794240, 2880, 512, 0x2ef1ef3d +0, 1797120, 1797120, 2880, 512, 0x4aaef05f +0, 1800000, 1800000, 2880, 512, 0xf6adf321 +0, 1802880, 1802880, 2880, 512, 0x0041e985 +0, 1805760, 1805760, 2880, 512, 0x4539eb83 +0, 1808640, 1808640, 2880, 512, 0xa642f144 +0, 1811520, 1811520, 2880, 512, 0xf58dfb44 +0, 1814400, 1814400, 2880, 512, 0xcdf2f3b2 +0, 1817280, 1817280, 2880, 512, 0xebd9f1d4 +0, 1820160, 1820160, 2880, 512, 0xf39afcca +0, 1823040, 1823040, 2880, 512, 0x4392fb8e +0, 1825920, 1825920, 2880, 512, 0xe23df8bb +0, 1828800, 1828800, 2880, 512, 0xdedaf23a +0, 1831680, 1831680, 2880, 512, 0x1c46f7bc +0, 1834560, 1834560, 2880, 512, 0x47e0f873 +0, 1837440, 1837440, 2880, 512, 0x5e55eb42 +0, 1840320, 1840320, 2880, 512, 0x5f08f8a0 +0, 1843200, 1843200, 2880, 512, 0xf391f9f8 +0, 1846080, 1846080, 2880, 512, 0x3d4afcd1 +0, 1848960, 1848960, 2880, 512, 0x07b8f3d4 +0, 1851840, 1851840, 2880, 512, 0xa7cdfea4 +0, 1854720, 1854720, 2880, 512, 0x4072ffda +0, 1857600, 1857600, 2880, 512, 0xe96df73f +0, 1860480, 1860480, 2880, 512, 0x6170f3a3 +0, 1863360, 1863360, 2880, 512, 0x743cf509 +0, 1866240, 1866240, 2880, 512, 0x3525fe8e +0, 1869120, 1869120, 2880, 512, 0xd345ed02 +0, 1872000, 1872000, 2880, 512, 0x3c15f37f +0, 1874880, 1874880, 2880, 512, 0x9df1facd