summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/playback.c9
-rw-r--r--lib/rbcodec/metadata/metadata.c12
-rw-r--r--lib/rbcodec/metadata/metadata.h2
-rw-r--r--lib/rbcodec/test/warble.c2
4 files changed, 10 insertions, 15 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 100558177e..944775d6e1 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -972,7 +972,7 @@ static void audio_update_filebuf_watermark(int seconds)
if (id3)
{
- if (get_audio_base_data_type(id3->codectype) == TYPE_PACKET_AUDIO)
+ if (!rbcodec_format_is_atomic(id3->codectype))
{
bytes = id3->bitrate * (1000/8) * seconds;
}
@@ -1897,7 +1897,8 @@ static int audio_finish_load_track(struct track_info *info)
calls it again, so we don't save it (and they shouldn't accumulate) */
size_t offset = resume_rewind_adjusted_offset(track_id3);
- enum data_type audiotype = get_audio_base_data_type(track_id3->codectype);
+ enum data_type audiotype = rbcodec_format_is_atomic(track_id3->codectype) ?
+ TYPE_ATOMIC_AUDIO : TYPE_PACKET_AUDIO;
if (audiotype == TYPE_ATOMIC_AUDIO)
logf("Loading atomic %d", track_id3->codectype);
@@ -2342,9 +2343,7 @@ static void audio_on_codec_complete(int status)
struct mp3entry *track_id3 = bufgetid3(info->id3_hid);
- if (track_id3 &&
- get_audio_base_data_type(track_id3->codectype)
- == TYPE_PACKET_AUDIO)
+ if (track_id3 && !rbcodec_format_is_atomic(track_id3->codectype))
{
/* Continue filling after this track */
audio_reset_and_rebuffer(TRACK_LIST_KEEP_CURRENT, 1);
diff --git a/lib/rbcodec/metadata/metadata.c b/lib/rbcodec/metadata/metadata.c
index b91e00cc4e..6837e97316 100644
--- a/lib/rbcodec/metadata/metadata.c
+++ b/lib/rbcodec/metadata/metadata.c
@@ -307,10 +307,10 @@ int get_audio_base_codec_type(int type)
}
/* Get the basic audio type */
-enum data_type get_audio_base_data_type(int afmt)
+bool rbcodec_format_is_atomic(int afmt)
{
if ((unsigned)afmt >= AFMT_NUM_CODECS)
- return TYPE_UNKNOWN;
+ return false;
switch (get_audio_base_codec_type(afmt))
{
@@ -327,15 +327,11 @@ enum data_type get_audio_base_data_type(int afmt)
case AFMT_KSS:
/* Type must be allocated and loaded in its entirety onto
the buffer */
- return TYPE_ATOMIC_AUDIO;
+ return true;
default:
/* Assume type may be loaded and discarded incrementally */
- return TYPE_PACKET_AUDIO;
-
- case AFMT_UNKNOWN:
- /* Have no idea at all */
- return TYPE_UNKNOWN;
+ return false;
}
}
diff --git a/lib/rbcodec/metadata/metadata.h b/lib/rbcodec/metadata/metadata.h
index 55e4d76f25..5a1c17bc11 100644
--- a/lib/rbcodec/metadata/metadata.h
+++ b/lib/rbcodec/metadata/metadata.h
@@ -340,7 +340,7 @@ void wipe_mp3entry(struct mp3entry *id3);
void fill_metadata_from_path(struct mp3entry *id3, const char *trackname);
int get_audio_base_codec_type(int type);
void strip_tags(int handle_id);
-enum data_type get_audio_base_data_type(int afmt);
+bool rbcodec_format_is_atomic(int afmt);
bool format_buffers_with_offset(int afmt);
#endif
diff --git a/lib/rbcodec/test/warble.c b/lib/rbcodec/test/warble.c
index e3d9456f4d..8dc27da9eb 100644
--- a/lib/rbcodec/test/warble.c
+++ b/lib/rbcodec/test/warble.c
@@ -475,7 +475,7 @@ static size_t ci_read_filebuf(void *ptr, size_t size)
static void *ci_request_buffer(size_t *realsize, size_t reqsize)
{
free(input_buffer);
- if (get_audio_base_data_type(ci.id3->codectype) == TYPE_PACKET_AUDIO)
+ if (!rbcodec_format_is_atomic(ci.id3->codectype))
reqsize = MIN(reqsize, 32 * 1024);
input_buffer = malloc(reqsize);
*realsize = read(input_fd, input_buffer, reqsize);