[Scummvm-cvs-logs] SF.net SVN: scummvm: [27724] tools/trunk
Kirben at users.sourceforge.net
Kirben at users.sourceforge.net
Tue Jun 26 09:12:17 CEST 2007
Revision: 27724
http://scummvm.svn.sourceforge.net/scummvm/?rev=27724&view=rev
Author: Kirben
Date: 2007-06-26 00:12:17 -0700 (Tue, 26 Jun 2007)
Log Message:
-----------
Fix sign issue, when using FLAC encoding, with raw input files.
Modified Paths:
--------------
tools/trunk/compress.c
tools/trunk/compress.h
tools/trunk/compress_saga.cpp
tools/trunk/compress_sword1.c
Modified: tools/trunk/compress.c
===================================================================
--- tools/trunk/compress.c 2007-06-26 05:51:47 UTC (rev 27723)
+++ tools/trunk/compress.c 2007-06-26 07:12:17 UTC (rev 27724)
@@ -49,20 +49,23 @@
} flaccparams;
typedef struct {
- bool isLittleEndian, isStereo;
+ bool isLittleEndian;
+ bool isStereo;
+ bool isUnsigned;
uint8 bitsPerSample;
} rawtype;
lameparams encparms = { minBitrDef, maxBitrDef, false, algqualDef, vbrqualDef, 0 };
oggencparams oggparms = { -1, -1, -1, oggqualDef, 0 };
flaccparams flacparms;
-rawtype rawAudioType = { false, false, 8 };
+rawtype rawAudioType = { false, false, false, 8 };
const char *tempEncoded = TEMP_MP3;
-void setRawAudioType(bool isLittleEndian, bool isStereo, uint8 bitsPerSample) {
+void setRawAudioType(bool isLittleEndian, bool isStereo, bool isUnsigned, uint8 bitsPerSample) {
rawAudioType.isLittleEndian = isLittleEndian;
rawAudioType.isStereo = isStereo;
+ rawAudioType.isUnsigned = isUnsigned;
rawAudioType.bitsPerSample = bitsPerSample;
}
@@ -173,7 +176,8 @@
tmp += sprintf(tmp, "flac --best -b 1152 -f --lax --no-padding --no-seektable --no-ogg ");
if (rawInput) {
- tmp += sprintf(tmp, "--force-raw-format --sign=unsigned ");
+ tmp += sprintf(tmp, "--force-raw-format ");
+ tmp += sprintf(tmp, "--sign=%s ", (rawAudioType.isUnsigned ? "unsigned" : "signed"));
tmp += sprintf(tmp, "--channels=%d ", (rawAudioType.isStereo ? 2 : 1));
tmp += sprintf(tmp, "--bps=%d ", rawAudioType.bitsPerSample);
tmp += sprintf(tmp, "--sample-rate=%d ", rawSamplerate);
@@ -300,7 +304,7 @@
assert(real_samplerate != -1);
- setRawAudioType(false, false, 8);
+ setRawAudioType(false, false, true, 8);
/* Convert the raw temp file to OGG/MP3 */
encodeAudio(outName, true, real_samplerate, tempEncoded, compMode);
Modified: tools/trunk/compress.h
===================================================================
--- tools/trunk/compress.h 2007-06-26 05:51:47 UTC (rev 27723)
+++ tools/trunk/compress.h 2007-06-26 07:12:17 UTC (rev 27724)
@@ -60,7 +60,7 @@
extern void extractAndEncodeWAV(const char *outName, FILE *input, CompressMode compMode);
extern void encodeAudio(const char *inname, bool rawInput, int rawSamplerate, const char *outname, CompressMode compmode);
-extern void setRawAudioType(bool isLittleEndian, bool isStereo, uint8 bitsPerSample);
+extern void setRawAudioType(bool isLittleEndian, bool isStereo, bool isUnSigned, uint8 bitsPerSample);
#if defined(__cplusplus)
}
Modified: tools/trunk/compress_saga.cpp
===================================================================
--- tools/trunk/compress_saga.cpp 2007-06-26 05:51:47 UTC (rev 27723)
+++ tools/trunk/compress_saga.cpp 2007-06-26 07:12:17 UTC (rev 27724)
@@ -175,13 +175,13 @@
writeHeader(outputFile);
inStream = Audio::makeADPCMStream(&inputFileStream, inputSize, Audio::kADPCMOki);
- inputData = (byte *)malloc(sampleSize);
+ inputData = (byte *)malloc(sampleSize);
inStream->readBuffer((int16*)inputData, inputSize * 2);
delete inStream;
writeBufferToFile(inputData, sampleSize, TEMP_RAW);
free(inputData);
- setRawAudioType( true, sampleStereo != 0, sampleBits);
+ setRawAudioType( true, sampleStereo != 0, !soundInfo->isSigned, sampleBits);
encodeAudio(TEMP_RAW, true, sampleRate, tempEncoded, gCompMode);
return copyFile(tempEncoded, outputFile) + HEADER_SIZE;
}
@@ -195,7 +195,7 @@
free(inputData);
writeHeader(outputFile);
- setRawAudioType( true, false, 8);
+ setRawAudioType( true, false, !soundInfo->isSigned, 8);
encodeAudio(TEMP_RAW, true, sampleRate, tempEncoded, gCompMode);
return copyFile(tempEncoded, outputFile) + HEADER_SIZE;
}
@@ -207,7 +207,7 @@
sampleStereo = soundInfo->stereo;
writeHeader(outputFile);
- setRawAudioType( !soundInfo->isBigEndian, soundInfo->stereo, soundInfo->sampleBits);
+ setRawAudioType( !soundInfo->isBigEndian, soundInfo->stereo, !soundInfo->isSigned, soundInfo->sampleBits);
encodeAudio(TEMP_RAW, true, soundInfo->frequency, tempEncoded, gCompMode);
return copyFile(tempEncoded, outputFile) + HEADER_SIZE;
}
@@ -223,7 +223,7 @@
copyFile(inputFile, size, TEMP_RAW);
- setRawAudioType( true, sampleStereo != 0, sampleBits);
+ setRawAudioType( true, sampleStereo != 0, !soundInfo->isSigned, sampleBits);
encodeAudio(TEMP_RAW, true, sampleRate, tempEncoded, gCompMode);
return copyFile(tempEncoded, outputFile) + HEADER_SIZE;
}
Modified: tools/trunk/compress_sword1.c
===================================================================
--- tools/trunk/compress_sword1.c 2007-06-26 05:51:47 UTC (rev 27723)
+++ tools/trunk/compress_sword1.c 2007-06-26 07:12:17 UTC (rev 27724)
@@ -475,7 +475,7 @@
int i;
char cluName[256], outName[256];
- setRawAudioType(true, false, 16);
+ setRawAudioType(true, false, false, 16);
for (i = 1; i <= 2; i++) {
sprintf(cluName, "SPEECH/SPEECH%d.CLU", i);
clu = fopen(cluName, "rb");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list