mirror of
https://github.com/mstorsjo/fdk-aac.git
synced 2025-02-19 20:40:36 +01:00
m4a-dec: return error_code + break on decoding error
This commit is contained in:
parent
baad462a03
commit
7bcf0d3d55
@ -40,6 +40,7 @@ int main(int argc, char *argv[]) {
|
|||||||
AAC_DECODER_ERROR err;
|
AAC_DECODER_ERROR err;
|
||||||
unsigned frame_size = 0, i;
|
unsigned frame_size = 0, i;
|
||||||
UINT input_length;
|
UINT input_length;
|
||||||
|
int status = 0;
|
||||||
if (argc < 3) {
|
if (argc < 3) {
|
||||||
fprintf(stderr, "%s in.m4a out.wav\n", argv[0]);
|
fprintf(stderr, "%s in.m4a out.wav\n", argv[0]);
|
||||||
return 1;
|
return 1;
|
||||||
@ -104,6 +105,7 @@ int main(int argc, char *argv[]) {
|
|||||||
err = aacDecoder_Fill(handle, &pkt.data, &input_length, &valid);
|
err = aacDecoder_Fill(handle, &pkt.data, &input_length, &valid);
|
||||||
if (err != AAC_DEC_OK) {
|
if (err != AAC_DEC_OK) {
|
||||||
fprintf(stderr, "Fill failed: %x\n", err);
|
fprintf(stderr, "Fill failed: %x\n", err);
|
||||||
|
status = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
err = aacDecoder_DecodeFrame(handle, decode_buf, output_size / sizeof(INT_PCM), 0);
|
err = aacDecoder_DecodeFrame(handle, decode_buf, output_size / sizeof(INT_PCM), 0);
|
||||||
@ -112,12 +114,14 @@ int main(int argc, char *argv[]) {
|
|||||||
continue;
|
continue;
|
||||||
if (err != AAC_DEC_OK) {
|
if (err != AAC_DEC_OK) {
|
||||||
fprintf(stderr, "Decode failed: %x\n", err);
|
fprintf(stderr, "Decode failed: %x\n", err);
|
||||||
continue;
|
status = 1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (!wav) {
|
if (!wav) {
|
||||||
CStreamInfo *info = aacDecoder_GetStreamInfo(handle);
|
CStreamInfo *info = aacDecoder_GetStreamInfo(handle);
|
||||||
if (!info || info->sampleRate <= 0) {
|
if (!info || info->sampleRate <= 0) {
|
||||||
fprintf(stderr, "No stream info\n");
|
fprintf(stderr, "No stream info\n");
|
||||||
|
status = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
frame_size = info->frameSize * info->numChannels;
|
frame_size = info->frameSize * info->numChannels;
|
||||||
@ -125,6 +129,7 @@ int main(int argc, char *argv[]) {
|
|||||||
wav = wav_write_open(outfile, info->sampleRate, 16, info->numChannels);
|
wav = wav_write_open(outfile, info->sampleRate, 16, info->numChannels);
|
||||||
if (!wav) {
|
if (!wav) {
|
||||||
perror(outfile);
|
perror(outfile);
|
||||||
|
status = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -141,6 +146,6 @@ int main(int argc, char *argv[]) {
|
|||||||
if (wav)
|
if (wav)
|
||||||
wav_write_close(wav);
|
wav_write_close(wav);
|
||||||
aacDecoder_Close(handle);
|
aacDecoder_Close(handle);
|
||||||
return 0;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user