summaryrefslogtreecommitdiff
path: root/plugins/aac/aac_parser.c
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-08-08 10:40:44 +0200
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-08-08 10:40:44 +0200
commit52ea6f243c5156ac1f5964c896ef47417f964ece (patch)
tree960f5a820aa1d761aeba7dc2151b62c4616bea66 /plugins/aac/aac_parser.c
parent6d8e42e93cb17f30de1f3193fc2d6af58bd206bd (diff)
better error handling on non-aac m4a files
Diffstat (limited to 'plugins/aac/aac_parser.c')
-rw-r--r--plugins/aac/aac_parser.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/plugins/aac/aac_parser.c b/plugins/aac/aac_parser.c
index a09eca84..230dec9e 100644
--- a/plugins/aac/aac_parser.c
+++ b/plugins/aac/aac_parser.c
@@ -22,8 +22,8 @@
#define min(x,y) ((x)<(y)?(x):(y))
#define max(x,y) ((x)>(y)?(x):(y))
-#define trace(...) { fprintf(stderr, __VA_ARGS__); }
-//#define trace(fmt,...)
+//#define trace(...) { fprintf(stderr, __VA_ARGS__); }
+#define trace(fmt,...)
static const int aac_sample_rates[16] = {
96000, 88200, 64000, 48000, 44100, 32000,
@@ -94,6 +94,9 @@ aac_sync(const uint8_t *buf, int *channels, int *sample_rate, int *bit_rate, int
*channels = aac_channels[channel_conf];
*sample_rate = aac_sample_rates[sample_freq_index];
*samples = rdb * 1024;
+ if (*channels <= 0 || *sample_rate <= 0 || *samples <= 0) {
+ return 0;
+ }
*bit_rate = size * 8 * *sample_rate / *samples;
return size;