From d1704f689462393012715f6d0cd6ae0b153becf8 Mon Sep 17 00:00:00 2001 From: Miika Pekkarinen Date: Mon, 21 Nov 2005 11:14:51 +0000 Subject: Fixed playlist skipping of incorrect files and playback engine not to hang if codec loading fails. Also displaying a "Loading..." message on resume and not calling queue_post too often. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8021 a1c6a512-1295-4272-9138-f99709370657 --- apps/playback.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'apps/playback.c') diff --git a/apps/playback.c b/apps/playback.c index b662d0329b..1f0492544a 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -867,6 +867,7 @@ bool loadcodec(const char *trackname, bool start_play) int prev_track; filetype = probe_file_format(trackname); + switch (filetype) { case AFMT_OGG_VORBIS: logf("Codec: Vorbis"); @@ -915,12 +916,11 @@ bool loadcodec(const char *trackname, bool start_play) snprintf(msgbuf, sizeof(msgbuf)-1, "No codec for: %s", trackname); gui_syncsplash(HZ*2, true, msgbuf); codec_path = NULL; + return false; } tracks[track_widx].id3.codectype = filetype; tracks[track_widx].codecsize = 0; - if (codec_path == NULL) - return false; if (!start_play) { prev_track = track_widx - 1; @@ -1094,11 +1094,10 @@ bool audio_load_track(int offset, bool start_play, int peek_offset) tracks[track_widx].codecbuf = &filebuf[buf_widx]; if (!loadcodec(trackname, start_play)) { close(fd); - /* Stop buffer filling if codec load failed. */ - fill_bytesleft = 0; /* Set filesize to zero to indicate no file was loaded. */ tracks[track_widx].filesize = 0; tracks[track_widx].filerem = 0; + tracks[track_widx].taginfo_ready = false; /* Try skipping to next track. */ if (fill_bytesleft > 0) { -- cgit v1.2.3