aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-02-17 22:53:25 +0100
committerMax Kellermann <max@duempel.org>2009-02-17 22:53:25 +0100
commit867ae1cf6f61eabada56a3221bef4fd97ff3fc7e (patch)
tree0df257085ea2fbd69f9f9919bcc2d77175194ccb
parent1a9756156e5f305271536aa7e1fd33be6c774ce2 (diff)
downloadmpd-867ae1cf6f61eabada56a3221bef4fd97ff3fc7e.tar.gz
mpd-867ae1cf6f61eabada56a3221bef4fd97ff3fc7e.tar.xz
mpd-867ae1cf6f61eabada56a3221bef4fd97ff3fc7e.zip
faad: fill buffer in adts_find_frame()
All callers of adts_find_frame() use faad_buffer_fill() before that. Move that faad_buffer_fill() call into adts_find_frame() instead. adts_find_frame() will get its own logic for on-demand filling.
-rw-r--r--src/decoder/faad_plugin.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/decoder/faad_plugin.c b/src/decoder/faad_plugin.c
index cb18a9583..b1fc2c497 100644
--- a/src/decoder/faad_plugin.c
+++ b/src/decoder/faad_plugin.c
@@ -116,6 +116,8 @@ adts_find_frame(struct faad_buffer *b)
const unsigned char *p;
size_t frame_length;
+ faad_buffer_fill(b);
+
while ((p = memchr(b->data, 0xff, b->length)) != NULL) {
/* discard data before 0xff */
if (p > b->data)
@@ -150,8 +152,6 @@ adts_song_duration(struct faad_buffer *b, float *length)
/* Read all frames to ensure correct time and bitrate */
for (frames = 0;; frames++) {
- faad_buffer_fill(b);
-
frame_length = adts_find_frame(b);
if (frame_length > 0) {
if (frames == 0) {
@@ -347,7 +347,6 @@ faad_stream_decode(struct decoder *mpd_decoder, struct input_stream *is)
while (buffer.length < sizeof(buffer.data) &&
!input_stream_eof(buffer.is) &&
decoder_get_command(mpd_decoder) == DECODE_COMMAND_NONE) {
- faad_buffer_fill(&buffer);
adts_find_frame(&buffer);
faad_buffer_fill(&buffer);
}
@@ -369,7 +368,6 @@ faad_stream_decode(struct decoder *mpd_decoder, struct input_stream *is)
faad_buffer_consume(&buffer, bread);
do {
- faad_buffer_fill(&buffer);
adts_find_frame(&buffer);
faad_buffer_fill(&buffer);