From e274ec01eb4e4cd954a57dc95684f2e75957bde1 Mon Sep 17 00:00:00 2001 From: Chris Moeller Date: Thu, 26 Jan 2017 17:12:52 -0800 Subject: [PATCH] Updated FFmpeg and VGMStream. --- .../vgmstream.xcodeproj/project.pbxproj | 20 + .../vgmstream/vgmstream/src/coding/coding.h | 167 +- .../vgmstream/src/coding/eaxa_decoder.c | 2 +- .../vgmstream/src/coding/ffmpeg_decoder.c | 242 ++- .../vgmstream/src/coding/g72x_state.h | 2 +- .../vgmstream/src/coding/mpeg_decoder.c | 7 + .../vgmstream/src/coding/mtaf_decoder.c | 110 +- .../vgmstream/src/coding/ngc_dsp_decoder.c | 26 +- .../vgmstream/src/coding/psx_decoder.c | 140 +- Frameworks/vgmstream/vgmstream/src/formats.c | 871 +++++++++ Frameworks/vgmstream/vgmstream/src/formats.h | 19 + .../vgmstream/src/layout/gsb_blocked.c | 22 +- .../vgmstream/vgmstream/src/layout/layout.h | 30 +- Frameworks/vgmstream/vgmstream/src/meta/2dx.c | 2 +- .../vgmstream/vgmstream/src/meta/Cstr.c | 6 - Frameworks/vgmstream/vgmstream/src/meta/baf.c | 50 +- .../vgmstream/vgmstream/src/meta/bcstm.c | 81 +- .../vgmstream/vgmstream/src/meta/bfstm.c | 110 +- .../vgmstream/vgmstream/src/meta/bfwav.c | 4 +- Frameworks/vgmstream/vgmstream/src/meta/bgw.c | 202 +- .../vgmstream/vgmstream/src/meta/btsnd.c | 1 - .../vgmstream/vgmstream/src/meta/ea_header.c | 2 +- .../vgmstream/vgmstream/src/meta/ffmpeg.c | 51 - Frameworks/vgmstream/vgmstream/src/meta/fsb.c | 1134 ++++-------- .../vgmstream/vgmstream/src/meta/fsb5.c | 154 +- Frameworks/vgmstream/vgmstream/src/meta/g1l.c | 186 +- .../vgmstream/vgmstream/src/meta/genh.c | 2 +- .../vgmstream/vgmstream/src/meta/gsp_gsb.c | 189 +- Frameworks/vgmstream/vgmstream/src/meta/mca.c | 12 +- .../vgmstream/vgmstream/src/meta/meta.h | 31 +- Frameworks/vgmstream/vgmstream/src/meta/mp4.c | 2 +- .../vgmstream/vgmstream/src/meta/ngc_adpdtk.c | 2 +- .../vgmstream/src/meta/ngc_dsp_std.c | 142 +- .../vgmstream/src/meta/ogg_vorbis_file.c | 33 +- Frameworks/vgmstream/vgmstream/src/meta/ps2.c | 48 + .../vgmstream/vgmstream/src/meta/ps2_bmdx.c | 4 +- .../vgmstream/vgmstream/src/meta/ps2_mib.c | 3 + .../vgmstream/vgmstream/src/meta/ps2_npsf.c | 9 +- .../vgmstream/vgmstream/src/meta/ps2_vag.c | 103 +- .../vgmstream/vgmstream/src/meta/ps3_klbs.c | 4 +- .../vgmstream/vgmstream/src/meta/ps3_msf.c | 2 +- .../vgmstream/src/meta/ps3_sgh_sgb.c | 2 +- .../vgmstream/vgmstream/src/meta/ps3_vawx.c | 155 +- .../vgmstream/vgmstream/src/meta/riff.c | 18 +- .../vgmstream/vgmstream/src/meta/sqex_scd.c | 270 ++- .../vgmstream/vgmstream/src/meta/x360.c | 66 + Frameworks/vgmstream/vgmstream/src/meta/xma.c | 974 +++++----- .../vgmstream/vgmstream/src/streamfile.c | 142 +- .../vgmstream/vgmstream/src/streamfile.h | 12 +- .../vgmstream/vgmstream/src/streamtypes.h | 13 +- Frameworks/vgmstream/vgmstream/src/util.c | 108 -- Frameworks/vgmstream/vgmstream/src/util.h | 26 +- .../vgmstream/vgmstream/src/vgmstream.c | 1632 ++--------------- .../vgmstream/vgmstream/src/vgmstream.h | 552 +++--- Scripts/ffmpeg-build.sh | 2 +- .../ffmpeg/include/libavcodec/avcodec.h | 23 +- ThirdParty/ffmpeg/include/libavcodec/vaapi.h | 7 + .../ffmpeg/include/libavcodec/version.h | 7 +- .../ffmpeg/include/libavformat/avformat.h | 29 +- ThirdParty/ffmpeg/include/libavformat/avio.h | 12 + .../ffmpeg/include/libavformat/version.h | 2 +- ThirdParty/ffmpeg/include/libavutil/avutil.h | 6 + .../ffmpeg/include/libavutil/channel_layout.h | 21 +- ThirdParty/ffmpeg/include/libavutil/cpu.h | 2 - .../ffmpeg/include/libavutil/ffversion.h | 2 +- ThirdParty/ffmpeg/include/libavutil/frame.h | 8 +- .../ffmpeg/include/libavutil/hwcontext.h | 8 + .../ffmpeg/include/libavutil/hwcontext_cuda.h | 5 + .../include/libavutil/hwcontext_vaapi.h | 28 + .../ffmpeg/include/libavutil/imgutils.h | 15 + ThirdParty/ffmpeg/include/libavutil/lfg.h | 9 + ThirdParty/ffmpeg/include/libavutil/opt.h | 1 + ThirdParty/ffmpeg/include/libavutil/pixfmt.h | 20 +- .../ffmpeg/include/libavutil/spherical.h | 140 ++ ThirdParty/ffmpeg/include/libavutil/version.h | 2 +- ThirdParty/ffmpeg/lib/libavcodec.a | Bin 6533680 -> 6603552 bytes ThirdParty/ffmpeg/lib/libavformat.a | Bin 3613096 -> 3651504 bytes ThirdParty/ffmpeg/lib/libavutil.a | Bin 1276320 -> 1287824 bytes ThirdParty/ffmpeg/lib/pkgconfig/libavcodec.pc | 8 +- .../ffmpeg/lib/pkgconfig/libavformat.pc | 8 +- ThirdParty/ffmpeg/lib/pkgconfig/libavutil.pc | 4 +- 81 files changed, 4378 insertions(+), 4188 deletions(-) create mode 100644 Frameworks/vgmstream/vgmstream/src/formats.c create mode 100644 Frameworks/vgmstream/vgmstream/src/formats.h create mode 100644 Frameworks/vgmstream/vgmstream/src/meta/ps2.c create mode 100644 Frameworks/vgmstream/vgmstream/src/meta/x360.c create mode 100644 ThirdParty/ffmpeg/include/libavutil/spherical.h diff --git a/Frameworks/vgmstream/vgmstream.xcodeproj/project.pbxproj b/Frameworks/vgmstream/vgmstream.xcodeproj/project.pbxproj index 7f7461209..007a8adee 100644 --- a/Frameworks/vgmstream/vgmstream.xcodeproj/project.pbxproj +++ b/Frameworks/vgmstream/vgmstream.xcodeproj/project.pbxproj @@ -345,6 +345,11 @@ 838BDB7B1D3B1FC20022CA6F /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 838BDB7A1D3B1FC20022CA6F /* CoreMedia.framework */; }; 838BDB7D1D3B1FCC0022CA6F /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 838BDB7C1D3B1FCC0022CA6F /* CoreVideo.framework */; }; 838BDB7F1D3B1FD10022CA6F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 838BDB7E1D3B1FD10022CA6F /* Cocoa.framework */; }; + 83A3F0741E3AD8B900D6A794 /* formats.c in Sources */ = {isa = PBXBuildFile; fileRef = 83A3F0711E3AD8B900D6A794 /* formats.c */; }; + 83A3F0751E3AD8B900D6A794 /* formats.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A3F0721E3AD8B900D6A794 /* formats.h */; }; + 83A3F0761E3AD8B900D6A794 /* stack_alloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A3F0731E3AD8B900D6A794 /* stack_alloc.h */; }; + 83A3F07C1E3AD92400D6A794 /* ps2.c in Sources */ = {isa = PBXBuildFile; fileRef = 83A3F07A1E3AD92400D6A794 /* ps2.c */; }; + 83A3F07D1E3AD92400D6A794 /* x360.c in Sources */ = {isa = PBXBuildFile; fileRef = 83A3F07B1E3AD92400D6A794 /* x360.c */; }; 83A5F75F198DF021009AF94C /* bfwav.c in Sources */ = {isa = PBXBuildFile; fileRef = 83A5F75E198DF021009AF94C /* bfwav.c */; }; 83BAFB6C19F45EB3005DAB60 /* bfstm.c in Sources */ = {isa = PBXBuildFile; fileRef = 83BAFB6B19F45EB3005DAB60 /* bfstm.c */; }; 83D731101A7394BF00CA1366 /* g7221.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83D730EB1A738EB300CA1366 /* g7221.framework */; }; @@ -804,6 +809,11 @@ 838BDB7A1D3B1FC20022CA6F /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; 838BDB7C1D3B1FCC0022CA6F /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; }; 838BDB7E1D3B1FD10022CA6F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 83A3F0711E3AD8B900D6A794 /* formats.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = formats.c; sourceTree = ""; }; + 83A3F0721E3AD8B900D6A794 /* formats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = formats.h; sourceTree = ""; }; + 83A3F0731E3AD8B900D6A794 /* stack_alloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stack_alloc.h; sourceTree = ""; }; + 83A3F07A1E3AD92400D6A794 /* ps2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ps2.c; sourceTree = ""; }; + 83A3F07B1E3AD92400D6A794 /* x360.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = x360.c; sourceTree = ""; }; 83A5F75E198DF021009AF94C /* bfwav.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bfwav.c; sourceTree = ""; }; 83BAFB6B19F45EB3005DAB60 /* bfstm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bfstm.c; sourceTree = ""; }; 83D730E51A738EB200CA1366 /* g7221.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = g7221.xcodeproj; path = ../g7221/g7221.xcodeproj; sourceTree = ""; }; @@ -945,6 +955,9 @@ 836F6DDF18BDC2180095E648 /* coding */, 836F6DFF18BDC2180095E648 /* layout */, 836F6E2718BDC2180095E648 /* meta */, + 83A3F0711E3AD8B900D6A794 /* formats.c */, + 83A3F0721E3AD8B900D6A794 /* formats.h */, + 83A3F0731E3AD8B900D6A794 /* stack_alloc.h */, 836F6F1718BDC2190095E648 /* streamfile.c */, 836F6F1818BDC2190095E648 /* streamfile.h */, 836F6F1918BDC2190095E648 /* streamtypes.h */, @@ -1041,6 +1054,8 @@ 836F6E2718BDC2180095E648 /* meta */ = { isa = PBXGroup; children = ( + 83A3F07A1E3AD92400D6A794 /* ps2.c */, + 83A3F07B1E3AD92400D6A794 /* x360.c */, 8350C0591E071990009E0A93 /* ps2_svag_snk.c */, 8350C0541E071881009E0A93 /* xma.c */, 838BDB6D1D3B043C0022CA6F /* ffmpeg.c */, @@ -1321,7 +1336,9 @@ 836F6F3518BDC2190095E648 /* nwa_decoder.h in Headers */, 836F6F2718BDC2190095E648 /* g72x_state.h in Headers */, 836F705418BDC2190095E648 /* streamfile.h in Headers */, + 83A3F0761E3AD8B900D6A794 /* stack_alloc.h in Headers */, 8323894B1D22419B00482226 /* clHCA.h in Headers */, + 83A3F0751E3AD8B900D6A794 /* formats.h in Headers */, 836F705918BDC2190095E648 /* vgmstream.h in Headers */, 48C2650F1A5D420800A0A3D6 /* vorbisfile.h in Headers */, 836F705718BDC2190095E648 /* util.h in Headers */, @@ -1533,6 +1550,7 @@ 836F6FD218BDC2190095E648 /* ps2_bmdx.c in Sources */, 836F703C18BDC2190095E648 /* wii_bns.c in Sources */, 836F6FA718BDC2190095E648 /* nds_strm.c in Sources */, + 83A3F0741E3AD8B900D6A794 /* formats.c in Sources */, 836F6F6E18BDC2190095E648 /* aix.c in Sources */, 836F703118BDC2190095E648 /* ss_stream.c in Sources */, 836F701018BDC2190095E648 /* ps2_xau.c in Sources */, @@ -1596,6 +1614,7 @@ 836F6F8218BDC2190095E648 /* ea_header.c in Sources */, 836F700A18BDC2190095E648 /* ps2_vpk.c in Sources */, 836F6F7318BDC2190095E648 /* bcstm.c in Sources */, + 83A3F07D1E3AD92400D6A794 /* x360.c in Sources */, 836F704018BDC2190095E648 /* wii_sng.c in Sources */, 8350C0551E071881009E0A93 /* xma.c in Sources */, 836F6F3218BDC2190095E648 /* ngc_dsp_decoder.c in Sources */, @@ -1647,6 +1666,7 @@ 836F6F3118BDC2190095E648 /* ngc_afc_decoder.c in Sources */, 836F6FE718BDC2190095E648 /* ps2_mib.c in Sources */, 836F6FAB18BDC2190095E648 /* ngc_bo2.c in Sources */, + 83A3F07C1E3AD92400D6A794 /* ps2.c in Sources */, 836F6F9918BDC2190095E648 /* maxis_xa.c in Sources */, 836F702118BDC2190095E648 /* rs03.c in Sources */, 836F6F8418BDC2190095E648 /* emff.c in Sources */, diff --git a/Frameworks/vgmstream/vgmstream/src/coding/coding.h b/Frameworks/vgmstream/vgmstream/src/coding/coding.h index 92efe52dd..8baa4dc34 100644 --- a/Frameworks/vgmstream/vgmstream/src/coding/coding.h +++ b/Frameworks/vgmstream/vgmstream/src/coding/coding.h @@ -3,43 +3,42 @@ #include "../vgmstream.h" +/* adx_decoder */ void decode_adx(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); void decode_adx_enc(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - void adx_next_key(VGMSTREAMCHANNEL * stream); +/* g721_decoder */ void decode_g721(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); void g72x_init_state(struct g72x_state *state_ptr); +/* ima_decoder */ void decode_nds_ima(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); void decode_dat4_ima(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); void decode_xbox_ima(VGMSTREAM * vgmstream,VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do,int channel); void decode_int_xbox_ima(VGMSTREAM * vgmstream,VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do,int channel); void decode_dvi_ima(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); void decode_eacs_ima(VGMSTREAM * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int channel); - void decode_snds_ima(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int channel); - void decode_ima(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_ms_ima(VGMSTREAM * vgmstream,VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do,int channel); - void decode_rad_ima(VGMSTREAM * vgmstream,VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do,int channel); - void decode_rad_ima_mono(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - void decode_apple_ima4(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - void decode_ms_ima(VGMSTREAM * vgmstream,VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do,int channel); -void decode_ngc_afc(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); +/* ngc_dsp_decoder */ void decode_ngc_dsp(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); void decode_ngc_dsp_mem(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, uint8_t * mem); - int32_t dsp_nibbles_to_samples(int32_t nibbles); +void dsp_read_coefs_be(VGMSTREAM * vgmstream, STREAMFILE *streamFile, off_t offset, off_t spacing); +/* ngc_dtk_decoder */ void decode_ngc_dtk(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int channel); +/* ngc_afc_decoder */ +void decode_ngc_afc(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); + +/* pcm_decoder */ void decode_pcm16LE(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); void decode_pcm16LE_int(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); void decode_pcm16LE_XOR_int(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); @@ -50,98 +49,108 @@ void decode_pcm8_sb_int(VGMSTREAMCHANNEL * stream, sample * outbuf, int channels void decode_pcm8_unsigned_int(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); void decode_pcm8_unsigned(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); +/* psx_decoder */ void decode_psx(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_invert_psx(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - void decode_psx_badflags(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); +void decode_psx_bmdx(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); +void decode_psx_configurable(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int frame_size); +void decode_hevag(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); -void decode_ffxi_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_baf_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_hevag_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_short_vag_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - +/* xa_decoder */ void decode_xa(VGMSTREAM * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int channel); void init_get_high_nibble(VGMSTREAM * vgmstream); -void decode_eaxa(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do,int channel); +/*eaxa_decoder */ +void decode_ea_xa(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do,int channel); void decode_ea_adpcm(VGMSTREAM * vgmstream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int channel); void decode_maxis_adpcm(VGMSTREAM * vgmstream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int channel); +/* sdx2_decoder */ +void decode_sdx2(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); +void decode_sdx2_int(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); +/* sdx2_decoder */ +void decode_cbd2(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); +void decode_cbd2_int(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); + +/* ws_decoder */ +void decode_ws(VGMSTREAM * vgmstream, int channel, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); + +/* acm_decoder */ +void decode_acm(ACMStream * acm, sample * outbuf, int32_t samples_to_do, int channelspacing); + +/* nwa_decoder */ +void decode_nwa(NWAData *nwa, sample *outbuf, int32_t samples_to_do); + +/* msadpcm_decoder */ +long msadpcm_bytes_to_samples(long bytes, int block_size, int channels); +void decode_msadpcm_stereo(VGMSTREAM * vgmstream, sample * outbuf, int32_t first_sample, int32_t samples_to_do); +void decode_msadpcm_mono(VGMSTREAM * vgmstream, sample * outbuf, int32_t first_sample, int32_t samples_to_do); + +/* aica_decoder */ +void decode_aica(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); + +/* nds_procyon_decoder */ +void decode_nds_procyon(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); + +/* l5_555_decoder */ +void decode_l5_555(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); + +/* SASSC_decoder */ +void decode_SASSC(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); + +/* lsf_decode */ +void decode_lsf(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); + +/* mtaf_decoder */ +void decode_mtaf(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int channel, int channels); + +/* hca_decoder */ +void decode_hca(hca_codec_data * data, sample * outbuf, int32_t samples_to_do, int channels); + +/* ogg_vorbis_decoder */ #ifdef VGM_USE_VORBIS void decode_ogg_vorbis(ogg_vorbis_codec_data * data, sample * outbuf, int32_t samples_to_do, int channels); #endif +/* mpeg_decoder */ +#ifdef VGM_USE_MPEG +mpeg_codec_data *init_mpeg_codec_data(STREAMFILE *streamfile, off_t start_offset, long given_sample_rate, int given_channels, coding_t *coding_type, int * actual_sample_rate, int * actual_channels); +void decode_fake_mpeg2_l2(VGMSTREAMCHANNEL * stream, mpeg_codec_data * data, sample * outbuf, int32_t samples_to_do); +void decode_mpeg(VGMSTREAMCHANNEL * stream, mpeg_codec_data * data, sample * outbuf, int32_t samples_to_do, int channels); +long mpeg_bytes_to_samples(long bytes, const struct mpg123_frameinfo *mi); +void mpeg_set_error_logging(mpeg_codec_data * data, int enable); +#endif + +/* g7221_decoder */ +#ifdef VGM_USE_G7221 +void decode_g7221(VGMSTREAM *vgmstream, sample * outbuf, int channelspacing, int32_t samples_to_do, int channel); +#endif + +/* g719_decoder */ +#ifdef VGM_USE_G719 +void decode_g719(VGMSTREAM *vgmstream, sample * outbuf, int channelspacing, int32_t samples_to_do, int channel); +#endif + +/* mp4_aac_decoder */ #if defined(VGM_USE_MP4V2) && defined(VGM_USE_FDKAAC) void decode_mp4_aac(mp4_aac_codec_data * data, sample * outbuf, int32_t samples_to_do, int channels); #endif -void decode_sdx2(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); -void decode_sdx2_int(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); -void decode_cbd2(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); -void decode_cbd2_int(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_ws(VGMSTREAM * vgmstream, int channel, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -#ifdef VGM_USE_MPEG -void decode_fake_mpeg2_l2(VGMSTREAMCHANNEL * stream, - mpeg_codec_data * data, - sample * outbuf, int32_t samples_to_do); -mpeg_codec_data *init_mpeg_codec_data(STREAMFILE *streamfile, off_t start_offset, long given_sample_rate, int given_channels, coding_t *coding_type, int * actual_sample_rate, int * actual_channels); -long mpeg_bytes_to_samples(long bytes, const struct mpg123_frameinfo *mi); -void decode_mpeg(VGMSTREAMCHANNEL * stream, - mpeg_codec_data * data, - sample * outbuf, int32_t samples_to_do, int channels); -#endif - -#ifdef VGM_USE_G7221 -void decode_g7221(VGMSTREAM *vgmstream, - sample * outbuf, int channelspacing, int32_t samples_to_do, int channel); -#endif - -#ifdef VGM_USE_G719 -void decode_g719(VGMSTREAM *vgmstream, - sample * outbuf, int channelspacing, int32_t samples_to_do, int channel); -#endif - +/* at3_decoder */ #ifdef VGM_USE_MAIATRAC3PLUS -void decode_at3plus(VGMSTREAM *vgmstream, - sample * outbuf, int channelspacing, int32_t samples_to_do, int channel); +void decode_at3plus(VGMSTREAM *vgmstream, sample * outbuf, int channelspacing, int32_t samples_to_do, int channel); #endif +/* ffmpeg_decoder */ #ifdef VGM_USE_FFMPEG void decode_ffmpeg(VGMSTREAM *stream, sample * outbuf, int32_t samples_to_do, int channels); - void reset_ffmpeg(VGMSTREAM *vgmstream); - void seek_ffmpeg(VGMSTREAM *vgmstream, int32_t num_sample); -#endif -void decode_acm(ACMStream * acm, sample * outbuf, - int32_t samples_to_do, int channelspacing); - -void decode_nwa(NWAData *nwa, sample *outbuf, int32_t samples_to_do); - -long msadpcm_bytes_to_samples(long bytes, int block_size, int channels); -void decode_msadpcm_stereo(VGMSTREAM * vgmstream, sample * outbuf, int32_t first_sample, int32_t samples_to_do); - -void decode_msadpcm_mono(VGMSTREAM * vgmstream, sample * outbuf, int32_t first_sample, int32_t samples_to_do); - -void decode_aica(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_nds_procyon(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_l5_555(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_SASSC(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_lsf(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); - -void decode_mtaf(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int channel, int channels); - -void decode_hca(hca_codec_data * data, sample * outbuf, int32_t samples_to_do, int channels); +int ffmpeg_make_riff_atrac3(uint8_t * buf, size_t buf_size, size_t sample_count, size_t data_size, int channels, int sample_rate, int block_align, int joint_stereo, int encoder_delay); +int ffmpeg_make_riff_xma2(uint8_t * buf, size_t buf_size, size_t sample_count, size_t data_size, int channels, int sample_rate, int block_count, int block_size); +int ffmpeg_make_riff_xma2_from_fmt(uint8_t * buf, size_t buf_size, off_t fmt_offset, size_t fmt_size, size_t data_size, STREAMFILE *streamFile, int big_endian); #endif + +#endif /*_CODING_H*/ diff --git a/Frameworks/vgmstream/vgmstream/src/coding/eaxa_decoder.c b/Frameworks/vgmstream/vgmstream/src/coding/eaxa_decoder.c index 63dce2418..9d748a94b 100644 --- a/Frameworks/vgmstream/vgmstream/src/coding/eaxa_decoder.c +++ b/Frameworks/vgmstream/vgmstream/src/coding/eaxa_decoder.c @@ -14,7 +14,7 @@ int32_t EA_TABLE[20]= { 0x00000000, 0x000000F0, 0x000001CC, 0x00000188, 0x00000007, 0x00000008, 0x0000000A, 0x0000000B, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFD, 0xFFFFFFFC}; -void decode_eaxa(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do,int channel) { +void decode_ea_xa(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do,int channel) { uint8_t frame_info; int32_t sample_count; int32_t coef1,coef2; diff --git a/Frameworks/vgmstream/vgmstream/src/coding/ffmpeg_decoder.c b/Frameworks/vgmstream/vgmstream/src/coding/ffmpeg_decoder.c index ed04d357d..341022811 100644 --- a/Frameworks/vgmstream/vgmstream/src/coding/ffmpeg_decoder.c +++ b/Frameworks/vgmstream/vgmstream/src/coding/ffmpeg_decoder.c @@ -239,11 +239,6 @@ end: data->readNextPacket = readNextPacket; data->endOfStream = endOfStream; data->endOfAudio = endOfAudio; - - // And pad if we ran short (end of file) - if (framesReadNow < samples_to_do) { - memset(outbuf + framesReadNow * channels, 0, sizeof(sample) * channels * (samples_to_do - framesReadNow)); - } } @@ -268,42 +263,13 @@ void seek_ffmpeg(VGMSTREAM *vgmstream, int32_t num_sample) { ffmpeg_codec_data *data = (ffmpeg_codec_data *) vgmstream->codec_data; int64_t ts; -#ifndef VGM_USE_FFMPEG_ACCURATE_LOOPING - /* Seek to loop start by timestamp (closest frame) + adjust skipping some samples */ - /* FFmpeg seeks by ts by design (since not all containers can accurately skip to a frame). */ - /* TODO: this seems to be off by +-1 frames in some cases */ - ts = num_sample; - if (ts >= data->sampleRate * 2) { - data->samplesToDiscard = data->sampleRate * 2; - ts -= data->samplesToDiscard; - } - else { - data->samplesToDiscard = (int)ts; - ts = 0; - } - - /* todo fix this properly */ - if (data->totalSamples) { - ts = (int)ts * (data->formatCtx->duration) / data->totalSamples; - } else { - data->samplesToDiscard = num_sample; - ts = 0; - } - - avformat_seek_file(data->formatCtx, data->streamIndex, ts - 1000, ts, ts, AVSEEK_FLAG_ANY); - avcodec_flush_buffers(data->codecCtx); -#endif /* ifndef VGM_USE_FFMPEG_ACCURATE_LOOPING */ - -#ifdef VGM_USE_FFMPEG_ACCURATE_LOOPING - /* Start from 0 and discard samples until loop_start for accurate looping (slower but not too noticeable) */ - /* We could also seek by offset (AVSEEK_FLAG_BYTE) to the frame closest to the loop then discard - * some samples, which is fast but would need calculations per format / when frame size is not constant */ + /* Start from 0 and discard samples until loop_start (slower but not too noticeable) */ + /* Due to various FFmpeg quirks seeking to a sample is erratic in many formats (would need extra steps) */ data->samplesToDiscard = num_sample; ts = 0; avformat_seek_file(data->formatCtx, data->streamIndex, ts, ts, ts, AVSEEK_FLAG_ANY); avcodec_flush_buffers(data->codecCtx); -#endif /* ifdef VGM_USE_FFMPEG_ACCURATE_LOOPING */ data->readNextPacket = 1; data->bytesConsumedFromDecodedFrame = INT_MAX; @@ -312,4 +278,208 @@ void seek_ffmpeg(VGMSTREAM *vgmstream, int32_t num_sample) { } + + +/* ******************************************** */ +/* FAKE RIFF HELPERS */ +/* ******************************************** */ +static int ffmpeg_fmt_chunk_swap_endian(uint8_t * chunk, uint16_t codec); + +/** + * Copies a ATRAC3 riff to buf + * + * returns number of bytes in buf or -1 when buf is not big enough + */ +int ffmpeg_make_riff_atrac3(uint8_t * buf, size_t buf_size, size_t sample_count, size_t data_size, int channels, int sample_rate, int block_align, int joint_stereo, int encoder_delay) { + uint16_t codec_ATRAC3 = 0x0270; + size_t riff_size = 4+4+ 4 + 0x28 + 0x10 + 4+4; + + if (buf_size < riff_size) + return -1; + + memcpy(buf+0x00, "RIFF", 4); + put_32bitLE(buf+0x04, (int32_t)(riff_size-4-4 + data_size)); /* riff size */ + memcpy(buf+0x08, "WAVE", 4); + + memcpy(buf+0x0c, "fmt ", 4); + put_32bitLE(buf+0x10, 0x20);/*fmt size*/ + put_16bitLE(buf+0x14, codec_ATRAC3); + put_16bitLE(buf+0x16, channels); + put_32bitLE(buf+0x18, sample_rate); + put_32bitLE(buf+0x1c, sample_rate*channels / sizeof(sample)); /* average bytes per second (wrong) */ + put_32bitLE(buf+0x20, (int16_t)(block_align)); /* block align */ + + put_16bitLE(buf+0x24, 0x0e); /* extra data size */ + put_16bitLE(buf+0x26, 1); /* unknown, always 1 */ + put_16bitLE(buf+0x28, channels==1 ? 0x0800 : 0x1000); /* unknown (some size? 0x1000=2ch, 0x0800=1ch) */ + put_16bitLE(buf+0x2a, 0); /* unknown, always 0 */ + put_16bitLE(buf+0x2c, joint_stereo ? 0x0001 : 0x0000); + put_16bitLE(buf+0x2e, joint_stereo ? 0x0001 : 0x0000); /* repeated? */ + put_16bitLE(buf+0x30, 1); /* unknown, always 1 (frame_factor?) */ + put_16bitLE(buf+0x32, 0); /* unknown, always 0 */ + + memcpy(buf+0x34, "fact", 4); + put_32bitLE(buf+0x38, 0x8); /* fact size */ + put_32bitLE(buf+0x3c, sample_count); + put_32bitLE(buf+0x40, encoder_delay); + + memcpy(buf+0x44, "data", 4); + put_32bitLE(buf+0x48, data_size); /* data size */ + + return riff_size; +} + +/** + * Copies a XMA2 riff to buf + * + * returns number of bytes in buf or -1 when buf is not big enough + */ +int ffmpeg_make_riff_xma2(uint8_t * buf, size_t buf_size, size_t sample_count, size_t data_size, int channels, int sample_rate, int block_count, int block_size) { + uint16_t codec_XMA2 = 0x0166; + size_t riff_size = 4+4+ 4 + 0x3c + 4+4; + size_t bytecount; + uint32_t streams = 0; + uint32_t speakers = 0; /* see audiodefs.h */ + + if (buf_size < riff_size) + return -1; + + bytecount = sample_count * channels * sizeof(sample); + + /* untested (no support for > 2ch xma for now) */ + switch (channels) { + case 1: + streams = 1; + speakers = 0x00000004; /* FC */ + break; + case 2: + streams = 1; + speakers = 0x00000001 | 0x00000002; /* FL FR */ + break; + case 3: + streams = 3; + speakers = 0x00000001 | 0x00000002 | 0x00000004; /* FL FC FR */ + break; + case 4: + streams = 2; + speakers = 0x00000001 | 0x00000002 | 0x00000010 | 0x00000020; /* FL FR BL BR */ + break; + case 5: + streams = 3; + speakers = 0x00000001 | 0x00000002 | 0x00000010 | 0x00000020 | 0x00000004; /* FL C FR BL BR*/ + break; + case 6: + streams = 3; + speakers = 0x00000001 | 0x00000002 | 0x00000010 | 0x00000020 | 0x00000200 | 0x00000400; /* FL FR BL BR SL SR */ + break; + default: + streams = 1; + speakers = 0x80000000; + break; + } + + /*memset(buf,0, sizeof(uint8_t) * fmt_size);*/ + + memcpy(buf+0x00, "RIFF", 4); + put_32bitLE(buf+0x04, (int32_t)(riff_size-4-4 + data_size)); /* riff size */ + memcpy(buf+0x08, "WAVE", 4); + + memcpy(buf+0x0c, "fmt ", 4); + put_32bitLE(buf+0x10, 0x34);/*fmt size*/ + put_16bitLE(buf+0x14, codec_XMA2); + put_16bitLE(buf+0x16, channels); + put_32bitLE(buf+0x18, sample_rate); + put_32bitLE(buf+0x1c, sample_rate*channels / sizeof(sample)); /* average bytes per second (wrong) */ + put_16bitLE(buf+0x20, (int16_t)(channels*sizeof(sample))); /* block align */ + put_16bitLE(buf+0x22, sizeof(sample)*8); /* bits per sample */ + + put_16bitLE(buf+0x24, 0x22); /* extra data size */ + put_16bitLE(buf+0x26, streams); /* number of streams */ + put_32bitLE(buf+0x28, speakers); /* speaker position */ + put_32bitLE(buf+0x2c, bytecount); /* PCM samples */ + put_32bitLE(buf+0x30, block_size); /* XMA block size */ + /* (looping values not set, expected to be handled externally) */ + put_32bitLE(buf+0x34, 0); /* play begin */ + put_32bitLE(buf+0x38, 0); /* play length */ + put_32bitLE(buf+0x3c, 0); /* loop begin */ + put_32bitLE(buf+0x40, 0); /* loop length */ + put_8bit(buf+0x44, 0); /* loop count */ + put_8bit(buf+0x45, 4); /* encoder version */ + put_16bitLE(buf+0x46, block_count); /* blocks count = entried in seek table */ + + memcpy(buf+0x48, "data", 4); + put_32bitLE(buf+0x4c, data_size); /* data size */ + + return riff_size; +} + + +/** + * Copies a XMA2 riff to buf from a fmt chunk offset + * + * returns number of bytes in buf or -1 when buf is not big enough + */ +int ffmpeg_make_riff_xma2_from_fmt(uint8_t * buf, size_t buf_size, off_t fmt_offset, size_t fmt_size, size_t data_size, STREAMFILE *streamFile, int big_endian) { + size_t riff_size = 4+4+ 4 + 4+4+fmt_size + 4+4; + uint8_t chunk[100]; + + if (buf_size < riff_size || fmt_size > 100) + goto fail; + if (read_streamfile(chunk,fmt_offset,fmt_size, streamFile) != fmt_size) + goto fail; + + if (big_endian) + ffmpeg_fmt_chunk_swap_endian(chunk, 0x166); + + memcpy(buf+0x00, "RIFF", 4); + put_32bitLE(buf+0x04, (int32_t)(riff_size-4-4 + data_size)); /* riff size */ + memcpy(buf+0x08, "WAVE", 4); + + memcpy(buf+0x0c, "fmt ", 4); + put_32bitLE(buf+0x10, fmt_size);/*fmt size*/ + memcpy(buf+0x14, chunk, fmt_size); + + memcpy(buf+0x14+fmt_size, "data", 4); + put_32bitLE(buf+0x14+fmt_size+4, data_size); /* data size */ + + return riff_size; + +fail: + return -1; +} + +/** + * Swaps endianness + * + * returns 0 on error + */ +static int ffmpeg_fmt_chunk_swap_endian(uint8_t * chunk, uint16_t codec) { + if (codec != 0x166) + goto fail; + + put_16bitLE(chunk + 0x00, get_16bitBE(chunk + 0x00));/*wFormatTag*/ + put_16bitLE(chunk + 0x02, get_16bitBE(chunk + 0x02));/*nChannels*/ + put_32bitLE(chunk + 0x04, get_32bitBE(chunk + 0x04));/*nSamplesPerSec*/ + put_32bitLE(chunk + 0x08, get_32bitBE(chunk + 0x08));/*nAvgBytesPerSec*/ + put_16bitLE(chunk + 0x0c, get_16bitBE(chunk + 0x0c));/*nBlockAlign*/ + put_16bitLE(chunk + 0x0e, get_16bitBE(chunk + 0x0e));/*wBitsPerSample*/ + put_16bitLE(chunk + 0x10, get_16bitBE(chunk + 0x10));/*cbSize*/ + put_16bitLE(chunk + 0x12, get_16bitBE(chunk + 0x12));/*NumStreams*/ + put_32bitLE(chunk + 0x14, get_32bitBE(chunk + 0x14));/*ChannelMask*/ + put_32bitLE(chunk + 0x18, get_32bitBE(chunk + 0x18));/*SamplesEncoded*/ + put_32bitLE(chunk + 0x1c, get_32bitBE(chunk + 0x1c));/*BytesPerBlock*/ + put_32bitLE(chunk + 0x20, get_32bitBE(chunk + 0x20));/*PlayBegin*/ + put_32bitLE(chunk + 0x24, get_32bitBE(chunk + 0x24));/*PlayLength*/ + put_32bitLE(chunk + 0x28, get_32bitBE(chunk + 0x28));/*LoopBegin*/ + put_32bitLE(chunk + 0x2c, get_32bitBE(chunk + 0x2c));/*LoopLength*/ + /* put_8bit(chunk + 0x30, get_8bit(chunk + 0x30));*//*LoopCount*/ + /* put_8bit(chunk + 0x31, get_8bit(chunk + 0x31));*//*EncoderVersion*/ + put_16bitLE(chunk + 0x32, get_16bitBE(chunk + 0x32));/*BlockCount*/ + + return 1; + +fail: + return 0; +} + #endif diff --git a/Frameworks/vgmstream/vgmstream/src/coding/g72x_state.h b/Frameworks/vgmstream/vgmstream/src/coding/g72x_state.h index bf1a6ade5..9eec93bb0 100644 --- a/Frameworks/vgmstream/vgmstream/src/coding/g72x_state.h +++ b/Frameworks/vgmstream/vgmstream/src/coding/g72x_state.h @@ -1,5 +1,5 @@ /* - * streamtypes.h - widely used type definitions + * g72x_state.h - internal state used by g721 decoder */ diff --git a/Frameworks/vgmstream/vgmstream/src/coding/mpeg_decoder.c b/Frameworks/vgmstream/vgmstream/src/coding/mpeg_decoder.c index 92c742406..f7b43c5b7 100644 --- a/Frameworks/vgmstream/vgmstream/src/coding/mpeg_decoder.c +++ b/Frameworks/vgmstream/vgmstream/src/coding/mpeg_decoder.c @@ -226,4 +226,11 @@ long mpeg_bytes_to_samples(long bytes, const struct mpg123_frameinfo *mi) { return (int64_t)bytes * mi->rate * 8 / (mi->bitrate * 1000); } + +/** + * disables/enables stderr output, useful for MPEG known to contain recoverable errors + */ +void mpeg_set_error_logging(mpeg_codec_data * data, int enable) { + mpg123_param(data->m, MPG123_ADD_FLAGS, MPG123_QUIET, !enable); +} #endif diff --git a/Frameworks/vgmstream/vgmstream/src/coding/mtaf_decoder.c b/Frameworks/vgmstream/vgmstream/src/coding/mtaf_decoder.c index d631476bc..50e27672a 100644 --- a/Frameworks/vgmstream/vgmstream/src/coding/mtaf_decoder.c +++ b/Frameworks/vgmstream/vgmstream/src/coding/mtaf_decoder.c @@ -3,6 +3,8 @@ #include "coding.h" #include "../util.h" +#define MTAF_BLOCK_SUPPORT 0 + // A hybrid of IMA and Yamaha ADPCM found in Metal Gear Solid 3 // Thanks to X_Tra (http://metalgear.in/) for pointing me to the step size table. @@ -81,62 +83,79 @@ static int16_t step_size[32][16] = { void decode_mtaf(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int channel, int channels) { int32_t sample_count; - unsigned long cur_off = stream->offset; + off_t cur_off = stream->offset; int i; - int c = channel%2; - int16_t init_idx; - int16_t init_hist; + int c = channel%2; /* global channel to stream channel */ int32_t hist = stream->adpcm_history1_16; - int step_idx = stream->adpcm_step_index; - - //printf("channel %d: first_sample = %d, stream->offset = 0x%lx, cur_off = 0x%lx init_idx = %d\n", channel, first_sample, (unsigned long)stream->offset, cur_off, init_idx); + int32_t step_idx = stream->adpcm_step_index; + uint8_t byte = 0; -#if 0 - if (init_idx < 0 || init_idx > 31) { - fprintf(stderr, "step idx out of range at 0x%lx ch %d\n", cur_off, c); - exit(1); - } - if (0 != read_16bitLE(cur_off+10+c*4, stream->streamfile)) { - fprintf(stderr, "exp. zero after hist at 0x%lx ch %d\n", cur_off, c); - exit(1); + +#if MTAF_BLOCK_SUPPORT + { + /* "macroblock" support (layout/mtaf_block.c) was removed since the extractor now produces clean files; + * this a hack to skip those blocks, left as a reminder (not well tested) */ + int unk, size, empty, frames, repeat = 1; + do { + unk = read_32bitLE(cur_off+0x00, stream->streamfile); /* always BE 0x01001100? */ + size = read_32bitLE(cur_off+0x04, stream->streamfile); /* block size */ + empty = read_32bitLE(cur_off+0x08, stream->streamfile); /* always 0? */ + frames = read_32bitLE(cur_off+0x0c, stream->streamfile); /* total frames of 0x110 */ + if (unk == 0x00110001 && empty == 0 && size > 0) { + if (frames == 0) { + stream->offset += size; /* full skip */ + } else if ((size-0x10) == frames*0x110) { + stream->offset += 0x10; /* header skip */ + repeat = 0; + } + cur_off = stream->offset; + } + else { + repeat = 0; + } + + } while(repeat); } #endif - first_sample = first_sample%0x100; - - if (first_sample%0x100 == 0) { - while (read_8bit(cur_off, stream->streamfile) != 0) { - cur_off += 16; - } - - stream->offset = cur_off; + first_sample = first_sample % 0x100; - init_idx = read_16bitLE(cur_off+4+c*2, stream->streamfile); - init_hist = read_16bitLE(cur_off+8+c*4, stream->streamfile); - - hist = init_hist; + /* read header when we hit a new frame every 0x100 samples */ + if (first_sample == 0) { + int32_t init_idx, init_hist; -#if 0 - if (step_idx != init_idx) { - fprintf(stderr, "step_idx does not match at 0x%lx, %d!=%d\n",cur_off,step_idx, init_idx); - exit(1); + /* 0x10 header: owner stream, frame count, step-L, step-R, hist-L, hist-R */ + /* uint32_t stream = read_8bit(cur_off+0+c*2, stream->streamfile); */ /* 0=first */ + /* uint24_t frames = (uint24_t)read_16bitLE(cur_off+1, stream->streamfile); */ /* 1=first */ + init_idx = read_16bitLE(cur_off+4+c*2, stream->streamfile); /* step-L/R */ + init_hist = read_16bitLE(cur_off+4+4+c*4, stream->streamfile); /* hist-L/R: hist 16bit + empty 16bit */ + + VGM_ASSERT( read_16bitLE(cur_off+4+4+2+c*4, stream->streamfile) != 0, + "init_hist not 16bit at 0x%lx, ch=%d\n", cur_off, c); + VGM_ASSERT( init_idx < 0 || init_idx > 31, + "init_idx out of range at 0x%lx, ch=%d\n", cur_off, c); + VGM_ASSERT( step_idx != init_idx, + "step_idx does not match init_idx at 0x%lx, step=%d, init=%d\n",cur_off,step_idx, init_idx); + + /* avoid index out of range in corrupt files */ + if (init_idx < 0) { + init_idx = 0; + } else if (init_idx > 31) { + init_idx = 31; } -#endif + step_idx = init_idx; + hist = init_hist; } for (i=first_sample,sample_count=0; istreamfile); - if (i%2!=1) - { - // low nibble first - nibble = byte&0xf; - } - else - { - // high nibble last + uint8_t nibble; + + if (i%2 != 1) { /* low nibble first */ + byte = read_8bit(cur_off + 0x10 + 0x80*c + i/2, stream->streamfile); + nibble = byte & 0x0f; + } else { /* high nibble last */ nibble = byte >> 4; } @@ -145,12 +164,9 @@ void decode_mtaf(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, outbuf[sample_count] = hist; step_idx += index_table[nibble]; - if (step_idx < 0) - { + if (step_idx < 0) { /* clip step */ step_idx = 0; - } - if (step_idx > 31) - { + } else if (step_idx > 31) { step_idx = 31; } } /* end sample loop */ diff --git a/Frameworks/vgmstream/vgmstream/src/coding/ngc_dsp_decoder.c b/Frameworks/vgmstream/vgmstream/src/coding/ngc_dsp_decoder.c index 27825ae96..5b87c45b8 100644 --- a/Frameworks/vgmstream/vgmstream/src/coding/ngc_dsp_decoder.c +++ b/Frameworks/vgmstream/vgmstream/src/coding/ngc_dsp_decoder.c @@ -20,11 +20,6 @@ void decode_ngc_dsp(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspaci for (i=first_sample,sample_count=0; ioffset+1+i/2,stream->streamfile); -#ifdef DEBUG - if (hist1==stream->loop_history1 && hist2==stream->loop_history2) fprintf(stderr,"yo! %#x (start %#x) %d\n",stream->offset+framesin*8+i/2,stream->channel_start_offset,stream->samples_done); - stream->samples_done++; -#endif - outbuf[sample_count] = clamp16(( (((i&1? get_low_nibble_signed(sample_byte): @@ -61,11 +56,6 @@ void decode_ngc_dsp_mem(VGMSTREAMCHANNEL * stream, sample * outbuf, int channels for (i=first_sample,sample_count=0; iloop_history1 && hist2==stream->loop_history2) fprintf(stderr,"yo! %#x (start %#x) %d\n",stream->offset+framesin*8+i/2,stream->channel_start_offset,stream->samples_done); - stream->samples_done++; -#endif - outbuf[sample_count] = clamp16(( (((i&1? get_low_nibble_signed(sample_byte): @@ -104,3 +94,19 @@ int32_t dsp_nibbles_to_samples(int32_t nibbles) { if (remainder>0) return whole_frames*14+remainder-2; else return whole_frames*14; } + + +/** + * reads DSP coefs built in the streamfile + */ +void dsp_read_coefs_be(VGMSTREAM * vgmstream, STREAMFILE *streamFile, off_t offset, off_t spacing) { + int ch, i; + /* get ADPCM coefs */ + for (ch=0; ch < vgmstream->channels; ch++) { + for (i=0; i < 16; i++) { + vgmstream->ch[ch].adpcm_coef[i] = + read_16bitBE(offset + ch*spacing + i*2, streamFile); + } + } +} + diff --git a/Frameworks/vgmstream/vgmstream/src/coding/psx_decoder.c b/Frameworks/vgmstream/vgmstream/src/coding/psx_decoder.c index c84842693..f04457ee7 100644 --- a/Frameworks/vgmstream/vgmstream/src/coding/psx_decoder.c +++ b/Frameworks/vgmstream/vgmstream/src/coding/psx_decoder.c @@ -3,8 +3,7 @@ #include "../util.h" /* for some algos, maybe closer to the real thing */ -#define VAG_USE_INTEGER_TABLE 0 - +#define VAG_USE_INTEGER_TABLE 0 /* PS ADPCM table (precalculated divs) */ static const double VAG_f[5][2] = { @@ -14,6 +13,7 @@ static const double VAG_f[5][2] = { { 98.0 / 64.0 , -55.0 / 64.0 }, { 122.0 / 64.0 , -60.0 / 64.0 } }; +#if VAG_USE_INTEGER_TABLE /* PS ADPCM table */ static const int8_t VAG_coefs[5][2] = { { 0 , 0 }, @@ -22,7 +22,7 @@ static const int8_t VAG_coefs[5][2] = { { 98 , -55 }, { 122 , -60 } }; - +#endif /* PSVita ADPCM table */ static const int16_t HEVAG_coefs[128][4] = { @@ -214,7 +214,7 @@ void decode_psx(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, stream->adpcm_history2_32=hist2; } -void decode_invert_psx(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do) { +void decode_psx_bmdx(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do) { int predict_nr, shift_factor, sample; int32_t hist1=stream->adpcm_history1_32; @@ -294,84 +294,6 @@ void decode_psx_badflags(VGMSTREAMCHANNEL * stream, sample * outbuf, int channel stream->adpcm_history2_32=hist2; } -/* FF XI's Vag-ish format */ -void decode_ffxi_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do) { - - int predict_nr, shift_factor, sample; - int32_t hist1=stream->adpcm_history1_32; - int32_t hist2=stream->adpcm_history2_32; - - short scale; - int i; - int32_t sample_count; - int32_t predictor; - - int framesin = first_sample/16; - - predict_nr = read_8bit(stream->offset+framesin*9,stream->streamfile) >> 4; - shift_factor = read_8bit(stream->offset+framesin*9,stream->streamfile) & 0xf; - first_sample = first_sample % 16; - - for (i=first_sample,sample_count=0; ioffset+(framesin*9)+1+i/2,stream->streamfile); - - sample=0; - - scale = ((i&1 ? - sample_byte >> 4 : - sample_byte & 0x0f)<<12); - -#if !VAG_USE_INTEGER_TABLE - predictor = - (int)((hist1*VAG_f[predict_nr][0]+hist2*VAG_f[predict_nr][1])); -#else - predictor = - (hist1*VAG_coefs[predict_nr][0]+hist2*VAG_coefs[predict_nr][1])/64; -#endif - sample=(scale >> shift_factor) + predictor; - - outbuf[sample_count] = clamp16(sample); - hist2=hist1; - hist1=sample; - } - stream->adpcm_history1_32=hist1; - stream->adpcm_history2_32=hist2; -} - -void decode_baf_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do) { - - int predict_nr, shift_factor, sample; - int32_t hist1=stream->adpcm_history1_32; - int32_t hist2=stream->adpcm_history2_32; - - short scale; - int i; - int32_t sample_count; - - int framesin = first_sample/64; - - predict_nr = read_8bit(stream->offset+framesin*33,stream->streamfile) >> 4; - shift_factor = read_8bit(stream->offset+framesin*33,stream->streamfile) & 0xf; - - first_sample = first_sample % 64; - - for (i=first_sample,sample_count=0; ioffset+(framesin*33)+1+i/2,stream->streamfile); - - scale = ((i&1 ? - sample_byte >> 4 : - sample_byte & 0x0f)<<12); - - sample=(int)((scale >> shift_factor)+hist1*VAG_f[predict_nr][0]+hist2*VAG_f[predict_nr][1]); - - outbuf[sample_count] = clamp16(sample); - hist2=hist1; - hist1=sample; - } - stream->adpcm_history1_32=hist1; - stream->adpcm_history2_32=hist2; -} - /** * Sony's HEVAG (High Efficiency VAG) ADPCM, used in PSVita games (hardware decoded). @@ -379,7 +301,7 @@ void decode_baf_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspa * * Original research and algorithm by id-daemon / daemon1. */ -void decode_hevag_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do) { +void decode_hevag(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do) { uint8_t predict_nr, shift, flag, byte; int32_t scale = 0; @@ -405,6 +327,10 @@ void decode_hevag_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channels first_sample = first_sample % 28; + if (first_sample & 1) { /* if first sample is odd, read byte first */ + byte = read_8bit(stream->offset+(framesin*16)+2+first_sample/2,stream->streamfile); + } + for (i = first_sample, sample_count = 0; i < first_sample + samples_to_do; i++, sample_count += channelspacing) { sample = 0; @@ -442,11 +368,10 @@ void decode_hevag_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channels /** - * Short VAG ADPCM, found in PS3 Afrika (SGDX type 5). - * Uses 8 byte blocks and no flag. + * PS ADPCM of configurable size, with no flag. + * Found in PS3 Afrika (SGDX type 5) in size 4, FF XI in sizes 3/5/9/41, Blur and James Bond in size 33. */ -void decode_short_vag_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do) { - +void decode_psx_configurable(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do, int frame_size) { uint8_t predict_nr, shift, byte; int16_t scale = 0; @@ -454,37 +379,50 @@ void decode_short_vag_adpcm(VGMSTREAMCHANNEL * stream, sample * outbuf, int chan int32_t hist1 = stream->adpcm_history1_32; int32_t hist2 = stream->adpcm_history2_32; - int i, sample_count; + int i, sample_count, bytes_per_frame, samples_per_frame; + const int header_size = 1; + int framesin; + bytes_per_frame = frame_size - header_size; + samples_per_frame = bytes_per_frame * 2; - int framesin = first_sample / 6; + framesin = first_sample / samples_per_frame; - /* 2 byte header: predictor = 1st, shift = 2nd */ - byte = (uint8_t)read_8bit(stream->offset+framesin*8+0,stream->streamfile); + /* 1 byte header: predictor = 1st, shift = 2nd */ + byte = (uint8_t)read_8bit(stream->offset+framesin*frame_size+0,stream->streamfile); predict_nr = byte >> 4; shift = byte & 0x0f; - first_sample = first_sample % 6; + first_sample = first_sample % samples_per_frame; + + if (first_sample & 1) { /* if restarting on a high nibble, read byte first */ + byte = (uint8_t)read_8bit(stream->offset+(framesin*frame_size)+header_size+first_sample/2,stream->streamfile); + } for (i = first_sample, sample_count = 0; i < first_sample + samples_to_do; i++, sample_count += channelspacing) { sample = 0; if (predict_nr < 5) { - - if (i & 1) {/* odd/even nibble */ - scale = byte >> 4; - } else { - byte = (uint8_t)read_8bit(stream->offset+(framesin*8)+1+i/2,stream->streamfile); + if (!(i&1)) { /* low nibble first */ + byte = (uint8_t)read_8bit(stream->offset+(framesin*frame_size)+header_size+i/2,stream->streamfile); scale = (byte & 0x0f); + } else { /* high nibble last */ + scale = byte >> 4; } + scale = scale << 12; /* shift + sign extend (only if scale is int16_t) */ /*if (scale > 7) { scale = scale - 16; }*/ - scale = scale << 12; /* shift + sign extend only if scale is int16_t */ - - sample = (hist1 * VAG_coefs[predict_nr][0] + +#if VAG_USE_INTEGER_TABLE + sample = (scale >> shift) + + (hist1 * VAG_coefs[predict_nr][0] + hist2 * VAG_coefs[predict_nr][1] ) / 64; - sample = sample + (scale >> shift); + sample = sample + ; +#else + sample = (int)( (scale >> shift) + + (hist1 * VAG_f[predict_nr][0] + + hist2 * VAG_f[predict_nr][1]) ); +#endif } outbuf[sample_count] = clamp16(sample); diff --git a/Frameworks/vgmstream/vgmstream/src/formats.c b/Frameworks/vgmstream/vgmstream/src/formats.c new file mode 100644 index 000000000..5b388a19c --- /dev/null +++ b/Frameworks/vgmstream/vgmstream/src/formats.c @@ -0,0 +1,871 @@ +#include "formats.h" + +//#define VGM_REGISTER_TYPE(extension) ... +//#define VGM_REGISTER_TYPE_COMMON(extension) ... /* for common extensions like aiff */ + + +/* some extensions could be #ifdef but no really needed */ +/* some formats marked as "not parsed" mean they'll go through FFmpeg, the header/extension is not parsed */ + +static const char* extension_list[] = { + "2dx9", + "2pfs", + + "aa3", //FFmpeg, not parsed (ATRAC3/ATRAC3PLUS/MP3/LPCM/WMA) + "aaap", + "aax", + //"ac3", //FFmpeg, not parsed //common? + "acm", + "adm", + "adp", + "adpcm", + "ads", + "adx", + "afc", + "agsc", + "ahx", + "aifc", + "aifcl", + //"aiff", //common + "aix", + "akb", //AAC + "amts", + "as4", + "asd", + "asf", + "asr", + "ass", + "ast", + "at3", + "aud", + "aus", + + "b1s", + "baf", + "baka", + "bar", + "bcstm", + "bcwav", + "bdsp", + "bfstm", + "bfwav", + "bfwavnsmbu", + "bg00", + "bgw", + "bh2pcm", + "bmdx", + "bms", + "bnk", + "bns", + "bnsf", + "bo2", + "brstm", + "brstmspm", + "btsnd", + "bvg", + + "caf", + "capdsp", + "cbd2", + "ccc", + "cfn", + "ckd", + "cnk", + "cps", + "cxs", + + "dcs", + "ddsp", + "de2", + "dmsg", + "dsp", + "dspw", + "dtk", + "dvi", + "dxh", + + "eam", + "emff", + "enth", + + "fag", + "ffw", + "filp", + "fsb", + "fwav", + + "g1l", + "gbts", + "gca", + "gcm", + "gcub", + "gcw", + "genh", + "gms", + "gsb", + + "hca", + "hgc1", + "his", + "hlwav", + "hps", + "hsf", + "hwas", + + "iab", + "iadp", + "idsp", + "idvi", + "ikm", + "ild", + "int", + "isd", + "isws", + "ivaud", + "ivag", + "ivb", + + "joe", + "jstm", + + "kces", + "kcey", + "khv", + "kovs", + "kraw", + + "leg", + "logg", + "lpcm", + "lps", + "lsf", + "lwav", + + "matx", + "mca", + "mcg", + "mi4", + "mib", + "mic", + "mihb", + "mnstr", + "mpdsp", + "mpds", + "msa", + "msf", + "mss", + "msvp", + "mtaf", + "mus", + "musc", + "musx", + "mwv", + "mxst", + "myspd", + + "ndp", + "ngca", + "nps", + "npsf", + "nus3bank", //todo not existing? + "nwa", + + "oma", //FFmpeg, not parsed (ATRAC3/ATRAC3PLUS/MP3/LPCM/WMA) + "omu", + "otm", + + "p2bt", + "p3d", + "past", + "pcm", + "pdt", + "pnb", + "pona", + "pos", + "ps2stm", + "psh", + "psnd", + "psw", + + "ras", + "raw", + "rkv", + "rnd", + "rrds", + "rsd", + "rsf", + "rstm", + "rvws", + "rwar", + "rwav", + "rws", + "rwsd", + "rwx", + "rxw", + + "s14", + "sab", + "sad", + "sap", + "sc", + "scd", + "sck", + "sd9", + "sdt", + "seg", + "sf0", + "sfl", + "sfs", + "sfx", + "sgb", + "sgd", + "sgx", + "sl3", + "sli", + "smp", + "smpl", + "snd", + "snds", + "sng", + "sns", + "spd", + "spm", + "sps", + "spsd", + "spw", + "ss2", + "ss3", + "ss7", + "ssm", + "sss", + "ster", + "sth", + //"stm", //common + "stma", + "str", + "strm", + "sts", + "stx", + "svag", + "svs", + "swag", + "swav", + "swd", + + "tec", + "thp", + "tk1", + "tk5", + "tra", + "tun", + "tydsp", + + "um3", + + "vag", + "vas", + "vawx", + "vb", + "vbk", + "vgs", + "vgv", + "vig", + + "vds", + "vdm", + "vms", + "vms", + "voi", + "vpk", + "vs", + "vsf", + + "waa", + "wac", + "wad", + "wam", + "was", + "wavm", + "wb", + "wii", + "wmus", + "wp2", + "wpd", + "wsd", + "wsi", + "wvs", + + "xa", + "xa2", + "xa30", + "xag", + "xau", + "xma", + "xma2", + "xmu", + "xnb", + "xsf", + "xss", + "xvag", + "xvas", + "xwav", + "xwb", + "xwm", //FFmpeg, not parsed (XWMA) + "xwma", //FFmpeg, not parsed (XWMA) + "xwv", + + "ydsp", + "ymf", + + "zsd", + "zwdsp", + + "vgmstream" + + //, NULL //end mark +}; + +/** + * List of supported formats. + * + * For plugins that need to know (test.exe doesn't use it) + */ +const char ** vgmstream_get_formats() { + return extension_list; +} + +/** + * Number of elements in the list. + */ +int vgmstream_get_formats_length() { + return sizeof(extension_list) / sizeof(char*); +} + + +/* internal description info */ + +typedef struct { + coding_t type; + const char *description; +} coding_info; + +typedef struct { + layout_t type; + const char *description; +} layout_info; + +typedef struct { + meta_t type; + const char *description; +} meta_info; + + +static const coding_info coding_info_list[] = { + {coding_PCM16BE, "Big Endian 16-bit PCM"}, + {coding_PCM16LE, "Little Endian 16-bit PCM"}, + {coding_PCM16LE_int, "Little Endian 16-bit PCM with 2 byte interleave"}, + {coding_PCM16LE_XOR_int, "Little Endian 16-bit PCM with 2 byte interleave and XOR obfuscation"}, + {coding_PCM8, "8-bit PCM"}, + {coding_PCM8_U, "8-bit unsigned PCM"}, + {coding_PCM8_U_int, "8-bit unsigned PCM with 1 byte interleave"}, + {coding_PCM8_int, "8-bit PCM with 1 byte interleave"}, + {coding_PCM8_SB_int, "8-bit PCM with sign bit, 1 byte interleave"}, + {coding_CRI_ADX, "CRI ADX 4-bit ADPCM"}, + {coding_CRI_ADX_enc_8, "CRI ADX 4-bit ADPCM (type 8 encryption)"}, + {coding_CRI_ADX_enc_9, "CRI ADX 4-bit ADPCM (type 8 encryption)"}, + {coding_NGC_DSP, "Nintendo DSP 4-bit ADPCM"}, + {coding_NGC_DTK, "Nintendo DTK 4-bit ADPCM"}, + {coding_NGC_AFC, "Nintendo AFC 4-bit ADPCM"}, + {coding_CRI_HCA, "CRI HCA"}, + {coding_NDS_IMA, "NDS-style 4-bit IMA ADPCM"}, + {coding_DAT4_IMA, "Eurocom DAT4 4-bit IMA ADPCM"}, + {coding_G721, "CCITT G.721 4-bit ADPCM"}, + {coding_PSX, "Playstation 4-bit ADPCM"}, + {coding_PSX_badflags, "Playstation 4-bit ADPCM (bad flags)"}, + {coding_PSX_bmdx, "Playstation 4-bit ADPCM (BMDX encryption)"}, + {coding_PSX_cfg, "Playstation 4-bit ADPCM (configurable)"}, + {coding_HEVAG, "Playstation Vita HEVAG 4-bit ADPCM"}, + {coding_XA, "CD-ROM XA 4-bit ADPCM"}, + {coding_XBOX, "XBOX 4-bit IMA ADPCM"}, + {coding_INT_XBOX, "XBOX 4-bit IMA ADPCM (interleaved)"}, + {coding_EA_XA, "Electronic Arts 4-bit ADPCM (XA based)"}, + {coding_EA_ADPCM, "Electronic Arts R1 4-bit ADPCM (XA based)"}, + {coding_SDX2, "Squareroot-delta-exact (SDX2) 8-bit DPCM"}, + {coding_SDX2_int, "Squareroot-delta-exact (SDX2) 8-bit DPCM with 1 byte interleave"}, + {coding_CBD2, "Cuberoot-delta-exact (CBD2) 8-bit DPCM"}, + {coding_CBD2_int, "Cuberoot-delta-exact (CBD2) 8-bit DPCM with 1 byte interleave"}, + {coding_DVI_IMA, "Intel DVI 4-bit IMA ADPCM"}, + {coding_INT_DVI_IMA, "Interleaved Intel DVI 4-bit IMA ADPCM"}, + {coding_EACS_IMA, "EACS 4-bit IMA ADPCM"}, + {coding_MAXIS_ADPCM, "Maxis XA (EA ADPCM Variant)"}, + {coding_INT_IMA, "Interleaved 4-bit IMA ADPCM"}, + {coding_IMA, "4-bit IMA ADPCM"}, + {coding_MS_IMA, "Microsoft 4-bit IMA ADPCM"}, + {coding_RAD_IMA, "'Radical' 4-bit IMA ADPCM"}, + {coding_RAD_IMA_mono, "'Radical' 4-bit IMA ADPCM (mono)"}, + {coding_APPLE_IMA4, "Apple Quicktime 4-bit IMA ADPCM"}, + {coding_SNDS_IMA, "Heavy Iron .snds 4-bit IMA ADPCM"}, + {coding_WS, "Westwood Studios ADPCM"}, + {coding_ACM, "InterPlay ACM"}, + {coding_NWA0, "NWA DPCM Level 0"}, + {coding_NWA1, "NWA DPCM Level 1"}, + {coding_NWA2, "NWA DPCM Level 2"}, + {coding_NWA3, "NWA DPCM Level 3"}, + {coding_NWA4, "NWA DPCM Level 4"}, + {coding_NWA5, "NWA DPCM Level 5"}, + {coding_MSADPCM, "Microsoft 4-bit ADPCM"}, + {coding_AICA, "Yamaha AICA 4-bit ADPCM"}, + {coding_NDS_PROCYON, "Procyon Studio Digital Sound Elements NDS 4-bit APDCM"}, + {coding_L5_555, "Level-5 0x555 4-bit ADPCM"}, + {coding_SASSC, "Activision / EXAKT SASSC 8-bit DPCM"}, + {coding_LSF, "lsf 4-bit ADPCM"}, + {coding_MTAF, "Konami MTAF 4-bit ADPCM"}, +#ifdef VGM_USE_VORBIS + {coding_ogg_vorbis, "Vorbis"}, +#endif +#ifdef VGM_USE_MPEG + {coding_fake_MPEG2_L2, "MPEG-2 Layer II Audio"}, + {coding_MPEG1_L1, "MPEG-1 Layer I Audio"}, + {coding_MPEG1_L2, "MPEG-1 Layer II Audio"}, + {coding_MPEG1_L3, "MPEG-1 Layer III Audio (MP3)"}, + {coding_MPEG2_L1, "MPEG-2 Layer I Audio"}, + {coding_MPEG2_L2, "MPEG-2 Layer II Audio"}, + {coding_MPEG2_L3, "MPEG-2 Layer III Audio (MP3)"}, + {coding_MPEG25_L1, "MPEG-2.5 Layer I Audio"}, + {coding_MPEG25_L2, "MPEG-2.5 Layer II Audio"}, + {coding_MPEG25_L3, "MPEG-2.5 Layer III Audio (MP3)"}, +#endif +#ifdef VGM_USE_G7221 + {coding_G7221, "ITU G.722.1 (Polycom Siren 7)"}, + {coding_G7221C, "ITU G.722.1 annex C (Polycom Siren 14)"}, +#endif +#ifdef VGM_USE_G719 + {coding_G719, "ITU G.719 annex B (Polycom Siren 22)"}, +#endif +#ifdef VGM_USE_MAIATRAC3PLUS + {coding_AT3plus, "ATRAC3plus"}, +#endif +#ifdef VGM_USE_FFMPEG + {coding_FFmpeg, "FFmpeg"}, +#endif +}; + +static const layout_info layout_info_list[] = { + {layout_none, "flat (no layout)"}, + {layout_interleave, "interleave"}, + {layout_interleave_shortblock, "interleave with short last block"}, + {layout_interleave_byte, "sub-frame interleave"}, + {layout_mxch_blocked, "MxCh blocked"}, + {layout_ast_blocked, "AST blocked"}, + {layout_halpst_blocked, "HALPST blocked"}, + {layout_xa_blocked, "CD-ROM XA"}, + {layout_ea_blocked, "Electronic Arts Audio Blocks"}, + {layout_eacs_blocked, "Electronic Arts (Old Version) Audio Blocks"}, + {layout_caf_blocked, "CAF blocked"}, + {layout_wsi_blocked, ".wsi blocked"}, + {layout_xvas_blocked, ".xvas blocked"}, + {layout_str_snds_blocked, ".str SNDS blocked"}, + {layout_ws_aud_blocked, "Westwood Studios .aud blocked"}, + {layout_matx_blocked, "Matrix .matx blocked"}, + {layout_de2_blocked, "de2 blocked"}, + {layout_vs_blocked, "vs blocked"}, + {layout_emff_ps2_blocked, "EMFF (PS2) blocked"}, + {layout_emff_ngc_blocked, "EMFF (NGC/WII) blocked"}, + {layout_gsb_blocked, "GSB blocked"}, + {layout_thp_blocked, "THP Movie Audio blocked"}, + {layout_filp_blocked, "FILp blocked"}, + {layout_psx_mgav_blocked, "MGAV blocked"}, + {layout_ps2_adm_blocked, "ADM blocked"}, + {layout_dsp_bdsp_blocked, "DSP blocked"}, + {layout_ivaud_blocked, "GTA IV blocked"}, + {layout_ps2_iab_blocked, "IAB blocked"}, + {layout_ps2_strlr_blocked, "The Bouncer STR blocked"}, + {layout_tra_blocked, "TRA blocked"}, + {layout_acm, "ACM blocked"}, + {layout_mus_acm, "multiple ACM files, ACM blocked"}, + {layout_aix, "AIX interleave, internally 18-byte interleaved"}, + {layout_aax, "AAX blocked, 18-byte interleaved"}, + {layout_scd_int, "SCD multistream interleave"}, +#ifdef VGM_USE_VORBIS + {layout_ogg_vorbis, "Ogg"}, +#endif +#ifdef VGM_USE_MPEG + {layout_fake_mpeg, "MPEG Audio stream with incorrect frame headers"}, + {layout_mpeg, "MPEG Audio stream"}, +#endif +}; + +static const meta_info meta_info_list[] = { + {meta_RSTM, "Nintendo RSTM header"}, + {meta_STRM, "Nintendo STRM header"}, + {meta_ADX_03, "CRI ADX header type 03"}, + {meta_ADX_04, "CRI ADX header type 04"}, + {meta_ADX_05, "CRI ADX header type 05"}, + {meta_AIX, "CRI AIX header"}, + {meta_AAX, "CRI AAX header"}, + {meta_UTF_DSP, "CRI ADPCM_WII header"}, + {meta_DSP_AGSC, "Retro Studios AGSC header"}, + {meta_DSP_CSMP, "Retro Studios CSMP header"}, + {meta_NGC_ADPDTK, "assumed Nintendo ADP by .adp extension and valid first frame"}, + {meta_RSF, "assumed Retro Studios RSF by .rsf extension and valid first bytes"}, + {meta_AFC, "Nintendo AFC header"}, + {meta_AST, "Nintendo AST header"}, + {meta_HALPST, "HAL Laboratory HALPST header"}, + {meta_DSP_RS03, "Retro Studios RS03 header"}, + {meta_DSP_STD, "Standard Nintendo DSP header"}, + {meta_DSP_CSTR, "Namco Cstr header"}, + {meta_GCSW, "GCSW header"}, + {meta_PS2_SShd, "SShd header"}, + {meta_PS2_NPSF, "Namco Production Sound File (NPSF) header"}, + {meta_RWSD, "Nintendo RWSD header (single stream)"}, + {meta_RWAR, "Nintendo RWAR header (single RWAV stream)"}, + {meta_RWAV, "Nintendo RWAV header"}, + {meta_CWAV, "Nintendo CWAV header"}, + {meta_FWAV, "Nintendo FWAV header"}, + {meta_PSX_XA, "RIFF/CDXA header"}, + {meta_PS2_RXW, "RXWS header)"}, + {meta_PS2_RAW, "assumed RAW Interleaved PCM by .int extension"}, + {meta_PS2_OMU, "Alter Echo OMU Header"}, + {meta_DSP_STM, "Nintendo STM header"}, + {meta_PS2_EXST, "EXST header"}, + {meta_PS2_SVAG, "Konami SVAG header"}, + {meta_PS2_MIB, "assumed MIB Interleaved file by .mib extension"}, + {meta_PS2_MIB_MIH, "assumed MIB with MIH Info Header file by .mib+.mih extension"}, + {meta_DSP_MPDSP, "Single DSP header stereo by .mpdsp extension"}, + {meta_PS2_MIC, "assume KOEI MIC file by .mic extension"}, + {meta_DSP_JETTERS, "Double DSP header stereo by _lr.dsp extension"}, + {meta_DSP_MSS, "Double DSP header stereo by .mss extension"}, + {meta_DSP_GCM, "Double DSP header stereo by .gcm extension"}, + {meta_DSP_WII_IDSP, "Wii IDSP Double DSP header"}, + {meta_RSTM_SPM, "Nintendo RSTM header and .brstmspm extension"}, + {meta_RAW, "assumed RAW PCM file by .raw extension"}, + {meta_PS2_VAGi, "Sony VAG Interleaved header (VAGi)"}, + {meta_PS2_VAGp, "Sony VAG Mono header (VAGp)"}, + {meta_PS2_VAGs, "Sony VAG Stereo header (VAGp)"}, + {meta_PS2_VAGm, "Sony VAG Mono header (VAGm)"}, + {meta_PS2_pGAV, "Sony VAG Stereo Little Endian header (pGAV)"}, + {meta_PSX_GMS, "assumed Grandia GMS file by .gms extension"}, + {meta_PS2_STR, "assumed STR + STH File by .str & .sth extension"}, + {meta_PS2_ILD, "ILD header"}, + {meta_PS2_PNB, "assumed PNB (PsychoNauts Bgm File) by .pnb extension"}, + {meta_XBOX_WAVM, "assumed Xbox WAVM file by .wavm extension"}, + {meta_XBOX_RIFF, "Xbox RIFF/WAVE file with 0x0069 Codec ID"}, + {meta_DSP_STR, "assumed Conan Gamecube STR File by .str extension"}, + {meta_EAXA_R2, "Electronic Arts XA R2"}, + {meta_EAXA_R3, "Electronic Arts XA R3"}, + {meta_EA_ADPCM, "Electronic Arts XA R1"}, + {meta_EA_IMA, "Electronic Arts container with IMA blocks"}, + {meta_EAXA_PSX, "Electronic Arts With PSX ADPCM"}, + {meta_EA_PCM, "Electronic Arts With PCM"}, + {meta_CFN, "Namco CAF Header"}, + {meta_PS2_VPK, "VPK Header"}, + {meta_GENH, "GENH Generic Header"}, + {meta_DSP_SADB, "sadb header"}, + {meta_SADL, "sadl header"}, + {meta_PS2_BMDX, "Beatmania .bmdx header"}, + {meta_DSP_WSI, ".wsi header"}, + {meta_AIFC, "Audio Interchange File Format AIFF-C"}, + {meta_AIFF, "Audio Interchange File Format"}, + {meta_STR_SNDS, ".str SNDS SHDR chunk"}, + {meta_WS_AUD, "Westwood Studios .aud header"}, + {meta_WS_AUD_old, "Westwood Studios .aud (old) header"}, + {meta_PS2_IVB, "IVB/BVII header"}, + {meta_PS2_SVS, "Square SVS header"}, + {meta_RIFF_WAVE, "RIFF WAVE header"}, + {meta_RIFF_WAVE_POS, "RIFF WAVE header and .pos for looping"}, + {meta_NWA, "Visual Art's NWA header"}, + {meta_NWA_NWAINFOINI, "Visual Art's NWA header and NWAINFO.INI for looping"}, + {meta_NWA_GAMEEXEINI, "Visual Art's NWA header and Gameexe.ini for looping"}, + {meta_XSS, "Dino Crisis 3 XSS File"}, + {meta_HGC1, "Knights of the Temple 2 hgC1 Header"}, + {meta_AUS, "Capcom AUS Header"}, + {meta_RWS, "RWS Header"}, + {meta_EACS_PC, "EACS Header (PC)"}, + {meta_EACS_PSX, "EACS Header (PSX)"}, + {meta_EACS_SAT, "EACS Header (SATURN)"}, + {meta_SL3, "SL3 Header"}, + {meta_FSB1, "FMOD Sample Bank (FSB1) Header"}, + {meta_FSB2, "FMOD Sample Bank (FSB2) Header"}, + {meta_FSB3, "FMOD Sample Bank (FSB3) Header"}, + {meta_FSB4, "FMOD Sample Bank (FSB4) Header"}, + {meta_FSB5, "FMOD Sample Bank (FSB5) Header"}, + {meta_RWX, "RWX Header"}, + {meta_XWB, "XWB WBND Header"}, + {meta_XA30, "XA30 Header"}, + {meta_MUSC, "MUSC Header"}, + {meta_MUSX_V004, "MUSX / Version 004 Header"}, + {meta_MUSX_V005, "MUSX / Version 005 Header"}, + {meta_MUSX_V006, "MUSX / Version 006 Header"}, + {meta_MUSX_V010, "MUSX / Version 010 Header"}, + {meta_MUSX_V201, "MUSX / Version 201 Header"}, + {meta_LEG, "Legaia 2 - Duel Saga LEG Header"}, + {meta_FILP, "Bio Hazard - Gun Survivor FILp Header"}, + {meta_IKM, "Zwei!! IKM Header"}, + {meta_SFS, "Baroque SFS Header"}, + {meta_DVI, "DVI Header"}, + {meta_KCEY, "KCEYCOMP Header"}, + {meta_BG00, "Falcom BG00 Header"}, + {meta_PS2_RSTM, "Rockstar Games RSTM Header"}, + {meta_ACM, "InterPlay ACM Header"}, + {meta_MUS_ACM, "MUS playlist and multiple InterPlay ACM Headered files"}, + {meta_PS2_KCES, "Konami KCES Header"}, + {meta_PS2_DXH, "Tokobot Plus DXH Header"}, + {meta_PS2_PSH, "Dawn of Mana - Seiken Densetsu 4 PSH Header"}, + {meta_RIFF_WAVE_labl, "RIFF WAVE header with loop markers"}, + {meta_RIFF_WAVE_smpl, "RIFF WAVE header with sample looping info"}, + {meta_RIFX_WAVE, "RIFX WAVE header"}, + {meta_RIFX_WAVE_smpl, "RIFX WAVE header with sample looping info"}, + {meta_XNBm, "XNBm header"}, + {meta_PCM_SCD, "PCM file with custom header (SCD)"}, + {meta_PCM_PS2, "PCM file with custom header (PS2)"}, + {meta_PS2_RKV, "Legacy of Kain - Blood Omen 2 RKV Header"}, + {meta_PS2_PSW, "Rayman Raving Rabbids Riff Container File"}, + {meta_PS2_VAS, "Pro Baseball Spirits 5 VAS Header"}, + {meta_PS2_TEC, "assumed TECMO badflagged stream by .tec extension"}, + {meta_XBOX_WVS, "Metal Arms WVS Header (XBOX)"}, + {meta_NGC_WVS, "Metal Arms WVS Header (GameCube)"}, + {meta_XBOX_STMA, "Midnight Club 2 STMA Header"}, + {meta_XBOX_MATX, "assumed Matrix file by .matx extension"}, + {meta_DE2, "gurumin .de2 with embedded funky RIFF"}, + {meta_VS, "Men in Black VS Header"}, + {meta_DC_STR, "Sega Stream Asset Builder header"}, + {meta_DC_STR_V2, "variant of Sega Stream Asset Builder header"}, + {meta_XBOX_XMU, "XMU header"}, + {meta_XBOX_XVAS, "assumed TMNT file by .xvas extension"}, + {meta_PS2_XA2, "Acclaim XA2 Header"}, + {meta_DC_IDVI, "IDVI Header"}, + {meta_NGC_YMF, "YMF DSP Header"}, + {meta_PS2_CCC, "CCC Header"}, + {meta_PSX_FAG, "FAG Header"}, + {meta_PS2_MIHB, "Merged MIH+MIB"}, + {meta_DSP_WII_MUS, "mus header"}, + {meta_WII_SNG, "SNG DSP Header"}, + {meta_RSD2VAG, "RSD2/VAG Header"}, + {meta_RSD2PCMB, "RSD2/PCMB Header"}, + {meta_RSD2XADP, "RSD2/XADP Header"}, + {meta_RSD3VAG, "RSD3/VAG Header"}, + {meta_RSD3GADP, "RSD3/GADP Header"}, + {meta_RSD3PCM, "RSD3/PCM Header"}, + {meta_RSD3PCMB, "RSD3/PCMB Header"}, + {meta_RSD4PCMB, "RSD4/PCMB Header"}, + {meta_RSD4PCM, "RSD4/PCM Header"}, + {meta_RSD4RADP, "RSD4/RADP Header"}, + {meta_RSD4VAG, "RSD4/VAG Header"}, + {meta_RSD6XADP, "RSD6/XADP Header"}, + {meta_RSD6VAG, "RSD6/VAG Header"}, + {meta_RSD6WADP, "RSD6/WADP Header"}, + {meta_RSD6RADP, "RSD6/RADP Header"}, + {meta_DC_ASD, "ASD Header"}, + {meta_NAOMI_SPSD, "SPSD Header"}, + {meta_FFXI_BGW, "BGW BGMStream header"}, + {meta_FFXI_SPW, "SPW SeWave header"}, + {meta_PS2_ASS, "ASS Header"}, + {meta_IDSP, "IDSP Header"}, + {meta_WAA_WAC_WAD_WAM, "WAA/WAC/WAD/WAM RIFF Header"}, + {meta_PS2_SEG, "SEG (PS2) Header"}, + {meta_XBOX_SEG, "SEG (XBOX) Header"}, + {meta_NDS_STRM_FFTA2, "Final Fantasy Tactics A2 RIFF Header"}, + {meta_STR_ASR, "Donkey Kong Jet Race KNON/WII Header"}, + {meta_ZWDSP, "Zack and Wiki custom DSP Header"}, + {meta_GCA, "GCA DSP Header"}, + {meta_SPT_SPD, "SPT+SPD DSP Header"}, + {meta_ISH_ISD, "ISH+ISD DSP Header"}, + {meta_GSP_GSB, "Tecmo GSP+GSB Header"}, + {meta_YDSP, "Yuke's DSP (YDSP) Header"}, + {meta_MSVP, "MSVP Header"}, + {meta_NGC_SSM, "SSM DSP Header"}, + {meta_PS2_JOE, "Disney/Pixar JOE Header"}, + {meta_VGS, "Guitar Hero Encore Rocks the 80's Header"}, + {meta_DC_DCSW_DCS, "Evil Twin DCS file with helper"}, + {meta_WII_SMP, "SMP DSP Header"}, + {meta_EMFF_PS2, "Eidos Music File Format Header"}, + {meta_EMFF_NGC, "Eidos Music File Format Header"}, + {meta_THP, "THP Movie File Format Header"}, + {meta_STS_WII, "Shikigami no Shiro (WII) Header"}, + {meta_PS2_P2BT, "Pop'n'Music 7 Header"}, + {meta_PS2_GBTS, "Pop'n'Music 9 Header"}, + {meta_NGC_DSP_IADP, "IADP Header"}, + {meta_RSTM_shrunken, "Nintendo RSTM header, corrupted by Atlus"}, + {meta_RIFF_WAVE_MWV, "RIFF WAVE header with .mwv flavoring"}, + {meta_RIFF_WAVE_SNS, "RIFF WAVE header with .sns flavoring"}, + {meta_FFCC_STR, "Final Fantasy: Crystal Chronicles STR header"}, + {meta_SAT_BAKA, "BAKA header from Crypt Killer"}, + {meta_NDS_SWAV, "SWAV Header"}, + {meta_PS2_VSF, "Musashi: Samurai Legend VSF Header"}, + {meta_NDS_RRDS, "Ridger Racer DS Header"}, + {meta_PS2_TK5, "Tekken 5 Stream Header"}, + {meta_PS2_SND, "Might and Magic SSND Header"}, + {meta_PS2_VSF_TTA, "VSF with SMSS Header"}, + {meta_ADS, "dhSS Header"}, + {meta_WII_STR, "HOTD Overkill - STR+STH WII Header"}, + {meta_PS2_MCG, "Gunvari MCG Header"}, + {meta_ZSD, "ZSD Header"}, + {meta_RedSpark, "RedSpark Header"}, + {meta_PC_IVAUD, "assumed GTA IV Audio file by .ivaud extension"}, + {meta_DSP_WII_WSD, "Standard Nintendo DSP headers in .wsd"}, + {meta_WII_NDP, "Vertigo NDP Header"}, + {meta_PS2_SPS, "Ape Escape 2 SPS Header"}, + {meta_PS2_XA2_RRP, "Acclaim XA2 Header"}, + {meta_NDS_HWAS, "NDS 'HWAS' Header"}, + {meta_NGC_LPS, "Rave Master LPS Header"}, + {meta_NAOMI_ADPCM, "NAOMI/NAOMI2 Arcade games ADPCM header"}, + {meta_SD9, "beatmania IIDX SD9 header"}, + {meta_2DX9, "beatmania IIDX 2DX9 header"}, + {meta_DSP_YGO, "Konami custom DSP Header"}, + {meta_PS2_VGV, "Rune: Viking Warlord VGV Header"}, + {meta_NGC_GCUB, "GCub Header"}, + {meta_NGC_SCK_DSP, "The Scorpion King SCK Header"}, + {meta_NGC_SWD, "PSF + Standard DSP Headers"}, + {meta_CAFF, "Apple Core Audio Format Header"}, + {meta_PC_MXST, "Lego Island MxSt Header"}, + {meta_PC_SOB_SAB, "Worms 4: Mayhem SOB/SAB Header"}, + {meta_MAXIS_XA, "Maxis XAI/XAJ Header"}, + {meta_EXAKT_SC, "assumed Activision / EXAKT SC by extension"}, + {meta_WII_BNS, "Nintendo BNS header"}, + {meta_WII_WAS, "WAS (iSWS) DSP header"}, + {meta_XBOX_HLWAV, "Half Life 2 bgm header"}, + {meta_STX, "Nintendo .stx header"}, + {meta_PS2_STM, "Red Dead Revolver .stm (.ps2stm)"}, + {meta_MYSPD, "U-Sing .myspd header"}, + {meta_HIS, "Her Interactive Sound header"}, + {meta_PS2_AST, "KOEI AST header"}, + {meta_CAPDSP, "Capcom custom DSP header"}, + {meta_DMSG, "RIFF/DMSGsegh header"}, + {meta_PONA_3DO, "Policenauts BGM header"}, + {meta_PONA_PSX, "Policenauts BGM header"}, + {meta_NGC_DSP_AAAP, "Double standard dsp header in 'AAAp'"}, + {meta_NGC_DSP_KONAMI, "Konami dsp header"}, + {meta_PS2_STER, "STER Header"}, + {meta_BNSF, "Namco Bandai BNSF header"}, + {meta_PS2_WB, "Shooting Love. ~TRIZEAL~ WB header"}, + {meta_S14, "assumed Polycom Siren 14 by .s14 extension"}, + {meta_SSS, "assumed Polycom Siren 14 by .sss extension"}, + {meta_PS2_GCM, "GCM 'MCG' Header"}, + {meta_PS2_SMPL, "Homura 'SMPL' Header"}, + {meta_PS2_MSA, "Psyvariar -Complete Edition- MSA header"}, + {meta_PC_SMP, "Ghostbusters .smp Header"}, + {meta_NGC_PDT, "PDT DSP header"}, + {meta_NGC_BO2, "Blood Omen 2 DSP header"}, + {meta_P3D, "Prototype P3D Header"}, + {meta_PS2_TK1, "Tekken TK5STRM1 Header"}, + {meta_PS2_ADSC, "ADSC Header"}, + {meta_NGC_DSP_MPDS, "MPDS DSP header"}, + {meta_DSP_STR_IG, "Infogrames dual dsp header"}, + {meta_PSX_MGAV, "Electronic Arts RVWS header"}, + {meta_PS2_B1S, "B1S header"}, + {meta_PS2_WAD, "WAD header"}, + {meta_DSP_XIII, "XIII dsp header"}, + {meta_NGC_DSP_STH_STR, "STH dsp header"}, + {meta_DSP_CABELAS, "Cabelas games dsp header"}, + {meta_PS2_LPCM, "LPCM header"}, + {meta_PS2_VMS, "VMS Header"}, + {meta_PS2_XAU, "XAU Header"}, + {meta_GH3_BAR, "Guitar Hero III Mobile .bar"}, + {meta_FFW, "Freedom Fighters BGM header"}, + {meta_DSP_DSPW, "DSPW dsp header"}, + {meta_PS2_JSTM, "JSTM Header"}, + {meta_PS3_XVAG, "XVAG Header"}, + {meta_PS3_CPS, "CPS Header"}, + {meta_SQEX_SCD, "Square-Enix SCD"}, + {meta_NGC_NST_DSP, "Animaniacs NST header"}, + {meta_BAF, ".baf WAVE header"}, + {meta_PS3_MSF, "PS3 MSF header"}, + {meta_NUB_VAG, "VAG (NUB) header"}, + {meta_PS3_PAST, "SNDP header"}, + {meta_PS3_SGDX, "SGXD header"}, + {meta_NGCA, "NGCA header"}, + {meta_WII_RAS, "RAS header"}, + {meta_PS2_SPM, "SPM header"}, + {meta_X360_TRA, "assumed DefJam Rapstar Audio File by .tra extension"}, + {meta_PS2_VGS, "Princess Soft VGS header"}, + {meta_PS2_IAB, "IAB header"}, + {meta_PS2_STRLR, "STR L/R header"}, + {meta_LSF_N1NJ4N, ".lsf !n1nj4n header"}, + {meta_VAWX, "feelplus VAWX header"}, + {meta_PC_SNDS, "assumed Heavy Iron IMA by .snds extension"}, + {meta_PS2_WMUS, "assumed The Warriors Sony ADPCM by .wmus extension"}, + {meta_HYPERSCAN_KVAG, "Mattel Hyperscan KVAG"}, + {meta_IOS_PSND, "PSND Header"}, + {meta_BOS_ADP, "ADP! header"}, + {meta_EB_SFX, "Excitebots .sfx header"}, + {meta_EB_SF0, "assumed Excitebots .sf0 by extension"}, + {meta_PS3_KLBS, "klBS Header"}, + {meta_PS2_MTAF, "Konami MTAF header"}, + {meta_PS2_VAG1, "Konami VAG Mono header (VAG1)"}, + {meta_PS2_VAG2, "Konami VAG Stereo header (VAG2)"}, + {meta_TUN, "TUN 'ALP' header"}, + {meta_WPD, "WPD 'DPW' header"}, + {meta_MN_STR, "Mini Ninjas 'STR' header"}, + {meta_PS2_MSS, "Guerilla MSCC header"}, + {meta_PS2_HSF, "Lowrider 'HSF' header"}, + {meta_PS3_IVAG, "PS3 'IVAG' Header"}, + {meta_PS2_2PFS, "PS2 '2PFS' Header"}, + {meta_RSD6OOGV, "RSD6/OOGV Header"}, + {meta_UBI_CKD, "CKD 'RIFF' Header"}, + {meta_PS2_VBK, "PS2 VBK Header"}, + {meta_OTM, "Otomedius OTM Header"}, + {meta_CSTM, "Nintendo 3DS CSTM Header"}, + {meta_FSTM, "Nintendo Wii U FSTM Header"}, + {meta_KT_WIIBGM, "Koei Tecmo WiiBGM Header"}, + {meta_3DS_IDSP, "Nintendo IDSP Header"}, + {meta_WIIU_BTSND, "Wii U Menu Boot Sound"}, + {meta_MCA, "Capcom MCA Header"}, + {meta_XB3D_ADX, "Xenoblade 3D ADX Header"}, + {meta_HCA, "CRI MiddleWare HCA Header"}, + {meta_PS2_SVAG_SNK, "SNK SVAG header"}, + {meta_PS2_VDS_VDM, "Graffiti Kingdom VDS/VDM Header"}, + {meta_X360_CXS, "CXS Header"}, +#ifdef VGM_USE_VORBIS + {meta_OGG_VORBIS, "Ogg Vorbis"}, + {meta_OGG_SLI, "Ogg Vorbis with .sli (start,length) for looping"}, + {meta_OGG_SLI2, "Ogg Vorbis with .sli (from,to) for looping"}, + {meta_OGG_SFL, "Ogg Vorbis with SFPL for looping"}, + {meta_OGG_UM3, "Ogg Vorbis, Ultramarine3 'encryption'"}, + {meta_OGG_KOVS, "Ogg Vorbis, KOVS header"}, + {meta_OGG_PSYCH, "Ogg Vorbis, Psychic Software obfuscation"}, + #endif +#ifdef VGM_USE_MPEG + {meta_AHX, "CRI AHX header"}, +#endif +#ifdef VGM_USE_MP4V2 + {meta_MP4, "AAC header"}, +#endif +#ifdef VGM_USE_FFMPEG + {meta_FFmpeg, "FFmpeg supported file format"}, +#endif +}; + + +const char * get_vgmstream_coding_description(coding_t coding_type) { + int i, list_length; + + list_length = sizeof(coding_info_list) / sizeof(coding_info); + for (i=0; i < list_length; i++) { + if (coding_info_list[i].type == coding_type) + return coding_info_list[i].description; + } + + return NULL; +} +const char * get_vgmstream_layout_description(layout_t layout_type) { + int i, list_length; + + list_length = sizeof(layout_info_list) / sizeof(layout_info); + for (i=0; i < list_length; i++) { + if (layout_info_list[i].type == layout_type) + return layout_info_list[i].description; + } + + return NULL; +} +const char * get_vgmstream_meta_description(meta_t meta_type) { + int i, list_length; + + list_length = sizeof(meta_info_list) / sizeof(meta_info); + for (i=0; i < list_length; i++) { + if (meta_info_list[i].type == meta_type) + return meta_info_list[i].description; + } + + return NULL; +} diff --git a/Frameworks/vgmstream/vgmstream/src/formats.h b/Frameworks/vgmstream/vgmstream/src/formats.h new file mode 100644 index 000000000..2fe6d910e --- /dev/null +++ b/Frameworks/vgmstream/vgmstream/src/formats.h @@ -0,0 +1,19 @@ +/* + * formats.h - utils to parse supported formats + */ +#ifndef _FORMATS_H_ +#define _FORMATS_H_ + +#include "vgmstream.h" + +/* rough number of chars counting all extensions (actually <1500 and extra space) */ +#define VGM_EXTENSION_LIST_CHAR_SIZE 2000 + +const char ** vgmstream_get_formats(); +int vgmstream_get_formats_length(); + +const char * get_vgmstream_coding_description(coding_t coding_type); +const char * get_vgmstream_layout_description(layout_t layout_type); +const char * get_vgmstream_meta_description(meta_t meta_type); + +#endif /* _FORMATS_H_ */ diff --git a/Frameworks/vgmstream/vgmstream/src/layout/gsb_blocked.c b/Frameworks/vgmstream/vgmstream/src/layout/gsb_blocked.c index 80ce3eef1..eccd40d8d 100644 --- a/Frameworks/vgmstream/vgmstream/src/layout/gsb_blocked.c +++ b/Frameworks/vgmstream/vgmstream/src/layout/gsb_blocked.c @@ -4,15 +4,25 @@ /* set up for the block at the given offset */ void gsb_block_update(off_t block_offset, VGMSTREAM * vgmstream) { int i; + int block_header_size = 0x20; /*from header*/ + int block_channel_size = 0x8000; /*from header, per channel*/ vgmstream->current_block_offset = block_offset; - vgmstream->current_block_size = 0x10000; /*read_32bitLE( - vgmstream->current_block_offset+0x10, - vgmstream->ch[0].streamfile); */ - vgmstream->next_block_offset = vgmstream->current_block_offset + vgmstream->current_block_size+0x20; - vgmstream->current_block_size/=vgmstream->channels; + vgmstream->current_block_size = block_channel_size; + vgmstream->next_block_offset = vgmstream->current_block_offset + + block_header_size + + block_channel_size * vgmstream->channels; for (i=0;ichannels;i++) { - vgmstream->ch[i].offset = vgmstream->current_block_offset+0x20+(vgmstream->current_block_size*i); + int interleave; + int filesize = vgmstream->ch[i].streamfile->get_size(vgmstream->ch[i].streamfile); + if (vgmstream->next_block_offset > filesize) + interleave = (filesize - vgmstream->current_block_offset - block_header_size) / vgmstream->channels; + else + interleave = block_channel_size; + + vgmstream->ch[i].offset = vgmstream->current_block_offset + + block_header_size + + (interleave*i); } } diff --git a/Frameworks/vgmstream/vgmstream/src/layout/layout.h b/Frameworks/vgmstream/vgmstream/src/layout/layout.h index 599e93538..4cb1df782 100644 --- a/Frameworks/vgmstream/vgmstream/src/layout/layout.h +++ b/Frameworks/vgmstream/vgmstream/src/layout/layout.h @@ -4,6 +4,7 @@ #include "../streamtypes.h" #include "../vgmstream.h" +/* blocked layouts */ void ast_block_update(off_t block_ofset, VGMSTREAM * vgmstream); void mxch_block_update(off_t block_ofset, VGMSTREAM * vgmstream); @@ -46,6 +47,19 @@ void filp_block_update(off_t block_offset, VGMSTREAM * vgmstream); void ivaud_block_update(off_t block_offset, VGMSTREAM * vgmstream); +void psx_mgav_block_update(off_t block_offset, VGMSTREAM * vgmstream); + +void ps2_adm_block_update(off_t block_offset, VGMSTREAM * vgmstream); + +void dsp_bdsp_block_update(off_t block_offset, VGMSTREAM * vgmstream); + +void tra_block_update(off_t block_offset, VGMSTREAM * vgmstream); + +void ps2_iab_block_update(off_t block_offset, VGMSTREAM * vgmstream); + +void ps2_strlr_block_update(off_t block_offset, VGMSTREAM * vgmstream); + +/* other layouts */ void render_vgmstream_interleave(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream); void render_vgmstream_nolayout(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream); @@ -60,20 +74,4 @@ void render_vgmstream_aax(sample * buffer, int32_t sample_count, VGMSTREAM * vgm void render_vgmstream_scd_int(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream); -void psx_mgav_block_update(off_t block_offset, VGMSTREAM * vgmstream); - -void ps2_adm_block_update(off_t block_offset, VGMSTREAM * vgmstream); - -void dsp_bdsp_block_update(off_t block_offset, VGMSTREAM * vgmstream); - -void tra_block_update(off_t block_offset, VGMSTREAM * vgmstream); - -void mtaf_block_update(off_t block_offset, VGMSTREAM * vgmstream); - -void ps2_iab_block_update(off_t block_offset, VGMSTREAM * vgmstream); - -void ps2_strlr_block_update(off_t block_offset, VGMSTREAM * vgmstream); - -void ps2_mtaf_block_update(off_t block_ofset, VGMSTREAM * vgmstream); - #endif diff --git a/Frameworks/vgmstream/vgmstream/src/meta/2dx.c b/Frameworks/vgmstream/vgmstream/src/meta/2dx.c index ebe39903a..3993fa39b 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/2dx.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/2dx.c @@ -41,7 +41,7 @@ VGMSTREAM * init_vgmstream_2dx(STREAMFILE *streamFile) { vgmstream->num_samples = read_32bitLE(0x66,streamFile); vgmstream->layout_type = layout_none; vgmstream->interleave_block_size = read_16bitLE(0x38,streamFile); - vgmstream->meta_type = meta_2DX; + vgmstream->meta_type = meta_2DX9; /* open the file for reading */ { diff --git a/Frameworks/vgmstream/vgmstream/src/meta/Cstr.c b/Frameworks/vgmstream/vgmstream/src/meta/Cstr.c index 917f2a9df..418694979 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/Cstr.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/Cstr.c @@ -273,12 +273,6 @@ VGMSTREAM * init_vgmstream_Cstr(STREAMFILE *streamFile) { for (i=0;i<16;i++) vgmstream->ch[1].adpcm_coef[i]=read_16bitBE(0x9c+i*2,streamFile); } -#ifdef DEBUG - vgmstream->ch[0].loop_history1 = read_16bitBE(0x66,streamFile); - vgmstream->ch[0].loop_history2 = read_16bitBE(0x68,streamFile); - vgmstream->ch[1].loop_history1 = read_16bitBE(0xc6,streamFile); - vgmstream->ch[1].loop_history2 = read_16bitBE(0xc8,streamFile); -#endif /* open the file for reading by each channel */ { diff --git a/Frameworks/vgmstream/vgmstream/src/meta/baf.c b/Frameworks/vgmstream/vgmstream/src/meta/baf.c index cbd573156..dff1503fc 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/baf.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/baf.c @@ -1,36 +1,41 @@ #include "meta.h" -#include "../util.h" /* .BAF - Bizarre Creations (Blur, James Bond 007: Blood Stone, etc) */ - VGMSTREAM * init_vgmstream_baf(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - off_t WAVE_size,DATA_size; + off_t WAVE_size, DATA_size; off_t start_offset; long sample_count; + int sample_rate; const int frame_size = 33; - const int frame_samples = 64; + const int frame_samples = (frame_size-1) * 2; int channels; int loop_flag = 0; - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("baf",filename_extension(filename))) goto fail; + /* check extensions */ + if ( !check_extensions(streamFile, "baf") ) + goto fail; /* check WAVE */ - if (read_32bitBE(0,streamFile) != 0x57415645) goto fail; + if (read_32bitBE(0,streamFile) != 0x57415645) /* "WAVE" */ + goto fail; WAVE_size = read_32bitBE(4,streamFile); - if (WAVE_size != 0x4c) goto fail; + if (WAVE_size != 0x4c) /* && WAVE_size != 0x50*/ + goto fail; /* check for DATA after WAVE */ - if (read_32bitBE(WAVE_size,streamFile) != 0x44415441) goto fail; + if (read_32bitBE(WAVE_size,streamFile) != 0x44415441) /* "DATA"*/ + goto fail; /* check that WAVE size is data size */ DATA_size = read_32bitBE(0x30,streamFile); if (read_32bitBE(WAVE_size+4,streamFile)-8 != DATA_size) goto fail; + /*if (WAVE_size == 0x50) sample_count = DATA_size * frame_samples / frame_size / channels;*/ sample_count = read_32bitBE(0x44,streamFile); + /*if (WAVE_size == 0x50) sample_rate = read_32bitBE(0x3c,streamFile);*/ + sample_rate = read_32bitBE(0x40,streamFile); + /* unsure how to detect channel count, so use a hack */ channels = (long long)DATA_size / frame_size * frame_samples / sample_count; @@ -40,33 +45,22 @@ VGMSTREAM * init_vgmstream_baf(STREAMFILE *streamFile) { /* fill in the vital statistics */ start_offset = WAVE_size + 8; - vgmstream->sample_rate = read_32bitBE(0x40,streamFile); + vgmstream->sample_rate = sample_rate; vgmstream->num_samples = sample_count; - vgmstream->coding_type = coding_BAF_ADPCM; + vgmstream->coding_type = coding_PSX_cfg; vgmstream->layout_type = layout_interleave; vgmstream->interleave_block_size = frame_size; vgmstream->meta_type = meta_BAF; - /* open the file for reading by each channel */ - { - int i; - STREAMFILE *file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - if (!file) goto fail; - for (i=0;ich[i].streamfile = file; - - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset+vgmstream->interleave_block_size*i; - - } - } + /* open the file for reading */ + if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) ) + goto fail; return vgmstream; - /* clean up anything we may have opened */ fail: - if (vgmstream) close_vgmstream(vgmstream); + close_vgmstream(vgmstream); return NULL; } diff --git a/Frameworks/vgmstream/vgmstream/src/meta/bcstm.c b/Frameworks/vgmstream/vgmstream/src/meta/bcstm.c index e210682b2..54307f73d 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/bcstm.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/bcstm.c @@ -7,13 +7,14 @@ VGMSTREAM * init_vgmstream_bcstm(STREAMFILE *streamFile) { coding_t coding_type; - off_t head_offset; - off_t seek_offset; + off_t info_offset = 0, seek_offset = 0, data_offset = 0; + uint16_t temp_id; int codec_number; int channel_count; int loop_flag; - int ima = 0; + int i, ima = 0; off_t start_offset; + int section_count; /* check extension, case insensitive */ streamFile->get_name(streamFile, filename, sizeof(filename)); @@ -24,24 +25,46 @@ VGMSTREAM * init_vgmstream_bcstm(STREAMFILE *streamFile) { /* check header */ if ((uint32_t)read_32bitBE(0, streamFile) != 0x4353544D) /* "CSTM" */ goto fail; - if ((uint32_t)read_32bitBE(4, streamFile) != 0xFFFE4000) + if ((uint16_t)read_16bitLE(4, streamFile) != 0xFEFF) goto fail; + section_count = read_16bitLE(0x10, streamFile); + for (i = 0; i < section_count; i++) { + temp_id = read_16bitLE(0x14 + i * 0xc, streamFile); + switch(temp_id) { + case 0x4000: + info_offset = read_32bitLE(0x18 + i * 0xc, streamFile); + /* size_t info_size = read_32bitLE(0x1c + i * 0xc, streamFile); */ + break; + case 0x4001: + seek_offset = read_32bitLE(0x18 + i * 0xc, streamFile); + /* size_t seek_size = read_32bitLE(0x1c + i * 0xc, streamFile); */ + break; + case 0x4002: + data_offset = read_32bitLE(0x18 + i * 0xc, streamFile); + /* size_t data_size = read_32bitLE(0x1c + i * 0xc, streamFile); */ + break; + case 0x4003: + /* off_t regn_offset = read_32bitLE(0x18 + i * 0xc, streamFile); */ + /* size_t regn_size = read_32bitLE(0x1c + i * 0xc, streamFile); */ + break; + case 0x4004: + /* off_t pdat_offset = read_32bitLE(0x18 + i * 0xc, streamFile); */ + /* size_t pdat_size = read_32bitLE(0x1c + i * 0xc, streamFile); */ + break; + default: + break; + } + } - - /* get head offset, check */ - head_offset = read_32bitLE(0x18, streamFile); - if ((uint32_t)read_32bitBE(head_offset, streamFile) != 0x494E464F) /* "INFO" */ - goto fail; - - seek_offset = read_32bitLE(0x24, streamFile); /* check type details */ - codec_number = read_8bit(head_offset + 0x20, streamFile); - loop_flag = read_8bit(head_offset + 0x21, streamFile); - channel_count = read_8bit(head_offset + 0x22, streamFile); + if (info_offset == 0) goto fail; + codec_number = read_8bit(info_offset + 0x20, streamFile); + loop_flag = read_8bit(info_offset + 0x21, streamFile); + channel_count = read_8bit(info_offset + 0x22, streamFile); switch (codec_number) { case 0: @@ -51,6 +74,7 @@ VGMSTREAM * init_vgmstream_bcstm(STREAMFILE *streamFile) { coding_type = coding_PCM16LE; break; case 2: + if (seek_offset == 0) goto fail; if ((uint32_t)read_32bitBE(seek_offset, streamFile) != 0x5345454B) { /* "SEEK" If this header doesn't exist, assuming that the file is IMA */ ima = 1; coding_type = coding_INT_IMA; @@ -70,12 +94,12 @@ VGMSTREAM * init_vgmstream_bcstm(STREAMFILE *streamFile) { if (!vgmstream) goto fail; /* fill in the vital statistics */ - vgmstream->num_samples = read_32bitLE(head_offset + 0x2c, streamFile); - vgmstream->sample_rate = (uint16_t)read_16bitLE(head_offset + 0x24, streamFile); + vgmstream->num_samples = read_32bitLE(info_offset + 0x2c, streamFile); + vgmstream->sample_rate = (uint16_t)read_16bitLE(info_offset + 0x24, streamFile); /* channels and loop flag are set by allocate_vgmstream */ if (ima) //Shift the loop points back slightly to avoid stupid pops in some IMA streams due to DC offsetting { - vgmstream->loop_start_sample = read_32bitLE(head_offset + 0x28, streamFile); + vgmstream->loop_start_sample = read_32bitLE(info_offset + 0x28, streamFile); if (vgmstream->loop_start_sample > 10000) { vgmstream->loop_start_sample -= 5000; @@ -86,7 +110,7 @@ VGMSTREAM * init_vgmstream_bcstm(STREAMFILE *streamFile) { } else { - vgmstream->loop_start_sample = read_32bitLE(head_offset + 0x28, streamFile); + vgmstream->loop_start_sample = read_32bitLE(info_offset + 0x28, streamFile); vgmstream->loop_end_sample = vgmstream->num_samples; } @@ -105,13 +129,13 @@ VGMSTREAM * init_vgmstream_bcstm(STREAMFILE *streamFile) { if (ima) vgmstream->interleave_block_size = 0x200; else { - vgmstream->interleave_block_size = read_32bitLE(head_offset + 0x34, streamFile); - vgmstream->interleave_smallblock_size = read_32bitLE(head_offset + 0x44, streamFile); + vgmstream->interleave_block_size = read_32bitLE(info_offset + 0x34, streamFile); + vgmstream->interleave_smallblock_size = read_32bitLE(info_offset + 0x44, streamFile); } if (vgmstream->coding_type == coding_NGC_DSP) { off_t coef_offset; - off_t tempoffset = head_offset; + off_t tempoffset = info_offset; int foundcoef = 0; int i, j; int coef_spacing = 0x2E; @@ -120,7 +144,7 @@ VGMSTREAM * init_vgmstream_bcstm(STREAMFILE *streamFile) { { if ((uint32_t)read_32bitLE(tempoffset, streamFile) == 0x00004102) { - coef_offset = read_32bitLE(tempoffset + 4, streamFile) + tempoffset + (channel_count * 8) - 4 - head_offset; + coef_offset = read_32bitLE(tempoffset + 4, streamFile) + tempoffset + (channel_count * 8) - 4 - info_offset; foundcoef++; break; } @@ -129,17 +153,18 @@ VGMSTREAM * init_vgmstream_bcstm(STREAMFILE *streamFile) { for (j = 0; jchannels; j++) { for (i = 0; i<16; i++) { - vgmstream->ch[j].adpcm_coef[i] = read_16bitLE(head_offset + coef_offset + j*coef_spacing + i * 2, streamFile); + vgmstream->ch[j].adpcm_coef[i] = read_16bitLE(info_offset + coef_offset + j*coef_spacing + i * 2, streamFile); } } } - if (ima) // No SEEK (ADPC) header, so just start where the SEEK header is supposed to be. + if (ima) { // No SEEK (ADPC) header, so just start where the SEEK header is supposed to be. + if (seek_offset == 0) goto fail; start_offset = seek_offset; - else if (vgmstream->coding_type == coding_NGC_DSP) - start_offset = read_32bitLE(0x30, streamFile) + 0x20; - else // No SEEK header and not IMA, so just start after the DATA header - start_offset = 0x120; + } else { + if (data_offset == 0) goto fail; + start_offset = data_offset + 0x20; + } diff --git a/Frameworks/vgmstream/vgmstream/src/meta/bfstm.c b/Frameworks/vgmstream/vgmstream/src/meta/bfstm.c index d3094d4dd..449abea81 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/bfstm.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/bfstm.c @@ -1,5 +1,6 @@ #include "meta.h" #include "../util.h" +#include "../stack_alloc.h" VGMSTREAM * init_vgmstream_bfstm(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; @@ -7,16 +8,16 @@ VGMSTREAM * init_vgmstream_bfstm(STREAMFILE *streamFile) { coding_t coding_type; - off_t head_offset; - off_t seek_offset; - off_t data_offset; + off_t info_offset = 0, seek_offset = 0, data_offset = 0; + uint16_t temp_id; int codec_number; int channel_count; int loop_flag; + int i, j; int ima = 0; off_t start_offset; - int founddata; off_t tempoffset1; + int section_count; /* check extension, case insensitive */ streamFile->get_name(streamFile, filename, sizeof(filename)); @@ -30,33 +31,45 @@ VGMSTREAM * init_vgmstream_bfstm(STREAMFILE *streamFile) { if ((uint16_t)read_16bitBE(4, streamFile) != 0xFEFF) goto fail; - founddata = 0; - tempoffset1 = 0x8; - - while (!(founddata)) - { - if ((uint32_t)read_32bitBE(tempoffset1, streamFile) == 0x40020000) - { - data_offset = read_32bitBE(tempoffset1 + 4, streamFile); - founddata++; - break; + section_count = read_16bitBE(0x10, streamFile); + for (i = 0; i < section_count; i++) { + temp_id = read_16bitBE(0x14 + i * 0xc, streamFile); + switch(temp_id) { + case 0x4000: + info_offset = read_32bitBE(0x18 + i * 0xc, streamFile); + /* size_t info_size = read_32bitBE(0x1c + i * 0xc, streamFile); */ + break; + case 0x4001: + seek_offset = read_32bitBE(0x18 + i * 0xc, streamFile); + /* size_t seek_size = read_32bitBE(0x1c + i * 0xc, streamFile); */ + break; + case 0x4002: + data_offset = read_32bitBE(0x18 + i * 0xc, streamFile); + /* size_t data_size = read_32bitBE(0x1c + i * 0xc, streamFile); */ + break; + case 0x4003: + /* off_t regn_offset = read_32bitBE(0x18 + i * 0xc, streamFile); */ + /* size_t regn_size = read_32bitBE(0x1c + i * 0xc, streamFile); */ + break; + case 0x4004: + /* off_t pdat_offset = read_32bitBE(0x18 + i * 0xc, streamFile); */ + /* size_t pdat_size = read_32bitBE(0x1c + i * 0xc, streamFile); */ + break; + default: + break; } - tempoffset1++; } - /* get head offset, check */ - head_offset = read_32bitBE(0x18, streamFile); - if ((uint32_t)read_32bitBE(head_offset, streamFile) != 0x494E464F) /* "INFO" */ + if (info_offset == 0) goto fail; + if ((uint32_t)read_32bitBE(info_offset, streamFile) != 0x494E464F) /* "INFO" */ goto fail; - seek_offset = read_32bitBE(0x24, streamFile); - /* check type details */ - codec_number = read_8bit(head_offset + 0x20, streamFile); - loop_flag = read_8bit(head_offset + 0x21, streamFile); - channel_count = read_8bit(head_offset + 0x22, streamFile); + codec_number = read_8bit(info_offset + 0x20, streamFile); + loop_flag = read_8bit(info_offset + 0x21, streamFile); + channel_count = read_8bit(info_offset + 0x22, streamFile); switch (codec_number) { case 0: @@ -80,12 +93,12 @@ VGMSTREAM * init_vgmstream_bfstm(STREAMFILE *streamFile) { if (!vgmstream) goto fail; /* fill in the vital statistics */ - vgmstream->num_samples = read_32bitBE(head_offset + 0x2c, streamFile); - vgmstream->sample_rate = (uint16_t)read_16bitBE(head_offset + 0x26, streamFile); + vgmstream->num_samples = read_32bitBE(info_offset + 0x2c, streamFile); + vgmstream->sample_rate = (uint16_t)read_16bitBE(info_offset + 0x26, streamFile); /* channels and loop flag are set by allocate_vgmstream */ if (ima) //Shift the loop points back slightly to avoid stupid pops in some IMA streams due to DC offsetting { - vgmstream->loop_start_sample = read_32bitBE(head_offset + 0x28, streamFile); + vgmstream->loop_start_sample = read_32bitBE(info_offset + 0x28, streamFile); if (vgmstream->loop_start_sample > 10000) { vgmstream->loop_start_sample -= 5000; @@ -96,7 +109,7 @@ VGMSTREAM * init_vgmstream_bfstm(STREAMFILE *streamFile) { } else { - vgmstream->loop_start_sample = read_32bitBE(head_offset + 0x28, streamFile); + vgmstream->loop_start_sample = read_32bitBE(info_offset + 0x28, streamFile); vgmstream->loop_end_sample = vgmstream->num_samples; } @@ -115,41 +128,36 @@ VGMSTREAM * init_vgmstream_bfstm(STREAMFILE *streamFile) { if (ima) vgmstream->interleave_block_size = 0x200; else { - vgmstream->interleave_block_size = read_32bitBE(head_offset + 0x34, streamFile); - vgmstream->interleave_smallblock_size = read_32bitBE(head_offset + 0x44, streamFile); + vgmstream->interleave_block_size = read_32bitBE(info_offset + 0x34, streamFile); + vgmstream->interleave_smallblock_size = read_32bitBE(info_offset + 0x44, streamFile); } if (vgmstream->coding_type == coding_NGC_DSP) { - off_t coef_offset; - off_t tempoffset2 = head_offset; - int foundcoef = 0; - int i, j; - int coef_spacing = 0x2E; - - while (!(foundcoef)) - { - if ((uint32_t)read_32bitBE(tempoffset2, streamFile) == 0x41020000) - { - coef_offset = read_32bitBE(tempoffset2 + 4, streamFile) + tempoffset2 + (channel_count * 8) - 4 - head_offset; - foundcoef++; - break; - } - tempoffset2++; - } - + off_t coeff_ptr_table; + VARDECL(off_t, coef_offset); + ALLOC(coef_offset, channel_count, off_t); + coeff_ptr_table = read_32bitBE(info_offset + 0x1c, streamFile) + info_offset + 8; // Getting pointer for coefficient pointer table + + for (i = 0; i < channel_count; i++) { + tempoffset1 = read_32bitBE(coeff_ptr_table + 8 + i * 8, streamFile); + coef_offset[i] = tempoffset1 + coeff_ptr_table; + coef_offset[i] += read_32bitBE(coef_offset[i] + 4, streamFile); + } + for (j = 0; jchannels; j++) { for (i = 0; i<16; i++) { - vgmstream->ch[j].adpcm_coef[i] = read_16bitBE(head_offset + coef_offset + j*coef_spacing + i * 2, streamFile); + vgmstream->ch[j].adpcm_coef[i] = read_16bitBE(coef_offset[j] + i * 2, streamFile); } } } - if (ima) // No SEEK (ADPC) header, so just start where the SEEK header is supposed to be. + if (ima) { // No SEEK (ADPC) header, so just start where the SEEK header is supposed to be. + if (seek_offset == 0) goto fail; start_offset = seek_offset; - else if (vgmstream->coding_type == coding_NGC_DSP) + } else { + if (data_offset == 0) goto fail; start_offset = data_offset + 0x20; - else // No SEEK header and not IMA, so just start after the DATA header - start_offset = 0x120; + } diff --git a/Frameworks/vgmstream/vgmstream/src/meta/bfwav.c b/Frameworks/vgmstream/vgmstream/src/meta/bfwav.c index 12f0eec4f..a02f09e2a 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/bfwav.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/bfwav.c @@ -7,7 +7,7 @@ VGMSTREAM * init_vgmstream_bfwav(STREAMFILE *streamFile) { coding_t coding_type; - int ima = 0; + /*int ima = 0;*/ int nsmbu_flag = 0; int32_t(*read_32bit)(off_t, STREAMFILE*) = read_32bitBE; int16_t(*read_16bit)(off_t, STREAMFILE*) = read_16bitBE; @@ -149,4 +149,4 @@ VGMSTREAM * init_vgmstream_bfwav(STREAMFILE *streamFile) { fail: if (vgmstream) close_vgmstream(vgmstream); return NULL; -} \ No newline at end of file +} diff --git a/Frameworks/vgmstream/vgmstream/src/meta/bgw.c b/Frameworks/vgmstream/vgmstream/src/meta/bgw.c index 841d95d63..12830685e 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/bgw.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/bgw.c @@ -1,140 +1,172 @@ #include "meta.h" -#include "../util.h" -/* BGW (FF XI) */ +/* BGW - from Final Fantasy XI (PC) music files + * Some info from POLUtils */ VGMSTREAM * init_vgmstream_bgw(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - off_t start_offset; + uint32_t codec, filesize, blocksize, sample_rate; int32_t loop_start; + uint8_t block_align; + off_t start_offset; - int loop_flag = 0; - int channel_count; + int channel_count, loop_flag = 0; - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("bgw",filename_extension(filename))) goto fail; - - /* "BGMStream" */ - if (read_32bitBE(0,streamFile) != 0x42474d53 || - read_32bitBE(4,streamFile) != 0x74726561 || - read_32bitBE(8,streamFile) != 0x6d000000 || - read_32bitBE(12,streamFile) != 0) goto fail; - - /* check file size with header value */ - if (read_32bitLE(0x10,streamFile) != get_streamfile_size(streamFile)) + /* check extensions */ + if ( !check_extensions(streamFile, "bgw") ) goto fail; - channel_count = read_8bit(0x2e,streamFile); + /* check header */ + if (read_32bitBE(0x00,streamFile) != 0x42474d53 || /* "BGMS" */ + read_32bitBE(0x04,streamFile) != 0x74726561 || /* "trea" */ + read_32bitBE(0x08,streamFile) != 0x6d000000 ) /* "m\0\0\0" */ + goto fail; + + codec = read_32bitLE(0x0c,streamFile); + filesize = read_32bitLE(0x10,streamFile); + /*file_id = read_32bitLE(0x14,streamFile);*/ + blocksize = read_32bitLE(0x18,streamFile); loop_start = read_32bitLE(0x1c,streamFile); + sample_rate = (read_32bitLE(0x20,streamFile) + read_32bitLE(0x24,streamFile)) & 0xFFFFFFFF; /* bizarrely obfuscated sample rate */ + start_offset = read_32bitLE(0x28,streamFile); + /*0x2c: unk (vol?) */ + /*0x2d: unk (0x10?) */ + channel_count = read_8bit(0x2e,streamFile); + block_align = read_8bit(0x2f,streamFile); + + + /* check file size with header value */ + if (filesize != get_streamfile_size(streamFile)) + goto fail; + loop_flag = (loop_start > 0); - + /* build the VGMSTREAM */ vgmstream = allocate_vgmstream(channel_count,loop_flag); if (!vgmstream) goto fail; /* fill in the vital statistics */ - start_offset = read_32bitLE(0x28,streamFile); - vgmstream->channels = channel_count; - vgmstream->sample_rate = 44100; - vgmstream->coding_type = coding_FFXI; - vgmstream->num_samples = read_32bitLE(0x18,streamFile)*16; - if (loop_flag) { - vgmstream->loop_start_sample = (loop_start-1)*16; - vgmstream->loop_end_sample = vgmstream->num_samples; + vgmstream->meta_type = meta_FFXI_BGW; + vgmstream->sample_rate = sample_rate; + + switch (codec) { + case 0: /* PS ADPCM */ + vgmstream->coding_type = coding_PSX_cfg; + vgmstream->layout_type = layout_interleave; + vgmstream->interleave_block_size = (block_align / 2) + 1; /* half, even if channels = 1 */ + + vgmstream->num_samples = blocksize * block_align; + if (loop_flag) { + vgmstream->loop_start_sample = (loop_start-1) * block_align; + vgmstream->loop_end_sample = vgmstream->num_samples; + } + + break; + + case 3: /* ATRAC3 (encrypted) */ + default: + goto fail; } - vgmstream->layout_type = layout_interleave; - vgmstream->interleave_block_size = 9; - vgmstream->meta_type = meta_FFXI_BGW; /* open the file for reading */ - { - int i; - STREAMFILE * file; - file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - if (!file) goto fail; - for (i=0;ich[i].streamfile = file; - - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset+i*9; - - } - } + if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) ) + goto fail; return vgmstream; - /* clean up anything we may have opened */ fail: - if (vgmstream) close_vgmstream(vgmstream); + close_vgmstream(vgmstream); return NULL; } -/* .spw (SEWave, PlayOnline viewer for FFXI), very similar to bgw */ +/* SPW (SEWave) - from PlayOnline viewer for Final Fantasy XI (PC) */ VGMSTREAM * init_vgmstream_spw(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; + uint32_t codec, filesize, blocksize, sample_rate; + int32_t loop_start; + uint8_t block_align; off_t start_offset; - int loop_flag = 0; - int32_t loop_start; - int channel_count; + int channel_count, loop_flag = 0; - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("spw",filename_extension(filename))) goto fail; + /* check extensions */ + if ( !check_extensions(streamFile, "spw") ) + goto fail; - /* "SeWave" */ - if (read_32bitBE(0,streamFile) != 0x53655761 || - read_32bitBE(4,streamFile) != 0x76650000) goto fail; + /* check header */ + if (read_32bitBE(0,streamFile) != 0x53655761 || /* "SeWa" */ + read_32bitBE(4,streamFile) != 0x76650000) /* "ve\0\0" */ + goto fail; /* check file size with header value */ if (read_32bitLE(0x8,streamFile) != get_streamfile_size(streamFile)) goto fail; - channel_count = read_8bit(0x2a,streamFile); + filesize = read_32bitLE(0x08,streamFile); + codec = read_32bitLE(0x0c,streamFile); + /*file_id = read_32bitLE(0x10,streamFile);*/ + blocksize = read_32bitLE(0x14,streamFile); loop_start = read_32bitLE(0x18,streamFile); + sample_rate = (read_32bitLE(0x1c,streamFile) + read_32bitLE(0x20,streamFile)) & 0xFFFFFFFF; /* bizarrely obfuscated sample rate */ + start_offset = read_32bitLE(0x24,streamFile); + /*0x2c: unk (0x00?) */ + /*0x2d: unk (0x00/01?) */ + channel_count = read_8bit(0x2a,streamFile); + block_align = read_8bit(0x2b,streamFile); + /*0x2c: unk (0x01 when PCM, 0x10 when VAG?) */ + + /* check file size with header value */ + if (filesize != get_streamfile_size(streamFile)) + goto fail; + loop_flag = (loop_start > 0); - + /* build the VGMSTREAM */ vgmstream = allocate_vgmstream(channel_count,loop_flag); if (!vgmstream) goto fail; /* fill in the vital statistics */ - start_offset = read_32bitLE(0x24,streamFile); - vgmstream->channels = channel_count; - vgmstream->sample_rate = 44100; - vgmstream->coding_type = coding_FFXI; - vgmstream->num_samples = read_32bitLE(0x14,streamFile)*16; - if (loop_flag) { - vgmstream->loop_start_sample = (loop_start-1)*16; - vgmstream->loop_end_sample = vgmstream->num_samples; + vgmstream->meta_type = meta_FFXI_SPW; + vgmstream->sample_rate = sample_rate; + + switch (codec) { + case 0: /* PS ADPCM */ + vgmstream->coding_type = coding_PSX_cfg; + vgmstream->layout_type = layout_interleave; + vgmstream->interleave_block_size = (block_align / 2) + 1; /* half, even if channels = 1 */ + + vgmstream->num_samples = blocksize * block_align; + if (loop_flag) { + vgmstream->loop_start_sample = (loop_start-1) * block_align;; + vgmstream->loop_end_sample = vgmstream->num_samples; + } + + break; + + case 1: /* PCM */ + vgmstream->coding_type = coding_PCM16LE; + vgmstream->layout_type = layout_interleave; + vgmstream->interleave_block_size = 0x02; + + vgmstream->num_samples = blocksize; + if (loop_flag) { + vgmstream->loop_start_sample = (loop_start-1); + vgmstream->loop_end_sample = vgmstream->num_samples; + } + + break; + default: + goto fail; } - vgmstream->layout_type = layout_interleave; - vgmstream->interleave_block_size = 9; - vgmstream->meta_type = meta_FFXI_SPW; /* open the file for reading */ - { - int i; - STREAMFILE * file; - file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - if (!file) goto fail; - for (i=0;ich[i].streamfile = file; - - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset+i*9; - - } - } + if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) ) + goto fail; return vgmstream; - /* clean up anything we may have opened */ fail: - if (vgmstream) close_vgmstream(vgmstream); + close_vgmstream(vgmstream); return NULL; } diff --git a/Frameworks/vgmstream/vgmstream/src/meta/btsnd.c b/Frameworks/vgmstream/vgmstream/src/meta/btsnd.c index e27803ef7..b0afa30fd 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/btsnd.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/btsnd.c @@ -8,7 +8,6 @@ Wii U boot sound file for each game/app. VGMSTREAM * init_vgmstream_btsnd(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; char filename[PATH_LIMIT]; - coding_t coding_type; int channel_count = 2; int loop_flag; off_t start_offset = 0x8; diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ea_header.c b/Frameworks/vgmstream/vgmstream/src/meta/ea_header.c index 0da2d047f..293f4c3ef 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ea_header.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ea_header.c @@ -225,7 +225,7 @@ VGMSTREAM * init_vgmstream_ea(STREAMFILE *streamFile) { vgmstream->meta_type=meta_EAXA_R2; } - vgmstream->coding_type=coding_EAXA; + vgmstream->coding_type=coding_EA_XA; vgmstream->layout_type=layout_ea_blocked; if((vgmstream->ea_platform==EA_GC) || (vgmstream->ea_platform==EA_X360)) vgmstream->ea_big_endian=1; diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ffmpeg.c b/Frameworks/vgmstream/vgmstream/src/meta/ffmpeg.c index f07763515..32082f62e 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ffmpeg.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ffmpeg.c @@ -194,57 +194,6 @@ ffmpeg_codec_data * init_ffmpeg_offset(STREAMFILE *streamFile, uint64_t start, u } -/** - * Manually init FFmpeg, from an offset and creating a fake RIFF from a streamfile. - */ -ffmpeg_codec_data * init_ffmpeg_faux_riff(STREAMFILE *streamFile, int64_t fmt_offset, uint64_t start, uint64_t size, int big_endian) { - if (fmt_offset > 0) { - size_t header_size = 0; - int max_header_size = (int)(start - fmt_offset); - uint8_t p[100]; - if (max_header_size < 18 || max_header_size > 100) - goto fail; - //p = av_malloc(max_header_size + 8 + 4 + 8 + 8); - //if (!p) goto fail; - if (read_streamfile(p + 8 + 4 + 8, fmt_offset, max_header_size, streamFile) != max_header_size) - goto fail; - - if (big_endian) { - int shift = 8 + 4 + 8; - put_16bitLE(p+shift, get_16bitBE(p)); - put_16bitLE(p+shift + 2, get_16bitBE(p + 2)); - put_32bitLE(p+shift + 4, get_32bitBE(p + 4)); - put_32bitLE(p+shift + 8, get_32bitBE(p + 8)); - put_16bitLE(p+shift + 12, get_16bitBE(p + 12)); - put_16bitLE(p+shift + 14, get_16bitBE(p + 14)); - put_16bitLE(p+shift + 16, get_16bitBE(p + 16)); - } - header_size = 8 + 4 + 8 + 8 + 18 + get_16bitLE(p + 8 + 4 + 8 + 16); - // Meh, dunno how to handle swapping the extra data - // FFmpeg doesn't need most of this data anyway - if ((unsigned)(get_16bitLE(p + 8 + 4 + 8) - 0x165) < 2) - memset(p + 8 + 4 + 8 + 18, 0, 34); - - // Fill out the RIFF structure - memcpy(p, "RIFF", 4); - put_32bitLE(p + 4, header_size + size - 8); - memcpy(p + 8, "WAVE", 4); - memcpy(p + 12, "fmt ", 4); - put_32bitLE(p + 16, 18 + get_16bitLE(p + 8 + 4 + 8 + 16)); - memcpy(p + header_size - 8, "data", 4); - put_32bitLE(p + header_size - 4, size); - - - return init_ffmpeg_header_offset(streamFile, p, header_size, start, size); - } - else { - return init_ffmpeg_header_offset(streamFile, NULL, 0, start, size); - } - -fail: - return NULL; -} - /** * Manually init FFmpeg, from a fake header / offset. * diff --git a/Frameworks/vgmstream/vgmstream/src/meta/fsb.c b/Frameworks/vgmstream/vgmstream/src/meta/fsb.c index 165d6d883..29e3a89e3 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/fsb.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/fsb.c @@ -1,825 +1,405 @@ #include "meta.h" #include "../coding/coding.h" -#include "../util.h" -/* FSB1 */ -VGMSTREAM * init_vgmstream_fsb1(STREAMFILE *streamFile) { +#define FAKE_RIFF_BUFFER_SIZE 100 - VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - off_t start_offset; +static VGMSTREAM * init_vgmstream_fsb_offset(STREAMFILE *streamFile, off_t offset); - /* int fsb1_included_files; */ - int fsb1_format; - int loop_flag = 0; - int channel_count; +/* ************************************************************************************************************ + * FSB defines, copied from the public spec (https://www.fmod.org/questions/question/forum-4928/) + * The format is mostly compatible for FSB1/2/3/4, but not FSB5. Headers always use LE. A FSB contains + * main header + sample header(s) + raw data. In multistreams N sample headers are stored (and + * if the BASICHEADERS flag is set, all headers but the first use HEADER_BASIC = numsamples + datasize) + * ************************************************************************************************************ */ +/* These flags are used for FMOD_FSB_HEADER::mode */ +#define FMOD_FSB_SOURCE_FORMAT 0x00000001 /* all samples stored in their original compressed format */ +#define FMOD_FSB_SOURCE_BASICHEADERS 0x00000002 /* samples should use the basic header structure */ +#define FMOD_FSB_SOURCE_ENCRYPTED 0x00000004 /* all sample data is encrypted */ +#define FMOD_FSB_SOURCE_BIGENDIANPCM 0x00000008 /* pcm samples have been written out in big-endian format */ +#define FMOD_FSB_SOURCE_NOTINTERLEAVED 0x00000010 /* Sample data is not interleaved. */ +#define FMOD_FSB_SOURCE_MPEG_PADDED 0x00000020 /* Mpeg frames are now rounded up to the nearest 2 bytes for normal sounds, or 16 bytes for multichannel. */ +#define FMOD_FSB_SOURCE_MPEG_PADDED4 0x00000040 /* Mpeg frames are now rounded up to the nearest 4 bytes for normal sounds, or 16 bytes for multichannel. */ - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("fsb",filename_extension(filename))) goto fail; +/* These flags are used for FMOD_FSB_HEADER::version */ +#define FMOD_FSB_VERSION_3_0 0x00030000 /* FSB version 3.0 */ +#define FMOD_FSB_VERSION_3_1 0x00030001 /* FSB version 3.1 */ +#define FMOD_FSB_VERSION_4_0 0x00040000 /* FSB version 4.0 */ - /* check header */ - if (read_32bitBE(0x00,streamFile) != 0x46534231) /* "FSB1" */ - goto fail; - - /* "Check if the FSB is used as - conatiner or as single file" */ - if (read_32bitBE(0x04,streamFile) != 0x01000000) - goto fail; +/* FMOD 3 defines. These flags are used for FMOD_FSB_SAMPLE_HEADER::mode */ +#define FSOUND_LOOP_OFF 0x00000001 /* For non looping samples. */ +#define FSOUND_LOOP_NORMAL 0x00000002 /* For forward looping samples. */ +#define FSOUND_LOOP_BIDI 0x00000004 /* For bidirectional looping samples. (no effect if in hardware). */ +#define FSOUND_8BITS 0x00000008 /* For 8 bit samples. */ +#define FSOUND_16BITS 0x00000010 /* For 16 bit samples. */ +#define FSOUND_MONO 0x00000020 /* For mono samples. */ +#define FSOUND_STEREO 0x00000040 /* For stereo samples. */ +#define FSOUND_UNSIGNED 0x00000080 /* For user created source data containing unsigned samples. */ +#define FSOUND_SIGNED 0x00000100 /* For user created source data containing signed data. */ +#define FSOUND_MPEG 0x00000200 /* For MPEG layer 2/3 data. */ +#define FSOUND_CHANNELMODE_ALLMONO 0x00000400 /* Sample is a collection of mono channels. */ +#define FSOUND_CHANNELMODE_ALLSTEREO 0x00000800 /* Sample is a collection of stereo channel pairs */ +#define FSOUND_HW3D 0x00001000 /* Attempts to make samples use 3d hardware acceleration. (if the card supports it) */ +#define FSOUND_2D 0x00002000 /* Tells software (not hardware) based sample not to be included in 3d processing. */ +#define FSOUND_SYNCPOINTS_NONAMES 0x00004000 /* Specifies that syncpoints are present with no names */ +#define FSOUND_DUPLICATE 0x00008000 /* This subsound is a duplicate of the previous one i.e. it uses the same sample data but w/different mode bits */ +#define FSOUND_CHANNELMODE_PROTOOLS 0x00010000 /* Sample is 6ch and uses L C R LS RS LFE standard. */ +#define FSOUND_MPEGACCURATE 0x00020000 /* For FSOUND_Stream_Open - for accurate FSOUND_Stream_GetLengthMs/FSOUND_Stream_SetTime. WARNING, see FSOUND_Stream_Open for inital opening time performance issues. */ +#define FSOUND_HW2D 0x00080000 /* 2D hardware sounds. allows hardware specific effects */ +#define FSOUND_3D 0x00100000 /* 3D software sounds */ +#define FSOUND_32BITS 0x00200000 /* For 32 bit (float) samples. */ +#define FSOUND_IMAADPCM 0x00400000 /* Contents are stored compressed as IMA ADPCM */ +#define FSOUND_VAG 0x00800000 /* For PS2 only - Contents are compressed as Sony VAG format */ +#define FSOUND_XMA 0x01000000 /* For Xbox360 only - Contents are compressed as XMA format */ +#define FSOUND_GCADPCM 0x02000000 /* For Gamecube only - Contents are compressed as Gamecube DSP-ADPCM format */ +#define FSOUND_MULTICHANNEL 0x04000000 /* For PS2 and Gamecube only - Contents are interleaved into a multi-channel (more than stereo) format */ +#define FSOUND_OGG 0x08000000 /* For vorbis encoded ogg data */ +#define FSOUND_CELT 0x08000000 /* For vorbis encoded ogg data */ +#define FSOUND_MPEG_LAYER3 0x10000000 /* Data is in MP3 format. */ +#define FSOUND_MPEG_LAYER2 0x00040000 /* Data is in MP2 format. */ +#define FSOUND_LOADMEMORYIOP 0x20000000 /* For PS2 only - "name" will be interpreted as a pointer to data for streaming and samples. The address provided will be an IOP address */ +#define FSOUND_IMAADPCMSTEREO 0x20000000 /* Signify IMA ADPCM is actually stereo not two interleaved mono */ +#define FSOUND_IGNORETAGS 0x40000000 /* Skips id3v2 etc tag checks when opening a stream, to reduce seek/read overhead when opening files (helps with CD performance) */ +#define FSOUND_SYNCPOINTS 0x80000000 /* Specifies that syncpoints are present */ - loop_flag = 0; - channel_count = 2; +/* These flags are used for FMOD_FSB_SAMPLE_HEADER::mode */ +#define FSOUND_CHANNELMODE_MASK (FSOUND_CHANNELMODE_ALLMONO | FSOUND_CHANNELMODE_ALLSTEREO | FSOUND_CHANNELMODE_PROTOOLS) +#define FSOUND_CHANNELMODE_DEFAULT 0x00000000 /* Determine channel assignment automatically from channel count. */ +#define FSOUND_CHANNELMODE_RESERVED 0x00000C00 - /* build the VGMSTREAM */ - vgmstream = allocate_vgmstream(channel_count,loop_flag); - if (!vgmstream) goto fail; +#define FSOUND_NORMAL (FSOUND_16BITS | FSOUND_SIGNED | FSOUND_MONO) - /* This will be tricky ;o) */ - fsb1_format = read_32bitBE(0x44,streamFile); - switch (fsb1_format) { - case 0x40008800: /* PS2 (Operation Genesis) */ - case 0x41008800: /* PS2 (Operation Genesis) */ - vgmstream->coding_type = coding_PSX; - vgmstream->layout_type = layout_interleave; - vgmstream->interleave_block_size = 0x10; - vgmstream->num_samples = (read_32bitLE(0x34,streamFile))*28/16/channel_count; - if (loop_flag) { - vgmstream->loop_start_sample = 0; - vgmstream->loop_end_sample = read_32bitLE(0x30,streamFile); - } - break; - default: - goto fail; +#define FSB_SAMPLE_DATA_ALIGN 32 - } - /* fill in the vital statistics */ - start_offset = 0x50; - vgmstream->channels = channel_count; - vgmstream->sample_rate = read_32bitLE(0x38,streamFile); - vgmstream->meta_type = meta_FSB1; - - /* open the file for reading */ - { - int i; - STREAMFILE * file; - file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - if (!file) goto fail; - for (i=0;ich[i].streamfile = file; +/* simplified struct based on the original definitions */ +typedef struct { + /* main header */ + uint32_t id; + int32_t numsamples; /* number of samples(streams) in the file */ + uint32_t shdrsize; /* size in bytes of all of the sample headers including extended information */ + uint32_t datasize; /* size in bytes of compressed sample data */ + /* main header: FSB 3/3.1/4 */ + uint32_t version; /* extended fsb version */ + uint32_t flags; /* flags that apply to all samples(streams) in the fsb */ + /* sample header */ + uint32_t lengthsamples; + uint32_t lengthcompressedbytes; + uint32_t loopstart; + uint32_t loopend; + uint32_t mode; + int32_t deffreq; + uint16_t numchannels; + /* extra */ + uint32_t hdrsize; + uint32_t shdrsize_min; + meta_t meta_type; +} FSB_HEADER; - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset+ - vgmstream->interleave_block_size*i; - } - } - - return vgmstream; - - /* clean up anything we may have opened */ -fail: - if (vgmstream) close_vgmstream(vgmstream); - return NULL; -} - -/* FSB3.0 and FSB3.1 */ -VGMSTREAM * init_vgmstream_fsb3(STREAMFILE *streamFile) { - VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - int fsb_headerlen; - int channel_count; - int loop_flag = 0; - int FSBFlag = 0; - int i, c; - off_t start_offset; - - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - - if (strcasecmp("fsb",filename_extension(filename))) - goto fail; - - /* check header for "FSB3" string */ - if (read_32bitBE(0x00,streamFile) != 0x46534233) - goto fail; - - /* "Check if the FSB is used as conatiner or as single file" */ - if (read_32bitLE(0x04,streamFile) != 0x1) - goto fail; - - /* Check if we're dealing with a FSB3.0 file */ - if ((read_32bitBE(0x10,streamFile) != 0x00000300) && - ((read_32bitBE(0x10,streamFile) != 0x01000300))) - goto fail; - - channel_count = read_16bitLE(0x56,streamFile); - fsb_headerlen = read_32bitLE(0x08,streamFile); - - FSBFlag = read_32bitLE(0x48,streamFile); - - if (FSBFlag&0x2 || FSBFlag&0x4 || FSBFlag&0x6) - loop_flag = 1; - - /* build the VGMSTREAM */ - vgmstream = allocate_vgmstream(channel_count,loop_flag); - if (!vgmstream) goto fail; - - start_offset = fsb_headerlen+0x18; - vgmstream->sample_rate = (read_32bitLE(0x4C, streamFile)); - - - // Get the Decoder - if (FSBFlag&0x00000100) - { // Ignore format and treat as RAW PCM - vgmstream->coding_type = coding_PCM16LE; - if (channel_count == 1) - { - vgmstream->layout_type = layout_none; - } - else if (channel_count > 1) - { - vgmstream->layout_type = layout_interleave; - vgmstream->interleave_block_size = 0x2; - } - } - else if (FSBFlag&0x00400000) - { // XBOX IMA - vgmstream->coding_type = coding_XBOX; - vgmstream->layout_type = layout_none; - } - else if (FSBFlag&0x00800000) - { // PS2 ADPCM - vgmstream->coding_type = coding_PSX; - if (channel_count == 1) - { - vgmstream->layout_type = layout_none; - } - else if (channel_count > 1) - { - vgmstream->layout_type = layout_interleave; - vgmstream->interleave_block_size = 0x10; - } - } - else if (FSBFlag&0x02000000) - { // Nintendo DSP - vgmstream->coding_type = coding_NGC_DSP; - if (channel_count == 1) - { - vgmstream->layout_type = layout_none; - } - else if (channel_count > 1) - { - vgmstream->layout_type = layout_interleave_byte; - vgmstream->interleave_block_size = 2; - } - // read coeff(s), DSP only - for (c=0;cch[c].adpcm_coef[i]=read_16bitBE(0x68+c*0x2e +i*2,streamFile); - } - } - } - else goto fail; - - vgmstream->num_samples = read_32bitLE(0x38,streamFile); - if (loop_flag) { - vgmstream->loop_start_sample = read_32bitLE(0x40,streamFile); - vgmstream->loop_end_sample = read_32bitLE(0x44,streamFile); - } - - - if (read_32bitBE(0x10,streamFile) == 0x00000300) - { - vgmstream->meta_type = meta_FSB3_0; - } - else if (read_32bitBE(0x10,streamFile) == 0x01000300) - { - vgmstream->meta_type = meta_FSB3_1; - } - - /* open the file for reading */ - { - int i; - STREAMFILE * file; - file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - if (!file) goto fail; - for (i=0;ich[i].streamfile = file; - - if (vgmstream->coding_type == coding_XBOX) { - /* xbox interleaving is a little odd */ - vgmstream->ch[i].channel_start_offset=start_offset; - } else { - vgmstream->ch[i].channel_start_offset= - start_offset+vgmstream->interleave_block_size*i; - } - vgmstream->ch[i].offset = vgmstream->ch[i].channel_start_offset; - } - } - - return vgmstream; - - /* clean up anything we may have opened */ -fail: - if (vgmstream) close_vgmstream(vgmstream); - return NULL; -} +/* ********************************************************************************** */ /* FSB4 */ -VGMSTREAM * init_vgmstream_fsb4(STREAMFILE *streamFile) { +VGMSTREAM * init_vgmstream_fsb(STREAMFILE *streamFile) { + return init_vgmstream_fsb_offset(streamFile, 0x0); +} + +/* FSB4 with "\0WAV" Header, found in Deadly Creatures (Wii) + * 16 byte header which holds the filesize + * (unsure if this is from a proper rip) */ +VGMSTREAM * init_vgmstream_fsb4_wav(STREAMFILE *streamFile) { + if (read_32bitBE(0x00,streamFile) != 0x00574156) /* "\0WAV" */ + return NULL; + return init_vgmstream_fsb_offset(streamFile, 0x10); +} + +VGMSTREAM * init_vgmstream_fsb_offset(STREAMFILE *streamFile, off_t offset) { VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - off_t start_offset; - - int fsb4_format; + off_t start_offset, h_off, s_off; + size_t custom_data_offset; int loop_flag = 0; - int channel_count; - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("fsb",filename_extension(filename)) && - strcasecmp("wii",filename_extension(filename))) goto fail; + FSB_HEADER fsbh; + + /* check extensions */ + if ( !check_extensions(streamFile, "fsb,wii") ) + goto fail; + + h_off = offset; /* check header */ - if (read_32bitBE(0x00,streamFile) != 0x46534234) /* "FSB4" */ - goto fail; - - /* "Check if the FSB is used as - conatiner or as single file" */ - if (read_32bitBE(0x04,streamFile) != 0x01000000) - goto fail; + fsbh.id = read_32bitBE(offset+0x00,streamFile); + if (fsbh.id == 0x46534231) { /* "FSB1" (somewhat different from other fsbs) */ + fsbh.meta_type = meta_FSB1; + fsbh.hdrsize = 0x10; + fsbh.shdrsize_min = 0x40; - if (read_32bitBE(0x60,streamFile) == 0x40008800 || - read_32bitBE(0x60,streamFile) == 0x40000802 || - read_32bitBE(0x60,streamFile) == 0x40100802 || - read_32bitBE(0x60,streamFile) == 0x000040A0 || - read_32bitBE(0x60,streamFile) == 0x40004020) { - loop_flag = 1; - } else { - loop_flag = 0; + /* main header */ + fsbh.numsamples = read_32bitLE(h_off+0x04,streamFile); + fsbh.datasize = read_32bitLE(h_off+0x08,streamFile); + fsbh.shdrsize = 0x40; + fsbh.version = 0; + fsbh.flags = 0; + + s_off = offset+fsbh.hdrsize; + /* sample header */ + /* 0x00:name(len=0x20) */ + fsbh.lengthsamples = read_32bitLE(s_off+0x20,streamFile); + fsbh.lengthcompressedbytes = read_32bitLE(s_off+0x24,streamFile); + fsbh.deffreq = read_32bitLE(s_off+0x28,streamFile); + /* 0x2c:? 0x2e:? 0x30:? 0x32:? */ + fsbh.mode = read_32bitLE(s_off+0x34,streamFile); + fsbh.loopstart = read_32bitLE(s_off+0x38,streamFile); + fsbh.loopend = read_32bitLE(s_off+0x3c,streamFile); + + fsbh.numchannels = (fsbh.mode & FSOUND_STEREO) ? 2 : 1; + if (fsbh.loopend > fsbh.lengthsamples) /* this seems common... */ + fsbh.lengthsamples = fsbh.loopend; + } + else { /* other FSBs (common/extended format) */ + if (fsbh.id == 0x46534232) { /* "FSB2" */ + fsbh.meta_type = meta_FSB2; + fsbh.hdrsize = 0x10; + fsbh.shdrsize_min = 0x40; /* guessed */ + } else if (fsbh.id == 0x46534233) { /* "FSB3" */ + fsbh.meta_type = meta_FSB3; + fsbh.hdrsize = 0x18; + fsbh.shdrsize_min = 0x40; + } else if (fsbh.id == 0x46534234) { /* "FSB4" */ + fsbh.meta_type = meta_FSB4; + fsbh.hdrsize = 0x30; + fsbh.shdrsize_min = 0x50; + } else { + goto fail; + } + + /* main header */ + fsbh.numsamples = read_32bitLE(h_off+0x04,streamFile); + fsbh.shdrsize = read_32bitLE(h_off+0x08,streamFile); + fsbh.datasize = read_32bitLE(h_off+0x0c,streamFile); + if (fsbh.hdrsize > 0x10) { + fsbh.version = read_32bitLE(h_off+0x10,streamFile); + fsbh.flags = read_32bitLE(h_off+0x14,streamFile); + /* FSB4: 0x18:hash 0x20:guid */ + } else { + fsbh.version = 0; + fsbh.flags = 0; + } + + if (fsbh.version == FMOD_FSB_VERSION_3_1) { + fsbh.shdrsize_min = 0x50; + } else if (fsbh.version != 0 /* FSB2 */ + && fsbh.version != FMOD_FSB_VERSION_3_0 + && fsbh.version != FMOD_FSB_VERSION_4_0) { + goto fail; + } + + if (fsbh.shdrsize < fsbh.shdrsize_min) goto fail; + + s_off = offset+fsbh.hdrsize; + /* sample header */ + /* 0x00:size 0x02:name(len=size) */ + fsbh.lengthsamples = read_32bitLE(s_off+0x20,streamFile); + fsbh.lengthcompressedbytes = read_32bitLE(s_off+0x24,streamFile); + fsbh.loopstart = read_32bitLE(s_off+0x28,streamFile); + fsbh.loopend = read_32bitLE(s_off+0x2c,streamFile); + fsbh.mode = read_32bitLE(s_off+0x30,streamFile); + fsbh.deffreq = read_32bitLE(s_off+0x34,streamFile); + /* 0x38:defvol 0x3a:defpan 0x3c:defpri */ + fsbh.numchannels = read_16bitLE(s_off+0x3e,streamFile); + /* FSB3.1/4: 0x40:mindistance 0x44:maxdistance 0x48:varfreq/size_32bits 0x4c:varvol 0x4e:fsbh.varpan */ + /* 0x50:extended_data (of size_32bits, when fsbh.shdrsize > 0x50) */ } + /* FSB header ok, check other stuff */ + if (fsbh.numsamples != 1) { /* multistream */ + VGM_LOG("FSB numsamples > 1 found\n"); + goto fail; + } + /* XOR encryption for some FSB4 */ + if (fsbh.flags & FMOD_FSB_SOURCE_ENCRYPTED) { + VGM_LOG("FSB ENCRYPTED found\n"); + goto fail; + } #if 0 - if (read_32bitBE(0x60,streamFile) != 0x20000882 && - read_32bitBE(0x60,streamFile) != 0x20100002 && - read_32bitBE(0x60,streamFile) != 0x20100882 && - read_32bitBE(0x60,streamFile) != 0x20100802 && - read_32bitBE(0x60,streamFile) != 0x20100082 && - read_32bitBE(0x60,streamFile) != 0x20000802) { - channel_count = 2; - } else { - channel_count = 1; + /* sometimes there is garbage at the end or missing bytes? (Guitar Hero Wii) */ + if (fsbh.hdrsize + fsbh.shdrsize + fsbh.datasize != streamFile->get_size(streamFile) - offset) { + VGM_LOG("FSB wrong head/datasize found\n"); + goto fail; } #endif - channel_count = (uint16_t)read_16bitLE(0x6E,streamFile); + start_offset = offset + fsbh.hdrsize + fsbh.shdrsize; + custom_data_offset = offset + fsbh.hdrsize + fsbh.shdrsize_min; /* DSP coefs, seek tables, etc */ + + /* Loops by default unless disabled (sometimes may add FSOUND_LOOP_NORMAL). Often streams + * repeat over and over (some tracks that shouldn't do this based on the flags, no real way to identify them). */ + loop_flag = !(fsbh.mode & FSOUND_LOOP_OFF); /* (fsbh.mode & FSOUND_LOOP_NORMAL) */ + /* ping-pong looping = no looping? (forward > reverse > forward) */ + VGM_ASSERT(fsbh.mode & FSOUND_LOOP_BIDI, "FSB BIDI looping found\n"); /* build the VGMSTREAM */ - vgmstream = allocate_vgmstream(channel_count,loop_flag); + vgmstream = allocate_vgmstream(fsbh.numchannels,loop_flag); if (!vgmstream) goto fail; - /* fill in the vital statistics */ - vgmstream->channels = channel_count; - vgmstream->sample_rate = read_32bitLE(0x64,streamFile); - fsb4_format = read_32bitBE(0x60,streamFile); - switch (fsb4_format) { - /* PC Blade Kitten */ - case 0x40004020: - case 0x20004000: - case 0x00004020: - case 0x000040A0: + vgmstream->sample_rate = fsbh.deffreq; + vgmstream->num_samples = fsbh.lengthsamples; + vgmstream->loop_start_sample = fsbh.loopstart; + vgmstream->loop_end_sample = fsbh.loopend; + vgmstream->meta_type = fsbh.meta_type; + + /* parse format */ + if (fsbh.mode & FSOUND_MPEG) { + /* FSB3: ?; FSB4: Shatter, Way of the Samurai 3/4, Forza Horizon 1/2, Dragon Age Origins */ +#if defined(VGM_USE_MPEG) + mpeg_codec_data *mpeg_data = NULL; + coding_t mpeg_coding_type; + + mpeg_data = init_mpeg_codec_data(streamFile, start_offset, vgmstream->sample_rate, vgmstream->channels, &mpeg_coding_type, NULL, NULL); + if (!mpeg_data) goto fail; + + vgmstream->codec_data = mpeg_data; + vgmstream->coding_type = mpeg_coding_type; + vgmstream->layout_type = layout_mpeg; + + /* struct mpg123_frameinfo mpeg_info; */ + /* if (MPG123_OK != mpg123_info(mpeg_data->m, &mpeg_info)) goto fail; */ + VGM_ASSERT(fsbh.mode & FSOUND_MPEG_LAYER2, "FSB FSOUND_MPEG_LAYER2 found\n"); + VGM_ASSERT(fsbh.mode & FSOUND_IGNORETAGS, "FSB FSOUND_IGNORETAGS found\n"); + + /* when these flags are set each MPEG frame is 0-padded at the end, and mpg123 will complain to stderr (but ignore them) + * no way to easily skip the padding so for now we'll just disable stderr output */ + if ((fsbh.flags & FMOD_FSB_SOURCE_MPEG_PADDED) || (fsbh.flags & FMOD_FSB_SOURCE_MPEG_PADDED4)) { + mpeg_set_error_logging(mpeg_data, 0); + } + +#elif defined(VGM_USE_FFMPEG) + /* FFmpeg can't properly read FSB4 or FMOD's 0-padded MPEG data @ start_offset, this won't work */ + ffmpeg_codec_data *ffmpeg_data = NULL; + + ffmpeg_data = init_ffmpeg_offset(streamFile, 0, streamFile->get_size(streamFile)); + if ( !ffmpeg_data ) goto fail; + vgmstream->codec_data = ffmpeg_data; + vgmstream->coding_type = coding_FFmpeg; + vgmstream->layout_type = layout_none; + +#else + VGM_LOG("FSB4 MPEG found\n"); + goto fail; +#endif + } + else if (fsbh.mode & FSOUND_IMAADPCM) { /* (codec 0x69, Voxware Byte Aligned) */ + if (fsbh.mode & FSOUND_IMAADPCMSTEREO) { /* noninterleaved, true stereo IMA */ + /* FSB4: Shatter, Blade Kitten (PC), Hard Corps: Uprising (PS3) */ + vgmstream->coding_type = coding_MS_IMA; /* todo not always working in Hard Corps, interleave problem? */ + vgmstream->layout_type = layout_none; + vgmstream->interleave_block_size = 0x24*vgmstream->channels; + //VGM_LOG("FSB FSOUND_IMAADPCMSTEREO found\n"); + } else { + /* FSB3: Bioshock (PC); FSB4: Blade Kitten (PC) */ vgmstream->coding_type = coding_MS_IMA; vgmstream->layout_type = layout_none; vgmstream->interleave_block_size = 0x24*vgmstream->channels; - vgmstream->num_samples = (read_32bitLE(0x54,streamFile)/0x24/vgmstream->channels)*((0x24-4)*2); - //vgmstream->num_samples = read_32bitLE(0x50,streamFile); - if (loop_flag) { - vgmstream->loop_start_sample = read_32bitLE(0x58,streamFile); - vgmstream->loop_end_sample = read_32bitLE(0x5C,streamFile); + //VGM_LOG("FSB FSOUND_IMAADPCM found\n"); +#if 0 + if (fsbh.numchannels > 2) { /* Blade Kitten 5.1 */ + vgmstream->coding_type = coding_XBOX; + vgmstream->layout_type = layout_interleave; + vgmstream->interleave_block_size = 0x12 * vgmstream->channels; + } +#endif + + } + } + else if (fsbh.mode & FSOUND_VAG) { + /* FSB1: Jurassic Park Operation Genesis + * FSB3: ?; FSB4: Spider Man Web of Shadows, Speed Racer, Silent Hill: Shattered Memories (PS2) */ + + vgmstream->coding_type = coding_PSX; + vgmstream->layout_type = layout_interleave; + vgmstream->interleave_block_size = 0x10; + } + else if (fsbh.mode & FSOUND_XMA) { + /* FSB4: Xbox360 Armored Core V, Hard Corps, Halo Anniversary */ +#if defined(VGM_USE_FFMPEG) + ffmpeg_codec_data *ffmpeg_data = NULL; + uint8_t buf[FAKE_RIFF_BUFFER_SIZE]; + size_t bytes, block_size, block_count; + /* not accurate but not needed by FFmpeg */ + block_size = 2048; + block_count = fsbh.datasize / block_size; /* read_32bitLE(custom_data_offset +0x14) -1? */ + + /* make a fake riff so FFmpeg can parse the XMA2 */ + bytes = ffmpeg_make_riff_xma2(buf, FAKE_RIFF_BUFFER_SIZE, fsbh.lengthsamples, fsbh.datasize, fsbh.numchannels, fsbh.deffreq, block_count, block_size); + if (bytes <= 0) + goto fail; + + ffmpeg_data = init_ffmpeg_header_offset(streamFile, buf,bytes, start_offset,fsbh.datasize); + if ( !ffmpeg_data ) goto fail; + vgmstream->codec_data = ffmpeg_data; + vgmstream->coding_type = coding_FFmpeg; + vgmstream->layout_type = layout_none; + +#else + VGM_LOG("FSB XMA found\n"); + goto fail; +#endif + } + else if (fsbh.mode & FSOUND_GCADPCM) { + /* FSB3: ?; FSB4: de Blob (Wii), Night at the Museum, M. Night Shyamalan Avatar: The Last Airbender */ + + vgmstream->coding_type = coding_NGC_DSP; + vgmstream->layout_type = layout_interleave_byte; + vgmstream->interleave_block_size = 0x2; + dsp_read_coefs_be(vgmstream, streamFile, custom_data_offset, 0x2e); + } + else if (fsbh.mode & FSOUND_OGG) { + /* FSB4: ? (possibly FMOD's custom ogg) */ + + VGM_LOG("FSB4 FSOUND_OGG found\n"); + goto fail; + } + else if (fsbh.mode & FSOUND_CELT) { + /* FSB4: ? (The Witcher 2?) */ + + VGM_LOG("FSB4 FSOUND_CELT found\n"); + goto fail; + } + else { /* PCM */ + if (fsbh.mode & FSOUND_8BITS) { + VGM_LOG("FSB FSOUND_8BITS found\n"); + if (fsbh.mode & FSOUND_UNSIGNED) { + vgmstream->coding_type = coding_PCM8_U; /* ? coding_PCM8_U_int */ + } else { /* FSOUND_SIGNED */ + vgmstream->coding_type = coding_PCM8; /* ? coding_PCM8_int / coding_PCM8_SB_int */ } - break; - /* PS2 (Spider Man - Web of Shadows), Speed Racer */ - case 0x40008800: - case 0x20008800: // Silent Hill: Shattered Memories - vgmstream->coding_type = coding_PSX; vgmstream->layout_type = layout_interleave; - vgmstream->interleave_block_size = 0x10; - vgmstream->num_samples = (read_32bitLE(0x54,streamFile))*28/16/channel_count; - if (loop_flag) { - vgmstream->loop_start_sample = 0; - vgmstream->loop_end_sample = read_32bitLE(0x50,streamFile); + vgmstream->interleave_block_size = 0x1; + } else { /* Rocket Knight (PC), Another Century's Episode R (PS3), Toy Story 3 (Wii) */ + /* sometimes FSOUND_STEREO/FSOUND_MONO is not set (ex. Dead Space iOS), + * or only STEREO/MONO but not FSOUND_8BITS/FSOUND_16BITS is set */ + if (fsbh.flags & FMOD_FSB_SOURCE_BIGENDIANPCM) { + vgmstream->coding_type = coding_PCM16BE; + } else { + vgmstream->coding_type = coding_PCM16LE; /* ? coding_PCM16LE_int ? */ } - break; - /* de Blob 2*/ - case 0x00000886: - /* WII (de Blob, Night at the Museum) */ - case 0x40000802: - case 0x40000882: - case 0x40100802: - case 0x40200802: - case 0x00000802: - if (loop_flag) { - vgmstream->loop_start_sample = 0; - vgmstream->loop_end_sample = read_32bitLE(0x50,streamFile); - } - - if (read_32bitLE(0x14,streamFile)==0x20 || - read_32bitLE(0x14,streamFile)==0x22 || - read_32bitLE(0x14,streamFile)==0x00) - { - /* Night at the Museum */ - vgmstream->coding_type = coding_NGC_DSP; - vgmstream->layout_type = layout_interleave_byte; - vgmstream->interleave_block_size = 2; - } - else if (read_32bitLE(0x14,streamFile)==0x10 || - read_32bitLE(0x14,streamFile)==0x30) - { - /* de Blob, NatM sfx */ - vgmstream->coding_type = coding_NGC_DSP; - vgmstream->layout_type = layout_none; - vgmstream->interleave_block_size = read_32bitLE(0x54,streamFile)/channel_count; - } - else if (read_32bitLE(0x14,streamFile)==0x40) { - /* M. Night Shamylan The Last Airbender */ - vgmstream->coding_type = coding_NGC_DSP; - vgmstream->layout_type = layout_interleave_byte; - vgmstream->interleave_block_size = 2; - - if (loop_flag) { - vgmstream->loop_start_sample = read_32bitLE(0x58,streamFile); - } - } - else goto fail; - - vgmstream->num_samples = (read_32bitLE(0x54,streamFile)/8/channel_count*14); - break; - - /* Night at the Museum */ - case 0x20000882: - case 0x20000802: - case 0x20100002: - case 0x20100882: - case 0x20100802: - case 0x20100082: - vgmstream->coding_type = coding_NGC_DSP; - vgmstream->layout_type = layout_none; - vgmstream->num_samples = (read_32bitLE(0x54,streamFile)/8/channel_count*14); - if (loop_flag) { - vgmstream->loop_start_sample = 0; - vgmstream->loop_end_sample = read_32bitLE(0x50,streamFile); - } - break; - - /* Rocket Knight (PC) */ - case 0x10000000: /* Dead Space (iOS) */ - case 0x50210000: - case 0x30210000: - case 0x30011000: - case 0x20005000: - case 0x30011080: - case 0x30211000: - case 0x40005020: - case 0x20204000: - case 0x40204020: - case 0x50011000: - case 0x20205000: - case 0x30610080: - case 0x50210080: /* Another Century's Episode R (PS3) */ - case 0x50010800: /* Toy Story 3 (PS3) */ - vgmstream->coding_type = coding_PCM16LE; vgmstream->layout_type = layout_interleave; vgmstream->interleave_block_size = 0x2; - vgmstream->num_samples = (read_32bitLE(0x5C,streamFile)); - if (loop_flag) { - vgmstream->loop_start_sample = read_32bitLE(0x58,streamFile); - vgmstream->loop_end_sample = read_32bitLE(0x5C,streamFile); - } - break; - default: - goto fail; - } - - start_offset = read_32bitLE(0x08,streamFile)+0x30; - - vgmstream->meta_type = meta_FSB4; - - if (vgmstream->coding_type == coding_NGC_DSP) { - int c,i; - for (c=0;cch[c].adpcm_coef[i] = - read_16bitBE(0x80+c*0x2e + i*2,streamFile); - } } } - + + /* full channel interleave, used in short streams (ex. de Blob Wii SFXs) */ + if (fsbh.numchannels > 1 && (fsbh.flags & FMOD_FSB_SOURCE_NOTINTERLEAVED)) { + vgmstream->layout_type = layout_interleave; + vgmstream->interleave_block_size = fsbh.lengthcompressedbytes / fsbh.numchannels; + } + + /* open the file for reading */ - { - int i; - STREAMFILE * file; - file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - if (!file) goto fail; - for (i=0;ich[i].streamfile = file; - - - if (vgmstream->coding_type == coding_MS_IMA) { - // both IMA channels work with same bytes - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset; - } else { - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset+ - vgmstream->interleave_block_size*i; - } - } - } + if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) ) + goto fail; return vgmstream; - /* clean up anything we may have opened */ fail: - if (vgmstream) close_vgmstream(vgmstream); + close_vgmstream(vgmstream); return NULL; } - - -/* FSB4 with "WAV" Header, found in "Deadly Creatures (WII)" - 16 byte "WAV" header which holds the filesize...*/ -VGMSTREAM * init_vgmstream_fsb4_wav(STREAMFILE *streamFile) { - VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - off_t start_offset; - int loop_flag; - int channel_count; - int fsb_headerlength; - - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("fsb",filename_extension(filename))) goto fail; - - /* check header */ - if (read_32bitBE(0x00,streamFile) != 0x00574156) /* 0x0\"WAV" */ - goto fail; - if (read_32bitBE(0x10,streamFile) != 0x46534234) /* "FSB4" */ - goto fail; - - channel_count = (uint16_t)read_16bitLE(0x7E,streamFile); - - if (channel_count > 2) { - goto fail; - } - - loop_flag = (read_32bitBE(0x70,streamFile) == 0x40000802); - fsb_headerlength = read_32bitLE(0x18,streamFile); - - /* build the VGMSTREAM */ - vgmstream = allocate_vgmstream(channel_count,loop_flag); - if (!vgmstream) goto fail; - - /* fill in the vital statistics */ - start_offset = fsb_headerlength + 0x40; - vgmstream->sample_rate = read_32bitLE(0x74,streamFile); - vgmstream->coding_type = coding_NGC_DSP; - vgmstream->layout_type = layout_interleave_byte; - vgmstream->interleave_block_size = 0x2; - vgmstream->num_samples = (read_32bitLE(0x64,streamFile)/8/channel_count*14); - if (loop_flag) { - vgmstream->loop_start_sample = 0; - vgmstream->loop_end_sample = read_32bitLE(0x60,streamFile); - } - - vgmstream->meta_type = meta_FSB4_WAV; - - if (vgmstream->coding_type == coding_NGC_DSP) { - int i; - for (i=0;i<16;i++) { - vgmstream->ch[0].adpcm_coef[i] = read_16bitBE(0x90+i*2,streamFile); - } - if (vgmstream->channels == 2) { - for (i=0;i<16;i++) { - vgmstream->ch[1].adpcm_coef[i] = read_16bitBE(0xBE + i*2,streamFile); - } - } - } - - /* open the file for reading */ - { - int i; - STREAMFILE * file; - file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - if (!file) goto fail; - for (i=0;ich[i].streamfile = file; - - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset+ - vgmstream->interleave_block_size*i; - - } - } - - return vgmstream; - - /* clean up anything we may have opened */ -fail: - if (vgmstream) close_vgmstream(vgmstream); - return NULL; -} - - -// FSB3 & FSB4 MPEG TEST -VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE *streamFile) { -#ifdef VGM_USE_MPEG - VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - off_t start_offset; - int channel_count, channels, loop_flag, fsb_mainheader_len, fsb_subheader_len, FSBFlag, rate; - long sample_rate = 0, num_samples = 0; - uint16_t mp3ID; - -#ifdef VGM_USE_MPEG - mpeg_codec_data *mpeg_data = NULL; - coding_t mpeg_coding_type = coding_MPEG1_L3; -#endif - - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("fsb",filename_extension(filename))) goto fail; - - /* check header */ - if (read_32bitBE(0x00,streamFile) == 0x46534233) /* "FSB3" */ - { - fsb_mainheader_len = 0x18; - } - else if (read_32bitBE(0x00,streamFile) == 0x46534234) /* "FSB4" */ - { - fsb_mainheader_len = 0x30; - } - else - { - goto fail; - } - - fsb_subheader_len = read_16bitLE(fsb_mainheader_len,streamFile); - - /* "Check if the FSB is used as conatiner or as single file" */ - if (read_32bitBE(0x04,streamFile) != 0x01000000) - goto fail; - -#if 0 - /* Check channel count, multi-channel not supported and will be refused */ - if ((read_16bitLE(0x6E,streamFile) != 0x2) && - (read_16bitLE(0x6E,streamFile) != 0x1)) - goto fail; -#endif - - start_offset = fsb_mainheader_len+fsb_subheader_len+0x10; - - /* Check the MPEG Sync Header */ - mp3ID = read_16bitBE(start_offset,streamFile); - if ((mp3ID&0xFFE0) != 0xFFE0) - goto fail; - - channel_count = read_16bitLE(fsb_mainheader_len+0x3E,streamFile); - if (channel_count != 1 && channel_count != 2) - goto fail; - - FSBFlag = read_32bitLE(fsb_mainheader_len+0x30,streamFile); - if (FSBFlag&0x2 || FSBFlag&0x4 || FSBFlag&0x6) - loop_flag = 1; - - num_samples = (read_32bitLE(fsb_mainheader_len+0x2C,streamFile)); - - mpeg_data = init_mpeg_codec_data(streamFile, start_offset, -1, -1, &mpeg_coding_type, &rate, &channels); // -1 to not check sample rate or channels - if (!mpeg_data) goto fail; - - //channel_count = channels; - sample_rate = rate; - - /* build the VGMSTREAM */ - vgmstream = allocate_vgmstream(channel_count,loop_flag); - if (!vgmstream) goto fail; - - vgmstream->sample_rate = sample_rate; - vgmstream->num_samples = num_samples; - vgmstream->channels = channel_count; - - /* Still WIP */ - if (loop_flag) { - vgmstream->loop_start_sample = read_32bitLE(fsb_mainheader_len+0x28,streamFile); - vgmstream->loop_end_sample = read_32bitLE(fsb_mainheader_len+0x2C,streamFile); - } - vgmstream->meta_type = meta_FSB_MPEG; - - /* NOTE: num_samples seems to be quite wrong for MPEG */ - vgmstream->codec_data = mpeg_data; - vgmstream->layout_type = layout_mpeg; - vgmstream->coding_type = mpeg_coding_type; - -#if 0 - if (loop_flag) { - vgmstream->loop_start_sample = read_32bitBE(0x18,streamFile)/960*1152; - vgmstream->loop_end_sample = read_32bitBE(0x1C,streamFile)/960*1152; - } -#endif - - /* open the file for reading */ - { - int i; - STREAMFILE * file; - if(vgmstream->layout_type == layout_interleave) - { - file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - if (!file) goto fail; - for (i=0;ich[i].streamfile = file; - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset+ - vgmstream->interleave_block_size*i; - } - } - - else if(vgmstream->layout_type == layout_mpeg) { - for (i=0;ich[i].streamfile = streamFile->open(streamFile,filename,MPEG_BUFFER_SIZE); - vgmstream->ch[i].channel_start_offset= vgmstream->ch[i].offset=start_offset; - } - - } - else { goto fail; } - } - - return vgmstream; - - /* clean up anything we may have opened */ -fail: - if (mpeg_data) { - mpg123_delete(mpeg_data->m); - free(mpeg_data); - - if (vgmstream) { - vgmstream->codec_data = NULL; - } - } - if (vgmstream) close_vgmstream(vgmstream); -#endif - return NULL; -} - -#if 0 -// FSB5 MPEG -VGMSTREAM * init_vgmstream_fsb5_mpeg(STREAMFILE *streamFile) { - VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - off_t start_offset; - int channel_count, channels, loop_flag, fsb_mainheader_len, fsb_subheader_len, FSBFlag, rate; - long sample_rate = 0, num_samples = 0; - uint16_t mp3ID; - -#ifdef VGM_USE_MPEG - mpeg_codec_data *mpeg_data = NULL; - coding_t mpeg_coding_type = coding_MPEG1_L3; -#endif - - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("fsb",filename_extension(filename))) goto fail; - - /* check header */ - if (read_32bitBE(0x00,streamFile) == 0x46534235) /* "FSB5" */ - { - fsb_mainheader_len = 0x3C; - } - else - { - goto fail; - } - - //fsb_subheader_len = read_16bitLE(fsb_mainheader_len,streamFile); - - /* "Check if the FSB is used as conatiner or as single file" */ - if (read_32bitBE(0x04,streamFile) != 0x01000000) - goto fail; - -#if 0 - /* Check channel count, multi-channel not supported and will be refused */ - if ((read_16bitLE(0x6E,streamFile) != 0x2) && - (read_16bitLE(0x6E,streamFile) != 0x1)) - goto fail; -#endif - - start_offset = fsb_mainheader_len+fsb_subheader_len+0x10; - - /* Check the MPEG Sync Header */ - mp3ID = read_16bitBE(start_offset,streamFile); - if ((mp3ID&0xFFE0) != 0xFFE0) - goto fail; - - channel_count = read_16bitLE(fsb_mainheader_len+0x3E,streamFile); - if (channel_count != 1 && channel_count != 2) - goto fail; - - FSBFlag = read_32bitLE(fsb_mainheader_len+0x30,streamFile); - if (FSBFlag&0x2 || FSBFlag&0x4 || FSBFlag&0x6) - loop_flag = 1; - - num_samples = (read_32bitLE(fsb_mainheader_len+0x2C,streamFile)); - -#ifdef VGM_USE_MPEG - mpeg_data = init_mpeg_codec_data(streamFile, start_offset, -1, -1, &mpeg_coding_type, &rate, &channels); // -1 to not check sample rate or channels - if (!mpeg_data) goto fail; - - //channel_count = channels; - sample_rate = rate; - -#else - // reject if no MPEG support - goto fail; -#endif - - /* build the VGMSTREAM */ - vgmstream = allocate_vgmstream(channel_count,loop_flag); - if (!vgmstream) goto fail; - - vgmstream->sample_rate = sample_rate; - vgmstream->num_samples = num_samples; - vgmstream->channels = channel_count; - - /* Still WIP */ - if (loop_flag) { - vgmstream->loop_start_sample = read_32bitLE(fsb_mainheader_len+0x28,streamFile); - vgmstream->loop_end_sample = read_32bitLE(fsb_mainheader_len+0x2C,streamFile); - } - vgmstream->meta_type = meta_FSB_MPEG; - -#ifdef VGM_USE_MPEG - /* NOTE: num_samples seems to be quite wrong for MPEG */ - vgmstream->codec_data = mpeg_data; - vgmstream->layout_type = layout_mpeg; - vgmstream->coding_type = mpeg_coding_type; -#else - // reject if no MPEG support - goto fail; -#endif - - -#if 0 - if (loop_flag) { - vgmstream->loop_start_sample = read_32bitBE(0x18,streamFile)/960*1152; - vgmstream->loop_end_sample = read_32bitBE(0x1C,streamFile)/960*1152; - } -#endif - - /* open the file for reading */ - { - int i; - STREAMFILE * file; - if(vgmstream->layout_type == layout_interleave) - { - file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - if (!file) goto fail; - for (i=0;ich[i].streamfile = file; - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset+ - vgmstream->interleave_block_size*i; - } - } - -#ifdef VGM_USE_MPEG - else if(vgmstream->layout_type == layout_mpeg) { - for (i=0;ich[i].streamfile = streamFile->open(streamFile,filename,MPEG_BUFFER_SIZE); - vgmstream->ch[i].channel_start_offset= vgmstream->ch[i].offset=start_offset; - } - - } -#endif - else { goto fail; } - } - - return vgmstream; - - /* clean up anything we may have opened */ -fail: -#ifdef VGM_USE_MPEG - if (mpeg_data) { - mpg123_delete(mpeg_data->m); - free(mpeg_data); - - if (vgmstream) { - vgmstream->codec_data = NULL; - } - } -#endif - if (vgmstream) close_vgmstream(vgmstream); - return NULL; -} -#endif diff --git a/Frameworks/vgmstream/vgmstream/src/meta/fsb5.c b/Frameworks/vgmstream/vgmstream/src/meta/fsb5.c index 8ffde4e55..240bd55c9 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/fsb5.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/fsb5.c @@ -15,7 +15,7 @@ VGMSTREAM * init_vgmstream_fsb5(STREAMFILE *streamFile) { int NumSamples; int ChannelCount; int SampleRate; - int DSPInfoStart; + int DSPInfoStart = 0; int SampleHeaderStart, SampleHeaderLength, NameTableLength, SampleDataLength, CodingID, SampleMode; int ExtraFlag, ExtraFlagStart, ExtraFlagType, ExtraFlagSize, ExtraFlagEnd; @@ -298,3 +298,155 @@ fail: if (vgmstream) close_vgmstream(vgmstream); return NULL; } + +#if 0 +// FSB5 MPEG +VGMSTREAM * init_vgmstream_fsb5_mpeg(STREAMFILE *streamFile) { + VGMSTREAM * vgmstream = NULL; + char filename[PATH_LIMIT]; + off_t start_offset; + int channel_count, channels, loop_flag, fsb_mainheader_len, fsb_subheader_len, FSBFlag, rate; + long sample_rate = 0, num_samples = 0; + uint16_t mp3ID; + +#ifdef VGM_USE_MPEG + mpeg_codec_data *mpeg_data = NULL; + coding_t mpeg_coding_type = coding_MPEG1_L3; +#endif + + /* check extension, case insensitive */ + streamFile->get_name(streamFile,filename,sizeof(filename)); + if (strcasecmp("fsb",filename_extension(filename))) goto fail; + + /* check header */ + if (read_32bitBE(0x00,streamFile) == 0x46534235) /* "FSB5" */ + { + fsb_mainheader_len = 0x3C; + } + else + { + goto fail; + } + + //fsb_subheader_len = read_16bitLE(fsb_mainheader_len,streamFile); + + /* "Check if the FSB is used as conatiner or as single file" */ + if (read_32bitBE(0x04,streamFile) != 0x01000000) + goto fail; + +#if 0 + /* Check channel count, multi-channel not supported and will be refused */ + if ((read_16bitLE(0x6E,streamFile) != 0x2) && + (read_16bitLE(0x6E,streamFile) != 0x1)) + goto fail; +#endif + + start_offset = fsb_mainheader_len+fsb_subheader_len+0x10; + + /* Check the MPEG Sync Header */ + mp3ID = read_16bitBE(start_offset,streamFile); + if ((mp3ID&0xFFE0) != 0xFFE0) + goto fail; + + channel_count = read_16bitLE(fsb_mainheader_len+0x3E,streamFile); + if (channel_count != 1 && channel_count != 2) + goto fail; + + FSBFlag = read_32bitLE(fsb_mainheader_len+0x30,streamFile); + if (FSBFlag&0x2 || FSBFlag&0x4 || FSBFlag&0x6) + loop_flag = 1; + + num_samples = (read_32bitLE(fsb_mainheader_len+0x2C,streamFile)); + +#ifdef VGM_USE_MPEG + mpeg_data = init_mpeg_codec_data(streamFile, start_offset, -1, -1, &mpeg_coding_type, &rate, &channels); // -1 to not check sample rate or channels + if (!mpeg_data) goto fail; + + //channel_count = channels; + sample_rate = rate; + +#else + // reject if no MPEG support + goto fail; +#endif + + /* build the VGMSTREAM */ + vgmstream = allocate_vgmstream(channel_count,loop_flag); + if (!vgmstream) goto fail; + + vgmstream->sample_rate = sample_rate; + vgmstream->num_samples = num_samples; + vgmstream->channels = channel_count; + + /* Still WIP */ + if (loop_flag) { + vgmstream->loop_start_sample = read_32bitLE(fsb_mainheader_len+0x28,streamFile); + vgmstream->loop_end_sample = read_32bitLE(fsb_mainheader_len+0x2C,streamFile); + } + vgmstream->meta_type = meta_FSB_MPEG; + +#ifdef VGM_USE_MPEG + /* NOTE: num_samples seems to be quite wrong for MPEG */ + vgmstream->codec_data = mpeg_data; + vgmstream->layout_type = layout_mpeg; + vgmstream->coding_type = mpeg_coding_type; +#else + // reject if no MPEG support + goto fail; +#endif + + +#if 0 + if (loop_flag) { + vgmstream->loop_start_sample = read_32bitBE(0x18,streamFile)/960*1152; + vgmstream->loop_end_sample = read_32bitBE(0x1C,streamFile)/960*1152; + } +#endif + + /* open the file for reading */ + { + int i; + STREAMFILE * file; + if(vgmstream->layout_type == layout_interleave) + { + file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); + if (!file) goto fail; + for (i=0;ich[i].streamfile = file; + vgmstream->ch[i].channel_start_offset= + vgmstream->ch[i].offset=start_offset+ + vgmstream->interleave_block_size*i; + } + } + +#ifdef VGM_USE_MPEG + else if(vgmstream->layout_type == layout_mpeg) { + for (i=0;ich[i].streamfile = streamFile->open(streamFile,filename,MPEG_BUFFER_SIZE); + vgmstream->ch[i].channel_start_offset= vgmstream->ch[i].offset=start_offset; + } + + } +#endif + else { goto fail; } + } + + return vgmstream; + + /* clean up anything we may have opened */ +fail: +#ifdef VGM_USE_MPEG + if (mpeg_data) { + mpg123_delete(mpeg_data->m); + free(mpeg_data); + + if (vgmstream) { + vgmstream->codec_data = NULL; + } + } +#endif + if (vgmstream) close_vgmstream(vgmstream); + return NULL; +} +#endif diff --git a/Frameworks/vgmstream/vgmstream/src/meta/g1l.c b/Frameworks/vgmstream/vgmstream/src/meta/g1l.c index 17d9dd2a9..7ea4efe32 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/g1l.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/g1l.c @@ -1,118 +1,106 @@ #include "meta.h" #include "../util.h" -// Koei Tecmo G1L, found in the Warriors games -VGMSTREAM * init_vgmstream_g1l(STREAMFILE *streamFile) { +#include "../coding/coding.h" + +static VGMSTREAM * init_vgmstream_kt_wiibgm_offset(STREAMFILE *streamFile, off_t offset); + +/* Koei Tecmo G1L - pack format, sometimes containing a single stream + * + * It probably makes more sense to extract it externally, it's here mainly for Hyrule Warriors */ +VGMSTREAM * init_vgmstream_kt_g1l(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; + int type, num_streams, target_stream = 1; + off_t stream_offset; + int32_t (*read_32bit)(off_t,STREAMFILE*) = NULL; - coding_t coding_type; - - off_t head_offset; - - int channel_count; - int loop_flag; - off_t start_offset; - - /* check extension, case insensitive */ - streamFile->get_name(streamFile, filename, sizeof(filename)); - if (strcasecmp("g1l", filename_extension(filename))) + if (!check_extensions(streamFile,"g1l")) goto fail; - /* check header */ - if ((uint32_t)read_32bitBE(0, streamFile) != 0x47314C5F) /* "G1L_" */ - goto fail; - if ((uint32_t)read_32bitBE(0x1c, streamFile) != 0x57696942) /* "WiiB" */ + if ((read_32bitBE(0x0, streamFile) != 0x47314C5F /* "G1L_" (BE) */ + || read_32bitBE(0x0, streamFile) != 0x5F4C3147) /* "_L1G" (LE) */ + && read_32bitBE(0x4, streamFile) != 0x30303030) /* "0000" (version?) */ goto fail; - /* check type details */ - if (read_32bitBE(0x30, streamFile) > 0) - loop_flag = 1; - else - loop_flag = 0; - channel_count = read_8bit(0x3f, streamFile); - - - coding_type = coding_NGC_DSP; - - - if (channel_count < 1) goto fail; - - /* build the VGMSTREAM */ - - vgmstream = allocate_vgmstream(channel_count, loop_flag); - if (!vgmstream) goto fail; - - /* fill in the vital statistics */ - vgmstream->num_samples = read_32bitBE(0x2c, streamFile); - vgmstream->sample_rate = (uint16_t)read_16bitBE(0x42, streamFile); - /* channels and loop flag are set by allocate_vgmstream */ - - vgmstream->loop_start_sample = read_32bitBE(0x30, streamFile); - vgmstream->loop_end_sample = vgmstream->num_samples; - - - vgmstream->coding_type = coding_type; - if (channel_count == 1) - vgmstream->layout_type = layout_none; - - vgmstream->layout_type = layout_interleave_byte; - - vgmstream->meta_type = meta_G1L; - - vgmstream->interleave_block_size = 0x1; - - if (vgmstream->coding_type == coding_NGC_DSP) { - off_t coef_offset = 0x78; - - int i, j; - int coef_spacing = 0x60; - - for (j = 0; jchannels; j++) { - for (i = 0; i<16; i++) { - vgmstream->ch[j].adpcm_coef[i] = read_16bitBE(coef_offset + j*coef_spacing + i * 2, streamFile); - } - } - - start_offset = 0x81c; + if (read_32bitBE(0x0, streamFile) == 0x47314C5F ) { + read_32bit = read_32bitBE; + } else { + read_32bit = read_32bitLE; } -#ifdef VGM_USE_MAIATRAC3PLUS - else if (vgmstream->coding_type == coding_AT3plus) { - start_offset = 0xc4; - } -#endif - else - goto fail; + /* 0x08 filesize */ + /* 0x0c first file offset (same as 0x18) */ + type = read_32bit(0x10,streamFile); + num_streams = read_32bit(0x14,streamFile); + if (target_stream < 0 || target_stream > num_streams) goto fail; + if (target_stream==0) target_stream = 1; + stream_offset = read_32bit(0x18 + 0x4*(target_stream-1),streamFile); + /* filesize = stream_offset - stream_next_offset*/ + switch(type) { /* type may not be correct */ + case 0x09: /* DSP (WiiBGM) from Hyrule Warriors (Wii U) */ + vgmstream = init_vgmstream_kt_wiibgm_offset(streamFile, stream_offset); + break; + case 0x01: /* ATRAC3plus (RIFF) from One Piece Pirate Warriors 2 (PS3) */ + case 0x00: /* OGG (KOVS) from Romance Three Kindgoms 13 (PC)*/ + case 0x0A: /* OGG (KOVS) from Dragon Quest Heroes (PC)*/ + default: + goto fail; + } - /* open the file for reading by each channel */ - { - int i; - for (i = 0; ilayout_type == layout_interleave_shortblock) - vgmstream->ch[i].streamfile = streamFile->open(streamFile, filename, - vgmstream->interleave_block_size); - else if (vgmstream->layout_type == layout_interleave) - vgmstream->ch[i].streamfile = streamFile->open(streamFile, filename, - STREAMFILE_DEFAULT_BUFFER_SIZE); - else - vgmstream->ch[i].streamfile = streamFile->open(streamFile, filename, - 0x1000); - - if (!vgmstream->ch[i].streamfile) goto fail; - - vgmstream->ch[i].channel_start_offset = - vgmstream->ch[i].offset = - start_offset + i*vgmstream->interleave_block_size; - } - } return vgmstream; - - /* clean up anything we may have opened */ fail: - if (vgmstream) close_vgmstream(vgmstream); + close_vgmstream(vgmstream); return NULL; } + +/* Koei Tecmo "WiiBGM" DSP format - found in Hyrule Warriors, Romance of the Three Kingdoms 12 */ +VGMSTREAM * init_vgmstream_kt_wiibgm(STREAMFILE *streamFile) { + return init_vgmstream_kt_wiibgm_offset(streamFile, 0x0); +} + +static VGMSTREAM * init_vgmstream_kt_wiibgm_offset(STREAMFILE *streamFile, off_t offset) { + VGMSTREAM * vgmstream = NULL; + int loop_flag, channel_count; + off_t start_offset; + + if (!check_extensions(streamFile,"g1l,dsp")) + goto fail; + + if (read_32bitBE(offset+0x0, streamFile) != 0x57696942 && /* "WiiB" */ + read_32bitBE(offset+0x4, streamFile) != 0x474D0000) /* "GM\0\0" */ + goto fail; + + /* check type details */ + loop_flag = read_32bitBE(offset+0x14, streamFile) > 0; + channel_count = read_8bit(offset+0x23, streamFile); + + /* build the VGMSTREAM */ + vgmstream = allocate_vgmstream(channel_count, loop_flag); + if (!vgmstream) goto fail; + + /* fill in the vital statistics */ + vgmstream->num_samples = read_32bitBE(offset+0x10, streamFile); + vgmstream->sample_rate = (uint16_t)read_16bitBE(offset+0x26, streamFile); + vgmstream->loop_start_sample = read_32bitBE(offset+0x14, streamFile); + vgmstream->loop_end_sample = vgmstream->num_samples; + + vgmstream->coding_type = coding_NGC_DSP; + vgmstream->layout_type = layout_interleave_byte; + vgmstream->meta_type = meta_KT_WIIBGM; + + vgmstream->interleave_block_size = 0x1; + + dsp_read_coefs_be(vgmstream,streamFile, offset+0x5C, 0x60); + start_offset = offset+0x800; + + if (!vgmstream_open_stream(vgmstream,streamFile,start_offset)) + goto fail; + return vgmstream; + + fail: + close_vgmstream(vgmstream); + return NULL; +} diff --git a/Frameworks/vgmstream/vgmstream/src/meta/genh.c b/Frameworks/vgmstream/vgmstream/src/meta/genh.c index a72654857..3f7cefd8d 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/genh.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/genh.c @@ -215,7 +215,7 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) { vgmstream->layout_type = layout_none; break; case coding_NGC_DTK: - vgmstream->layout_type = layout_dtk_interleave; + vgmstream->layout_type = layout_none; break; case coding_NGC_DSP: if (dsp_interleave_type == 0) { diff --git a/Frameworks/vgmstream/vgmstream/src/meta/gsp_gsb.c b/Frameworks/vgmstream/vgmstream/src/meta/gsp_gsb.c index dba787108..d4c06d449 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/gsp_gsb.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/gsp_gsb.c @@ -1,112 +1,145 @@ #include "meta.h" #include "../layout/layout.h" -#include "../util.h" +#include "../coding/coding.h" -/* GSP+GSB - 2008-11-28 - manakoAT -Super Swing Golf 1 & 2 (WII) */ +/* GSP+GSB - from Tecmo's Super Swing Golf 1 & 2 (WII), Quantum Theory (PS3/X360) */ VGMSTREAM * init_vgmstream_gsp_gsb(STREAMFILE *streamFile) { - VGMSTREAM * vgmstream = NULL; STREAMFILE * streamFileGSP = NULL; - char filename[PATH_LIMIT]; - char filenameGSP[PATH_LIMIT]; - int channel_count; - int loop_flag; - int header_len; - int i; - off_t coef1_start; - off_t coef2_start; - off_t start_offset; + int loop_flag, channel_count; + off_t start_offset, chunk_offset, first_offset; + size_t datasize; + int codec_id; - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("gsb",filename_extension(filename))) goto fail; + /* check extensions */ + if (!check_extensions(streamFile,"gsb")) + goto fail; - - strcpy(filenameGSP,filename); - strcpy(filenameGSP+strlen(filenameGSP)-3,"gsp"); - - streamFileGSP = streamFile->open(streamFile,filenameGSP,STREAMFILE_DEFAULT_BUFFER_SIZE); + streamFileGSP = open_stream_ext(streamFile, "gsp"); if (!streamFileGSP) goto fail; /* check header */ if (read_32bitBE(0x00,streamFileGSP) != 0x47534E44) /* "GSND" */ goto fail; + /* 0x04: version?, 0x08: 1?, 0x0c: 0?, */ + first_offset = read_32bitBE(0x10,streamFileGSP); /* usually 0x14*/ + + if (!find_chunk_be(streamFileGSP, 0x44415441,first_offset,1, &chunk_offset,NULL)) goto fail; /*"DATA"*/ + channel_count = read_16bitBE(chunk_offset+0x0e,streamFileGSP); + if (!find_chunk_be(streamFileGSP, 0x42534943,first_offset,1, &chunk_offset,NULL)) goto fail; /*"BSIC"*/ + loop_flag = read_8bit(chunk_offset+0x0c,streamFileGSP); - channel_count = (uint16_t)read_16bitBE(0x3A,streamFileGSP); - loop_flag = (read_32bitBE(0x64,streamFileGSP) != 0xFFFFFFFF); - header_len = read_32bitBE(0x1C,streamFileGSP); - - coef1_start = header_len-0x4C; - coef2_start = header_len-0x1C; - /* build the VGMSTREAM */ vgmstream = allocate_vgmstream(channel_count,loop_flag); if (!vgmstream) goto fail; - /* fill in the vital statistics */ - vgmstream->channels = channel_count; - vgmstream->sample_rate = read_32bitBE(0x34,streamFileGSP); - vgmstream->coding_type = coding_NGC_DSP; - if(loop_flag) { - vgmstream->loop_start_sample = read_32bitBE(0x64,streamFileGSP); - vgmstream->loop_end_sample = read_32bitBE(0x68,streamFileGSP); - } - if (channel_count == 1) { - vgmstream->layout_type = layout_gsb_blocked; - } else if (channel_count > 1) { - vgmstream->layout_type = layout_gsb_blocked; - vgmstream->interleave_block_size = read_32bitBE(header_len-0x64,streamFileGSP); - } + if (!find_chunk_be(streamFileGSP, 0x48454144,first_offset,1, &chunk_offset,NULL)) goto fail; /*"HEAD"*/ + /* 0x00: header_size, 0x04: num_chunks */ - vgmstream->meta_type = meta_GSP_GSB; - - /* open the file for reading by each channel */ - { - for (i=0;ich[i].streamfile = streamFile->open(streamFile,filename,vgmstream->interleave_block_size); - - if (!vgmstream->ch[i].streamfile) goto fail; - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=i*vgmstream->interleave_block_size; - } - } + if (!find_chunk_be(streamFileGSP, 0x44415441,first_offset,1, &chunk_offset,NULL)) goto fail; /*"DATA"*/ + /* 0x00: filesize, 0x0c: always 10?, 0x10: always 0?, 0x18: always 0? */ + datasize = read_32bitBE(chunk_offset+0x00,streamFileGSP); + codec_id = read_32bitBE(chunk_offset+0x04,streamFileGSP); + vgmstream->sample_rate = read_32bitBE(chunk_offset+0x08,streamFileGSP); + vgmstream->channels = channel_count; /* 0x0e */ + vgmstream->num_samples = read_32bitBE(chunk_offset+0x14,streamFileGSP); + /* 0x1c: unk (varies with codec_id) */ - if (vgmstream->coding_type == coding_NGC_DSP) { - int i; - for (i=0;i<16;i++) { - vgmstream->ch[0].adpcm_coef[i] = read_16bitBE(coef1_start+i*2,streamFileGSP); - } - if (vgmstream->channels == 2) { - for (i=0;i<16;i++) { - vgmstream->ch[1].adpcm_coef[i] = read_16bitBE(coef2_start+i*2,streamFileGSP); - } - } - } + if (!find_chunk_be(streamFileGSP, 0x42534943,first_offset,1, &chunk_offset,NULL)) goto fail; /*"BSIC"*/ + /* 0x00+: probably volume/pan/etc */ + vgmstream->loop_start_sample = read_32bitBE(chunk_offset+0x10,streamFileGSP); + vgmstream->loop_end_sample = read_32bitBE(chunk_offset+0x14,streamFileGSP); + + //if (!find_chunk_be(streamFileGSP, 0x4E414D45,first_offset,1, &chunk_offset,NULL)) goto fail; /*"NAME"*/ + /* 0x00: name_size, 0x04+: name*/ - /* Calc num_samples */ start_offset = 0x0; - gsb_block_update(start_offset,vgmstream); - vgmstream->num_samples=0; - do { - - vgmstream->num_samples += vgmstream->current_block_size*14/8; - gsb_block_update(vgmstream->next_block_offset,vgmstream); - } while (vgmstream->next_block_offsetcoding_type = coding_NGC_DSP; + vgmstream->layout_type = layout_gsb_blocked; - close_streamfile(streamFileGSP); streamFileGSP=NULL; + if (!find_chunk_be(streamFileGSP, 0x47434558,first_offset,1, &chunk_offset,NULL)) goto fail; /*"GCEX"*/ + //vgmstream->current_block_size = read_32bitBE(chunk_offset+0x00,streamFileGSP); + block_header_size = read_32bitBE(chunk_offset+0x04,streamFileGSP); + num_blocks = read_32bitBE(chunk_offset+0x08,streamFileGSP); + vgmstream->num_samples = (datasize - block_header_size * num_blocks) / 8 / vgmstream->channels * 14; + /* 0x0c+: unk */ + + dsp_read_coefs_be(vgmstream, streamFileGSP, chunk_offset+0x18, 0x30); + break; + } +#ifdef VGM_USE_FFMPEG + case 8: { /* ATRAC3 */ + ffmpeg_codec_data *ffmpeg_data = NULL; + uint8_t buf[100]; + int32_t bytes, block_size, encoder_delay, joint_stereo, max_samples; + + block_size = 0x98 * vgmstream->channels; + joint_stereo = 0; + max_samples = (datasize / block_size) * 1024; + encoder_delay = max_samples - vgmstream->num_samples; /* todo guessed */ + + vgmstream->num_samples += encoder_delay; + /* make a fake riff so FFmpeg can parse the ATRAC3 */ + bytes = ffmpeg_make_riff_atrac3(buf,100, vgmstream->num_samples, datasize, vgmstream->channels, vgmstream->sample_rate, block_size, joint_stereo, encoder_delay); + if (bytes <= 0) + goto fail; + + ffmpeg_data = init_ffmpeg_header_offset(streamFile, buf,bytes, start_offset,datasize); + if ( !ffmpeg_data ) goto fail; + vgmstream->codec_data = ffmpeg_data; + vgmstream->coding_type = coding_FFmpeg; + vgmstream->layout_type = layout_none; + + vgmstream->loop_start_sample = (vgmstream->loop_start_sample / ffmpeg_data->blockAlign) * ffmpeg_data->frameSize; + vgmstream->loop_end_sample = (vgmstream->loop_end_sample / ffmpeg_data->blockAlign) * ffmpeg_data->frameSize; + + break; + } + + case 9: { /* XMA2 */ + ffmpeg_codec_data *ffmpeg_data = NULL; + uint8_t buf[200]; + int32_t bytes; + + if (!find_chunk_be(streamFileGSP, 0x584D4558,first_offset,1, &chunk_offset,NULL)) goto fail; /*"XMEX"*/ + /* 0x00: fmt0x166 header (BE), 0x34: seek table */ + + bytes = ffmpeg_make_riff_xma2_from_fmt(buf,200, chunk_offset,0x34, datasize, streamFileGSP, 1); + if (bytes <= 0) goto fail; + + ffmpeg_data = init_ffmpeg_header_offset(streamFile, buf,bytes, start_offset,datasize); + if ( !ffmpeg_data ) goto fail; + vgmstream->codec_data = ffmpeg_data; + vgmstream->coding_type = coding_FFmpeg; + vgmstream->layout_type = layout_none; + + break; + } +#endif + default: + goto fail; + } + vgmstream->meta_type = meta_GSP_GSB; + + + /* open the file for reading */ + if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) ) + goto fail; + + close_streamfile(streamFileGSP); return vgmstream; - - /* clean up anything we may have opened */ fail: if (streamFileGSP) close_streamfile(streamFileGSP); - if (vgmstream) close_vgmstream(vgmstream); + close_vgmstream(vgmstream); return NULL; } diff --git a/Frameworks/vgmstream/vgmstream/src/meta/mca.c b/Frameworks/vgmstream/vgmstream/src/meta/mca.c index 518dd16b7..42ec643cb 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/mca.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/mca.c @@ -11,7 +11,7 @@ VGMSTREAM * init_vgmstream_mca(STREAMFILE *streamFile) { int channel_count; int loop_flag; int version; - size_t head_size, data_size; + size_t head_size, data_size, file_size; off_t start_offset, coef_offset, coef_start, coef_shift; int i, j; int coef_spacing; @@ -78,6 +78,16 @@ VGMSTREAM * init_vgmstream_mca(STREAMFILE *streamFile) { coef_offset = coef_start + coef_shift * 0x14; } + /* sanity check */ + file_size = get_streamfile_size(streamFile); + + if (start_offset + data_size > file_size) { + if (head_size + data_size > file_size) + goto fail; + + start_offset = file_size - data_size; + } + /* set up ADPCM coefs */ for (j = 0; jchannels; j++) { diff --git a/Frameworks/vgmstream/vgmstream/src/meta/meta.h b/Frameworks/vgmstream/vgmstream/src/meta/meta.h index 43cd1c693..c9f25671c 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/meta.h +++ b/Frameworks/vgmstream/vgmstream/src/meta/meta.h @@ -102,21 +102,24 @@ typedef struct { meta_t meta_type; layout_t layout_type; - // XOR setup with a single byte (SCD) - unsigned char scd_xor; - off_t scd_xor_len; + /* XOR setup (SCD) */ + int decryption_enabled; + void (*decryption_callback)(void *ptr, size_t size, size_t nmemb, void *datasource, int bytes_read); + uint8_t scd_xor; + off_t scd_xor_length; + } vgm_vorbis_info_t; VGMSTREAM * init_vgmstream_ogg_vorbis_callbacks(STREAMFILE *streamFile, const char * filename, ov_callbacks *callbacks, off_t other_header_bytes, const vgm_vorbis_info_t *vgm_inf); VGMSTREAM * init_vgmstream_sli_ogg(STREAMFILE * streamFile); +#endif VGMSTREAM * init_vgmstream_hca(STREAMFILE *streamFile); VGMSTREAM * init_vgmstream_hca_offset(STREAMFILE *streamFile, uint64_t start, uint64_t size); #ifdef VGM_USE_FFMPEG -ffmpeg_codec_data * init_ffmpeg_faux_riff(STREAMFILE *streamFile, int64_t fmt_offset, uint64_t stream_offset, uint64_t stream_size, int fmt_big_endian); ffmpeg_codec_data * init_ffmpeg_offset(STREAMFILE *streamFile, uint64_t start, uint64_t size); ffmpeg_codec_data * init_ffmpeg_header_offset(STREAMFILE *streamFile, uint8_t * header, uint64_t header_size, uint64_t start, uint64_t size); @@ -138,7 +141,6 @@ VGMSTREAM * init_vgmstream_akb(STREAMFILE *streamFile); #endif VGMSTREAM * init_vgmstream_sfl(STREAMFILE * streamFile); -#endif VGMSTREAM * init_vgmstream_sadb(STREAMFILE *streamFile); @@ -182,18 +184,12 @@ VGMSTREAM * init_vgmstream_aus(STREAMFILE * streamFile); VGMSTREAM * init_vgmstream_rws(STREAMFILE * streamFile); -VGMSTREAM * init_vgmstream_fsb1(STREAMFILE * streamFile); - -VGMSTREAM * init_vgmstream_fsb3(STREAMFILE * streamFile); - -VGMSTREAM * init_vgmstream_fsb4(STREAMFILE * streamFile); +VGMSTREAM * init_vgmstream_fsb(STREAMFILE * streamFile); VGMSTREAM * init_vgmstream_fsb4_wav(STREAMFILE * streamFile); VGMSTREAM * init_vgmstream_fsb5(STREAMFILE * streamFile); -VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE * streamFile); - VGMSTREAM * init_vgmstream_rwx(STREAMFILE * streamFile); VGMSTREAM * init_vgmstream_xwb(STREAMFILE * streamFile); @@ -606,7 +602,7 @@ VGMSTREAM * init_vgmstream_ps2_strlr(STREAMFILE* streamFile); VGMSTREAM * init_vgmstream_lsf_n1nj4n(STREAMFILE* streamFile); -VGMSTREAM * init_vgmstream_ps3_vawx(STREAMFILE* streamFile); +VGMSTREAM * init_vgmstream_vawx(STREAMFILE* streamFile); VGMSTREAM * init_vgmstream_pc_snds(STREAMFILE* streamFile); @@ -654,7 +650,8 @@ VGMSTREAM * init_vgmstream_bfstm(STREAMFILE* streamFile); VGMSTREAM * init_vgmstream_bfwav(STREAMFILE* streamFile); -VGMSTREAM * init_vgmstream_g1l(STREAMFILE* streamFile); +VGMSTREAM * init_vgmstream_kt_g1l(STREAMFILE* streamFile); +VGMSTREAM * init_vgmstream_kt_wiibgm(STREAMFILE* streamFile); VGMSTREAM * init_vgmstream_mca(STREAMFILE* streamFile); @@ -666,4 +663,8 @@ VGMSTREAM * init_vgmstream_ps2_svag_snk(STREAMFILE* streamFile); VGMSTREAM * init_vgmstream_xma(STREAMFILE* streamFile); #endif -#endif +VGMSTREAM * init_vgmstream_ps2_vds_vdm(STREAMFILE* streamFile); + +VGMSTREAM * init_vgmstream_x360_cxs(STREAMFILE* streamFile); + +#endif /*_META_H*/ diff --git a/Frameworks/vgmstream/vgmstream/src/meta/mp4.c b/Frameworks/vgmstream/vgmstream/src/meta/mp4.c index 4a6097e6c..3ea6b8c53 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/mp4.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/mp4.c @@ -58,7 +58,7 @@ int mp4_file_close( void* handle ) return 0; } -MP4FileProvider mp4_file_provider = { mp4_file_open, mp4_file_seek, mp4_file_get_size, mp4_file_read, mp4_file_write, mp4_file_close }; +MP4FileProvider mp4_file_provider = { mp4_file_open, mp4_file_seek, mp4_file_read, mp4_file_write, mp4_file_close, mp4_file_get_size }; #ifdef VGM_USE_FDKAAC VGMSTREAM * init_vgmstream_mp4_aac_offset(STREAMFILE *streamFile, uint64_t start, uint64_t size); diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ngc_adpdtk.c b/Frameworks/vgmstream/vgmstream/src/meta/ngc_adpdtk.c index 613ffcfe2..214ac2ac4 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ngc_adpdtk.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ngc_adpdtk.c @@ -29,7 +29,7 @@ VGMSTREAM * init_vgmstream_ngc_adpdtk(STREAMFILE *streamFile) { vgmstream->num_samples = file_size/32*28; vgmstream->sample_rate = 48000; vgmstream->coding_type = coding_NGC_DTK; - vgmstream->layout_type = layout_dtk_interleave; + vgmstream->layout_type = layout_none; vgmstream->meta_type = meta_NGC_ADPDTK; /* locality is such that two streamfiles is silly */ diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ngc_dsp_std.c b/Frameworks/vgmstream/vgmstream/src/meta/ngc_dsp_std.c index 5693e0bef..f90501f07 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ngc_dsp_std.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ngc_dsp_std.c @@ -597,27 +597,26 @@ fail: return NULL; } -/* 3DS IDSP two standard DSP headers (SSB4) */ +/* IDSP with multiple standard DSP headers - from SSB4 (3DS), Tekken Tag Tournament 2 (Wii U) */ +#define MULTI_IDSP_MAX_CHANNELS 8 VGMSTREAM * init_vgmstream_3ds_idsp(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - off_t idsp_offset = 0; + off_t idsp_offset = 0; off_t start_offset; off_t interleave; - struct dsp_header ch0_header,ch1_header; - int i; + struct dsp_header ch_headers[MULTI_IDSP_MAX_CHANNELS]; + int i, ch; int channel_count; /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - //if (strcasecmp("idsp",filename_extension(filename))) goto fail; + //if (check_extensions(streamFile,"idsp")) goto fail; /* check header magic */ - if( read_32bitBE(0x0,streamFile) != 0x49445350 ) + if( read_32bitBE(0x0,streamFile) != 0x49445350 ) /* "IDSP" */ { - /* check header magic */ + /* try NUS3 format instead */ if (read_32bitBE(0,streamFile) != 0x4E555333) goto fail; /* "NUS3" */ /* Header size */ @@ -630,106 +629,87 @@ VGMSTREAM * init_vgmstream_3ds_idsp(STREAMFILE *streamFile) { idsp_offset += read_32bitLE( 0x3C, streamFile ) + 8; idsp_offset += read_32bitLE( 0x44, streamFile ) + 8; idsp_offset += 8; + + /* check magic */ + if (read_32bitBE(idsp_offset,streamFile) != 0x49445350) goto fail; /* "IDSP" */ } - /* check magic */ - if (read_32bitBE(idsp_offset,streamFile) != 0x49445350) goto fail; /* "IDSP" */ - channel_count = read_32bitBE(idsp_offset+0x8, streamFile); - if(channel_count != 2 && channel_count != 1) goto fail; - - if (read_dsp_header(&ch0_header, idsp_offset+0x40, streamFile)) goto fail; - if (channel_count == 2 && read_dsp_header(&ch1_header, idsp_offset+0xa0, streamFile)) goto fail; - + if (channel_count > MULTI_IDSP_MAX_CHANNELS) goto fail; + start_offset = read_32bitBE(idsp_offset+0x28,streamFile) + idsp_offset; - interleave = 16; + interleave = 0x10; - /* check initial predictor/scale */ - if (ch0_header.initial_ps != (uint8_t)read_8bit(start_offset,streamFile)) - goto fail; - if (channel_count == 2 && ch1_header.initial_ps != (uint8_t)read_8bit(start_offset+interleave,streamFile)) - goto fail; + /* read standard dsp header per channel and do some validations */ + for (ch=0; ch < channel_count; ch++) { + /* read 0x60 header per channel */ + if (read_dsp_header(&ch_headers[ch], idsp_offset + 0x40 + 0x60*ch, streamFile)) goto fail; - /* check type==0 and gain==0 */ - if (ch0_header.format || ch0_header.gain || - (channel_count == 2 &&(ch1_header.format || ch1_header.gain))) - goto fail; + /* check initial values */ + if (ch_headers[ch].initial_ps != (uint8_t)read_8bit(start_offset + interleave*ch, streamFile)) goto fail; + if (ch_headers[ch].format || ch_headers[ch].gain) goto fail; - /* check for agreement */ - if ( channel_count == 2 &&( - ch0_header.sample_count != ch1_header.sample_count || - ch0_header.nibble_count != ch1_header.nibble_count || - ch0_header.sample_rate != ch1_header.sample_rate || - ch0_header.sample_rate != read_32bitBE(idsp_offset+0xc, streamFile) || - ch0_header.loop_flag != ch1_header.loop_flag || - ch0_header.loop_start_offset != ch1_header.loop_start_offset || - ch0_header.loop_end_offset != ch1_header.loop_end_offset + /* check for agreement with prev channel*/ + if (ch > 0 && ( + ch_headers[ch].sample_count != ch_headers[ch-1].sample_count || + ch_headers[ch].nibble_count != ch_headers[ch-1].nibble_count || + ch_headers[ch].sample_rate != ch_headers[ch-1].sample_rate || + ch_headers[ch].loop_flag != ch_headers[ch-1].loop_flag || + ch_headers[ch].loop_start_offset != ch_headers[ch-1].loop_start_offset || + ch_headers[ch].loop_end_offset != ch_headers[ch-1].loop_end_offset )) goto fail; - if (ch0_header.loop_flag) { - off_t loop_off; + +#if 0 //this is wrong for >2ch and will fail /* check loop predictor/scale */ - loop_off = ch0_header.loop_start_offset/8/channel_count*8; - loop_off = (loop_off/interleave*interleave*channel_count) + (loop_off%interleave); - if (ch0_header.loop_ps != (uint8_t)read_8bit(start_offset+loop_off,streamFile)) - goto fail; - if (channel_count == 2 && - ch1_header.loop_ps != (uint8_t)read_8bit(start_offset+loop_off+interleave,streamFile)) - goto fail; + if (ch_headers[ch].loop_flag) { + off_t loop_off; + loop_off = ch_headers[ch].loop_start_offset / 8 / channel_count * 8; + loop_off = (loop_off / interleave * interleave * channel_count) + (loop_off%interleave); + VGM_LOG("loop_ps=%lx, loop_off=%lx\n", ch_headers[ch].loop_ps, loop_off); + if (ch_headers[ch].loop_ps != (uint8_t)read_8bit(start_offset + loop_off + interleave*ch, streamFile)) goto fail; + } +#endif } + /* check first channel (implicitly all ch) agree with main sample rate */ + if (ch_headers[0].sample_rate != read_32bitBE(idsp_offset+0xc, streamFile)) goto fail; + /* build the VGMSTREAM */ - - vgmstream = allocate_vgmstream(channel_count,ch0_header.loop_flag); + vgmstream = allocate_vgmstream(channel_count,ch_headers[0].loop_flag); if (!vgmstream) goto fail; - /* fill in the vital statistics */ - vgmstream->num_samples = ch0_header.sample_count; - vgmstream->sample_rate = ch0_header.sample_rate; + vgmstream->num_samples = ch_headers[0].sample_count; + vgmstream->sample_rate = ch_headers[0].sample_rate; /* TODO: adjust for interleave? */ - vgmstream->loop_start_sample = dsp_nibbles_to_samples( - ch0_header.loop_start_offset); - vgmstream->loop_end_sample = dsp_nibbles_to_samples( - ch0_header.loop_end_offset)+1; + vgmstream->loop_start_sample = dsp_nibbles_to_samples(ch_headers[0].loop_start_offset); + vgmstream->loop_end_sample = dsp_nibbles_to_samples(ch_headers[0].loop_end_offset) + 1; vgmstream->coding_type = coding_NGC_DSP; - vgmstream->layout_type = channel_count == 2 ? layout_interleave : layout_none; + vgmstream->layout_type = channel_count > 1 ? layout_interleave : layout_none; vgmstream->interleave_block_size = interleave; vgmstream->meta_type = meta_3DS_IDSP; - /* coeffs */ - for (i=0;i<16;i++) { - vgmstream->ch[0].adpcm_coef[i] = ch0_header.coef[i]; - if (channel_count == 2) - vgmstream->ch[1].adpcm_coef[i] = ch1_header.coef[i]; - } - - /* initial history */ - /* always 0 that I've ever seen, but for completeness... */ - vgmstream->ch[0].adpcm_history1_16 = ch0_header.initial_hist1; - vgmstream->ch[0].adpcm_history2_16 = ch0_header.initial_hist2; - vgmstream->ch[0].streamfile = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - - if (channel_count == 2) { - vgmstream->ch[1].adpcm_history1_16 = ch1_header.initial_hist1; - vgmstream->ch[1].adpcm_history2_16 = ch1_header.initial_hist2; - vgmstream->ch[1].streamfile = vgmstream->ch[0].streamfile; + /* set DSP coefs/history */ + for (ch=0; ch < channel_count; ch++) { + for (i=0;i<16;i++) { + vgmstream->ch[ch].adpcm_coef[i] = ch_headers[ch].coef[i]; + } + /* always 0 that I've ever seen, but for completeness... */ + vgmstream->ch[ch].adpcm_history1_16 = ch_headers[ch].initial_hist1; + vgmstream->ch[ch].adpcm_history2_16 = ch_headers[ch].initial_hist2; } - if (!vgmstream->ch[0].streamfile) goto fail; /* open the file for reading */ - for (i=0;ich[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset+i*interleave; - } + if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) ) + goto fail; return vgmstream; fail: - /* clean up anything we may have opened */ - if (vgmstream) close_vgmstream(vgmstream); + close_vgmstream(vgmstream); return NULL; } @@ -2686,9 +2666,9 @@ VGMSTREAM * init_vgmstream_ngc_dsp_csmp(STREAMFILE *streamFile) { goto fail; if (header.loop_flag) { - off_t loop_off; +// off_t loop_off; /* check loop predictor/scale */ - loop_off = header.loop_start_offset/16*8; +// loop_off = header.loop_start_offset/16*8; /* Retro doesn't seem to abide by this */ // if (header.loop_ps != (uint8_t)read_8bit(current_offset + start_offset+loop_off,streamFile)) // goto fail; diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ogg_vorbis_file.c b/Frameworks/vgmstream/vgmstream/src/meta/ogg_vorbis_file.c index d29127f76..43648559f 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ogg_vorbis_file.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ogg_vorbis_file.c @@ -92,14 +92,9 @@ static size_t read_func_scd(void *ptr, size_t size, size_t nmemb, void * datasou items_read = bytes_read / size; - /* first bytes are xor'd with a constant byte */ - if (ov_streamfile->offset < ov_streamfile->scd_xor_len) { - int num_crypt = ov_streamfile->scd_xor_len-ov_streamfile->offset; - int i; - - if (num_crypt > bytes_read) num_crypt=bytes_read; - for (i=0;iscd_xor; + /* may be encrypted */ + if (ov_streamfile->decryption_enabled) { + ov_streamfile->decryption_callback(ptr, size, nmemb, ov_streamfile, bytes_read); } ov_streamfile->offset += items_read * size; @@ -238,13 +233,13 @@ VGMSTREAM * init_vgmstream_ogg_vorbis(STREAMFILE *streamFile) { callbacks.tell_func = tell_func; if (um3_ogg) { - inf.meta_type = meta_um3_ogg; + inf.meta_type = meta_OGG_UM3; } else if (kovs_ogg) { - inf.meta_type = meta_KOVS_ogg; + inf.meta_type = meta_OGG_KOVS; } else if (psych_ogg) { - inf.meta_type = meta_psych_ogg; + inf.meta_type = meta_OGG_PSYCH; } else { - inf.meta_type = meta_ogg_vorbis; + inf.meta_type = meta_OGG_VORBIS; } inf.layout_type = layout_ogg_vorbis; @@ -281,7 +276,7 @@ VGMSTREAM * init_vgmstream_ogg_vorbis_callbacks(STREAMFILE *streamFile, const ch default_callbacks.close_func = close_func; default_callbacks.tell_func = tell_func; - if (vgm_inf->scd_xor != 0) { + if (vgm_inf->decryption_enabled) { default_callbacks.read_func = read_func_scd; } @@ -292,8 +287,10 @@ VGMSTREAM * init_vgmstream_ogg_vorbis_callbacks(STREAMFILE *streamFile, const ch temp_streamfile.offset = 0; temp_streamfile.size = get_streamfile_size(temp_streamfile.streamfile); temp_streamfile.other_header_bytes = other_header_bytes; - temp_streamfile.scd_xor = vgm_inf->scd_xor; - temp_streamfile.scd_xor_len = vgm_inf->scd_xor_len; + temp_streamfile.decryption_enabled = vgm_inf->decryption_enabled; + temp_streamfile.decryption_callback = vgm_inf->decryption_callback; + temp_streamfile.scd_xor = vgm_inf->scd_xor; + temp_streamfile.scd_xor_length = vgm_inf->scd_xor_length; /* can we open this as a proper ogg vorbis file? */ memset(&temp_ovf, 0, sizeof(temp_ovf)); @@ -314,8 +311,10 @@ VGMSTREAM * init_vgmstream_ogg_vorbis_callbacks(STREAMFILE *streamFile, const ch data->ov_streamfile.offset = 0; data->ov_streamfile.size = get_streamfile_size(data->ov_streamfile.streamfile); data->ov_streamfile.other_header_bytes = other_header_bytes; - data->ov_streamfile.scd_xor = vgm_inf->scd_xor; - data->ov_streamfile.scd_xor_len = vgm_inf->scd_xor_len; + data->ov_streamfile.decryption_enabled = vgm_inf->decryption_enabled; + data->ov_streamfile.decryption_callback = vgm_inf->decryption_callback; + data->ov_streamfile.scd_xor = vgm_inf->scd_xor; + data->ov_streamfile.scd_xor_length = vgm_inf->scd_xor_length; /* open the ogg vorbis file for real */ if (ov_open_callbacks(&data->ov_streamfile, &data->ogg_vorbis_file, NULL, diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ps2.c b/Frameworks/vgmstream/vgmstream/src/meta/ps2.c new file mode 100644 index 000000000..dd29f9c87 --- /dev/null +++ b/Frameworks/vgmstream/vgmstream/src/meta/ps2.c @@ -0,0 +1,48 @@ +#include "meta.h" + +/* VDS/VDM - from Grafitti Kingdom / Rakugaki Oukoku 2 */ +VGMSTREAM * init_vgmstream_ps2_vds_vdm(STREAMFILE *streamFile) { + VGMSTREAM * vgmstream = NULL; + off_t start_offset; + int loop_flag, channel_count; + + /* check extension, case insensitive */ + if ( !check_extensions(streamFile,"vds,vdm")) + goto fail; + + if (read_32bitBE(0x00,streamFile) != 0x56445320 && /* "VDS " (music)*/ + read_32bitBE(0x00,streamFile) != 0x56444D20) /* "VDM " (voices) */ + goto fail; + + loop_flag = read_8bit(0x20,streamFile); + channel_count = read_32bitLE(0x10,streamFile); + + /* build the VGMSTREAM */ + vgmstream = allocate_vgmstream(channel_count,loop_flag); + if (!vgmstream) goto fail; + vgmstream->coding_type = coding_PSX; + vgmstream->layout_type = channel_count > 1 ? layout_interleave : layout_none; + vgmstream->meta_type = meta_PS2_VDS_VDM; + + start_offset = 0x800; + vgmstream->num_samples = read_32bitLE(0x04,streamFile) * 28 / 16 / channel_count; + /* 0x08: unknown, always 10 */ + vgmstream->sample_rate = read_32bitLE(0x0c,streamFile); + vgmstream->channels = channel_count; /*0x10*/ + vgmstream->interleave_block_size = read_32bitLE(0x14,streamFile); + vgmstream->loop_start_sample = (read_32bitLE(0x18,streamFile) - start_offset) * 28 / 16 / channel_count; + vgmstream->loop_end_sample = (read_32bitLE(0x1c,streamFile) - start_offset) * 28 / 16 / channel_count; + vgmstream->loop_flag = loop_flag; /*0x20*/ + /*0x21: volume? */ + /*0x22: pan? */ + /*0x23: 02=VDS 04=VDM? */ + + /* open the file for reading */ + if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) ) + goto fail; + return vgmstream; + +fail: + close_vgmstream(vgmstream); + return NULL; +} diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ps2_bmdx.c b/Frameworks/vgmstream/vgmstream/src/meta/ps2_bmdx.c index dc0e93093..a1e735af3 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ps2_bmdx.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ps2_bmdx.c @@ -33,7 +33,7 @@ VGMSTREAM * init_vgmstream_ps2_bmdx(STREAMFILE *streamFile) { /* Check for Compression Scheme */ if (read_32bitLE(0x20,streamFile) == 1) - vgmstream->coding_type = coding_invert_PSX; + vgmstream->coding_type = coding_PSX_bmdx; else vgmstream->coding_type = coding_PSX; vgmstream->num_samples = read_32bitLE(0x0c,streamFile)*28/16/channel_count; @@ -55,7 +55,7 @@ VGMSTREAM * init_vgmstream_ps2_bmdx(STREAMFILE *streamFile) { start_offset = read_32bitLE(0x08,streamFile); - if (vgmstream->coding_type == coding_invert_PSX) + if (vgmstream->coding_type == coding_PSX_bmdx) { uint8_t xor = read_8bit(start_offset,streamFile); uint8_t add = (~(uint8_t)read_8bit(start_offset+2,streamFile))+1; diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ps2_mib.c b/Frameworks/vgmstream/vgmstream/src/meta/ps2_mib.c index a461fb7eb..3e4fff1f8 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ps2_mib.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ps2_mib.c @@ -91,6 +91,8 @@ VGMSTREAM * init_vgmstream_ps2_mib(STREAMFILE *streamFile) { fileLength = get_streamfile_size(streamFile); readOffset+=(off_t)read_streamfile(mibBuffer,0,0x10,streamFile); + readOffset=0; + mibBuffer[0]=0; do { readOffset+=(off_t)read_streamfile(testBuffer,readOffset,0x10,streamFile); @@ -106,6 +108,7 @@ VGMSTREAM * init_vgmstream_ps2_mib(STREAMFILE *streamFile) { bDoUpdateInterleave=1; } + testBuffer[0]=0; if(!memcmp(testBuffer,mibBuffer,0x10)) { gotEmptyLine=1; diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ps2_npsf.c b/Frameworks/vgmstream/vgmstream/src/meta/ps2_npsf.c index 9bad95cac..d37ee6c12 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ps2_npsf.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ps2_npsf.c @@ -1,8 +1,9 @@ #include "meta.h" #include "../util.h" -/* Sony .ADS with SShd & SSbd Headers */ - +/* NPFS - found in Namco PS2/PSP games: + * Tekken 5, Ace Combat 5, Yumeria, Venus & Braves (.nps), Ridge Racer PSP, etc + */ VGMSTREAM * init_vgmstream_ps2_npsf(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; char filename[PATH_LIMIT]; @@ -14,7 +15,9 @@ VGMSTREAM * init_vgmstream_ps2_npsf(STREAMFILE *streamFile) { /* check extension, case insensitive */ streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("npsf",filename_extension(filename))) goto fail; + if (strcasecmp("npsf",filename_extension(filename)) && + strcasecmp("nps",filename_extension(filename))) + goto fail; /* check NPSF Header */ if (read_32bitBE(0x00,streamFile) != 0x4E505346) diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ps2_vag.c b/Frameworks/vgmstream/vgmstream/src/meta/ps2_vag.c index 7ca91519b..6f7b7eba1 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ps2_vag.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ps2_vag.c @@ -1,5 +1,4 @@ #include "meta.h" -#include "../util.h" static int vag_find_loop_offsets(STREAMFILE *streamFile, off_t start_offset, off_t * loop_start, off_t * loop_end); @@ -9,39 +8,39 @@ static int vag_find_loop_offsets(STREAMFILE *streamFile, off_t start_offset, off */ VGMSTREAM * init_vgmstream_ps2_vag(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - - off_t loopStart = 0; - off_t loopEnd = 0; + off_t start_offset, loopStart = 0, loopEnd = 0; uint8_t vagID; uint32_t version = 0; - size_t filesize = 0, datasize = 0; - size_t interleave; - off_t start_offset; - - int loop_flag=0; - int loop_samples_found = 0; - int channel_count=0; - int i; + size_t filesize = 0, datasize = 0, interleave; + + int loop_flag = 0, loop_samples_found = 0; + int channel_count = 0; + int is_swag = 0; /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("vag",filename_extension(filename))) goto fail; + if ( !check_extensions(streamFile,"vag,swag") ) + goto fail; /* check VAG Header */ - if (((read_32bitBE(0x00,streamFile) & 0xFFFFFF00) != 0x56414700) && /* "VAG\0" */ + if (((read_32bitBE(0x00,streamFile) & 0xFFFFFF00) != 0x56414700) && /* "VAG" */ ((read_32bitLE(0x00,streamFile) & 0xFFFFFF00) != 0x56414700)) goto fail; + /* Frantix VAGp .swag: some (not all) fields in LE + 2 VAGp in the same file (full interleave) */ + is_swag = check_extensions(streamFile,"swag"); + filesize = get_streamfile_size(streamFile); /* version used to create the file * ex: 00000000 = v1.8 PC, 00000002 = v1.3 Mac, 00000003 = v1.6+ Mac, 00000020 = v2.0+ PC */ version = read_32bitBE(0x04,streamFile); /* 0x08-0c: reserved */ - datasize = read_32bitBE(0x0c,streamFile); + if (is_swag) + datasize = read_32bitLE(0x0c,streamFile); + else + datasize = read_32bitBE(0x0c,streamFile); /* 0x14-20 reserved */ /* 0x20-30: name (optional) */ /* 0x30: data start (first 0x10 usually 0s to init SPU) */ @@ -66,8 +65,11 @@ VGMSTREAM * init_vgmstream_ps2_vag(STREAMFILE *streamFile) { break; case 'p': /* "VAGp" (extended) [most common, ex Ratchet & Clank] */ - if ((version <= 0x00000004) && (datasize < filesize / 2)) { - loop_flag=(read_32bitBE(0x14,streamFile)!=0); + if ((version <= 0x00000004) && (datasize < filesize / 2)) { /* two VAGp in the same file */ + if (is_swag) + loop_flag = vag_find_loop_offsets(streamFile, 0x30, &loopStart, &loopEnd); + else + loop_flag = read_32bitBE(0x14,streamFile) != 0; channel_count=2; } else if (version == 0x00020001) { /* HEVAG */ @@ -91,7 +93,10 @@ VGMSTREAM * init_vgmstream_ps2_vag(STREAMFILE *streamFile) { /* fill in the vital statistics */ vgmstream->coding_type = coding_PSX; - vgmstream->sample_rate = read_32bitBE(0x10,streamFile); + if (is_swag) + vgmstream->sample_rate = read_32bitLE(0x10,streamFile); + else + vgmstream->sample_rate = read_32bitBE(0x10,streamFile); switch(vagID) { case '1': // VAG1 @@ -121,23 +126,31 @@ VGMSTREAM * init_vgmstream_ps2_vag(STREAMFILE *streamFile) { if ((version == 0x00000004) && (datasize < filesize / 2)) { vgmstream->channels=2; - vgmstream->num_samples = datasize; /* todo test if datasize/16*28? */ - - if(loop_flag) { - vgmstream->loop_start_sample=read_32bitBE(0x14,streamFile); - vgmstream->loop_end_sample =read_32bitBE(0x18,streamFile); - loop_samples_found = 1; - } - - start_offset=0x80; vgmstream->layout_type=layout_interleave; vgmstream->meta_type=meta_PS2_VAGs; - // Double VAG Header @ 0x0000 & 0x1000 - if(read_32bitBE(0,streamFile)==read_32bitBE(0x1000,streamFile)) { + if (is_swag) { + start_offset = 0x30; + interleave = datasize; vgmstream->num_samples = datasize / 16 * 28; - interleave=0x1000; - start_offset=0; + vgmstream->loop_start_sample = (loopStart-start_offset) / 16 * 28; + vgmstream->loop_end_sample = (loopEnd-start_offset) / 16 * 28; + loop_samples_found = 1; + + } else { + start_offset=0x80; + vgmstream->num_samples = datasize; /* todo test if datasize/16*28? */ + if(loop_flag) { + vgmstream->loop_start_sample=read_32bitBE(0x14,streamFile); + vgmstream->loop_end_sample =read_32bitBE(0x18,streamFile); + loop_samples_found = 1; + // Double VAG Header @ 0x0000 & 0x1000 + if(read_32bitBE(0,streamFile)==read_32bitBE(0x1000,streamFile)) { + vgmstream->num_samples = datasize / 16 * 28; + interleave=0x1000; + start_offset=0; + } + } } } else if (version == 0x40000000) { /* Guerilla VAG (little endian) */ @@ -150,7 +163,7 @@ VGMSTREAM * init_vgmstream_ps2_vag(STREAMFILE *streamFile) { start_offset = 0x30; } else if (version == 0x00020001) { /* HEVAG */ - vgmstream->coding_type = coding_HEVAG_ADPCM; + vgmstream->coding_type = coding_HEVAG; vgmstream->layout_type = layout_interleave; vgmstream->meta_type = meta_PS2_VAGs; @@ -195,28 +208,14 @@ VGMSTREAM * init_vgmstream_ps2_vag(STREAMFILE *streamFile) { } - /* open the file for reading by each channel */ - { - for (i=0;iinterleave_block_size > 0) { - vgmstream->ch[i].streamfile = streamFile->open(streamFile,filename,vgmstream->interleave_block_size); - } else { - vgmstream->ch[i].streamfile = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - } - - if (!vgmstream->ch[i].streamfile) goto fail; - - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset= - (off_t)(start_offset+vgmstream->interleave_block_size*i); - } - } + /* open the file for reading */ + if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) ) + goto fail; return vgmstream; - /* clean up anything we may have opened */ fail: - if (vgmstream) close_vgmstream(vgmstream); + close_vgmstream(vgmstream); return NULL; } diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ps3_klbs.c b/Frameworks/vgmstream/vgmstream/src/meta/ps3_klbs.c index 405138e6e..0951945bb 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ps3_klbs.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ps3_klbs.c @@ -10,8 +10,8 @@ VGMSTREAM * init_vgmstream_ps3_klbs(STREAMFILE *streamFile) size_t fileLength; off_t readOffset = 0; off_t start_offset; - off_t loop_start_offset; - off_t loop_end_offset; + off_t loop_start_offset = 0; + off_t loop_end_offset = 0; uint8_t testBuffer[0x10]; int loop_flag = 0; diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ps3_msf.c b/Frameworks/vgmstream/vgmstream/src/meta/ps3_msf.c index 7fbf617b8..169aab643 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ps3_msf.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ps3_msf.c @@ -228,7 +228,7 @@ fail: #ifdef VGM_USE_FFMPEG if (ffmpeg_data) { free_ffmpeg(ffmpeg_data); - vgmstream->codec_data = NULL; + if (vgmstream) vgmstream->codec_data = NULL; } #endif if (vgmstream) close_vgmstream(vgmstream); diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ps3_sgh_sgb.c b/Frameworks/vgmstream/vgmstream/src/meta/ps3_sgh_sgb.c index ce0ec1064..164a77cb1 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ps3_sgh_sgb.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ps3_sgh_sgb.c @@ -195,7 +195,7 @@ VGMSTREAM * init_vgmstream_ps3_sgdx(STREAMFILE *streamFile) { } #endif case 0x05: /* Short VAG ADPCM */ - vgmstream->coding_type = coding_SHORT_VAG_ADPCM; + vgmstream->coding_type = coding_PSX_cfg; vgmstream->layout_type = layout_interleave; vgmstream->interleave_block_size = 0x4; diff --git a/Frameworks/vgmstream/vgmstream/src/meta/ps3_vawx.c b/Frameworks/vgmstream/vgmstream/src/meta/ps3_vawx.c index b9195e82e..28e74922d 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/ps3_vawx.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/ps3_vawx.c @@ -1,77 +1,124 @@ #include "meta.h" -#include "../util.h" +#include "../coding/coding.h" -/* VAWX - - No More Heroes: Heroes Paradise (PS3) -*/ -VGMSTREAM * init_vgmstream_ps3_vawx(STREAMFILE *streamFile) -{ +#define FAKE_RIFF_BUFFER_SIZE 100 + +/** + * VAWX - found in feelplus games: No More Heroes Heroes Paradise, Moon Diver + */ +VGMSTREAM * init_vgmstream_vawx(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; - char filename[PATH_LIMIT]; - - off_t start_offset; + off_t start_offset, datasize; - int loop_flag = 0; - int channel_count; + int loop_flag = 0, channel_count, type; - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("vawx",filename_extension(filename))) goto fail; - - /* check header */ - if (read_32bitBE(0x00,streamFile) != 0x56415758) // "VAWX" + /* check extensions */ + if ( !check_extensions(streamFile, "vawx,xwv") ) goto fail; - if (read_8bit(0xF,streamFile) == 2) - { - loop_flag = 1; - } + /* check header */ + if (read_32bitBE(0x00,streamFile) != 0x56415758) /* "VAWX" */ + goto fail; + loop_flag = read_8bit(0x37,streamFile); channel_count = read_8bit(0x39,streamFile);; - /* build the VGMSTREAM */ + /* build the VGMSTREAM */ vgmstream = allocate_vgmstream(channel_count,loop_flag); if (!vgmstream) goto fail; - /* fill in the vital statistics */ - start_offset = 0x800; - vgmstream->channels = channel_count; + /* 0x04: filesize */ + start_offset = 0x800; /* ? read_32bitLE(0x0c,streamFile); */ + vgmstream->channels = channel_count; + /* 0x16: file id */ + type = read_8bit(0x36,streamFile); /* could be at 0x38 too */ + vgmstream->num_samples = read_32bitBE(0x3c,streamFile); vgmstream->sample_rate = read_32bitBE(0x40,streamFile); - vgmstream->coding_type = coding_PSX; - vgmstream->num_samples = ((get_streamfile_size(streamFile)-start_offset)/16/channel_count*28); - - if (loop_flag) - { - vgmstream->loop_start_sample = read_32bitBE(0x44,streamFile); - vgmstream->loop_end_sample = read_32bitBE(0x48,streamFile);; - } - vgmstream->layout_type = layout_interleave; - vgmstream->interleave_block_size = 0x10; - vgmstream->meta_type = meta_PS3_VAWX; + vgmstream->meta_type = meta_VAWX; + + switch(type) { + case 2: /* VAG */ + vgmstream->coding_type = coding_PSX; + vgmstream->layout_type = layout_interleave; + vgmstream->interleave_block_size = 0x10; + + vgmstream->loop_start_sample = read_32bitBE(0x44,streamFile); + vgmstream->loop_end_sample = read_32bitBE(0x48,streamFile); + /* todo 6ch has 0x8000 blocks and must skip last 0x20 each block (or, skip 0x20 every 0x1550*6 */ + + break; + +#ifdef VGM_USE_FFMPEG + case 1: { /* XMA2 */ + ffmpeg_codec_data *ffmpeg_data = NULL; + uint8_t buf[FAKE_RIFF_BUFFER_SIZE]; + int32_t bytes, block_size, block_count; + /* todo not accurate (needed for >2ch) */ + datasize = get_streamfile_size(streamFile)-start_offset; + block_size = 2048; + block_count = datasize / block_size; /* read_32bitLE(custom_data_offset +0x14) -1? */ + + bytes = ffmpeg_make_riff_xma2(buf, FAKE_RIFF_BUFFER_SIZE, vgmstream->num_samples, datasize, vgmstream->channels, vgmstream->sample_rate, block_count, block_size); + if (bytes <= 0) goto fail; + + ffmpeg_data = init_ffmpeg_header_offset(streamFile, buf,bytes, start_offset,datasize); + if ( !ffmpeg_data ) goto fail; + vgmstream->codec_data = ffmpeg_data; + vgmstream->coding_type = coding_FFmpeg; + vgmstream->layout_type = layout_none; + + vgmstream->loop_start_sample = read_32bitBE(0x44,streamFile); + vgmstream->loop_end_sample = read_32bitBE(0x48,streamFile); + + break; + } + + case 7: { /* ATRAC3 */ + ffmpeg_codec_data *ffmpeg_data = NULL; + uint8_t buf[FAKE_RIFF_BUFFER_SIZE]; + int32_t bytes, block_size, encoder_delay, joint_stereo, max_samples; + + datasize = read_32bitBE(0x54,streamFile); + block_size = 0x98 * vgmstream->channels; + joint_stereo = 0; + max_samples = (datasize / block_size) * 1024; + encoder_delay = 0x0; /* not used by FFmpeg */ + if (vgmstream->num_samples > max_samples) { + vgmstream->num_samples = max_samples; + /*encoder_delay = ?; */ /* todo some tracks need it to skip garbage but not sure how to calculate it */ + } + + /* make a fake riff so FFmpeg can parse the ATRAC3 */ + bytes = ffmpeg_make_riff_atrac3(buf, FAKE_RIFF_BUFFER_SIZE, vgmstream->num_samples, datasize, vgmstream->channels, vgmstream->sample_rate, block_size, joint_stereo, encoder_delay); + if (bytes <= 0) + goto fail; + + ffmpeg_data = init_ffmpeg_header_offset(streamFile, buf,bytes, start_offset,datasize); + if ( !ffmpeg_data ) goto fail; + vgmstream->codec_data = ffmpeg_data; + vgmstream->coding_type = coding_FFmpeg; + vgmstream->layout_type = layout_none; + + vgmstream->loop_start_sample = (read_32bitBE(0x44,streamFile) / ffmpeg_data->blockAlign) * ffmpeg_data->frameSize; + vgmstream->loop_end_sample = (read_32bitBE(0x48,streamFile) / ffmpeg_data->blockAlign) * ffmpeg_data->frameSize; + + break; + } +#endif + default: + goto fail; + + } + /* open the file for reading */ - { - int i; - STREAMFILE * file; - file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); - if (!file) goto fail; - - for (i=0;ich[i].streamfile = file; - - vgmstream->ch[i].channel_start_offset= - vgmstream->ch[i].offset=start_offset + (vgmstream->interleave_block_size * i); - - } - - } + if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) ) + goto fail; return vgmstream; - /* clean up anything we may have opened */ fail: - if (vgmstream) close_vgmstream(vgmstream); + close_vgmstream(vgmstream); return NULL; } diff --git a/Frameworks/vgmstream/vgmstream/src/meta/riff.c b/Frameworks/vgmstream/vgmstream/src/meta/riff.c index 95afa1161..6a41732a7 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/riff.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/riff.c @@ -399,14 +399,14 @@ VGMSTREAM * init_vgmstream_riff(STREAMFILE *streamFile) { #ifdef VGM_USE_FFMPEG case coding_FFmpeg: { - ffmpeg_data = init_ffmpeg_offset(streamFile, 0, streamFile->get_size(streamFile) ); - if ( !ffmpeg_data ) goto fail; - - sample_count = ffmpeg_data->totalSamples; /* fact_sample_count */ - /* the encoder introduces some garbage (usually silent) samples to skip before the stream - * loop values include the skip samples but fact_sample_count doesn't; add them back to fix some edge loops */ - if (fact_sample_skip > 0) - sample_count += fact_sample_skip; + ffmpeg_data = init_ffmpeg_offset(streamFile, 0, streamFile->get_size(streamFile) ); + if ( !ffmpeg_data ) goto fail; + + sample_count = ffmpeg_data->totalSamples; /* fact_sample_count */ + /* the encoder introduces some garbage (usually silent) samples to skip before the stream + * loop values include the skip samples but fact_sample_count doesn't; add them back to fix some edge loops */ + if (fact_sample_skip > 0) + sample_count += fact_sample_skip; } break; #endif @@ -503,7 +503,7 @@ VGMSTREAM * init_vgmstream_riff(STREAMFILE *streamFile) { (long long)loop_start_ms*fmt.sample_rate/1000; vgmstream->loop_end_sample = (long long)loop_end_ms*fmt.sample_rate/1000; - vgmstream->meta_type = meta_RIFF_WAVE_labl_Marker; + vgmstream->meta_type = meta_RIFF_WAVE_labl; } else if (loop_start_offset >= 0) { diff --git a/Frameworks/vgmstream/vgmstream/src/meta/sqex_scd.c b/Frameworks/vgmstream/vgmstream/src/meta/sqex_scd.c index 382a465b2..08b89c3a0 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/sqex_scd.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/sqex_scd.c @@ -20,12 +20,40 @@ typedef struct _SCDINTSTREAMFILE static STREAMFILE *open_scdint_with_STREAMFILE(STREAMFILE *file, const char * filename, off_t start_offset, off_t interleave_block_size, off_t stride_size, size_t total_size); + +/* V3 decryption table found in the .exe */ +static const uint8_t scd_ogg_v3_lookuptable[256] = { /* FF XIV Heavensward */ + 0x3A, 0x32, 0x32, 0x32, 0x03, 0x7E, 0x12, 0xF7, 0xB2, 0xE2, 0xA2, 0x67, 0x32, 0x32, 0x22, 0x32, // 00-0F + 0x32, 0x52, 0x16, 0x1B, 0x3C, 0xA1, 0x54, 0x7B, 0x1B, 0x97, 0xA6, 0x93, 0x1A, 0x4B, 0xAA, 0xA6, // 10-1F + 0x7A, 0x7B, 0x1B, 0x97, 0xA6, 0xF7, 0x02, 0xBB, 0xAA, 0xA6, 0xBB, 0xF7, 0x2A, 0x51, 0xBE, 0x03, // 20-2F + 0xF4, 0x2A, 0x51, 0xBE, 0x03, 0xF4, 0x2A, 0x51, 0xBE, 0x12, 0x06, 0x56, 0x27, 0x32, 0x32, 0x36, // 30-3F + 0x32, 0xB2, 0x1A, 0x3B, 0xBC, 0x91, 0xD4, 0x7B, 0x58, 0xFC, 0x0B, 0x55, 0x2A, 0x15, 0xBC, 0x40, // 40-4F + 0x92, 0x0B, 0x5B, 0x7C, 0x0A, 0x95, 0x12, 0x35, 0xB8, 0x63, 0xD2, 0x0B, 0x3B, 0xF0, 0xC7, 0x14, // 50-5F + 0x51, 0x5C, 0x94, 0x86, 0x94, 0x59, 0x5C, 0xFC, 0x1B, 0x17, 0x3A, 0x3F, 0x6B, 0x37, 0x32, 0x32, // 60-6F + 0x30, 0x32, 0x72, 0x7A, 0x13, 0xB7, 0x26, 0x60, 0x7A, 0x13, 0xB7, 0x26, 0x50, 0xBA, 0x13, 0xB4, // 70-7F + 0x2A, 0x50, 0xBA, 0x13, 0xB5, 0x2E, 0x40, 0xFA, 0x13, 0x95, 0xAE, 0x40, 0x38, 0x18, 0x9A, 0x92, // 80-8F + 0xB0, 0x38, 0x00, 0xFA, 0x12, 0xB1, 0x7E, 0x00, 0xDB, 0x96, 0xA1, 0x7C, 0x08, 0xDB, 0x9A, 0x91, // 90-9F + 0xBC, 0x08, 0xD8, 0x1A, 0x86, 0xE2, 0x70, 0x39, 0x1F, 0x86, 0xE0, 0x78, 0x7E, 0x03, 0xE7, 0x64, // A0-AF + 0x51, 0x9C, 0x8F, 0x34, 0x6F, 0x4E, 0x41, 0xFC, 0x0B, 0xD5, 0xAE, 0x41, 0xFC, 0x0B, 0xD5, 0xAE, // B0-BF + 0x41, 0xFC, 0x3B, 0x70, 0x71, 0x64, 0x33, 0x32, 0x12, 0x32, 0x32, 0x36, 0x70, 0x34, 0x2B, 0x56, // C0-CF + 0x22, 0x70, 0x3A, 0x13, 0xB7, 0x26, 0x60, 0xBA, 0x1B, 0x94, 0xAA, 0x40, 0x38, 0x00, 0xFA, 0xB2, // D0-DF + 0xE2, 0xA2, 0x67, 0x32, 0x32, 0x12, 0x32, 0xB2, 0x32, 0x32, 0x32, 0x32, 0x75, 0xA3, 0x26, 0x7B, // E0-EF + 0x83, 0x26, 0xF9, 0x83, 0x2E, 0xFF, 0xE3, 0x16, 0x7D, 0xC0, 0x1E, 0x63, 0x21, 0x07, 0xE3, 0x01, // F0-FF +}; + +static void scd_ogg_decrypt_v2_callback(void *ptr, size_t size, size_t nmemb, void *datasource, int bytes_read); +static void scd_ogg_decrypt_v3_callback(void *ptr, size_t size, size_t nmemb, void *datasource, int bytes_read); + + + VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) { VGMSTREAM * vgmstream = NULL; char filename[PATH_LIMIT]; - off_t start_offset, meta_offset_offset, meta_offset, post_meta_offset; + off_t start_offset, tables_offset, headers_offset, meta_offset, post_meta_offset, stream_size; + int headers_entries; int32_t loop_start, loop_end; + int target_stream = 1; /* N=Nth stream, 0=auto (first) */ int loop_flag = 0; int channel_count; int codec_id; @@ -42,62 +70,90 @@ VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) { if (read_32bitBE(0,streamFile) != 0x53454442) goto fail; /* SSCF */ if (read_32bitBE(4,streamFile) != 0x53534346) goto fail; - if (read_32bitBE(8,streamFile) == 2 || - read_32bitBE(8,streamFile) == 3) { - /* version 2 BE, as seen in FFXIII demo for PS3 */ - /* version 3 BE, as seen in FFXIII for PS3 */ + + /** main header section **/ + if (read_32bitBE(8,streamFile) == 2 || /* version 2 BE, as seen in FFXIII demo for PS3 */ + read_32bitBE(8,streamFile) == 3) { /* version 3 BE, as seen in FFXIII for PS3 */ + read_32bit = read_32bitBE; read_16bit = read_16bitBE; //size_offset = 0x14; - meta_offset_offset = 0x40 + read_16bit(0xe,streamFile); - } else if (read_32bitLE(8,streamFile) == 3 || + } else if (read_32bitLE(8,streamFile) == 3 || /* version 2/3 LE, as seen in FFXIV for PC (and others?) */ read_32bitLE(8,streamFile) == 2) { - /* version 2/3 LE, as seen in FFXIV for ?? */ + read_32bit = read_32bitLE; read_16bit = read_16bitLE; //size_offset = 0x10; - meta_offset_offset = 0x40 + read_16bit(0xe,streamFile); } else goto fail; - /* never mind, FFXIII music_68tak.ps3.scd is 0x80 shorter */ + /* 0xc: probably 00=LE, 01=BE */ + /* 0xd: unk (always 0x04) */ + tables_offset = read_16bit(0xe,streamFile); + #if 0 + /* never mind, FFXIII music_68tak.ps3.scd is 0x80 shorter */ /* check file size with header value */ if (read_32bit(size_offset,streamFile) != get_streamfile_size(streamFile)) goto fail; #endif - meta_offset = read_32bit(meta_offset_offset,streamFile); + /** offset tables **/ + /* 0x00: table1_unknown entries */ + /* 0x02: table2_unknown entries */ + /* 0x04: table_headers entries */ + /* 0x06: unknown (varies) */ + /* 0x08: table1_unknown start offset */ + /* 0x0c: table_headers start offset */ + /* 0x10: table2_unknown start offset */ + /* 0x14: unknown (0x0) */ + /* 0x18: unknown offset */ + /* 0x1c: unknown (0x0) */ + headers_entries = read_16bit(tables_offset+0x04,streamFile); + VGM_ASSERT(headers_entries > 1, "SCD: multiple streams found (%i entries)\n", headers_entries); + if (target_stream == 0) target_stream = 1; /* auto: default to 1 */ + if (target_stream > headers_entries) goto fail; + headers_offset = read_32bit(tables_offset+0x0c,streamFile); + + /** header table entries (each is an uint32_t offset to stream header) **/ + meta_offset = read_32bit(headers_offset + (target_stream-1)*4,streamFile); + + /** stream header **/ + stream_size = read_32bit(meta_offset + 0x0, streamFile); + channel_count = read_32bit(meta_offset+4,streamFile); + /* 0x8 sample rate */ + codec_id = read_32bit(meta_offset+0xc,streamFile); - /* check that chunk size equals stream size (?) */ loop_start = read_32bit(meta_offset+0x10,streamFile); loop_end = read_32bit(meta_offset+0x14,streamFile); loop_flag = (loop_end > 0); - channel_count = read_32bit(meta_offset+4,streamFile); - codec_id = read_32bit(meta_offset+0xc,streamFile); - post_meta_offset = meta_offset + 0x20; - - /* data at meta_offset is only 0x20 bytes, but there may be auxiliary chunks - before anything else */ - - aux_chunk_count = read_32bit(meta_offset+0x1c,streamFile); - for (; aux_chunk_count > 0; aux_chunk_count --) - { - /* skip aux chunks */ - /*printf("skipping %08x\n", read_32bitBE(post_meta_offset, streamFile));*/ - post_meta_offset += read_32bit(post_meta_offset+4,streamFile); - } - start_offset = post_meta_offset + read_32bit(meta_offset+0x18,streamFile); + aux_chunk_count = read_32bit(meta_offset+0x1c,streamFile); #ifdef VGM_USE_VORBIS if (codec_id == 0x6) { vgm_vorbis_info_t inf; - uint32_t seek_table_size = read_32bit(post_meta_offset+0x10, streamFile); - uint32_t vorb_header_size = read_32bit(post_meta_offset+0x14, streamFile); + uint32_t seek_table_size; + uint32_t vorb_header_size; VGMSTREAM * result = NULL; + + /* todo this skips the "MARK" chunk for FF XIV "03.scd", but without it actually the start_offset + * lands in a "OggS" though will fail in the "try skipping seek table" + * maybe this isn't needed and there is another bug, since other games with "MARK" don't need this */ + if (aux_chunk_count) { + post_meta_offset = meta_offset + 0x20; + + /* data at meta_offset is only 0x20 bytes, but there may be auxiliary chunks before anything else */ + for (; aux_chunk_count > 0; aux_chunk_count--) { + post_meta_offset += read_32bit(post_meta_offset+4,streamFile); /* skip aux chunks */ + } + start_offset = post_meta_offset + read_32bit(meta_offset+0x18,streamFile); + } + + seek_table_size = read_32bit(post_meta_offset+0x10, streamFile); + vorb_header_size = read_32bit(post_meta_offset+0x14, streamFile); memset(&inf, 0, sizeof(inf)); inf.loop_start = loop_start; @@ -130,18 +186,28 @@ VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) { // failed with Ogg, try deobfuscating header { // skip chunks before xor_byte - unsigned char xor_byte; - - xor_byte = read_8bit(post_meta_offset+2, streamFile); + uint8_t xor_version, xor_byte; + xor_version = read_8bit(post_meta_offset + 0, streamFile); + xor_byte = read_8bit(post_meta_offset + 2, streamFile); if (xor_byte == 0) { return NULL; } - inf.scd_xor = xor_byte; - inf.scd_xor_len = vorb_header_size; + if (xor_version <= 2) { + inf.decryption_enabled = 1; + inf.decryption_callback = scd_ogg_decrypt_v2_callback; + inf.scd_xor = xor_byte; + inf.scd_xor_length = vorb_header_size; /* header is XOR'ed */ + } else if (xor_version == 3) { + inf.decryption_enabled = 1; + inf.decryption_callback = scd_ogg_decrypt_v3_callback; + inf.scd_xor = stream_size & 0xFF; /* xor_byte is not used? */ + inf.scd_xor_length = stream_size; /* full file is XOR'ed */ + } result = init_vgmstream_ogg_vorbis_callbacks(streamFile, filename, NULL, start_offset, &inf); + /* always? */ return result; } } @@ -160,7 +226,7 @@ VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) { /* PCM */ vgmstream->coding_type = coding_PCM16LE_int; vgmstream->layout_type = layout_none; - vgmstream->num_samples = read_32bit(meta_offset+0,streamFile) / 2 / channel_count; + vgmstream->num_samples = stream_size / 2 / channel_count; if (loop_flag) { vgmstream->loop_start_sample = loop_start / 2 / channel_count; @@ -175,6 +241,7 @@ VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) { struct mpg123_frameinfo mi; coding_t ct; + /* Drakengard 3, some Kingdom Hearts */ if (vgmstream->sample_rate == 47999) vgmstream->sample_rate = 48000; if (vgmstream->sample_rate == 44099) @@ -189,7 +256,7 @@ VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) { vgmstream->coding_type = ct; vgmstream->layout_type = layout_mpeg; if (mi.vbr != MPG123_CBR) goto fail; - vgmstream->num_samples = mpeg_bytes_to_samples(read_32bit(meta_offset+0,streamFile), &mi); + vgmstream->num_samples = mpeg_bytes_to_samples(stream_size, &mi); vgmstream->num_samples -= vgmstream->num_samples%576; if (loop_flag) { vgmstream->loop_start_sample = mpeg_bytes_to_samples(loop_start, &mi); @@ -206,14 +273,16 @@ VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) { vgmstream->coding_type = coding_MSADPCM; vgmstream->layout_type = layout_none; vgmstream->interleave_block_size = read_16bit(post_meta_offset+0xc,streamFile); - vgmstream->num_samples = msadpcm_bytes_to_samples(read_32bit(meta_offset+0,streamFile), vgmstream->interleave_block_size, vgmstream->channels); + vgmstream->num_samples = msadpcm_bytes_to_samples(stream_size, vgmstream->interleave_block_size, vgmstream->channels); if (loop_flag) { vgmstream->loop_start_sample = msadpcm_bytes_to_samples(loop_start, vgmstream->interleave_block_size, vgmstream->channels); vgmstream->loop_end_sample = msadpcm_bytes_to_samples(loop_end, vgmstream->interleave_block_size, vgmstream->channels); } break; - case 0xA: + + case 0xA: /* Dragon Quest X (Wii) */ + case 0x15: /* Dragon Quest X (Wii U) (no apparent differences except higher sample rate) */ /* GC/Wii DSP ADPCM */ { STREAMFILE * file; @@ -263,6 +332,8 @@ VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) { for (i=0;isubstreams[i] = init_vgmstream_ngc_dsp_std(intfile); data->intfiles[i] = intfile; @@ -282,38 +353,74 @@ VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) { break; #ifdef VGM_USE_FFMPEG case 0xB: - /* XMA1/XMA2 */ + /* XMA1/XMA2 */ /* Lightning Returns SFX, FFXIII (X360) */ { - uint16_t codec_id = read_16bit(post_meta_offset, streamFile); - if (codec_id == 0x165 || codec_id == 0x166) - { - ffmpeg_codec_data *ffmpeg_data = init_ffmpeg_faux_riff(streamFile, post_meta_offset, start_offset, streamFile->get_size(streamFile) - start_offset, read_32bit == read_32bitBE); - if (!ffmpeg_data) goto fail; - - vgmstream->codec_data = ffmpeg_data; - - vgmstream->coding_type = coding_FFmpeg; - vgmstream->layout_type = layout_none; - - vgmstream->num_samples = ffmpeg_data->totalSamples; + ffmpeg_codec_data *ffmpeg_data = NULL; + uint8_t buf[200]; + int32_t bytes; - if (loop_flag) { - vgmstream->loop_start_sample = loop_start; - vgmstream->loop_end_sample = loop_end; - } - } - else goto fail; + /* post_meta_offset+0x00: fmt0x166 header (BE), post_meta_offset+0x34: seek table */ + + bytes = ffmpeg_make_riff_xma2_from_fmt(buf,200, post_meta_offset,0x34, stream_size, streamFile, 1); + if (bytes <= 0) goto fail; + + ffmpeg_data = init_ffmpeg_header_offset(streamFile, buf,bytes, start_offset,stream_size); + if (!ffmpeg_data) goto fail; + vgmstream->codec_data = ffmpeg_data; + vgmstream->coding_type = coding_FFmpeg; + vgmstream->layout_type = layout_none; + + vgmstream->num_samples = ffmpeg_data->totalSamples; + vgmstream->loop_start_sample = loop_start; + vgmstream->loop_end_sample = loop_end; } break; + + case 0xE: + /* ATRAC3plus */ /* Lord of Arcana (PSP) */ + { + ffmpeg_codec_data *ffmpeg_data = NULL; + off_t chunk_offset; + size_t chunk_size, fact_sample_skip = 0; + + /* full riff header at start_offset/post_meta_offset (same) */ + ffmpeg_data = init_ffmpeg_offset(streamFile, start_offset,stream_size); + if (!ffmpeg_data) goto fail; + vgmstream->codec_data = ffmpeg_data; + vgmstream->coding_type = coding_FFmpeg; + vgmstream->layout_type = layout_none; + + vgmstream->num_samples = ffmpeg_data->totalSamples; + vgmstream->loop_start_sample = loop_start; + vgmstream->loop_end_sample = loop_end; + + /* manually find encoder_delay to adjust samples since it's not properly used by FFmpeg */ + if (!find_chunk_le(streamFile, 0x66616374,start_offset+0xc,0, &chunk_offset,&chunk_size)) goto fail; /*"fact"*/ + if (chunk_size == 0x8) { + fact_sample_skip = read_32bitLE(chunk_offset+0x4, streamFile); + } else if (chunk_size == 0xc) { + fact_sample_skip = read_32bitLE(chunk_offset+0x8, streamFile); + } + vgmstream->num_samples += fact_sample_skip; + vgmstream->loop_start_sample += fact_sample_skip; + vgmstream->loop_end_sample += fact_sample_skip; + } + break; + #endif default: + VGM_LOG("SCD: unknown codec_id 0x%x\n", codec_id); goto fail; } vgmstream->meta_type = meta_SQEX_SCD; /* open the file for reading */ - if (vgmstream->layout_type != layout_scd_int && vgmstream->coding_type != coding_FFmpeg) + if (vgmstream->layout_type != layout_scd_int +#ifdef VGM_USE_FFMPEG + && vgmstream->coding_type != coding_FFmpeg +#endif + ) { int i; STREAMFILE * file; @@ -433,8 +540,13 @@ static size_t read_scdint(SCDINTSTREAMFILE *streamfile, uint8_t *dest, off_t off /* start_offset is for *this* interleaved stream */ static STREAMFILE *open_scdint_with_STREAMFILE(STREAMFILE *file, const char * filename, off_t start_offset, off_t interleave_block_size, off_t stride_size, size_t total_size) { - SCDINTSTREAMFILE * scd = malloc(sizeof(SCDINTSTREAMFILE)); + SCDINTSTREAMFILE * scd = NULL; + + /* _scdint funcs can't handle this case */ + if (start_offset + total_size > file->get_size(file)) + return NULL; + scd = malloc(sizeof(SCDINTSTREAMFILE)); if (!scd) return NULL; @@ -456,3 +568,43 @@ static STREAMFILE *open_scdint_with_STREAMFILE(STREAMFILE *file, const char * fi return &scd->sf; } + + +static void scd_ogg_decrypt_v2_callback(void *ptr, size_t size, size_t nmemb, void *datasource, int bytes_read) { + ogg_vorbis_streamfile * ov_streamfile = (ogg_vorbis_streamfile*)datasource; + + /* header is XOR'd with a constant byte */ + if (ov_streamfile->offset < ov_streamfile->scd_xor_length) { + int i, num_crypt; + + num_crypt = ov_streamfile->scd_xor_length - ov_streamfile->offset; + if (num_crypt > bytes_read) + num_crypt = bytes_read; + + for (i = 0; i < num_crypt; i++) { + ((uint8_t*)ptr)[i] ^= (uint8_t)ov_streamfile->scd_xor; + } + } +} + +static void scd_ogg_decrypt_v3_callback(void *ptr, size_t size, size_t nmemb, void *datasource, int bytes_read) { + ogg_vorbis_streamfile *ov_streamfile = (ogg_vorbis_streamfile*)datasource; + + /* file is XOR'd with a table (algorithm and table by Ioncannon) */ + if (ov_streamfile->offset < ov_streamfile->scd_xor_length) { + int i, num_crypt; + uint8_t byte1, byte2, xorByte; + + num_crypt = bytes_read; + byte1 = ov_streamfile->scd_xor & 0x7F; + byte2 = ov_streamfile->scd_xor & 0x3F; + + for (i = 0; i < num_crypt; i++) { + xorByte = scd_ogg_v3_lookuptable[(byte2 + ov_streamfile->offset + i) & 0xFF]; + xorByte &= 0xFF; + xorByte ^= ((uint8_t*)ptr)[i]; + xorByte ^= byte1; + ((uint8_t*)ptr)[i] = (uint8_t)xorByte; + } + } +} diff --git a/Frameworks/vgmstream/vgmstream/src/meta/x360.c b/Frameworks/vgmstream/vgmstream/src/meta/x360.c new file mode 100644 index 000000000..311cdbc95 --- /dev/null +++ b/Frameworks/vgmstream/vgmstream/src/meta/x360.c @@ -0,0 +1,66 @@ +#include "meta.h" +#include "../coding/coding.h" + +/* CXS - found in Eternal Sonata (Xbox 360) */ +VGMSTREAM * init_vgmstream_x360_cxs(STREAMFILE *streamFile) { + VGMSTREAM * vgmstream = NULL; + off_t start_offset; + int loop_flag, channel_count; + + /* check extension, case insensitive */ + if ( !check_extensions(streamFile,"cxs")) + goto fail; + + if (read_32bitBE(0x00,streamFile) != 0x43585320) /* "CXS " */ + goto fail; + + loop_flag = read_32bitBE(0x18,streamFile) > 0; + channel_count = read_32bitBE(0x0c,streamFile); + + /* build the VGMSTREAM */ + vgmstream = allocate_vgmstream(channel_count,loop_flag); + if (!vgmstream) goto fail; + + start_offset = read_32bitBE(0x04,streamFile) + read_32bitBE(0x28,streamFile); /* assumed, seek table always at 0x800 */ + /* 0x04: data start? */ + vgmstream->sample_rate = read_32bitBE(0x08,streamFile); + vgmstream->channels = channel_count; /*0x0c*/ + vgmstream->num_samples = read_32bitBE(0x10,streamFile) + 576; /*todo add proper encoder_delay*/ + vgmstream->loop_start_sample = read_32bitBE(0x14,streamFile); + vgmstream->loop_end_sample = read_32bitBE(0x18,streamFile); + /* 0x1c: below */ + + vgmstream->meta_type = meta_X360_CXS; + +#ifdef VGM_USE_FFMPEG + { + ffmpeg_codec_data *ffmpeg_data = NULL; + uint8_t buf[100]; + size_t bytes, datasize, block_size, block_count; + + block_count = read_32bitBE(0x1c,streamFile); + block_size = read_32bitBE(0x20,streamFile); + datasize = read_32bitBE(0x24,streamFile); + + bytes = ffmpeg_make_riff_xma2(buf,100, vgmstream->num_samples, datasize, vgmstream->channels, vgmstream->sample_rate, block_count, block_size); + if (bytes <= 0) goto fail; + + ffmpeg_data = init_ffmpeg_header_offset(streamFile, buf,bytes, start_offset,datasize); + if ( !ffmpeg_data ) goto fail; + vgmstream->codec_data = ffmpeg_data; + vgmstream->coding_type = coding_FFmpeg; + vgmstream->layout_type = layout_none; + } +#else + goto fail; +#endif + + /* open the file for reading */ + if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) ) + goto fail; + return vgmstream; + +fail: + close_vgmstream(vgmstream); + return NULL; +} diff --git a/Frameworks/vgmstream/vgmstream/src/meta/xma.c b/Frameworks/vgmstream/vgmstream/src/meta/xma.c index f6e14ea0e..d3974a928 100644 --- a/Frameworks/vgmstream/vgmstream/src/meta/xma.c +++ b/Frameworks/vgmstream/vgmstream/src/meta/xma.c @@ -1,487 +1,487 @@ -#include "meta.h" -#include "../util.h" - -#ifdef VGM_USE_FFMPEG - -#define ADJUST_SAMPLE_RATE 0 -#define XMA_BYTES_PER_PACKET 2048 -#define XMA_SAMPLES_PER_FRAME 512 -#define XMA_SAMPLES_PER_SUBFRAME 128 -#define FAKE_RIFF_BUFFER_SIZE 100 - - -/* parsing helper */ -typedef struct { - size_t file_size; - /* file traversing */ - int big_endian; - off_t chunk_offset; /* main header chunk offset, after "(id)" and size */ - size_t chunk_size; - off_t data_offset; - size_t data_size; - - int32_t fmt_codec; - uint8_t xma2_version; - int needs_header; - int force_little_endian; /* FFmpeg can't parse big endian "fmt" chunks */ - - /* info */ - int loop_flag; - int32_t num_samples; - int32_t loop_start_sample; - int32_t loop_end_sample; - - int32_t xma1_loop_start_offset_b; - int32_t xma1_loop_end_offset_b; - int32_t xma1_subframe_data; -} xma_header_data; - - -static int parse_header(xma_header_data * xma, STREAMFILE *streamFile); -static void parse_xma1_sample_data(xma_header_data * xma, STREAMFILE *streamFile); -static int create_riff_header(uint8_t * buf, size_t buf_size, xma_header_data * xma, STREAMFILE *streamFile); -static int fmt_chunk_swap_endian(uint8_t * chunk, uint16_t codec); -#if ADJUST_SAMPLE_RATE -static int get_xma_sample_rate(int32_t general_rate); -#endif - -/** - * XMA 1/2 (Microsoft) - * - * Usually in RIFF headers and minor variations. - */ -VGMSTREAM * init_vgmstream_xma(STREAMFILE *streamFile) { - char filename[PATH_LIMIT]; - VGMSTREAM * vgmstream = NULL; - ffmpeg_codec_data *data = NULL; - - xma_header_data xma; - uint8_t fake_riff[FAKE_RIFF_BUFFER_SIZE]; - int fake_riff_size = 0; - - - /* check extension, case insensitive */ - streamFile->get_name(streamFile,filename,sizeof(filename)); - if (strcasecmp("xma",filename_extension(filename)) - && strcasecmp("xma2",filename_extension(filename)) /* Skullgirls */ - && strcasecmp("past",filename_extension(filename)) /* SoulCalibur II HD */ - ) - goto fail; - - /* check header */ - if ( !parse_header(&xma, streamFile) ) - goto fail; - - - /* init ffmpeg (create a fake RIFF that FFmpeg can read if needed) */ - if (xma.needs_header) { /* fake header + partial size */ - fake_riff_size = create_riff_header(fake_riff, FAKE_RIFF_BUFFER_SIZE, &xma, streamFile); - if (fake_riff_size <= 0) goto fail; - - data = init_ffmpeg_header_offset(streamFile, fake_riff, (uint64_t)fake_riff_size, xma.data_offset, xma.data_size); - if (!data) goto fail; - } - else { /* no change */ - data = init_ffmpeg_offset(streamFile, 0, xma.file_size); - if (!data) goto fail; - } - - - /* build VGMSTREAM */ - vgmstream = allocate_vgmstream(data->channels, xma.loop_flag); - if (!vgmstream) goto fail; - /*vgmstream->channels = data->channels;*/ - /*vgmstream->loop_flag = loop_flag;*/ - - vgmstream->codec_data = data; - vgmstream->coding_type = coding_FFmpeg; - vgmstream->layout_type = layout_none; - vgmstream->meta_type = meta_FFmpeg; - - vgmstream->sample_rate = data->sampleRate; -#if ADJUST_SAMPLE_RATE - vgmstream->sample_rate = get_xma_sample_rate(vgmstream->sample_rate); -#endif - vgmstream->num_samples = xma.num_samples; /* data->totalSamples: XMA1 = not set; XMA2 = not reliable */ - - if (vgmstream->loop_flag) { - vgmstream->loop_start_sample = xma.loop_start_sample; - vgmstream->loop_end_sample = xma.loop_end_sample; - } - - - return vgmstream; - -fail: - /* clean up */ - if (data) { - free_ffmpeg(data); - } - if (vgmstream) { - vgmstream->codec_data = NULL; - close_vgmstream(vgmstream); - } - return NULL; -} - - -/** - * Finds stuff needed for XMA with FFmpeg - * - * returns 1 if ok, 0 on error - */ -static int parse_header(xma_header_data * xma, STREAMFILE *streamFile) { - int32_t (*read_32bit)(off_t,STREAMFILE*) = NULL; - int16_t (*read_16bit)(off_t,STREAMFILE*) = NULL; - uint32_t id; - int big_endian = 0; - enum { - id_RIFF = UINT32_C(0x52494646), /* "RIFF" */ - id_RIFX = UINT32_C(0x52494658), /* "RIFX" */ - id_NXMA = UINT32_C(0x786D6100), /* "xma\0" */ - id_PASX = UINT32_C(0x50415358), /* "PASX" */ - }; - - - /* check header */ - id = read_32bitBE(0x00,streamFile); - switch (id) { - case id_RIFF: - break; - case id_RIFX: - case id_NXMA: - case id_PASX: - big_endian = 1; - break; - default: - goto fail; - } - - memset(xma,0,sizeof(xma_header_data)); - xma->big_endian = big_endian; - - if (xma->big_endian) { - read_32bit = read_32bitBE; - read_16bit = read_16bitBE; - } else { - read_32bit = read_32bitLE; - read_16bit = read_16bitLE; - } - - xma->file_size = streamFile->get_size(streamFile); - - /* find offsets */ - if (id == id_RIFF || id == id_RIFX) { /* regular RIFF header */ - off_t current_chunk = 0xc; - off_t fmt_offset = 0, xma2_offset = 0; - size_t riff_size = 0, fmt_size = 0, xma2_size = 0; - - riff_size = read_32bit(4,streamFile); - if (riff_size+8 > xma->file_size) goto fail; - - while (current_chunk < xma->file_size && current_chunk < riff_size+8) { - uint32_t chunk_type = read_32bitBE(current_chunk,streamFile); - off_t chunk_size = read_32bit(current_chunk+4,streamFile); - - if (current_chunk+4+4+chunk_size > xma->file_size) - goto fail; - - switch(chunk_type) { - case 0x666d7420: /* "fmt " */ - if (fmt_offset) goto fail; - - fmt_offset = current_chunk + 4 + 4; - fmt_size = chunk_size; - break; - case 0x64617461: /* "data" */ - if (xma->data_offset) goto fail; - - xma->data_offset = current_chunk + 4 + 4; - xma->data_size = chunk_size; - break; - case 0x584D4132: /* "XMA2" */ - if (xma2_offset) goto fail; - - xma2_offset = current_chunk + 4 + 4; - xma2_size = chunk_size; - break; - default: - break; - } - - current_chunk += 8+chunk_size; - } - - /* give priority to "XMA2" since it can go together with "fmt " */ - if (xma2_offset) { - xma->chunk_offset = xma2_offset; - xma->chunk_size = xma2_size; - xma->xma2_version = read_8bit(xma->chunk_offset,streamFile); - xma->needs_header = 1; /* FFmpeg can only parse pure XMA1 or pure XMA2 */ - } else if (fmt_offset) { - xma->chunk_offset = fmt_offset; - xma->chunk_size = fmt_size; - xma->fmt_codec = read_16bit(xma->chunk_offset,streamFile); - xma->force_little_endian = xma->big_endian; - } else { - goto fail; - } - } - else if (id == id_NXMA) { /* Namco (Tekken 6, Galaga Legions DX) */ - /* custom header with a "XMA2" or "fmt " data chunk inside, most other values are unknown */ - uint32_t chunk_type = read_32bit(0xC,streamFile); - xma->data_offset = 0x100; - xma->data_size = read_32bit(0x14,streamFile); - xma->chunk_offset = 0xBC; - xma->chunk_size = read_32bit(0x24,streamFile); - if (chunk_type == 0x4) { /* "XMA2" */ - xma->xma2_version = read_8bit(xma->chunk_offset,streamFile); - } else if (chunk_type == 0x8) { /* "fmt " */ - xma->fmt_codec = read_16bit(xma->chunk_offset,streamFile); - xma->force_little_endian = 1; - } else { - goto fail; - } - xma->needs_header = 1; - - if (xma->data_size + xma->data_offset > xma->file_size) goto fail; - } - else if (id == id_PASX) { /* SoulCalibur II HD */ - /* custom header with a "fmt " data chunk inside */ - xma->chunk_size = read_32bit(0x08,streamFile); - xma->data_size = read_32bit(0x0c,streamFile); - xma->chunk_offset = read_32bit(0x10,streamFile); - /* 0x14: chunk offset end */ - xma->data_offset = read_32bit(0x18,streamFile); - xma->fmt_codec = read_16bit(xma->chunk_offset,streamFile); - xma->needs_header = 1; - xma->force_little_endian = 1; - } - else { - goto fail; - } - - - /* find sample data */ - if (xma->xma2_version) { /* old XMA2 (internally always BE) */ - xma->loop_start_sample = read_32bitBE(xma->chunk_offset+0x4,streamFile); - xma->loop_end_sample = read_32bitBE(xma->chunk_offset+0x8,streamFile); - xma->loop_flag = (uint8_t)read_8bit(xma->chunk_offset+0x3,streamFile) > 0 /* rarely not set */ - || xma->loop_end_sample; - if (xma->xma2_version == 3) { - xma->num_samples = read_32bitBE(xma->chunk_offset+0x14,streamFile); - } else { - xma->num_samples = read_32bitBE(xma->chunk_offset+0x1C,streamFile); - } - } - else if (xma->fmt_codec == 0x166) { /* pure XMA2 */ - xma->num_samples = read_32bit(xma->chunk_offset+0x18,streamFile); - xma->loop_start_sample = read_32bit(xma->chunk_offset+0x28,streamFile); - xma->loop_end_sample = xma->loop_start_sample + read_32bit(xma->chunk_offset+0x2C,streamFile); - xma->loop_flag = (uint8_t)read_8bit(xma->chunk_offset+0x30,streamFile) > 0 /* never set in practice */ - || xma->loop_end_sample; - /* not needed but may affect looping? (sometimes these don't match loop/total samples) */ - /* int32_t play_begin_sample = read_32bit(xma->chunk_offset+0x20,streamFile); */ - /* int32_t play_end_sample = play_begin_sample + read_32bit(xma->chunk_offset+0x24,streamFile); */ - } - else if (xma->fmt_codec == 0x165) { /* pure XMA1 */ - xma->loop_flag = (uint8_t)read_8bit(xma->chunk_offset+0xA,streamFile) > 0; - xma->xma1_loop_start_offset_b = read_32bit(xma->chunk_offset+0x14,streamFile); - xma->xma1_loop_end_offset_b = read_32bit(xma->chunk_offset+0x18,streamFile); - xma->xma1_subframe_data = (uint8_t)read_8bit(xma->chunk_offset+0x1C,streamFile); - /* find samples count + loop samples since they are not in the header */ - parse_xma1_sample_data(xma, streamFile); - } - else { /* unknown chunk */ - goto fail; - } - - return 1; - -fail: - return 0; -} - - -/** - * XMA1: manually find total and loop samples - * - * A XMA1 stream is made of packets, each containing N frames of X samples, and frame is divided into subframes for looping purposes. - * FFmpeg can't get total samples without decoding, so we'll count frames+samples by reading packet headers. - */ -static void parse_xma1_sample_data(xma_header_data * xma, STREAMFILE *streamFile) { - int frames = 0, loop_frame_start = 0, loop_frame_end = 0, loop_subframe_end, loop_subframe_skip; - uint32_t header, first_frame_b, packet_skip_b, frame_size_b, packet_size_b; - uint64_t packet_offset_b, frame_offset_b; - uint32_t size; - - uint32_t packet_size = XMA_BYTES_PER_PACKET; - uint32_t offset = xma->data_offset; - uint32_t offset_b = 0; - uint32_t stream_offset_b = xma->data_offset * 8; - - size = offset + xma->data_size; - packet_size_b = packet_size*8; - - while (offset < size) { /* stream global offset*/ - /* XMA1 packet header (32b) = packet_sequence:4, unk:2: frame_offset_in_bits:15, packet_stream_skip_count:11 */ - header = read_32bitBE(offset, streamFile); - first_frame_b = (header >> 11) & 0x7FFF; - packet_skip_b = (header) & 0x7FF; - - offset_b = offset * 8; - packet_offset_b = 4*8 + first_frame_b; - while (packet_offset_b < packet_size_b && packet_skip_b!=0x7FF) { /* internal packet offset + full packet skip (needed?) */ - frame_offset_b = offset_b + packet_offset_b; /* global offset to packet, in bits for aligment stuff */ - - /* XMA1 frame header (32b) = frame_length_in_bits:15, frame_data:17+ */ - header = read_32bitBE(frame_offset_b/8, streamFile); - frame_size_b = (header >> (17 - frame_offset_b % 8)) & 0x7FFF; - - if (frame_size_b == 0) /* observed in some files */ - break; - - packet_offset_b += frame_size_b;/* including header */ - - if (frame_size_b != 0x7FFF) /* end frame marker*/ - frames++; - - if (xma->loop_flag && frame_offset_b - stream_offset_b == xma->xma1_loop_start_offset_b) - loop_frame_start = frames; - if (xma->loop_flag && frame_offset_b - stream_offset_b == xma->xma1_loop_end_offset_b) - loop_frame_end = frames; - } - - offset += packet_size; - } - - loop_subframe_end = xma->xma1_subframe_data >> 4; /* upper 4b: subframe where the loop ends, 0..3 */ - loop_subframe_skip = xma->xma1_subframe_data & 0xF; /* lower 4b: subframe where the loop starts, 0..4 */ - - xma->num_samples = frames * XMA_SAMPLES_PER_FRAME; - if (xma->loop_flag) { - xma->loop_start_sample = loop_frame_start * XMA_SAMPLES_PER_FRAME + loop_subframe_skip * XMA_SAMPLES_PER_SUBFRAME; - xma->loop_end_sample = loop_frame_end * XMA_SAMPLES_PER_FRAME + loop_subframe_end * XMA_SAMPLES_PER_SUBFRAME; - } -} - - -/** - * Recreates a RIFF header that FFmpeg can read since it lacks support for some variations. - * - * returns bytes written (up until "data" chunk + size), -1 on failure - */ -static int create_riff_header(uint8_t * buf, size_t buf_size, xma_header_data * xma, STREAMFILE *streamFile) { - void (*put_32bit)(uint8_t *, int32_t) = NULL; - uint8_t chunk[FAKE_RIFF_BUFFER_SIZE]; - uint8_t internal[FAKE_RIFF_BUFFER_SIZE]; - size_t head_size, file_size, internal_size; - - int use_be = xma->big_endian && !xma->force_little_endian; - - if (use_be) { - put_32bit = put_32bitBE; - } else { - put_32bit = put_32bitLE; - } - - memset(buf,0, sizeof(uint8_t) * buf_size); - if (read_streamfile(chunk,xma->chunk_offset,xma->chunk_size, streamFile) != xma->chunk_size) - goto fail; - - /* create internal chunks */ - if (xma->xma2_version == 3) { /* old XMA2 v3: change to v4 (extra 8 bytes in the middle) */ - internal_size = 4+4+xma->chunk_size + 8; - - memcpy(internal + 0x0, "XMA2", 4); /* "XMA2" chunk (internal data is BE) */ - put_32bit(internal + 0x4, xma->chunk_size + 8); /* v3 > v4 size*/ - put_8bit(internal + 0x8, 4); /* v4 */ - memcpy(internal + 0x9, chunk+1, 15); /* first v3 part (fixed) */ - put_32bitBE(internal + 0x18, 0); /* extra v4 BE: "EncodeOptions" (not used by FFmpeg) */ - put_32bitBE(internal + 0x1c, 0); /* extra v4 BE: "PsuedoBytesPerSec" (not used by FFmpeg) */ - memcpy(internal + 0x20, chunk+16, xma->chunk_size - 16); /* second v3 part (variable) */ - } - else { /* direct copy (old XMA2 v4 ignoring "fmt", pure XMA1/2) */ - internal_size = 4+4+xma->chunk_size; - - if (xma->force_little_endian ) { - if ( !fmt_chunk_swap_endian(chunk, xma->fmt_codec) ) - goto fail; - } - - memcpy(internal + 0x0, xma->xma2_version ? "XMA2" : "fmt ", 4); - put_32bit(internal + 0x4, xma->chunk_size); - memcpy(internal + 0x8, chunk, xma->chunk_size); - } - - /* create main RIFF */ - head_size = 4+4 + 4 + internal_size + 4+4; - file_size = head_size-4-4 + xma->data_size; - if (head_size > buf_size) goto fail; - - memcpy(buf + 0x0, use_be ? "RIFX" : "RIFF", 4); - put_32bit(buf + 0x4, file_size); - memcpy(buf + 0x8, "WAVE", 4); - memcpy(buf + 0xc, internal, internal_size); - memcpy(buf + head_size-4-4, "data", 4); - put_32bit(buf + head_size-4, xma->data_size); - - return head_size; - -fail: - return -1; -} - - -/** - * Swaps endianness - * - * returns 0 on error - */ -static int fmt_chunk_swap_endian(uint8_t * chunk, uint16_t codec) { - if (codec != 0x166) - goto fail; - - put_16bitLE(chunk + 0x00, get_16bitBE(chunk + 0x00));/*wFormatTag*/ - put_16bitLE(chunk + 0x02, get_16bitBE(chunk + 0x02));/*nChannels*/ - put_32bitLE(chunk + 0x04, get_32bitBE(chunk + 0x04));/*nSamplesPerSec*/ - put_32bitLE(chunk + 0x08, get_32bitBE(chunk + 0x08));/*nAvgBytesPerSec*/ - put_16bitLE(chunk + 0x0c, get_16bitBE(chunk + 0x0c));/*nBlockAlign*/ - put_16bitLE(chunk + 0x0e, get_16bitBE(chunk + 0x0e));/*wBitsPerSample*/ - put_16bitLE(chunk + 0x10, get_16bitBE(chunk + 0x10));/*cbSize*/ - put_16bitLE(chunk + 0x12, get_16bitBE(chunk + 0x12));/*NumStreams*/ - put_32bitLE(chunk + 0x14, get_32bitBE(chunk + 0x14));/*ChannelMask*/ - put_32bitLE(chunk + 0x18, get_32bitBE(chunk + 0x18));/*SamplesEncoded*/ - put_32bitLE(chunk + 0x1c, get_32bitBE(chunk + 0x1c));/*BytesPerBlock*/ - put_32bitLE(chunk + 0x20, get_32bitBE(chunk + 0x20));/*PlayBegin*/ - put_32bitLE(chunk + 0x24, get_32bitBE(chunk + 0x24));/*PlayLength*/ - put_32bitLE(chunk + 0x28, get_32bitBE(chunk + 0x28));/*LoopBegin*/ - put_32bitLE(chunk + 0x2c, get_32bitBE(chunk + 0x2c));/*LoopLength*/ - /* put_8bit(chunk + 0x30, get_8bit(chunk + 0x30));*//*LoopCount*/ - /* put_8bit(chunk + 0x31, get_8bit(chunk + 0x31));*//*EncoderVersion*/ - put_16bitLE(chunk + 0x32, get_16bitBE(chunk + 0x32));/*BlockCount*/ - - return 1; - -fail: - return 0; -} - - -#if ADJUST_SAMPLE_RATE -/** - * Get real XMA sample rate (from Microsoft docs, apparently info only and not correct for playback). - */ -static int32_t get_xma_sample_rate(int32_t general_rate) { - int32_t xma_rate = 48000; /* default XMA */ - - if (general_rate <= 24000) xma_rate = 24000; - else if (general_rate <= 32000) xma_rate = 32000; - else if (general_rate <= 44100) xma_rate = 44100; - - return xma_rate; -} -#endif - -#endif - +#include "meta.h" +#include "../util.h" + +#ifdef VGM_USE_FFMPEG + +#define ADJUST_SAMPLE_RATE 0 +#define XMA_BYTES_PER_PACKET 2048 +#define XMA_SAMPLES_PER_FRAME 512 +#define XMA_SAMPLES_PER_SUBFRAME 128 +#define FAKE_RIFF_BUFFER_SIZE 100 + + +/* parsing helper */ +typedef struct { + size_t file_size; + /* file traversing */ + int big_endian; + off_t chunk_offset; /* main header chunk offset, after "(id)" and size */ + size_t chunk_size; + off_t data_offset; + size_t data_size; + + int32_t fmt_codec; + uint8_t xma2_version; + int needs_header; + int force_little_endian; /* FFmpeg can't parse big endian "fmt" chunks */ + + /* info */ + int loop_flag; + int32_t num_samples; + int32_t loop_start_sample; + int32_t loop_end_sample; + + int32_t xma1_loop_start_offset_b; + int32_t xma1_loop_end_offset_b; + int32_t xma1_subframe_data; +} xma_header_data; + + +static int parse_header(xma_header_data * xma, STREAMFILE *streamFile); +static void parse_xma1_sample_data(xma_header_data * xma, STREAMFILE *streamFile); +static int create_riff_header(uint8_t * buf, size_t buf_size, xma_header_data * xma, STREAMFILE *streamFile); +static int fmt_chunk_swap_endian(uint8_t * chunk, uint16_t codec); +#if ADJUST_SAMPLE_RATE +static int get_xma_sample_rate(int32_t general_rate); +#endif + +/** + * XMA 1/2 (Microsoft) + * + * Usually in RIFF headers and minor variations. + */ +VGMSTREAM * init_vgmstream_xma(STREAMFILE *streamFile) { + char filename[PATH_LIMIT]; + VGMSTREAM * vgmstream = NULL; + ffmpeg_codec_data *data = NULL; + + xma_header_data xma; + uint8_t fake_riff[FAKE_RIFF_BUFFER_SIZE]; + int fake_riff_size = 0; + + + /* check extension, case insensitive */ + streamFile->get_name(streamFile,filename,sizeof(filename)); + if (strcasecmp("xma",filename_extension(filename)) + && strcasecmp("xma2",filename_extension(filename)) /* Skullgirls */ + && strcasecmp("nps",filename_extension(filename)) /* Beautiful Katamari */ + && strcasecmp("past",filename_extension(filename)) /* SoulCalibur II HD */ + ) + goto fail; + + /* check header */ + if ( !parse_header(&xma, streamFile) ) + goto fail; + + + /* init ffmpeg (create a fake RIFF that FFmpeg can read if needed) */ + if (xma.needs_header) { /* fake header + partial size */ + fake_riff_size = create_riff_header(fake_riff, FAKE_RIFF_BUFFER_SIZE, &xma, streamFile); + if (fake_riff_size <= 0) goto fail; + + data = init_ffmpeg_header_offset(streamFile, fake_riff, (uint64_t)fake_riff_size, xma.data_offset, xma.data_size); + if (!data) goto fail; + } + else { /* no change */ + data = init_ffmpeg_offset(streamFile, 0, xma.file_size); + if (!data) goto fail; + } + + + /* build VGMSTREAM */ + vgmstream = allocate_vgmstream(data->channels, xma.loop_flag); + if (!vgmstream) goto fail; + /*vgmstream->channels = data->channels;*/ + /*vgmstream->loop_flag = loop_flag;*/ + + vgmstream->codec_data = data; + vgmstream->coding_type = coding_FFmpeg; + vgmstream->layout_type = layout_none; + vgmstream->meta_type = meta_FFmpeg; + + vgmstream->sample_rate = data->sampleRate; +#if ADJUST_SAMPLE_RATE + vgmstream->sample_rate = get_xma_sample_rate(vgmstream->sample_rate); +#endif + vgmstream->num_samples = xma.num_samples; /* data->totalSamples: XMA1 = not set; XMA2 = not reliable */ + + if (vgmstream->loop_flag) { + vgmstream->loop_start_sample = xma.loop_start_sample; + vgmstream->loop_end_sample = xma.loop_end_sample; + } + + + return vgmstream; + +fail: + /* clean up */ + if (data) { + free_ffmpeg(data); + } + if (vgmstream) { + vgmstream->codec_data = NULL; + close_vgmstream(vgmstream); + } + return NULL; +} + + +/** + * Finds stuff needed for XMA with FFmpeg + * + * returns 1 if ok, 0 on error + */ +static int parse_header(xma_header_data * xma, STREAMFILE *streamFile) { + int32_t (*read_32bit)(off_t,STREAMFILE*) = NULL; + int16_t (*read_16bit)(off_t,STREAMFILE*) = NULL; + uint32_t id; + int big_endian = 0; + enum { + id_RIFF = UINT32_C(0x52494646), /* "RIFF" */ + id_RIFX = UINT32_C(0x52494658), /* "RIFX" */ + id_NXMA = UINT32_C(0x786D6100), /* "xma\0" */ + id_PASX = UINT32_C(0x50415358), /* "PASX" */ + }; + + + /* check header */ + id = read_32bitBE(0x00,streamFile); + switch (id) { + case id_RIFF: + break; + case id_RIFX: + case id_NXMA: + case id_PASX: + big_endian = 1; + break; + default: + goto fail; + } + + memset(xma,0,sizeof(xma_header_data)); + xma->big_endian = big_endian; + + if (xma->big_endian) { + read_32bit = read_32bitBE; + read_16bit = read_16bitBE; + } else { + read_32bit = read_32bitLE; + read_16bit = read_16bitLE; + } + + xma->file_size = streamFile->get_size(streamFile); + + /* find offsets */ + if (id == id_RIFF || id == id_RIFX) { /* regular RIFF header */ + off_t current_chunk = 0xc; + off_t fmt_offset = 0, xma2_offset = 0; + size_t riff_size = 0, fmt_size = 0, xma2_size = 0; + + riff_size = read_32bit(4,streamFile); + if (riff_size+8 > xma->file_size) goto fail; + + while (current_chunk < xma->file_size && current_chunk < riff_size+8) { + uint32_t chunk_type = read_32bitBE(current_chunk,streamFile); + off_t chunk_size = read_32bit(current_chunk+4,streamFile); + + if (current_chunk+4+4+chunk_size > xma->file_size) + goto fail; + + switch(chunk_type) { + case 0x666d7420: /* "fmt " */ + if (fmt_offset) goto fail; + + fmt_offset = current_chunk + 4 + 4; + fmt_size = chunk_size; + break; + case 0x64617461: /* "data" */ + if (xma->data_offset) goto fail; + + xma->data_offset = current_chunk + 4 + 4; + xma->data_size = chunk_size; + break; + case 0x584D4132: /* "XMA2" */ + if (xma2_offset) goto fail; + + xma2_offset = current_chunk + 4 + 4; + xma2_size = chunk_size; + break; + default: + break; + } + + current_chunk += 8+chunk_size; + } + + /* give priority to "XMA2" since it can go together with "fmt " */ + if (xma2_offset) { + xma->chunk_offset = xma2_offset; + xma->chunk_size = xma2_size; + xma->xma2_version = read_8bit(xma->chunk_offset,streamFile); + xma->needs_header = 1; /* FFmpeg can only parse pure XMA1 or pure XMA2 */ + } else if (fmt_offset) { + xma->chunk_offset = fmt_offset; + xma->chunk_size = fmt_size; + xma->fmt_codec = read_16bit(xma->chunk_offset,streamFile); + xma->force_little_endian = xma->big_endian; + } else { + goto fail; + } + } + else if (id == id_NXMA) { /* Namco (Tekken 6, Galaga Legions DX) */ + /* custom header with a "XMA2" or "fmt " data chunk inside, most other values are unknown */ + uint32_t chunk_type = read_32bit(0xC,streamFile); + xma->data_offset = 0x100; + xma->data_size = read_32bit(0x14,streamFile); + xma->chunk_offset = 0xBC; + xma->chunk_size = read_32bit(0x24,streamFile); + if (chunk_type == 0x4) { /* "XMA2" */ + xma->xma2_version = read_8bit(xma->chunk_offset,streamFile); + } else if (chunk_type == 0x8) { /* "fmt " */ + xma->fmt_codec = read_16bit(xma->chunk_offset,streamFile); + xma->force_little_endian = 1; + } else { + goto fail; + } + xma->needs_header = 1; + + if (xma->data_size + xma->data_offset > xma->file_size) goto fail; + } + else if (id == id_PASX) { /* SoulCalibur II HD */ + /* custom header with a "fmt " data chunk inside */ + xma->chunk_size = read_32bit(0x08,streamFile); + xma->data_size = read_32bit(0x0c,streamFile); + xma->chunk_offset = read_32bit(0x10,streamFile); + /* 0x14: chunk offset end */ + xma->data_offset = read_32bit(0x18,streamFile); + xma->fmt_codec = read_16bit(xma->chunk_offset,streamFile); + xma->needs_header = 1; + xma->force_little_endian = 1; + } + else { + goto fail; + } + + + /* find sample data */ + if (xma->xma2_version) { /* old XMA2 (internally always BE) */ + xma->loop_start_sample = read_32bitBE(xma->chunk_offset+0x4,streamFile); + xma->loop_end_sample = read_32bitBE(xma->chunk_offset+0x8,streamFile); + xma->loop_flag = (uint8_t)read_8bit(xma->chunk_offset+0x3,streamFile) > 0 /* rarely not set */ + || xma->loop_end_sample; + if (xma->xma2_version == 3) { + xma->num_samples = read_32bitBE(xma->chunk_offset+0x14,streamFile); + } else { + xma->num_samples = read_32bitBE(xma->chunk_offset+0x1C,streamFile); + } + } + else if (xma->fmt_codec == 0x166) { /* pure XMA2 */ + xma->num_samples = read_32bit(xma->chunk_offset+0x18,streamFile); + xma->loop_start_sample = read_32bit(xma->chunk_offset+0x28,streamFile); + xma->loop_end_sample = xma->loop_start_sample + read_32bit(xma->chunk_offset+0x2C,streamFile); + xma->loop_flag = (uint8_t)read_8bit(xma->chunk_offset+0x30,streamFile) > 0 /* never set in practice */ + || xma->loop_end_sample; + /* not needed but may affect looping? (sometimes these don't match loop/total samples) */ + /* int32_t play_begin_sample = read_32bit(xma->chunk_offset+0x20,streamFile); */ + /* int32_t play_end_sample = play_begin_sample + read_32bit(xma->chunk_offset+0x24,streamFile); */ + } + else if (xma->fmt_codec == 0x165) { /* pure XMA1 */ + xma->loop_flag = (uint8_t)read_8bit(xma->chunk_offset+0xA,streamFile) > 0; + xma->xma1_loop_start_offset_b = read_32bit(xma->chunk_offset+0x14,streamFile); + xma->xma1_loop_end_offset_b = read_32bit(xma->chunk_offset+0x18,streamFile); + xma->xma1_subframe_data = (uint8_t)read_8bit(xma->chunk_offset+0x1C,streamFile); + /* find samples count + loop samples since they are not in the header */ + parse_xma1_sample_data(xma, streamFile); + } + else { /* unknown chunk */ + goto fail; + } + + return 1; + +fail: + return 0; +} + + +/** + * XMA1: manually find total and loop samples + * + * A XMA1 stream is made of packets, each containing N frames of X samples, and frame is divided into subframes for looping purposes. + * FFmpeg can't get total samples without decoding, so we'll count frames+samples by reading packet headers. + */ +static void parse_xma1_sample_data(xma_header_data * xma, STREAMFILE *streamFile) { + int frames = 0, loop_frame_start = 0, loop_frame_end = 0, loop_subframe_end, loop_subframe_skip; + uint32_t header, first_frame_b, packet_skip_b, frame_size_b, packet_size_b; + uint64_t packet_offset_b, frame_offset_b; + uint32_t size; + + uint32_t packet_size = XMA_BYTES_PER_PACKET; + uint32_t offset = xma->data_offset; + uint32_t offset_b = 0; + uint32_t stream_offset_b = xma->data_offset * 8; + + size = offset + xma->data_size; + packet_size_b = packet_size*8; + + while (offset < size) { /* stream global offset*/ + /* XMA1 packet header (32b) = packet_sequence:4, unk:2: frame_offset_in_bits:15, packet_stream_skip_count:11 */ + header = read_32bitBE(offset, streamFile); + first_frame_b = (header >> 11) & 0x7FFF; + packet_skip_b = (header) & 0x7FF; + + offset_b = offset * 8; + packet_offset_b = 4*8 + first_frame_b; + while (packet_offset_b < packet_size_b && packet_skip_b!=0x7FF) { /* internal packet offset + full packet skip (needed?) */ + frame_offset_b = offset_b + packet_offset_b; /* global offset to packet, in bits for aligment stuff */ + + /* XMA1 frame header (32b) = frame_length_in_bits:15, frame_data:17+ */ + header = read_32bitBE(frame_offset_b/8, streamFile); + frame_size_b = (header >> (17 - frame_offset_b % 8)) & 0x7FFF; + + if (frame_size_b == 0) /* observed in some files */ + break; + + packet_offset_b += frame_size_b;/* including header */ + + if (frame_size_b != 0x7FFF) /* end frame marker*/ + frames++; + + if (xma->loop_flag && frame_offset_b - stream_offset_b == xma->xma1_loop_start_offset_b) + loop_frame_start = frames; + if (xma->loop_flag && frame_offset_b - stream_offset_b == xma->xma1_loop_end_offset_b) + loop_frame_end = frames; + } + + offset += packet_size; + } + + loop_subframe_end = xma->xma1_subframe_data >> 4; /* upper 4b: subframe where the loop ends, 0..3 */ + loop_subframe_skip = xma->xma1_subframe_data & 0xF; /* lower 4b: subframe where the loop starts, 0..4 */ + + xma->num_samples = frames * XMA_SAMPLES_PER_FRAME; + if (xma->loop_flag) { + xma->loop_start_sample = loop_frame_start * XMA_SAMPLES_PER_FRAME + loop_subframe_skip * XMA_SAMPLES_PER_SUBFRAME; + xma->loop_end_sample = loop_frame_end * XMA_SAMPLES_PER_FRAME + loop_subframe_end * XMA_SAMPLES_PER_SUBFRAME; + } +} + + +/** + * Recreates a RIFF header that FFmpeg can read since it lacks support for some variations. + * + * returns bytes written (up until "data" chunk + size), -1 on failure + */ +static int create_riff_header(uint8_t * buf, size_t buf_size, xma_header_data * xma, STREAMFILE *streamFile) { + void (*put_32bit)(uint8_t *, int32_t) = NULL; + uint8_t chunk[FAKE_RIFF_BUFFER_SIZE]; + uint8_t internal[FAKE_RIFF_BUFFER_SIZE]; + size_t head_size, file_size, internal_size; + + int use_be = xma->big_endian && !xma->force_little_endian; + + if (use_be) { + put_32bit = put_32bitBE; + } else { + put_32bit = put_32bitLE; + } + + memset(buf,0, sizeof(uint8_t) * buf_size); + if (read_streamfile(chunk,xma->chunk_offset,xma->chunk_size, streamFile) != xma->chunk_size) + goto fail; + + /* create internal chunks */ + if (xma->xma2_version == 3) { /* old XMA2 v3: change to v4 (extra 8 bytes in the middle) */ + internal_size = 4+4+xma->chunk_size + 8; + + memcpy(internal + 0x0, "XMA2", 4); /* "XMA2" chunk (internal data is BE) */ + put_32bit(internal + 0x4, xma->chunk_size + 8); /* v3 > v4 size*/ + put_8bit(internal + 0x8, 4); /* v4 */ + memcpy(internal + 0x9, chunk+1, 15); /* first v3 part (fixed) */ + put_32bitBE(internal + 0x18, 0); /* extra v4 BE: "EncodeOptions" (not used by FFmpeg) */ + put_32bitBE(internal + 0x1c, 0); /* extra v4 BE: "PsuedoBytesPerSec" (not used by FFmpeg) */ + memcpy(internal + 0x20, chunk+16, xma->chunk_size - 16); /* second v3 part (variable) */ + } + else { /* direct copy (old XMA2 v4 ignoring "fmt", pure XMA1/2) */ + internal_size = 4+4+xma->chunk_size; + + if (xma->force_little_endian ) { + if ( !fmt_chunk_swap_endian(chunk, xma->fmt_codec) ) + goto fail; + } + + memcpy(internal + 0x0, xma->xma2_version ? "XMA2" : "fmt ", 4); + put_32bit(internal + 0x4, xma->chunk_size); + memcpy(internal + 0x8, chunk, xma->chunk_size); + } + + /* create main RIFF */ + head_size = 4+4 + 4 + internal_size + 4+4; + file_size = head_size-4-4 + xma->data_size; + if (head_size > buf_size) goto fail; + + memcpy(buf + 0x0, use_be ? "RIFX" : "RIFF", 4); + put_32bit(buf + 0x4, file_size); + memcpy(buf + 0x8, "WAVE", 4); + memcpy(buf + 0xc, internal, internal_size); + memcpy(buf + head_size-4-4, "data", 4); + put_32bit(buf + head_size-4, xma->data_size); + + return head_size; + +fail: + return -1; +} + + +/** + * Swaps endianness + * + * returns 0 on error + */ +static int fmt_chunk_swap_endian(uint8_t * chunk, uint16_t codec) { + if (codec != 0x166) + goto fail; + + put_16bitLE(chunk + 0x00, get_16bitBE(chunk + 0x00));/*wFormatTag*/ + put_16bitLE(chunk + 0x02, get_16bitBE(chunk + 0x02));/*nChannels*/ + put_32bitLE(chunk + 0x04, get_32bitBE(chunk + 0x04));/*nSamplesPerSec*/ + put_32bitLE(chunk + 0x08, get_32bitBE(chunk + 0x08));/*nAvgBytesPerSec*/ + put_16bitLE(chunk + 0x0c, get_16bitBE(chunk + 0x0c));/*nBlockAlign*/ + put_16bitLE(chunk + 0x0e, get_16bitBE(chunk + 0x0e));/*wBitsPerSample*/ + put_16bitLE(chunk + 0x10, get_16bitBE(chunk + 0x10));/*cbSize*/ + put_16bitLE(chunk + 0x12, get_16bitBE(chunk + 0x12));/*NumStreams*/ + put_32bitLE(chunk + 0x14, get_32bitBE(chunk + 0x14));/*ChannelMask*/ + put_32bitLE(chunk + 0x18, get_32bitBE(chunk + 0x18));/*SamplesEncoded*/ + put_32bitLE(chunk + 0x1c, get_32bitBE(chunk + 0x1c));/*BytesPerBlock*/ + put_32bitLE(chunk + 0x20, get_32bitBE(chunk + 0x20));/*PlayBegin*/ + put_32bitLE(chunk + 0x24, get_32bitBE(chunk + 0x24));/*PlayLength*/ + put_32bitLE(chunk + 0x28, get_32bitBE(chunk + 0x28));/*LoopBegin*/ + put_32bitLE(chunk + 0x2c, get_32bitBE(chunk + 0x2c));/*LoopLength*/ + /* put_8bit(chunk + 0x30, get_8bit(chunk + 0x30));*//*LoopCount*/ + /* put_8bit(chunk + 0x31, get_8bit(chunk + 0x31));*//*EncoderVersion*/ + put_16bitLE(chunk + 0x32, get_16bitBE(chunk + 0x32));/*BlockCount*/ + + return 1; + +fail: + return 0; +} + + +#if ADJUST_SAMPLE_RATE +/** + * Get real XMA sample rate (from Microsoft docs, apparently info only and not correct for playback). + */ +static int32_t get_xma_sample_rate(int32_t general_rate) { + int32_t xma_rate = 48000; /* default XMA */ + + if (general_rate <= 24000) xma_rate = 24000; + else if (general_rate <= 32000) xma_rate = 32000; + else if (general_rate <= 44100) xma_rate = 44100; + + return xma_rate; +} +#endif + +#endif diff --git a/Frameworks/vgmstream/vgmstream/src/streamfile.c b/Frameworks/vgmstream/vgmstream/src/streamfile.c index 0e5f1e688..522515d60 100644 --- a/Frameworks/vgmstream/vgmstream/src/streamfile.c +++ b/Frameworks/vgmstream/vgmstream/src/streamfile.c @@ -1,18 +1,22 @@ #ifndef _MSC_VER #include #endif -#include "vgmstream.h" #include "streamfile.h" #include "util.h" +#include "vgmstream.h" typedef struct { STREAMFILE sf; FILE * infile; + char name[PATH_LIMIT]; off_t offset; size_t validsize; uint8_t * buffer; size_t buffersize; - char name[PATH_LIMIT]; + size_t filesize; +#ifdef VGM_DEBUG_OUTPUT + int error_notified; +#endif #ifdef PROFILE_STREAMFILE size_t bytes_read; int error_count; @@ -47,9 +51,31 @@ static size_t read_the_rest(uint8_t * dest, off_t offset, size_t length, STDIOST /* read as much of the beginning of the request as possible, proceed */ while (length>0) { size_t length_to_read; - size_t length_read=0; + size_t length_read; streamfile->validsize=0; - if (fseeko(streamfile->infile,offset,SEEK_SET)) return length_read; + + /* request outside file: ignore to avoid seek/read */ + if (offset > streamfile->filesize) { + #ifdef VGM_DEBUG_OUTPUT + if (!streamfile->error_notified) { + VGM_LOG("ERROR: reading outside filesize, at offset 0x%lx + 0x%x (buggy meta?)\n", offset, length); + streamfile->error_notified = 1; + } + #endif + streamfile->offset = streamfile->filesize; + memset(dest,0,length); + return length; /* return partially-read buffer and 0-set the rest */ + } + + /* position to new offset */ + if (fseeko(streamfile->infile,offset,SEEK_SET)) { + streamfile->offset = streamfile->filesize; +#ifdef PROFILE_STREAMFILE + streamfile->error_count++; +#endif + return 0; //fail miserably + } + streamfile->offset=offset; /* decide how much must be read this time */ @@ -87,9 +113,8 @@ static size_t read_the_rest(uint8_t * dest, off_t offset, size_t length, STDIOST return length_read_total; } -static size_t read_stdio(STDIOSTREAMFILE *streamfile,uint8_t * dest, off_t offset, size_t length) -{ - // read +static size_t read_stdio(STDIOSTREAMFILE *streamfile,uint8_t * dest, off_t offset, size_t length) { + if (!streamfile || !dest || length<=0) return 0; /* if entire request is within the buffer */ @@ -98,6 +123,21 @@ static size_t read_stdio(STDIOSTREAMFILE *streamfile,uint8_t * dest, off_t offse return length; } + /* request outside file: ignore to avoid seek/read in read_the_rest() */ + if (offset > streamfile->filesize) { +#ifdef VGM_DEBUG_OUTPUT + if (!streamfile->error_notified) { + VGM_LOG("ERROR: reading outside filesize, at offset over 0x%lx (buggy meta?)\n", offset); + streamfile->error_notified = 1; + } +#endif + + streamfile->offset = streamfile->filesize; + memset(dest,0,length); + return length; + } + + /* request outside buffer: new fread */ { size_t length_read = read_the_rest(dest,offset,length,streamfile); #if PROFILE_STREAMFILE @@ -115,8 +155,7 @@ static void close_stdio(STDIOSTREAMFILE * streamfile) { } static size_t get_size_stdio(STDIOSTREAMFILE * streamfile) { - fseeko(streamfile->infile,0,SEEK_END); - return ftello(streamfile->infile); + return streamfile->filesize; } static off_t get_offset_stdio(STDIOSTREAMFILE *streamFile) { @@ -195,6 +234,10 @@ static STREAMFILE * open_stdio_streamfile_buffer_by_FILE(FILE *infile,const char strncpy(streamfile->name,filename,sizeof(streamfile->name)); streamfile->name[sizeof(streamfile->name)-1] = '\0'; + /* cache filesize */ + fseeko(streamfile->infile,0,SEEK_END); + streamfile->filesize = ftello(streamfile->infile); + return &streamfile->sf; } @@ -273,6 +316,18 @@ size_t get_streamfile_dos_line(int dst_length, char * dst, off_t offset, } +/** + * Opens an stream using the base streamFile name plus a new extension (ex. for headers in a separate file) + */ +STREAMFILE * open_stream_ext(STREAMFILE *streamFile, const char * ext) { + char filename_ext[PATH_LIMIT]; + + streamFile->get_name(streamFile,filename_ext,sizeof(filename_ext)); + strcpy(filename_ext + strlen(filename_ext) - strlen(filename_extension(filename_ext)), ext); + + return streamFile->open(streamFile,filename_ext,STREAMFILE_DEFAULT_BUFFER_SIZE); +} + /** * open file containing decryption keys and copy to buffer * tries combinations of keynames based on the original filename @@ -391,3 +446,72 @@ fail: return 0; } + + +/** + * checks if the stream filename is one of the extensions (comma-separated, ex. "adx" or "adx,aix") + * + * returns 0 on failure + */ +int check_extensions(STREAMFILE *streamFile, const char * cmp_exts) { + char filename[PATH_LIMIT]; + const char * ext = NULL; + const char * cmp_ext = NULL; + size_t ext_len; + + streamFile->get_name(streamFile,filename,sizeof(filename)); + ext = filename_extension(filename); + ext_len = strlen(ext); + + cmp_ext = cmp_exts; + do { + if (strncasecmp(ext,cmp_ext, ext_len)==0 ) + return 1; + cmp_ext = strstr(cmp_ext, ","); + if (cmp_ext != NULL) + cmp_ext = cmp_ext + 1; /* skip comma */ + } while (cmp_ext != NULL); + + return 0; +} + + +/** + * Find a chunk starting from an offset, and save its offset/size (if not NULL), with offset after id/size. + * Works for chunked headers in the form of "chunk_id chunk_size (data)"xN (ex. RIFF). + * The start_offset should be the first actual chunk (not "RIFF" or "WAVE" but "fmt "). + * "full_chunk_size" signals chunk_size includes 4+4+data. + * + * returns 0 on failure + */ +static int find_chunk(STREAMFILE *streamFile, uint32_t chunk_id, off_t start_offset, int full_chunk_size, int size_big_endian, off_t *out_chunk_offset, size_t *out_chunk_size); +int find_chunk_be(STREAMFILE *streamFile, uint32_t chunk_id, off_t start_offset, int full_chunk_size, off_t *out_chunk_offset, size_t *out_chunk_size) { + return find_chunk(streamFile, chunk_id, start_offset, full_chunk_size, 1, out_chunk_offset, out_chunk_size); +} +int find_chunk_le(STREAMFILE *streamFile, uint32_t chunk_id, off_t start_offset, int full_chunk_size, off_t *out_chunk_offset, size_t *out_chunk_size) { + return find_chunk(streamFile, chunk_id, start_offset, full_chunk_size, 0, out_chunk_offset, out_chunk_size); +} +int find_chunk(STREAMFILE *streamFile, uint32_t chunk_id, off_t start_offset, int full_chunk_size, int size_big_endian, off_t *out_chunk_offset, size_t *out_chunk_size) { + size_t filesize; + off_t current_chunk = start_offset; + + filesize = get_streamfile_size(streamFile); + /* read chunks */ + while (current_chunk < filesize) { + uint32_t chunk_type = read_32bitBE(current_chunk,streamFile); + off_t chunk_size = size_big_endian ? + read_32bitBE(current_chunk+4,streamFile) : + read_32bitLE(current_chunk+4,streamFile); + + if (chunk_type == chunk_id) { + if (out_chunk_offset) *out_chunk_offset = current_chunk+8; + if (out_chunk_size) *out_chunk_size = chunk_size; + return 1; + } + + current_chunk += full_chunk_size ? chunk_size : 4+4+chunk_size; + } + + return 0; +} + diff --git a/Frameworks/vgmstream/vgmstream/src/streamfile.h b/Frameworks/vgmstream/vgmstream/src/streamfile.h index f0347744a..bc2693319 100644 --- a/Frameworks/vgmstream/vgmstream/src/streamfile.h +++ b/Frameworks/vgmstream/vgmstream/src/streamfile.h @@ -32,7 +32,7 @@ #define fseeko fseek #endif -#define STREAMFILE_DEFAULT_BUFFER_SIZE 0x400 +#define STREAMFILE_DEFAULT_BUFFER_SIZE 0x8000 #ifndef DIR_SEPARATOR #if defined (_WIN32) || defined (WIN32) @@ -146,11 +146,17 @@ static inline STREAMFILE * open_stdio_streamfile(const char * const filename) { return open_stdio_streamfile_buffer(filename,STREAMFILE_DEFAULT_BUFFER_SIZE); } -size_t get_streamfile_dos_line(int dst_length, char * dst, off_t offset, - STREAMFILE * infile, int *line_done_ptr); +size_t get_streamfile_dos_line(int dst_length, char * dst, off_t offset, STREAMFILE * infile, int *line_done_ptr); + +STREAMFILE * open_stream_ext(STREAMFILE *streamFile, const char * ext); int read_key_file(uint8_t * buf, size_t bufsize, STREAMFILE *streamFile); int read_pos_file(uint8_t * buf, size_t bufsize, STREAMFILE *streamFile); +int check_extensions(STREAMFILE *streamFile, const char * cmp_exts); + +int find_chunk_be(STREAMFILE *streamFile, uint32_t chunk_id, off_t start_offset, int full_chunk_size, off_t *out_chunk_offset, size_t *out_chunk_size); +int find_chunk_le(STREAMFILE *streamFile, uint32_t chunk_id, off_t start_offset, int full_chunk_size, off_t *out_chunk_offset, size_t *out_chunk_size); + #endif diff --git a/Frameworks/vgmstream/vgmstream/src/streamtypes.h b/Frameworks/vgmstream/vgmstream/src/streamtypes.h index e87e4d393..3b2cca352 100644 --- a/Frameworks/vgmstream/vgmstream/src/streamtypes.h +++ b/Frameworks/vgmstream/vgmstream/src/streamtypes.h @@ -7,13 +7,24 @@ #define _STREAMTYPES_H #ifdef _MSC_VER + +#if (_MSC_VER >= 1600) +#include +#else #include +#endif /* (_MSC_VER >= 1600) */ + #define inline _inline #define strcasecmp _stricmp +#define strncasecmp _strnicmp + +#if (_MSC_VER < 1900) #define snprintf _snprintf +#endif /* (_MSC_VER < 1900) */ + #else #include -#endif +#endif /* _MSC_VER */ typedef int16_t sample; diff --git a/Frameworks/vgmstream/vgmstream/src/util.c b/Frameworks/vgmstream/vgmstream/src/util.c index a413206ef..0ffec15fb 100644 --- a/Frameworks/vgmstream/vgmstream/src/util.c +++ b/Frameworks/vgmstream/vgmstream/src/util.c @@ -85,75 +85,6 @@ void put_32bitBE(uint8_t * buf, int32_t i) { buf[3] = (uint8_t)(i & 0xFF); } -/* make a header for PCM .wav */ -/* buffer must be 0x2c bytes */ -void make_wav_header(uint8_t * buf, int32_t sample_count, int32_t sample_rate, int channels) { - size_t bytecount; - - bytecount = sample_count*channels*sizeof(sample); - - /* RIFF header */ - memcpy(buf+0, "RIFF", 4); - /* size of RIFF */ - put_32bitLE(buf+4, (int32_t)(bytecount+0x2c-8)); - - /* WAVE header */ - memcpy(buf+8, "WAVE", 4); - - /* WAVE fmt chunk */ - memcpy(buf+0xc, "fmt ", 4); - /* size of WAVE fmt chunk */ - put_32bitLE(buf+0x10, 0x10); - - /* compression code 1=PCM */ - put_16bitLE(buf+0x14, 1); - - /* channel count */ - put_16bitLE(buf+0x16, channels); - - /* sample rate */ - put_32bitLE(buf+0x18, sample_rate); - - /* bytes per second */ - put_32bitLE(buf+0x1c, sample_rate*channels*sizeof(sample)); - - /* block align */ - put_16bitLE(buf+0x20, (int16_t)(channels*sizeof(sample))); - - /* significant bits per sample */ - put_16bitLE(buf+0x22, sizeof(sample)*8); - - /* PCM has no extra format bytes, so we don't even need to specify a count */ - - /* WAVE data chunk */ - memcpy(buf+0x24, "data", 4); - /* size of WAVE data chunk */ - put_32bitLE(buf+0x28, (int32_t)bytecount); -} - -void make_smpl_chunk(uint8_t * buf, int32_t loop_start, int32_t loop_end) { - int i; - /* RIFF header */ - memcpy(buf+0, "smpl", 4); - /* size of RIFF */ - put_32bitLE(buf+4, 0x3c); - - for (i = 0; i < 7; i++) - put_32bitLE(buf+8 + i * 4, 0); - - put_32bitLE(buf+36, 1); - - for (i = 0; i < 3; i++) - put_32bitLE(buf+40 + i * 4, 0); - - put_32bitLE(buf+52, loop_start); - put_32bitLE(buf+56, loop_end); - put_32bitLE(buf+60, 0); - put_32bitLE(buf+64, 0); - - -} - void swap_samples_le(sample *buf, int count) { int i; for (i=0;i 1 */ -void concatn_doublenull(int length, char * dst, const char * src) { - int i,j; - if (length <= 1) return; - for (i=0;i0) i++; - for (j=0;i 1, if src won't fit, truncate */ -void concatn_fitting_doublenull(int length, char * dst, const char * src) { - int i,j,k; - if (length <= 1) return; - for (i=0;i0) i++; - k = i; - for (j=0;i #include #include +#include "formats.h" #include "vgmstream.h" #include "meta/meta.h" #include "layout/layout.h" @@ -30,7 +31,7 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = { init_vgmstream_halpst, init_vgmstream_rs03, init_vgmstream_ngc_dsp_std, - init_vgmstream_ngc_dsp_csmp, + init_vgmstream_ngc_dsp_csmp, init_vgmstream_Cstr, init_vgmstream_gcsw, init_vgmstream_ps2_ads, @@ -92,10 +93,7 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = { init_vgmstream_hgc1, init_vgmstream_aus, init_vgmstream_rws, - init_vgmstream_fsb1, - // init_vgmstream_fsb2, - init_vgmstream_fsb3, - init_vgmstream_fsb4, + init_vgmstream_fsb, init_vgmstream_fsb4_wav, init_vgmstream_fsb5, init_vgmstream_rwx, @@ -122,7 +120,7 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = { init_vgmstream_ps2_dxh, init_vgmstream_ps2_psh, init_vgmstream_pcm_scd, - init_vgmstream_pcm_ps2, + init_vgmstream_pcm_ps2, init_vgmstream_ps2_rkv, init_vgmstream_ps2_psw, init_vgmstream_ps2_vas, @@ -166,7 +164,6 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = { init_vgmstream_wii_mus, init_vgmstream_dc_asd, init_vgmstream_naomi_spsd, - init_vgmstream_rsd2vag, init_vgmstream_rsd2pcmb, init_vgmstream_rsd2xadp, @@ -231,19 +228,19 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = { init_vgmstream_ps2_sps, init_vgmstream_ps2_xa2_rrp, init_vgmstream_nds_hwas, - init_vgmstream_ngc_lps, + init_vgmstream_ngc_lps, init_vgmstream_ps2_snd, init_vgmstream_naomi_adpcm, - init_vgmstream_sd9, - init_vgmstream_2dx9, - init_vgmstream_dsp_ygo, + init_vgmstream_sd9, + init_vgmstream_2dx9, + init_vgmstream_dsp_ygo, init_vgmstream_ps2_vgv, init_vgmstream_ngc_gcub, init_vgmstream_maxis_xa, init_vgmstream_ngc_sck_dsp, init_vgmstream_apple_caff, - init_vgmstream_pc_mxst, - init_vgmstream_sab, + init_vgmstream_pc_mxst, + init_vgmstream_sab, init_vgmstream_exakt_sc, init_vgmstream_wii_bns, init_vgmstream_wii_was, @@ -254,8 +251,8 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = { init_vgmstream_ps2_stm, init_vgmstream_myspd, init_vgmstream_his, - init_vgmstream_ps2_ast, - init_vgmstream_dmsg, + init_vgmstream_ps2_ast, + init_vgmstream_dmsg, init_vgmstream_ngc_dsp_aaap, init_vgmstream_ngc_dsp_konami, init_vgmstream_ps2_ster, @@ -286,21 +283,20 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = { init_vgmstream_dsp_xiii, init_vgmstream_dsp_cabelas, init_vgmstream_ps2_adm, - init_vgmstream_ps2_lpcm, + init_vgmstream_ps2_lpcm, init_vgmstream_dsp_bdsp, - init_vgmstream_ps2_vms, - init_vgmstream_ps2_xau, + init_vgmstream_ps2_vms, + init_vgmstream_ps2_xau, init_vgmstream_gh3_bar, init_vgmstream_ffw, init_vgmstream_dsp_dspw, init_vgmstream_ps2_jstm, init_vgmstream_ps3_xvag, - init_vgmstream_ps3_cps, + init_vgmstream_ps3_cps, init_vgmstream_sqex_scd, init_vgmstream_ngc_nst_dsp, init_vgmstream_baf, init_vgmstream_ps3_msf, - init_vgmstream_fsb_mpeg, init_vgmstream_nub_vag, init_vgmstream_ps3_past, init_vgmstream_ps3_sgdx, @@ -311,7 +307,7 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = { init_vgmstream_ps2_iab, init_vgmstream_ps2_strlr, init_vgmstream_lsf_n1nj4n, - init_vgmstream_ps3_vawx, + init_vgmstream_vawx, init_vgmstream_pc_snds, init_vgmstream_ps2_wmus, init_vgmstream_hyperscan_kvag, @@ -335,27 +331,32 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = { init_vgmstream_otm, init_vgmstream_bcstm, init_vgmstream_3ds_idsp, - init_vgmstream_g1l, + init_vgmstream_kt_g1l, + init_vgmstream_kt_wiibgm, init_vgmstream_hca, init_vgmstream_ps2_svag_snk, + init_vgmstream_ps2_vds_vdm, + init_vgmstream_x360_cxs, #ifdef VGM_USE_FFMPEG init_vgmstream_xma, init_vgmstream_mp4_aac_ffmpeg, - init_vgmstream_ffmpeg, + + init_vgmstream_ffmpeg, /* should go at the end */ #endif }; -#define INIT_VGMSTREAM_FCNS (sizeof(init_vgmstream_fcns)/sizeof(init_vgmstream_fcns[0])) /* internal version with all parameters */ VGMSTREAM * init_vgmstream_internal(STREAMFILE *streamFile, int do_dfs) { - int i; + int i, fcns_size; if (!streamFile) return NULL; + fcns_size = (sizeof(init_vgmstream_fcns)/sizeof(init_vgmstream_fcns[0])); /* try a series of formats, see which works */ - for (i=0;imeta_type == meta_KRAW) || (vgmstream->meta_type == meta_PS2_MIB) || (vgmstream->meta_type == meta_NGC_LPS) || - (vgmstream->meta_type == meta_DSP_YGO) || + (vgmstream->meta_type == meta_DSP_YGO) || (vgmstream->meta_type == meta_DSP_AGSC) || - (vgmstream->meta_type == meta_PS2_SMPL) || - (vgmstream->meta_type == meta_NGCA) || + (vgmstream->meta_type == meta_PS2_SMPL) || + (vgmstream->meta_type == meta_NGCA) || (vgmstream->meta_type == meta_NUB_VAG) || (vgmstream->meta_type == meta_SPT_SPD) || (vgmstream->meta_type == meta_EB_SFX) || @@ -455,7 +456,7 @@ void reset_vgmstream(VGMSTREAM * vgmstream) { #endif if (vgmstream->coding_type==coding_CRI_HCA) { hca_codec_data *data = vgmstream->codec_data; - clHCA *hca = (clHCA *)(data + 1); + /*clHCA *hca = (clHCA *)(data + 1);*/ data->curblock = 0; data->sample_ptr = clHCA_samplesPerBlock; data->samples_discard = 0; @@ -860,7 +861,7 @@ void close_vgmstream(VGMSTREAM * vgmstream) { * but deallocate itself, there is only one open file and * that is in vgmstream->ch[0].streamfile */ close_vgmstream(data->substreams[i]); - close_streamfile(data->intfiles[i]); + if(data->intfiles[i]) close_streamfile(data->intfiles[i]); } free(data->substreams); free(data->intfiles); @@ -916,7 +917,6 @@ void render_vgmstream(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstre case layout_fake_mpeg: case layout_mpeg: #endif - case layout_dtk_interleave: case layout_none: render_vgmstream_nolayout(buffer,sample_count,vgmstream); break; @@ -1028,21 +1028,19 @@ int get_vgmstream_samples_per_frame(VGMSTREAM * vgmstream) { case coding_AICA: return 2; case coding_NGC_AFC: - case coding_FFXI: return 16; case coding_PSX: case coding_PSX_badflags: - case coding_invert_PSX: - case coding_HEVAG_ADPCM: + case coding_PSX_bmdx: + case coding_HEVAG: case coding_XA: return 28; - case coding_SHORT_VAG_ADPCM: - return 6; + case coding_PSX_cfg: + return (vgmstream->interleave_block_size - 1) * 2; /* decodes 1 byte into 2 bytes */ case coding_XBOX: case coding_INT_XBOX: - case coding_BAF_ADPCM: return 64; - case coding_EAXA: + case coding_EA_XA: return 28; case coding_MAXIS_ADPCM: case coding_EA_ADPCM: @@ -1159,16 +1157,15 @@ int get_vgmstream_frame_size(VGMSTREAM * vgmstream) { case coding_SNDS_IMA: return 0; case coding_NGC_AFC: - case coding_FFXI: return 9; case coding_PSX: case coding_PSX_badflags: - case coding_HEVAG_ADPCM: - case coding_invert_PSX: + case coding_PSX_bmdx: + case coding_HEVAG: case coding_NDS_PROCYON: return 16; - case coding_SHORT_VAG_ADPCM: - return 4; + case coding_PSX_cfg: + return vgmstream->interleave_block_size; case coding_XA: return 14*vgmstream->channels; case coding_XBOX: @@ -1178,7 +1175,7 @@ int get_vgmstream_frame_size(VGMSTREAM * vgmstream) { return 15*vgmstream->channels; case coding_EA_ADPCM: return 30; - case coding_EAXA: + case coding_EA_XA: return 1; // the frame is variant in size case coding_WS: return vgmstream->current_block_size; @@ -1188,15 +1185,13 @@ int get_vgmstream_frame_size(VGMSTREAM * vgmstream) { return 1; case coding_APPLE_IMA4: return 34; - case coding_BAF_ADPCM: - return 33; case coding_LSF: return 28; #ifdef VGM_USE_G7221 case coding_G7221C: case coding_G7221: #endif -#ifdef VGM_USE_G719: +#ifdef VGM_USE_G719 case coding_G719: #endif #ifdef VGM_USE_MAIATRAC3PLUS @@ -1399,19 +1394,9 @@ void decode_vgmstream(VGMSTREAM * vgmstream, int samples_written, int samples_to break; case coding_PSX: for (chan=0;chanchannels;chan++) { - if(vgmstream->skip_last_channel) - { - if(chan!=vgmstream->channels-1) { - decode_psx(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, - vgmstream->channels,vgmstream->samples_into_block, - samples_to_do); - } - - } else { - decode_psx(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, + decode_psx(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, vgmstream->channels,vgmstream->samples_into_block, samples_to_do); - } } break; case coding_PSX_badflags: @@ -1421,39 +1406,25 @@ void decode_vgmstream(VGMSTREAM * vgmstream, int samples_written, int samples_to samples_to_do); } break; - case coding_invert_PSX: + case coding_PSX_bmdx: for (chan=0;chanchannels;chan++) { - decode_invert_psx(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, + decode_psx_bmdx(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, vgmstream->channels,vgmstream->samples_into_block, samples_to_do); } break; - case coding_FFXI: + case coding_HEVAG: for (chan=0;chanchannels;chan++) { - decode_ffxi_adpcm(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, + decode_hevag(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, vgmstream->channels,vgmstream->samples_into_block, samples_to_do); } break; - case coding_BAF_ADPCM: + case coding_PSX_cfg: for (chan=0;chanchannels;chan++) { - decode_baf_adpcm(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, + decode_psx_configurable(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, vgmstream->channels,vgmstream->samples_into_block, - samples_to_do); - } - break; - case coding_HEVAG_ADPCM: - for (chan=0;chanchannels;chan++) { - decode_hevag_adpcm(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, - vgmstream->channels,vgmstream->samples_into_block, - samples_to_do); - } - break; - case coding_SHORT_VAG_ADPCM: - for (chan=0;chanchannels;chan++) { - decode_short_vag_adpcm(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, - vgmstream->channels,vgmstream->samples_into_block, - samples_to_do); + samples_to_do, vgmstream->interleave_block_size); } break; case coding_XA: @@ -1463,9 +1434,9 @@ void decode_vgmstream(VGMSTREAM * vgmstream, int samples_written, int samples_to samples_to_do,chan); } break; - case coding_EAXA: + case coding_EA_XA: for (chan=0;chanchannels;chan++) { - decode_eaxa(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, + decode_ea_xa(&vgmstream->ch[chan],buffer+samples_written*vgmstream->channels+chan, vgmstream->channels,vgmstream->samples_into_block, samples_to_do,chan); } @@ -1583,6 +1554,7 @@ void decode_vgmstream(VGMSTREAM * vgmstream, int samples_written, int samples_to samples_to_do); } break; + #ifdef VGM_USE_MPEG case coding_fake_MPEG2_L2: decode_fake_mpeg2_l2( @@ -1757,7 +1729,7 @@ int vgmstream_do_loop(VGMSTREAM * vgmstream) { vgmstream->meta_type == meta_DSP_RS03 || vgmstream->meta_type == meta_DSP_CSTR || vgmstream->coding_type == coding_PSX || - vgmstream->coding_type == coding_invert_PSX || + vgmstream->coding_type == coding_PSX_bmdx || vgmstream->coding_type == coding_PSX_badflags) { int i; for (i=0;ichannels;i++) { @@ -1767,21 +1739,14 @@ int vgmstream_do_loop(VGMSTREAM * vgmstream) { vgmstream->loop_ch[i].adpcm_history2_32 = vgmstream->ch[i].adpcm_history2_32; } } - /* todo preserve hevag, baf_adpcm, etc history? */ + /* todo preserve ADPCM (ex hevag) history? */ -#ifdef DEBUG - { - int i; - for (i=0;ichannels;i++) { - fprintf(stderr,"ch%d hist: %04x %04x loop hist: %04x %04x\n",i, - vgmstream->ch[i].adpcm_history1_16,vgmstream->ch[i].adpcm_history2_16, - vgmstream->loop_ch[i].adpcm_history1_16,vgmstream->loop_ch[i].adpcm_history2_16); - fprintf(stderr,"ch%d offset: %x loop offset: %x\n",i, - vgmstream->ch[i].offset, - vgmstream->loop_ch[i].offset); - } + if (vgmstream->coding_type==coding_CRI_HCA) { + hca_codec_data *data = (hca_codec_data *)(vgmstream->codec_data); + data->curblock = data->info.loopStart; + data->sample_ptr = clHCA_samplesPerBlock; + data->samples_discard = 0; } -#endif #ifdef VGM_USE_VORBIS if (vgmstream->coding_type==coding_ogg_vorbis) { @@ -1792,17 +1757,13 @@ int vgmstream_do_loop(VGMSTREAM * vgmstream) { ov_pcm_seek_lap(ogg_vorbis_file, vgmstream->loop_sample); } #endif - if (vgmstream->coding_type==coding_CRI_HCA) { - hca_codec_data *data = (hca_codec_data *)(vgmstream->codec_data); - data->curblock = data->info.loopStart; - data->sample_ptr = clHCA_samplesPerBlock; - data->samples_discard = 0; - } + #ifdef VGM_USE_FFMPEG if (vgmstream->coding_type==coding_FFmpeg) { seek_ffmpeg(vgmstream, vgmstream->loop_start_sample); } -#endif /* VGM_USE_FFMPEG */ +#endif + #if defined(VGM_USE_MP4V2) && defined(VGM_USE_FDKAAC) if (vgmstream->coding_type==coding_MP4_AAC) { mp4_aac_codec_data *data = (mp4_aac_codec_data *)(vgmstream->codec_data); @@ -1811,6 +1772,7 @@ int vgmstream_do_loop(VGMSTREAM * vgmstream) { data->samples_discard = vgmstream->loop_sample; } #endif + #ifdef VGM_USE_MAIATRAC3PLUS if (vgmstream->coding_type==coding_AT3plus) { int blocks_to_skip = vgmstream->loop_sample / 2048; @@ -1822,6 +1784,7 @@ int vgmstream_do_loop(VGMSTREAM * vgmstream) { data->samples_discard = samples_to_discard; } #endif + #ifdef VGM_USE_MPEG /* won't work for fake MPEG */ if (vgmstream->layout_type==layout_mpeg) { @@ -1880,6 +1843,7 @@ int vgmstream_do_loop(VGMSTREAM * vgmstream) { void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length) { #define TEMPSIZE 256 char temp[TEMPSIZE]; + const char* description; if (!vgmstream) { snprintf(temp,TEMPSIZE,"NULL VGMSTREAM"); @@ -1909,404 +1873,51 @@ void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length) { snprintf(temp,TEMPSIZE,"encoding: "); concatn(length,desc,temp); - switch (vgmstream->coding_type) { - case coding_PCM16BE: - snprintf(temp,TEMPSIZE,"Big Endian 16-bit PCM"); - break; - case coding_PCM16LE: - snprintf(temp,TEMPSIZE,"Little Endian 16-bit PCM"); - break; - case coding_PCM16LE_int: - snprintf(temp,TEMPSIZE,"Little Endian 16-bit PCM with 2 byte interleave"); - break; - case coding_PCM16LE_XOR_int: - snprintf(temp,TEMPSIZE,"Little Endian 16-bit PCM with 2 byte interleave and XOR obfuscation"); - break; - case coding_PCM8: - snprintf(temp,TEMPSIZE,"8-bit PCM"); - break; - case coding_PCM8_U: - snprintf(temp,TEMPSIZE,"8-bit unsigned PCM"); - break; - case coding_PCM8_U_int: - snprintf(temp,TEMPSIZE,"8-bit unsigned PCM with 1 byte interleave"); - break; - case coding_PCM8_int: - snprintf(temp,TEMPSIZE,"8-bit PCM with 1 byte interleave"); - break; - case coding_PCM8_SB_int: - snprintf(temp,TEMPSIZE,"8-bit PCM with sign bit, 1 byte interleave"); - break; - case coding_NGC_DSP: - snprintf(temp,TEMPSIZE,"Gamecube \"DSP\" 4-bit ADPCM"); - break; - case coding_CRI_ADX: - snprintf(temp,TEMPSIZE,"CRI ADX 4-bit ADPCM"); - break; - case coding_CRI_ADX_enc_8: - snprintf(temp,TEMPSIZE,"encrypted (type 8) CRI ADX 4-bit ADPCM"); - break; - case coding_CRI_ADX_enc_9: - snprintf(temp,TEMPSIZE,"encrypted (type 9) CRI ADX 4-bit ADPCM"); - break; - case coding_NDS_IMA: - snprintf(temp,TEMPSIZE,"NDS-style 4-bit IMA ADPCM"); - break; - case coding_DAT4_IMA: - snprintf(temp,TEMPSIZE,"Eurocom DAT4 4-bit IMA ADPCM"); - break; - case coding_NGC_DTK: - snprintf(temp,TEMPSIZE,"Gamecube \"ADP\"/\"DTK\" 4-bit ADPCM"); - break; - case coding_G721: - snprintf(temp,TEMPSIZE,"CCITT G.721 4-bit ADPCM"); - break; - case coding_NGC_AFC: - snprintf(temp,TEMPSIZE,"Gamecube \"AFC\" 4-bit ADPCM"); - break; - case coding_PSX: - snprintf(temp,TEMPSIZE,"Playstation 4-bit ADPCM"); - break; - case coding_PSX_badflags: - snprintf(temp,TEMPSIZE,"Playstation 4-bit ADPCM with bad flags"); - break; - case coding_invert_PSX: - snprintf(temp,TEMPSIZE,"BMDX \"encrypted\" Playstation 4-bit ADPCM"); - break; - case coding_FFXI: - snprintf(temp,TEMPSIZE,"FFXI Playstation-ish 4-bit ADPCM"); - break; - case coding_BAF_ADPCM: - snprintf(temp,TEMPSIZE,"Bizarre Creations Playstation-ish 4-bit ADPCM"); - break; - case coding_HEVAG_ADPCM: - snprintf(temp,TEMPSIZE,"PSVita HEVAG ADPCM"); - break; - case coding_SHORT_VAG_ADPCM: - snprintf(temp,TEMPSIZE,"Short VAG (SGXD type 5) ADPCM"); - break; - case coding_XA: - snprintf(temp,TEMPSIZE,"CD-ROM XA 4-bit ADPCM"); - break; - case coding_XBOX: - snprintf(temp,TEMPSIZE,"XBOX 4-bit IMA ADPCM"); - break; - case coding_INT_XBOX: - snprintf(temp,TEMPSIZE,"XBOX Interleaved 4-bit IMA ADPCM"); - break; - case coding_EAXA: - snprintf(temp,TEMPSIZE,"Electronic Arts XA Based 4-bit ADPCM"); - break; - case coding_EA_ADPCM: - snprintf(temp,TEMPSIZE,"Electronic Arts XA Based (R1) 4-bit ADPCM"); - break; -#ifdef VGM_USE_VORBIS - case coding_ogg_vorbis: - snprintf(temp,TEMPSIZE,"Vorbis"); - break; -#endif - case coding_SDX2: - snprintf(temp,TEMPSIZE,"Squareroot-delta-exact (SDX2) 8-bit DPCM"); - break; - case coding_SDX2_int: - snprintf(temp,TEMPSIZE,"Squareroot-delta-exact (SDX2) 8-bit DPCM with 1 byte interleave"); - break; - case coding_CBD2: - snprintf(temp,TEMPSIZE,"Cuberoot-delta-exact (CBD2) 8-bit DPCM"); - break; - case coding_CBD2_int: - snprintf(temp,TEMPSIZE,"Cuberoot-delta-exact (CBD2) 8-bit DPCM with 1 byte interleave"); - break; - case coding_DVI_IMA: - snprintf(temp,TEMPSIZE,"Intel DVI 4-bit IMA ADPCM"); - break; - case coding_INT_DVI_IMA: - snprintf(temp,TEMPSIZE,"Interleaved Intel DVI 4-bit IMA ADPCM"); - break; - case coding_EACS_IMA: - snprintf(temp,TEMPSIZE,"EACS 4-bit IMA ADPCM"); - break; - case coding_MAXIS_ADPCM: - snprintf(temp,TEMPSIZE,"Maxis XA (EA ADPCM Variant)"); - break; - case coding_INT_IMA: - snprintf(temp,TEMPSIZE,"Interleaved 4-bit IMA ADPCM"); - break; - case coding_IMA: - snprintf(temp,TEMPSIZE,"4-bit IMA ADPCM"); - break; - case coding_MS_IMA: - snprintf(temp,TEMPSIZE,"Microsoft 4-bit IMA ADPCM"); - break; - case coding_RAD_IMA: - snprintf(temp,TEMPSIZE,"\"Radical\" 4-bit IMA ADPCM"); - break; - case coding_RAD_IMA_mono: - snprintf(temp,TEMPSIZE,"\"Radical\" 4-bit IMA ADPCM (mono)"); - break; - case coding_APPLE_IMA4: - snprintf(temp,TEMPSIZE,"Apple Quicktime 4-bit IMA ADPCM"); - break; - case coding_SNDS_IMA: - snprintf(temp,TEMPSIZE,"Heavy Iron .snds 4-bit IMA ADPCM"); - break; - case coding_WS: - snprintf(temp,TEMPSIZE,"Westwood Studios DPCM"); - break; -#ifdef VGM_USE_MPEG - case coding_fake_MPEG2_L2: - snprintf(temp,TEMPSIZE,"MPEG-2 Layer II Audio"); - break; - case coding_MPEG1_L1: - snprintf(temp,TEMPSIZE,"MPEG-1 Layer I Audio"); - break; - case coding_MPEG1_L2: - snprintf(temp,TEMPSIZE,"MPEG-1 Layer II Audio"); - break; - case coding_MPEG1_L3: - snprintf(temp,TEMPSIZE,"MPEG-1 Layer III Audio (MP3)"); - break; - case coding_MPEG2_L1: - snprintf(temp,TEMPSIZE,"MPEG-2 Layer I Audio"); - break; - case coding_MPEG2_L2: - snprintf(temp,TEMPSIZE,"MPEG-2 Layer II Audio"); - break; - case coding_MPEG2_L3: - snprintf(temp,TEMPSIZE,"MPEG-2 Layer III Audio (MP3)"); - break; - case coding_MPEG25_L1: - snprintf(temp,TEMPSIZE,"MPEG-2.5 Layer I Audio"); - break; - case coding_MPEG25_L2: - snprintf(temp,TEMPSIZE,"MPEG-2.5 Layer II Audio"); - break; - case coding_MPEG25_L3: - snprintf(temp,TEMPSIZE,"MPEG-2.5 Layer III Audio (MP3)"); - break; -#endif -#ifdef VGM_USE_G7221 - case coding_G7221: - snprintf(temp,TEMPSIZE,"ITU G.722.1 (Polycom Siren 7)"); - break; - case coding_G7221C: - snprintf(temp,TEMPSIZE,"ITU G.722.1 annex C (Polycom Siren 14)"); - break; -#endif -#ifdef VGM_USE_G719 - case coding_G719: - snprintf(temp,TEMPSIZE,"ITU G.719 annex B (Polycom Siren 22)"); - break; -#endif -#ifdef VGM_USE_MAIATRAC3PLUS - case coding_AT3plus: - snprintf(temp,TEMPSIZE,"ATRAC3plus"); - break; -#endif #ifdef VGM_USE_FFMPEG - case coding_FFmpeg: - { - ffmpeg_codec_data *data = (ffmpeg_codec_data *) vgmstream->codec_data; - if (vgmstream->codec_data) { - if (data->codec && data->codec->long_name) { - snprintf(temp,TEMPSIZE,data->codec->long_name); - } - else if (data->codec && data->codec->name) { - snprintf(temp,TEMPSIZE,data->codec->name); - } - else { - snprintf(temp,TEMPSIZE,"FFmpeg (unknown codec)"); - } - } - else { - snprintf(temp,TEMPSIZE,"FFmpeg"); + case coding_FFmpeg: { + ffmpeg_codec_data *data = (ffmpeg_codec_data *) vgmstream->codec_data; + if (vgmstream->codec_data) { + if (data->codec && data->codec->long_name) { + snprintf(temp,TEMPSIZE,data->codec->long_name); + } else if (data->codec && data->codec->name) { + snprintf(temp,TEMPSIZE,data->codec->name); + } else { + snprintf(temp,TEMPSIZE,"FFmpeg (unknown codec)"); } + } else { + snprintf(temp,TEMPSIZE,"FFmpeg"); } break; + } #endif - - case coding_ACM: - snprintf(temp,TEMPSIZE,"InterPlay ACM"); - break; - case coding_NWA0: - snprintf(temp,TEMPSIZE,"NWA DPCM Level 0"); - break; - case coding_NWA1: - snprintf(temp,TEMPSIZE,"NWA DPCM Level 1"); - break; - case coding_NWA2: - snprintf(temp,TEMPSIZE,"NWA DPCM Level 2"); - break; - case coding_NWA3: - snprintf(temp,TEMPSIZE,"NWA DPCM Level 3"); - break; - case coding_NWA4: - snprintf(temp,TEMPSIZE,"NWA DPCM Level 4"); - break; - case coding_NWA5: - snprintf(temp,TEMPSIZE,"NWA DPCM Level 5"); - break; - case coding_MSADPCM: - snprintf(temp,TEMPSIZE,"Microsoft 4-bit ADPCM"); - break; - case coding_AICA: - snprintf(temp,TEMPSIZE,"Yamaha AICA 4-bit ADPCM"); - break; - case coding_NDS_PROCYON: - snprintf(temp,TEMPSIZE,"Procyon Studio Digital Sound Elements NDS 4-bit APDCM"); - break; - case coding_L5_555: - snprintf(temp,TEMPSIZE,"Level-5 0x555 4-bit ADPCM"); - break; - case coding_SASSC: - snprintf(temp,TEMPSIZE,"Activision / EXAKT SASSC 8-bit DPCM"); - break; - case coding_LSF: - snprintf(temp,TEMPSIZE,"lsf 4-bit ADPCM"); - break; - case coding_MTAF: - snprintf(temp,TEMPSIZE,"Konami MTAF 4-bit ADPCM"); - break; default: - snprintf(temp,TEMPSIZE,"CANNOT DECODE"); + description = get_vgmstream_coding_description(vgmstream->coding_type); + if (!description) + description = "CANNOT DECODE"; + strncpy(temp,description,TEMPSIZE); + break; } concatn(length,desc,temp); snprintf(temp,TEMPSIZE,"\nlayout: "); concatn(length,desc,temp); - switch (vgmstream->layout_type) { - case layout_none: - snprintf(temp,TEMPSIZE,"flat (no layout)"); - break; - case layout_interleave: - snprintf(temp,TEMPSIZE,"interleave"); - break; - case layout_interleave_shortblock: - snprintf(temp,TEMPSIZE,"interleave with short last block"); - break; - case layout_interleave_byte: - snprintf(temp,TEMPSIZE,"sub-frame interleave"); - break; - case layout_dtk_interleave: - snprintf(temp,TEMPSIZE,"ADP/DTK nibble interleave"); - break; - case layout_mxch_blocked: - snprintf(temp,TEMPSIZE,"MxCh blocked"); - break; - case layout_ast_blocked: - snprintf(temp,TEMPSIZE,"AST blocked"); - break; - case layout_halpst_blocked: - snprintf(temp,TEMPSIZE,"HALPST blocked"); - break; - case layout_xa_blocked: - snprintf(temp,TEMPSIZE,"CD-ROM XA"); - break; - case layout_ea_blocked: - snprintf(temp,TEMPSIZE,"Electronic Arts Audio Blocks"); - break; - case layout_eacs_blocked: - snprintf(temp,TEMPSIZE,"Electronic Arts (Old Version) Audio Blocks"); - break; - case layout_caf_blocked: - snprintf(temp,TEMPSIZE,"CAF blocked"); - break; - case layout_wsi_blocked: - snprintf(temp,TEMPSIZE,".wsi blocked"); - break; - case layout_xvas_blocked: - snprintf(temp,TEMPSIZE,".xvas blocked"); - break; -#ifdef VGM_USE_VORBIS - case layout_ogg_vorbis: - snprintf(temp,TEMPSIZE,"Ogg"); - break; -#endif - case layout_str_snds_blocked: - snprintf(temp,TEMPSIZE,".str SNDS blocked"); - break; - case layout_ws_aud_blocked: - snprintf(temp,TEMPSIZE,"Westwood Studios .aud blocked"); - break; - case layout_matx_blocked: - snprintf(temp,TEMPSIZE,"Matrix .matx blocked"); - break; - case layout_de2_blocked: - snprintf(temp,TEMPSIZE,"de2 blocked"); - break; - case layout_vs_blocked: - snprintf(temp,TEMPSIZE,"vs blocked"); - break; - case layout_emff_ps2_blocked: - snprintf(temp,TEMPSIZE,"EMFF (PS2) blocked"); - break; - case layout_emff_ngc_blocked: - snprintf(temp,TEMPSIZE,"EMFF (NGC/WII) blocked"); - break; - case layout_gsb_blocked: - snprintf(temp,TEMPSIZE,"GSB blocked"); - break; - case layout_thp_blocked: - snprintf(temp,TEMPSIZE,"THP Movie Audio blocked"); - break; - case layout_filp_blocked: - snprintf(temp,TEMPSIZE,"FILp blocked"); - break; - case layout_psx_mgav_blocked: - snprintf(temp,TEMPSIZE,"MGAV blocked"); - break; - case layout_ps2_adm_blocked: - snprintf(temp,TEMPSIZE,"ADM blocked"); - break; - case layout_dsp_bdsp_blocked: - snprintf(temp,TEMPSIZE,"DSP blocked"); - break; -#ifdef VGM_USE_MPEG - case layout_fake_mpeg: - snprintf(temp,TEMPSIZE,"MPEG Audio stream with incorrect frame headers"); - break; - case layout_mpeg: - snprintf(temp,TEMPSIZE,"MPEG Audio stream"); - break; -#endif - case layout_acm: - snprintf(temp,TEMPSIZE,"ACM blocked"); - break; - case layout_mus_acm: - snprintf(temp,TEMPSIZE,"multiple ACM files, ACM blocked"); - break; - case layout_aix: - snprintf(temp,TEMPSIZE,"AIX interleave, internally 18-byte interleaved"); - break; - case layout_aax: - snprintf(temp,TEMPSIZE,"AAX blocked, 18-byte interleaved"); - break; - case layout_ivaud_blocked: - snprintf(temp,TEMPSIZE,"GTA IV blocked"); - break; - case layout_ps2_iab_blocked: - snprintf(temp,TEMPSIZE,"IAB blocked"); - break; - case layout_ps2_strlr_blocked: - snprintf(temp,TEMPSIZE,"The Bouncer STR blocked"); - break; - case layout_tra_blocked: - snprintf(temp,TEMPSIZE,"TRA blocked"); - break; - case layout_scd_int: - snprintf(temp,TEMPSIZE,"SCD multistream interleave"); - break; default: - snprintf(temp,TEMPSIZE,"INCONCEIVABLE"); + description = get_vgmstream_layout_description(vgmstream->layout_type); + if (!description) + description = "INCONCEIVABLE"; + strncpy(temp,description,TEMPSIZE); + break; } concatn(length,desc,temp); snprintf(temp,TEMPSIZE,"\n"); concatn(length,desc,temp); - if (vgmstream->layout_type == layout_interleave || vgmstream->layout_type == layout_interleave_shortblock || vgmstream->layout_type == layout_interleave_byte) { + if (vgmstream->layout_type == layout_interleave + || vgmstream->layout_type == layout_interleave_shortblock + || vgmstream->layout_type == layout_interleave_byte) { snprintf(temp,TEMPSIZE,"interleave: %#x bytes\n", (int32_t)vgmstream->interleave_block_size); concatn(length,desc,temp); @@ -2322,993 +1933,17 @@ void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length) { concatn(length,desc,temp); switch (vgmstream->meta_type) { - case meta_RSTM: - snprintf(temp,TEMPSIZE,"Nintendo RSTM header"); + default: + description = get_vgmstream_meta_description(vgmstream->meta_type); + if (!description) + description = "THEY SHOULD HAVE SENT A POET"; + strncpy(temp,description,TEMPSIZE); break; - case meta_STRM: - snprintf(temp,TEMPSIZE,"Nintendo STRM header"); - break; - case meta_ADX_03: - snprintf(temp,TEMPSIZE,"CRI ADX header type 03"); - break; - case meta_ADX_04: - snprintf(temp,TEMPSIZE,"CRI ADX header type 04"); - break; - case meta_ADX_05: - snprintf(temp,TEMPSIZE,"CRI ADX header type 05"); - break; - case meta_AIX: - snprintf(temp,TEMPSIZE,"CRI AIX header"); - break; - case meta_AAX: - snprintf(temp,TEMPSIZE,"CRI AAX header"); - break; - case meta_UTF_DSP: - snprintf(temp,TEMPSIZE,"CRI ADPCM_WII header"); - break; - case meta_DSP_AGSC: - snprintf(temp,TEMPSIZE,"Retro Studios AGSC header"); - break; - case meta_DSP_CSMP: - snprintf(temp,TEMPSIZE,"Retro Studios CSMP header"); - break; - case meta_NGC_ADPDTK: - snprintf(temp,TEMPSIZE,"assumed Nintendo ADP by .adp extension and valid first frame"); - break; - case meta_RSF: - snprintf(temp,TEMPSIZE,"assumed Retro Studios RSF by .rsf extension and valid first bytes"); - break; - case meta_AFC: - snprintf(temp,TEMPSIZE,"Nintendo AFC header"); - break; - case meta_AST: - snprintf(temp,TEMPSIZE,"Nintendo AST header"); - break; - case meta_HALPST: - snprintf(temp,TEMPSIZE,"HAL Laboratory HALPST header"); - break; - case meta_DSP_RS03: - snprintf(temp,TEMPSIZE,"Retro Studios RS03 header"); - break; - case meta_DSP_STD: - snprintf(temp,TEMPSIZE,"Standard Nintendo DSP header"); - break; - case meta_DSP_CSTR: - snprintf(temp,TEMPSIZE,"Namco Cstr header"); - break; - case meta_GCSW: - snprintf(temp,TEMPSIZE,"GCSW header"); - break; - case meta_PS2_SShd: - snprintf(temp,TEMPSIZE,"SShd header"); - break; - case meta_PS2_NPSF: - snprintf(temp,TEMPSIZE,"Namco Production Sound File (NPSF) header"); - break; - case meta_RWSD: - snprintf(temp,TEMPSIZE,"Nintendo RWSD header (single stream)"); - break; - case meta_RWAR: - snprintf(temp,TEMPSIZE,"Nintendo RWAR header (single RWAV stream)"); - break; - case meta_RWAV: - snprintf(temp,TEMPSIZE,"Nintendo RWAV header"); - break; - case meta_CWAV: - snprintf(temp,TEMPSIZE,"Nintendo CWAV header"); - break; - case meta_FWAV: - snprintf(temp,TEMPSIZE,"Nintendo FWAV header"); - break; - case meta_PSX_XA: - snprintf(temp,TEMPSIZE,"RIFF/CDXA header"); - break; - case meta_PS2_RXW: - snprintf(temp,TEMPSIZE,"RXWS header)"); - break; - case meta_PS2_RAW: - snprintf(temp,TEMPSIZE,"assumed RAW Interleaved PCM by .int extension"); - break; - case meta_PS2_OMU: - snprintf(temp,TEMPSIZE,"Alter Echo OMU Header"); - break; - case meta_DSP_STM: - snprintf(temp,TEMPSIZE,"Nintendo STM header"); - break; - case meta_PS2_EXST: - snprintf(temp,TEMPSIZE,"EXST header"); - break; - case meta_PS2_SVAG: - snprintf(temp,TEMPSIZE,"Konami SVAG header"); - break; - case meta_PS2_MIB: - snprintf(temp,TEMPSIZE,"assumed MIB Interleaved file by .mib extension"); - break; - case meta_PS2_MIB_MIH: - snprintf(temp,TEMPSIZE,"assumed MIB with MIH Info Header file by .mib+.mih extension"); - break; - case meta_DSP_MPDSP: - snprintf(temp,TEMPSIZE,"Single DSP header stereo by .mpdsp extension"); - break; - case meta_PS2_MIC: - snprintf(temp,TEMPSIZE,"assume KOEI MIC file by .mic extension"); - break; - case meta_DSP_JETTERS: - snprintf(temp,TEMPSIZE,"Double DSP header stereo by _lr.dsp extension"); - break; - case meta_DSP_MSS: - snprintf(temp,TEMPSIZE,"Double DSP header stereo by .mss extension"); - break; - case meta_DSP_GCM: - snprintf(temp,TEMPSIZE,"Double DSP header stereo by .gcm extension"); - break; - case meta_DSP_WII_IDSP: - snprintf(temp,TEMPSIZE,"Wii IDSP Double DSP header"); - break; - case meta_RSTM_SPM: - snprintf(temp,TEMPSIZE,"Nintendo RSTM header and .brstmspm extension"); - break; - case meta_RAW: - snprintf(temp,TEMPSIZE,"assumed RAW PCM file by .raw extension"); - break; - case meta_PS2_VAGi: - snprintf(temp,TEMPSIZE,"Sony VAG Interleaved header (VAGi)"); - break; - case meta_PS2_VAGp: - snprintf(temp,TEMPSIZE,"Sony VAG Mono header (VAGp)"); - break; - case meta_PS2_VAGs: - snprintf(temp,TEMPSIZE,"Sony VAG Stereo header (VAGp)"); - break; - case meta_PS2_VAGm: - snprintf(temp,TEMPSIZE,"Sony VAG Mono header (VAGm)"); - break; - case meta_PS2_pGAV: - snprintf(temp,TEMPSIZE,"Sony VAG Stereo Little Endian header (pGAV)"); - break; - case meta_PSX_GMS: - snprintf(temp,TEMPSIZE,"assumed Grandia GMS file by .gms extension"); - break; - case meta_PS2_STR: - snprintf(temp,TEMPSIZE,"assumed STR + STH File by .str & .sth extension"); - break; - case meta_PS2_ILD: - snprintf(temp,TEMPSIZE,"ILD header"); - break; - case meta_PS2_PNB: - snprintf(temp,TEMPSIZE,"assumed PNB (PsychoNauts Bgm File) by .pnb extension"); - break; - case meta_XBOX_WAVM: - snprintf(temp,TEMPSIZE,"assumed Xbox WAVM file by .wavm extension"); - break; - case meta_XBOX_RIFF: - snprintf(temp,TEMPSIZE,"Xbox RIFF/WAVE file with 0x0069 Codec ID"); - break; - case meta_DSP_STR: - snprintf(temp,TEMPSIZE,"assumed Conan Gamecube STR File by .str extension"); - break; - case meta_EAXA_R2: - snprintf(temp,TEMPSIZE,"Electronic Arts XA R2"); - break; - case meta_EAXA_R3: - snprintf(temp,TEMPSIZE,"Electronic Arts XA R3"); - break; - case meta_EA_ADPCM: - snprintf(temp,TEMPSIZE,"Electronic Arts XA R1"); - break; - case meta_EA_IMA: - snprintf(temp,TEMPSIZE,"Electronic Arts container with IMA blocks"); - break; - case meta_EAXA_PSX: - snprintf(temp,TEMPSIZE,"Electronic Arts With PSX ADPCM"); - break; - case meta_EA_PCM: - snprintf(temp,TEMPSIZE,"Electronic Arts With PCM"); - break; - case meta_CFN: - snprintf(temp,TEMPSIZE,"Namco CAF Header"); - break; - case meta_PS2_VPK: - snprintf(temp,TEMPSIZE,"VPK Header"); - break; - case meta_GENH: - snprintf(temp,TEMPSIZE,"GENH Generic Header"); - break; -#ifdef VGM_USE_VORBIS - case meta_ogg_vorbis: - snprintf(temp,TEMPSIZE,"Ogg Vorbis"); - break; - case meta_OGG_SLI: - snprintf(temp,TEMPSIZE,"Ogg Vorbis with .sli (start,length) for looping"); - break; - case meta_OGG_SLI2: - snprintf(temp,TEMPSIZE,"Ogg Vorbis with .sli (from,to) for looping"); - break; - case meta_OGG_SFL: - snprintf(temp,TEMPSIZE,"Ogg Vorbis with SFPL for looping"); - break; - case meta_um3_ogg: - snprintf(temp,TEMPSIZE,"Ogg Vorbis, Ultramarine3 \"encryption\""); - break; - case meta_KOVS_ogg: - snprintf(temp,TEMPSIZE,"Ogg Vorbis, KOVS header"); - break; - case meta_psych_ogg: - snprintf(temp,TEMPSIZE,"Ogg Vorbis, Psychic Software obfuscation"); - break; -#endif - case meta_DSP_SADB: - snprintf(temp,TEMPSIZE,"sadb header"); - break; - case meta_SADL: - snprintf(temp,TEMPSIZE,"sadl header"); - break; - case meta_PS2_BMDX: - snprintf(temp,TEMPSIZE,"Beatmania .bmdx header"); - break; - case meta_DSP_WSI: - snprintf(temp,TEMPSIZE,".wsi header"); - break; - case meta_AIFC: - snprintf(temp,TEMPSIZE,"Audio Interchange File Format AIFF-C"); - break; - case meta_AIFF: - snprintf(temp,TEMPSIZE,"Audio Interchange File Format"); - break; - case meta_STR_SNDS: - snprintf(temp,TEMPSIZE,".str SNDS SHDR chunk"); - break; - case meta_WS_AUD: - snprintf(temp,TEMPSIZE,"Westwood Studios .aud header"); - break; - case meta_WS_AUD_old: - snprintf(temp,TEMPSIZE,"Westwood Studios .aud (old) header"); - break; -#ifdef VGM_USE_MPEG - case meta_AHX: - snprintf(temp,TEMPSIZE,"CRI AHX header"); - break; -#endif - case meta_PS2_IVB: - snprintf(temp,TEMPSIZE,"IVB/BVII header"); - break; - case meta_PS2_SVS: - snprintf(temp,TEMPSIZE,"Square SVS header"); - break; - case meta_RIFF_WAVE: - snprintf(temp,TEMPSIZE,"RIFF WAVE header"); - break; - case meta_RIFF_WAVE_POS: - snprintf(temp,TEMPSIZE,"RIFF WAVE header and .pos for looping"); - break; - case meta_NWA: - snprintf(temp,TEMPSIZE,"Visual Art's NWA header"); - break; - case meta_NWA_NWAINFOINI: - snprintf(temp,TEMPSIZE,"Visual Art's NWA header and NWAINFO.INI for looping"); - break; - case meta_NWA_GAMEEXEINI: - snprintf(temp,TEMPSIZE,"Visual Art's NWA header and Gameexe.ini for looping"); - break; - case meta_XSS: - snprintf(temp,TEMPSIZE,"Dino Crisis 3 XSS File"); - break; - case meta_HGC1: - snprintf(temp,TEMPSIZE,"Knights of the Temple 2 hgC1 Header"); - break; - case meta_AUS: - snprintf(temp,TEMPSIZE,"Capcom AUS Header"); - break; - case meta_RWS: - snprintf(temp,TEMPSIZE,"RWS Header"); - break; - case meta_EACS_PC: - snprintf(temp,TEMPSIZE,"EACS Header (PC)"); - break; - case meta_EACS_PSX: - snprintf(temp,TEMPSIZE,"EACS Header (PSX)"); - break; - case meta_EACS_SAT: - snprintf(temp,TEMPSIZE,"EACS Header (SATURN)"); - break; - case meta_SL3: - snprintf(temp,TEMPSIZE,"SL3 Header"); - break; - case meta_FSB1: - snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB1) Header"); - break; - case meta_FSB3_0: - snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB3.0) Header"); - break; - case meta_FSB3_1: - snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB3.1) Header"); - break; - case meta_FSB4: - snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB4) Header"); - break; - case meta_FSB4_WAV: - snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB4) with additional 'WAV' Header"); - break; - case meta_FSB5: - snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB5) Header"); - break; - case meta_RWX: - snprintf(temp,TEMPSIZE,"RWX Header"); - break; - case meta_XWB: - snprintf(temp,TEMPSIZE,"XWB WBND Header"); - break; - case meta_XA30: - snprintf(temp,TEMPSIZE,"XA30 Header"); - break; - case meta_MUSC: - snprintf(temp,TEMPSIZE,"MUSC Header"); - break; - case meta_MUSX_V004: - snprintf(temp,TEMPSIZE,"MUSX / Version 004 Header"); - break; - case meta_MUSX_V005: - snprintf(temp,TEMPSIZE,"MUSX / Version 005 Header"); - break; - case meta_MUSX_V006: - snprintf(temp,TEMPSIZE,"MUSX / Version 006 Header"); - break; - case meta_MUSX_V010: - snprintf(temp,TEMPSIZE,"MUSX / Version 010 Header"); - break; - case meta_MUSX_V201: - snprintf(temp,TEMPSIZE,"MUSX / Version 201 Header"); - break; - case meta_LEG: - snprintf(temp,TEMPSIZE,"Legaia 2 - Duel Saga LEG Header"); - break; - case meta_FILP: - snprintf(temp,TEMPSIZE,"Bio Hazard - Gun Survivor FILp Header"); - break; - case meta_IKM: - snprintf(temp,TEMPSIZE,"Zwei!! IKM Header"); - break; - case meta_SFS: - snprintf(temp,TEMPSIZE,"Baroque SFS Header"); - break; - case meta_DVI: - snprintf(temp,TEMPSIZE,"DVI Header"); - break; - case meta_KCEY: - snprintf(temp,TEMPSIZE,"KCEYCOMP Header"); - break; - case meta_BG00: - snprintf(temp,TEMPSIZE,"Falcom BG00 Header"); - break; - case meta_PS2_RSTM: - snprintf(temp,TEMPSIZE,"Rockstar Games RSTM Header"); - break; - case meta_ACM: - snprintf(temp,TEMPSIZE,"InterPlay ACM Header"); - break; - case meta_MUS_ACM: - snprintf(temp,TEMPSIZE,"MUS playlist and multiple InterPlay ACM Headered files"); - break; - case meta_PS2_KCES: - snprintf(temp,TEMPSIZE,"Konami KCES Header"); - break; - case meta_PS2_DXH: - snprintf(temp,TEMPSIZE,"Tokobot Plus DXH Header"); - break; - case meta_PS2_PSH: - snprintf(temp,TEMPSIZE,"Dawn of Mana - Seiken Densetsu 4 PSH Header"); - break; - case meta_RIFF_WAVE_labl_Marker: - snprintf(temp,TEMPSIZE,"RIFF WAVE header with loop markers"); - break; - case meta_RIFF_WAVE_smpl: - snprintf(temp,TEMPSIZE,"RIFF WAVE header with sample looping info"); - break; - case meta_RIFX_WAVE: - snprintf(temp,TEMPSIZE,"RIFX WAVE header"); - break; - case meta_RIFX_WAVE_smpl: - snprintf(temp,TEMPSIZE,"RIFX WAVE header with sample looping info"); - break; - case meta_XNBm: - snprintf(temp,TEMPSIZE,"XNBm header"); - break; - case meta_PCM_SCD: - snprintf(temp,TEMPSIZE,"PCM file with custom header (SCD)"); - break; - case meta_PCM_PS2: - snprintf(temp,TEMPSIZE,"PCM file with custom header (PS2)"); - break; - case meta_PS2_RKV: - snprintf(temp,TEMPSIZE,"Legacy of Kain - Blood Omen 2 RKV Header"); - break; - case meta_PS2_PSW: - snprintf(temp,TEMPSIZE,"Rayman Raving Rabbids Riff Container File"); - break; - case meta_PS2_VAS: - snprintf(temp,TEMPSIZE,"Pro Baseball Spirits 5 VAS Header"); - break; - case meta_PS2_TEC: - snprintf(temp,TEMPSIZE,"assumed TECMO badflagged stream by .tec extension"); - break; - case meta_XBOX_WVS: - snprintf(temp,TEMPSIZE,"Metal Arms WVS Header (XBOX)"); - break; - case meta_NGC_WVS: - snprintf(temp,TEMPSIZE,"Metal Arms WVS Header (GameCube)"); - break; - case meta_XBOX_STMA: - snprintf(temp,TEMPSIZE,"Midnight Club 2 STMA Header"); - break; - case meta_XBOX_MATX: - snprintf(temp,TEMPSIZE,"assumed Matrix file by .matx extension"); - break; - case meta_DE2: - snprintf(temp,TEMPSIZE,"gurumin .de2 with embedded funky RIFF"); - break; - case meta_VS: - snprintf(temp,TEMPSIZE,"Men in Black VS Header"); - break; - case meta_DC_STR: - snprintf(temp,TEMPSIZE,"Sega Stream Asset Builder header"); - break; - case meta_DC_STR_V2: - snprintf(temp,TEMPSIZE,"variant of Sega Stream Asset Builder header"); - break; - case meta_XBOX_XMU: - snprintf(temp,TEMPSIZE,"XMU header"); - break; - case meta_XBOX_XVAS: - snprintf(temp,TEMPSIZE,"assumed TMNT file by .xvas extension"); - break; - case meta_PS2_XA2: - snprintf(temp,TEMPSIZE,"Acclaim XA2 Header"); - break; - case meta_DC_IDVI: - snprintf(temp,TEMPSIZE,"IDVI Header"); - break; - case meta_NGC_YMF: - snprintf(temp,TEMPSIZE,"YMF DSP Header"); - break; - case meta_PS2_CCC: - snprintf(temp,TEMPSIZE,"CCC Header"); - break; - case meta_PSX_FAG: - snprintf(temp,TEMPSIZE,"FAG Header"); - break; - case meta_PS2_MIHB: - snprintf(temp,TEMPSIZE,"Merged MIH+MIB"); - break; - case meta_DSP_WII_MUS: - snprintf(temp,TEMPSIZE,"mus header"); - break; - case meta_WII_SNG: - snprintf(temp,TEMPSIZE,"SNG DSP Header"); - break; - case meta_RSD2VAG: - snprintf(temp,TEMPSIZE,"RSD2/VAG Header"); - break; - case meta_RSD2PCMB: - snprintf(temp,TEMPSIZE,"RSD2/PCMB Header"); - break; - case meta_RSD2XADP: - snprintf(temp,TEMPSIZE,"RSD2/XADP Header"); - break; - case meta_RSD3VAG: - snprintf(temp,TEMPSIZE,"RSD3/VAG Header"); - break; - case meta_RSD3GADP: - snprintf(temp,TEMPSIZE,"RSD3/GADP Header"); - break; - case meta_RSD3PCM: - snprintf(temp,TEMPSIZE,"RSD3/PCM Header"); - break; - case meta_RSD3PCMB: - snprintf(temp,TEMPSIZE,"RSD3/PCMB Header"); - break; - case meta_RSD4PCMB: - snprintf(temp,TEMPSIZE,"RSD4/PCMB Header"); - break; - case meta_RSD4PCM: - snprintf(temp,TEMPSIZE,"RSD4/PCM Header"); - break; - case meta_RSD4RADP: - snprintf(temp,TEMPSIZE,"RSD4/RADP Header"); - break; - case meta_RSD4VAG: - snprintf(temp,TEMPSIZE,"RSD4/VAG Header"); - break; - case meta_RSD6XADP: - snprintf(temp,TEMPSIZE,"RSD6/XADP Header"); - break; - case meta_RSD6VAG: - snprintf(temp,TEMPSIZE,"RSD6/VAG Header"); - break; - case meta_RSD6WADP: - snprintf(temp,TEMPSIZE,"RSD6/WADP Header"); - break; - case meta_RSD6RADP: - snprintf(temp,TEMPSIZE,"RSD6/RADP Header"); - break; - case meta_DC_ASD: - snprintf(temp,TEMPSIZE,"ASD Header"); - break; - case meta_NAOMI_SPSD: - snprintf(temp,TEMPSIZE,"SPSD Header"); - break; - case meta_FFXI_BGW: - snprintf(temp,TEMPSIZE,"BGW BGMStream header"); - break; - case meta_FFXI_SPW: - snprintf(temp,TEMPSIZE,"SPW SeWave header"); - break; - case meta_PS2_ASS: - snprintf(temp,TEMPSIZE,"ASS Header"); - break; - case meta_IDSP: - snprintf(temp,TEMPSIZE,"IDSP Header"); - break; - case meta_WAA_WAC_WAD_WAM: - snprintf(temp,TEMPSIZE,"WAA/WAC/WAD/WAM RIFF Header"); - break; - case meta_PS2_SEG: - snprintf(temp,TEMPSIZE,"SEG (PS2) Header"); - break; - case meta_XBOX_SEG: - snprintf(temp,TEMPSIZE,"SEG (XBOX) Header"); - break; - case meta_NDS_STRM_FFTA2: - snprintf(temp,TEMPSIZE,"Final Fantasy Tactics A2 RIFF Header"); - break; - case meta_STR_ASR: - snprintf(temp,TEMPSIZE,"Donkey Kong Jet Race KNON/WII Header"); - break; - case meta_ZWDSP: - snprintf(temp,TEMPSIZE,"Zack and Wiki custom DSP Header"); - break; - case meta_GCA: - snprintf(temp,TEMPSIZE,"GCA DSP Header"); - break; - case meta_SPT_SPD: - snprintf(temp,TEMPSIZE,"SPT+SPD DSP Header"); - break; - case meta_ISH_ISD: - snprintf(temp,TEMPSIZE,"ISH+ISD DSP Header"); - break; - case meta_YDSP: - snprintf(temp,TEMPSIZE,"Yuke's DSP (YDSP) Header"); - break; - case meta_MSVP: - snprintf(temp,TEMPSIZE,"MSVP Header"); - break; - case meta_NGC_SSM: - snprintf(temp,TEMPSIZE,"SSM DSP Header"); - break; - case meta_PS2_JOE: - snprintf(temp,TEMPSIZE,"Disney/Pixar JOE Header"); - break; - case meta_VGS: - snprintf(temp,TEMPSIZE,"Guitar Hero Encore Rocks the 80's Header"); - break; - case meta_DC_DCSW_DCS: - snprintf(temp,TEMPSIZE,"Evil Twin DCS file with helper"); - break; - case meta_WII_SMP: - snprintf(temp,TEMPSIZE,"SMP DSP Header"); - break; - case meta_EMFF_PS2: - case meta_EMFF_NGC: - snprintf(temp,TEMPSIZE,"Eidos Music File Format Header"); - break; - case meta_THP: - snprintf(temp,TEMPSIZE,"THP Movie File Format Header"); - break; - case meta_STS_WII: - snprintf(temp,TEMPSIZE,"Shikigami no Shiro (WII) Header"); - break; - case meta_PS2_P2BT: - snprintf(temp,TEMPSIZE,"Pop'n'Music 7 Header"); - break; - case meta_PS2_GBTS: - snprintf(temp,TEMPSIZE,"Pop'n'Music 9 Header"); - break; - case meta_NGC_DSP_IADP: - snprintf(temp,TEMPSIZE,"IADP Header"); - break; - case meta_RSTM_shrunken: - snprintf(temp,TEMPSIZE,"Nintendo RSTM header, corrupted by Atlus"); - break; - case meta_RIFF_WAVE_MWV: - snprintf(temp,TEMPSIZE,"RIFF WAVE header with .mwv flavoring"); - break; - case meta_RIFF_WAVE_SNS: - snprintf(temp,TEMPSIZE,"RIFF WAVE header with .sns flavoring"); - break; - case meta_FFCC_STR: - snprintf(temp,TEMPSIZE,"Final Fantasy: Crystal Chronicles STR header"); - break; - case meta_SAT_BAKA: - snprintf(temp,TEMPSIZE,"BAKA header from Crypt Killer"); - break; - case meta_NDS_SWAV: - snprintf(temp,TEMPSIZE,"SWAV Header"); - break; - case meta_PS2_VSF: - snprintf(temp,TEMPSIZE,"Musashi: Samurai Legend VSF Header"); - break; - case meta_NDS_RRDS: - snprintf(temp,TEMPSIZE,"Ridger Racer DS Header"); - break; - case meta_PS2_TK5: - snprintf(temp,TEMPSIZE,"Tekken 5 Stream Header"); - break; - case meta_PS2_SND: - snprintf(temp,TEMPSIZE,"Might and Magic SSND Header"); - break; - case meta_PS2_VSF_TTA: - snprintf(temp,TEMPSIZE,"VSF with SMSS Header"); - break; - case meta_ADS: - snprintf(temp,TEMPSIZE,"dhSS Header"); - break; - case meta_WII_STR: - snprintf(temp,TEMPSIZE,"HOTD Overkill - STR+STH WII Header"); - break; - case meta_PS2_MCG: - snprintf(temp,TEMPSIZE,"Gunvari MCG Header"); - break; - case meta_ZSD: - snprintf(temp,TEMPSIZE,"ZSD Header"); - break; - case meta_RedSpark: - snprintf(temp,TEMPSIZE,"RedSpark Header"); - break; - case meta_PC_IVAUD: - snprintf(temp,TEMPSIZE,"assumed GTA IV Audio file by .ivaud extension"); - break; - case meta_DSP_WII_WSD: - snprintf(temp,TEMPSIZE,"Standard Nintendo DSP headers in .wsd"); - break; - case meta_WII_NDP: - snprintf(temp,TEMPSIZE,"Vertigo NDP Header"); - break; - case meta_PS2_SPS: - snprintf(temp,TEMPSIZE,"Ape Escape 2 SPS Header"); - break; - case meta_PS2_XA2_RRP: - snprintf(temp,TEMPSIZE,"Acclaim XA2 Header"); - break; - case meta_NDS_HWAS: - snprintf(temp,TEMPSIZE,"NDS 'HWAS' Header"); - break; - case meta_NGC_LPS: - snprintf(temp,TEMPSIZE,"Rave Master LPS Header"); - break; - case meta_NAOMI_ADPCM: - snprintf(temp,TEMPSIZE,"NAOMI/NAOMI2 Arcade games ADPCM header"); - break; - case meta_SD9: - snprintf(temp,TEMPSIZE,"beatmania IIDX SD9 header"); - break; - case meta_2DX9: - snprintf(temp,TEMPSIZE,"beatmania IIDX 2DX9 header"); - break; - case meta_DSP_YGO: - snprintf(temp,TEMPSIZE,"Konami custom DSP Header"); - break; - case meta_PS2_VGV: - snprintf(temp,TEMPSIZE,"Rune: Viking Warlord VGV Header"); - break; - case meta_NGC_GCUB: - snprintf(temp,TEMPSIZE,"GCub Header"); - break; - case meta_NGC_SCK_DSP: - snprintf(temp,TEMPSIZE,"The Scorpion King SCK Header"); - break; - case meta_NGC_SWD: - snprintf(temp,TEMPSIZE,"PSF + Standard DSP Headers"); - break; - case meta_CAFF: - snprintf(temp,TEMPSIZE,"Apple Core Audio Format Header"); - break; - case meta_PC_MXST: - snprintf(temp,TEMPSIZE,"Lego Island MxSt Header"); - break; - case meta_PC_SOB_SAB: - snprintf(temp,TEMPSIZE,"Worms 4: Mayhem SOB/SAB Header"); - break; - case meta_MAXIS_XA: - snprintf(temp,TEMPSIZE,"Maxis XAI/XAJ Header"); - break; - case meta_EXAKT_SC: - snprintf(temp,TEMPSIZE,"assumed Activision / EXAKT SC by extension"); - break; - case meta_WII_BNS: - snprintf(temp,TEMPSIZE,"Nintendo BNS header"); - break; - case meta_WII_WAS: - snprintf(temp,TEMPSIZE,"WAS (iSWS) DSP header"); - break; - case meta_XBOX_HLWAV: - snprintf(temp,TEMPSIZE,"Half Life 2 bgm header"); - break; - case meta_STX: - snprintf(temp,TEMPSIZE,"Nintendo .stx header"); - break; - case meta_PS2_STM: - snprintf(temp,TEMPSIZE,"Red Dead Revolver .stm (.ps2stm)"); - break; - case meta_MYSPD: - snprintf(temp,TEMPSIZE,"U-Sing .myspd header"); - break; - case meta_HIS: - snprintf(temp,TEMPSIZE,"Her Interactive Sound header"); - break; - case meta_PS2_AST: - snprintf(temp,TEMPSIZE,"KOEI AST header"); - break; - case meta_CAPDSP: - snprintf(temp,TEMPSIZE,"Capcom custom DSP header"); - break; - case meta_DMSG: - snprintf(temp,TEMPSIZE,"RIFF/DMSGsegh header"); - break; - case meta_PONA_3DO: - case meta_PONA_PSX: - snprintf(temp,TEMPSIZE,"Policenauts BGM header"); - break; - case meta_NGC_DSP_AAAP: - snprintf(temp,TEMPSIZE,"Double standard dsp header in 'AAAp'"); - break; - case meta_NGC_DSP_KONAMI: - snprintf(temp,TEMPSIZE,"Konami dsp header"); - break; - case meta_PS2_STER: - snprintf(temp,TEMPSIZE,"STER Header"); - break; - case meta_BNSF: - snprintf(temp,TEMPSIZE,"Namco Bandai BNSF header"); - break; - case meta_PS2_WB: - snprintf(temp,TEMPSIZE,"Shooting Love. ~TRIZEAL~ WB header"); - break; - case meta_S14: - snprintf(temp,TEMPSIZE,"assumed Polycom Siren 14 by .s14 extension"); - break; - case meta_SSS: - snprintf(temp,TEMPSIZE,"assumed Polycom Siren 14 by .sss extension"); - break; - case meta_PS2_GCM: - snprintf(temp,TEMPSIZE,"GCM 'MCG' Header"); - break; - case meta_PS2_SMPL: - snprintf(temp,TEMPSIZE,"Homura 'SMPL' Header"); - break; - case meta_PS2_MSA: - snprintf(temp,TEMPSIZE,"Psyvariar -Complete Edition- MSA header"); - break; - case meta_PC_SMP: - snprintf(temp,TEMPSIZE,"Ghostbusters .smp Header"); - break; - case meta_NGC_PDT: - snprintf(temp,TEMPSIZE,"PDT DSP header"); - break; - case meta_NGC_BO2: - snprintf(temp,TEMPSIZE,"Blood Omen 2 DSP header"); - break; - case meta_P3D: - snprintf(temp,TEMPSIZE,"Prototype P3D Header"); - break; - case meta_PS2_TK1: - snprintf(temp,TEMPSIZE,"Tekken TK5STRM1 Header"); - break; - case meta_PS2_ADSC: - snprintf(temp,TEMPSIZE,"ADSC Header"); - break; - case meta_NGC_DSP_MPDS: - snprintf(temp,TEMPSIZE,"MPDS DSP header"); - break; - case meta_DSP_STR_IG: - snprintf(temp,TEMPSIZE,"Infogrames dual dsp header"); - break; - case meta_PSX_MGAV: - snprintf(temp,TEMPSIZE,"Electronic Arts RVWS header"); - break; - case meta_PS2_B1S: - snprintf(temp,TEMPSIZE,"B1S header"); - break; - case meta_PS2_WAD: - snprintf(temp,TEMPSIZE,"WAD header"); - break; - case meta_DSP_XIII: - snprintf(temp,TEMPSIZE,"XIII dsp header"); - break; - case meta_NGC_DSP_STH_STR: - snprintf(temp,TEMPSIZE,"STH dsp header"); - break; - case meta_DSP_CABELAS: - snprintf(temp,TEMPSIZE,"Cabelas games dsp header"); - break; - case meta_PS2_LPCM: - snprintf(temp,TEMPSIZE,"LPCM header"); - break; - case meta_PS2_VMS: - snprintf(temp,TEMPSIZE,"VMS Header"); - break; - case meta_PS2_XAU: - snprintf(temp,TEMPSIZE,"XAU Header"); - break; - case meta_GH3_BAR: - snprintf(temp,TEMPSIZE,"Guitar Hero III Mobile .bar"); - break; - case meta_FFW: - snprintf(temp,TEMPSIZE,"Freedom Fighters BGM header"); - break; - case meta_DSP_DSPW: - snprintf(temp,TEMPSIZE,"DSPW dsp header"); - break; - case meta_PS2_JSTM: - snprintf(temp,TEMPSIZE,"JSTM Header"); - break; - case meta_PS3_XVAG: - snprintf(temp,TEMPSIZE,"XVAG Header"); - break; - case meta_PS3_CPS: - snprintf(temp,TEMPSIZE,"CPS Header"); - break; - case meta_SQEX_SCD: - snprintf(temp,TEMPSIZE,"Square-Enix SCD"); - break; - case meta_NGC_NST_DSP: - snprintf(temp,TEMPSIZE,"Animaniacs NST header"); - break; - case meta_BAF: - snprintf(temp,TEMPSIZE,".baf WAVE header"); - break; - case meta_PS3_MSF: - snprintf(temp,TEMPSIZE,"PS3 MSF header"); - break; - case meta_FSB_MPEG: - snprintf(temp,TEMPSIZE,"FSB MPEG header"); - break; - case meta_NUB_VAG: - snprintf(temp,TEMPSIZE,"VAG (NUB) header"); - break; - case meta_PS3_PAST: - snprintf(temp,TEMPSIZE,"SNDP header"); - break; - case meta_PS3_SGDX: - snprintf(temp,TEMPSIZE,"SGXD header"); - break; - case meta_NGCA: - snprintf(temp,TEMPSIZE,"NGCA header"); - break; - case meta_WII_RAS: - snprintf(temp,TEMPSIZE,"RAS header"); - break; - case meta_PS2_SPM: - snprintf(temp,TEMPSIZE,"SPM header"); - break; - case meta_X360_TRA: - snprintf(temp,TEMPSIZE,"assumed DefJam Rapstar Audio File by .tra extension"); - break; - case meta_PS2_VGS: - snprintf(temp,TEMPSIZE,"Princess Soft VGS header"); - break; - case meta_PS2_IAB: - snprintf(temp,TEMPSIZE,"IAB header"); - break; - case meta_PS2_STRLR: - snprintf(temp,TEMPSIZE,"STR L/R header"); - break; - case meta_LSF_N1NJ4N: - snprintf(temp,TEMPSIZE,".lsf !n1nj4n header"); - break; - case meta_PS3_VAWX: - snprintf(temp,TEMPSIZE,"VAWX header"); - break; - case meta_PC_SNDS: - snprintf(temp,TEMPSIZE,"assumed Heavy Iron IMA by .snds extension"); - break; - case meta_PS2_WMUS: - snprintf(temp,TEMPSIZE,"assumed The Warriors Sony ADPCM by .wmus extension"); - break; - case meta_HYPERSCAN_KVAG: - snprintf(temp,TEMPSIZE,"Mattel Hyperscan KVAG"); - break; - case meta_IOS_PSND: - snprintf(temp,TEMPSIZE,"PSND Header"); - break; - case meta_BOS_ADP: - snprintf(temp,TEMPSIZE,"ADP! header"); - break; - case meta_EB_SFX: - snprintf(temp,TEMPSIZE,"Excitebots .sfx header"); - break; - case meta_EB_SF0: - snprintf(temp,TEMPSIZE,"assumed Excitebots .sf0 by extension"); - break; - case meta_PS3_KLBS: - snprintf(temp,TEMPSIZE,"klBS Header"); - break; - case meta_PS2_MTAF: - snprintf(temp,TEMPSIZE,"Konami MTAF header"); - break; - case meta_PS2_VAG1: - snprintf(temp,TEMPSIZE,"Konami VAG Mono header (VAG1)"); - break; - case meta_PS2_VAG2: - snprintf(temp,TEMPSIZE,"Konami VAG Stereo header (VAG2)"); - break; - case meta_TUN: - snprintf(temp,TEMPSIZE,"TUN 'ALP' header"); - break; - case meta_WPD: - snprintf(temp,TEMPSIZE,"WPD 'DPW' header"); - break; - case meta_MN_STR: - snprintf(temp,TEMPSIZE,"Mini Ninjas 'STR' header"); - break; - case meta_PS2_MSS: - snprintf(temp,TEMPSIZE,"Guerilla MSCC header"); - break; - case meta_PS2_HSF: - snprintf(temp,TEMPSIZE,"Lowrider 'HSF' header"); - break; - case meta_PS3_IVAG: - snprintf(temp,TEMPSIZE,"PS3 'IVAG' Header"); - break; - case meta_PS2_2PFS: - snprintf(temp,TEMPSIZE,"PS2 '2PFS' Header"); - break; - case meta_RSD6OOGV: - snprintf(temp,TEMPSIZE,"RSD6/OOGV Header"); - break; - case meta_UBI_CKD: - snprintf(temp,TEMPSIZE,"CKD 'RIFF' Header"); - break; - case meta_PS2_VBK: - snprintf(temp,TEMPSIZE,"PS2 VBK Header"); - break; - case meta_OTM: - snprintf(temp,TEMPSIZE,"Otomedius OTM Header"); - break; - case meta_CSTM: - snprintf(temp,TEMPSIZE,"Nintendo 3DS CSTM Header"); - break; - case meta_FSTM: - snprintf(temp,TEMPSIZE,"Nintendo Wii U FSTM Header"); - break; - case meta_G1L: - snprintf(temp,TEMPSIZE,"Tecmo Koei G1L Header"); - break; - case meta_3DS_IDSP: - snprintf(temp,TEMPSIZE,"Nintendo 3DS IDSP Header"); - break; - case meta_WIIU_BTSND: - snprintf(temp,TEMPSIZE,"Wii U Menu Boot Sound"); - break; - case meta_MCA: - snprintf(temp,TEMPSIZE,"Capcom MCA Header"); - break; - case meta_XB3D_ADX: - snprintf(temp, TEMPSIZE,"Xenoblade 3D ADX Header"); - break; - case meta_HCA: - snprintf(temp, TEMPSIZE,"CRI MiddleWare HCA Header"); - break; -#ifdef VGM_USE_FFMPEG - case meta_FFmpeg: - snprintf(temp, TEMPSIZE,"FFmpeg supported file format"); - break; -#endif - default: - snprintf(temp,TEMPSIZE,"THEY SHOULD HAVE SENT A POET"); } concatn(length,desc,temp); } -/* */ +/* filename search pairs for dual file stereo */ const char * const dfs_pairs[][2] = { {"L","R"}, {"l","r"}, @@ -3574,7 +2209,7 @@ int get_vgmstream_average_bitrate(VGMSTREAM * vgmstream) if (!sample_rate || !channels || !length_samples) return 0; - + if (channels >= 1) { streamFile = get_vgmstream_streamfile(vgmstream, 0); if (streamFile) { @@ -3603,3 +2238,72 @@ int get_vgmstream_average_bitrate(VGMSTREAM * vgmstream) return bitrate; } + + +int vgmstream_open_stream(VGMSTREAM * vgmstream, STREAMFILE *streamFile, off_t start_offset) { + STREAMFILE * file; + char filename[PATH_LIMIT]; + int ch; + int use_streamfile_per_channel = 0; + int use_same_offset_per_channel = 0; + +#ifdef VGM_USE_FFMPEG + if (vgmstream->coding_type == coding_FFmpeg) /* stream not needed, FFmpeg manages itself */ + return 1; +#endif + + /* if interleave is big enough keep a buffer per channel */ + if (vgmstream->interleave_block_size >= STREAMFILE_DEFAULT_BUFFER_SIZE) { + use_streamfile_per_channel = 1; + } + + if (vgmstream->layout_type == layout_none + //#ifdef VGM_USE_MPEG || (vgmstream->layout_type == layout_mpeg) #endif //no appreciable difference + ) { + /* for some codecs like IMA where channels work with the same bytes *///todo which ones? + use_same_offset_per_channel = 1; + } + + + streamFile->get_name(streamFile,filename,sizeof(filename)); + /* open the file for reading by each channel */ + { + if (!use_streamfile_per_channel) { + file = streamFile->open(streamFile,filename, STREAMFILE_DEFAULT_BUFFER_SIZE); + if (!file) goto fail; + } + + for (ch=0; ch < vgmstream->channels; ch++) { + off_t offset; + if (use_same_offset_per_channel) { + offset = start_offset; + } else { + offset = start_offset + vgmstream->interleave_block_size*ch; + } + + /* open new one if needed */ + if (use_streamfile_per_channel) { + file = streamFile->open(streamFile,filename, STREAMFILE_DEFAULT_BUFFER_SIZE); + if (!file) goto fail; + } + + vgmstream->ch[ch].streamfile = file; + vgmstream->ch[ch].channel_start_offset = + vgmstream->ch[ch].offset = offset; + } + } + + return 1; + +fail: + if (!use_streamfile_per_channel) { + streamFile->close(file); /* only one file was ever open */ + } else { + for (ch=0; ch < vgmstream->channels; ch++) { + if (vgmstream->ch[ch].streamfile) + streamFile->close(vgmstream->ch[ch].streamfile); /* close all open files */ + } + } + + return 0; +} diff --git a/Frameworks/vgmstream/vgmstream/src/vgmstream.h b/Frameworks/vgmstream/vgmstream/src/vgmstream.h index 7ca003f8e..3aa31556b 100644 --- a/Frameworks/vgmstream/vgmstream/src/vgmstream.h +++ b/Frameworks/vgmstream/vgmstream/src/vgmstream.h @@ -7,11 +7,12 @@ enum { PATH_LIMIT = 32768 }; -/* Due mostly to licensing issues, Vorbis, MPEG, and G.722.1 decoding are +#include "streamfile.h" + +/* Due mostly to licensing issues, Vorbis, MPEG, G.722.1, etc decoding is * done by external libraries. * If someone wants to do a standalone build, they can do it by simply - * removing these defines (and the references to the libraries in the - * Makefile) */ + * removing these defines (and the references to the libraries in the Makefile) */ #define VGM_USE_VORBIS /* can be disabled to decode with FFmpeg instead */ @@ -19,27 +20,25 @@ enum { PATH_LIMIT = 32768 }; #define VGM_USE_MPEG #endif -/* disabled by default, defined for builds that support it */ +/* disabled by default, defined on compile-time for builds that support it*/ #define VGM_USE_G7221 #define VGM_USE_G719 +//#define VGM_USE_MP4V2 +//#define VGM_USE_FDKAAC +//#define VGM_USE_MAIATRAC3PLUS #define VGM_USE_FFMPEG -#define VGM_USE_FFMPEG_ACCURATE_LOOPING -#include "streamfile.h" -#ifdef BUILD_VGMSTREAM -#include "coding/g72x_state.h" -#else -#include "g72x_state.h" -#endif #ifdef VGM_USE_VORBIS #ifdef __APPLE__ #define __MACOSX__ #endif #include #endif + #ifdef VGM_USE_MPEG #include #endif + #ifdef VGM_USE_G7221 #include #endif @@ -60,86 +59,105 @@ enum { PATH_LIMIT = 32768 }; #include "maiatrac3plus.h" #endif -#include "clHCA.h" - #ifdef VGM_USE_FFMPEG #include #include #endif #ifdef BUILD_VGMSTREAM +#include "coding/g72x_state.h" #include "coding/acm_decoder.h" #include "coding/nwa_decoder.h" #else +#include "g72x_state.h" #include "acm_decoder.h" #include "nwa_decoder.h" #endif +#include "clHCA.h" + /* The encoding type specifies the format the sound data itself takes */ typedef enum { /* 16-bit PCM */ - coding_PCM16BE, /* big endian 16-bit PCM */ coding_PCM16LE, /* little endian 16-bit PCM */ - coding_PCM16LE_int, /* little endian 16-bit PCM with sample-level - interleave handled by the decoder */ + coding_PCM16LE_int, /* little endian 16-bit PCM with sample-level interleave */ + coding_PCM16LE_XOR_int, /* little endian 16-bit PCM with sample-level xor */ + coding_PCM16BE, /* big endian 16-bit PCM */ /* 8-bit PCM */ coding_PCM8, /* 8-bit PCM */ + coding_PCM8_int, /* 8-Bit PCM with sample-level interleave */ coding_PCM8_U, /* 8-bit PCM, unsigned (0x80 = 0) */ - coding_PCM8_int, /* 8-Bit PCM with sample-level interleave handled - by the decoder */ - coding_PCM8_SB_int, /* 8-bit PCM, sign bit (others are 2's complement), - sample-level interleave */ - coding_PCM8_U_int, /* 8-bit PCM, unsigned (0x80 = 0), sample-level - interleave */ + coding_PCM8_U_int, /* 8-bit PCM, unsigned (0x80 = 0) with sample-level interleave */ + coding_PCM8_SB_int, /* 8-bit PCM, sign bit (others are 2's complement) with sample-level interleave */ /* 4-bit ADPCM */ - coding_NDS_IMA, /* IMA ADPCM w/ NDS layout */ coding_CRI_ADX, /* CRI ADX */ - coding_CRI_ADX_enc_8, /* encrypted CRI ADX, type 8 (God Hand) */ - coding_CRI_ADX_enc_9, /* encrypted CRI ADX, type 9 (PSO2) */ - coding_NGC_DSP, /* NGC ADPCM, called DSP */ - coding_NGC_DTK, /* NGC hardware disc ADPCM, called DTK, TRK or ADP */ - coding_G721, /* CCITT G.721 ADPCM */ - coding_NGC_AFC, /* NGC ADPCM, called AFC */ - coding_PSX, /* PSX & PS2 ADPCM */ - coding_invert_PSX, /* PSX ADPCM with some weirdness */ - coding_PSX_badflags, /* with garbage in the flags byte */ - coding_FFXI, /* FF XI PSX-ish ADPCM */ - coding_BAF_ADPCM, /* Bizarre Creations PSX-ish ADPCM */ - coding_HEVAG_ADPCM, /* PSVita games */ - coding_SHORT_VAG_ADPCM, /* SGXD type 5 (PS3 Afrika) */ - coding_XA, /* PSX CD-XA */ - coding_XBOX, /* XBOX IMA */ - coding_INT_XBOX, /* XBOX 'real interleaved' IMA */ - coding_EAXA, /* EA/XA ADPCM */ - coding_EA_ADPCM, /* EA ADPCM */ - coding_MAXIS_ADPCM, /* MAXIS ADPCM */ - coding_NDS_PROCYON, /* NDS Procyon Studio ADPCM */ + coding_CRI_ADX_enc_8, /* CRI ADX, type 8 encryption (God Hand) */ + coding_CRI_ADX_enc_9, /* CRI ADX, type 9 encryption (PSO2) */ -#ifdef VGM_USE_VORBIS - coding_ogg_vorbis, /* vorbis */ -#endif - coding_SDX2, /* SDX2 2:1 Squareroot-Delta-Exact compression */ - coding_SDX2_int, /* SDX2 2:1 Squareroot-Delta-Exact compression, - with smaple-level interleave handled by the - decoder */ - coding_CBD2, /* CBD2 2:1 Cuberoot-Delta-Exact compression */ - coding_CBD2_int, /* CBD2 2:1 Cuberoot-Delta-Exact compression, - with sample-level interleave handled by the - decoder */ - coding_DVI_IMA, /* DVI (bare IMA, high nibble first), aka ADP4 */ - coding_INT_DVI_IMA, /* Interleaved DVI */ + coding_NGC_DSP, /* Nintendo DSP ADPCM */ + coding_NGC_DTK, /* Nintendo DTK ADPCM (hardware disc), also called TRK or ADP */ + coding_NGC_AFC, /* Nintendo AFC ADPCM */ + + coding_G721, /* CCITT G.721 */ + + coding_XA, /* CD-ROM XA */ + coding_PSX, /* Sony PS ADPCM (VAG) */ + coding_PSX_badflags, /* Sony PS ADPCM with garbage in the flag byte */ + coding_PSX_bmdx, /* Sony PS ADPCM with BMDX encryption */ + coding_PSX_cfg, /* Sony PS ADPCM with configurable frame size (FF XI, SGXD type 5, Bizarre Creations) */ + coding_HEVAG, /* Sony PSVita ADPCM */ + + coding_EA_XA, /* Electronic Arts XA ADPCM */ + coding_EA_ADPCM, /* Electronic Arts R1 ADPCM */ + coding_MAXIS_ADPCM, /* Maxis ADPCM */ + coding_NDS_PROCYON, /* Procyon Studio ADPCM */ + + coding_XBOX, /* XBOX IMA ADPCM */ + coding_INT_XBOX, /* XBOX IMA ADPCM (interleaved) */ + coding_IMA, /* IMA ADPCM (low nibble first) */ + coding_INT_IMA, /* IMA ADPCM (interleaved) */ + coding_DVI_IMA, /* DVI IMA ADPCM (high nibble first), aka ADP4 */ + coding_INT_DVI_IMA, /* DVI IMA ADPCM (Interleaved) */ + coding_NDS_IMA, /* IMA ADPCM w/ NDS layout */ coding_EACS_IMA, - coding_IMA, /* bare IMA, low nibble first */ - coding_INT_IMA, /* */ coding_MS_IMA, /* Microsoft IMA */ coding_RAD_IMA, /* "Radical ADPCM" IMA */ coding_RAD_IMA_mono, /* "Radical ADPCM" IMA, mono (for interleave) */ coding_APPLE_IMA4, /* Apple Quicktime IMA4 */ coding_DAT4_IMA, /* Eurocom 'DAT4' IMA ADPCM */ coding_SNDS_IMA, /* Heavy Iron Studios .snds IMA ADPCM */ - coding_WS, /* Westwood Studios' custom VBR ADPCM */ + + coding_WS, /* Westwood Studios VBR ADPCM */ + coding_MSADPCM, /* Microsoft ADPCM */ + coding_AICA, /* Yamaha AICA ADPCM */ + coding_L5_555, /* Level-5 0x555 ADPCM */ + coding_SASSC, /* Activision EXAKT SASSC DPCM */ + coding_LSF, /* lsf ADPCM (Fastlane Street Racing iPhone)*/ + coding_MTAF, /* Konami MTAF ADPCM (IMA-derived) */ + + /* others */ + coding_SDX2, /* SDX2 2:1 Squareroot-Delta-Exact compression DPCM */ + coding_SDX2_int, /* SDX2 2:1 Squareroot-Delta-Exact compression with sample-level interleave */ + coding_CBD2, /* CBD2 2:1 Cuberoot-Delta-Exact compression DPCM */ + coding_CBD2_int, /* CBD2 2:1 Cuberoot-Delta-Exact compression, with sample-level interleave */ + + coding_ACM, /* InterPlay ACM */ + + coding_NWA0, /* Visual Art's NWA (compressed at various levels) */ + coding_NWA1, + coding_NWA2, + coding_NWA3, + coding_NWA4, + coding_NWA5, + + coding_CRI_HCA, /* CRI High Compression Audio (MDCT-based) */ + +#ifdef VGM_USE_VORBIS + coding_ogg_vorbis, /* Xiph Vorbis (MDCT-based) */ +#endif + #ifdef VGM_USE_MPEG coding_fake_MPEG2_L2, /* MPEG-2 Layer 2 (AHX), with lying headers */ /* I don't even know offhand if all these combinations exist... */ @@ -153,43 +171,26 @@ typedef enum { coding_MPEG25_L2, coding_MPEG25_L3, #endif + #ifdef VGM_USE_G7221 - coding_G7221, /* G.722.1 (Polycom Siren 7) */ - coding_G7221C, /* G.722.1 with Annex C extension (Polycom Siren 14) */ + coding_G7221, /* ITU G.722.1 (Polycom Siren 7) */ + coding_G7221C, /* ITU G.722.1 annex C (Polycom Siren 14) */ #endif + #ifdef VGM_USE_G719 - coding_G719, -#endif - - coding_ACM, /* InterPlay ACM */ - /* compressed NWA at various levels */ - coding_NWA0, - coding_NWA1, - coding_NWA2, - coding_NWA3, - coding_NWA4, - coding_NWA5, - - coding_MSADPCM, /* Microsoft ADPCM */ - coding_AICA, /* Yamaha AICA ADPCM */ - coding_L5_555, /* Level-5 0x555 */ - coding_SASSC, /* Activision EXAKT SASSC DPCM */ - coding_PCM16LE_XOR_int, /* sample-level xor */ - coding_LSF, /* lsf ADPCM */ - coding_MTAF, /* Konami IMA-derived MTAF ADPCM */ - - coding_CRI_HCA, /* CRI High Compression Audio */ - -#ifdef VGM_USE_FFMPEG - coding_FFmpeg, + coding_G719, /* ITU G.719 annex B (Polycom Siren 22) */ #endif #if defined(VGM_USE_MP4V2) && defined(VGM_USE_FDKAAC) - coding_MP4_AAC, + coding_MP4_AAC, /* AAC (MDCT-based) */ #endif #ifdef VGM_USE_MAIATRAC3PLUS - coding_AT3plus, + coding_AT3plus, /* Sony ATRAC3plus (MDCT-based) */ +#endif + +#ifdef VGM_USE_FFMPEG + coding_FFmpeg, /* Formats handled by FFmpeg (ATRAC3, XMA, AC3, etc) */ #endif } coding_t; @@ -197,15 +198,15 @@ typedef enum { typedef enum { /* generic */ layout_none, /* straight data */ + /* interleave */ layout_interleave, /* equal interleave throughout the stream */ layout_interleave_shortblock, /* interleave with a short last block */ - layout_interleave_byte, /* full byte interleave */ /* headered blocks */ - layout_ast_blocked, /* .ast STRM with BLCK blocks*/ - layout_halpst_blocked, /* blocks with HALPST-format header */ + layout_ast_blocked, + layout_halpst_blocked, layout_xa_blocked, layout_ea_blocked, layout_eacs_blocked, @@ -226,12 +227,18 @@ typedef enum { layout_ps2_adm_blocked, layout_dsp_bdsp_blocked, layout_mxch_blocked, + layout_ivaud_blocked, /* GTA IV .ivaud blocks */ + layout_tra_blocked, /* DefJam Rapstar .tra blocks */ + layout_ps2_iab_blocked, + layout_ps2_strlr_blocked, -#if 0 - layout_strm_blocked, /* */ -#endif /* otherwise odd */ - layout_dtk_interleave, /* dtk interleaves channels by nibble */ + layout_acm, /* libacm layout */ + layout_mus_acm, /* mus has multi-files to deal with */ + layout_aix, /* CRI AIX's wheels within wheels */ + layout_aax, /* CRI AAX's wheels within databases */ + layout_scd_int, /* deinterleave done by the SCDINTSTREAMFILE */ + #ifdef VGM_USE_VORBIS layout_ogg_vorbis, /* ogg vorbis file */ #endif @@ -239,31 +246,22 @@ typedef enum { layout_fake_mpeg, /* MPEG audio stream with bad frame headers (AHX) */ layout_mpeg, /* proper MPEG audio stream */ #endif - layout_acm, /* dummy, let libacm handle layout */ - layout_mus_acm, /* mus has multi-files to deal with */ - layout_aix, /* CRI AIX's wheels within wheels */ - layout_aax, /* CRI AAX's wheels within databases */ - layout_ivaud_blocked, /* GTA IV .ivaud blocks */ - layout_tra_blocked, /* DefJam Rapstar .tra blocks */ - layout_ps2_iab_blocked, - layout_ps2_strlr_blocked, - layout_scd_int, /* deinterleave done by the SCDINTSTREAMFILE */ } layout_t; -/* The meta type specifies how we know what we know about the file. We may know because of a header we read, some of it may have been guessed from filenames, etc. */ +/* The meta type specifies how we know what we know about the file. + * We may know because of a header we read, some of it may have been guessed from filenames, etc. */ typedef enum { /* DSP-specific */ - meta_DSP_STD, /* standard GC ADPCM (DSP) header */ - meta_DSP_CSMP, /* Metroid Prime 3, Donkey Kong Country Returns */ + meta_DSP_STD, /* Nintendo standard GC ADPCM (DSP) header */ + meta_DSP_CSMP, /* Retro: Metroid Prime 3, Donkey Kong Country Returns */ meta_DSP_CSTR, /* Star Fox Assault "Cstr" */ - meta_DSP_RS03, /* Metroid Prime 2 "RS03" */ + meta_DSP_RS03, /* Retro: Metroid Prime 2 "RS03" */ meta_DSP_STM, /* Paper Mario 2 STM */ - meta_DSP_HALP, /* SSB:M "HALPST" */ - meta_DSP_AGSC, /* Metroid Prime 2 title */ + meta_DSP_AGSC, /* Retro: Metroid Prime 2 title */ meta_DSP_MPDSP, /* Monopoly Party single header stereo */ meta_DSP_JETTERS, /* Bomberman Jetters .dsp */ - meta_DSP_MSS, - meta_DSP_GCM, + meta_DSP_MSS, /* ? */ + meta_DSP_GCM, /* ? */ meta_DSP_STR, /* Conan .str files */ meta_DSP_SADB, /* .sad */ meta_DSP_WSI, /* .wsi */ @@ -271,12 +269,12 @@ typedef enum { meta_DSP_WII_IDSP, /* .gcm with IDSP header */ meta_DSP_WII_MUS, /* .mus */ meta_DSP_WII_WSD, /* Phantom Brave (WII) */ - meta_WII_NDP, /* Vertigo (Wii) */ - meta_DSP_YGO, /* Yu-Gi-Oh! The Falsebound Kingdom (NGC), Hikaru no Go 3 (NGC) */ + meta_WII_NDP, /* Vertigo (Wii) */ + meta_DSP_YGO, /* Konami: Yu-Gi-Oh! The Falsebound Kingdom (NGC), Hikaru no Go 3 (NGC) */ /* Nintendo */ - meta_STRM, /* STRM */ - meta_RSTM, /* RSTM (similar to STRM) */ + meta_STRM, /* Nintendo STRM */ + meta_RSTM, /* Nintendo RSTM (similar to STRM) */ meta_AFC, /* AFC */ meta_AST, /* AST */ meta_RWSD, /* single-stream RWSD */ @@ -285,7 +283,7 @@ typedef enum { meta_CWAV, /* contents of CWAR */ meta_FWAV, /* contents of FWAR */ meta_RSTM_SPM, /* RSTM with 44->22khz hack */ - meta_THP, + meta_THP, /* THP movie files */ meta_RSTM_shrunken, /* Atlus' mutant shortened RSTM */ meta_NDS_SWAV, /* Asphalt Urban GT 1 & 2 */ meta_NDS_RRDS, /* Ridge Racer DS */ @@ -293,18 +291,16 @@ typedef enum { meta_STX, /* Pikmin .stx */ meta_WIIU_BTSND, /* Wii U Boot Sound */ - /* CRI ADX */ - meta_ADX_03, /* ADX "type 03" */ - meta_ADX_04, /* ADX "type 04" */ - meta_ADX_05, /* ADX "type 05" */ + meta_ADX_03, /* CRI ADX "type 03" */ + meta_ADX_04, /* CRI ADX "type 04" */ + meta_ADX_05, /* CRI ADX "type 05" */ meta_AIX, /* CRI AIX */ meta_AAX, /* CRI AAX */ meta_UTF_DSP, /* CRI ADPCM_WII, like AAX with DSP */ - /* etc */ - meta_NGC_ADPDTK, /* NGC DTK/ADP, no header (.adp) */ + meta_NGC_ADPDTK, /* NGC DTK/ADP (.adp/dkt DTK) [no header_id] */ meta_kRAW, /* almost headerless PCM */ - meta_RSF, /* Retro Studios RSF, no header (.rsf) */ + meta_RSF, /* Retro Studios RSF (Metroid Prime .rsf) [no header_id] */ meta_HALPST, /* HAL Labs HALPST */ meta_GCSW, /* GCSW (PCM) */ meta_CFN, /* Namco CAF Audio File */ @@ -312,6 +308,7 @@ typedef enum { meta_HIS, /* Her Ineractive .his */ meta_BNSF, /* Bandai Namco Sound Format */ + meta_PSX_XA, /* CD-ROM XA with RIFF header */ meta_PS2_SShd, /* .ADS with SShd header */ meta_PS2_NPSF, /* Namco Production Sound File */ meta_PS2_RXW, /* Sony Arc The Lad Sound File */ @@ -325,11 +322,10 @@ typedef enum { meta_PS2_VAGp, /* VAGp Mono File */ meta_PS2_VAGm, /* VAGp Mono File */ meta_PS2_pGAV, /* VAGp with Little Endian Header */ - meta_PSX_GMS, /* GMS File (used in PS1 & PS2) */ + meta_PSX_GMS, /* GMS File (used in PS1 & PS2) [no header_id] */ meta_PS2_STR, /* Pacman STR+STH files */ meta_PS2_ILD, /* ILD File */ meta_PS2_PNB, /* PsychoNauts Bgm File */ - meta_PSX_XA, /* CD-XA with RIFF header */ meta_PS2_VAGs, /* VAG Stereo from Kingdom Hearts */ meta_PS2_VPK, /* VPK Audio File */ meta_PS2_BMDX, /* Beatmania thing */ @@ -339,14 +335,12 @@ typedef enum { meta_XSS, /* Dino Crisis 3 */ meta_SL3, /* Test Drive Unlimited */ meta_HGC1, /* Knights of the Temple 2 */ - meta_AUS, /* Variuos Capcom Games */ - meta_RWS, /* Variuos Konami Games */ + meta_AUS, /* Various Capcom games */ + meta_RWS, /* Various Konami games */ meta_FSB1, /* FMOD Sample Bank, version 1 */ - meta_FSB3_0, /* FMOD Sample Bank, version 3.0 */ - meta_FSB3_1, /* FMOD Sample Bank, version 3.1 */ + meta_FSB2, /* FMOD Sample Bank, version 2 */ + meta_FSB3, /* FMOD Sample Bank, version 3.0/3.1 */ meta_FSB4, /* FMOD Sample Bank, version 4 */ - meta_FSB_MPEG, /* Just Test */ - meta_FSB4_WAV, /* FMOD Sample Bank, version 4 with "WAV" Header */ meta_FSB5, /* FMOD Sample Bank, version 5 */ meta_RWX, /* Air Force Delta Storm (XBOX) */ meta_XWB, /* King of Fighters (XBOX) */ @@ -357,7 +351,7 @@ typedef enum { meta_MUSX_V006, /* Spyro Games, possibly more */ meta_MUSX_V010, /* Spyro Games, possibly more */ meta_MUSX_V201, /* Sphinx and the cursed Mummy */ - meta_LEG, /* Legaia 2 */ + meta_LEG, /* Legaia 2 [no header_id] */ meta_FILP, /* Resident Evil - Dead Aim */ meta_IKM, /* Zwei! */ meta_SFS, /* Baroque */ @@ -366,8 +360,8 @@ typedef enum { meta_PS2_KCES, /* Dance Dance Revolution */ meta_PS2_DXH, /* Tokobot Plus - Myteries of the Karakuri */ meta_PS2_PSH, /* Dawn of Mana - Seiken Densetsu 4 */ - meta_PCM_SCD, /* Ephemeral Fantasia */ - meta_PCM_PS2, /* Lunar - Eternal Blue */ + meta_PCM_SCD, /* Lunar - Eternal Blue */ + meta_PCM_PS2, /* Konami: Ephemeral Fantasia, Yu-Gi-Oh! The Duelists of the Roses */ meta_PS2_RKV, /* Legacy of Kain - Blood Omen 2 */ meta_PS2_PSW, /* Rayman Raving Rabbids */ meta_PS2_VAS, /* Pro Baseball Spirits 5 */ @@ -376,7 +370,7 @@ typedef enum { meta_SDT, /* Baldur's Gate - Dark Alliance */ meta_NGC_TYDSP, /* Ty - The Tasmanian Tiger */ meta_NGC_SWD, /* Conflict - Desert Storm 1 & 2 */ - meta_CAPDSP, /* Capcom DSP Header */ + meta_CAPDSP, /* Capcom DSP Header [no header_id] */ meta_DC_STR, /* SEGA Stream Asset Builder */ meta_DC_STR_V2, /* variant of SEGA Stream Asset Builder */ meta_NGC_BH2PCM, /* Bio Hazard 2 */ @@ -386,40 +380,39 @@ typedef enum { meta_PS2_OMU, /* PS2 Int file with Header */ meta_PS2_XA2, /* XG3 Extreme-G Racing */ meta_IDSP, /* Chronicles of Narnia, Soul Calibur Legends, Mario Strikers Charged */ - meta_SPT_SPD, /* Variouis */ - meta_ISH_ISD, /* Various */ - meta_GSP_GSB, /* Various */ + meta_SPT_SPD, /* Various (SPT+SPT DSP) */ + meta_ISH_ISD, /* Various (ISH+ISD DSP) */ + meta_GSP_GSB, /* Tecmo games (Super Swing Golf 1 & 2, Quamtum Theory) */ meta_YDSP, /* WWE Day of Reckoning */ - meta_FFCC_STR, /* Final Fantasy: Crystal Chronicles */ - + meta_FFCC_STR, /* Final Fantasy: Crystal Chronicles */ meta_WAA_WAC_WAD_WAM, /* Beyond Good & Evil */ - meta_GCA, /* Metal Slug Anthology */ - meta_MSVP, /* Popcap Hits */ - meta_NGC_SSM, /* Golden Gashbell Full Power */ - meta_PS2_JOE, /* Wall-E / Pixar games */ + meta_GCA, /* Metal Slug Anthology */ + meta_MSVP, /* Popcap Hits */ + meta_NGC_SSM, /* Golden Gashbell Full Power */ + meta_PS2_JOE, /* Wall-E / Pixar games */ - meta_NGC_YMF, /* WWE WrestleMania X8 */ - meta_SADL, /* .sad */ - meta_PS2_CCC, /* Tokyo Xtreme Racer DRIFT 2 */ - meta_PSX_FAG, /* Jackie Chan - Stuntmaster */ - meta_PS2_MIHB, /* Merged MIH+MIB */ - meta_NGC_PDT, /* Mario Party 6 */ - meta_DC_ASD, /* Miss Moonligh */ - meta_NAOMI_SPSD, /* Guilty Gear X */ + meta_NGC_YMF, /* WWE WrestleMania X8 */ + meta_SADL, /* .sad */ + meta_PS2_CCC, /* Tokyo Xtreme Racer DRIFT 2 */ + meta_PSX_FAG, /* Jackie Chan - Stuntmaster */ + meta_PS2_MIHB, /* Merged MIH+MIB */ + meta_NGC_PDT, /* Mario Party 6 */ + meta_DC_ASD, /* Miss Moonligh */ + meta_NAOMI_SPSD, /* Guilty Gear X */ - meta_RSD2VAG, /* RSD2VAG */ + meta_RSD2VAG, /* RSD2VAG */ meta_RSD2PCMB, /* RSD2PCMB */ meta_RSD2XADP, /* RSD2XADP */ - meta_RSD3VAG, /* RSD3VAG */ - meta_RSD3GADP, /* RSD3GADP */ + meta_RSD3VAG, /* RSD3VAG */ + meta_RSD3GADP, /* RSD3GADP */ meta_RSD3PCM, /* RSD3PCM */ meta_RSD3PCMB, /* RSD3PCMB */ meta_RSD4PCMB, /* RSD4PCMB */ - meta_RSD4PCM, /* RSD4PCM */ + meta_RSD4PCM, /* RSD4PCM */ meta_RSD4RADP, /* RSD4RADP */ - meta_RSD4VAG, /* RSD4VAG */ - meta_RSD6VAG, /* RSD6VAG */ + meta_RSD4VAG, /* RSD4VAG */ + meta_RSD6VAG, /* RSD6VAG */ meta_RSD6WADP, /* RSD6WADP */ meta_RSD6XADP, /* RSD6XADP */ meta_RSD6RADP, /* RSD6RADP */ @@ -427,7 +420,7 @@ typedef enum { meta_PS2_ASS, /* ASS */ meta_PS2_SEG, /* Eragon */ - meta_XBOX_SEG, + meta_XBOX_SEG, /* Eragon */ meta_NDS_STRM_FFTA2, /* Final Fantasy Tactics A2 */ meta_STR_ASR, /* Donkey Kong Jet Race */ meta_ZWDSP, /* Zack and Wiki */ @@ -438,19 +431,19 @@ typedef enum { meta_EMFF_PS2, /* Eidos Music File Format for PS2*/ meta_EMFF_NGC, /* Eidos Music File Format for NGC/WII */ meta_SAT_BAKA, /* Crypt Killer */ - meta_PS2_VSF, /* Musashi: Samurai Legend */ - meta_PS2_VSF_TTA, /* Tiny Toon Adventures: Defenders of the Universe */ - meta_ADS, /* Gauntlet Dark Legends (GC) */ - meta_PS2_SPS, /* Ape Escape 2 */ - meta_PS2_XA2_RRP, /* RC Revenge Pro */ - meta_PS2_STM, /* Red Dead Revolver .stm, renamed .ps2stm */ - meta_NGC_DSP_KONAMI, /* Konami DSP header, found in various games */ - meta_UBI_CKD, /* Ubisoft CKD RIFF header from Rayman Origins */ + meta_PS2_VSF, /* Musashi: Samurai Legend */ + meta_PS2_VSF_TTA, /* Tiny Toon Adventures: Defenders of the Universe */ + meta_ADS, /* Gauntlet Dark Legends (GC) */ + meta_PS2_SPS, /* Ape Escape 2 */ + meta_PS2_XA2_RRP, /* RC Revenge Pro */ + meta_PS2_STM, /* Red Dead Revolver .stm, renamed .ps2stm */ + meta_NGC_DSP_KONAMI, /* Konami DSP header, found in various games */ + meta_UBI_CKD, /* Ubisoft CKD RIFF header from Rayman Origins */ meta_XBOX_WAVM, /* XBOX WAVM File */ meta_XBOX_RIFF, /* XBOX RIFF/WAVE File */ meta_XBOX_WVS, /* XBOX WVS */ - meta_NGC_WVS, /* NGC WVS */ + meta_NGC_WVS, /* Metal Arms - Glitch in the System */ meta_XBOX_STMA, /* XBOX STMA */ meta_XBOX_MATX, /* XBOX MATX */ meta_XBOX_XMU, /* XBOX XMU */ @@ -462,69 +455,56 @@ typedef enum { meta_EACS_PC, /* EACS PC */ meta_EACS_PSX, /* EACS PSX */ meta_EACS_SAT, /* EACS SATURN */ - meta_EA_ADPCM, /* EA XA ADPCM */ - meta_EA_IMA, /* EA IMA */ - meta_EA_PCM, /* EA PCM */ + meta_EA_ADPCM, /* EA header using XA ADPCM */ + meta_EA_IMA, /* EA header using IMA */ + meta_EA_PCM, /* EA header using PCM */ meta_RAW, /* RAW PCM file */ meta_GENH, /* generic header */ -#ifdef VGM_USE_VORBIS - meta_ogg_vorbis, /* ogg vorbis */ - meta_OGG_SLI, /* Ogg Vorbis file w/ companion .sli for looping */ - meta_OGG_SLI2, /* Ogg Vorbis file w/ different styled .sli for looping */ - meta_OGG_SFL, /* Ogg Vorbis file w/ .sfl (RIFF SFPL) for looping */ - meta_um3_ogg, /* Ogg Vorbis with first 0x800 bytes XOR 0xFF */ - meta_KOVS_ogg, /* Ogg Vorbis with exta header and 0x100 bytes XOR */ - meta_psych_ogg, /* Ogg Vorbis with all bytes -0x23*/ -#endif - meta_AIFC, /* Audio Interchange File Format AIFF-C */ meta_AIFF, /* Audio Interchange File Format */ meta_STR_SNDS, /* .str with SNDS blocks and SHDR header */ meta_WS_AUD, /* Westwood Studios .aud */ meta_WS_AUD_old, /* Westwood Studios .aud, old style */ -#ifdef VGM_USE_MPEG - meta_AHX, /* CRI AHX header (same structure as ADX) */ -#endif meta_RIFF_WAVE, /* RIFF, for WAVs */ meta_RIFF_WAVE_POS, /* .wav + .pos for looping */ - meta_RIFF_WAVE_labl_Marker, /* RIFF w/ loop Markers in LIST-adtl-labl */ + meta_RIFF_WAVE_labl, /* RIFF w/ loop Markers in LIST-adtl-labl */ meta_RIFF_WAVE_smpl, /* RIFF w/ loop data in smpl chunk */ meta_RIFF_WAVE_MWV, /* .mwv RIFF w/ loop data in ctrl chunk pflt */ meta_RIFF_WAVE_SNS, /* .sns RIFF */ meta_RIFX_WAVE, /* RIFX, for big-endian WAVs */ meta_RIFX_WAVE_smpl, /* RIFX w/ loop data in smpl chunk */ meta_XNBm, /* XNBm, which has a RIFF fmt chunk */ - meta_PC_MXST, /* Lego Island MxSt */ - meta_PC_SOB_SAB, /* Worms 4 Mayhem SOB+SAB file */ + meta_PC_MXST, /* Lego Island MxSt */ + meta_PC_SOB_SAB, /* Worms 4 Mayhem SOB+SAB file */ meta_NWA, /* Visual Art's NWA */ - meta_NWA_NWAINFOINI, /* NWA w/ NWAINFO.INI for looping */ - meta_NWA_GAMEEXEINI, /* NWA w/ Gameexe.ini for looping */ - meta_DVI, /* DVI Interleaved */ - meta_KCEY, /* KCEYCOMP */ + meta_NWA_NWAINFOINI, /* Visual Art's NWA w/ NWAINFO.INI for looping */ + meta_NWA_GAMEEXEINI, /* Visual Art's NWA w/ Gameexe.ini for looping */ + meta_DVI, /* DVI Interleaved */ + meta_KCEY, /* KCEYCOMP */ meta_ACM, /* InterPlay ACM header */ meta_MUS_ACM, /* MUS playlist of InterPlay ACM files */ meta_DE2, /* Falcom (Gurumin) .de2 */ - meta_VS, /* Men in Black .vs */ + meta_VS, /* Men in Black .vs */ meta_FFXI_BGW, /* FFXI BGW */ meta_FFXI_SPW, /* FFXI SPW */ - meta_STS_WII, /* Shikigami No Shiro 3 STS Audio File */ - meta_PS2_P2BT, /* Pop'n'Music 7 Audio File */ - meta_PS2_GBTS, /* Pop'n'Music 9 Audio File */ + meta_STS_WII, /* Shikigami No Shiro 3 STS Audio File */ + meta_PS2_P2BT, /* Pop'n'Music 7 Audio File */ + meta_PS2_GBTS, /* Pop'n'Music 9 Audio File */ meta_NGC_DSP_IADP, /* Gamecube Interleave DSP */ - meta_PS2_TK5, /* Tekken 5 Stream Files */ - meta_WII_STR, /* House of The Dead Overkill STR+STH */ - meta_PS2_MCG, /* Gunvari MCG Files (was name .GCM on disk) */ + meta_PS2_TK5, /* Tekken 5 Stream Files */ + meta_WII_STR, /* House of The Dead Overkill STR+STH */ + meta_PS2_MCG, /* Gunvari MCG Files (was name .GCM on disk) */ meta_ZSD, /* Dragon Booster ZSD */ meta_RedSpark, /* "RedSpark" RSD (MadWorld) */ - meta_PC_IVAUD, /* .ivaud GTA IV */ - meta_NDS_HWAS, /* Spider-Man 3, Tony Hawk's Downhill Jam, possibly more... */ - meta_NGC_LPS, /* Rave Master (Groove Adventure Rave)(GC) */ - meta_NAOMI_ADPCM, /* NAOMI/NAOMI2 ARcade games */ - meta_SD9, /* beatmaniaIIDX16 - EMPRESS (Arcade) */ - meta_2DX9, /* beatmaniaIIDX16 - EMPRESS (Arcade) */ + meta_PC_IVAUD, /* .ivaud GTA IV */ + meta_NDS_HWAS, /* Spider-Man 3, Tony Hawk's Downhill Jam, possibly more... */ + meta_NGC_LPS, /* Rave Master (Groove Adventure Rave)(GC) */ + meta_NAOMI_ADPCM, /* NAOMI/NAOMI2 ARcade games */ + meta_SD9, /* beatmaniaIIDX16 - EMPRESS (Arcade) */ + meta_2DX9, /* beatmaniaIIDX16 - EMPRESS (Arcade) */ meta_PS2_VGV, /* Rune: Viking Warlord */ meta_NGC_GCUB, /* Sega Soccer Slam */ meta_MAXIS_XA, /* Sim City 3000 (PC) */ @@ -535,9 +515,9 @@ typedef enum { meta_PONA_3DO, /* Policenauts (3DO) */ meta_PONA_PSX, /* Policenauts (PSX) */ meta_XBOX_HLWAV, /* Half Life 2 (XBOX) */ - meta_PS2_AST, /* Some KOEI game (PS2) */ - meta_DMSG, /* Nightcaster II - Equinox (XBOX) */ - meta_NGC_DSP_AAAP, /* Turok: Evolution (NGC), Vexx (NGC) */ + meta_PS2_AST, /* Some KOEI game (PS2) */ + meta_DMSG, /* Nightcaster II - Equinox (XBOX) */ + meta_NGC_DSP_AAAP, /* Turok: Evolution (NGC), Vexx (NGC) */ meta_PS2_STER, /* Juuni Kokuki: Kakukaku Taru Ou Michi Beni Midori no Uka */ meta_PS2_WB, /* Shooting Love. ~TRIZEAL~ */ meta_S14, /* raw Siren 14, 24kbit mono */ @@ -549,7 +529,7 @@ typedef enum { meta_PS2_KHV, /* Kingdom Hearts 2 VAG streams */ meta_PC_SMP, /* Ghostbusters PC .smp */ meta_P3D, /* Prototype P3D */ - meta_PS2_TK1, /* Tekken (NamCollection) */ + meta_PS2_TK1, /* Tekken (NamCollection) */ meta_PS2_ADSC, /* Kenka Bancho 2: Full Throttle */ meta_NGC_BO2, /* Blood Omen 2 (NGC) */ meta_DSP_DDSP, /* Various (2 dsp files stuck together */ @@ -562,17 +542,17 @@ typedef enum { meta_DSP_XIII, /* XIII, possibly more (Ubisoft header???) */ meta_DSP_CABELAS, /* Cabelas games */ meta_PS2_ADM, /* Dragon Quest 5 */ - meta_PS2_LPCM, /* Ah! My Goddess */ + meta_PS2_LPCM, /* Ah! My Goddess */ meta_DSP_BDSP, /* Ah! My Goddess */ - meta_PS2_VMS, /* Autobahn Raser - Police Madness */ - meta_PS2_XAU, // Spectral Force Chronicle + meta_PS2_VMS, /* Autobahn Raser - Police Madness */ + meta_PS2_XAU, /* Spectral Force Chronicle */ meta_GH3_BAR, /* Guitar Hero III Mobile .bar */ meta_FFW, /* Freedom Fighters [NGC] */ meta_DSP_DSPW, /* Sengoku Basara 3 [WII] */ meta_PS2_JSTM, /* Tantei Jinguji Saburo - Kind of Blue (PS2) */ - meta_SQEX_SCD, /* Square-Enix SCD */ + meta_SQEX_SCD, /* Square-Enix SCD */ meta_NGC_NST_DSP, /* Animaniacs [NGC] */ - meta_BAF, /* .baf (Blur) */ + meta_BAF, /* Bizarre Creations (Blur, James Bond) */ meta_PS3_XVAG, /* Ratchet & Clank Future: Quest for Booty (PS3) */ meta_PS3_CPS, /* Eternal Sonata (PS3) */ meta_PS3_MSF, /* MSF header */ @@ -581,13 +561,13 @@ typedef enum { meta_PS3_SGDX, /* Folklore, Genji, Tokyo Jungle (PS3), Brave Story, Kurohyo (PSP) */ meta_NGCA, /* GoldenEye 007 (Wii) */ meta_WII_RAS, /* Donkey Kong Country Returns (Wii) */ - meta_PS2_SPM, /* Lethal Skies Elite Pilot: Team SW */ + meta_PS2_SPM, /* Lethal Skies Elite Pilot: Team SW */ meta_X360_TRA, /* Def Jam Rapstar */ - meta_PS2_VGS, // Princess Soft PS2 games - meta_PS2_IAB, // Ueki no Housoku - Taosu ze Robert Juudan!! (PS2) - meta_PS2_STRLR, + meta_PS2_VGS, /* Princess Soft PS2 games */ + meta_PS2_IAB, /* Ueki no Housoku - Taosu ze Robert Juudan!! (PS2) */ + meta_PS2_STRLR, /* The Bouncer */ meta_LSF_N1NJ4N, /* .lsf n1nj4n Fastlane Street Racing (iPhone) */ - meta_PS3_VAWX, // No More Heroes: Heroes Paradise (PS3) + meta_VAWX, /* feelplus: No More Heroes Heroes Paradise, Moon Diver */ meta_PC_SNDS, // Incredibles PC .snds meta_PS2_WMUS, // The Warriors (PS2) meta_HYPERSCAN_KVAG, // Hyperscan KVAG/BVG @@ -602,28 +582,45 @@ typedef enum { meta_TUN, // LEGO Racers (PC) meta_WPD, // Shuffle! (PC) meta_MN_STR, // Mini Ninjas (PC/PS3/WII) - meta_PS2_MSS, // ShellShock Nam '67 (PS2) + meta_PS2_MSS, // Guerilla: ShellShock Nam '67, Killzone (PS2) meta_PS2_HSF, // Lowrider (PS2) meta_PS3_IVAG, // Interleaved VAG files (PS3) - meta_PS2_2PFS, // Mahoromatic: Moetto - KiraKira Maid-San (PS2) - meta_PS2_VBK, - meta_OTM, // Otomedius (Arcade) - meta_CSTM, // Nintendo 3DS CSTM - meta_FSTM, // Nintendo Wii U FSTM - meta_3DS_IDSP, // Nintendo 3DS IDSP - meta_G1L, // Tecmo Koei G1L - meta_MCA, // Capcom MCA "MADP" - meta_XB3D_ADX, // Xenoblade Chronicles 3D ADX - meta_HCA, - meta_PS2_SVAG_SNK, /* SNK PS2 SVAG */ -#ifdef VGM_USE_FFMPEG - meta_FFmpeg, + meta_PS2_2PFS, // Konami: Mahoromatic: Moetto - KiraKira Maid-San, GANTZ (PS2) + meta_PS2_VBK, // Disney's Stitch - Experiment 626 + meta_OTM, // Otomedius (Arcade) + meta_CSTM, // Nintendo 3DS CSTM + meta_FSTM, // Nintendo Wii U FSTM + meta_3DS_IDSP, // Nintendo 3DS/Wii U IDSP + meta_KT_WIIBGM, // Koei Tecmo WiiBGM + meta_MCA, // Capcom MCA "MADP" + meta_XB3D_ADX, // Xenoblade Chronicles 3D ADX + meta_HCA, /* CRI HCA */ + meta_PS2_SVAG_SNK, /* SNK PS2 SVAG */ + meta_PS2_VDS_VDM, /* Graffiti Kingdom */ + meta_X360_CXS, /* Eternal Sonata (Xbox 360) */ + +#ifdef VGM_USE_VORBIS + meta_OGG_VORBIS, /* Ogg Vorbis */ + meta_OGG_SLI, /* Ogg Vorbis file w/ companion .sli for looping */ + meta_OGG_SLI2, /* Ogg Vorbis file w/ different styled .sli for looping */ + meta_OGG_SFL, /* Ogg Vorbis file w/ .sfl (RIFF SFPL) for looping */ + meta_OGG_UM3, /* Ogg Vorbis with first 0x800 bytes XOR 0xFF */ + meta_OGG_KOVS, /* Ogg Vorbis with exta header and 0x100 bytes XOR */ + meta_OGG_PSYCH, /* Ogg Vorbis with all bytes -0x23*/ +#endif +#ifdef VGM_USE_MPEG + meta_AHX, /* CRI AHX header (same structure as ADX) */ #endif #ifdef VGM_USE_MP4V2 - meta_MP4, + meta_MP4, /* AAC (iOS) */ +#endif +#ifdef VGM_USE_FFMPEG + meta_FFmpeg, #endif } meta_t; + +/* info for a single vgmstream channel */ typedef struct { STREAMFILE * streamfile; /* file used by this channel */ off_t channel_start_offset; /* where data for this channel begins */ @@ -660,13 +657,8 @@ typedef struct { int adpcm_step_index; /* for IMA */ int adpcm_scale; /* for MS ADPCM */ - struct g72x_state g72x_state; /* state for G.721 decoder, sort of big but we - might as well keep it around */ - -#ifdef DEBUG - int samples_done; - int16_t loop_history1,loop_history2; -#endif + /* state for G.721 decoder, sort of big but we might as well keep it around */ + struct g72x_state g72x_state; /* ADX encryption */ int adx_channels; @@ -682,6 +674,7 @@ typedef struct { uint16_t key_xor; } VGMSTREAMCHANNEL; +/* main vgmstream info */ typedef struct { /* basics */ int32_t num_samples; /* the actual number of samples in this stream */ @@ -719,28 +712,28 @@ typedef struct { /* loop layout (saved values) */ int32_t loop_sample; /* saved from current_sample, should be loop_start_sample... */ - int32_t loop_samples_into_block; /* saved from samples_into_block */ + int32_t loop_samples_into_block;/* saved from samples_into_block */ off_t loop_block_offset; /* saved from current_block_offset */ size_t loop_block_size; /* saved from current_block_size */ off_t loop_next_block_offset; /* saved from next_block_offset */ - uint8_t xa_channel; /* Selected XA Channel */ - int32_t xa_sector_length; /* XA block */ - uint8_t xa_headerless; /* headerless XA block */ - int8_t get_high_nibble; + /* decoder specific */ + uint8_t xa_channel; /* XA ADPCM: selected channel */ + int32_t xa_sector_length; /* XA ADPCM: XA block */ + uint8_t xa_headerless; /* XA ADPCM: headerless XA block */ - uint8_t ea_big_endian; /* Big Endian ? */ - uint8_t ea_compression_type; - uint8_t ea_compression_version; + int8_t get_high_nibble; /* ADPCM: which nibble (XA, IMA, EA) */ + + uint8_t ea_big_endian; /* EA ADPCM stuff */ + uint8_t ea_compression_type; + uint8_t ea_compression_version; uint8_t ea_platform; - int32_t ws_output_size; /* output bytes for this block */ + int32_t ws_output_size; /* WS ADPCM: output bytes for this block */ - void * start_vgmstream; /* a copy of the VGMSTREAM as it was at the beginning of the stream */ + int32_t thpNextFrameSize; /* THP */ - int32_t thpNextFrameSize; - - int skip_last_channel; + void * start_vgmstream; /* a copy of the VGMSTREAM as it was at the beginning of the stream (for AAX/AIX/SCD) */ /* Data the codec needs for the whole stream. This is for codecs too * different from vgmstream's structure to be reasonably shoehorned into @@ -757,9 +750,11 @@ typedef struct { ogg_int64_t size; ogg_int64_t other_header_bytes; - // XOR setup with a single byte (SCD) - unsigned char scd_xor; - ogg_int64_t scd_xor_len; + /* XOR setup (SCD) */ + int decryption_enabled; + void (*decryption_callback)(void *ptr, size_t size, size_t nmemb, void *datasource, int bytes_read); + uint8_t scd_xor; + off_t scd_xor_length; } ogg_vorbis_streamfile; typedef struct { @@ -774,6 +769,7 @@ typedef struct { #define AHX_EXPECTED_FRAME_SIZE 0x414 /* MPEG_BUFFER_SIZE should be >= AHX_EXPECTED_FRAME_SIZE */ #define MPEG_BUFFER_SIZE 0x1000 + typedef struct { uint8_t buffer[MPEG_BUFFER_SIZE]; int buffer_used; @@ -806,8 +802,7 @@ typedef struct { } maiatrac3plus_codec_data; #endif -/* with one file this is also used for just - ACM */ +/* with one file this is also used for just ACM */ typedef struct { int file_count; int current_file; @@ -850,6 +845,7 @@ typedef struct { NWAData *nwa; } nwa_codec_data; +/* SQEX SCD interleaved */ typedef struct { int substream_count; VGMSTREAM **substreams; @@ -942,6 +938,11 @@ typedef struct { #endif #endif + +/* -------------------------------------------------------------------------*/ +/* vgmstream "public" API */ +/* -------------------------------------------------------------------------*/ + /* do format detection, return pointer to a usable VGMSTREAM, or NULL on failure */ VGMSTREAM * init_vgmstream(const char * const filename); @@ -950,10 +951,7 @@ VGMSTREAM * init_vgmstream_from_STREAMFILE(STREAMFILE *streamFile); /* reset a VGMSTREAM to start of stream */ void reset_vgmstream(VGMSTREAM * vgmstream); -/* allocate a VGMSTREAM and channel stuff */ -VGMSTREAM * allocate_vgmstream(int channel_count, int looped); - -/* deallocate, close, etc. */ +/* close an open vgmstream */ void close_vgmstream(VGMSTREAM * vgmstream); /* calculate the number of samples to be played based on looping parameters */ @@ -962,6 +960,21 @@ int32_t get_vgmstream_play_samples(double looptimes, double fadeseconds, double /* render! */ void render_vgmstream(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream); +/* Write a description of the stream into array pointed by desc, + * which must be length bytes long. Will always be null-terminated if length > 0 */ +void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length); + +/* Return the average bitrate in bps of all unique files contained within this + * stream. Compares files by absolute paths. */ +int get_vgmstream_average_bitrate(VGMSTREAM * vgmstream); + +/* -------------------------------------------------------------------------*/ +/* vgmstream "private" API */ +/* -------------------------------------------------------------------------*/ + +/* allocate a VGMSTREAM and channel stuff */ +VGMSTREAM * allocate_vgmstream(int channel_count, int looped); + /* smallest self-contained group of samples is a frame */ int get_vgmstream_samples_per_frame(VGMSTREAM * vgmstream); /* number of bytes per frame */ @@ -985,19 +998,14 @@ int vgmstream_samples_to_do(int samples_this_block, int samples_per_frame, VGMST * Returns 1 if loop was done. */ int vgmstream_do_loop(VGMSTREAM * vgmstream); -/* Write a description of the stream into array pointed by desc, - * which must be length bytes long. Will always be null-terminated if length > 0 - */ -void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length); - /* See if there is a second file which may be the second channel, given * already opened mono opened_stream which was opened from filename. - * If a suitable file is found, open it and change opened_stream to a - * stereo stream. */ + * If a suitable file is found, open it and change opened_stream to a stereo stream. */ void try_dual_file_stereo(VGMSTREAM * opened_stream, STREAMFILE *streamFile); -/* Return the average bitrate in bps of all unique files contained within this - * stream. Compares files by absolute paths. */ -int get_vgmstream_average_bitrate(VGMSTREAM * vgmstream); + +/* Open the stream for reading at offset (standarized taking into account layouts, channels and so on). + * returns 0 on failure */ +int vgmstream_open_stream(VGMSTREAM * vgmstream, STREAMFILE *streamFile, off_t start_offset); #endif diff --git a/Scripts/ffmpeg-build.sh b/Scripts/ffmpeg-build.sh index d379f61a7..1018c028e 100755 --- a/Scripts/ffmpeg-build.sh +++ b/Scripts/ffmpeg-build.sh @@ -6,7 +6,7 @@ --disable-postproc --disable-swresample --disable-avfilter\ --disable-swscale --disable-network --disable-swscale-alpha --disable-vdpau\ --disable-dxva2 --disable-everything --enable-hwaccels\ - --enable-parser=ac3,mpegaudio\ + --enable-parser=ac3,mpegaudio,xma\ --enable-demuxer=ac3,asf,xwma,mov,oma,ogg,tak,dsf,wav,aac,dts,dtshd,mp3\ --enable-demuxer=bink,flac,msf,xmv\ --enable-decoder=ac3,wmapro,wmav1,wmav2,wmavoice,wmalossless,xma1,xma2\ diff --git a/ThirdParty/ffmpeg/include/libavcodec/avcodec.h b/ThirdParty/ffmpeg/include/libavcodec/avcodec.h index e5e7f4225..1e681e989 100644 --- a/ThirdParty/ffmpeg/include/libavcodec/avcodec.h +++ b/ThirdParty/ffmpeg/include/libavcodec/avcodec.h @@ -89,7 +89,7 @@ * - Send valid input: * - For decoding, call avcodec_send_packet() to give the decoder raw * compressed data in an AVPacket. - * - For encoding, call avcodec_send_frame() to give the decoder an AVFrame + * - For encoding, call avcodec_send_frame() to give the encoder an AVFrame * containing uncompressed audio or video. * In both cases, it is recommended that AVPackets and AVFrames are * refcounted, or libavcodec might have to copy the input data. (libavformat @@ -411,6 +411,9 @@ enum AVCodecID { AV_CODEC_ID_MAGICYUV, AV_CODEC_ID_SHEERVIDEO, AV_CODEC_ID_YLC, + AV_CODEC_ID_PSD, + AV_CODEC_ID_PIXLET, + AV_CODEC_ID_SPEEDHQ, /* various PCM "codecs" */ AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs @@ -448,6 +451,8 @@ enum AVCodecID { AV_CODEC_ID_PCM_S64LE = 0x10800, AV_CODEC_ID_PCM_S64BE, + AV_CODEC_ID_PCM_F16LE, + AV_CODEC_ID_PCM_F24LE, /* various ADPCM codecs */ AV_CODEC_ID_ADPCM_IMA_QT = 0x11000, @@ -1536,7 +1541,13 @@ enum AVPacketSideDataType { * should be associated with a video stream and containts data in the form * of the AVMasteringDisplayMetadata struct. */ - AV_PKT_DATA_MASTERING_DISPLAY_METADATA + AV_PKT_DATA_MASTERING_DISPLAY_METADATA, + + /** + * This side data should be associated with a video stream and corresponds + * to the AVSphericalMapping structure. + */ + AV_PKT_DATA_SPHERICAL, }; #define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED @@ -3564,6 +3575,14 @@ typedef struct AVCodecContext { */ int trailing_padding; + /** + * The number of pixels per image to maximally accept. + * + * - decoding: set by user + * - encoding: set by user + */ + int64_t max_pixels; + } AVCodecContext; AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx); diff --git a/ThirdParty/ffmpeg/include/libavcodec/vaapi.h b/ThirdParty/ffmpeg/include/libavcodec/vaapi.h index 7a29f6f88..e68912d93 100644 --- a/ThirdParty/ffmpeg/include/libavcodec/vaapi.h +++ b/ThirdParty/ffmpeg/include/libavcodec/vaapi.h @@ -34,6 +34,8 @@ #include "libavutil/attributes.h" #include "version.h" +#if FF_API_STRUCT_VAAPI_CONTEXT + /** * @defgroup lavc_codec_hwaccel_vaapi VA API Decoding * @ingroup lavc_codec_hwaccel @@ -48,7 +50,10 @@ * during initialization or through each AVCodecContext.get_buffer() * function call. In any case, they must be valid prior to calling * decoding functions. + * + * Deprecated: use AVCodecContext.hw_frames_ctx instead. */ +attribute_deprecated struct vaapi_context { /** * Window system dependent data @@ -186,4 +191,6 @@ struct vaapi_context { /* @} */ +#endif /* FF_API_STRUCT_VAAPI_CONTEXT */ + #endif /* AVCODEC_VAAPI_H */ diff --git a/ThirdParty/ffmpeg/include/libavcodec/version.h b/ThirdParty/ffmpeg/include/libavcodec/version.h index ec8837a4e..c038e4b09 100644 --- a/ThirdParty/ffmpeg/include/libavcodec/version.h +++ b/ThirdParty/ffmpeg/include/libavcodec/version.h @@ -28,8 +28,8 @@ #include "libavutil/version.h" #define LIBAVCODEC_VERSION_MAJOR 57 -#define LIBAVCODEC_VERSION_MINOR 64 -#define LIBAVCODEC_VERSION_MICRO 101 +#define LIBAVCODEC_VERSION_MINOR 75 +#define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ @@ -226,5 +226,8 @@ #ifndef FF_API_NVENC_OLD_NAME #define FF_API_NVENC_OLD_NAME (LIBAVCODEC_VERSION_MAJOR < 59) #endif +#ifndef FF_API_STRUCT_VAAPI_CONTEXT +#define FF_API_STRUCT_VAAPI_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 59) +#endif #endif /* AVCODEC_VERSION_H */ diff --git a/ThirdParty/ffmpeg/include/libavformat/avformat.h b/ThirdParty/ffmpeg/include/libavformat/avformat.h index f9f4d725f..ebb0e05c0 100644 --- a/ThirdParty/ffmpeg/include/libavformat/avformat.h +++ b/ThirdParty/ffmpeg/include/libavformat/avformat.h @@ -930,6 +930,9 @@ typedef struct AVStream { * Decoding: duration of the stream, in stream time base. * If a source file does not specify a duration, but does specify * a bitrate, this value will be estimated from bitrate and file size. + * + * Encoding: May be set by the caller before avformat_write_header() to + * provide a hint to the muxer about the estimated duration. */ int64_t duration; @@ -1007,7 +1010,7 @@ typedef struct AVStream { */ /** - * Stream information used internally by av_find_stream_info() + * Stream information used internally by avformat_find_stream_info() */ #define MAX_STD_TIMEBASES (30*12+30+3+6) struct { @@ -1059,7 +1062,7 @@ typedef struct AVStream { int probe_packets; /** - * Number of frames that have been demuxed during av_find_stream_info() + * Number of frames that have been demuxed during avformat_find_stream_info() */ int codec_info_nb_frames; @@ -1899,6 +1902,13 @@ typedef struct AVFormatContext { * - decoding: set by user through AVOptions (NO direct access) */ char *protocol_blacklist; + + /** + * The maximum number of streams. + * - encoding: unused + * - decoding: set by user through AVOptions (NO direct access) + */ + int max_streams; } AVFormatContext; int av_format_get_probe_score(const AVFormatContext *s); @@ -2048,6 +2058,21 @@ const AVClass *avformat_get_class(void); */ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c); +/** + * Wrap an existing array as stream side data. + * + * @param st stream + * @param type side information type + * @param data the side data array. It must be allocated with the av_malloc() + * family of functions. The ownership of the data is transferred to + * st. + * @param size side information size + * @return zero on success, a negative AVERROR code on failure. On failure, + * the stream is unchanged and the data remains owned by the caller. + */ +int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type, + uint8_t *data, size_t size); + /** * Allocate new information from stream. * diff --git a/ThirdParty/ffmpeg/include/libavformat/avio.h b/ThirdParty/ffmpeg/include/libavformat/avio.h index b1ce1d1c7..e2cb4af7a 100644 --- a/ThirdParty/ffmpeg/include/libavformat/avio.h +++ b/ThirdParty/ffmpeg/include/libavformat/avio.h @@ -703,6 +703,18 @@ int avio_closep(AVIOContext **s); */ int avio_open_dyn_buf(AVIOContext **s); +/** + * Return the written size and a pointer to the buffer. + * The AVIOContext stream is left intact. + * The buffer must NOT be freed. + * No padding is added to the buffer. + * + * @param s IO context + * @param pbuffer pointer to a byte buffer + * @return the length of the byte buffer + */ +int avio_get_dyn_buf(AVIOContext *s, uint8_t **pbuffer); + /** * Return the written size and a pointer to the buffer. The buffer * must be freed with av_free(). diff --git a/ThirdParty/ffmpeg/include/libavformat/version.h b/ThirdParty/ffmpeg/include/libavformat/version.h index 45c83347f..edd666bef 100644 --- a/ThirdParty/ffmpeg/include/libavformat/version.h +++ b/ThirdParty/ffmpeg/include/libavformat/version.h @@ -32,7 +32,7 @@ // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium) // Also please add any ticket numbers that you believe might be affected here #define LIBAVFORMAT_VERSION_MAJOR 57 -#define LIBAVFORMAT_VERSION_MINOR 56 +#define LIBAVFORMAT_VERSION_MINOR 65 #define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ diff --git a/ThirdParty/ffmpeg/include/libavutil/avutil.h b/ThirdParty/ffmpeg/include/libavutil/avutil.h index 29dd830bf..e9aaa0372 100644 --- a/ThirdParty/ffmpeg/include/libavutil/avutil.h +++ b/ThirdParty/ffmpeg/include/libavutil/avutil.h @@ -118,6 +118,12 @@ * * @} * + * @defgroup lavu_video Video related + * + * @{ + * + * @} + * * @defgroup lavu_audio Audio related * * @{ diff --git a/ThirdParty/ffmpeg/include/libavutil/channel_layout.h b/ThirdParty/ffmpeg/include/libavutil/channel_layout.h index ec7effead..50bb8f03c 100644 --- a/ThirdParty/ffmpeg/include/libavutil/channel_layout.h +++ b/ThirdParty/ffmpeg/include/libavutil/channel_layout.h @@ -131,21 +131,30 @@ enum AVMatrixEncoding { * 5.0(side), 5.1, 5.1(side), 7.1, 7.1(wide), downmix); * - the name of a single channel (FL, FR, FC, LFE, BL, BR, FLC, FRC, BC, * SL, SR, TC, TFL, TFC, TFR, TBL, TBC, TBR, DL, DR); - * - a number of channels, in decimal, optionally followed by 'c', yielding + * - a number of channels, in decimal, followed by 'c', yielding * the default channel layout for that number of channels (@see * av_get_default_channel_layout); * - a channel layout mask, in hexadecimal starting with "0x" (see the * AV_CH_* macros). * - * @warning Starting from the next major bump the trailing character - * 'c' to specify a number of channels will be required, while a - * channel layout mask could also be specified as a decimal number - * (if and only if not followed by "c"). - * * Example: "stereo+FC" = "2c+FC" = "2c+1c" = "0x7" */ uint64_t av_get_channel_layout(const char *name); +/** + * Return a channel layout and the number of channels based on the specified name. + * + * This function is similar to (@see av_get_channel_layout), but can also parse + * unknown channel layout specifications. + * + * @param[in] name channel layout specification string + * @param[out] channel_layout parsed channel layout (0 if unknown) + * @param[out] nb_channels number of channels + * + * @return 0 on success, AVERROR(EINVAL) if the parsing fails. + */ +int av_get_extended_channel_layout(const char *name, uint64_t* channel_layout, int* nb_channels); + /** * Return a description of a channel layout. * If nb_channels is <= 0, it is guessed from the channel_layout. diff --git a/ThirdParty/ffmpeg/include/libavutil/cpu.h b/ThirdParty/ffmpeg/include/libavutil/cpu.h index 4bff16714..8499f0ea8 100644 --- a/ThirdParty/ffmpeg/include/libavutil/cpu.h +++ b/ThirdParty/ffmpeg/include/libavutil/cpu.h @@ -85,8 +85,6 @@ void av_force_cpu_flags(int flags); * Set a mask on flags returned by av_get_cpu_flags(). * This function is mainly useful for testing. * Please use av_force_cpu_flags() and av_get_cpu_flags() instead which are more flexible - * - * @warning this function is not thread safe. */ attribute_deprecated void av_set_cpu_flags_mask(int mask); diff --git a/ThirdParty/ffmpeg/include/libavutil/ffversion.h b/ThirdParty/ffmpeg/include/libavutil/ffversion.h index c664839c0..89043dbc1 100644 --- a/ThirdParty/ffmpeg/include/libavutil/ffversion.h +++ b/ThirdParty/ffmpeg/include/libavutil/ffversion.h @@ -1,5 +1,5 @@ /* Automatically generated by version.sh, do not manually edit! */ #ifndef AVUTIL_FFVERSION_H #define AVUTIL_FFVERSION_H -#define FFMPEG_VERSION "n3.2.2" +#define FFMPEG_VERSION "N-83254-gf28299d" #endif /* AVUTIL_FFVERSION_H */ diff --git a/ThirdParty/ffmpeg/include/libavutil/frame.h b/ThirdParty/ffmpeg/include/libavutil/frame.h index 8e51361e2..b4500923a 100644 --- a/ThirdParty/ffmpeg/include/libavutil/frame.h +++ b/ThirdParty/ffmpeg/include/libavutil/frame.h @@ -120,7 +120,13 @@ enum AVFrameSideDataType { * The GOP timecode in 25 bit timecode format. Data format is 64-bit integer. * This is set on the first frame of a GOP that has a temporal reference of 0. */ - AV_FRAME_DATA_GOP_TIMECODE + AV_FRAME_DATA_GOP_TIMECODE, + + /** + * The data represents the AVSphericalMapping structure defined in + * libavutil/spherical.h. + */ + AV_FRAME_DATA_SPHERICAL, }; enum AVActiveFormatDescription { diff --git a/ThirdParty/ffmpeg/include/libavutil/hwcontext.h b/ThirdParty/ffmpeg/include/libavutil/hwcontext.h index 5e2af092a..785da090b 100644 --- a/ThirdParty/ffmpeg/include/libavutil/hwcontext.h +++ b/ThirdParty/ffmpeg/include/libavutil/hwcontext.h @@ -318,6 +318,14 @@ int av_hwframe_get_buffer(AVBufferRef *hwframe_ctx, AVFrame *frame, int flags); * If dst->format is set, then this format will be used, otherwise (when * dst->format is AV_PIX_FMT_NONE) the first acceptable format will be chosen. * + * The two frames must have matching allocated dimensions (i.e. equal to + * AVHWFramesContext.width/height), since not all device types support + * transferring a sub-rectangle of the whole surface. The display dimensions + * (i.e. AVFrame.width/height) may be smaller than the allocated dimensions, but + * also have to be equal for both frames. When the display dimensions are + * smaller than the allocated dimensions, the content of the padding in the + * destination frame is unspecified. + * * @param dst the destination frame. dst is not touched on failure. * @param src the source frame. * @param flags currently unused, should be set to zero diff --git a/ThirdParty/ffmpeg/include/libavutil/hwcontext_cuda.h b/ThirdParty/ffmpeg/include/libavutil/hwcontext_cuda.h index 23a77cee7..12dae8449 100644 --- a/ThirdParty/ffmpeg/include/libavutil/hwcontext_cuda.h +++ b/ThirdParty/ffmpeg/include/libavutil/hwcontext_cuda.h @@ -20,7 +20,9 @@ #ifndef AVUTIL_HWCONTEXT_CUDA_H #define AVUTIL_HWCONTEXT_CUDA_H +#ifndef CUDA_VERSION #include +#endif #include "pixfmt.h" @@ -32,11 +34,14 @@ * AVBufferRefs whose data pointer is a CUdeviceptr. */ +typedef struct AVCUDADeviceContextInternal AVCUDADeviceContextInternal; + /** * This struct is allocated as AVHWDeviceContext.hwctx */ typedef struct AVCUDADeviceContext { CUcontext cuda_ctx; + AVCUDADeviceContextInternal *internal; } AVCUDADeviceContext; /** diff --git a/ThirdParty/ffmpeg/include/libavutil/hwcontext_vaapi.h b/ThirdParty/ffmpeg/include/libavutil/hwcontext_vaapi.h index 7fd1a36e8..da1d4fe6c 100644 --- a/ThirdParty/ffmpeg/include/libavutil/hwcontext_vaapi.h +++ b/ThirdParty/ffmpeg/include/libavutil/hwcontext_vaapi.h @@ -33,6 +33,26 @@ * with the data pointer set to a VASurfaceID. */ +enum { + /** + * The quirks field has been set by the user and should not be detected + * automatically by av_hwdevice_ctx_init(). + */ + AV_VAAPI_DRIVER_QUIRK_USER_SET = (1 << 0), + /** + * The driver does not destroy parameter buffers when they are used by + * vaRenderPicture(). Additional code will be required to destroy them + * separately afterwards. + */ + AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS = (1 << 1), + + /** + * The driver does not support the VASurfaceAttribMemoryType attribute, + * so the surface allocation code will not try to use it. + */ + AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE = (1 << 2), +}; + /** * VAAPI connection details. * @@ -43,6 +63,14 @@ typedef struct AVVAAPIDeviceContext { * The VADisplay handle, to be filled by the user. */ VADisplay display; + /** + * Driver quirks to apply - this is filled by av_hwdevice_ctx_init(), + * with reference to a table of known drivers, unless the + * AV_VAAPI_DRIVER_QUIRK_USER_SET bit is already present. The user + * may need to refer to this field when performing any later + * operations using VAAPI with the same VADisplay. + */ + unsigned int driver_quirks; } AVVAAPIDeviceContext; /** diff --git a/ThirdParty/ffmpeg/include/libavutil/imgutils.h b/ThirdParty/ffmpeg/include/libavutil/imgutils.h index 23282a38f..40aee8b98 100644 --- a/ThirdParty/ffmpeg/include/libavutil/imgutils.h +++ b/ThirdParty/ffmpeg/include/libavutil/imgutils.h @@ -191,6 +191,21 @@ int av_image_copy_to_buffer(uint8_t *dst, int dst_size, */ int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx); +/** + * Check if the given dimension of an image is valid, meaning that all + * bytes of a plane of an image with the specified pix_fmt can be addressed + * with a signed int. + * + * @param w the width of the picture + * @param h the height of the picture + * @param max_pixels the maximum number of pixels the user wants to accept + * @param pix_fmt the pixel format, can be AV_PIX_FMT_NONE if unknown. + * @param log_offset the offset to sum to the log level for logging with log_ctx + * @param log_ctx the parent logging context, it may be NULL + * @return >= 0 if valid, a negative error code otherwise + */ +int av_image_check_size2(unsigned int w, unsigned int h, int64_t max_pixels, enum AVPixelFormat pix_fmt, int log_offset, void *log_ctx); + /** * Check if the given sample aspect ratio of an image is valid. * diff --git a/ThirdParty/ffmpeg/include/libavutil/lfg.h b/ThirdParty/ffmpeg/include/libavutil/lfg.h index ec90562cf..03f779ad8 100644 --- a/ThirdParty/ffmpeg/include/libavutil/lfg.h +++ b/ThirdParty/ffmpeg/include/libavutil/lfg.h @@ -22,6 +22,8 @@ #ifndef AVUTIL_LFG_H #define AVUTIL_LFG_H +#include + typedef struct AVLFG { unsigned int state[64]; int index; @@ -29,6 +31,13 @@ typedef struct AVLFG { void av_lfg_init(AVLFG *c, unsigned int seed); +/** + * Seed the state of the ALFG using binary data. + * + * Return value: 0 on success, negative value (AVERROR) on failure. + */ +int av_lfg_init_from_data(AVLFG *c, const uint8_t *data, unsigned int length); + /** * Get the next random unsigned 32-bit number using an ALFG. * diff --git a/ThirdParty/ffmpeg/include/libavutil/opt.h b/ThirdParty/ffmpeg/include/libavutil/opt.h index 9430b989e..0d893795d 100644 --- a/ThirdParty/ffmpeg/include/libavutil/opt.h +++ b/ThirdParty/ffmpeg/include/libavutil/opt.h @@ -228,6 +228,7 @@ enum AVOptionType{ AV_OPT_TYPE_RATIONAL, AV_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length AV_OPT_TYPE_DICT, + AV_OPT_TYPE_UINT64, AV_OPT_TYPE_CONST = 128, AV_OPT_TYPE_IMAGE_SIZE = MKBETAG('S','I','Z','E'), ///< offset must point to two consecutive integers AV_OPT_TYPE_PIXEL_FMT = MKBETAG('P','F','M','T'), diff --git a/ThirdParty/ffmpeg/include/libavutil/pixfmt.h b/ThirdParty/ffmpeg/include/libavutil/pixfmt.h index 7a3f68be7..dfb1b1103 100644 --- a/ThirdParty/ffmpeg/include/libavutil/pixfmt.h +++ b/ThirdParty/ffmpeg/include/libavutil/pixfmt.h @@ -306,6 +306,14 @@ enum AVPixelFormat { AV_PIX_FMT_MEDIACODEC, ///< hardware decoding through MediaCodec + AV_PIX_FMT_GRAY12BE, ///< Y , 12bpp, big-endian + AV_PIX_FMT_GRAY12LE, ///< Y , 12bpp, little-endian + AV_PIX_FMT_GRAY10BE, ///< Y , 10bpp, big-endian + AV_PIX_FMT_GRAY10LE, ///< Y , 10bpp, little-endian + + AV_PIX_FMT_P016LE, ///< like NV12, with 16bpp per component, little-endian + AV_PIX_FMT_P016BE, ///< like NV12, with 16bpp per component, big-endian + AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions }; @@ -322,6 +330,8 @@ enum AVPixelFormat { #define AV_PIX_FMT_0RGB32 AV_PIX_FMT_NE(0RGB, BGR0) #define AV_PIX_FMT_0BGR32 AV_PIX_FMT_NE(0BGR, RGB0) +#define AV_PIX_FMT_GRAY10 AV_PIX_FMT_NE(GRAY10BE, GRAY10LE) +#define AV_PIX_FMT_GRAY12 AV_PIX_FMT_NE(GRAY12BE, GRAY12LE) #define AV_PIX_FMT_GRAY16 AV_PIX_FMT_NE(GRAY16BE, GRAY16LE) #define AV_PIX_FMT_YA16 AV_PIX_FMT_NE(YA16BE, YA16LE) #define AV_PIX_FMT_RGB48 AV_PIX_FMT_NE(RGB48BE, RGB48LE) @@ -382,6 +392,7 @@ enum AVPixelFormat { #define AV_PIX_FMT_NV20 AV_PIX_FMT_NE(NV20BE, NV20LE) #define AV_PIX_FMT_AYUV64 AV_PIX_FMT_NE(AYUV64BE, AYUV64LE) #define AV_PIX_FMT_P010 AV_PIX_FMT_NE(P010BE, P010LE) +#define AV_PIX_FMT_P016 AV_PIX_FMT_NE(P016BE, P016LE) /** * Chromaticity coordinates of the source primaries. @@ -398,7 +409,8 @@ enum AVColorPrimaries { AVCOL_PRI_SMPTE240M = 7, ///< functionally identical to above AVCOL_PRI_FILM = 8, ///< colour filters using Illuminant C AVCOL_PRI_BT2020 = 9, ///< ITU-R BT2020 - AVCOL_PRI_SMPTEST428_1 = 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ) + AVCOL_PRI_SMPTE428 = 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ) + AVCOL_PRI_SMPTEST428_1 = AVCOL_PRI_SMPTE428, AVCOL_PRI_SMPTE431 = 11, ///< SMPTE ST 431-2 (2011) AVCOL_PRI_SMPTE432 = 12, ///< SMPTE ST 432-1 D65 (2010) AVCOL_PRI_NB ///< Not part of ABI @@ -424,8 +436,10 @@ enum AVColorTransferCharacteristic { AVCOL_TRC_IEC61966_2_1 = 13, ///< IEC 61966-2-1 (sRGB or sYCC) AVCOL_TRC_BT2020_10 = 14, ///< ITU-R BT2020 for 10-bit system AVCOL_TRC_BT2020_12 = 15, ///< ITU-R BT2020 for 12-bit system - AVCOL_TRC_SMPTEST2084 = 16, ///< SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems - AVCOL_TRC_SMPTEST428_1 = 17, ///< SMPTE ST 428-1 + AVCOL_TRC_SMPTE2084 = 16, ///< SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems + AVCOL_TRC_SMPTEST2084 = AVCOL_TRC_SMPTE2084, + AVCOL_TRC_SMPTE428 = 17, ///< SMPTE ST 428-1 + AVCOL_TRC_SMPTEST428_1 = AVCOL_TRC_SMPTE428, AVCOL_TRC_ARIB_STD_B67 = 18, ///< ARIB STD-B67, known as "Hybrid log-gamma" AVCOL_TRC_NB ///< Not part of ABI }; diff --git a/ThirdParty/ffmpeg/include/libavutil/spherical.h b/ThirdParty/ffmpeg/include/libavutil/spherical.h new file mode 100644 index 000000000..eeda62523 --- /dev/null +++ b/ThirdParty/ffmpeg/include/libavutil/spherical.h @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2016 Vittorio Giovara + * + * 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 + * Spherical video + */ + +#ifndef AVUTIL_SPHERICAL_H +#define AVUTIL_SPHERICAL_H + +#include +#include + +/** + * @addtogroup lavu_video + * @{ + * + * @defgroup lavu_video_spherical Spherical video mapping + * @{ + */ + +/** + * @addtogroup lavu_video_spherical + * A spherical video file contains surfaces that need to be mapped onto a + * sphere. Depending on how the frame was converted, a different distortion + * transformation or surface recomposition function needs to be applied before + * the video should be mapped and displayed. + */ + +/** + * Projection of the video surface(s) on a sphere. + */ +enum AVSphericalProjection { + /** + * Video represents a sphere mapped on a flat surface using + * equirectangular projection. + */ + AV_SPHERICAL_EQUIRECTANGULAR, + + /** + * Video frame is split into 6 faces of a cube, and arranged on a + * 3x2 layout. Faces are oriented upwards for the front, left, right, + * and back faces. The up face is oriented so the top of the face is + * forwards and the down face is oriented so the top of the face is + * to the back. + */ + AV_SPHERICAL_CUBEMAP, +}; + +/** + * This structure describes how to handle spherical videos, outlining + * information about projection, initial layout, and any other view modifier. + * + * @note The struct must be allocated with av_spherical_alloc() and + * its size is not a part of the public ABI. + */ +typedef struct AVSphericalMapping { + /** + * Projection type. + */ + enum AVSphericalProjection projection; + + /** + * @name Initial orientation + * @{ + * There fields describe additional rotations applied to the sphere after + * the video frame is mapped onto it. The sphere is rotated around the + * viewer, who remains stationary. The order of transformation is always + * yaw, followed by pitch, and finally by roll. + * + * The coordinate system matches the one defined in OpenGL, where the + * forward vector (z) is coming out of screen, and it is equivalent to + * a rotation matrix of R = r_y(yaw) * r_x(pitch) * r_z(roll). + * + * A positive yaw rotates the portion of the sphere in front of the viewer + * toward their right. A positive pitch rotates the portion of the sphere + * in front of the viewer upwards. A positive roll tilts the portion of + * the sphere in front of the viewer to the viewer's right. + * + * These values are exported as 16.16 fixed point. + * + * See this equirectangular projection as example: + * + * @code{.unparsed} + * Yaw + * -180 0 180 + * 90 +-------------+-------------+ 180 + * | | | up + * P | | | y| forward + * i | ^ | | /z + * t 0 +-------------X-------------+ 0 Roll | / + * c | | | | / + * h | | | 0|/_____right + * | | | x + * -90 +-------------+-------------+ -180 + * + * X - the default camera center + * ^ - the default up vector + * @endcode + */ + int32_t yaw; ///< Rotation around the up vector [-180, 180]. + int32_t pitch; ///< Rotation around the right vector [-90, 90]. + int32_t roll; ///< Rotation around the forward vector [-180, 180]. + /** + * @} + */ +} AVSphericalMapping; + +/** + * Allocate a AVSphericalVideo structure and initialize its fields to default + * values. + * + * @return the newly allocated struct or NULL on failure + */ +AVSphericalMapping *av_spherical_alloc(size_t *size); + +/** + * @} + * @} + */ + +#endif /* AVUTIL_SPHERICAL_H */ diff --git a/ThirdParty/ffmpeg/include/libavutil/version.h b/ThirdParty/ffmpeg/include/libavutil/version.h index bdd310f85..9d95086ac 100644 --- a/ThirdParty/ffmpeg/include/libavutil/version.h +++ b/ThirdParty/ffmpeg/include/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 55 -#define LIBAVUTIL_VERSION_MINOR 34 +#define LIBAVUTIL_VERSION_MINOR 45 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ diff --git a/ThirdParty/ffmpeg/lib/libavcodec.a b/ThirdParty/ffmpeg/lib/libavcodec.a index a1aa2d65b30610cc5a858c9587de544ccf9a08d3..33f82ba818d99db0600500e0caa0ab210033d9cb 100644 GIT binary patch delta 1832986 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�P3b&0Mt#t4M3-aP&dtRyMVfBTL5*_?0z8f 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Ⓢ;gB6-D&om9NY7>YAMMZ%A1MDM_y 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 `#XJ5KzT%854GMI0Jni)}{Nj4ZJL% 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

-E5lP23j?N15oWpJTaFcRMf$0ltzi^1+v^D-Eu zj`sp;S-lwNX6!km@G%b5bnr41fW4`NpI*_~5xNwuSFyK;t-aWzQ1gk{f5$#XJQK};y$&3@1Sjr?;VuXhEuS8bBjg3_eK9WV$6g&{!u8lsV{e3U;U?@q zV!s0s9kLi<$378}{TBO5ME5uBJyG6X?7d6S(J>wzF!4`APaKFr;brX05dJ^0_r~FJ zADZEN?8DI%z1N`UV*eBS<7=@jZJnmA!u~7v73;B_0DF@S=o1M2Of=b(*t2heZEW

b1(u>>3z%wY2 zwyP0d>I;ogkx6`5VFZQEIHVm%G;1J|>Db#~e;X0~4*OI@bp2dyf|iUzk72Kk@Vo|h ze#Y)c4X?sJ6#MnqKauvIf`X{v#?pb7bXShkud!oLy8!k@qcP-Sr;T2$P5R%Cv|jm- zYjFAc*}>a%^905|a<{AvN=17C;z=7$c2WBDuC@r3bbU{yysHr_9|VZ>C=Y#r3lf?JiDW6fqAL8xUZH$!1AD8qJDP>6^+>)-qEB~A z^qZkUDQEXOp`@e&m2{}+OC(R z_=6h?S!C&F0 zs68sRp*LuY)^Zpl2R_VVt@8jWW`A>)|3MsUqC7z=Krc=glZ9vtDuq6Zldj^g4Q{5= znpNba@3WEGYkfmOyL-4Qc~m<#HU%Ih)2C<2C;B8UifIK9$zX^=jdA)7O$k?Dhd@cqY%Mqb=YnW@{1B^dzmgKn@=p)1v) z1xjlu?ZR&>PNx(NUo})}wB%GmMPFSb*XRSiNTTntiA|@}dO$u)t_6tXcInzjDtdMs zsr4pQO$xhuAX_%Ic`ez%a)21dwg};*lE26gskM>jI1BqY1<-c2I78n*hOyNEai)hT zpRZ`UZ!j{D$vk0h%c)+#v*i;^cs@IkqmSw(&`0mv0YfGI>A?}`}|xn zGSjD~sC&@2sNfHMg-Y_!{eF^MrSkNlb>SjP5?6P@)pV#}`*5hzria?F(*hvMbU>3k zwAx;j4mTjYg9OmTy@w%6(QP-C#9c7HsAG@*8XNvS0^i>xuVLS4+c7IH=4OhjfSq}M$|GR`4?oHjcl8YoDD|ydL!V>N-~0L zjb!JT>PB7n93%5HBlxJ%!sTok7m;RoT>9;ne?zcN%`c)#jiAe2X0&hyD@kINWS`NZ zAUs2NmAno59c}%&MMkD;ywRk{s5RbbFh0U-B)Rl2q6&c z@7gi0o+z*}73dys=PEMdC$OzF*ErZGKRdWkK;Ceq<{6x)5ILM_R532-U$bzIK%SAE z{a;kA4Q0Wk_~)0p(R2{XLV0%=o0ZR=hboWNRQcuZqdx> z=sIb5_gRl_4El}o1#YJHD>-!8% ze{6ACM556oT0dr;xfNl3cWIvC*LOLx4MTr-DMGB@=O{4hPAmj}27F!pAo%n`^qV4A zA;J-*zY}p1CJg<@1*N?r8tOkTb;G2-!I5V))ZfwaAi2lP+c-vvvXuzk6tV*359oL3 zNQBm^#ibE7Ilrw0afbf8ZY|y%OisFSvHNHx8>9O|o}~W~VLiAxINbbYk$YPu`F8kr zMk|2j{pNVXtG}+fvm+WB$@-3^MTXIX9m(DZ8@2TH5e0~75u}Do|9Bzl!~SQp{|(WV zkbI9>K$SrLpO?Bz4WltD744Urm|i1ZKcwdwbqkHCjYgdN1+LWBi)JgQ3Rt~>ozBo# z7zOa?W;4%-DxAQIpDl9dRdSy-6ZCED8v41ba5*c!zvw7@_UT6=P#ucfi;ME0Yj}-B z{a(v^TQJLf4l3b+gnpL(Xha^XKfQ=6ouD6!fKSN(V3ON5om3?~O#t=8wPr~uq7^0$}PQ^SZYHpv> z+YYT{{Uz(m+k&Opdl$K>Gt|`IWTOeBjXYhIWxGRhNUqX_#`y!xu8D(BpMC*Zo6*QuYNWcN^-MRHuD@j! z-w~{B-ib;jJ$SQ`u+gZw(WrCm7}?if)ZB5fZ^XUG7OT64!;5AJ36$Yn1Mu95F&Kmg zit3o8KM0et6r!O1hgJqNKUQ=?vXh`+ft}z`jFF|*#XEux>l|?utWbuen=OZ0UHzn$ zduOm`o%dJM%aTK`KMj}E#Y4)Vz2 zs~A}ZbFbiothQc=YC&%oHD#qS1>Kv*l%ivyF{L(!%C@W(8dSXc4@<3iTZ8kRCpGKB z)?k8TzvbQ*EUA$(8`U!OVbmj2^!k>y4L`>0XFakl7^w5}!lP12)#(Z-1Zle0`e|D* z&9U1`*dFwyT#JJp2F7B{3+tYwSwr7w4cs1_20Pm-*~uemx}I*mvpqN@p_d&=>Dfxy z#Ok>t*rXn^x(ZyqT&TQ@%!joFncuu4ILR?}^Uh#BZ$It@@h*2quE}I8XJ;_AL)1|t zX@*hv1taf%Bu7!382Wu?fij9I4-MvFArBkO1NyVpnw`OxE$IYg58#L_1$%tO0KUy0 z!1L?@+>7(xlsxO_oxwmu6otCh)NeA>A^-D2yS8C9sjt6g<^Lzx)Y+%ZDod)KfDyO@ znqtF$f=wFUVU~%3Z5-#H7iLQ=<5WMOa5dCFDgXRG!7C1P9R^vdVA(%b5HjggYRr5J zUQwsozu@0G)%H-QLg1uN9g`E4*Qlp|9g%G$qO8eAN)8&p8oMiaP4zbx<`ueTyU4Q? zeP8)YyMoo6jz6q-?+vDSf5my!tG^$?M|_ID-E!{^`dj>g)R-4=E;H0H^W*bq| zjtTnjOG{y7?rc7uU@%I*!9k%6>KCnRcL!@%18c;oHa~Bb><*>|S0N>Pgwe(1fIYkv zL$W&8`a+}j99Zh5KVzNR9n7eA=hE3L+&QfDvj}|^aohLrIUDFNTVs$@Ss(VV*6-RAymipUB?T+onDW5QsvgAZYn?~APaFDo zOQwIJ_69S}!%NXY(IHAJb%;1Fi>EJ@2AMJpf-UuR zIN{cJU4#xg`)iBQ@&0kZsW=AyVZ6c7U%n*Uuv**~Y|!Iw=S6mcdK=Gr;^1P2ey6F% zj&B|AlSqixAClAPX~%e(0ID&eh`JIT?+5k;Yg!NA7i>KG(}l{|?Z{Ha)*Dr9&8}oC zd@@-yw0rodRkS?Rv*EqfZC|iSySts3G4qfizHh5q+(n9PWiu7trVQEV#7CDo??1Tu zx4i#z@6z{Ue)igueKH!%=0@TXI!fQ`EHE;caiOOc7er(t)-{fz%Vg_s$s9)c;?tK$ zQWHe!rHl5VmMdj?OCj~?cgdKwa^V{lRg{U%au{u;o27KtqW%`E@6n5J4*rxnrb~Z$ z3HP_~^Jl>v&JxPe06ElA^nb5xszLPsh3Ws1Wz%l>|E_(qB7`#Xhh5Z!`k@kq`XR-5 zH-;n*F$c_u$ug2RaFd;0denu;H_#7T10D!YuD`}n6yeqHr9()6)8US*bjsz95vT96 zK7Js$Bdc7?4II#6;|R}i6Lbs1C7oE_)-bWd;DG^Iu7G5=GJfMA&WbCbs)I)) z^}bsAV^;Qq!8+!-0eDh|w+kK;+$vZdh&x!d-o=eR!dC^K72FMsMZVjGUnjUsaK7O6 zg5w40orYwuze2NCS4p57izG-FtOKlp0{+5%QA+<@@QmQocDlOdomCDb{Re@hzg_SY z?yyk>>Fun9ZGpHSm-RO8|3=`>S=Rfw=S70?KoUIN3D1~-_vI^02a>@$f>DA$;vOKS ze+jGx{dgcbK(B14^h>y%Nw@=d$I0F@Aj#(dDZK@u2_jPxwzkAWOgz8*D~Ip8wLcBS zectxRg>Mgx1Ahtk$8aaF{Yl(#rGj4yD#K3z$?%Cxh1&&h5$q)RQ$r=+4>ZZ6J0#%+ z-0mZuz9vD2wgIUCUDAKaQ0bolW0C%z@Vo2dAu0Hq1s4mB7o-8T<+7fXrzw>dQjs5sd#M`cz<2R|A40pBtH!#`4d2hvWDZHE>)y2kSfwm zu!W>&3jb5w1is%{>pbF$`;E0e7JOUq6~R-2#|0l2Yy-so=&UOU2g=SG4utKjmOyf# zK9C%UvGyDeT4uXj_>QZqnc&MeEB-k_Q*fT(g^f!7rQq{|PYUi7yj`%LU=P7QWh#F+ zg{JGk29>Z|Fi)_#ps`-b|6Hf=DZyicIf4xZUsx-8g4u!@g4@<8`DR8_bFEpe5|#`8 zag*YI5*)Tl@mC8*3pxeY->Bp(1>ak#__KoR1y>4=5*$j1gUvN}g~~8Zu#I3-!5Be9 z@Ui7e|FB>u!8U>&N|n5&pkFXiFiOw?wE7LH8DW0COy&4k@KwR*1@{Q<6dWTsT(Fy9 z2f=K?48bo;l>Kvpj|(1AXu9r^gl&S$1s4ep6TDi`DR>$2b0CE01m6-Y7kof)uwWlS zm*8JZDSso)bqf>d41xi{x`LONsDdt9Q;TXQnA?P<7g|yIa|EXfrU@nq{=Qi0{V4dV z;PZlIf~y3_3SJ|aCYYqqbkV!3s9>jH??sC5DyRwmx=^J*Ay_WBS&-g%MRr;X<_NyC zK&8JbxL9yDBaWK7k`OO=biT^)px`xv0|i}zf6Y^RZwa0eyi;(K;4H!G1e*$G5+=jr zC`oV#-Z57hzQtPdZ2yF){=)XOvN{Y(m~?E8l0GE3P;jPTf5D!Dy5R4#RlX+$j|$eG zrP5ObPtR2RGuF4mY9?4Uhu8F)Z6vL!;9WD6&K-hX1oH&XO;>Vy>nXL#9fG$A&J>(1 zm?PLw&@HGbG+lG9SB9nv))uTTSUye39}t`)I90Gfu(P0BkUld>4t_XQ;hTb61#e|U zCz&b<;{^K(b{EVLtS9*Mb;{tkf>%Z>{ujYrf?EYw36=;J3HBqzA?}(mN*Nd_*j})O z;Ah23{=VQ?!D|Gs5^N_}S1?}i@<^5cqTq#V75^o$x&sdMl!Q*#-dcTRZ8L3zk|zl| z1b@3mrN1S3MsTv=Xu(H^DZN92Yr83ag&!*Y1(#?+wWLw2)+jP<5trr@Kp3bdH*MZ zdv#Zf=B?Va$hAItF};qF)2vPF)>gfzg2Un$uY@YLe1ky)Z@myxZJmB#n!_4iy;|2; z5G=Z1G%i>(o(^`5y>_-rR@v|z+By-QjDd!?ZC30v!Hy|!h<3VLCD&f4azDDpp|!Er z)p0b7zr47z!M3FiD<^hjO{=7O4YxJ&>N@_Aimg~#rAFOofBf%a9tppweSxB4f=tV4w0Y0Zre&23oOZ&$Bv9sjO-gafZ}>e#M{HGOfd zC~LvV;PzC96Pr$(gZ@R*CRHT3G2v9OJmFNMHq#teS^Zlz-qmczoKe$ekDN4Z?6~2ZfRmZw8uZdyB zwQu~W*&<5cA%*G7KtvSbU$o|oK*c@>>2S8e?Ge$y!%a=Ahuz`KkJ67zs@@bSQIt>f za`p(#Xo)0OC;ZFB9#Jo{Ex>R_=L1G!cR0IxVW0$;3$*E-@Q<_RYth3Yra0YgV^Y%Kh5D6(+Sc)WN!KoR`!9+I1zlezFY=F|gGYR@MW?+l%h2)2^ zJDd+BBRS!3W*l1dwIQ7jDbT6QtC*3O%>BrDODR3|Z+Q`}6_6+BWPg1sbef1xI+8+e zW`c1w$G=@rcGZjA4=^I44~DYF`jEAic>KB(?LUc4Zld&#e=`Y}zeV14tW!=pSN%-~ zuDKvT$U4vZp)){q9zzlb|Dt9*3EFiU|ELO)sgXVcXSCS_cpkgM`6aUU8zfmfA)=i1 zlos6u;_4BkVx&dsB}G-OqeBjZN>f&;Ln=c>g<`{2YHHEbK@VgVA5_kWim8X3)DdFn z%wwH2=$y07gj5=9(YHWl3#;TnC4ZQdw9NL`r$z6A%44k30xHF}3iU{K#;rvkfyy~j zF`aFoGtt%wnek}RFF;4fXzXydhsvzKsleZJA!j;4r9@Pse-0&gL-GzgIT{5HWP^oB zKF-PMC?iy8HFgg*@IiA4Yp#N3zSXpI<0LZ|iK<$+P+`}onn(AdWY)EiTqenU{MqKl zL**Q++zFKfwhDz+^;~qbCD4g*QEi_fooki#3g1dhwuVY?f@T(Lehkf=V$r0-l~tTt z^zM+#=TK=aD$$Q3c>?GB8p-*8%L(HzLuECqd$$d9b@CsfY-O$E)61eMx26*-*lK$NNX8&$QcKCUqON+vWr zvSwib#>Q7wY@6gbjGKxa4WtR7K^IwQS#|~?$`~!|EY$P{4*x+9g*6qWw+nEv@BS)YHPi@zU|NTd9nG( zdi{4i_35RD`wi;T;%woZXKN0a{YljR5A^n%Mz?J5x-@lYhu_!DdA$9zd;7OO>e-+D zfqox|AE9`@_|wZfT3;J~+qpgCwobz1#4Z>2Ig(l#MmFkeiHjz*k49ur~!^*r;Scz#6JV1jmA9U z??K0>jSf=cYomwLMh#B`7zg!WP+8nTH$B|Oan zh+i!RXih}@disZrW)(yZ6FChD#6KbxqJx|GE5g%(Mf^rnLPQfAN=Os~bmk#`xi~;0 zCh^}QBW-lp5r0VX(@B~5EkN4nD)(rhREskMEpI%)4Y`UgY*v@4U0q;O8GS1 zA%3n3!Z3{{D3owkC1^AoA^sQP>1;s!W^sV#TEw>#IZfM$*Mz6jI`Q9FKfKy$h*fXO z7@y@$AL6#E6*k_Ka~UF%(p(jfBxv(V2AVvjt0bD;kyfT|ohfYGq%%$OiKkh=?@t+7D7u-si48cN47$R6(P_rKC+qj8I9kd1v97n6sb^$x__LSEE zO}u^9ZG`N^+ZzpN#Ft4zlE_PhA1-oxI`Xv0Z&PxUFM`N`eH}0s0_NpP>3K0=UxzHW z<#Ofqy)BnZoc28dDW`pCs6K9_TP8h2tgckM^n-s= zvnS5AV21436LW4l&Qun%4BX)qK|R5m|2M#wphGBeJ^1y^Y5#w3T`k{p5HL!Nf?VcF>xw4cl23LF=<}uy5j9XPjV|Ta)-MEa~ zCmJ)P)-Q%@(0$9el#7*1Y5!YTDH}@j{V6>}?jPLK_u;nDo-1ob)}j!i{I;+Ql5W( z)^iT@loOMiB$ubp$QtJj_8ZVe>oj=eReig3y=r97E+hN(Eb7&DV5Ou1{knGT(xZR* z54Xiu*R2b`L>ksBhmvdQ-E#4g(?dqB^0F0KeNtTAukJLoX|8o5${k-Tw^vs(0b?V( z^&U8qML8_GrSrbHS}iM!`{guk*|}@^4_CEVv*Q++pT zJr6sqgZ13CZz(=plao&La9(FvFFcwb-hW_dFIbO2ne4W+YY>j6aPT!}vx{PRvFw@5$ojyM< z9wVlJ?au5=H83*X1GXQrjfr(>V?uN!Jr7aI+=x-mjam*RwdmXd8L5GX5!;+HM$RCz zWhq^nYSC`1;rXnd=FQdP_JI9TPp=+-5JVaVF}+cBXF!WTX0th9-SN+WZAQ|jV7>7) zJdP(e7i`V=(P^4Sh3Kuo)`_15_H|-ggZ0JV0k(!0Y#Xo*<9|gZV=>(6ZB6hw@zry2 zflYinu&v`W;bAGUd0_M7hk}hkX?lCGJ>tiL-A2+5VEe_>OJwQe%X&w!Me$p}vL8Lb z7RT=)mZUwwPK>`F>}$jh06RVY`2lolYXN>Z`1$d)(8@>bsOoy4#1Zcth#&kDKOX!l zNBs1Dl6@lhGDmzo=^_a%iDNO;&0{}&W)B>o2Q#~ty}gJ1yl)mMT)>4>ib{$7&b2>y&Cz5)2hh+hl- zEk`_ktA=a8(dzbXRz1ga<>S81`ra@%mpE&mM*J<{IpA%;pMWJL5w)wuDog_|1K%20 z3hV=14jcc4T3iy`^;wBI^YaukiOyC+|K5#8?5O5vvI^cTX z3g8AHb@MXd!@!NeSAjPJzXaX_{9kOn2YeMp_y525?!9TG?`5)tgj@&-)g%;^5+F#x z&=e_xQbnaGDySeRdPDCBA}$I_P(<`W#Rfd;qaYSk9z;du!G;|a6+8C-`|O=b^7a4Q z*PV0bbLLFlnb~P~H^|KFR(LLaExbMaHh4d{2cHCA2an0eXKu%`5q<~!Kk)VNci!o3a{QBQXS!Q;PNhk>Z2ibpQf_gFgaa4u1~5 z0{#|!CHxrtX80fQRq(W2xiw+c0)7kpO!yjj75rBC1@N^oEK{-E2Cs&Da1Xu?en0$n z_fCA1o(FN9QY&f z_3%gG+u@JF_rM>AzmZ4#e*(*A2zJ1KhVO(oU=4K_JPQ9e{0#V$@U!7h!H2`2hEIb3 z2R;k_415jzS@=Eh-SB_I_rPC+KL`I9z8C%zym~vgs0rG1O(54&xN;v&x4o4=flr~FMwYJ zUkINGUj$zXUks0J!mG;xhTj063ttAG2VW1L4}S!{0R94e;i`m~dKb$g1SjFuH3=%nfS|fMNh$aoc&Xr; zB-KZ7O_G&<6_#))a)dEN>W7fDFCmLX*eyp`Qn-t|1};y#a94&au4hnrurOprB0Szw z8$lXwZWd!ql~Ar8MI)x3gIek>Xh0o<2Gy@nTcs4DrShR+RR&E^y`YKed}xxI2u)VA zp($!Lw1L_LO;t}o)6~n*boD+oL;VcRR9Vf1Hic%Xjxkua>I-$$1<;6^3~i`xf-1EV znxpQ5y6Q1#BefTrtKNh*R-Zug)DO^nWf!sOpd4s{Y5|R^uF$6H9B4B&9$KhoK%1-O z&?0pYv{*eUFFsRC$Q)d6~%k`E`9sFBc8brrNs&4ad6 z9<;ss7qo-g1MR5Zfu62T`1DWc87jhxz?rHIw39ju+F4xy?V_f(p#67MivZtlBML; zGW#s`1ngx??T5W$sZU_9TI$!9@`abfgQBeWZ3JLnhkry zQp@A)F4&uvdIWaJQqRNQveaSN+m<>3dxw=#CP;@Z6@mTFQY~ReEL9GBm!M(qS?aRZ zjO3sdcaqE%h+$sHI+nePpQ*U>{rRXV@o}N^ipllSnA+GfQ=ceQv4qVP9D4 zO4u<=ErcB>+psS!wFCB*r4GPOSn6}w*OvMP_Kl@d*p-TXYpHzrNlTpu`_585VBcHn zJlGGGx)k=KrDnl?veXLL&z9N*`^8d^!%kUhFYH&E4eU2d$+tUxx6~=vAC^jE)9X)5 zHG}QJTgK8b@fuPz7`&Ups3)>b{Z^Ir8 zs;^-W1y!hor%g~bhHVe3_OM5SsxR!(pc)5zEU2!7JswmmVNV3ry|5iY^)zf}P#uKr z3dYo@@P7x@DcF-im0HRZCa9vYr-SND*nfhGcXU|K1l6UmXM<`sYQLG>x@`Jnm>_Cip(WmH6x274)}2Eg_O)y1%vgX((ND?t@o4S$u4!uFFk*ndeI z>_AW*gS{41zrhZYw02a)ppt3e8$opj?9HH(ug)AIzp%H0Y6k4>pjrxhC#dd%9S$n_ zw#)y5>P6U*pgIhDH>kdZu^SbMDF%$G(p5&HVk?3)%xzD9m)J$Mg2z-j)KUYX0W}sH zRMVigngDX6;~BxBm-Va!0? z>rRh%|H-47ak_HsM{<~aaj-DY^$eQA^wW*W2TXopESfxx>8JZND2)MQ@(oNr-T#7G z3YyE@)BWyDhE0MNGxc=;0zDyUB{NSeGLpC(N#X*z6R}#2BUivuuZHBTA#D{YKf8}0 z7nPJ>B>fxw+|d7|{3&zjO+ZOxiXD(S^b6>oMY2*tz=(4iDcMU{DH%XFFDWHC;B-dz zfvBV)vz#HolL8y~a179oEY*kOf%33SNf&52muT%+N+yD+BXd>XcNVavGX?0U#sQW& zR|EaPP6Kwb8g3=Ap_KR46L3qt1P!Qnph0yUYO6n>A(h@yszy_2f;t15sQN;a)P>Mw zbp^CK5L5C!oEILy_l~f-4cnnRZl4=g+u}B4d&M^Q3Z0=&C zCXhg`P%BahO_lnW)&bkwcup?M4<+ZT&#_wScW6L4XGnJ2LTyzE4XH6u23XJpbqh36 z{R^6;4nULDacGK4JX4;ur$Jk(!O+$*H51lG-3e{0WWs)$dJkG+MeZl^MpFHBm5Mwm z0=X-J+_$j$>Ccthk}Er_WSv=Zcgo$2C-)~Phh7LGb?gjg8K>btOOTKZz6nV$o3MP1K4B^9kVwiNPzE{@b3gBImdwhiq=M8 zs`CTzLxwVT4KUOB6?k0W7NF~dI_veWt-wxB8t^A^-3csrnj82Gu)>iyI7uC}_W-M$ zSP$?YqWv;>kn?dD?R*e8!uh37yp7w3f#V$O?0Bi!M}d zT=3%oXDj#wk4Ad~m=&^J;9?$Y_Jd$n$o3ljC%~+b9R!z)`!nGE0p~Muk4cK3L%@>R zcgDlZ;6tqORcQ~egIPk$0{c1qANak1)5PEpz()g4E2Do5{As}HWbn7(V*%%EgMS8} zpoGCOKSh5cI2mv*GYX+3yYR<=6EnC0_*B4IVsJM24@wB^C#Vs)I_TVOa1-$Spz}Cb zh6}twgj*VP7E-zVTiPDHD(LWSnt1!SJ0n;ZboQA5dVn_soi`2c4Xz0~M-1){-W+s3 zHTYui)}ZsX!Iy!z1)X4DoxrQW+k;NB!PkKw4>}Qf(W;+=n-J^@I!%qj0`Sv8r-Q+( z!MlS_Z-eg!KOc0?F?cI@U(gwA@I&DJL1(JLJHQ8n&TNC910M=HD`Q6R3WCEy=MHc$ zDY8T0qe16cgWm-o3p)Fa{!#GBp!2c8pMrl3I^P?70(>gy{B7{};6H*+YCoOf-@w(j z6Du%+Kr;8tc3K*o1YT@A9l?Gb$pA06onFR02fWI5`WxH?e5>sYF}Mi4&UP+0xGi{t z?aVZ|9k|AhIdhGGqu+&_ZD)nS9QrQYYCE?W+#9^jb~YM(4tTrmJZkXy;Kyxex4|R9 zyKLvBZj3aU4cHfhpSGPpyE7VM1aDsk-W{`@H!CO-5llnyyzN|yhbP6uOz=M2IY5BL zjLz*Cc)#s@W+GS&K4?29z!%CbTM0g7J3YJVB3=zXY&(a}()bqed$u#OKNDcOe*1QC z?5OQbK;T!xdl7tUJJSr_4nAf(HyOMGe8P5?8vGydN!uAngfgJDp9i0^oz=Me_*HOq z$k_^BED3xAyg1~f57Y@bl5EEcmxr9D2o8us+Z66;$T>~0bWB~r>q1TsuwMtdgExen zz6SRI*MyvNjeZ~S=8z*VZT0;R1aA#F7Z^Mgye;HhZ2XT*iE$4@&Xq_MhPGVW+e9VA~D2 zC1IzZ!Rg?q!_HuXGr_yV&KQHU!Ow@C$p%Nj`@+t(am@2yA=n>wW*Y?;d@$_HH#ir3 zDD2#9a31(@*ty-{DEPgwvl%=}65JAeH0(TNa2fbm*x70H&jg>O1br;e{|gcP7UuC!I=&A zM_&8E>k=IKRPGhAHYmJ_peDgtj)GqYj)0FQIBO050{m%$Bkv^e-BVJ@QG)Y?!CBxF z3C_y~HwK?fa1MeKS`vOS_*8=Po^dY)S0_5h!7)F;&IslwIzJhOv%rfJouu=0gag3K z6CL@M-~%$j8V+8S=oEv$6nr^&U7}NJ^sffjB-Ra@XMr~-I$e$XyWp*fPS5jr{+BYF zvOhtvEzyy;Gx+#R@b*OKh{4~1A5U~X12br}?BBt=NU#a;5Ag0pCuOisa43yRm*_ME z`#oV6cweGZVBDkNgNe==gU$25J%U4tP9GHf5lUC^;Y4Q;*dGI)1wNYSj5O~3!Jj5N zlfV~C28M!9COR9yejS(qK9%S^Y4AjFb&_+~;7Q=cNzTcb5llv~D#?+rR{OPhDtKLz z69N0TXePKO$tf~;DR^^|Q)cjL@YW=!8`vK|Yyodia?S($CAJ;BE6EuL_QT%=-ks#c zrXuiX3%e2QOLA@iHz*@VuYeCGIm^I)0$v3lPI6lGV*Olh!N=gENzPry{W$nolJk(k zr@$wYoM*v)iCF9dpJb}^DU*#xrRApalySRoJUjC%Gf^ z5I*%PrbzBMgKlCK-M!kN`OKHxc_69ksS9QK<#f_0OK+*Hl(_CSAZd50OJ%|3CQx}P zXqBwD^po!rNcp6$l?9jcK~fm0x5vD%{3x~s3&*(+8@C6UGP%1!enKB&isb&ckFI~I4>Kon-!-b+gN3uLNCPsIl>=Eu z?$Yvu1;UR7(w=eGV96rYY5S#M)`6M{dSBAH2~;BJYd?07q&n?;iQUYJ1Wj?D#?5d4 zX)Fj$bzd^7f5~+1fI+ezG}Ac@>>!~g0cY2a4BS_m2p54FxZef-MBJBv8Mu#Nlt~H1thA*F7^#~jue5u>jMU9A zG;JH0k-8bjrac5^pl-&oY1_dJ)Zf&@*tCCx8K@uX86UQ$Jq2cH|01ZdoyU#BJ75OhXOY6qjDypTf*EM<(c{>(ufPnf&A2x0XD|cn_l>(1q-(LA z&%v?|o|Xh=9GyVR^Y3{&m~nHuV444>Wg%eToQpuZmNW%s;B2~@v^?-p{;wnr)$cFp zM&#H{iUel_;u!syY8nb<2GmI`mI_k~0xAa@RIQ-4>Ix01flxL-p|J#Y4J^@0k>`XC zD@9Ua!d)sUS_>J+9ZVmSBg{=d&y{!F??aqESlXbpNJ&BZ1=1bO#!b?e&iZer75T3O zaTs!q1ktytus}p2iNuZx{aO@GLAK(OwmwH#%e1wwtiqlxw}AerE{-&>ejI7^PML1) z&AMH>JgJ<1N!~%1XEodf45gK-{cuZt3=ODXph1-`?<==e8z@I9pkXx@%JwNVQLTU` zsRy9R>IGx7a(*^B89&N#oRut0PgG?eg8K;4AJQn!gv-3JY- zT~OPKz5@%z5>~O-iOo`fKm#h3=~+<8SDbBiI+SEV!)gRHK}~@ss%mJGx*3|RYM?1f zKDwNuUV%1H??Y47NoblCP3$4b*b-1hSS-~U8c=MJbl|5d~!J;^lHpelgcsy&qBH_)&e3{6lIpo!{wXp&kAO;#JBA#6< zATnFTiy&QSmZ=kRgiT5v=2pVfOA%ctb<#XEQpd`})vUp#jtdqxuYKAGYUvKgpFE{f zFA5g6^`BW~gc3^~A1oZ;UV@`Em{hh%M!BYENxdY<1N3s^c4@Hi68?{I_cju6&9%L70~F3W7a^(T%7F76S9Smuuo6$JMaZ16%rCzdxiJ4lHwA{gk&y0ArmT zc>#nU(-?4tBOmwl;W%KGbGm_(frG3_CS$X#Jje#gP)wCa-B5Ewrr zIYh>F3P^={5N{!SIOmU^!)B?sp>&(jph~V3y=G93#6dY(15HqqpowY`G)ZlOCab5R zDe4_48{Q{jY*(ERdVsj-7=ZA+m<(?=jR7DdWto>^btWwxzcDC?LyN&HUi^Z>IZEd;3uNrt7Fyy>tU_EvhguPap< z)yB)xAOBeq8Hz_HppmTx$^REN)H`x}x4+}@0=e~fB<`0TkGeCq+kvTdYvntEnRQ2Q z{{xKpM_v7y@QXm#i4ui>boABqV2suy*_zmayuOQbOXqZ)eRv#L=I7EsnffEJlXDiX zei{4;tZ;?{ZxO#q8PZy6kHKaE2RYMm_5C&i);ob)032sU__j@~{*Fzq+yyH#h4AX_ z8{dQ)P2BYZhb{^HckYV7Blw`}SbnjlUx(b+EQttOthb_Qf^< zlj_cC-wVuimJx`5@9qb>&T3%n1d-SegQNa=>7NBY4rEL2JM5{lj2HP`Y_cyG37=k@ zW!YoPRbciFp{cUl7AX>2Ye?1^kmExLEk8X+cxLKj?kTw3&D6(9yZZ+y=EEmQtQ8rD z4{oL$%C;g`0P0r)8QjI2%wk-u$O>rcEs*RcLn%FbafTz$Lg{4eB~&lVX@y*BjlC2Y za>@-{2264W0;x!>e=P^6I>W&~6P&#Qm|6EUS_yP10h}V%8RRP!G8$!jVMey_efFgp z&J-+u$xcAsa;`LRA~57kHEnW(*mZ-0SdHkgUp5rgM}nW&j*j=cc9n?F!xy-Qs4 z(6akwWD6f>_s;NRl^L#mHnCcMtTK48`vNQK%>+VLbOnAw_IVj<0~Sj?01c=op+O~| zH?^(E8KkfNy_CthezL^4UvvcjQ1Ba)-%>@@ip=py6=5gq%V(9&V|rP=?;npjr;K)p}@1Jpc`>r=SVy6=-5i9f2jOFQLim zH)x7VIbQ~rji9NjB{WT)2~Aghpc!fyG*eB0W~u4WY&9S1DEZP*MBM{zs2+nVwHKPB z-h{g96KEs#Jv3JZhRf-}OlY2pHHGD?_RuD(7qmbPg)(WG0At}@O@{~6VrWpU7nynp znxvkCW~#TLQFQ{knh25ri$Gln4XVqawweVE zsbx?OrbAQJHfWmFaHlvpH>rK_fO-oWR3D2>eFIHWvEN`BDsiL~WA>2@9#=!jjab!ZOu0u#*K=3aGFJ#rtCxJ=&fA}L@_k71 zKOp&)@#MF*h()eu_?L_1|18Pxsc%o4)A8;90jy_0I;pmogCCM~^a_0Hl^2(|v7p?L zRq?wST4~f*iFW86piGv6tE3YRMHAUZngU$y=Xf&k93M(&7=9EuRN!rrhj1WC$F%0t z-oP_~W5so?Jbc5|z)J;A@qF!F;Aw)_Nks~O51cO0cTJQJOb2h30bSzFwbGKeb*7t< zO1Z+_QaC%)AJrWarj=AC!tn@aiKiFO8R_+CQPLNpqas7<4UtAsH z#nq^R&cx{f$%R!q4h6Yx)|>(_ln`1{U)q$T?fY&S_dVA5ZXNesH<``0B15{7SP<>$3PzmD&}eL?gph+fZFhIcMpJi2`Z8K`g@?Ug4)Rp zy*>4|e=krMS^cg6O%&9PC$4)AXr7=7h748iDB#NiISM(#9dA7L3o>87%D4@bCFhw2 zohxh1b3mVozw;PNxXTS1B8$lGdf*@8I84@%-G_nsmB10QgzWAD4iy+1DFY8HGKMVj zAeD|F_bwq@g~+l^uB_VpgIJN32qSACX>zOAk#)C8z#)R6EB+&G+T&rd$p-VNQ)JJ|HS>dKx`HQ9kj#NlT0eP#a^eL}NuB z#$Vc#kT1zu-f20)qIr$oKjFV4&dZ~I#oW(EYuHpO*zcfs&%&`tDp(%3$w#gHajQil zNO@ga{t>yKAU_%L6qKQ#))kUTsEu3Y2%8!i;WmcLZHrt${j=Pr2C@hha$A99((g}Iv7CFL_8W*{}M#pHE$Q#qTEq4%NgE)ICh1f?t6h=fEnGKPu z3Coo-u_98oku~+iQUJO4`fd+EQ+rJh?|?D3W&%XB8#TjP3uOQ}nFT}$!9{YOUPZ8LV@pHWD~)X{%g&#j&~K*wb= z;fMUsWH*Z|be9fJh6;6^feyGA!W6l^4Pvrm%F?DZoyY}oe|61hx_DkFB%a#q#h>&f ze#Y^(Oay*F5)Mc3Hy}v65Aq{7qe)GUu&O4mn=qD*M4n(x{EC(h>L=)om^88?1A9v& z>jau0jzgu9^#`pMG*Oz>7=va>v$_)G2g+t_nL8IGALVXxt2}XT1-&e2qs;Ll9k5bn zby@Sfi31rismAC2(@}Dy7tk(`yUm5=E)pV#gtePkBg+w{`nKERs{e>XM z>G%&IZzORB;&-Z^m*Y64{Rr7kehSVi6IRVjiwa8Ir?ASY--1$UyYk$ZF;hXAl;|GZ zUg-mBFQxX$B^)X{7t|qCSaTxiMkey_iSxi6L$Si@Z-Q>tWtMgQ`3O!A6&`)uc4d$( znGI7#3%j_j=qxp#rD7ksrGlyP?( z=WBrJ?rXri#PwQ~v)vDYvI-uZ4lHrM2KsrJ0W5d_1RfCA>)3}bceBRp{9h03=QcO+ z1`Y=Fb32TWS=Ld}p3QnwKev~0CRvO7yMqm!%O-e#_d){~Fox{!UT)w*4$bvFDn+HE=Pd)!)6{z$K)kzq`%A*isVG-`x#9A?a8~I{Le>0Z$2B&azj3_d}z-g01WR z?lA*bacro+`-6e2IUCU5wJ+8=zJ((*{oO1B*Ki~HyG;zdm1AoC-Lja$YdJU2-|cMR zZ5$iu@Ad>ryN=#YeHq{m2FkN0dI!Zbz`Yb0V!1uKp7I#r&N9k(0w=i(jq+WT$0TJ$J3Sg3ZuXc?^Yrr$yN5Cz``5qSXX80YD%+aHp>9IZ!x*y;ykNfDop~9`;&%o9> z;4PuTUEr_44_AQi3l*+A7IeP@%bYp76?gFO;8fASpAHQ?oF387SZrIUa36w;5y%`f z`e3N=Ab1-1EV|6-L!rXM;A*gp+@lYJzYMy!gQdrgZVwf{2bQ;*oFn>=(nEqD#ocdr zkAc4my3ZQ?M5ypn@T(ffqC4n95xip*c7+O0d==#U4ZYamv6j`eJV#ix>6w1FD@)8x zJ4uK5IZ}g?-0wgVVbjj?4E@C*W?vCEq&tYFU1b=ZB6AV{0nR~%SRL?1ygsycf|6(? zwK}|fwbmYYt>CN!6*V55Pb>H@9Fj+Ahs~O#KMCXQ*|okh>uE-bE7s%xc#itcyodH5 zi69!uobO5wYVBy&+Ec9*shss9z}G({MA?yA7T2-TdJK&5pGfLP^y~tkWktKX`@rW* zRb({6J5IBrST*){yCsu6%T@jKgH)^{u#ZL@w&K zBbZF8JBOKg{PqU55yW{BHhq?(##rk?SbQ$+51oA?H!D|8+n_}yiR_HUb?Zj3|5um) zLB$pP!Lz(eC)XzujurXw|LImwp&^OVYxV#1TZR*fjQIik#1FHs!cbLet5(!XyA=In zGGgh7l}D&2`7*-B~7Xr;=%8YG*q%^9DJuu_^~^=n4J zN;?hvES#J7&Vj|Ona%Uvg(j#bQY+RN!~zh{W`m-VuLlfj#y*p~!=OT`FfSU^Tsob% z4JwlAbJ8Hj|9P%8L6=7h#{W?_&A^s&(xbp2CjBklRtB|}qU&Z*TN&E*HRv=cxe*32 z9`58`Vo;fs+?56~9gXmUA zxH}Evy$qw=-3HM;FgZ7PR2fv|CfMU!i5VG*kdb))1W788_ZoDa6y;-a6tjwEN?Gm& z&L2Wzu9x!q&tx8C^nXPR%W5j!=YaCGF1nG?QKdU%QoK-#7^Q7vWUdFiMb!+JD&74k zOOX}L;gol!`;LK(;dWKl7HH9Yju}?EpT%&NnM@IbxZRcRNu$jmZeOMQyMYYi_E*-9 zN{Se?9jtW2%$od|7^NMqtQ|5G$tbPTN?ApA{6=SU3J?3sWU**sfv}1OMHTUM%aO$* zZZ&r|PoJ50jvWQ-)#pbW`9L0<+x;pdS{iwC`oR z=NdSQ(P_3j!NAcBu^o4Yfn&I}j=RvnvG{e|+kk_Z;uekP@fvaO0gea8iY^5!_hImr z;yi)DtE$)aSJ$&M{JDs<>St`)6zrFi{-W*$!Yb^dw(bm*Ke{B#oe%QUUn2MPW{`Bz zMRZWj-Sxhklz%&EaodbXdZ?l9v&Lfw=~@ng+Dqa(2AR^;-qbT}{vG6gWIT4FP(tqa z#%E{p6?QFC3SDSPVK)m{DIt|p-NSC-Wa9U6H?$M#Wi`pqBpI$9K=JK`+QCNL6^XP; zUB~M*sqYJjqan?s`1%52)3MfeR57dgOsU~!US3Sk+OoDv6*GKo>zZBu zV*1%Kw@|mbV)|Jgmj69BF(U zAT)@^H^{x(AR6CLe+n&)zL>^0!oA73oh_aI8iQzx#(G)LnpD>8VH_3g*pcsvB ziu;m*G`^|s0nqgq5CsE*Yu$H2%LUQe4h7uLjU&zL$AJ62f$Vx53c7y**NHN%jdh%a z%QJKS|E*Wd6Jt4j2#ku0XWNT0sdSdjqmYnw>{7gi^lh3p4%NLTgk<= zw&nS5f1tV$Nb_3W${h}rab58^YGG@460k&ErM0zjuLcelcnPqZI}12Q-~|3MSl!)S z2<}(`X5FE>pSubu6|0zahsFKeb-<~j%|ZiH_!{6`fh;uCjCbz?%E-I;O5g-{J8-4A zUIm=wJ`I$CbTR7=`zE(x*fv%f_>~-{l=dJw>)r1%|rs{H{+)Fcgy!mLx$|N)Kc^0t^Xpn9jYYI%S0*Gn@e}zHq#V&lOAhJlAmu=`xX3|iTsSHnGfpy& zmvH1nrPh{{5h9Xf60AYXCGWM60OW-i1R$@x(8_XfPn6}qa5^3G|0oejD{Bttx&$nu z3AWba$sn)J5t;nK*yNx?TqLh^(IR=Rg~TlHyC7ycS*K&(+$^pvhiJ93JPkxyR+~|l z=Y&?4x1301a$Fe~@=xv3_e6FdM8+jAMUw#Jk9COTb!j>PSvM9JS@*_8R+P1iYz&Eu ztRUecTSnSN24mtPV>Mi4n5JERjA>7@qk+?XFzqCDSyC#s8yC4`Z&Si~xWX67uBTR( ziMP1OgdAm=l4}<^O(Ve+a}#yx%m9kWg?LvEEJ^Gt|9lXM{D)jC$?1F%$=}GeNdA~0 zBKa%27L6Y2?b({(4w9*!#4l4o;+NT4pI(9K2;vg0I2*>!Ak5L?2zu$_1GoRY$rY-9?S9Z59hl2dLX za>!=Lm-wfoB`P^Kjg}mo*5S!pXhd0FNux#bPZ$x&pK7#!S@jZ;ENrmA_>}(?>Ez1mg(NW9(b9qWe}q6Je~{2x@^>52l6N8K zu;j&7l0JFi6#yJk^E0WKJG4;ys}3EkkiEkApbhh0muYG zTx5QMi%c!Fi~L7G!dXmRG)3JkF7j6faN?4)uHs+L+Tvf1!D|0{OniJB&hH*DOx3(+UNvK40vf<9)u#!G0 zu{1g$a6(w~SK~D|VXx-*YraYIYc#)H^ZUx<{x@oVspg|KKU?!2ny-m>3JJ^Nymi8K zEx1DSgLLEBxK#Ml}4t; zwPtyNHTisipl86%4$J=J&`R@(*$0{Ce^E-%GeoYoy2Tq;+^45A`%_?DVz%bu(0q+@f2(re8Nc)0^sK zB<(Cat#m|MtljR4`9EJfCS%8*sulhXuFTjGN~*J`CS~k+rE1U7gsK((ZK?`9H(*8N zm3A+q_d&betCmG>u59&O#*XhRJ0G~l&Dilq-(~GHc0^R*VAbDyGIqRP+4;!T@9rIh z@A33cggXm1U`2QZtli)3Qhx6F?+Q}ZZuc=St6yr4S5qBGi?v)bw0ZNsOMdCQMK?SUL3F@@4$d1qnf)~6;aiS z@&i>%W;f65-R|cJB^d?tB}}W=ve3@TRtGb7?5pe?+mkVGKQf~1yR1RRj<$iSWf_$j zJDd0HyR5fWwPbJAp0A=yK4|sLO}Q0|kH2}eGWlrFCC`6#%>=I60Q)W*mf3gNK)0&Z z>s9l94b3iC{J%GkE;-)nf0auC`_t8y8+s$521G0mTeB5L(b;DZ6nBumRA6H6|&dM=qB>ihSL89Sb%ln!*>lQFl9 zPPb~_^DRgA9MyAl&oMp6j^4{1c!h@rciQc2Lb+y!>~;ZGjOVE-g8M6 z)i3@v{qSCI+I{^ZF}LTEx2l%>(09pSz2|?OG5<|MryBS4lUAD|iLHE&f4^&G9rsi% zxt7XOU@fyN0|dXD{59{y9WL+FcUeN!k{7D>d>vi#Wo4_6Z%V6N{E^(@Q$3fw^wrqD z%g*Pfp5x!t%l*3=uK-IvYIVGF$zOH%wGa2zC4zc)wc*M#UA|97Nh*N{zSN188(FoC zB=ug>z2}niLsj$khI;<>-;4#L{)~O>#TP;1pY-uR z4DGGXzTh-()uzV9leIU|y7Wq|WIh~S>ouOp`rni``o4>GIm@A!Su-x0GX2tPEWRaV zT{Ha(Yw{)5)bZ9h{p8u`^*mmc>plBt_oN&nv#p_PLI!M1^D^#f)i|y(QTwv3^VWn6 zSe53j?$`AHr!lxrV_KRwCzKG^X!xWKBWPt>#{Po0X>%~odwBM+q=s%fcake$4Kvmm z>E7!zvU9!dvxg-%Y*_0))L3zUU`|2^+Ayv z&^9Ap0=}jJgEG8!PX-&Oe5ie#k>R~w(kC}r>;9PGeN-H1RIo~8!~J_{z>y69Ue+qD zuZ@V?X~3oozo?oRPnr5rFZavXTV{HD-VZkRDt>F9)bMPrzzs9j8#BF+V!=kfd!(|~ zeWyBD6!@Ys`bWAG+q;N<2CO^3(A)lFS*mx#y7N;Sh5I^89XeXU1UtP; zgRVYwJ6d@eUSM|Lg5C{Uq<$1jjWQT%9JYLo2I3*FV?B_cA86+cOBm7M0v2T@1~G z?-l9yp|Dj!8xH;u5*)V9st+oC;7y!aTG{7){KtLs|F{#_9>v%#(u8fd3)BA%mmq95 z(5>{{2C;!2N`D0;r$Ovu@4K0$Gc!J@7gnkh@GhEF+R$4ut28BW)LS>Jv{~R|?}c? zJNJgtX5sdH2szuEA=XXYp=^<=tT|Sed@%AyiagktAR2nl-%wf}9F*$?XO|WQ$K`sh zW|uZgc-Q8W+_~O)vr9W9oWNdI?k$~N+BW=Kvi*J3dun!RUP6#RPM(T-?_+PDfIZlh zo55wDLD*^3sbC7yR3q(+bfidgk*cO%n;Y@h1bcI%ah1_%hEzU2;fFRC>HXrbJ<^J% z-YopZ&cr^>XlykaG18=`2{_HNUo#qm(b#SLePX1;ksdYD zUy$}@ni!mf)QUBWC$28IEX!`d1i@Fi5|uKoVHX(bwMfSqX$K>{9_cD0J=;jDk?uCq zkw&@@=}BMOl2VrMi~7+mM;tATC&-?M)c+*v6G#UYdQaU%X+4d7mC^W@(b$Xhppian zq^}^&Y_3Cl(@0;J(2Vp8BRwqP8tLyw`k{ntr1Dwa2CEY(xa1%K7kL-ONKh8`aYZ_k zGg0w18X?_oq%t!0rA?7q#aef)k+woQ$Vjg-(soE|jC7Hac1C*ANY^8c$=}|Bmm{uV zWlFBP8`+b;%A?|IT!+R%tzqvq(s@Y7aR=nG-!amgB@!e3%1GBEt!|}t|2ES0_aV;I zYY4noL`U}+(i$Uef%JVz<}XOg+ISCEQ*I4ti4|>iaOW9~0;GdZ)6xk>+5xG&8%i$w z1|vNi>C{p!U1g*rkye*!>AgmJ71C8qRphdtMA~3pG70)n#JS#(Idl{6V1GN;yI~If z!C%<7clYj`LpSkPvVBW??*QUhI@LkGAmE3RLQOcErWDLZdWVtb8L2|L(MU^>%HITo z#Yi`6X@dNx)NjCvmR(^qTBGqV<8QE$mLPpJ$A~XMyj_CpiTK~`z3RF2KfSR(XEYWY zjlM`fq(gqcA+|(GI#W zel;2!kX9IJDmUHtw+ZPuBP}q}El8`4w7rr33u%p!_BPV(NOv3Q2&A#^B|)DfKB~oa z<=M!xFGt1K_zDfHqfX{cMtTxy)JRtw=}$;2jC8Y+{)Tj%k?u6o_J1R;HsV)|I3yL{ zNTt%RlVL_rq`NzMljc)yXJbEUG;C_2uQ3p*e6de1TN&vPq=SsKm62Y6wAx6^jdU#1 z?M8a8kzR`QsF99G+Mv6PSDrcyz|8m~!kM!Mce-$81zo++38 zkdc0fbdZtmG14!P))?s_BmEZXNhAFNY3x%;&^%gP1&il$)!oQByt@+>U*l#p4r&cM zgIerM*CUlzJ<4UXEghHMhtz+kn@Gs*blOri@o<8?9se<*mc?J&inHT zu_Kd_U=)pUMx*wTUSQe(L*snWSnR#Nq_kmnCySTwvaljp~HB zw14K2R`4REgN(EYX+k#AeMqadv@UtMmfaBzf6O-#jT+;xCsO}z{1@qNBOQqJexAs| zDM*jTwAjhGkQgGvaSSEDpMD8^8iM5anR{5tv$0MK*@W8Z~uiy(j1n*$*AUNlB?B_`U z-NF*28=py)`;LuD;4B_DUDPvitu;zf_=i|M5P2+q?b(g2}^cV1=ugnKJns| z*H!q%*~c#swH-V#uJ4!Tmtem%lX|Aw-k$U*T$=95uBk%Qui91ivq8OJ%RZSwEm<019$ z@!)!?jN7eXnU1tQEl5Y+Mj{{Sm)0u;?3dQacxlPjlb?{0@r0ZK_7gHPo{$A#KOwQW zKo`&GdJ)I%e(6*YVQ^fy$<;I)zjS2Q;FnH1l6dK4?3Gkqsh6K-XnwEeW_8P~VRhH{ z-0~XD?vv4Zrq0}rnoAEUmsw}|=W0rZE(GOGo82cG9*pW{ujl;y#xW9RF}&hMa6G*+ zvK30D@++GJDtD6B=${kHh0DW4dT;4Pn_>zv#h8|u(=hEYGX9WVWwfO z#mvCW#LULrh^fZR!z{oo!7RtDz^s&wbxD<6HzSDK{{DM4_FFNxVWgY61G52h7iJ@- z2D1rs4<@wvyf>e?=(6&QR=zYnjJ^8B7uMe0<$*m3*xU8`vRfj&^5un-lHjvO+7HG-^Bhc_7BU>`TP*}lh}`9 zzwy`Mvx>U6dH5sj#qi0;+s$dwJ=W&omVjoLeSNI-nm+EsC^q&MvcDXho(a={w6!)iZj3b@rxUqVV`s6St$;<5c}eDMkO|f zU;cBerahmXaK%?|?O9v|o;qY+*SYUHtBbL>zzlu*+?>;ff3mdln=zk<|JZZG_rJfM zdEUG8R!(a?>XGB20r!MHpV8j=0&@&==;a>6o3Ebuz;WzvVgC~THvB923C!>n3n%SQ zzWIhAmCVL?ug%YNy)&GOa&Q0fp{ZW;SSYh;6*C5z-AuyF#4N_F!)(Ru!tC=-u1{#= z4Xa7!^YM3`6OHX+NVpGk7;_AB3X?=H;bK~1I$>mBHv%&WGZV8IvktQrvkS8ia~N|B za|)A0?;^vNmY7bMD$EGXB+N|AV$3?s)>O`e?834Sa~N|Ba|)B>-T0Byrq$DQ=KC@4 zVNPKFz@*Z9=3&}m$}s~lqrB6rLj~UJ8_#iL<@BNhFrzS2FtahsF&i-3Fi&IlW8TA@ z!2E$pr5DV@w8fNT24F^EreJ1cmSZ+xwqc&e$g&ZSQY%e*RW2Fg3TCaI&W7tTkO;2g z*(aAg8w3|>4?8Jj!GDl=xnxu(xFw?sxn!+LaA&PAqdmbVv&5CpUuySrwYw~kiu=dG zc>IDTLx-u@Ej8S@8YZ zUDnhDU#Z<)-3*WDW+;PAasO7A0L#!ZU+}CBK$hP`VZIJvkFGSuI)G#y;PV>G!lLM3 zp>y=R&cJ-#?AB_$OJ_*-V?@8FZnkZt{6(-s2-hhcV2VzFtT~EPRO3fe0Q%}y(VNOBm#kTd`*Q6r(=)+){rM2j4Xr;>>&t4ExZmyTb9?jPdpM=O{h^9U|kYLqZ!k}KB@ z+D~k?4n$TRMd1&va27!D|AcVK`lDF0O)=|4->nmUpRNZ-bUly-HqpOU<5zXXUrRW0 z$=(a@G3y3uv|L|-#KYsd7-hLcaJGH~7sfqUcWQlEO%wMDT~TGLQt+$VzwF!yeoX7{ z*Ezmimy+z^_}%l%T4A?VsMHFM4sfG{!X>L>VwC}iT(aFG_(Sbq7N`W5>k^UeXu+iz zxnv_q@K0J_wt)QZxqrm_6t zLM~ZU693(Gi4Ft!-SZzJ<&tr#Sl`2=T(aaY_%DrRv0ZRP*AdzM6ugF<$R(?Sg74B9 zkY#wmt+oDIt^b79XF-0ruTY^CWV2K}ys8ysZC>#C+Fcgq1y9jfcEts^)+Hi~j)He* zdj06!ykkpx4)R7PU)7MZM)~t`sp3*?UunI#!O2$H zr5le9&U$q0_>OO#yfCwR&|9~UJ~kxlziY}LePh_zf0b1)ZqWL8)yBsEeKR!vsULIx zb9bj!HTS*x>wEbB8Iw$U@-U?V%e#2U*sO+Y0b4OoVGdx9VSe{6T3_1h{4#w*+mO)a z_~p75gM#%0MvG+mPeig7m;>jMWj_(gBAD_emMj5^Xm+;u#ro1hZ|C~b;x6y&2yUSi zw4SV?N$JVj8X{R;(;erhTKP_tn|pVyFKy)Ib}cLMp8T_WiZ^{jspFrg3f$ra8aHwM zb4`JzUb{fLo1|}l&!xn^ZtcDpw%@xq+s=*@9R6hli&6J?wbv^MNKH>G1@z+2Th zkm`MNXXz-f^H`PYEq%0kwhV=)PQP}noHO$RFPz;l@U3^@U8Uc}!d79}Nog0(y&#p;qW8jd&syd!;qWD4_rY-H^l&(7L)ay`nG<0zg)?K_2yQN^ z>>JJ$>$Tx~;;SiQ#s*sD9yg{YV~pd~e40MCaP~B;OTQ-Ef_Y zoNPTiV?;N}7P*>Um#YVLt`5%_@y|?o55Ld!2yOOEjDs=lP@H)c1UuLJI$n<_qDsqCW>N{-(mk-(<}h z=fr$LmR3mB4j0n{&^Gc1!Rc1=JHh$ow}8+=y|yc;;s zhkpvZ4fq;8*cPv-2DlM;o(~5KtO34BU$@1ZE|9ggZo_0clxuo3I0c&C08UA! zOMg!>rN02DAkrU#Z-RSpGM)ZE$qk%bdG^0bi@a6q^P;hT;mR-J7oJ`6AA^1RFC(9! zola4jg^2wWjJTUKZz_(b%ZBc9f?C8A;OYp?>9_}UgeP0Z-EY+qniFxebbS6%IO4Z%(-E3ea2xeKENc@FpuLW; zqHP?%pzonM{T9;^nsaZHb%f@`+c`QybJk5Js*(XYDsR?c?!VQ?v(jDD7{ZBXb<>Ivv3w z9e^xyNdV?B+MPNAa||t_^{o!^4Be;0k80dS>sNH}^Uoy86rom-B^8OFTI0XWEz-EL z#=A8>S4VhMH%nE$+K}s(W^( zc4rgKvcz4IAP5@>N|J0K2}Z;Kq6jD|-fK>?=L6?gzf-3|=Srv6UbBezw-t!^*-?R;BK~t!pj|FD#}?Qn zEb#oOK)Xcjq^P{KT^-gvD$uSAJ0&X6t_YLyLOCP(UBe7tiwd;M!On^bv%|Y?c%S(u)MTm*L}&Ku#f`mimyHPu0J9yFdY?W7j_j!1==NDjiLhWVlK~K!tP=E z-BJE_{Z`y?uD@NnCCd}?+|XF$o%|PW7e1UBaXX&4n*t@?u1$~=W75+YmtPtG>tyHr zMgDd9QM}09Gib^d8*}D@LIbrn;x|X!#(#SdzxN<6gBKLAKfhCRGPkTRYgX_UXQHnD z>CB7k%Sw))cu;Yl9b^^_!gyCi)p?r}RyUhnTtVTsx*Pn=Q>|F+Km3uhwgb-^d(pox zaYp}NJ+-8>9C~M6aMl&ZL94Fa*$4c-GSeR^>zH3B4-;2=&m(0+RQ#;VMo+qEeC^&1 zWnZYEj*WPPncQpN+E_NlYvi=7D66O}J@BjOd_=ql&p|bZEWdHJ1wWVF?zw-~uKT_0s%%n!|5$^DwFBej zx3p+(9Va9Vx`0WrDT8wJm?TFzYw&+?exh=B#s$PiMx=?wOtGeLceoC-p2J zn(p^F9o6O1IgP8{gFNNusJ`zUP(9;>x~J3C2b7y5*ijrslQ zjt7c-Co;b;-SdF*J!jBmz0~FB8uJJ0#_Wj9SJutrLub&X>awZEdX0&w&aCZK-uUp3 zoIy3}yhNdid9-dmA4K`wU03;uGbqtZP5eCL9$DTd`I%u85`~%aBg>l<4mwc1FHFq% z%$Y})H#6y@L;uPdwEKw%(x$YV>Q?ZZsI*0OOWW%Vn()K}CmHJ->RSI0SF+4> zDRr%T*VVb2Gu-f|{KF`tJZ8ItCaBB9%k%ejbuRO)$ojXs%In=h0etj*e_=>K^}ssGRSwt8@LAx`W=ud{E}Ueaf2z zbq?qjGAbjcW2RBx@+SFplH5wn;LK5d%S-Fkv0r9tbM*f*S79F1F~5z7X;P!iDv7C+ zWO)?RG4mcVb??gC-9bMn@=EqAZ{J`vf5<&S=~%;cSGeT|5S#RI#@X^b9?{t`k9aW8Gy%>!eP=01@?SS%0zWt<_FHYY<<=KVd7pGC} z_|wZ`7q0GY^M4Ap1m`}=a%RDH!WwTG}Clf z<4&0+bIVsIJ4TI!t(l4&D|;6_AGOjh=@2IUIWuBJ-{zUG`?}2vx}Ov3w({|o-+7sW zk)4`ny7zONHI1Dc>TZa#tDF?_Ei{HM3b)9pzAjYdN8iFtbvL9iTV&Ks3oWAjoo$)E zH#TdYY1f~^?}*}LC_#R2L~-m%kT2g$eyu`qe#$)aW{<-bJ;}}*yAO(Lm|6E$kKP5T znW5=@QD(g|?sn9*vqQDb=&MY@J0qHB9v|Q~Yq&FtD~$@tU%)q-aL>%eH}-6hss2|{ zX+5*55Z%bgrhI{u=`qmlRXB1^sL^>L&R&o?@5Y|p`PWT4acA9Xa}_p(lBE04(Bab5QC%$3*o`m^@=IlU&inRU$)MT^Ef5}3$mj*0cGefZh( zg%z>6#hHr_i5F)ke>5~zd;U-5KfCU`wPSxNuji*zgBYB9H)53MHV=a0#zN4;1;SJ)t`i?)9aCVM+RpJ#a*NNrTtQJqi z>M>MJ1IN7vPt}A97>E{jEsLbnPR@tedVaN=`i1~|<}n!PrV5a;R2!s9bw_%s!AL)K z1~Q(Ksi&;e3}hm86Ec~)8>v$pjC>uLo%$4+lllpn0;z%LZ+26S2so*>NH=u^G960| z161lPq?ft~>8GY380i({nRpKJhc{?mD++#q~1;g$<${^o%$J>ok}tGnUiXPOr^RZb5lc+ zd8xCI`Ke2dydGJQl0WWJka`4Jn0f_S&xySUsD8D#lD+zXWj?nEc7|Q^RCkkICI# zFy(Ag*B`~qs#|>%UA3aI5?o|Ty6`~oN(tV0xs*R$f{W!m6)idtyi<5o0E z+b3F2Vk6!C&#=CLjdb@v-pckn3#HN#ja=OWvOc|VYjcn zDa=s*JE7`)zG02Ja+c)Ux&6$|(MY~$A4q&Zce2DwC*NF>{;ph;#>+UDDI(mXO;Jr8 zxx(%-=At(KPg_zPh^)sYE^^#~u3Y4Latpafx$-zP9h$i+R?)cUB@+G`F@jR$cWDSt z;#IfVzqtrL37d5%P(YyMFJhY#Kz7xcH)0&!aiV{pFYPD^w51_1P6C$`m`tE_U6f%d zdC0G19WmDsWAb3P&Pe}pgzkxMiL4DU`HIK1$yXMantYcNF!@dl?K9`8irnP>{4!IN zt&@ztn6#G>Fll8}(xhz@eU0ykutb)Q?$3jnwn#r(zPtR~liiYHbf!+-I9n#)+X$F^ z_Yg4oejTREH1hsYrwY&3N&X(DNh{-vCanx)nzS-hB0pJ(XmBhsVV#=KF{g`qT;?`A ziTCIlc!{jvlLgZyzY};?0-d-$UXwry8!4frg23kzXplaXrGbQ6EXGKtCFPeJHIUq; zB_30EIjmApVqcnpesGei7} zhD}T+E+bGTlW_!0ChG}I&P>4~9i}ifUCs?4zb7Je? ziHzQxY)>n~*5rF10h90N1V&|+C+lACr;`+qDPWV$QUa1q zX>rsinIB=vTg248=yGy@DVc9;awRV>lT}tpl-2nJB&$|6a&l8GY;toGcgo=&lHXGi zy1$k@Wb>NJMKyVSNx)RA%OT{IS*q(rxk@*hCJoSvnTd3~F%zRAYf`Ym*-7>zeHFvpO~<6&E>V$hcevuZpjO%&21qKgbVlQ?6!|` z9!J2`Zao2$^OfBB^7}Hvl5dHrlk;TBxszMc_OLoRe@M>Zg&K<5)Oj5Nle72*nw&2* zZ7sTv5tei(Cd}C}C$UDdzQ!$)MVaOVWJ;qv{vaTElyu?EBH6dvDJSuZ{kNQx_eW#Y z@vAu>pYxRGG>gw9_+NtArziiYtxi>Z=BK3z&rR+;&jZ(thfUlrU*rEFJOZ*bRrbqz zjQ_3q8Z6}hHvZ@F%Advm=lSpR+Ps+mYx$qW3+hb%zr+6y+=7$%|1AF-QN|+v|HS{Z zDgF)qw+pY5cBDhXtC&5b_SLI6JS|;jp{Hjd_(^j%8+?(vETJCx#9zbzb18c`Wj;b# z7n8+X{2z+#6a1H-Y0`o(a^>Y``W4`H(W5QBG%06t^rCqe!oPaX>!Rf+Jwplpk;uGp zXZ++$lu6g|yHk3+Yu#1*CaRaA7ht;wUy2{iZ=hkJ!%3GVO{hx+dbBpP17!mf6;{*Ro9M zc|AS|XIH*%Sg|EG)y=GJR8i*MT)VSTMW0xsK_mT~GyKA*SRHw;=f>6c>qdG>#uG-GAo2D|1b=iql)nGYJ~1pRVg@Ea$mfjoto?zsvmItfHdu2WR;|)6dTIDyewC z-p5X&@ShR4*0w9HxXdlw?wtG2oK|HXYF@FU-bPnaobMOzFXDvS+gendt(rGnT{kDz zd8#oZsZ>){G{~HWCo?67RGijAu`IOCX%f40L%aMscEj2(bvyd47d~JPE2sM4Bo~IK z_POg;%en0!r?qLSK;2HF(rK|=I^eZq+f-C~=^`#T7e1aFq3r)J-1O+cl@YIraB_qb zBJ3VvWrVQ^<)ttA?2K?ngx5uQS%{f```ruDGE^bPB@t#t_;+|`$G1heHNv$K%4X-1 z?#c)+j<8XLg%QdCkl1|?;pPY*53zmx&PZ`fgy%>p%uOUsJVKZXx$d{2Z= zM)*jCXGC~XguNo{65+pjA4!GIkMM*DWfV^IO(F~;oESdO@v}lq$HgmO4BJKcCoenU zKSlU_gtFnR=% zc8ailg!LlKj_?D%8j|j<2xS9H;SWbREyAlKlqI|pf0`ig!g%{g(K2&eX<38hTfCVi z{^iWVf#nSjy*8qkMkrfHNc2k)CU~jQ;)qYIeYIo7M=?7aV7C3>K&2w=aKoy zO!I!IH!co&t4Q55Gi6Gj-UT}kQjf_zBi7!{p;<-rX`Y@b=#RR~ZU4;Vk<3}B8;yz7 zeWJW~-es@0S$hs?6SBvi!^&>zmY9M^$#toVDJsUt2xB!?33R?~@MAe;m{`*?`I%b$s8U z14j?&dt%?wCk#Jk;PJ=y?>nUStS^E~%#=heQxY5gIT2CIM8x@i=H-ojQi=Tu);*uI zGNoDTF?#aEE5=RwckL(nr~b>WEnZX6*JFpug>4!%%v}3o$5f_jT}9jUjk(^XoTOcD zt6cwD0`2(hyX|usFEpzt3@wKy{Ds8!kk|@nzTbfx=R%>C(7^B5g4UcomWM-&{oc_3 z2t5K?>W_yukf*;Jw5`9T0yjE&t#(ht%l-G^Ers`h9^wB~$wn!oPO}e>+R)S-JcGX1bDUUzfb&S5(svJHO zzSZ?VhCd?lv*6oY|6BOW!so$vxc-lDbMy-{*FId)%zdGD*~1mz`RSXhVtOgB^9(4? z_DjG`U{#f;cSQItI0Y^)t5d;7;54utoDTK}XMiVzGr>vVEN}`q8_a-nz%}4p@LBMB z@Vx?-9nK^09g6v&U&!tuU}JCrSOHdp$ASyNGr=3dtHDL!0`MkKCZZODPk=XrZ-5!_ zD{u+;7q}EG5UX0V7`JOg$Hmw@Tx2`nXW zK6nc#eYsmf8AV?PJ`UanZU>ix|BY}TShbc@O3Q8vco;Yp><3N*PY0)imx43E8^D?1 z3UC%EeXQAQy|k7lfK{73%??w}6tEsxwbRpw2nV|fuk!UU;owAYDtH|@4O}Gg z)xKUOSmW!*z$xI1;8gHEa2mK9oDTj5&ZtTII)@(lOce4*x@Liu;B0UJI0rl#oC{6> zuLrLM=YcnX^T9j78^HD80&pu>4Za611b+Z;1Qq@BMPLBl1hxhj;~AxU61W*00%pLo z!6o3O;8Ji7cnf$3cq_OLTn4@X-Uhx4E(gB`ZwLPbYrp~qwC(_9SnN*l2=Fd&7`Or) z1E%jLa4CU%z}euvU=6quTo0}Sp9Aj$-vRFjzXVrXt6+yu@5p8;0onk2G|vx z2@VElf#bp1;52X!xCopJt^uzHp91HBuY>c!kHM;)zWzPJdJJPtfghG8FqJ?ra2hxa zoDQA|&H(=n&IA{Nv%ven+2G?~)m{n!r+}Y%qIhdEg`9eDFE&2JmyRsw%GkiZHi16@a$@tE%I=t8nmWa4L8T zI1L;RP6w|AXMhXAnbq;MzL&r(6dS>+nz(*VuqvTH1*d?27=1z)(omRElVI+VfbYdW zr45nw6(ak8h!at&UO55@)jc&Dl&_s)>e@-2Z5e-^)T0|kb0e!cB00H5n%212Q(uQg zTHkAD3y?W_3Nob^ zBXjjCWS-uP%-8=h@*5LblKyku7yUWGg)q*;-$OJVeiI&GEO< z%OGv_I^>~x3$mSl7ujC_7kQZe8`(kEV}Q7$Zi6h-J&@)4IAn!B8(FC@M|RTlk)8Ej z$S!(=kuM^<>Yd2L^)JXHbS^`~-E?bYcipoM&wmen0;H!t57|qnkw@x9$lm&1gfLguQ@t-D1Wlc(Ivn(M|T0<;O}+^)JAYIf zc-zq{fOj0d0eIKZuK+t7y%TuP(LVz3J37I*@dsoLeCX(|?KuAbIC?1bBNhn&A3OSL zV5g&R1U_-}eZZ%V-VA)^==XuosVMLTw;MyqU-F0Kfv+6h9oXgQT=I5guA*GFeUBk z&fvW7#&`Vmf^W_%a6yyh7c8SE(EDT1>A8UXSVLfo)U`cq6920p5)1SOs@r zOg8|wbG*RYG2IV%C#FvZ-i_(=fE_V?9q?XE-w3=P(<^`vV){{l)n)N?Ga8&(@~Vut zl~4yn@=GE;zq^({6qMG9N_i_bM7p{?GNyYWl|ByX>9df0rjT(x6Pcx#A`^NwGO3?N zYW)T>TYrwsapDW4n41vU(il$rok&@d$OWQj;Jv}oGv70AQ%7Gwwg8M31jAHcEY%E5=Vb>b(9!t^QgWT{tp406PI zqT~#qj9-N)DC{c7JA+`>T!gwA(N1)Y)484m^4;QGzcT@oT|>Iu&Vez9M$m*4A0c^e zC1q5m^hliedr0*K;;gRZ7t5_Dc!lR?;{IepW;kG3T=KgTYO=o#n(*gBdx+bqdpkVG zUkrbpkFr|>&G&DGz9;k^XtDnw)QoAYgdX88B7TMIA6=I-%5kFQlZapK`ezK}{7XyBy&46> z9^IHMpL_&|w&3jT`gueR}<;f#uG zu>3{%c7|~zLzCbQ6bzH>umezNpFYYevQhl%`ok?Rgzw`N!NZ3FUKR5vTHXvkJ?38xZzo55 zD13Izui)-7m$VXI9rI^f`)=?hF@J&Oz2VDZY5x|h7>J@K=HFrYVEBrdf4}8t!&k=q z^_HIpUmf#bwEQCY+L*u1^2_1tWBv!0UkBe1^LJT31HLgG^MALBg(x<~{G6ksBfb;9 zCFa++d?kEq%s<5P2jH*7{KGAO6uvFy_qTjAe0$74$?})rJ7WG>@F8->w!_mqWByF5 z_yEPOn7_y-*a_bo^H*8^IsC_%|Cr@_;J?QF=Pmyqd|%9e%ktmhRm%U;a{l^2%jwGh z&hkW3rCZKc{vRmJO_+zlJmu?SqBGC{UakB>%bUS(Qhp=LTf>(qztZx<;LDWX+wux{ zjq;DRyc>Ll@=vt9PcqFlRsN|~F%W~*%0JigVeqxeztZxP;p>$@%ktCU8OZfw>;!*e><&UuZN%&sn=Te|FTHG!0UzIT3x^ZZ@#cP0KX%_a5xAK_A=wA%y463>qhj_!dY;mbTf-}2t@8qY6+nMo94~s@NJ&I0d78HY4{G$-(vYp_)gE?1~)hPeE2TU|H^Rr z{#K*dgC+32oPi-xg4^LgdVX8DIRp2=fA#zUmam8J^Zes1e;i)r`)63b89v?j z$6CG>KHK-l3r}+m+}BXd^ZjeA!JF`E-@n1~ci=bq{%w}O4`1T@t1bT&zRdU6TmBWi z#`j;e{J-!OzW)*2oT2aFD}Db5c=}j62kxIJ*809PG&(|+%_Z^u0?TvZ8-2f_<@xYU zzTevNLiiTnFSk5^Z}t5imKVWa@%{dm7sI#t{@|f}|II0FgkrnzpKJ}9z<2om7|ToH zANv0J@NrV%w(y<4f2rl=@Lj%towYw4zLzs-`6&30zQ4lqbK$@G{-Z;={-y$xQS9^m zjn-f>yejTLXL${Ldffk>ubVlAkHKfh{kMrfPb#ztULE)Q4~yDXufUhY{rj-LtS#|x z!E56F3B;T7-iPmu`=_U^;wu!N$Nh6H*Et+f+`q>10{EV|Uu}6~_};jmf&bZx0uF)y z8u#zA@n!I;EPt)#-Qd%+{Ee3PgU`qKp)d~M~xVecZ!_!L={s$<`5nh3!CgJa~d@g)N!vDqch47UL-=imD z8W8uu*Cza8xH)5M;TsZu8@MT81AJ4$KOAm)2bNoQ>ZN-<9w$wftB3o`gRWZq5k%HniMJS7|%FjVzQ-(3$R7 z{V$-UIMmP&Nn|B916f}DSClzFq#;#F&Q#QrPhKQF>1@lcW56`k)UxT)ukHwwJ3cv6 z`qlfWYE^p}UEtzW_rBrdmz*md>47jAI7(JaN4kK%iJYb6V(CaXg~>TdCvTRXbVsQ4 zn37ARC*2<==OcL=-KW%W8+RwYr_@**cQ13gsqigFZm z(ro`!cY)I|Hty<;q+MSJ6xXuPt#?w zjX6CQ1zi@~*3#qQbXl6x_L?du zPrzxfpTR>R&!gS~r+xl!%U^}pDF159-*v#}dqLmKc!+{X`%ikSO;+DrQSsL^yjnqB++z=gb^|;+zqw4&WQ8bB>p%Ql3$% zQ_iXKg6c(_)Ha8qzI>LXNfw_VI!hME76`a;DJ1@VTiQSIpT)rC>`x>{-f{0e zxA+L8=e_Idfdm|VhA8!gNCupd$|+tBcwV)e)(;Y5N&xBVw~#Tt8>#d@q^DE#fM_@woq*ON8Kt8FXqIk+}iI?a!jmc ztNq^}VQo{*NGIQ|!0&Z5%$U z=Qu%2QkiFyX;kr4$nJzFz$WM00s;5Hdjg9=M5>b!$4b=saZhlh+a+#Z>GF)Y=^l(! zI{QCr?m#FFBJ50qW-v70x6ijb1X}Fd2izSBE%i^vSSsuegSOiLc6X15wlyCE)7Ux% zTJC?`KQbN(J;MJk4L2p73Gd_oYUvp0G5$VFCqjoi@rJb8RBOc9azG8@o?yOPFMgnk z0hZ2zD%OXF3*=6h7GDvR8|D&{dG0AJ?MM@H^lg%zu0=Afg;aVslC?1XmPe3O1G^Ezck<5110?c;44lvuf2Vk~SQ-5YV%K&COhXPD?P6U|joB_PX^v<0i zvz;#j+bHLEs@c%ZYuu5?s#JswE}8-T1Hy^RfP1_(FR`ofF zdl(?~y!Z$rvrk7{$XHiiN#b%KD^~n;`WQJAQ{ws+0yL|TuKpjAX)~nK`dB#;MM&Q% zo+`v`tn^|6d~=YlehnGZKO>cH%CL&3dm?$CAX#sK%+kw|3B3`SbmAXMMa>%)C_i%L7DU# zMvnHZN;`M|xlGH6iykDo%NP?nyC=^6qyBTk5qYhLp zH2=VQ%O|0MS?6fF$j?KI{jVs(tQ&k8TI#3euqKyttRKMJ`um7BbT_oz9Hm*7_#^ZP zKRGNq2Y*8Q_|2d-k~WbiPs{!_kOk1;eotae+J?|N%P&iyW1RSC66S{EFL^SRW3B>| zMn;`WrlIzFc-~@!6R$>QNn<2idJaEO)BKY7-6%P;YmCK1$bz<%%e)~$dyzYm#i#IS zhDxYhNfC1XzdFcNE|3%d^B`^0ivJ@6C*A^O-BSK>ZE31BJWg)dJf&L_n5-+2jvjza z=#!B7Iz0|3)>j})^&Dim6Tgg1v#v&{S%^NvIh;pgo?yAVGaUofnd*fE9 zcVO1+4rt=QO5MAm`Tp@_Vs7G9&|-h&aE||X3UMEVmzou`9@Dh$dT3iG{x?xsGRPNC zqRo@g%@78n~8Daw<5D@5Z)JLTI$Zu^W}pmZyI+F_n71F zMK8CGI~VHt>iCFW4^8+1bWfT)$(;w!@teUtnV6jq%|Gx-x&d0u86YYy)6}XFq7}yO z%sfwUt2-{w??k|y*>f>>{4SP`hkE|umQH{s{BD*`Ov7{h9+sa6rD&*3^ST#9i_N#C zpfmJx=oP;7LFMc1UXf=ycndihO(ps&IQ_R}q&CA3*TCt&-C_AOIQ=)<{c&f&)0ywz6L9p!l9ir< zjOhhP<-`Y2zq;2_`t0WOk~ZHLCw|UB2IfIBpB^z~+wOzn<6x?#r>+gO?`g|A7_$vzP|mZ+dv_UJC${}Tz z=4mz%Cv~bPc)l`%#j6&+)>^=#$y0a_6S_!rmtCCg}(Jab|X1w_o99kMw zN(G!IHAW#fu9I2wWkn*Lk)*w%638nop_i1qORXw-Z|35lkZ3U z!+6x3KvtZ@O_Mf1Q+;LQHkqAYRg4)Wr(DW8*W}Ey+=#yvak*(Eeh0Ub{N%tKytkEAxz_l|>arAU_#*;(hB#vkFyi>&zAZt!Oe)noE*i zT2P!=`N=~kDtYvy`%~V7qLPj_k&!asJ`-ih?zV$k(qRsM0FuY6{%#+lBi_XFDg=+nxc{~LS!{I%1fTaNF`k> zIacX%p^{ElI;x1kwaxAi}X%%et`$wyTxBVSvJl<#e1-0JwutDkf( zPRd$YN%T(U_irj%rOnufP)d*LD9fzGLY{-DLejDlm3%rQEBWq;N|tOzR>4rox@~}%9c?qDE*FY3whD3;Y=un;*qU0w%b}3ZmoTEZz*heyu;UKJJKq$&U zK8X?|k1H|qwTxn#cgy_Ms!wrR`n6&q9~~^D%NtotMJokK8$UX6(xVXLU%1{FOJ^f8 zmZ2gsmQkmuR+C$VD(P26Dj7NxE9th9o?o^j9}m%u?vg3!QGR%)|K5r-l6}U8e?sS$ zj9cS1jt?My!`RxF_EwDYj-S)jB#2Lm@GTw)GKjw%;f4rh7i!U86yf*?3qk4=-`6?B zFFR*$N#-@nY|=UTwJUzA$lLEcd2w}RvDdA0x5~`hzf_!7_}e0>vE%fKzMj7=%Dj}y zIWklAYsK*7Q=Dn}{X4TRH>Y>u_Yn=1yk$pb$_hr;&s62+B{ENEa+~kB7$^tN@1GW3 znl*3Q^~5k{0Tq_tWv7PNb15yA&<*mrIibo*KU48blimeZ9cAtKnJJ=vKC-Tk%;T9i zM1AtykhhA|H)opviu$U9)Q@K_7WMK-ePKK_|48y~lbJjKf6knR|IBGfX37=yn`d4+ zzhg;36tyHOWb)0KMmP5C-7r#D$Zf?hkqL3$(nVKYUM7G0MQ)w#OEd59tJsdSBYPw_ zsXg=3?(gURzq=?d&8aLZ{Qt{mvMjgui?YfGROZ!8ruW zxEhDdQr969>JDU5ZA5DIKC-QH3Rr%rTBm__YA~|Bnv6V5RUO_54LN?nZ1RWp%!Y8f(LJ%lV!Takt8J!C!g zH8N29ko8rryvbWZDg7H8ksIv`+y3S;yjHC}bCP8nUaJggjhbi#$RtKz36#$nI(# zvWJopkDf|e&b`dC)FYMbSkha`c7K~3RUdeUF+^aqqmBTcb<{Dy7DuJUXYM&iT>w1q zsOx|i93_r(TOD;f@S>w+$Gw*v^$hT`quvBwanu*UtB(2wc+F9H#WJ9$N`P&SDhJ+h z)Bxa3N1X(`<*0GMc1K+UyzQuYz&nn*Ee*cwsCB>&M{Ne)bJV-Q`;OWLe8Bw%eCVh| zL%xQNY6yJfsP@3ej_MEWbku0z6Gu%3K6O+T@R_5kfzKUvC-8-%9s<6k1mG(U0@&rK zuN!jz?RM1f(61TFYb1^fsxh#KB7kok)gAcOQGm!J=sqq9@Ta3j0e?Aa z67VSnvDIlz=;SAdzw zqk-#PbqX-gRpKI-p6{xwz#Ck3J+Q!4cL3F{+5jwc)r-K5uKEC2_6t{Mfbbk%vlDh>j;&sEjH{jRD3m{?s0 ztZ~&=fN9nDfCpW*8(>oPZ(tpBp$$qL=OI^h03LRg_{6Q}D1b*?B_45)y6R$})>Tu1 z4X#=QFbR7X@VKki15Clb0Bm&CyTFsK`U-f;RpJ=;w5#$b30wg#2G@i5YO5_EzS`fNQ;H<57fH-TbZ$X^3l}A?u zUv1S0#8+FDgZOHzqduDowldDzsuzf}wmJ^PSzAp6@zqu{L438NY7>aBwt5G|S6l4? z@zqw+g~nG~6@&O{s|s)mI2fD?j+1yW4dSbHh;_%g0AA|U6tKUF; zwN<*H4X1{{p&-uMsxOGMwi*rMtgWsE@zqv0gZOHz^&r05>NOBwZS@6+ueSOd#8+Dt z(L)ey1LCW##4!$EZFLHWueQ1X#8+F*0`b*Os~Q40YpcgVoVC^KAkNzAOAu#mC7mLC zwN)`#waHWM!71R8!gqRVgmCa2;Z?r6QaE@MI2Bw4P6MBk_-bEm7p(Es=in54v6Z;V zO-13+b({tU;B>GRI0HN!oCyvFXMtyc_-d<*Kzy~;6cAr+wFtylTdf4~)mD#z_-dIV>CZRODqT!=5WYDNHOZPgLPSzGl6an@GD!NuTs5MOO|If$>ex&g#j zTh)O0YAf0A4PR~b3W%?^`VhodTm28jS6jvC8se+1>Vx=dD;X`Q0egb!I|vLRa3^>+ zco%pjxB|Q$yc?_m?*YZn?q2X^5MOQeF^I3W+6&^Vtz5d(_-d;H5MOQ83dC1i9S-8F ztpb#7z*$?}3*xM;Hh?&5s~16hwbh3pzS`;=5MON-qZ^B_ zwrT+4tF1bK_-d;oL438)mC#se6`gr;3jZwN1p#@2t1EsGx#3( zEGWKsIBP4fjGF{30`b*W?LmCCRZkFKZ8ZeMS6iJ0&IB(5XMs0@_-d;MKzy~;Qy{+D zY6pm~w%QHitF3-d6Tn$p>2eC(>8sWe9tlo?p8`$=CxFwyE5YgD9B>A>9GnSm1ZRP7 zgZOHzFF<^?)$bs_+A6n#d_b8z!dF{$0;hxNV+hP3FcQRBTU`X=tgU8%IBTmVAimn_ zeh^=6wGqTuTWtgJ)mA$}e6`hH5MOPTS4qKDaV3*8g55xTwbfAJ)o~@hd-!Ure}VXF zr`1#fIBTmLL7cVKN)TslwGqTwTfGV5tF68Q@zqwp305Uks*_}#P=|n3H3`*AIKJ93 zanQq)P)z{S>S`p-O{A;D=Pst!B9+>V^wjn=;Hxi@X)ilf70yN8y0%(?>56~=^!4;b2cLOxb zp8;r=e+1Ah_YXJo?0#d=Q~9nslmLI72ub@({wP;WjYTST36ifJlE06OjH}hiEGPD~ zM8wO~TcD$MBVF|uGN$SuAqgvyo*Ihu)w#&Hnu^R)Hz5;h9Wtq2L2C64GFugOlTKYl zH=e(g;~xw2+;?4dG66?jh-8@@GN!7LoYdO^&!t_umVl$SAYHW`8B<>)mHHFusod^T z0kfh>btaspjzK2WDafRnfYj=0BX2}ztGm-cj@p2v8qWcqOAGTe0*?9x>8h+AQb<#z zQsqcb^+WpVL}Xk|KxV0HkO?&(nN+tTwR!-Vt)4^XsP~a6^*u6I`8}oU+7OwqIv~^e zsy|SmWN}l0x&T?IrX%Y)zN~KY+|As#1RS**NvjzdQ*R=b`U2^xACSKCdr5T~BC}Kn zBo72Ksg6f#buKbnU4`Tpo&|XBH?CUJi}x>`FSx6oMbgAWDz!%})SpPc8b?aTha$5a zzZ>9rQ{w6<0**Qb>8eRc8j(n)rXxL7jr1LVnGmnBQV$Yv)JsTL?Lx*>es8fpyf@{0 z>SPF?H)LF8kXdR2GNIlBxg+ir=DR-@1M2ui-pY{Y z^G$W)ndW<%)Jsp13=gZ5p~>MeQvmsy96CffjEHjR;D$Mrl8yXmh?*buTil22D)(on zPFm!ZQA1SsnM$0v$ZK1d`{dcLZ)V%MmCe$tByG?CGi}d<(pqkklBAc*_lLthew`fN zk*@T^6YlVh!ups4aguj&Li9>R_QQy$C@Ik+N8pM?o779-eZ^^XZDpeCO+#UaG6S9Z z$g*}!K&N(F#*`R;ufsB#5=;FJGi7&R`ADh>hbhOL=qR4ja?pmAv0NY}r^K*wS#j0{ z_DL~!aiT(&ob`js0VOJBf%hP5+6jNz)G(M_%|vJBl2emyTo+mHeJw1XyCBh(zg>`8 z0Ba(QKVC61btkN?F#bNpWGDAEYU+F08_6k2OtM!FK>5k;sQ@ljOPUQpiY+r6faJ;1 z<$r^SIR)K_N@OKvHz55NB0EX`qfqLS+_4hp=1D%rTsa5AzLV^LWu7E7kx3_cB#OfH zAmpQ@^l(NNyu$M`@!&Z^ooVQM#u+(S(l4x^XPl9PRnR3qvBnoUkf&i8jd-ty^FXN0H zd_ORX6=&p;K|f+or3L93U*upgRF2-;N$iB+OiPU~a&UpA#uqtQJHQyH9nUx;2eP!w zBsR{-!Axis&283K$~yL-+D3=Y$br4>yi(%lxxwu=KJ-Nn9<)64MGoxE=Y_t=fxR`; zMp5GikJtpEGji}uUB1!{Ub8%OMh@%^>xI6^!Mip-^hFLnfy)9FFZ4wYzK6?R2VUrl z9PA72IsVWYIY=H$6I%>IXXKz6+?1;6)^ePY@oflB zf}5K*^hFNNvGJiVaxlsA&=)zl#PZM=IhdEWiqIK3SZaCbj2y_)NK?Vk898{s@;+2x zr3xOlJoH5lHd!9}A_s3-9{M5&pI9FHA_wUgj^cC%{12UxgLmN*gon<^!6)#ag@?|_ z!4vRL>%p&}0$Ww^9T^U*4-b8jgZPlB!l5s6kb=*a_|O+Q5RZLxK%p;kI_S>(*(gG1 zhR(>rg>X}W&>1+u`OO2z`-*RhEao$iaiw zKJ-Nn#PQXn7hmM`N-ucKDne)E;8~kN=!_h^W_jq09K3Js$B@AWFZjyx&=)!Q+49gA zIY>8_k2)_Hfx>*pLTBXQ49i1jGncjAw zeUXFjEDwE=gWoJK#Z&h~Kk$xYNzh?bIP^shawDGhLTBWl0Sa?XLTBWljpd;;a?s22 z&>1;6&hpR~IgkaqCVl9O9Gq!+4HcLk4|?+$nll*sA_o@|e{3h-|K27Hs^h_HC``*M zbVd$-dUs)ddA_w1F9{M5&S;M0Wg}%r^W6MKdMh-?<9{M5&li`yXEb&5L1;+!1B-+Id}|i+Kizua_}PDT$0ci zIrzx(&=)z_4Nsd_Vd#t;{9p}2XXHSSh%yMBk%LBX(?BuK$XP)vcp04*FZ4wY%4~e- ziyZWXe=lbs^hFLP!_7Sq`XUE6jNtkk#dutEs}jL#YY;jk2U{!;osokN;pQ$DXXGV` zU>DpRVd#q-{APLRiyU~zNAaOAa!>#_?T648IcR-6*WaA7&>1=CjDaa2bVd#az)f!< zbVd%2gFoDXBf=ROU*upk+*Ba+MGofkF&icEp)YdqFB>2FA_r3~4}Fn?MQIe~3`EYz z$!@%u^^u6|V-c^>wTUgr5f~oppLz$BH+RhJ;PoZ!PhrEPle!m{N6#f@cJLBk7^zsy z?BJEK>}=_lmRdH69hFK`-JvCt(Cpwf5Y|PQ*}>~%*l=M}rCWLt>@;C!2d`^jlZ4$s zN7PAvPfhgCh}=)8N!(4wh^sHPb&KS=b{ZrDKsQ7b|AL8|Y$ZDy)|bf8B(zI*M^XPM zqZR2S2P3tdj_fvcS&;=`T0gKczc&zJ8^xN~=K>(SJ$ z0v_(%9oz{w#fLk02kDh4J`;m*=kDNP_;13)ox6jl;SDR{;m+N`tMJak!=1Z>58;D^ zhdXx%pTf=2FT}flr|TrAa~ie0wUReTNZwb;B@z;=Wcp4CN^>u{+883THzLY8u7Kx^)0}3ZuiPSPSlI$s=zKBBE^71(;v}ta!pqm_trjc7D7uHFRL)OWlD3jyswB6EXuM>T_LQG&j=r!1 zVj@~^W?n7prN&DnxX#jvxLo7}RhAkjkzg)#uhiB! zi3CfbGKuJ=jh9HU9Da=O&`ZQT>DAm6Ug#wf+)KRqE`(kp!D`DxFA+PM!(EG)$R^h* z+(%gpF!BcFH544<4a_s8wvtkelZYuaT`oNI63LV6W=6*nb%xFe@7H^E^q!NHw{7-0 zWbim8YT!z>o*WWuo-jIMZ((4irJ|SSf zU&hh&z(qBVra_!0nYqTs(bOD{RLwJvrh!YWxmw22G|-kBN7Dmm$T*q?4TzNwY1%WM zra`5(HlC(IKd33mIGP57Egi$i+A+a#mWGa|$laoI@t@rm@Cgnte0kPo<=8a%aTNz8P{i%6$MAVd3dGI689dz~`-{yEgBdo?Y?~1*fDWb` zpN^Y-Gxm=?#Z&B=z<8s5oa5oX8NnLt<$}b+eKUebEN_AR5;u6#X5R+RaN?Vmn|(9f zV7KMv#50^|M^e-AaNmsm&HZ?|Z$|K!P0*hNzq)}wDmt2Q-;AKK>qiFuO$IvOLpWX z9`2hF?4bY|X^DsXW(51-=8}Z_W(0+N`3!%R^ffAIWI3~wGE}q#`-M{Bo$$3PXd_=r z>3_t-eKYot#KgmWGXmKf(A-YUda-XtFa&CAytfW_<&%cEOrQnVqdNr3g&z5 zRZv1e(s;%jJZNue2gQ!UUeLvI;|?D5gg!_%Ug!>wFy%A()ut-{MPV!WuI8kQ-Y=eO;-auY%^5O$Y%w2FZJnSBs`3HM1 zNUB>8GL`e~B-b6Jed9m|+|tpdc;_IagD=(3#Ops0g;`zr%aJ2E0guGe4JAx=guEm%JciOs9NyA%oa-&3*mf2RxK>8Y}kPdXDgD7>i2!C6UU!a#6{v zI8sS#R;;9f+Y012j{l-6(P6f1VIw@>f;PD!Hw``qWb&%OI3 zzjxl5IWu$m%$)iCelh&x$H@jp@!@B3sSy&QFmwuRVO*!fZ0gem5I?RdVidbUrZ6s} zVU+p+!aRB$$SA(0Ov5-n;eq481yLNjn4`ocR?Mu14nXcdUslY`ml$&MHD+?FE+$gg z^)y8v(Vz?9XLYkTeEYCWzK%>TDylF_O+Ene<0>OYsZTj7Ms-;O*33>Uwq!Tf)Xe@q zQ~1(B3daH_g=00A!{M800H5N_%*Q)2^8s%%ua`QrniD||{J3z2+p7;MYX9{(hy`%` zg#tJBue9bV5?;MkhEA|+rz83-U<5-MQ z?247*w&jm6P{#4CW(wnDk2Ujwh?@CGG-YziftlC%;q=miZsF_;YO9m?pQN=DqhaHW zva-mslfri|>De~2b8zvK71*|*7R z>uVEqg$h2Q2pp`A#MGkH!sQ0JKwjxWp&md{Mp^z*hFzYnKh*|S~vd4t=w=$`X* z+zC8`_`N^BrK%+rDO;VdQ|`jmz~88gG>+Se2bxx-T)#m_O*4i35RM<;0UGr~q1D)N zqfRq><4g>fp3-`->|~-(H=9ffcOtszniq6#b7?uxZ)(w;!Ht=AMNj@C$5$o3u@V)fBn@k@43v#OG`S7a8^mKw$*-&KfF1yM_5JI2DIvfL7PeRxY*u5;-J*o!aTn)gfl(<>iqkGA-Ys9;67 zy)1W2@K^>B4e7mKUbwMwSG3{cJ!9#Y8^8LtVc|&y^ZuI-_CU@GZ2lCUQBK|3F$@1% z_}MN5ordT3F5sq*u3q)TQ=i?1(>t#*)6n;27B#Q29HHS0ccu4fJTp3c!DkECHGYn= zbJ_GOb9Uyv{z>E4yXLJ$o(;ppU(0hP!GMDFs~z(eG`{|6<2PTxwqHP;23~T0OZUcijI+_1Oo%z2W`;cctD38}EMd|E~`2yhCy? zWLxUsjyWaQx6HjHtlL@HI$U;9u1#c7UO4`uT)S}FMY&@4!caaltaVthAXnjD7VhqR zP!+?OaLR&QDsov~IBQX)b+~;&F5xZ+moLn94DVf#%a%TgdxF2HgGHiS40$VDHL`C- z%gkn*|68aC*Pc+HsQKSl(z51lhV0ZeU%V(+6plW1QgPTEx_=RxJ~bS_rM4nWUz|&n z?rd4W=Z1)IRfpP&woTMLS)$IkD`JI)bPpT1x2{P3Wj2X~yLbLi8Zntis?_l0PsbI- zu1UJDKOZDxnqk9MZQ}=kVM7(hgzgvqwz`zn`(M48LsCF;OT+p+8lW zbFi{LzdwBYF2Qv_{_gzZaLkx~h2hUvwo66w-Eh-~Lpy|Pf2fUzBbVkz4##!TuF|b5 zmTr+dCI6s&s7~j*Bv|hZ4RKEumd}zqc31JA1_eXBI`B?RW}tJ}u%>@8-La1<)^%gD zs@RPd<_k6i?~xSRG^&_nFFfS-C~-#>cPW6nwZIn8w?-Gm=~j$90}$C=ZJDpP>`~$} zV{KDuXkQ(hJ1LIF@|xy%3e`6VXLpXv@bGI}rSL>pc6lxvagyQ8-}b2pU%NclE|N)x zKVF_&4!^eH6}fMOq+i>Yi}17s?f_oB`oSC9mAL^l1HF875uq9AwF5#k(CY_;W}r6_ z2+ct6B&Guw0O`ebIq(7??UF$;(0d(7FRq^f>BaR=Af32o(M6>bS06|xu0w!y;yMWk z#X#@)GIZbR#dSU+=*5-m+v&yiQ6RmzQlFb%Tz3KK#WjMrExow52GWabPawUxjt0_; z>r5cMxLydP6W5!7*8-me(upgTx9P<7YapGtCa7agFRoP>jS*{s&A4s33bAhQgJT>rZ34~&x*9~|9 za0u{1;6xx41HBnQCmMhYY3zh*E@l9;`$^Iih+Um z1_Jcr`Z17RTz?1Bi)((R(hT(40-+h`)d80Q>DzQUa1!ul;0eH6fOCOR4D_x9-UhrA zxB^I3ZYTzNTYyju^mYNE80h^9TuFbo9=iYZ;@TPr%|NdkkX~Ge0O`eb0+3!@X8`HN z^?V?`xLyaO7uWlNPz>}Mf%M|~8jwz0KL$cE(EABUC$9NbN-@x@2GWUZZ{Xw5vGn#q zfL>fD1L?(eCXilS{|%%US1NTwGtj#QxEA;run|aKr|WZp8xUL4$i|cbhXa;&af%M|~9gtpJ zqwSPppjQl>vqN~@4ekRxAAA~cE^rob9&j#jKJaoN6a$ruQz!;{8`|OizX*YCNPuRb z_caijfgY8&p&96v0ihY_)c~Ox=nViuGte6kgkqpK9SFrhZ#EE$fy!Yi6a$sZQaW*^ z(^5Kd-2kK$*LQ$);!4-0bmICe{hiW_Yk3D$JSXn;G&mFp%|P!!ayVl>jvRP4kX~Fb z2GWb`bwGM?T?M2U*9|}@26|h8bmICg5Q>3bq$A5uc%?un26{cnmnFQt14ckIF#iYy zVtE6+Q-Fat2h#DbfONeTkP&Y+WYpUT8S}P6;$T6>J+~947Q8HE!s`T?^!h=1-dM_!IS?dgMtn?Zo+j^TJtGtgPt3B#-xAO|R;8p8YLw4|T zkR83zkU=MJI-s*R8?uXc8Dv-Q7D(TF1ac4WdB_^?eaJn%-H_cp(G@REkG2z#B-68vXBOnKO zhe8hYWxa}I1~WSt0x2Cd6n)>;d%8xfH$%J1pv>hPXXY0^)&!IuYLl6=hfc;@VpwxJ!!$j zquw<T?)^umjK{-^;Q5puRa_A;d*r=0G?O30^oV|3jjQ?{ucnx zt7%MzJQ+`k4n_=ym~4Co>$KY!1L-A0C--#4FJ!pj{x9#^+f#q|xDX>=J3s)}t2CDf*Q@-}2+ylC0Pwte766`C zF9X2y>IwinuRaQZ=hYVg@VvSm0MDyG0N{Bw*$Y=7_7?!pt2qEXuZ{%3^Xj1hcwRjP z0MD!Q0r0%~AHdci;@ts+1*!Z;fU!hBZv!y!-iCxLUP#yb9WvsjFpnDbsQeuB>L7(T z3=+?1$UN^@$b@$eWYSv<>3Pc`^Sy^43!H)t09f5lds`52ybmB@S38H}AMqT_%toDp z6d)Fd5%Ts3z!@>5>y3kqc*jCUy}6Jv?;1$qJqQ{1HbUlkpF$=)w>PVA4#kYqn@cKZey!{~yy(1vg-WiY?Z;_JAAf@-9k}p6Oc{?GC zVfh~r%Y$2m-w}ZK?15|!m7n437&7V&g^YRQAkptv*R^dkk9Odc3^{NN4;2dPs8wH861*Gs!g@gxU$ULXuKTL?js{Abo z;1Le#de1|`-}4)QsJ9a`=6wYzoC4+cAr7wexJ4md?-$63mu^6kimkP&Yj6TPXBF>e;6@a91lc$Y(_oP7Ec zz>wBk1;k4b(slBF0Ek%LFAV{j9ZR(<1MLh^D25_;>iu*Pa3CU5SfGXdqnWZSq6(_w z6A-LKu&^qx6CmMcdI8eHb(zU^uMPbo%H z%7cjY@k!J86;BU{*E@I3E=B;uNm*r^nk3qMAZWd!XL`73nrVI^ zrjry6m|Sr%1b>meDz~DXV?o=d{{>mqCxV^{0~aE2DFaXEVF1m*M+n@8K=qN>cf8ou zk8d~r()n)Xwa73FX>HRqY=>&v0ML(cA`2@!m!Q)P8njJt5~Zp)@(yC)%dF#YIz=~X z8grjhc}THoR6;e%i<`E5S!CKGk%4Wg>Wu)~s~R;qip}vm*dQDA95zvnN~lH!PCM@W zER*93gONFvMQDgR5E)hHYqri?P=nh4jkeCOTGlzwlyG5-I?qD}RcA&Y2vz0vDg(~{ zQ?}0YDxd#*owP=(j`_ieS9JymsQtVZfu{Yu*OaiTMV$HO_>U}R8f z<&YF6NO5m0p&<9cqY^9fVL(*{}R z^T^qIl0yh5mRhBN#H z%2t(R@L*`FWQ*D0trnF$i=3*GmUpo&`A=KJtjb$akh(ndeht-CIaQZnd$nH&+ox7g z)3VO5O%c0W)LD-VX2-()R^?jnQ#K4I{7UskblncLgYqHY0ax-d-XRJzDBby3SG4sg zJY%;vrM5WXDVh@LFkIT#A_s zZhaR!>rTheeIQpH+*6Ggi96|0fRmYt;?j4zraavbxl_N$*<(PG#JQJeFxyJ~Qm4D8 z^gTK}kKwyj*vTv=Ir#5=nuA+(3JzBJg7P9&!VLAo#v6q$l_Klek0@2UvYxx*q@IWD z@&?2$NRLMfyAo%|;$hr>0HLS5Ay(M|@%aknv5YG_ApU5f!o2gKh2`Ynr6 zc0l|m_A#l-4v61*U(6-o;Kh|45Wfc~TN%W6pdmB;p@zqmArODOrOFV9zi4l>Ps$F6 zf22)Sc0l~&K!^22(b^7(PXhw#2xvPX{ygw(9n!TO5dTt}4m%)0hbvwG1{Dms6pB-Zwr0szC)s|~JAU^f~Reo&; z#2;eQ-w9wEd+5Wj=v+75_M0|KhS z+75_6*m7+L#NQWOU4+^Wh<`BC13q1}ArPMi1yljr5Qu-A<=PO4Ki6_?2gF}&xwZr1 z)4+h*UfTijZ?#<80rBs&T-yQh9|2dRhqyKb;?ux@DnJ_o@!zss8v^l{j)c1j^h)E} z4v4=Td^@?e1LEHWej;8vacu|0zX1ForfWMO{>Lb91Jkt~5dV+;F?v!JYC|A?bSx%S znL!%@@mr$+m97ne_%S?U71wq^{50~f#0xgA?SS~L!Bx7p1LAkGT-yQh=`Bp9YdawR zps_grDnc6q@jIi!EAhUGYeOLZ2yCFZG6WLy4+Zar_h?+(0r5`;R}Ij1K>WGj4km5l z+75_+8MrE6+X3;Hfvamk+X3-c1~x()0`c#+8)!oy{==5j5Xc=d|8dK;9T0!L-Co-P z@n5xE+X3;n+WguMh`-BnZ3n~;ezpXvt)gEd)AU-V`D6Z{*_)9IT&!>X2zeAU-V;DE<%{ z@JGz2MFPdO9T1R-}*LFaBcf3j0c0l}6%at9FK=@s4gf;}?_pw|X0`d2@ z`~zhN#NXd?Z3o0Z(sFGF#GehWj*zwk;$I4WDvzkP1L9w6^V1GU@TlWIM(NYLSJ;s0hMv>^~* z9Dw&O74T1P4BmFWSLTv}ce-&KyytEwm+fry~H;kY&g;?DwC*MK$z z;xD#b+X3Tsw2h^i{Z3o1k2Cf>Q?SS~h@iO~0 z$RUF^1md4&GiXB~{yfXIArSvcaCJnC9gq~YH3Y3l$G1Q{fpJi5aWP?BY*_jkARpW@ z+5t(w4z_@dc0khagV9QKY!YU0;dmE4ea zK+;qgT1!SdAZZRVx02BgNcvE)PsnHoBu#agpUIRRkkmN{3Vv(N3tmBOaW{1-$R2F2 zTf-aM*)w$$K->z^?IUDyQ}-db2h(&8oh`M2v71#arIUISQt)uZIX^W9^~P#bUoaQj zW=c=}!3geT;MSD&!1@3dT*LZn80(}e5SeNR(d`Tr;imRPP}D(m=kmE-@s5T5eF$)i zxUvJ{KV+%01L8jgs>Yql4v7B@s2W%*J0SkEpsXk!C_^Cr>)>7;xH1Id{|-8wR2c&C zW4QVECslSp{MMi}XdPE}K>W_2N02HzAbxL9PI$+a9T2|(RE>_69T0yE=rPQ!?11>k z1mLP6$`FWu2Iy@}R)#?Qvq4vqDnlUtC7@4`Dmx(l&7fOJwH*+DJ$NaeDRFHF#DBwX zt?hvL?}B$=y0!!2Ux`s|;PD2~hCuuSa7T>eQ&t-S@ecx5)oVi_{#5W&n6B-B_{V`? zNUrUG_-BCgi(*{c0rBU9H9Ssu0?R(@-?9 zn2;#ym;N5eV^u^8sOg_AQx;HDqqrp>aH$ClF<F6Tl_!qJGg z2@1P2kcpQUHb3K)g^=d!OIrv@@#;(6hb`5G>(;EVW}$2U9#OLy9Crbvcpe#2v|uhi zhUl^z;x1NNSy)WW6hD}Loadi&I>q!Jn|{hNK-EK3 z84&RYf^Ou-%7BQ!1XMi%jR)CAB>jx?vsjCaq`XM#WyGXjgXppiVi+Rh7pA)tH^z@n z`v)MPE_Y=u#Gkmg?f)xtA^w3jS(yv*r&y}Yh4=?ss?3G>M}aQyg$k6p5dSpLuSk`( z5TB+1XmUNSt%a!PL0&Pqwie=_k952}@cz^0Li`JLgcH~1LYn7%jJc35_n@?6ktsep z-JLisJ|eAZeS_5~b0MnMout}YNR%fjb_`BW0&9hF)NQyaK8UqQh&d@flv8QklPyp6 z9^f_C)g5LdQAn$MTA4dOq8RCW54Z4lM= zfGvqD;~@T1NLD9D83*xc{6JA<9HjYpDB~dh7Nn}TtFjH^e`7N%+aUg5psFTi8^lkb zf2im*Oty{m3oJc0j`!aS*#m7KA%pyj0Be^Uf>dAnJ1Q zdAVrgAgP;BhM?{IF7zMR4m*&njMNf$xyh$g(|8#qX&WTXYmZk!lD0w8J~DB}H%Z$d zX*;)Z?yTfZ4iHp<=Qrg|FPz;swQUf;9%Gp2$hB<{pN62-4rtpT>H>agFFb#e+Bk?m+h)+lL7Fc3q&5!HG@Fvt z#zC59W0Kl7NYiXgQriY;nvF?n+aUfUD4(-0No^a%e-`|A+V)6l;~@Tfj3C#>LHv&_ z*TzBoBfx9%07&jo#zB0VYgT)tZG$w;&Lp*M5I=?2tx9*4Z4kc{d~a^AZG-q7z}5Uy zQX2>HYwQNvIEdc|oKKUaHV&eD%;d&6NQ!r3^h!LE>~oE|O*qAHYBSD2>P?9FPKX20 z;^cM3gs#b}(&(cF4qfRbX&j{K{!Y?3NYnkDq;ZgR)4tOm7Vq=*)gVzm>0`&>`g5wC)Q?Ch{tSnEPVvn2ujVuq zpUk5|i_+YS;`3mJBTf6!ip}RS>IlYKi!bCc+7s+IEUqd>m%luH92j@Bco7E<{{mwp zikEQU@NY1lyW*?x{H;x20LqtsF;2r?>HpXbao~rf?*da5-hd}}`ca#9GoIV&7i`+? zu(Y10;b&FF-F(h%vuXG6Irj~iYUsUuu>E1v?t^WO*=f&wT`0ak(%~E@^%r&_?qTM* z4%v!l6cc6^PfF7i_EJO_AI!sIACARSxqJ4hT09MQ`_uM&30c?l{@9LBfotTN&MEzR10rR_#ovh3Ky9q7xcJAI_ibETaY@a?mMtF}?5EeT@9d;*L=q0v z3ILu1klh|bVQ%V?=1tT&+X}A7w(4=y;&ATJIdT7+3xLPlN&WPX0!lF>^N#|YR2xLL zyfXfIs`?{c41wq}24eq-H~T*F>7n4ve@29h~Nqr>wX%k9(9Am*#P`vf|=T zLn-PAD=RMk4A7@hNnBZRQNvrVN{nkOE~)hh3l7p#uQ0@MSLP->nA0b_?v>bIH!!R1 zPHypK`egNG+I*Ovt@1%#VVXdG{4UGWh{awjQBve3l^ct_Mq&C*eX@Ru57^cLDA%k- zUZRb})(?a78+znrp2jk@4D8j_oO@_jgY2i9(l0a^*;LsDXZipnRega?4@bah*QPu? zd2_BbPz$c6AzdxFx&VRZ1y@7x`8x8tStap0lGMtU>Q-jy!j%Z9)e?^((6n0OMpNx_ zgItnvGBV6UTie>z5^X?~CN5tZU)qLlZCkFI^NVfHHf*Pw)9y?(+UB#`wUPJQmS2we zYA)LPXJUGq+qV2)NT{krU8>>bSVX7RT%3u3YWVf7QGZj*o78mUXcT^I`2onPT3)V~ zD>)Tx$tgTA+uCMXdmU?Eh6vV}RW%N^H8$EBf44POx6u{aMMMEh+TJ#*wmZgdN6)6J zrH>(?TDr|_rF%~@=#|Kz8fq60-GjDKIWzKgKA5R*Xy`T3d{xmZ-bF<+jjgK z@zp$tDv|Zqn$+}cw{5KHgxYPJQgL|oTCi2NnRnY}cCR$eoPa=6Gcl4^zxK9#G&6|| zs+nf_S)kiuD>>C>{kPk;x~VBPbsw8L&8>RVHexnPRL5$aX@t|>=Ch?$6|{xgAa+?@ zE44T&=^3uRt%9mgO_QtYkckDUQ*4W{y39PpH`unDyGUL4hnO~C>}mXMh-dM%@(w8`boCBMZvpZ_ z>P=vG#`ZkOVri~9vT2Dl*C#195k^zfUroYGTTvR3PXCBRHrhLooxbFOChKI?G5)m_ z4cHHlzv7WdsP^`6u669+Y6WXiD_9~u*%k#>kUqKv%fwaJ==aqd-pq}5l??%DA6#3^ zV`*F1IH{y8T=L9-gly8rH+MjvaOvga|Bq>{2AHgq4IX6h2(@Xee@5>%$pzv0&zF`d zy>_{uIYHwL9-`B3dOP=I@DLs#oAAE_|3h$PO~n6E_~#<(C{Eg+c!XXu7;lXsJcYO- z@QMsdz;JYRU5@yE4Y%yYzGoIn2f_F_a574gS~ zY2Ho%(Y83)FQp{!38b z0{lORf2!*iqrQdsr{SG7sPh;U^%4H*TWc}?b0~{z#|u#3L8flCvJBWUY4|rAQaON8oKiKFjv1n(P7BZ3ma7anjl?!^ zehE1^!(@x=qcd`D##Bn(4Hn0h6()-PTSjqphKXX=no;a$o3d^OWfXf#rX9aDFbeG| z!M|xP?`>w=Z+O^ad#)m&8WuTczD?nrq-7Kb7N#T)tGEjsZXt>TE>kTBAgXA3N;K%$__lvoCKlQ_+o?IYVhO^Rpu}Ki@4-x%mmsT!0=zVY?M%zSMjiZ3pcnaWG7lyg|7QcmPBGbebEnNvK)j(*-AyLZ_3*-_;I z)p58Lb#w5?A7^*D6=!|173Y0T6@!qODO8(53KeHe3TL>P!ig88aPr%v@B=0*;CzZX z${YO`U7mmLrRu-P}VXiz&3AVV2qUfGeq6bcikB(*H(eKYoRKpGBVt2s2SVXjm-gVv-(J4M7 zmKJ-&qw^z=i-NUZIL}j$c6cl{G0OTr*J{L~?G*@=O2krp0 zLKMAZ8gU2`lhLcr(~Y>tUDC1<+>Pk+^QOeRC%%iNi$xbf56h)#FAkN+*{ zz`rpb4nO))*mGB|eX!U~O!*(Fdqls%!75h=OT?p>xj3NBM?)RY8gOP&O^rtv{cp0A zM|Yb&S?zXbrJ3lK^G+9i;-`!D@ueaY-zbvd>$`Gy1v}lu0MR+>4ZsolpsU@;-DF#-9e)26MaQEr~j>aTQtMf$AU!H=)2e}5nT}sSgBKRsfuj$bEFN3 z%I+e&FB=y9`Md$bJt2~IT-W&{uI{1A9l#_W>30A6JVsbi_U3hR<`WgFEzn z9A9Q|hQY%P4m4PA(DcFL)E>jV8mFOY;xh*CF?gH7c?Qom*kG`)#vtCoM6@v&H~43R zF8F zo^0?KgGB~CgV}1meSyIZRhmC(@EC(ri2*8VFcEzX{@hk?@QuM&3_fe{KL#%|c$~o_ z3|1Q~HyAPa8+wr3F&c6q?f`O3AAiO~JYn$P24@*O$l!Q`MFu^CC!l-Ea*i_C-e7Bk zzqZloyA9rF@b)$^{?83BFcIe(Jk%hK@G!l|pcgLOG^)!UXP}GB=#vb7fUXSry9P@Q z7Pbl>`8v0M5pM+k&|It`!dzH#b?G;`Pux}=>U#97g(*$@tIO?GpX<}NzGv8YP@nQx z&%JurhV{F1hZGI@L>1u7!Cl1PkWa$jI`I|zst>x&He_x z`OW*a&xSi%6;y{CzspTY-abWdxH4=vwqdZh`9w`;mW3z%+__aaL{5!`a|+Xm@aeFy zo$PyoPJSSw@v(5$8{-F8esPhe>u@jfcl>1zMJ%$ne$#d*>_5UC*m}uUop3*%g#2Yb&^U5;_(JiB9?9K~Q;nE$->*LF z=iEyr)->ypsrpf+dyJbf+-W#)>aelHM+}=fYWUP~qo#}*G4XFv6UL1gF?{6s)w{2j zh0*ZapYuex`JsxE=-xeZ;q-?@$?7HZyA3D|#~qztvU+W7^soQ#mK9g;9#;P%Ot-BW zl1hvlIpTm(!y3k{-oCa=|7aQ7y7vJM`;C}7ykTO))CoE6%eKY7dafqe2fld^&Kqs-4D?q1+xt87zI$JEU^p0YB z6cNFVcI%ahc+?fQf~(zF1-{l5w4SPpdjNc+D;~4?9|zy%if3&8M(}T4L35<4aj$^? z;)+i#e;@o0SNv-E7vOUufyl!hrYiUj5ev{K23HOE8T^ijXl3~y;P*#FdvH}jG>ZmD zL=E_K?k{>X9o9s|wcv}%)8K0(VlRYM{xb0O5wXAJ72q2OM8rfJQHh9`BH|Fs+kUc*ptmb?*7$yXV(;bLWPMxwxJN;L0nYV~T?H7~vGKX2;usO`=~y zEWp1TDNGS($J{V3LWJJTAXe$#iGSg(pjxYR@5F_m_hJ&jRl0YgD;|0~NtaRgPK??I zgC>lIU8Q;_CV~d*v*1eiP8K@5C!MRq5V|H$c~SLB(44 zPHeZyTK7(T4c@yQ(zWiL_{FAcAKW5=5v*#9QoRe@<`b-S@0!mq`7*cp{A%61=JQK_ zhb!o-TotHw??f5+DQtk&y%Tg^uF|y+Zb9$mSM$hG^)A3I)E5!YFhc9ziQ#qwt$QcN zgTKRct$QbC*mSLXCr-6o>)wfZHow-r6PMd`?Sos;E4gYARPO?KV-qXw23q${JZ8Dp zy%QTP*SdG&4a>Feo%q6Xt$PQHnWn*7_fB}0Yt=hZ2Cf>=DnV_8h~T;u6`^(SL_Ij~ z30LdhiTSv?)H&6)wfnEZ4es;#teJ>Ybn$a<#*O*1Z!{WmOSc_fG7# zT00+r^g($c)3xrM*x#0~RqynR zDBuHL>)weTgG~#y?wz<|Z^O0jouFIub2=lx*1Z$cY=K($P8@H!*1Z$6E!VntV!q{C z^-lCheZhw;Q0v}_i;+Qbt$QbK2LG5BmDarzbXlz$pmpy=8}OQ5NY}b|q6@gXMzrpo z=nJl{0j+x{sIjWJR=pFW_QTYv+Cb~xiT!N>TK7&&uw3ij3A(^m1!&znG1GFbdnc&k zs>;*4cjA1@weFo*V!2km6F2XN^S?LuK zYu!6>t>s$xPTXg?_Q5S0E!V1dBG_ajwCIb_%PoiMUC`mnxOmt`Xx%%p2K*r2_geQ( zY_#cG_fEWFxz@cCJ1y6`cj5=jweB5kzd|z!y<1nS-iadc&h_BO7vTMWb)IO02-RY( zdneAt7))`kdndZsbgg?Qx`7|h0<`X(SYx@?y%Wz`u66IkW^mPK)T(!4C-`P`wB0|b zjkq>X{A44v?wxQCFi%3QdnfY2)dpJkPPDgN>)wf;;Hrb7b??LgaMcIYx_4q9o32&w z#6)l|Fn0s3dnXnkLR|w|_fD*^T)r`z zxmLXsRJUY$;A-7F;UhwIAhhnC7znNonby4%W587fTK7&I3a$nVTK7&I1D;odJ<_^& z;!JSW0Iho`KEccE-aU}6Rqw-Y|c^cN7z z@ZyXvE+&kN4$IyFv&h?3{QU2g+3sQbFB%3-o?W%Q>IZUH4+qCpmMm(zcQ6PMJVJ@Qo4 zn$KprW|Mi0*o?ex!Ho#&(pa?_PTqn@?+%EP8ECXywiGfJdoCsfQZrW zz%I9Ap`c+g)pDh0C;D5e^z6h4P&LL>dUk?KZ`2@C>Dh^WyPET^)a=9*&^b2a4OIO3zNvl;u05O3zLV0{xLx>Dh^?plT$n^z6iO zpm|-8s`TudXM~iRoto7d!BnMYCl(HR zB-eU&;$6GB*0U4a!Ea@{*0U3z;0ycHe5GhLJMqKb&{V1e*J^g+cW_nx?82#-q;Q41 z50;knLf|g@HF6sz=gnz zfb;;c0QeAaA@Bv@BH#|-#lWBVh5Ql(3d%8O0BjGu47e9?F>rt265tHrQsCLZ%Yjz| zuK?Z+yb`z$copz%;D3O02@nEft++!m*#>wGum|v3U<2?v;30Gwa6JOE5pe_XD&UR4 z2Y_>y#N4A3zxdI693UVzF-WB9qKzLV>yMb`3AQSjtL2Lzta|PK02 zD@cB?fpZ0UIS|ej(}D1=AWs9ryMnv`2w=L+%%;EljMJU?#&wgxT((vtsj;2_}5z)8ScfX4&j zTtS`-3~oc>wxgCAYTK*yMp`x2PmsPDHdASWHNWe%aYTzTX5D!?WjDrWC_H zUid}qeU~jnLM%Q&hV(5E$lDcfxH$nCGUkSlx_lGQz zM?#iLx)mss^B~LR)sU^^9gwZ%qmXUnM#u{JHe{vT1=&{q0$C*s(9N!v)sXFEFUal7Gx*60J5{Z39^fPm>y@l$`?R<`99vuZA2X?}i*K*Fvs!B-gDqI&v3aog;tNkm#;hYrr#(>;_ox$RU6Yjyw?X ztRqhVJm<)HfQ^o%agFC4xeD-tBR2wGbmTU`OOE`3E(2b6WIhJXuQ;+j;8jQN1=!@s z{Q;XDIUVqtBWG!t2YB6){{d`qRO-F79yyeJ`0dG6^9(YM_vc`!jTUGzI5b^fUg|+9^h+7egpW%krDI@gKr&K z1l;Y&j)3nR*&Fb^BS!;%a3uSZKRWVMz)z065b(1juL1nx$U6YP;4=;TSR0XN z0~#apD!{skybtgUN&~Eq$PWPH2;j|#JQ?s- zM9u@e9g!j6ort^(@NPst3D_EuuL59a)jJW-^PUO!p57oUpl zARXBg(v`y@Bl1AVsGJEIlV?HVO$!;9H$mpf2Otx217uRZ4e80xA@k*bAqyOD8>`_g za{6nCwtbPgDiL%6<|Wb&p7x^YJRp7QMj1e<#d13QRkh0Lx zJTlc5Iy{bBy|LKP41c#qu`k}Vzeg0z>Vo}uyfYA8#80c<9EL7{h%SYAoRwAZAyPp< z>^Hfx!6ABEs!VVQx>ZnfDar(g7!P^~Gb(EL9ohP_>>;s*Q5Q*M}#!=~@OC zvP*BTFAJ{1Rxx*cTHcC)BOhR4avfwuZi0+D9_Mkq^(dg_x!(?6unR9v^|>BybikwE zLVV2vj*rKPQ{4Kv_!$8;*QIQ7G@n3alS2eei#L=}4%K#ESFWj_tFp7<=R?^*kZZ17SgmJB&Dr|G<~#44G3V%0;?YE3a6Ad7a~5h1!!|2;y25+ zwGhEIuBrjrT1eAZla#g=()9H-rLBdiubX@grL?sWbyE&QXDt&2numM7U^R2|AD|Z7oF1LAp9(+FFSH zo*Y2u9H(GSR8Yl2WpI?a5J4jwo7n(uE<|jw>DpR|c-eAoEkwKn&gWc8TMKEL<4+lD zAs(L-8S1^qVi{L{jesMg0ZyzdOCTe%3uILGg^bC4A%#2~GA?I9<~ebmKehHQ;lx>y z3408C2jSd!heM=~h2WCt)OE##uBofCBl6JuigreVriWIFhDNeYhmD3t zvi8}XQiev#&O~{!R1bME(2>g_UHJ$kI&Y9s`8i}viXm)zTgbTV2bm|wKqlm|kV!co z(v!DA=F3-x;9XcCKLbfQUTd7KbSDT8r>^k85`vqlg^b1DLJt}NJa8B(XFx{enUGN@ z^B+JgzQmQcBjCsBtbxpvgCT>2+#isXQz1Qhs*(#K z^X2uB1@b<~l#_WD5R0#H$3NxitW!a=$nHuGhm>-%k|#kHNt%~0b}}~rV)1pZ zT#0}qABA+~Mo5g}A)|6PWK8}ADWt@$6qlVK^JHJhgd7E#l!rqG*k=HS@sI^h<`zIK z{*@~qLcozPL%MQ1WJG=s8I=iK=9meE#H=1+zQI zzC(1&-UC1M=yiSpI}(n^;aJNI>{&Qo*MG$J1$VqbkVWiocq9Lj&d;={4BL7~{v%0O z^KZnWJF7azarSHSI=+ofsvYlgq?DY$5BAo(L1%gjV0t*=l8#+l1sf5OufAgzs5E}M zaT3!;;&{Y7_HQ!}?~Ab8CMq`~;K&al;emM!51tPhmE#~|@?=QNazV!B{g8Q*=GGJP z8_1;N)nce;j)kg+dxdUxzG zsj_?`XpH zzm(;Z=GA}7@=5dOFjzjp!sH9kVOO8_mEjZ7dYt*JqYR&@9l8?(R96{35uF1hE3Pb` zs2x;ajg;jR(F>_+_m$-nF%t9@ZmcYyG=HK}mQTcVq^fO|;gjaCW7_bEcP}<TB zsG~S*=6D=I7pZ~H>j?2$0$`0QWC?9kyWSTFwmf|qjEnV0NVTxF#gQ#RO3R!)@{U*Y zkJx?9_IOe@6#&nC|H$=^vz8e&o|j@eDn}x4ikuAT$YUWB@+`=VTm)GzZ-A_p_d?df zr6tNNx)UP$FvQUZU~e9d#E7--HCSxi^l=l0Q?S6BZx!|FQ`t>v9*ruyDb3$WmE9CU z_1?{BgRAVOh;u=^Vux=93uGTiyn*Q1u;>nm)Fbraj=b2+XQes8#s~jB67NPfwc}iB!AKw!E!A#5H$eGz3an-z!VWrAe z{Vc=x=t%M)r!fD^m!2HF?K*Pp}M$_8pW`bVme^UUV>Q564?-pl^6GAhu{Xw z0(xM}uCx?$&E-zJH$gLpo3^(9QZYVV+q378Ih=*I|BkU!6WF;9!?~l=*(k?LAtGH4 z@gvf+hZGaKW)H|lk%!f1C$MRD*zStr6qL$<;)wX&fj*f6vt zOT!S^y=UOH;8(PO*0IBUhJU9gNbK+*+~GXLAIjPfEhfy#jLx12*8fz7dCTy~sIJOtVh+FfS)O|)({iqDKJCXCDU z&)({q^6>@2$u2}JA6%J%+@b$~sk#UA;^L*D%5UKQ@O{vWtsKghEJIGkMxZ6=UIa+> z1|m5<65?m1mUJj4bSa)OFjdOXfOt$#8Eo*KwcPUybcE*Kub%T+iSQJmwv4 zWbj6A=ybZ3;pgdIs7e*_yvs7GA7b=N`u=^I;TK(=b*By9DC&1bLcRah^JG0U#O?D0 zy)1{%2*mIrs<;_K-G}iAFQbY-!O!ILCNDzmii(5L+(2_SwBiwPbs;Aryjv^i9qSUN zCnDUZ%71}hMLsa4GF1M8h#MJEs5uAaYF|9{0IR%TV93uV=0~^>l?6#mL{AR4Jyu_p zQjY=|;VJL(a_Bu?-zM1F2WN0Hw)upC3oETU3Novy3r~lf#c5$C|0rm@+qV|1d;$n}^-ogg|Cdr0Weh zI!nR3ZbdcMBjC?Q;C2R%LKU1o_7@`XBm=z?n0H~|J_KH8;4=iaA+X0PTuG&9I)9T4 zW`6X)!lpa=;oaqDkn;;XE=7ir>NF-!-qgis495MZT+Uii)$q)s_3MtFBxs4XP`5tII35@)PjQJnrwS zo24?Dk1qh^+sJXd_85X3{FNhxKUDcGt2|BL#rUzuJ*K#=68cr_bIcNdW2No zTZj))EU}-<*KSWIZwg3%owyl^t;uy_A>iiDV2YXl= z7dkTy*QK5d-q6gQ&VS)>@wW*Z@>jVUIVLj4Q7)gjl>*gFAwSyP%&|@78HiAC*CTY1 zNok%;N2=3Rt*W1{s;{9vtjZo}xq924tlKmjTpe@GyYZfJkTEmY^`AlE>W=sX0dt=q zxwmdz`1w=yQr|I0pjMTRZQFcn8ovxB^M?zlHIHkVJyRDTx4MGL^qG1BTpjsxb>u6! zFi{=sR+@JyGH0r_-pA?S>eyH4gW&YARYlQGQ)Mq!`MTP`t$iC?s2X2a*KE6DbC6!= zg;hHlR6V_4-;9lGmx8J;%@)$S7eQ6G<}K1*`Yfw(U8^hycsw1NPsrjTzyZp<&6CyP zw5AlNN5-`5Bg*xjxGq zrEMub$W8>mgD;6aUJfr=Ti;s0Bu+q9^^*7<0rir23xTGWL~qlqQw(N~$f-9({pt_D z{_$+}ig*C|^(&(De3NUs*@?QLsCW(=a{n4U#5<@PU=^E)%OLF3SYI3*#hqMk&-`rU zS9`f!pZP{`b&oFB7o%5(H6<)hAC{iZe@JfCr+pX_uOq)r@oIH5-=a2j;xwMGx*ZwE zQ@wx{xB>AMcXeZZ|7bTpDael-%t-Vc57c}OCJFgtj~v&$(+bn|*M(IZ@QH^V25!z#UBSKTm?YA||1TH;3vt?mY9*`~-gsQ6^rv&c85?c@zFO4Z-Ji z{PV}&HS@OP6es+~IegADVzg-^Un}Ha>I@EhMdU9U&U=i!vH=1=US8z2L&MEC$LFq| z`)vKhNWiHo#&VXJO~H?|bc|Y6+Z0uYBu4R0EM*?NkMXEv6bG+nLyq?t#lc@0^XNHL z9tBRSVna@=;`ZSWlOf2AXBMYMOdN-UEP!J}QvkoLF^V7fOf?+iuuNXtD3hZfvwgM6 z%)1RK{BhvT%p8#;ieqwBuB$fj(N&Mu=N+)&=zkj~IW0v29O%i9PnDlX2 z^Fn=}fHOxdo>NLFgOf@oBR||SBfsLBD1QB7W_}ezW_}klDV+aeW=*l2KF<)5juEU&9&4d2N)*A3uXLieJXfmYm&X6qV2Pmg<{1qu4(;8*-MIQ8mrE zma&h6C@zvmF0L6jO;!`jeC2S)*%UC@>>xiABZ?o2O>TZ&X3?AmFq!$KnNj@sY?^sD zs$vwCr%f~Y1(XfoR3$d#$5B%xCujC%ZmMmV+#Ja;H%B8uS_4GqUXnk-J?A?U0%Q82*p zSTY+vxh$3l2i_Jd4#yRDiKWg#j!oV5Mw7$wm+ajpek-C9J;L8!tsfLg)Q0^w0q>{{ z&m!*CD|~!YeedM`z4RtWhVI1fJ;Ei2_KT(7Lz{Nwbo}Ar(x*n2hGRF^%Vegvj(aC; ze5tU@>Lr`&gGl6(Ae39`tKB^5VS>N`py* z9}d;&TMgb}aG6148Yo_8_|*+M{}O|p4YoD-#}J+VgT^2}*+h&rc$&Tl;>R1@fcJrm z2J-VMae_g9{38ERpa1{G-n&3YQEY9)-96KjnM#I9CL!0!g%C&r0TUpB07?cDNF>~^ z0wM?k;tdo85g8z$8AAX;ZB$THj-m$_5iY-B}8GeMdu zSQ*+SSTcP|C-U`rEWWE)=vz9G`vl7zyD8?yt61n`I+25luFfdEG&rLLv+*^ZnSy1x z(4}{&%A4ZgSXI%@uj!=lr2+?dqL^nOg}$bfIJlb`GEhu+8PYKPI2FD1u!m(i;A;fQ zvEz+5e$RbHJzxwwpPL-F4nZZA_uGprqSA`}-|}uSx5`z%%$RpR_cg=&LSj_2V#qG` zm!?f9_8%zr|5oguo;J0#q6Mkhqv9^5)W0gNfU_($X8eJpor$r96(dthD}2Qt7b(W8 zf8ftl-m=TK=}n3&bKgnC^iB;?>il?bNNjr*qXWK zSU)3v+IKg(=AK3&yso#q>eWZWL3`S&kJ=s86cXatR(2uP zHFqaCNSl(%DfW`efp)Hkf6Ls{uJSdAD)rX}h0y0ZO8ukL#+6hU+b-m$hs98SWtT0k zN~dOAx{#aXvLmE(rS%7@O7E=8Ms1TYkF~_rd8^U&Vs7h*N70&GLa~2XTJK{2oyMaV zb8ii~f{k3Mf0FUr#oQk4Hc-<1Ph4|W3EfbUDIUBEOaH+WH8(l|`!sBNWX<_c)XX!6 z{FxgcS~Cz_sBzbv6l2++xvkh0aFtzwisy_k|3q8<0_>lcwj8A9ta0(r+*C)P;fi!*oRR27%~X?4w;XN1R~U5XXYb% z?*ngpGk+>nzw_^@>4tEj>&$rM6l#2UDYst&{X0nLUFhG=tJeD-wN=gQM$YBjOm&7%Jy`oSJ?J2q0VM_f!n#n7A#Udux*mOBJE;svMGK7I4 z<6p*vBPPiRyOP`1F~o&>%lW$Iuu*y?cbxi~vF=K4SKFktc0K&N4fU_wE}>^jD*)%# zy5>Y0z5dD_p}t|P`78H&80A2X-kCPKXzq5`oadmix9p+H z(bDJVe(jpG&uH{{--fobOL49Rw;ENoxp7g8A|(sDvJZunZ!7li@}58FtsMA7US4sVnG{%dF~v1c!NEum z|Ltx&YzRYJWY15ff z|L=3Rm-u}@yXF*Qmrm6?w*?vkm7}}niW6YKd7Mg z!?H`^t~m!#H-a}ybL}#Df2h84scf?z;GKKAhyQ0+`DWg5r+L<;XqfE6io&!sZ*5gE zXuG*pQ#+LV4xT?)TroYZoqun24f4-o0h#61`>v>81!NYFs`amWuL{*s`)OHi?d08< zLQDPU3;kRCCxaT&RX&q)E&E^@ii%`=++xcO>yO0X_SlqWTC&tTWjorpZA2CL@Y*s!*mc#lvB8C!LMks zl2NzxCh3D~w{M^Ux$j8+DcAgih$$U)ptAd4#TEV2+GXy===7o8$}ZYnW%DQ-|K~L? z)1ae{Gw*eKPQIbZDm-D?@P+O8f%W3RRsS58**|Cn4; zT(-qh;{_80U?#nr3z(=DReCR*ePt90F#F0CuciO$Fg1FgDFZXvL)2k@gbZtq*H~rC zi?cx=*Bq;{)0S7*H1)SGu6sOBlH32u@G-8x4&t|G6Na2J#&yq5{J!)0PZ@b3c`en| z#%&>aqlyashbMV@sC!HOyZv8go-L`2db^^Py4CRqI;FLC`{ZBMs{D^#vrl7ypsGcm zaFrhh?&05Ch?y@6>sW|AFRAN5Yq7t7S}gTlJ7$i``~E7-+*;y4)T44zS}mo_m|OKe zR8eS+Qzj=D`p+~+S1VppJnC`YnkAzO=PJfs_PpV~e_XEJ-6MZ@5C1vWg3-7^D)etH zuHEYO|LQIK?m~~s&KF8B5(@oQWk=LvKl)4w_A&2V03)?zNu!B&7b0z_gas2|8>1l(N4eLuBc|NsYXSL&_wI5PV6y_gu z&F%bGZ7uI*kU4tp_DMbjq%;j&BG z^aP>mMyd*Pv*!Pjt95D`mrz&{7UFen=aaK{-%)RM4Nc`iQfL}0y57H~uzb6B-<3lD ziG4>3^Q$H|_U4~{s8mR&nJM0gGw-0 zGw;4*-s)4dMg>(uVg6}XWe4o?v9C$XE}{*`V9Y(KUd?F(OcyD> z%o>Ug@8QSR0wp;WiYhFDLT0a;Qc&zaTa49p)=>=pjj z4)^-^W>%M744K}LwX6`GmM%5Lm`)F7dRJO^<{QT4~bZ<nCkuGYj4iZB7bb{7OI!Ijlf*9lp0C> z3@Lmf$*hYQfj(c~oX_S~O}e}6LfrI$-s+R6GL*7xYd9nq`HvO4x_v{69EWt&2`U41 zG4pr`>SNz`=vc0OCkq{)dDX9r@(&fcx*jU@e{(7oVia%f<|6;T8d@>H)&P~H3T1ug z3jLo^MIH63dyD)#v1_QUMHA4j9{a~av`poshpjaqLu2Yw*e{+cu57am%d)g%$l9rg@-V$J(tqRfYLmU6sc#p?SRPQyS*& zx2U=iF(Ng_GP*@uBcfA>>x?sPn9bo%Mgei97=7aMrZ9P2^?lO%&*Ji$s`6N@VM1Pu z@c+~oe0wI^y7l$ml!LEBJM57STfwL}zO{?b0pHTKNB>)RR5p)V+HN8TpefRdj5^V+PB=$ZGi{eSl5-s)oQj`|-0Ub{7Hr8DSj zzUz;M-*m6K{{Fl3{s>WXjGX6-iWOB-&@J`79+$J!3pJB`>Yva@yD6Qk4PHyHhoGR}AzRpYBfy zF-}j(i%fryIxA=DXTdT?*Em5{rQgTG`-O4z<0kROnyGnqW7yQZ$R2cKN|&k(Or^6z zT%!Y$2F@1VEpZ?z_(=iPP^Xdzso}>d}XvtA!Q3fuC zr4h613^%;@4)7$M6g(k;5!btpC(7uvxueJE6qjv}kt5uq^j&O~fW;XTAH_%x`>Ls3 zHH@=mZ9I&=qD|MU7US$TE$;s+Hj-YBwrdd9C&m(QJo{cpySJ@a7WnKSrTv|-Y@<=NH{Kx! z{Wyb`r2yQ(V~v@r%U{0 z-y7Rw{-)O$j}^N;i9$eKA3=AM-J#rgevRfyTKVsJ*xmq-5wYE#kW?e^c|k2o|HW1& zYBtt5Yj=BEOP&kCJQB#>ZBYi)PxxO8Z^DHezCRkcgIbyEl(DK3&z)9y3LR@$vki0JH2yqaU>d&XM&%Foy(^lUJAo!O8x$;7aKEQ;H`^ zh`cW#y6<9Df(PxqQH`pD{p`^)Kdznx4|4t4ERh;Q&wiKUaR|6Z^v+6wH=2cUJSp(A zW=&oV*=u#Fc}+^Z&aBC+q0#eVW4pTEtj4ew-R;^|=->?Z$l39XF>!lGPx7xq=tV*K zdMC%Mob_d-qIW9>k@$0y@TaTZ7y=UFX4PZkuoNPwE)z+61Dq3anzdGa*^ zycrzW4lixfHAPU)S~8sFRF(l#)B}Dr5TsJiO_Wr0!BHK9VIkZ9I0dvB#M3 zTLZf{CeUNi9VDph+rt-IJBzBhInWIeSRud*Va7kC4mR|ATH zGu&y`x!cM6ZgVNFZ$KQXeV71~g9E1<6SlXCa;z27wj0lfJ3WrO1r%5NQ?~)rWAOGh$+{Jvud5=t9A;h%-3ai8yo68uOmf znm7tY*i1fx+EsJbHonPs+0`G- z8FfuToL!4B1sSimPq3>lb1n|{ANhEYT}|TQ$@4|#b;~2>1PL%N(Gr&Qub8X>CS&B& zd7d_MHjv|&m-lla{g2@C{v`mW2wvW6Q)15FC7Fy_G^Xnf@vS0u7a#GgE*rB$C&dr7 z8!^B1b{fl;YvIP#ko_(aTg{Q}Ya&MaNkRFT%%LZKxcUmp1Md}Jad2R^xD(D5lyi<2 zz#kmAT7Wl$1J5Q3bUrwgz8p>0N%KDQgTpu38yf-rFrK#yASWR{@^g%lO@~JLq(+?s z5|N-tfbPM8cMC8jIB<~w%Yp-??jHpQZWmy0aA2T7_P~uZvUdp($8WcNO~;^wTP}d6%n{l1U?hU7=hQSh`^5p$EU%Z|3XEuI)#cc=DzizYgEKAls%wM zMFfr)vg=et;CvDIR3Kvno)w_3Y7iJI@@*KXF9a$^gPftRHjiJU1jfd=Yw|=qM$U6sodU1{zyEC`*BrSn@Zma4q?sWo51cCi79u`euT2Sc`$;CgU>Moo zbaWdxhT0;H1>fMwNIx^QQy;5cn_-G^+%Hl*Xs!nJ;DaKzg2%R5Az+oDd?U6+fS-Z` zUl9Z6tyq57-b%!!<0U`3_$_T6Pf#Fzvz@NbjJ2I^^0Z$0e|JK*QRMi31LJ5dmZkdm zeG$L2fzhX<(^D+qRi!_Bjn-(JYm19OS=?Q*=I!!?sk!#%b+v@yaBVUK%47%4lkoph zD#vl5WsTYNSHt9*Ys!Fw)_w5wxDqFtnr2pp#J}eWb;l*LPe1fV<@3(|^x7+Bm6(?ld#o^o@Lv7~v zu!Dg!JKo_+$m{}Lp9bb398ODcAP|TOkw89S;m6o5#iNzH7(;DjOGw%%Qq(b_V3Mhe z(dT$S&wqzUJ!f?6a8m*{JCq{1bs!g0S)O$V5jft=+W0*rKHRXK)}oApORen2>bvuq zQPWh7U=8EURGv8F><10v$^HUe?F7ZcS?PT_5Y%s_@a~H`CurS6?t1P0aUX9}#@N1(FVs-YUGlOqZ(M@~QA9CKzik>2W@pDlfp&-z&U}>w=ya z-nDf>Qjh~Llbf>pOK)NzX!w5N{U#99doaVIYxKRAfrI#`By_WH9q*7-@ zQTTi-fh-I^5t3R^aWJ5KKZ_KS`M;Brl%c5^QiL#ob`m^5OQFx?$yNmoGwUl?*<13iK8P2C;R5QN`k6=rpF~1 z!`5kbHPJZQ>H+y)EIy#BSA|v8{EEreAq#_YJG9Uu8WI%)waiiNa z{9p1+5eaq#65>cAkWlEr?+WAyi4euLDBw&IAT`OTuFw*0{+C6Wbxj^9^tE{)@Y*~O zDD!A#94+eZX*1v&X&6}7N<*NO)(WE-FDbD5M9L`%T-o}#&A+S*DdfK@_WuqkCoUN1 zNxG)$hXgfGlCk#yHk|JSn2elOof1l9&pIT+`S!&rdX{WA9@t8BrqVzULnFQ}z`JH6 z7E5sl1LDv{k!GXUD5EEFFlf}* z1$ZM62+nmk3$!s1iqepwCc1V70>LVQqNed(q--IsjFfP-hJsTl7)W_lfo008 znoqWxEZQI;2{liXxg$_Z#@Rnzo}~Y}T{#a+6=M$T0nJRom=>=#a{iHX1Ru$hM4~4J z<$=otSesroVm>p} zhl@q*i{`|#CN4D9=oA~ibbZ0Qc}bcUIoO!k)D~-;nR1=eCtuaoZiNst+ZwI?7IC&Aq5FY^iqJa#t`XCorCj$eZm^zZUjuF0AUUB z05H#fY6ETz@oV5E6fcY+9tU1cSQta3k0srQ+K|Q&l>zwjEyW9Ch%Vso2@7M04S}f@ zH1#p#@QFc5>c{IZpBVHDH;Txf#5nv5g;7N2isVKS8GSwrMiE(uNc0C7MP!2!0HcU(GAN89vPGaUipW-i z!YCr!1PY^wY(FTBBC?Ydzud|!QHTdk1cgyV))o{-5m_Hl7)4~`LFa-#0t%yuY$+&= zBCQAD;D6h;x*PEZ&{WXC{Z6p_)#vtSgFMMk4$KyyH06p{IQ!2_d+Y#b};VHA-q2Zd2YwjLBl5!qf)7(-+y1ic6fqlnCf^AQ+DWSO8aipV;F!YCrU2^2;V z*}b4JipVNJVHA-)4+^7*Yy&76MP&Qnfl)+u5)?)e*%eS2MP%U^j4+DG8iT?pBFiH@ zQ)k@?gN^~64N8VG%Rm=W{6d|*M0B~%-Ugiox)pRb=;xqipvOVyfSw1P3!{k4fnx<2 zMP!MfFp9|Ng;7NIEGUd3vbCTvipaKr z!YCs9927a?l3Yls*qiJM6SKWcxs26pvA3ZsbZMo<_F-_b`gcQb1u8k>!BGC?e|&3ZsZ@7$}S)vO7VmKxczi zgDwHx3`(1d4?#D9!YCs9JQ3p`MiJQw1i&aFy8;TMh^zrtR2W5MbejpIh^#dzj3TmP zP#8sIqd{R5k^XCd2&&JhxE+laPAY&Swu;W+L}_2El7){g8!aQIjST!lRgS7mGA zYHTxH3)=_R%8tX;*+sZE7S7XtgH#jpU$2F z$Y87CX0mFy&Degp&DjaKS?n_07A(9ez7@;T;9ket!Odo+aC6uQxUJYExUCr(*lfd= z!_8&uxVsf@9y<)TEjtId9Sco|ZA6v|w>`^G$N2BSdINN1W8q%Uro+8~Eri>Nt$*T}$k(iD~kvPEI-LAK&s`5+%FY%It&h0OrjuCOOS zb|`EW$WDcA&OrG;QP@GiT?!)`n7b8b%OtZ#%mcDVVXZ*+Dy#_PGldN>$yktm3Y!M9 zUtyIX2Nd=^$mg(e4)O&|27nw?*kO<_6?PWnD~0LJ$TlMLfE-d->t-nbVTIiY_>ICw zf_$s6sUSxbwgBX)!d?dXPGKK_98=gAAm2k#kRKEl(wuA~vSg4S@y&dY6R-paQiEcH zoW$qzK~5>m0QpH_uY;UcSQW_63fl+b`$b{LLC+}cJjhvv*|W$tB8vz4O<^rT&MB-j z$nOdp2y$Lw<3avV*h3%}6gCg!B8Cmfp9)(8a!Fy;AeZs^ZjdVqI|cHW!u|xQ#VBck z5w5aEAhUcb%K?2^V_uMz8tVh{ipEBQysEK@Apg`@ImjxFJqPld#@+^5t+8DouWRgk zkTn{+1hQ6R?v_|;G?oeSrpCxv=35#Y1hP(JcZ0mGvAH1YHTD$92F=G_1ARwh)gT)+ zb^zpEjn#m>r!nO^vW>`MKsITtCCCRFD*~y~*exK{8hZd_v&I&Ke5kS4Kt9sg#~@oY zb`)eQR0H`~V`P?So5r$0wri{l$PSJ9hJfxwK|wx&ZXmm$8^~^r(f2Gr)fkz_+ym7> z_G;`T$Y&a>1=**us2sA5$TC3=XpFwI__@Z&O6C_D8w+w!V-JFSsj&qhUuo=lkgqjH z#xn7pE}JhI8_p1#Ds7qMYYE4343Sp7J-6TDV|pu^6{F#*+%${E+QV;QrEslmI9x1K zaBZv%ZU}o4uARLC*TLR{%h+zXq3kH!FvYfzvUvhd=yEtdtu<06+e1M@?4h(TZb9B; zdoGAwwQVBy4~cy@oSqc8AdE2Lk@0ajSd=B2Z5Xg;9sC^>7q3?VKD1*?0TH|czDj@obt9>@U zq3_(&79E06Ilf%)JPfpl(0uxGz3u*nnE3fkvuifI_)>d0NJu4|uzR6ff#bY$8pb~_ zfCI+N6z7AYIF2hQfIbt58pc7!%)<5gka06M-3}{YlpdCgIRmmBF2L9byThUCu?VAm zxq~50(OUtMJ$pweht~s=K8`RBy?`g^e%R4~u%dU7?BT#EdN&Cp05kONfLxnMz-+w_ zAQ#pGu$|&~1jnv2AcI>}$AIb{Z}=!fmLtG=v+%d>J5imJip# zO5tK+7!I=Kt$#eNv&r!7fBLD}*le3VguOt%+1uaH**owpUvc0C-0#8n*^>94wsMOs z)k~g-?-Ig3dG`H9RwdMmN+2_*EXke*qTB6xAXd9ACI;niK+U7_MlxH<)&l$u^5Lj1 zauwSRa6_p7h4zGxKFMm&c3bU!`wFhgeub;C&^#(`W4Km!JzQ+H;M&+kxFPIO zxOVm$TnF0*m-*OnkPH^qmKNU}xXsugxXsygxLIr|+!pLzxGfdiM={Wgx}T}7Vmm+q z)GDg$47_F;s99VTh%YH3(Do-B>&dq0fsPwh{USU$xb<<|j)qfoU)Oe`UGD<6>%AqM z2#C>2cU`s)a4g;6&<95yMXHr(wxhMG2l`YSE{#5L%X?gVE-WS(hU;WxmB)5MY^;7A zL0=3c5>C;t2j)Gj5HLfrt%*gAt%GB!hBFqiWEGVtw~9Iu9$s|QD(W=UJpywFZ$s@=Ud=hE0DBK7M?(6s8~*{cS)le;J@%{}_-T zayt%Y`|KvzfoTTjMaYvF9dFYbx~ak4D*W1fr|;h23)1;|CIdefVZjohHjXDhZDml z1bm|EyClPA;61ATrNrBT_pACzV9vi6_#g(8jQVx_G$V# z8Sp0pW?J-+8%2p#2inY{hf8b+F1P3&VBTk3!1FA6a~U54ywIYzmN*Icaf{wT;wHdL zEP6kQvw(d|E&2!6jYWT2;(@?# zS@e|>4+Y*};TC%7qs;0khs8%WIDfc7QEtV(fjS-xRTll-0^E=go(TMrMelJvHmj6i zD)2Uo{x$>_W52KZfIqS5yJQCCz~E<_!M;{@$YBB=H*H6Bd1p#BT%tWYO=H_`U8mPcqi~otG*EURZ{RXDnYqbKVK>o_zHNQRd@724G=>XLz`OlhQM5*4!}#S zdO9%g12+IKwdy$%cLH8+)!Rz`uD~m-dPj+S0I#&_UWtAE5wOatcb5W&0^10@~~ z{FYU}RVEk#yuqs9Bk?%k_pJI1iSGffLJ5IGaT}pd0N!TR_W|?ec?$3ztNtZ0ZB>1$ z4*>_Q`VS&NeHi$NRX+>NOIQhf!m8VQ3cL{bC#xPS@e<%Or~!$e13qWfOMrQey###0 zs^2E@TfmpC`UDfh5cEa_%+&Q6l3_FO99=JycpGrJu9r)^8+e|sFO&E);Dx&Wy2PIY zKd$SWB>oC`iLURG_&eaGx_*FT%>U|-2w1M`Cnduv;1#-F3rtm{{sO#G*Q0u2lu(sk z0bZl)jevOxEum-FEt`Cz8(ZHYR z`e=z`f%oY8of5|b@7MJy5_^CT>iR5+Q-BZY`aIwnq;LlC5nX>$;%wj(y8axnx&F6B zz!_Ab6fgw%oUU(?cnt6bUH?Mj3BZ?i{jkJO0ME4P$0c44JjbTTVi@uodPbjWWCe8HxF)En*3+weLB%nZ@@$^`kqb3*jP5_bkJ z57Ey^TnaodM7Q<9nE>vq)j_}uL-Yo~5xB`x?*LvBqQ?Mp`S$`Z577gg<_CaRgy@ZZ zlHqFvtPIgJf$6SVJqElgMBgCsN#Hdh`eupG0>2fa?*is~#!J8(pfE7c@G@{!i2kd@ zRwp`Lh<*i_&x8@c+d_0-2sY|GK?(x)gy=~Uw*uZDqPGO*8pTFGxHVc&6Q_SIK~J2q?Gf2PM88c%fZC z1I&Bz1mGoh{W36Dcq;I6yYB2K@T0&h?0T%kj{&c=>rH_9{^2FyHFiB8nAg}E;0->z zUW@>q!3G3W+4aG|{BEHNc$-}x1>E8~lxPR=9=m=YFjrtF@Ikxo>Voq#>a^bhAF=BX z%lI1L6L$Sci7x>EWY=E?<~5?=QM2z1%u3hdMuyr!iOR*jV?#RXO;Mtc;jYCVVy^`W zvDz9VFf1E8_?e;OoCRVhA9@e&l$^y9&48^&=MahJ@KYEd>hYlu(Z1UUT;vMkelk*s#y&EZRuexPM$?VdI`GlJhncHtw4t z!>yFz5eUG3`xV4>c5erbmFH}p?L4<#8TaYR%b4sn2+l62s4872*d0Y?hG{6Q#9pK=j1i{G-f=-vAhHFw}xHE-a@#- zcEDBHw{SIf9VyuAMD{>tL_J#Th%?Q1%DhFy=-FaVoZ* zr2OY_S_3y27)L~ny$P<>`i08Iz=MaLGbofTfUB|Pa4kwK8PKs>7piOzJPP|BuFB5A z)fmIAnuR68g<5cRRsa`|dEthzad7Qy3S0*(hs)SA+u|%A*iS&L*3&9G3=bZ%!Bv?Z z159HcxIPObJ3Cg^8LrNTz_qcv;f5%-M`)#71cxm3xRUJOQKV{nmV#e_lZs&(Iwp+B zxX=O4EYR$h2!hpKC9r6O-a>1uJc#GiyW2ibw~-y0NbH>@w+4LMZlNEI>5#!kbdu)pA{EV4UQL^50pYYrFh+`-kA*cS_vCVyJ@EGJ8o;o+BlGou;do+5or}f1F57y0>bHSYqI6|>aMarNDH!f-g#WufQ=n7!h zYB-9G9yf>3)+3Z|6QUqKBH6YHfvDK6oMR{4xDrIDw$I@e(tW%$UqXQS@a*ayt=M2L zRkCtUY9GZGT`x2bxL$fZHLJ%|uW4i3_d%=rRF{Pn!Z(5SgR8LH;M&>!aKqWdaAVn1 za8uZ;aI+QL0tgMEhpd+6a7Ok;an@;8qS@+GT3zcutzFeOo&mJh^_=Gc?fM+#=i@!; zAHd=IeUQRi@D;#V{Q7WGp778&oku{aO+(*;^3LxiS_fsZ8X^T6lU~_Y zY>xv3XGA+ZbJ)C&7{&G$+z@&`Y_;`A?WyH1o$jJ&qEY?mVu~JtaC9A<|2+z9)zeI@ zs1<;AJr|JQgwF#E(>nns<|1(=V0hhHXp1 z6*~s(iat=nu`aB?R(-I<;}C7vhe&ukV3 z&!X6FMi#-1Nw?^A>x*K0s9roDNPM6Yr(#=HFP@er#r9^s(2sx>+jh7iwD+*>u73La5 ziJHLGSjRz_|Iq@6pl`@gIG#QTw>CWN91cn|YeO7eptMNHFRE|4VEmc>FyWr6sk~z+ zQQ#*?gAl5^bAk~_9SVkpOUwf zdp{>{5ArIuSx6E(56(R#t0;`f8Fy>vgP^_8@!f5pt8*4me?qw!Oit2?6mqwvL#5Av z)>2$MI#h~+Y<~XiZck@LNr04*8}E$vcQ%&@?~D$1wwCC6+6H$93dPN-yAu{GXI~(i zf7}H)4^*8a0cqxNduhZu$;vgC+8O7ms?!IUPDu-C{Nep8dbKHR5%fxl?CE?Sl$axX zQAy-(n~>GHDk#qGToZ)CoSTABINz7kzLnC&DxvS8zz4t(-7$5UJBDw!GZ$K9;*RZ(r!k)sAUZ%}L` zEae6SL@uBKK9Ku(4x`Askml+}^T8>+bdzR!Q+?xzV-e-6G`kc2=xwS{x;fPspdWcO zr$Zh1Noey2iETUQQfxGwo6V(=SFTR@N>IXA%!G@H?Ny#IiwYV2n##w2)=~niOo`1_ z0=RcwB@B@2E{o<5_Z}`dYaOxeRh!~igbQE~hUufJ4aeR;u#7K001;jZAVJIn?Cji~sxISnP z-s0P2iz9-!@}I=B(?`Ln+7S46@L)RybFY#TPQf#%NqJA6K|R@=zGql)e52Uxa6@Ub zr3oyuce6w!h}KonN6ZG)&30&NMo}JF8RWNfE?-to9mwhws9sWi;9sK2=@%{Cc9Ji<@&sC&L_D_VaRn1C{rem(@u@D^EPDfMzw zlNMRLeYcoM$-EPB@zYgWDp5`Mb3}kwQ~Y!~!cm${MR0Wf)zy-3_97q6w$UAUU1ZHB zzK$y0#weM7fP_XoA4sO2m(YlYLZihzg38-yNx+**Y9%zLP^H;Yl9O?Dei=c{kYN^> zn!y*{+{~L-z3}s@Z)O&;*-Ip>@@ip~LBh;xZNbMz^dgnUBUD&NsfJvgYDiG3AzXTk zEFT|-W4I1T_8}#kbyYh9@)>}4pjoC;nV*5rGmisQ&Nm$K8u^ZUX^u+$k-YP{_cVDI zyjcLvT3%=MEO7pU0E+SW7SJf9nTC>k2tkdrh<3ZKQUj2tfabi5xp)_A9x@bc;arR6 zyjz)mvx`LW@GRP7xZNtfW^GOr4b5=sD(*JMJz$NTU|;_)e2ITUfLsa3}yKOX~}DfmDivr88+MW5#h zQ2Bh8KF@n5Z=&;5k*R!CU*wg~N4x3eoy_#|K6ZgWe^WAhKw|uTDlM#X6x~O_97Xr> zQItK1bnAlINHrUwi&do&amO``ayePs?<3xt@hBCvmCJm+W-_0!h1C+Sf zYy@6GUCnSGg`55sS+fZAQEBE?1RBKk#tnEG;-Xt|1$m{k3hKD6Oj*1x+L(FpD)I@y zYsT~|%_>RI9+fXzC@mKzRvli&pK)PIVu9ETusCRg3ww~Iq+esXD}M_NeClq@cjZYx z0n>pgIOrxSsaQk#Gil$ErqLpuv;+6^ZB0zKL&=&2TZ|5f&(LV0NIqx9cA9#0rbf-2 zoNW`^nr3{PpF9uvdP?8ij8D!%NvLyYnRpR!F~z5A2QlWd?(`98s?qsQ&Wp&1E_bn( z{tE=H1x_Ch4c;S97afO~@MPTQz{}p`Spv^tc$(5vk}1%fuBQZbzn-2ShC3HTwK@l; z`tgxVl-Af+`IG`Aa&Js0E3AAo^**HX&D0<8n477brC7#i5?`s7z7Yz&3Y@+O3ax`D zV;J(Of`{ud8=-V971X^q9cO%Xden>eDNsadGXQEz>mO5*0bTCiTKWP8drOE*?}&<@ zK%S$JI~|@j^Wl)~JGx|&=v`|18%VN@IF}&FE9A*R$U1m(*B|@&_Xn%t%NUQKUGSj% zIbVUUf!EzvOMe-)P(us{!0OQBYTkN9lwt$D% zT`fGk?()6^v$XDU9i-FcZlLAdfvv*?mG+-8TKX*zFbx42GjT4wh&)Zg@s2imhG3+< zN}k2=ybVvTvYDWoiW6#h+C;(`Ap}1vGgzj!wbA3L4Eg|Ud-8NfckN1^uaQMx^58>v z%5WciZ7iK&XjUYhDrj`5n*KIeBM{ft=7EbsXMlvGgSnqmGj2rkE)<+I3~m91zM^L2 zLdy!^*2FpifeB4A!V$(fm7HS;T~4eozz!Jvdwc-V3)PG{khTc{8Ho`%mM4$y#(#O> z;oAKow33z_qFbuzgTP7Jr5}OERIp840q%@YnRE>mG4RxpM>Rze5F~1=&@@0Xh`C+e{+gv z*k{W2p~R7*LB_&E`SR=nCL3fakX>gm@Dg7@VlzkR&MP$=C2+r}re8ok{)I~6wL5`| zg~}x(n7nf5K>)8@KUND~xjt%pX<|VdeW2RiD)Z_E)}Y#*A@tcO^+N5|56f_3a;4hk zmAmGu%BA~#Ub(Hn)BXmZD6SMCjWW>ReK3*4R$Uj2OXb>y9f$v`U_y9c)57#sWsY%lu zYMS1d?npU0UgpZxAQMx$`~s{I86TtuRrO5bMul`oAg_=K@NnssjfM0#;0Z`SqNDsI zejGx%_@+o;is$-^2BAJg2?kS zJj3A0p~j-g&>g4pHrfL}wb8Of(ME?MmbcLt2tga6{JfFEp%55(p%;=Ljnu~@8fhIo zycTajBHl(*;R)0tULoU!jzb`?#2E04Hd3&TWIUY~)J7>-R;i655ZLktFRD$AJ>=uD@_7}S|aBx zYH zC)7dd2(ddnh1)U z$kjuUZjQW(d>h>SCUTDXXy;2{x+Qf#Y(Cm)oGnuBtCLVg5+32VscPC~ncxvRL1|Ld zO58*G`T0YW@xc5Z@lm>^RGRHY+Qgi|IR~A50rE4T<7O1`H9ryL|C#(jx7dko&0B1` zbxjPq!R7bT84o*@r5B65sTzRhb^7%5+{rQx)OosyxKQv*_3< z(Z^L$8q4n^}y@(FjZ69K|p@kbeN7a)9Bye{JiNfmA=WR zfX8n_C4bA|hFpyPVF74ui^sfmupc13tmQt+nJWSP6nlh!53R`;z>Dj+n;`dPA{se$ z&c}Nvft*^?#JM~IiI26__$Zp#MhyBYc=%|#3Ci&KUF>dqW|-O zs+n^D7r%$ZpA@t5pHeFQy_!$Y3-g5db?^kl4-jH+3KD+@7`SvXD|6|J8`5jj-$0?E zKjzb z5d^eVeuA4(?Zsy@;K{iT&T=>J5+>8YzR16=ax3RTes_~+eka@ulZWPuhsi_l94;cy z9L&zo!jnG%HzyfO5&Taeu3R`m5(la2^e!-0j$Xp#%JDU8G`41R$xkdM_E*!7BYp7x zhs!A-IYZQRdPkVcS$dTm`hXH$@_UYnqtx_V!P+(`Kl#m0`K`&sZfbfD$`6HWtD2RD z=`!*LwEry$rp&p5x>YRrylcIScHk|u679fSW*0nxCcjT4ke}$K#wh~>&qNn3)2jft zFDR7TqNd-`A?WsHLKK?w5g$%3P(rHfbVoGwuOWxmu(&Iwh){Zh+-n%NJegrcVv`y>hl0|vUQ!yJu-^ZqngK^?-&knL9=F&w@&uxb@jP zaQ3+2BK0~!HwyYOj~*}W;EuMMnambc8sL={p???2E(m%KHAt5<8$cgspsOj0Nmmy^ z?-%r!SYzb$hSA2t-+NhkeM)<_hlIeo42-o)Zb;&GV|`5>rnDALf#TNI&ooIG25DZ~^k4U(=lW^Ip-iK`#{5pD|U zg2~5$-C`oHi8l7MOGq|;Ih}5gkcV3GglQ;GV#d{o+yVz+W^R(zBXVgXXbw-BDeaa@ zTc@{)XnDXRPg^#c%3Z^5eDic#jPdKip|Nq2b&e2GDd-ZO^rke?EcKg78gaZ$#NQ?8 z1VN>3L%Q3eYn!0bq*oJT?SoxoGG(hv+mMgfOD-)Zn(QT#?ce1t#r$3FNj&$GP9nD= zL1kfX7g!cXij&sGKB`xk!^X&Y17afTi<@m6>1jas)WqnC2ob^S^`Z_PN z@^Fp0m9&U=L>R;EDqXObg1Y2(%_5G8xE}>Q&sF=cb&$36cRI)eAhXuE)kfbU?9u7! zEOd~z8KvFCj=1-ri|)$lIw9z3LG82^#wAU+^u{bn*8o8u6O=yPO4m9;#W0UouCF)F z?-cl;vAiEDeR+NddtYgXQQAzDMhd0UJ%#d8X=#m7+F=V7%F4Oq&S-OnYx!tvdn0=4 zKo=dR&?SXiMIsm?eK9d+ykzSl*t!W?UpFa6>S74po)NUZZZeyCx|K*nl`_AcBEPiF{<)KjfV%uD-atg_!${=QrON6E90sKbL{bSm20{ZZEa3pNlNbA(5;0 zH#Pl)BRSZhr=!Zq%m-q3O5`=V{m3MwsJ zN=uSbxrstasa&>DQra_H)PQ&MW?O`u-Gb8XHeFJlv|1_nxtY&a^)r`={w}i$GqW4N z5Sbhnw7$(wSr{oVLnxh9Px)d~UR-^7()J{xF<0OCciBkwqlMV|*~q%ORmA(v?BXTA zM}*%m=!0fFS#`6!dy2q*g5GLI{##{a-Tj?1#X_E_%VzXImM+-~SBUtPg644H7UACu8iRWnx=ICI zFZOxw3HpQa{J@4W`7*o9BHIhNm!|9AW%s$!$M1^ivq6lz&4Qj3^qinQggAQkNY}sB z&S>^~r(|Qo#ew#?(_+^k5A5XmnBQ2{q;0ZsCVG(Wfym?a*yM3q5E~VFhhUSZi^q+< z*k`(>@D5@u7KR$T*SBu!m?5w!B|@@YEj(T>l76vRRtmbzT-f5}W?7mulXl4V{Z0Hf zkzT|%yEYwFBHld`e08@H=0dvQ-h6w+A8{sAt)PvJ=ZB}p7-W7bLWW5rQ)A6IGA|Sn zA#RTo1?_7@j6}Mt;({y&QQW-mn%Yx~sTFY1SDWdgk1W$wC@73A@cS5I?pvQZwI1_J z0?UH~Y0g1fa*)|lk6EHc)k(-+fB*b z{6@qW5hhJ@Oyfze$+3QI)X!0#mGIh#eR8_hZcIBhFlGIm=55ERK04G^p{iwosV}|2 zNVompm*DWJJ6`MVfj`9cR+L8vn(_258J%u)?Ssb-_|Zkj@+9Lqf$4=f!ngFISUR`E z3)-Ofcg36Z-QX$4|7swAXbFxPV{b$Rep~T-2N}|TBFExafQ+A|%<)^=6K|wISbHc! zpSIc24@WrtaSDlFBoy0&Ut65?Jc1ux^vX9W`4G;GtVKLXi55z2fNZ+xjZPi;E1yD> z2avIXj5Z*X$)cq6sDMgwRFsNdUL~O|Q35|oKo`CKOFS)6GP>yHcEW|om@XWobF4#Q zy6C?t6n~*Dhsp>aG^Vqpdph7&35k9d+R_`ĔE9~OeG;G>Hk08solr~$g@4RylT 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%0D`$24Frs|0UH;5j9iJSM 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≠z0UwO~A#mg_GO%nBdMrR4g5wW%j^<+%ReEgr`0 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–~&TPka6QuvljSyla%bfQN&4*oTL0c<7s< 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

y2Nu2*2b=|Gn%qb@Pk{8=$ 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 E8|*F`C;$Ke delta 1795440 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