static OggVorbis_File *oggvorbis_file;
static int header_len;
static char *header;
-static ssize_t *chunk_table, max_chunk_len, num_chunks;
+static ssize_t *chunk_table, num_chunks;
static struct audio_format_handler *af;
static long vi_sampling_rate, vi_bitrate, vi_bitrate_nominal;
* offset in the current input file at which the sample containing time i *
* CHUNK_TIME begins.
*/
-static void ogg_compute_chunk_table(FILE *file, double time_total)
+static void ogg_compute_chunk_table(double time_total)
{
int i, ret, num;
- ssize_t pos = 0, min = 0, old_pos;
+ ssize_t max_chunk_len, pos = 0, min = 0, old_pos;
old_pos = 0;
ret = 0;
chunk_table = para_malloc(num * sizeof(size_t));
chunk_table[0] = 0;
max_chunk_len = 0;
- rewind(file);
for (i = 1; ret == 0; i++) {
ogg_int64_t diff;
ret = ov_time_seek(oggvorbis_file, i * chunk_time);
tunetable();
PARA_INFO_LOG("%zu chunks (%fs), max chunk: %zd, min chunk: %zd\n",
num_chunks, chunk_time, max_chunk_len, min);
- rewind(file);
}
static void ogg_close_audio_file(void)
vi_sampling_rate = vi->rate;
vi_bitrate = ov_bitrate(oggvorbis_file, 0);
vi_bitrate_nominal = vi->bitrate_nominal;
- ogg_compute_chunk_table(file, time_total);
+ rewind(file);
+ ogg_compute_chunk_table(time_total);
+ rewind(file);
*frames = num_chunks;
*vss_chunk_table = chunk_table;
sprintf(info_str, "audio_file_info1:%zu x %lu, %ldkHz, %d channels, %ldkbps\n"