Updated vgmstream to r1034

This commit is contained in:
Chris Moeller 2014-06-26 21:16:37 -07:00
parent a1f436587e
commit 0d8f42031e
22 changed files with 83 additions and 97 deletions

View file

@ -169,16 +169,16 @@ static void
nwa_decode_block(NWAData *nwa) nwa_decode_block(NWAData *nwa)
{ {
/* 今回読み込む/デコードするデータの大きさを得る */ /* 今回読み込む/デコードするデータの大きさを得る */
int curblocksize, curcompsize; int curblocksize;
if (nwa->curblock != nwa->blocks - 1) if (nwa->curblock != nwa->blocks - 1)
{ {
curblocksize = nwa->blocksize * (nwa->bps / 8); curblocksize = nwa->blocksize * (nwa->bps / 8);
curcompsize = nwa->offsets[nwa->curblock + 1] - nwa->offsets[nwa->curblock]; //curcompsize = nwa->offsets[nwa->curblock + 1] - nwa->offsets[nwa->curblock];
} }
else else
{ {
curblocksize = nwa->restsize * (nwa->bps / 8); curblocksize = nwa->restsize * (nwa->bps / 8);
curcompsize = nwa->blocksize * (nwa->bps / 8) * 2; //curcompsize = nwa->blocksize * (nwa->bps / 8) * 2;
} }
nwa->samples_in_buffer = 0; nwa->samples_in_buffer = 0;

View file

@ -14,12 +14,9 @@ static int find_key(STREAMFILE *file, uint8_t type, uint16_t *xor_start, uint16_
VGMSTREAM * init_vgmstream_adx(STREAMFILE *streamFile) { VGMSTREAM * init_vgmstream_adx(STREAMFILE *streamFile) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
off_t stream_offset; off_t stream_offset;
size_t filesize;
uint16_t version_signature; uint16_t version_signature;
int loop_flag=0; int loop_flag=0;
int channel_count; int channel_count;
int32_t loop_start_offset=0;
int32_t loop_end_offset=0;
int32_t loop_start_sample=0; int32_t loop_start_sample=0;
int32_t loop_end_sample=0; int32_t loop_end_sample=0;
meta_t header_type; meta_t header_type;
@ -33,8 +30,6 @@ VGMSTREAM * init_vgmstream_adx(STREAMFILE *streamFile) {
streamFile->get_name(streamFile,filename,sizeof(filename)); streamFile->get_name(streamFile,filename,sizeof(filename));
if (strcasecmp("adx",filename_extension(filename))) goto fail; if (strcasecmp("adx",filename_extension(filename))) goto fail;
filesize = get_streamfile_size(streamFile);
/* check first 2 bytes */ /* check first 2 bytes */
if ((uint16_t)read_16bitBE(0,streamFile)!=0x8000) goto fail; if ((uint16_t)read_16bitBE(0,streamFile)!=0x8000) goto fail;
@ -78,9 +73,9 @@ VGMSTREAM * init_vgmstream_adx(STREAMFILE *streamFile) {
if (stream_offset-6 >= 0x2c) { /* enough space for loop info? */ if (stream_offset-6 >= 0x2c) { /* enough space for loop info? */
loop_flag = (read_32bitBE(0x18,streamFile) != 0); loop_flag = (read_32bitBE(0x18,streamFile) != 0);
loop_start_sample = read_32bitBE(0x1c,streamFile); loop_start_sample = read_32bitBE(0x1c,streamFile);
loop_start_offset = read_32bitBE(0x20,streamFile); //loop_start_offset = read_32bitBE(0x20,streamFile);
loop_end_sample = read_32bitBE(0x24,streamFile); loop_end_sample = read_32bitBE(0x24,streamFile);
loop_end_offset = read_32bitBE(0x28,streamFile); //loop_end_offset = read_32bitBE(0x28,streamFile);
} }
} else if (version_signature == 0x0400) { } else if (version_signature == 0x0400) {
@ -97,9 +92,9 @@ VGMSTREAM * init_vgmstream_adx(STREAMFILE *streamFile) {
loop_flag = (read_32bitBE(0x24,streamFile) != 0); loop_flag = (read_32bitBE(0x24,streamFile) != 0);
loop_start_sample = read_32bitBE(0x28,streamFile); loop_start_sample = read_32bitBE(0x28,streamFile);
loop_start_offset = read_32bitBE(0x2c,streamFile); //loop_start_offset = read_32bitBE(0x2c,streamFile);
loop_end_sample = read_32bitBE(0x30,streamFile); loop_end_sample = read_32bitBE(0x30,streamFile);
loop_end_offset = read_32bitBE(0x34,streamFile); //loop_end_offset = read_32bitBE(0x34,streamFile);
} }
} else if (version_signature == 0x0500) { /* found in some SFD : Buggy Heat, appears to have no loop */ } else if (version_signature == 0x0500) { /* found in some SFD : Buggy Heat, appears to have no loop */
header_type = meta_ADX_05; header_type = meta_ADX_05;

View file

@ -11,7 +11,6 @@
VGMSTREAM * init_vgmstream_ahx(STREAMFILE *streamFile) { VGMSTREAM * init_vgmstream_ahx(STREAMFILE *streamFile) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
off_t stream_offset; off_t stream_offset;
size_t filesize;
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
int channel_count = 1; int channel_count = 1;
int loop_flag = 0; int loop_flag = 0;
@ -21,8 +20,6 @@ VGMSTREAM * init_vgmstream_ahx(STREAMFILE *streamFile) {
streamFile->get_name(streamFile,filename,sizeof(filename)); streamFile->get_name(streamFile,filename,sizeof(filename));
if (strcasecmp("ahx",filename_extension(filename))) goto fail; if (strcasecmp("ahx",filename_extension(filename))) goto fail;
filesize = get_streamfile_size(streamFile);
/* check first 2 bytes */ /* check first 2 bytes */
if ((uint16_t)read_16bitBE(0,streamFile)!=0x8000) goto fail; if ((uint16_t)read_16bitBE(0,streamFile)!=0x8000) goto fail;

View file

@ -24,7 +24,6 @@ VGMSTREAM * init_vgmstream_eacs(STREAMFILE *streamFile) {
int channel_count; int channel_count;
int loop_flag=0; int loop_flag=0;
char little_endian=0; char little_endian=0;
off_t start_offset;
EACSHeader *ea_header = NULL; EACSHeader *ea_header = NULL;
int32_t samples_count=0; int32_t samples_count=0;
int i; int i;
@ -46,7 +45,6 @@ VGMSTREAM * init_vgmstream_eacs(STREAMFILE *streamFile) {
little_endian=1; little_endian=1;
/* check type details */ /* check type details */
start_offset = read_32bitLE(0x04,streamFile);
if((uint32_t)read_32bitBE(0x08,streamFile)==0x45414353) { /* EACS */ if((uint32_t)read_32bitBE(0x08,streamFile)==0x45414353) { /* EACS */
read_streamfile((uint8_t*)ea_header,0x08,sizeof(EACSHeader),streamFile); read_streamfile((uint8_t*)ea_header,0x08,sizeof(EACSHeader),streamFile);

View file

@ -534,11 +534,12 @@ fail:
// FSB3 & FSB4 MPEG TEST // FSB3 & FSB4 MPEG TEST
VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE *streamFile) { VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE *streamFile) {
#ifdef VGM_USE_MPEG
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
off_t start_offset; off_t start_offset;
int channel_count, channels, encoding, loop_flag, fsb_mainheader_len, fsb_subheader_len, FSBFlag; int channel_count, channels, loop_flag, fsb_mainheader_len, fsb_subheader_len, FSBFlag, rate;
long sample_rate = 0, num_samples = 0, rate; long sample_rate = 0, num_samples = 0;
uint16_t mp3ID; uint16_t mp3ID;
#ifdef VGM_USE_MPEG #ifdef VGM_USE_MPEG
@ -581,7 +582,7 @@ VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE *streamFile) {
/* Check the MPEG Sync Header */ /* Check the MPEG Sync Header */
mp3ID = read_16bitLE(start_offset,streamFile); mp3ID = read_16bitLE(start_offset,streamFile);
if (mp3ID&0x7FF != 0x7FF) if ((mp3ID&0x7FF) != 0x7FF)
goto fail; goto fail;
channel_count = read_16bitLE(fsb_mainheader_len+0x3E,streamFile); channel_count = read_16bitLE(fsb_mainheader_len+0x3E,streamFile);
@ -594,18 +595,12 @@ VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE *streamFile) {
num_samples = (read_32bitLE(fsb_mainheader_len+0x2C,streamFile)); 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 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; if (!mpeg_data) goto fail;
//channel_count = channels; //channel_count = channels;
sample_rate = rate; sample_rate = rate;
#else
// reject if no MPEG support
goto fail;
#endif
/* build the VGMSTREAM */ /* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channel_count,loop_flag); vgmstream = allocate_vgmstream(channel_count,loop_flag);
if (!vgmstream) goto fail; if (!vgmstream) goto fail;
@ -621,16 +616,10 @@ VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE *streamFile) {
} }
vgmstream->meta_type = meta_FSB_MPEG; vgmstream->meta_type = meta_FSB_MPEG;
#ifdef VGM_USE_MPEG
/* NOTE: num_samples seems to be quite wrong for MPEG */ /* NOTE: num_samples seems to be quite wrong for MPEG */
vgmstream->codec_data = mpeg_data; vgmstream->codec_data = mpeg_data;
vgmstream->layout_type = layout_mpeg; vgmstream->layout_type = layout_mpeg;
vgmstream->coding_type = mpeg_coding_type; vgmstream->coding_type = mpeg_coding_type;
#else
// reject if no MPEG support
goto fail;
#endif
#if 0 #if 0
if (loop_flag) { if (loop_flag) {
@ -656,7 +645,6 @@ VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE *streamFile) {
} }
} }
#ifdef VGM_USE_MPEG
else if(vgmstream->layout_type == layout_mpeg) { else if(vgmstream->layout_type == layout_mpeg) {
for (i=0;i<channel_count;i++) { for (i=0;i<channel_count;i++) {
vgmstream->ch[i].streamfile = streamFile->open(streamFile,filename,MPEG_BUFFER_SIZE); vgmstream->ch[i].streamfile = streamFile->open(streamFile,filename,MPEG_BUFFER_SIZE);
@ -664,7 +652,6 @@ VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE *streamFile) {
} }
} }
#endif
else { goto fail; } else { goto fail; }
} }
@ -672,7 +659,6 @@ VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE *streamFile) {
/* clean up anything we may have opened */ /* clean up anything we may have opened */
fail: fail:
#ifdef VGM_USE_MPEG
if (mpeg_data) { if (mpeg_data) {
mpg123_delete(mpeg_data->m); mpg123_delete(mpeg_data->m);
free(mpeg_data); free(mpeg_data);
@ -681,18 +667,19 @@ fail:
vgmstream->codec_data = NULL; vgmstream->codec_data = NULL;
} }
} }
#endif
if (vgmstream) close_vgmstream(vgmstream); if (vgmstream) close_vgmstream(vgmstream);
#endif
return NULL; return NULL;
} }
#if 0
// FSB5 MPEG // FSB5 MPEG
VGMSTREAM * init_vgmstream_fsb5_mpeg(STREAMFILE *streamFile) { VGMSTREAM * init_vgmstream_fsb5_mpeg(STREAMFILE *streamFile) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
off_t start_offset; off_t start_offset;
int channel_count, channels, encoding, loop_flag, fsb_mainheader_len, fsb_subheader_len, FSBFlag; int channel_count, channels, loop_flag, fsb_mainheader_len, fsb_subheader_len, FSBFlag, rate;
long sample_rate = 0, num_samples = 0, rate; long sample_rate = 0, num_samples = 0;
uint16_t mp3ID; uint16_t mp3ID;
#ifdef VGM_USE_MPEG #ifdef VGM_USE_MPEG
@ -731,7 +718,7 @@ VGMSTREAM * init_vgmstream_fsb5_mpeg(STREAMFILE *streamFile) {
/* Check the MPEG Sync Header */ /* Check the MPEG Sync Header */
mp3ID = read_16bitLE(start_offset,streamFile); mp3ID = read_16bitLE(start_offset,streamFile);
if (mp3ID&0x7FF != 0x7FF) if ((mp3ID&0x7FF) != 0x7FF)
goto fail; goto fail;
channel_count = read_16bitLE(fsb_mainheader_len+0x3E,streamFile); channel_count = read_16bitLE(fsb_mainheader_len+0x3E,streamFile);
@ -835,3 +822,4 @@ fail:
if (vgmstream) close_vgmstream(vgmstream); if (vgmstream) close_vgmstream(vgmstream);
return NULL; return NULL;
} }
#endif

View file

@ -20,8 +20,6 @@ VGMSTREAM * init_vgmstream_fsb5(STREAMFILE *streamFile) {
int SampleHeaderStart, SampleHeaderLength, NameTableLength, SampleDataLength, CodingID, SampleMode; int SampleHeaderStart, SampleHeaderLength, NameTableLength, SampleDataLength, CodingID, SampleMode;
int ExtraFlag, ExtraFlagStart, ExtraFlagType, ExtraFlagSize, ExtraFlagEnd; int ExtraFlag, ExtraFlagStart, ExtraFlagType, ExtraFlagSize, ExtraFlagEnd;
size_t fileLength;
/* check extension, case insensitive */ /* check extension, case insensitive */
streamFile->get_name(streamFile,filename,sizeof(filename)); streamFile->get_name(streamFile,filename,sizeof(filename));
if (strcasecmp("fsb",filename_extension(filename))) goto fail; if (strcasecmp("fsb",filename_extension(filename))) goto fail;

View file

@ -55,10 +55,10 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) {
/* 12 = NGC DSP */ /* 12 = NGC DSP */
/* 13 = 8bit unsingned PCM */ /* 13 = 8bit unsingned PCM */
/* 14 = PSX ADPCM (bad flagged) */ /* 14 = PSX ADPCM (bad flagged) */
/* 15 = Microsoft IMA (MS ADPCM) /* 15 = Microsoft IMA (MS ADPCM) */
/* 16 = 8-bit PCM (unsigned) /* 16 = 8-bit PCM (unsigned) */
/* 17 = Apple Quicktime 4-bit IMA ADPCM; /* 17 = Apple Quicktime 4-bit IMA ADPCM */
/* ... others to come */
switch (read_32bitLE(0x18,streamFile)) { switch (read_32bitLE(0x18,streamFile)) {
case 0: case 0:
coding = coding_PSX; coding = coding_PSX;
@ -142,10 +142,16 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) {
coef[0] = read_32bitLE(0x24,streamFile); coef[0] = read_32bitLE(0x24,streamFile);
coef[1] = read_32bitLE(0x28,streamFile); coef[1] = read_32bitLE(0x28,streamFile);
dsp_interleave_type = read_32bitLE(0x2C,streamFile); dsp_interleave_type = read_32bitLE(0x2C,streamFile);
coef_type = read_32bitLE(0x30,streamFile); /* 0 - normal coefs
1 - splitted coefs (16byte rows) */ /* DSP coefficient variants */
/* bit 0 - split coefs (2 arrays) */
/* bit 1 - little endian coefs */
coef_type = read_32bitLE(0x30,streamFile);
/* when using split coefficients, 2nd array is at: */
coef_splitted[0] = read_32bitLE(0x34,streamFile); coef_splitted[0] = read_32bitLE(0x34,streamFile);
coef_splitted[1] = read_32bitLE(0x38,streamFile); coef_splitted[1] = read_32bitLE(0x38,streamFile);
//if (coding == coding_XBOX && channel_count != 2) goto fail; //if (coding == coding_XBOX && channel_count != 2) goto fail;
/* build the VGMSTREAM */ /* build the VGMSTREAM */
@ -298,14 +304,23 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) {
chstreamfile = chstreamfile =
streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE);
if (coef_type == 0) { {
for (j=0;j<16;j++) { int16_t (*read_16bit)(off_t , STREAMFILE*);
vgmstream->ch[i].adpcm_coef[j] = read_16bitBE(coef[i]+j*2,streamFile); if ((coef_type & 2) == 0) {
read_16bit = read_16bitBE;
} else {
read_16bit = read_16bitLE;
} }
} else if (coef_type == 1) {
if ((coef_type & 1) == 0) {
for (j=0;j<16;j++) {
vgmstream->ch[i].adpcm_coef[j] = read_16bit(coef[i]+j*2,streamFile);
}
} else {
for (j=0;j<8;j++) { for (j=0;j<8;j++) {
vgmstream->ch[i].adpcm_coef[j*2]=read_16bitBE(coef[i]+j*2,streamFile); vgmstream->ch[i].adpcm_coef[j*2]=read_16bit(coef[i]+j*2,streamFile);
vgmstream->ch[i].adpcm_coef[j*2+1]=read_16bitBE(coef_splitted[i]+j*2,streamFile); vgmstream->ch[i].adpcm_coef[j*2+1]=read_16bit(coef_splitted[i]+j*2,streamFile);
}
} }
} }
chstart_offset =start_offset+vgmstream->interleave_block_size*i; chstart_offset =start_offset+vgmstream->interleave_block_size*i;

View file

@ -9,7 +9,6 @@ VGMSTREAM * init_vgmstream_ivaud(STREAMFILE *streamFile) {
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
off_t start_offset; off_t start_offset;
off_t block_table_offset; off_t block_table_offset;
int block_count;
int loop_flag = 0; int loop_flag = 0;
int channel_count; int channel_count;
int i; int i;
@ -52,7 +51,7 @@ VGMSTREAM * init_vgmstream_ivaud(STREAMFILE *streamFile) {
/* Calc num_samples */ /* Calc num_samples */
start_offset = read_32bitLE(0x2C,streamFile); start_offset = read_32bitLE(0x2C,streamFile);
block_count = read_32bitLE(0x08,streamFile); //block_count = read_32bitLE(0x08,streamFile);
vgmstream->next_block_offset = read_32bitLE(0x2C,streamFile); vgmstream->next_block_offset = read_32bitLE(0x2C,streamFile);
// to avoid troubles with "extra" samples // to avoid troubles with "extra" samples

View file

@ -1736,7 +1736,7 @@ VGMSTREAM * init_vgmstream_dsp_str_ig(STREAMFILE *streamFile) {
} }
/* build the VGMSTREAM */ /* build the VGMSTREAM */
vgmstream = allocate_vgmstream(2,ch0_header.loop_flag); vgmstream = allocate_vgmstream(channel_count, ch0_header.loop_flag);
if (!vgmstream) goto fail; if (!vgmstream) goto fail;
/* fill in the vital statistics */ /* fill in the vital statistics */
@ -1849,7 +1849,7 @@ VGMSTREAM * init_vgmstream_dsp_xiii(STREAMFILE *streamFile) {
/* build the VGMSTREAM */ /* build the VGMSTREAM */
vgmstream = allocate_vgmstream(2,ch1_header.loop_flag); vgmstream = allocate_vgmstream(channel_count, ch1_header.loop_flag);
if (!vgmstream) goto fail; if (!vgmstream) goto fail;
/* fill in the vital statistics */ /* fill in the vital statistics */
@ -1905,7 +1905,6 @@ VGMSTREAM * init_vgmstream_wii_ndp(STREAMFILE *streamFile) {
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
struct dsp_header ch0_header,ch1_header; struct dsp_header ch0_header,ch1_header;
off_t ch1_header_start, ch2_header_start, ch1_start, ch2_start; off_t ch1_header_start, ch2_header_start, ch1_start, ch2_start;
int channel_count;
int i; int i;
/* check extension, case insensitive */ /* check extension, case insensitive */
@ -1921,7 +1920,7 @@ VGMSTREAM * init_vgmstream_wii_ndp(STREAMFILE *streamFile) {
if ((read_32bitLE(0x8,streamFile)+0x18 != get_streamfile_size(streamFile))) /* NDP */ if ((read_32bitLE(0x8,streamFile)+0x18 != get_streamfile_size(streamFile))) /* NDP */
goto fail; goto fail;
channel_count = (read_16bitLE(0x10,streamFile) != 2); //channel_count = (read_16bitLE(0x10,streamFile) != 2);
ch1_header_start = 0x18; ch1_header_start = 0x18;
ch2_header_start = 0x78; ch2_header_start = 0x78;
@ -2066,7 +2065,7 @@ VGMSTREAM * init_vgmstream_dsp_cabelas(STREAMFILE *streamFile) {
/* build the VGMSTREAM */ /* build the VGMSTREAM */
vgmstream = allocate_vgmstream(2,1); vgmstream = allocate_vgmstream(channel_count, 1);
if (!vgmstream) goto fail; if (!vgmstream) goto fail;
/* fill in the vital statistics */ /* fill in the vital statistics */
@ -2462,3 +2461,4 @@ fail:
if (vgmstream) close_vgmstream(vgmstream); if (vgmstream) close_vgmstream(vgmstream);
return NULL; return NULL;
} }

View file

@ -11,8 +11,6 @@ VGMSTREAM * init_vgmstream_ps2_2pfs(STREAMFILE *streamFile)
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
size_t fileLength;
off_t readOffset = 0;
off_t start_offset; off_t start_offset;
int loop_flag = 0; int loop_flag = 0;

View file

@ -57,6 +57,10 @@ VGMSTREAM * init_vgmstream_ps2_ast(STREAMFILE *streamFile) {
vgmstream->num_samples = (read_32bitLE(0x04,streamFile)-start_offset)*28/16/channel_count; vgmstream->num_samples = (read_32bitLE(0x04,streamFile)-start_offset)*28/16/channel_count;
vgmstream->interleave_block_size = read_32bitLE(0x10,streamFile); vgmstream->interleave_block_size = read_32bitLE(0x10,streamFile);
} }
else
{
goto fail;
}
vgmstream->layout_type = layout_interleave; vgmstream->layout_type = layout_interleave;
vgmstream->coding_type = coding_PSX; vgmstream->coding_type = coding_PSX;

View file

@ -12,9 +12,11 @@ VGMSTREAM * init_vgmstream_ps2_hsf(STREAMFILE *streamFile)
size_t fileLength; size_t fileLength;
size_t frequencyFlag; size_t frequencyFlag;
#if 0
off_t readOffset = 0; off_t readOffset = 0;
uint8_t testBuffer[0x10]; uint8_t testBuffer[0x10];
off_t loopEndOffset; off_t loopEndOffset;
#endif
/* check extension, case insensitive */ /* check extension, case insensitive */
streamFile->get_name(streamFile,filename,sizeof(filename)); streamFile->get_name(streamFile,filename,sizeof(filename));
@ -57,7 +59,7 @@ VGMSTREAM * init_vgmstream_ps2_hsf(STREAMFILE *streamFile)
vgmstream->loop_start_sample = 0; vgmstream->loop_start_sample = 0;
vgmstream->loop_end_sample = vgmstream->num_samples; vgmstream->loop_end_sample = vgmstream->num_samples;
/* #if 0
readOffset = fileLength - 0x10; readOffset = fileLength - 0x10;
do do
@ -72,7 +74,7 @@ VGMSTREAM * init_vgmstream_ps2_hsf(STREAMFILE *streamFile)
} }
} while (readOffset > 0); } while (readOffset > 0);
*/ #endif
} }
/* open the file for reading */ /* open the file for reading */

View file

@ -12,8 +12,8 @@ VGMSTREAM * init_vgmstream_ps2_vgs(STREAMFILE *streamFile) {
size_t fileLength; size_t fileLength;
off_t readOffset = 0; off_t readOffset = 0;
off_t start_offset; off_t start_offset;
off_t loop_start_offset; off_t loop_start_offset = 0;
off_t loop_end_offset; off_t loop_end_offset = 0;
uint8_t testBuffer[0x10]; uint8_t testBuffer[0x10];
int loop_flag = 0; int loop_flag = 0;

View file

@ -11,8 +11,6 @@ VGMSTREAM * init_vgmstream_ps3_ivag(STREAMFILE *streamFile)
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
size_t fileLength;
off_t readOffset = 0;
off_t start_offset; off_t start_offset;
int loop_flag = 0; int loop_flag = 0;

View file

@ -9,8 +9,6 @@ VGMSTREAM * init_vgmstream_ps3_vawx(STREAMFILE *streamFile)
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
size_t fileLength;
off_t readOffset = 0;
off_t start_offset; off_t start_offset;
int loop_flag = 0; int loop_flag = 0;

View file

@ -114,14 +114,13 @@ off_t init_xa_channel(int* channel,STREAMFILE* streamFile) {
size_t filelength=get_streamfile_size(streamFile); size_t filelength=get_streamfile_size(streamFile);
int8_t currentChannel; int8_t currentChannel;
int8_t subAudio;
// 0 can't be a correct value // 0 can't be a correct value
if(block_offset>=(off_t)filelength) if(block_offset>=(off_t)filelength)
return 0; return 0;
currentChannel=read_8bit(block_offset-7,streamFile); currentChannel=read_8bit(block_offset-7,streamFile);
subAudio=read_8bit(block_offset-6,streamFile); //subAudio=read_8bit(block_offset-6,streamFile);
*channel=currentChannel; *channel=currentChannel;
//if (!((currentChannel==channel) && (subAudio==0x64))) { //if (!((currentChannel==channel) && (subAudio==0x64))) {
// block_offset+=2352; // block_offset+=2352;

View file

@ -539,7 +539,7 @@ VGMSTREAM * init_vgmstream_rifx(STREAMFILE *streamFile) {
off_t file_size = -1; off_t file_size = -1;
int sample_count = 0; int sample_count = 0;
int fact_sample_count = -1; //int fact_sample_count = -1;
off_t start_offset = -1; off_t start_offset = -1;
off_t wiih_offset = -1; off_t wiih_offset = -1;
uint32_t wiih_size = 0; uint32_t wiih_size = 0;
@ -624,7 +624,7 @@ VGMSTREAM * init_vgmstream_rifx(STREAMFILE *streamFile) {
break; break;
case 0x66616374: /* fact */ case 0x66616374: /* fact */
if (chunk_size != 4) break; if (chunk_size != 4) break;
fact_sample_count = read_32bitBE(current_chunk+8, streamFile); //fact_sample_count = read_32bitBE(current_chunk+8, streamFile);
break; break;
case 0x57696948: /* WiiH */ case 0x57696948: /* WiiH */
wiih_size = read_32bitBE(current_chunk+4, streamFile); wiih_size = read_32bitBE(current_chunk+4, streamFile);

View file

@ -963,12 +963,10 @@ fail:
/* RSD6OGG */ /* RSD6OGG */
VGMSTREAM * init_vgmstream_rsd6oogv(STREAMFILE *streamFile) { VGMSTREAM * init_vgmstream_rsd6oogv(STREAMFILE *streamFile) {
#ifdef VGM_USE_VORBIS
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
off_t start_offset; off_t start_offset;
int loop_flag;
int channel_count;
/* check extension, case insensitive */ /* check extension, case insensitive */
streamFile->get_name(streamFile,filename,sizeof(filename)); streamFile->get_name(streamFile,filename,sizeof(filename));
if (strcasecmp("rsd",filename_extension(filename))) goto fail; if (strcasecmp("rsd",filename_extension(filename))) goto fail;
@ -979,7 +977,6 @@ VGMSTREAM * init_vgmstream_rsd6oogv(STREAMFILE *streamFile) {
if (read_32bitBE(0x4,streamFile) != 0x4F4F4756) /* OOGV */ if (read_32bitBE(0x4,streamFile) != 0x4F4F4756) /* OOGV */
goto fail; goto fail;
#ifdef VGM_USE_VORBIS
{ {
vgm_vorbis_info_t inf; vgm_vorbis_info_t inf;
VGMSTREAM * result = NULL; VGMSTREAM * result = NULL;
@ -995,10 +992,10 @@ VGMSTREAM * init_vgmstream_rsd6oogv(STREAMFILE *streamFile) {
return result; return result;
} }
} }
#endif
fail: fail:
/* clean up anything we may have opened */ /* clean up anything we may have opened */
#endif
return NULL; return NULL;
} }

View file

@ -23,7 +23,7 @@ static STREAMFILE *open_scdint_with_STREAMFILE(STREAMFILE *file, const char * fi
VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) { VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
off_t start_offset, meta_offset_offset, meta_offset, post_meta_offset, size_offset; off_t start_offset, meta_offset_offset, meta_offset, post_meta_offset;
int32_t loop_start, loop_end; int32_t loop_start, loop_end;
int loop_flag = 0; int loop_flag = 0;
@ -48,14 +48,14 @@ VGMSTREAM * init_vgmstream_sqex_scd(STREAMFILE *streamFile) {
/* version 3 BE, as seen in FFXIII for PS3 */ /* version 3 BE, as seen in FFXIII for PS3 */
read_32bit = read_32bitBE; read_32bit = read_32bitBE;
read_16bit = read_16bitBE; read_16bit = read_16bitBE;
size_offset = 0x14; //size_offset = 0x14;
meta_offset_offset = 0x40 + read_16bit(0xe,streamFile); meta_offset_offset = 0x40 + read_16bit(0xe,streamFile);
} else if (read_32bitLE(8,streamFile) == 3 || } else if (read_32bitLE(8,streamFile) == 3 ||
read_32bitLE(8,streamFile) == 2) { read_32bitLE(8,streamFile) == 2) {
/* version 2/3 LE, as seen in FFXIV for ?? */ /* version 2/3 LE, as seen in FFXIV for ?? */
read_32bit = read_32bitLE; read_32bit = read_32bitLE;
read_16bit = read_16bitLE; read_16bit = read_16bitLE;
size_offset = 0x10; //size_offset = 0x10;
meta_offset_offset = 0x40 + read_16bit(0xe,streamFile); meta_offset_offset = 0x40 + read_16bit(0xe,streamFile);
} else goto fail; } else goto fail;

View file

@ -119,7 +119,6 @@ VGMSTREAM * init_vgmstream_ss_stream(STREAMFILE *streamFile) {
int loop_flag=0; int loop_flag=0;
int channels; int channels;
int channel_count; int channel_count;
int freq_flag;
off_t start_offset; off_t start_offset;
int i; int i;
@ -129,7 +128,7 @@ VGMSTREAM * init_vgmstream_ss_stream(STREAMFILE *streamFile) {
strcasecmp("ss7",filename_extension(filename))) goto fail; strcasecmp("ss7",filename_extension(filename))) goto fail;
loop_flag = 0; loop_flag = 0;
freq_flag = read_8bit(0x08,streamFile); //freq_flag = read_8bit(0x08,streamFile);
if (read_8bit(0x0C,streamFile) == 0) { if (read_8bit(0x0C,streamFile) == 0) {
channels = 1; channels = 1;

View file

@ -59,3 +59,4 @@ fail:
if (vgmstream) close_vgmstream(vgmstream); if (vgmstream) close_vgmstream(vgmstream);
return NULL; return NULL;
} }