summaryrefslogtreecommitdiff
path: root/apps/codecs/libalac/alac.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libalac/alac.c')
-rw-r--r--apps/codecs/libalac/alac.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/apps/codecs/libalac/alac.c b/apps/codecs/libalac/alac.c
index a7d7448b97..38fd6e1cdf 100644
--- a/apps/codecs/libalac/alac.c
+++ b/apps/codecs/libalac/alac.c
@@ -1108,10 +1108,14 @@ int alac_decode_frame(alac_file *alac,
1108{ 1108{
1109 int channels; 1109 int channels;
1110 int outputsamples; 1110 int outputsamples;
1111 int input_buffer_start;
1111 1112
1112 /* setup the stream */ 1113 /* setup the stream */
1113 alac->input_buffer = inbuffer; 1114 alac->input_buffer = inbuffer;
1114 alac->input_buffer_bitaccumulator = 0; 1115 alac->input_buffer_bitaccumulator = 0;
1116
1117 /* save to gather byte consumption */
1118 input_buffer_start = (int)alac->input_buffer;
1115 1119
1116 channels = readbits(alac, 3); 1120 channels = readbits(alac, 3);
1117 1121
@@ -1127,6 +1131,11 @@ int alac_decode_frame(alac_file *alac,
1127 default: /* Unsupported */ 1131 default: /* Unsupported */
1128 return -1; 1132 return -1;
1129 } 1133 }
1134
1135 /* calculate consumed bytes */
1136 alac->bytes_consumed = (int)alac->input_buffer - input_buffer_start;
1137 alac->bytes_consumed += (alac->input_buffer_bitaccumulator>5) ? 2 : 1;
1138
1130 return outputsamples; 1139 return outputsamples;
1131} 1140}
1132 1141