mirror of
https://github.com/scummvm/scummvm-tools.git
synced 2026-05-21 05:40:44 +00:00
- Fix a memory leak upon throwing a ToolException.
- Some style fixes. svn-id: r47537
This commit is contained in:
+7
-7
@@ -432,7 +432,6 @@ void CompressionTool::encodeRaw(const char *rawData, int length, int samplerate,
|
||||
}
|
||||
|
||||
while (!eos) {
|
||||
int i, j;
|
||||
int numSamples = ((samplesLeft < 2048) ? samplesLeft : 2048);
|
||||
float **buffer = vorbis_analysis_buffer(&vd, numSamples);
|
||||
|
||||
@@ -443,21 +442,21 @@ void CompressionTool::encodeRaw(const char *rawData, int length, int samplerate,
|
||||
/* Adapted from oggenc 1.1.1 */
|
||||
if (rawAudioType.bitsPerSample == 8) {
|
||||
const byte *rawDataUnsigned = (const byte *)rawData;
|
||||
for (i = 0; i < numSamples; i++) {
|
||||
for (j = 0; j < numChannels; j++) {
|
||||
for (int i = 0; i < numSamples; i++) {
|
||||
for (int j = 0; j < numChannels; j++) {
|
||||
buffer[j][i] = ((int)(rawDataUnsigned[i * numChannels + j]) - 128) / 128.0f;
|
||||
}
|
||||
}
|
||||
} else if (rawAudioType.bitsPerSample == 16) {
|
||||
if (rawAudioType.isLittleEndian) {
|
||||
for (i = 0; i < numSamples; i++) {
|
||||
for (j = 0; j < numChannels; j++) {
|
||||
for (int i = 0; i < numSamples; i++) {
|
||||
for (int j = 0; j < numChannels; j++) {
|
||||
buffer[j][i] = ((rawData[(i * 2 * numChannels) + (2 * j) + 1] << 8) | (rawData[(i * 2 * numChannels) + (2 * j)] & 0xff)) / 32768.0f;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < numSamples; i++) {
|
||||
for (j = 0; j < numChannels; j++) {
|
||||
for (int i = 0; i < numSamples; i++) {
|
||||
for (int j = 0; j < numChannels; j++) {
|
||||
buffer[j][i] = ((rawData[(i * 2 * numChannels) + (2 * j)] << 8) | (rawData[(i * 2 * numChannels) + (2 * j) + 1] & 0xff)) / 32768.0f;
|
||||
}
|
||||
}
|
||||
@@ -554,6 +553,7 @@ void CompressionTool::encodeRaw(const char *rawData, int length, int samplerate,
|
||||
if (initStatus != FLAC__STREAM_ENCODER_INIT_STATUS_OK) {
|
||||
char buf[2048];
|
||||
sprintf(buf, "Error in FLAC encoder. (check the parameters)\nExact error was:%s\n", FLAC__StreamEncoderInitStatusString[initStatus]);
|
||||
free(flacData);
|
||||
throw ToolException(buf);
|
||||
} else {
|
||||
FLAC__stream_encoder_process_interleaved(encoder, flacData, samplesPerChannel);
|
||||
|
||||
Reference in New Issue
Block a user