/*
- * Copyright (C) 2006 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2007 Andre Noll <maan@systemlinux.org>
*
* 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
#include "server.cmdline.h"
#include "server.h"
-#include "afs.h"
+#include "vss.h"
+#include "afh.h"
#include "error.h"
#include "string.h"
#include "aac.h"
#include "fd.h"
-/* must be big enough to hold header */
+/** size of the input buffer, must be big enough to hold header */
#define DEFAULT_INBUF_SIZE 65536
static FILE *infile;
static int inbuf_size;
static unsigned char *inbuf;
static size_t inbuf_len;
-struct audio_format_handler *af;
+static struct audio_format_handler *af;
static size_t num_chunks;
static size_t entry;
static size_t *chunk_table;
-NeAACDecHandle handle;
+static NeAACDecHandle handle;
static void aac_close_audio_file(void)
{
PARA_DEBUG_LOG("offset #%d: %zu\n", i, chunk_table[i]);
}
return 1;
-
}
-long unsigned aac_set_chunk_tv(mp4AudioSpecificConfig *mp4ASC)
+static long unsigned aac_set_chunk_tv(mp4AudioSpecificConfig *mp4ASC)
{
float tmp = mp4ASC->sbr_present_flag == 1? 2047 : 1023,
ms = 1000.0 * num_chunks * tmp / mp4ASC->samplingFrequency;
"audio_file_info3:\n",
num_chunks,
tv2ms(&af->chunk_tv));
+ tv_scale(20, &af->chunk_tv, &af->eof_tv);
return 1;
}
/*
- * Simple stream reposition routine
+ * nothing to do as we'll seek to the correct offset in aac read_chunk() anyway
*/
-static int aac_reposition_stream(long unsigned request)
+static int aac_reposition_stream(__a_unused long unsigned request)
{
return 1;
-// return -E_AAC_REPOS;
}
static char *aac_read_chunk(long unsigned current_chunk, ssize_t *len)
return (char *)inbuf;
}
-static const char* aac_suffixes[] = {"m4a", NULL};
+static const char* aac_suffixes[] = {"m4a", "mp4", NULL};
/** the init function of the aac audio format handler */
void aac_afh_init(struct audio_format_handler *p)
{
af->read_chunk = aac_read_chunk;
af->close_audio_file = aac_close_audio_file;
af->get_header_info = NULL;
- tv_scale(3, &af->chunk_tv, &af->eof_tv);
af->suffixes = aac_suffixes;
}