Mercurial > audlegacy
comparison Plugins/Input/wma/libffwma/wmadec.c @ 1668:778f078cda5a trunk
[svn] Partial sync with upstream.
author | chainsaw |
---|---|
date | Mon, 11 Sep 2006 13:15:31 -0700 |
parents | 705d4c089fce |
children |
comparison
equal
deleted
inserted
replaced
1667:991fa4c7271d | 1668:778f078cda5a |
---|---|
276 else if (sample_rate1 >= 8000) | 276 else if (sample_rate1 >= 8000) |
277 sample_rate1 = 8000; | 277 sample_rate1 = 8000; |
278 } | 278 } |
279 | 279 |
280 bps = (float)s->bit_rate / (float)(s->nb_channels * s->sample_rate); | 280 bps = (float)s->bit_rate / (float)(s->nb_channels * s->sample_rate); |
281 s->byte_offset_bits = av_log2((int)(bps * s->frame_len / 8.0)) + 2; | 281 s->byte_offset_bits = av_log2((int)(bps * s->frame_len / 8.0 + 0.5)) + 2; |
282 | 282 |
283 /* compute high frequency value and choose if noise coding should | 283 /* compute high frequency value and choose if noise coding should |
284 be activated */ | 284 be activated */ |
285 bps1 = bps; | 285 bps1 = bps; |
286 if (s->nb_channels == 2) | 286 if (s->nb_channels == 2) |
891 sign = get_bits(&s->gb, 1); | 891 sign = get_bits(&s->gb, 1); |
892 if (!sign) | 892 if (!sign) |
893 level = -level; | 893 level = -level; |
894 ptr += run; | 894 ptr += run; |
895 if (ptr >= eptr) | 895 if (ptr >= eptr) |
896 return -1; | 896 { |
897 av_log(NULL, AV_LOG_ERROR, "overflow in spectral RLE, ignoring\n"); | |
898 break; | |
899 } | |
897 *ptr++ = level; | 900 *ptr++ = level; |
898 /* NOTE: EOB can be omitted */ | 901 /* NOTE: EOB can be omitted */ |
899 if (ptr >= eptr) | 902 if (ptr >= eptr) |
900 break; | 903 break; |
901 } | 904 } |
1219 if ((s->last_superframe_len + ((bit_offset + 7) >> 3)) > | 1222 if ((s->last_superframe_len + ((bit_offset + 7) >> 3)) > |
1220 MAX_CODED_SUPERFRAME_SIZE) | 1223 MAX_CODED_SUPERFRAME_SIZE) |
1221 goto fail; | 1224 goto fail; |
1222 q = s->last_superframe + s->last_superframe_len; | 1225 q = s->last_superframe + s->last_superframe_len; |
1223 len = bit_offset; | 1226 len = bit_offset; |
1224 while (len > 0) { | 1227 while (len > 7) { |
1225 *q++ = (get_bits)(&s->gb, 8); | 1228 *q++ = (get_bits)(&s->gb, 8); |
1226 len -= 8; | 1229 len -= 8; |
1227 } | 1230 } |
1228 if (len > 0) { | 1231 if (len > 0) { |
1229 *q++ = (get_bits)(&s->gb, len) << (8 - len); | 1232 *q++ = (get_bits)(&s->gb, len) << (8 - len); |