X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=ogg_afh.c;h=1d2842874260cb2e6cefa35b52bd91054850ad77;hb=50c9de2ed8746a83002f51e74eae7b0378e1785e;hp=3445970bd867acfbcd7ad52a1df1a58edd9bf691;hpb=90501714a4379e36e191a7d5330378f898ac258f;p=paraslash.git diff --git a/ogg_afh.c b/ogg_afh.c index 3445970b..1d284287 100644 --- a/ogg_afh.c +++ b/ogg_afh.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2006 Andre Noll + * Copyright (C) 2004-2007 Andre Noll * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,20 +15,21 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ -/** \file ogg.c para_server's ogg vorbis audio format handler */ +/** \file ogg_afh.c para_server's ogg vorbis audio format handler */ +#include #include #include #include #include "server.cmdline.h" #include "server.h" -#include "afs.h" +#include "vss.h" #include "afh.h" #include "error.h" #include "string.h" -/* must be big enough to hold header */ +/** must be big enough to hold header */ #define CHUNK_SIZE 32768 static double chunk_time = 0.25; @@ -37,7 +38,7 @@ static FILE *infile; static int header_len, oggbuf_len, vi_channels; static char *header, *oggbuf; static ssize_t *chunk_table, max_chunk_len; -struct audio_format_handler *af; +static struct audio_format_handler *af; static long vi_sampling_rate, vi_bitrate, vi_bitrate_nominal, num_chunks; @@ -80,11 +81,9 @@ static int ogg_compute_header_len(void) goto err2; } ret = -E_VORBIS; - if (vorbis_synthesis_headerin(&vi, &vc, &packet) < 0) { + if (vorbis_synthesis_headerin(&vi, &vc, &packet) < 0) goto err2; - } else - PARA_INFO_LOG("channels: %i, rate: %li\n", vi.channels, - vi.rate); + PARA_INFO_LOG("channels: %i, rate: %li\n", vi.channels, vi.rate); ogg_stream_packetin(stream_out, &packet); ret = ogg_sync_pageout(sync_in, &page); @@ -116,7 +115,7 @@ err2: err1: ogg_sync_destroy(sync_in); vorbis_info_clear(&vi); - vorbis_comment_clear(&vc); + vorbis_comment_clear(&vc); return ret; } @@ -129,7 +128,7 @@ static void tunetable(void) continue; } if (j < 0) - tv_scale(i + 2, &af->chunk_tv, &af->eof_tv); + tv_scale(i, &af->chunk_tv, &af->eof_tv); for (j = lp; j < i; j++) chunk_table[j] = chunk_table[i]; lp = i; @@ -141,7 +140,7 @@ static void tunetable(void) lp = i; for (i = 2; i < num_chunks - lp; i++) chunk_table[i] = chunk_table[i + lp]; -#endif +#endif } @@ -160,7 +159,7 @@ static void ogg_compute_chunk_table(double time_total) num = time_total / chunk_time + 3; PARA_DEBUG_LOG("chunk time: %g allocating %d chunk pointers\n", chunk_time, num); - chunk_table = para_malloc(num * sizeof(ogg_int64_t)); + chunk_table = para_malloc(num * sizeof(size_t)); chunk_table[0] = 0; max_chunk_len = 0; rewind(infile); @@ -207,14 +206,14 @@ static void ogg_close_audio_file(void) oggbuf_len = 0; } -static int ogg_save_header(FILE *file, int header_len) +static int ogg_save_header(FILE *file, int len) { int ret; - header = para_malloc(header_len); + header = para_malloc(len); rewind(file); - ret = read(fileno(file), header, header_len); - if (ret != header_len) + ret = read(fileno(file), header, len); + if (ret != len) return -E_OGG_READ; return 1; } @@ -306,7 +305,7 @@ static ogg_int64_t get_chunk_size(long unsigned chunk_num) return ret; } -char *ogg_read_chunk(long unsigned current_chunk, ssize_t *len) +static char *ogg_read_chunk(long unsigned current_chunk, ssize_t *len) { int ret; ogg_int64_t cs = get_chunk_size(current_chunk); @@ -347,6 +346,12 @@ static char *ogg_get_header_info(int *len) } static const char* ogg_suffixes[] = {"ogg", NULL}; + +/** + * the init function of the ogg vorbis audio format handler + * + * \param p pointer to the struct to initialize + */ void ogg_init(struct audio_format_handler *p) { af = p;