X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=mp3_afh.c;h=728b25b81f94aa177a1e74ae01fca07419f7fe90;hp=08837bec597918ed73fe27febbb0a42fbadf654e;hb=62c0894fbb589dd45e69b7d9ef1fd152a9960d62;hpb=a61e862450dc1e74394bf5bbf7002d9947f98d31 diff --git a/mp3_afh.c b/mp3_afh.c index 08837bec..728b25b8 100644 --- a/mp3_afh.c +++ b/mp3_afh.c @@ -1,8 +1,4 @@ -/* - * Copyright (C) 2003 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* Copyright (C) 2003 Andre Noll , see file COPYING. */ /** \file mp3_afh.c para_server's mp3 audio format handler */ @@ -67,8 +63,6 @@ static const int mp3info_bitrate[2][3][14] = { }; static const int frame_size_index[] = {24000, 72000, 72000}; -static const char *mode_text[] = {"stereo", "joint stereo", "dual channel", "mono", "invalid"}; - #ifdef HAVE_ID3TAG #include @@ -437,10 +431,13 @@ static int header_frequency(struct mp3header *h) return frequencies[h->version][h->freq]; } -static const char *header_mode(struct mp3header *h) +static const char *header_mode(const struct mp3header *h) { - if (h->mode > 4) - h->mode = 4; /* invalid */ + const char * const mode_text[] = {"stereo", "joint stereo", + "dual channel", "mono"}; + + if (h->mode >= ARRAY_SIZE(mode_text)) + return "invalid"; return mode_text[h->mode]; } @@ -655,7 +652,7 @@ static int mp3_read_info(unsigned char *map, size_t numbytes, int fd, afhi->channels = header_channels(&header); afhi->seconds_total = (tv2ms(&total_time) + 500) / 1000; tv_divide(afhi->chunks_total, &total_time, &afhi->chunk_tv); - PARA_DEBUG_LOG("%" PRIu32 "chunks, each %lums\n", afhi->chunks_total, + PARA_DEBUG_LOG("%" PRIu32 " chunks, each %lums\n", afhi->chunks_total, tv2ms(&afhi->chunk_tv)); set_max_chunk_size(afhi); ret = mp3_get_id3(map, numbytes, fd, &afhi->tags); @@ -678,7 +675,7 @@ static int mp3_get_file_info(char *map, size_t numbytes, int fd, ret = mp3_read_info((unsigned char *)map, numbytes, fd, afhi); if (ret < 0) return ret; - if (afhi->seconds_total < 2 || !afhi->chunks_total) + if (afhi->chunks_total == 0) return -E_MP3_INFO; return 1; } @@ -686,15 +683,14 @@ static int mp3_get_file_info(char *map, size_t numbytes, int fd, static const char * const mp3_suffixes[] = {"mp3", NULL}; /** - * the init function of the mp3 audio format handler + * The mp3 audio format handler. * - * \param afh pointer to the struct to initialize + * It does not depend on any libraries and is hence always compiled in. */ -void mp3_afh_init(struct audio_format_handler *afh) -{ - afh->get_file_info = mp3_get_file_info; - afh->suffixes = mp3_suffixes; +const struct audio_format_handler mp3_afh = { + .get_file_info = mp3_get_file_info, + .suffixes = mp3_suffixes, #ifdef HAVE_LIBID3TAG - afh->rewrite_tags = mp3_rewrite_tags; + .rewrite_tags = mp3_rewrite_tags, #endif /* HAVE_LIBID3TAG */ -} +};