Minor fixes

This commit is contained in:
bnnm 2019-01-27 23:40:50 +01:00
parent 4a6df9b3b9
commit b81f8a6eed
3 changed files with 26 additions and 7 deletions

View File

@ -233,6 +233,14 @@ channel mask to allow only certain channels (ex. "song.adx#c1,2").
Creation of those files is meant for advanced users, docs can be found in Creation of those files is meant for advanced users, docs can be found in
vgmstream source. vgmstream source.
### Plugin conflicts
Since vgmstream supports a huge amount of formats it's possibly that some of
them are also supported in other plugins, and this sometimes causes conflicts.
If a file that should isn't playing or looping, first make sure vgmstream is
really opening it (should show "vgmstream" somewhere in the file info), and
try to remove a few other plugins. foobar's ffmpeg plugin and foo_adpcm are
known to cause issues.
## Tagging ## Tagging
Some of vgmstream's plugins support simple read-only tagging via external files. Some of vgmstream's plugins support simple read-only tagging via external files.
@ -282,7 +290,7 @@ are used in few games.
- Sony PSX ADPCM a.k.a VAG (standard, badflags, configurable) - Sony PSX ADPCM a.k.a VAG (standard, badflags, configurable)
- Sony HEVAG - Sony HEVAG
- Electronic Arts EA-XA (stereo, mono, Maxis) - Electronic Arts EA-XA (stereo, mono, Maxis)
- Electronic Arts EA-XAS - Electronic Arts EA-XAS (v0, v1)
- DVI/IMA ADPCM (stereo/mono + high/low nibble, 3DS, Omikron, SNDS, etc) - DVI/IMA ADPCM (stereo/mono + high/low nibble, 3DS, Omikron, SNDS, etc)
- Microsoft MS IMA ADPCM (standard, Xbox, NDS, Radical, Wwise, FSB, WV6, etc) - Microsoft MS IMA ADPCM (standard, Xbox, NDS, Radical, Wwise, FSB, WV6, etc)
- Microsoft MS ADPCM (standard, Cricket Audio) - Microsoft MS ADPCM (standard, Cricket Audio)
@ -298,7 +306,7 @@ are used in few games.
- Konami XMD 4-bit ADPCM - Konami XMD 4-bit ADPCM
- Argonaut ASF 4-bit ADPCM - Argonaut ASF 4-bit ADPCM
- Circus XPCM ADPCM - Circus XPCM ADPCM
- PC-FX ADPCM - OKI 4-bit ADPCM (16-bit output, PC-FX)
- SDX2 2:1 Squareroot-Delta-Exact compression DPCM - SDX2 2:1 Squareroot-Delta-Exact compression DPCM
- CBD2 2:1 Cuberoot-Delta-Exact compression DPCM - CBD2 2:1 Cuberoot-Delta-Exact compression DPCM
- Activision EXAKT SASSC DPCM - Activision EXAKT SASSC DPCM
@ -560,6 +568,8 @@ This list is not complete and many other files are supported.
- .um3 (Ogg Vorbis) - .um3 (Ogg Vorbis)
- .xa (CD-ROM XA audio) - .xa (CD-ROM XA audio)
- .xma (MS XMA/XMA2) - .xma (MS XMA/XMA2)
- .sb0/sb1/sb2/sb3/sb4/sb5/sb6/sb7 (many)
- .sm0/sm1/sm2/sm3/sm4/sm5/sm6/sm7 (many)
- artificial/generic headers: - artificial/generic headers:
- .genh (lots) - .genh (lots)
- .txth (lots) - .txth (lots)

View File

@ -44,7 +44,5 @@ void block_update_mul(off_t block_offset, VGMSTREAM * vgmstream) {
for (i = 0; i < vgmstream->channels; i++) { for (i = 0; i < vgmstream->channels; i++) {
vgmstream->ch[i].offset = block_offset + block_header + data_header + vgmstream->current_block_size*i; vgmstream->ch[i].offset = block_offset + block_header + data_header + vgmstream->current_block_size*i;
//VGM_LOG("ch%i of=%lx\n", i, vgmstream->ch[i].offset);
} }
//getchar();
} }

View File

@ -2279,14 +2279,25 @@ void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length) {
"encoding: "); "encoding: ");
concatn(length,desc,temp); concatn(length,desc,temp);
switch (vgmstream->coding_type) { switch (vgmstream->coding_type) {
//todo codec bugs with layout inside layouts (ex. TXTP)
#ifdef VGM_USE_FFMPEG #ifdef VGM_USE_FFMPEG
case coding_FFmpeg: { case coding_FFmpeg: {
ffmpeg_codec_data *data = (ffmpeg_codec_data *)vgmstream->codec_data; ffmpeg_codec_data *data = NULL;
if (!data && vgmstream->layout_data) {
if (vgmstream->layout_type == layout_layered) {
layered_layout_data* layout_data = vgmstream->layout_data; layered_layout_data* layout_data = vgmstream->layout_data;
if (layout_data->layers[0]->coding_type == coding_FFmpeg) if (layout_data->layers[0]->coding_type == coding_FFmpeg)
data = layout_data->layers[0]->codec_data; data = layout_data->layers[0]->codec_data;
} }
else if (vgmstream->layout_type == layout_segmented) {
segmented_layout_data* layout_data = vgmstream->layout_data;
if (layout_data->segments[0]->coding_type == coding_FFmpeg)
data = layout_data->segments[0]->codec_data;
}
else {
data = vgmstream->codec_data;
}
if (data) { if (data) {
if (data->codec && data->codec->long_name) { if (data->codec && data->codec->long_name) {
@ -2636,7 +2647,7 @@ int get_vgmstream_average_bitrate(VGMSTREAM * vgmstream) {
return get_vgmstream_average_bitrate_from_size(vgmstream->stream_size, sample_rate, length_samples); return get_vgmstream_average_bitrate_from_size(vgmstream->stream_size, sample_rate, length_samples);
} }
//todo bitrate bugs with layout inside layouts (ex. TXTP)
/* make a list of used streamfiles (repeats will be filtered below) */ /* make a list of used streamfiles (repeats will be filtered below) */
if (vgmstream->layout_type==layout_segmented) { if (vgmstream->layout_type==layout_segmented) {
segmented_layout_data *data = (segmented_layout_data *) vgmstream->layout_data; segmented_layout_data *data = (segmented_layout_data *) vgmstream->layout_data;