X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=aac_afh.c;h=55efeefa1d7dc1b067e23da06294a7fb222e9304;hp=b091db03df14212bdb3d91a36c737b24170cd64f;hb=e921be422a216b87e3e6812f16b27c9a6927099d;hpb=2349dbb8c69a97f271c8cb8440016ac5afc34dab diff --git a/aac_afh.c b/aac_afh.c index b091db03..55efeefa 100644 --- a/aac_afh.c +++ b/aac_afh.c @@ -28,6 +28,7 @@ #include "error.h" #include "string.h" #include "aac.h" +#include "fd.h" /* must be big enough to hold header */ #define DEFAULT_INBUF_SIZE 65536 @@ -36,16 +37,19 @@ static FILE *infile; static int inbuf_size; static unsigned char *inbuf; static size_t inbuf_len; -struct audio_format *af; +struct audio_format_handler *af; static size_t num_chunks; static size_t entry; static size_t *chunk_table; NeAACDecHandle handle; - static void aac_close_audio_file(void) { + if (!infile) + return; + fclose(infile); + infile = NULL; } static int aac_find_stsz(unsigned char *buf, unsigned buflen, size_t *skip) @@ -197,16 +201,6 @@ static int aac_reposition_stream(long unsigned request) // return -E_AAC_REPOS; } -static __must_check int para_fread(void *ptr, size_t size, size_t nmemb, FILE *stream) -{ - size_t res = fread(ptr, size, nmemb, stream); - if (res == nmemb) - return size * nmemb; - if (feof(stream)) - return 0; - return -E_FREAD; -} - static char *aac_read_chunk(long unsigned current_chunk, ssize_t *len) { int ret; @@ -239,6 +233,8 @@ static char *aac_read_chunk(long unsigned current_chunk, ssize_t *len) return (char *)inbuf; } +static const char* aac_suffixes[] = {"m4a", NULL}; +/** the init function of the aac audio format handler */ void aac_afh_init(void *p) { af = p; @@ -250,4 +246,5 @@ void aac_afh_init(void *p) af->chunk_tv.tv_sec = 0; af->chunk_tv.tv_usec = 23120; tv_scale(3, &af->chunk_tv, &af->eof_tv); + af->suffixes = aac_suffixes; }