#include "afh.h"
#include "error.h"
#include "string.h"
-#include "fd.h"
/** must be big enough to hold header */
#define CHUNK_SIZE 32768
static OggVorbis_File *oggvorbis_file;
static int header_len;
static char *header;
-static ssize_t *chunk_table, num_chunks;
+static ssize_t *chunk_table;
static struct audio_format_handler *af;
-static long vi_sampling_rate, vi_bitrate, vi_bitrate_nominal;
static int ogg_compute_header_len(FILE *file)
{
return ret;
}
-static void tunetable(void)
+static void tunetable(long unsigned num_chunks)
{
int i = 1, j = -1, lp = 1;
while (i < num_chunks) {
* offset in the current input file at which the sample containing time i *
* CHUNK_TIME begins.
*/
-static void ogg_compute_chunk_table(double time_total)
+static long unsigned ogg_compute_chunk_table(double time_total)
{
int i, ret, num;
ssize_t max_chunk_len, pos = 0, min = 0, old_pos;
+ long unsigned num_chunks;
old_pos = 0;
ret = 0;
}
num_chunks = i - 1;
chunk_table[i] = pos;
- tunetable();
+ tunetable(num_chunks);
PARA_INFO_LOG("%zu chunks (%fs), max chunk: %zd, min chunk: %zd\n",
num_chunks, chunk_time, max_chunk_len, min);
+ return num_chunks;
}
static void ogg_close_audio_file(void)
header_len = 0;
free(chunk_table);
chunk_table = NULL;
- num_chunks = 0;
}
static int ogg_save_header(FILE *file, int len)
double time_total;
vorbis_info *vi;
ogg_int64_t raw_total;
+ long vi_sampling_rate, vi_bitrate;
if (!file)
return -E_OGG_NO_FILE;
*seconds = time_total;
vi_sampling_rate = vi->rate;
vi_bitrate = ov_bitrate(oggvorbis_file, 0);
- vi_bitrate_nominal = vi->bitrate_nominal;
rewind(file);
- ogg_compute_chunk_table(time_total);
+ *frames = 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"
+ sprintf(info_str, "audio_file_info1:%lu x %lu, %ldkHz, %d channels, %ldkbps\n"
"audio_file_info2: \n"
"audio_file_info3: \n",
- num_chunks, (long unsigned) (chunk_time * 1000 * 1000),
+ *frames, (long unsigned) (chunk_time * 1000 * 1000),
vi_sampling_rate / 1000, vi->channels, vi_bitrate / 1000
);
rewind(file);