Commit Graph

3707 Commits

Author SHA1 Message Date
bnnm
da568d47c3 Remove incorrect comment and move code around 2018-03-30 21:29:32 +02:00
bnnm
d990d8b8cd Rename scd_int_layout.c to layered.c for consistency 2018-03-30 21:29:11 +02:00
bnnm
c843c350d1 Clean scd_int layout and rename to layered layout for later reuse 2018-03-30 21:28:32 +02:00
bnnm
642c833fcd Simplify STREAMFILE handling in scd_int_layout
It's not the easiest thing to follow so here is what's going on with
STREAMFILEs:
- external player opens base-streamfile, with a base FILE
- meta scd parses stuff, then per DSP channel/layer:
  - open temp-streamfile, which does custom IO with base-streamfile
(doesn't open any FILE)
  - pass temp-streamfile to init_vgmstream_ngc_dsp_std
  - init parses ok, and re-opens temp-streamfile (with custom IO) as its
own dsp-vgmstream-streamfile; internally it does fopen/fdopen the
original FILE from base-streamfile
  - scd_int_layout stores the newly created VGMSTREAM (internally has
the dsp-vgmstream-streamfile too)
  - close temp-streamfile, that doesn't close base-streamfile as it's
wrapped to avoid doing so, nor affects dsp-vgmstream-streamfile in any
way.
- meta parsing is done, so external player closes base-streamfile (but
the re-fopen'ed dsp-vgmstream-streamfile FILE remains)
- vgmstream renders pcm buffers, etc
- finally player calls close_vgmstream
  - scd_int_layout calls close_vgmstream for each stored VGMSTREAM
  - the VGMSTREAM internally closes the dsp-vgmstream-streamfile, which
in turn closes its own FILE

So ultimately all FILEs, STREAMFILEs and their clones should be properly
handled and closed.
2018-03-30 19:14:37 +02:00
bnnm
0ff0d864ee Remove SCDINTSTREAMFILE and use custom_io streamfile instead 2018-03-30 18:16:17 +02:00
bnnm
e4c819af2e Add size_callback to open_io_streamfile for more complex stuff 2018-03-30 18:10:23 +02:00
bnnm
99888d6517 Merge branch 'master' of https://github.com/kode54/vgmstream into test 2018-03-30 11:02:28 +02:00
-
d5b095361c revert back the Android change. It seems that the 'dup' is not working perfectly with unistd.h either. 2018-03-30 08:22:03 +03:00
Christopher Snowhill
3346be5f5d
Merge pull request #208 from bxaimc/master
Add .vsv extension for KH Re:CoM, updates and fixes for vsf.c and ps2_psh.c, add XIPH_CUE_LOOP pairs for Super Mario Run Oggs
2018-03-29 20:01:56 -07:00
bxaimc
68296163a9 formatting again, this time for ogg_vorbis.c 2018-03-29 21:10:05 -04:00
bxaimc
d5c9165d07 Merge branch 'master' of git://github.com/kode54/vgmstream 2018-03-29 21:04:09 -04:00
bxaimc
0e7f19d77a Add support for XIPH_CUE_LOOP pairs found in Super Mario Run (Android) OGGs. Some additional formatting fixes too. 2018-03-29 21:03:23 -04:00
bnnm
ac3aa26420 Add .sng extension for EA 1SNh as foobar doesn't like .asf 2018-03-30 00:39:21 +02:00
bnnm
011b880884 Add little endian .adpcm DSP [LEGO Worlds (Switch)]
The .adpcm extension may conflict with naomi_adpcm so meta is ordered
before that
2018-03-29 23:28:02 +02:00
bnnm
a029bd9e1d Clean ngc_dsp/mdsp_std 2018-03-29 23:10:13 +02:00
bnnm
868834d52b Accept EA SCHl "SHFR" blocks [Medal of Honor (PC) movies] 2018-03-29 22:52:15 +02:00
bnnm
92b9992552 Rename open_stream_ext/name to open_streamfile_by_ext/filename (cleanup) 2018-03-29 22:34:21 +02:00
bnnm
dce00d6d27 Fix rsd6wma compilation with FFmpeg 2018-03-29 21:05:28 +02:00
bnnm
2b63d451d9 Minor tweaks to get_streamfile_name and co 2018-03-29 21:03:25 +02:00
bnnm
dabbf07014 Fix .dec not looping in plugins (incorrect filename comparison) 2018-03-29 20:54:07 +02:00
bnnm
69fb29fc7a Return size_t in read_string for consistency 2018-03-29 20:42:52 +02:00
bnnm
49e62d2bcc Move read_pos_file to ffmpeg.c since it was only needed there 2018-03-29 20:38:06 +02:00
bnnm
467f7d0b3d Adjust MSF samples and use mpg123 over FFmpeg
Don't adjust loops to frame boundaries since offsets are always aligned
and MSF only does CBR. There was a minor bug getting samples: FFmpeg was
parsing the MSF and would add its header to the bitrate, which was used
for calcs. Now FFmpeg only sees the MP3 data.

Use mpg123 if available too since it's easier to setup in non-Windows
builds (no audible differences otherwise).
2018-03-29 20:25:54 +02:00
bnnm
531e8dc9b8 Rename blocked layout for consistency 2018-03-29 19:00:04 +02:00
bnnm
dfeb1da3ef Add .stx STHD [Kakuto Chojin (Xbox)] 2018-03-29 17:01:46 +02:00
bnnm
6ce4580683 Add .msv extension [Fight Club (PS2)] 2018-03-29 16:09:32 +02:00
bnnm
c052848e26 Add EA .WVE videos [Supercross 2000 (PS), Wing Commander 3/4 (PS)] 2018-03-29 15:39:33 +02:00
bnnm
ae999b6769 Add .vis extension [AirForce Delta Strike (PS2)] 2018-03-29 01:21:50 +02:00
bnnm
16ca520ae0 Add .adp ADX extension [Headhunter (DC)] 2018-03-28 22:58:49 +02:00
bnnm
d7a2f0fe45 Add RIFF AICA [Dreamcast games] 2018-03-28 22:58:37 +02:00
bnnm
ad755b85c6 Fix mono/interleave/PCM16 .spsd [Giga Wing 2, Virtua Tennis 2 (Naomi)] 2018-03-28 22:58:25 +02:00
bnnm
eb52b3fb57 Add stereo AICA to GENH/TXTH (no interleave) [SF3 Double Impact (DC)] 2018-03-28 00:30:59 +02:00
bnnm
93c26cfef0 Rename coding_AICA to coding_AICA_int since it only does mono data 2018-03-27 23:32:01 +02:00
bnnm
1708dcaf63 Remove PCM16-XOR decoder and use decryption streamfile instead
The encryption is built on top of the data, so this way mimics the
actual setup and removes another superfluous decoder
2018-03-27 23:24:24 +02:00
bnnm
0f529ea1a7 Remove BMDX decoder and use decryption streamfile instead
The encryption is built on top of PS ADPCM data, so this way mimics the
actual setup and removes a superfluous decoder
2018-03-27 22:39:05 +02:00
bnnm
15206915d1 Tweak VDS/VDM num_samples 2018-03-27 22:20:20 +02:00
Christopher Snowhill
16423580a2
Merge pull request #207 from bnnm/yamaha-layouts-fixes
Yamaha, layouts, fixes
2018-03-25 15:48:45 -07:00
bnnm
2f4f73e67a Add XWB internal name reading (rare) 2018-03-25 20:01:45 +02:00
bnnm
382ce74821 Minor filename reading cleanup 2018-03-25 20:01:28 +02:00
bnnm
69da9d5f4d Clean iadp and add missing .adp extension 2018-03-25 20:00:57 +02:00
bnnm
a2acd045bf Fix missing nxap 2018-03-25 19:59:58 +02:00
bnnm
848238a1c6 Fix reading .ATX filename in plugins 2018-03-25 19:59:12 +02:00
bnnm
c72ff8dd46 Clean ngc_bo2
Move code to rkv.c as it's the same format, add .rkv (archive)
extension, remove file and rename to init ngc_rkv
2018-03-25 11:08:36 +02:00
Christopher Snowhill
3ff69d191d
Update rsd.c
Fix failure case for compiling without FFmpeg.
2018-03-24 16:22:52 -07:00
bnnm
1d656026e5 Add .L/R extension [Crash Nitro Kart (PS2)] 2018-03-24 19:43:17 +01:00
bnnm
5d9c5c4ff7 Adjust interleave last block description 2018-03-24 19:30:35 +01:00
bnnm
eca9b83208 Simplify last block interleave
Remove layout_interleave_shortblock for clarity as the value is enough
to signal its use. Also fix .snd last block calculation, and clean some
metas since I was testing changes anyway.
2018-03-24 19:27:24 +01:00
bnnm
91e62e1a43 Remove tabs 2018-03-24 16:58:43 +01:00
bnnm
6c10b3136a Fix comment 2018-03-24 15:40:41 +01:00
bnnm
af639fc92e Use libvorbis over FFmpeg for AKB Ogg 2018-03-24 15:40:01 +01:00