static FILE *infile;
static int header_len, oggbuf_len, vi_channels;
static char *header, *oggbuf;
-static ogg_int64_t *chunk_table, max_chunk_len;
-struct audio_format *af;
+static ssize_t *chunk_table, max_chunk_len;
+struct audio_format_handler *af;
static long vi_sampling_rate, vi_bitrate, vi_bitrate_nominal,
num_chunks;
static void ogg_compute_chunk_table(double time_total)
{
int i, ret, num;
- ogg_int64_t pos = 0, min = 0, old_pos;
+ ssize_t pos = 0, min = 0, old_pos;
old_pos = 0;
ret = 0;
break;
pos = ov_raw_tell(oggvorbis_file);
diff = pos - old_pos;
- max_chunk_len = MAX(max_chunk_len, diff);
- min = (i == 1)? diff : MIN(min, diff);
+ max_chunk_len = PARA_MAX(max_chunk_len, diff);
+ min = (i == 1)? diff : PARA_MIN(min, diff);
chunk_table[i] = pos;
if (i < 11 || !((i - 1) % 1000)|| i > num - 11)
- PARA_DEBUG_LOG("chunk #%d: %g secs, pos: %lli, "
- "size: %lli\n", i - 1,
+ PARA_DEBUG_LOG("chunk #%d: %g secs, pos: %zd, "
+ "size: %zd\n", i - 1,
i * chunk_time, pos, pos - old_pos);
old_pos = pos;
}
num_chunks = i - 1;
chunk_table[i] = pos;
tunetable();
- PARA_INFO_LOG("%li chunks (%fs), max chunk: %lli, min chunk: %lli\n",
+ PARA_INFO_LOG("%li chunks (%fs), max chunk: %zd, min chunk: %zd\n",
num_chunks, chunk_time, max_chunk_len, min);
rewind(infile);
}
return header;
}
-void ogg_init(void *p)
+static const char* ogg_suffixes[] = {"ogg", NULL};
+void ogg_init(struct audio_format_handler *p)
{
af = p;
af->reposition_stream = ogg_reposition_stream;
af->chunk_tv.tv_sec = 0;
af->chunk_tv.tv_usec = 250 * 1000;
tv_scale(3, &af->chunk_tv, &af->eof_tv);
+ af->suffixes = ogg_suffixes;
}