diff options
author | 2011-09-27 20:29:12 +0200 | |
---|---|---|
committer | 2011-09-27 20:29:12 +0200 | |
commit | 82fded1e43d06926f534e4c71ba5dbfffe25de94 (patch) | |
tree | 1feb862f676c62ede0ec55d03f4786b77644d083 | |
parent | 4953fd594353cde2030ce8ad20d9093524fa305a (diff) |
aac adts parser rdb check fix
-rw-r--r-- | plugins/aac/aac.c | 14 | ||||
-rw-r--r-- | plugins/aac/aac_parser.c | 5 |
2 files changed, 10 insertions, 9 deletions
diff --git a/plugins/aac/aac.c b/plugins/aac/aac.c index 21384c2e..08943fd2 100644 --- a/plugins/aac/aac.c +++ b/plugins/aac/aac.c @@ -975,14 +975,12 @@ aac_seek_sample (DB_fileinfo_t *_info, int sample) { info->skipsamples = sample - info->mp4sample * (info->mp4framesize-1); } else { - if (sample < info->currentsample, 1) { - int skip = deadbeef->junk_get_leading_size (info->file); - if (skip >= 0) { - deadbeef->fseek (info->file, skip, SEEK_SET); - } - else { - deadbeef->fseek (info->file, 0, SEEK_SET); - } + int skip = deadbeef->junk_get_leading_size (info->file); + if (skip >= 0) { + deadbeef->fseek (info->file, skip, SEEK_SET); + } + else { + deadbeef->fseek (info->file, 0, SEEK_SET); } int res = seek_raw_aac (info, sample); diff --git a/plugins/aac/aac_parser.c b/plugins/aac/aac_parser.c index 07c1ca6a..ea274989 100644 --- a/plugins/aac/aac_parser.c +++ b/plugins/aac/aac_parser.c @@ -88,7 +88,10 @@ aac_sync(const uint8_t *buf, int *channels, int *sample_rate, int *bit_rate, int return 0; } int adts_buffer_fullness = ((buf[5] & 0x1F) << 3) | ((buf[6] & 0xFC) >> 2); - rdb = buf[7] & 0x03; + rdb = buf[6] & 0x03; + if (!rdb) { + rdb = buf[7] & 0x03; + } trace ("rdb: %d\n", rdb); *channels = aac_channels[channel_conf]; |