+/**
+ * Copyright (C) 2011-2012 Juho Vähä-Herttua
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
#include <stdlib.h>
#include <string.h>
#include <assert.h>
get_fmtp_info(ALACSpecificConfig *config, const char *fmtp)
{
int intarr[12];
+ char *original;
char *strptr;
int i;
/* Parse fmtp string to integers */
- strptr = strdup(fmtp);
+ original = strptr = strdup(fmtp);
for (i=0; i<12; i++) {
if (strptr == NULL) {
- free(strptr);
+ free(original);
return -1;
}
intarr[i] = atoi(utils_strsep(&strptr, " "));
}
- free(strptr);
- strptr = NULL;
+ free(original);
+ original = strptr = NULL;
/* Fill the config struct */
config->frameLength = intarr[1];
}
raop_buffer_t *
-raop_buffer_init(const char *fmtp,
+raop_buffer_init(const char *rtpmap,
+ const char *fmtp,
const unsigned char *aeskey,
const unsigned char *aesiv)
{
ALACSpecificConfig *alacConfig;
int i;
+ assert(rtpmap);
assert(fmtp);
assert(aeskey);
assert(aesiv);
raop_buffer_entry_t *entry = &raop_buffer->entries[i];
entry->audio_buffer_size = audio_buffer_size;
entry->audio_buffer_len = 0;
- entry->audio_buffer = raop_buffer->buffer+i*audio_buffer_size;
+ entry->audio_buffer = (char *)raop_buffer->buffer+i*audio_buffer_size;
}
/* Initialize ALAC decoder */
raop_buffer_destroy(raop_buffer_t *raop_buffer)
{
if (raop_buffer) {
+ destroy_alac(raop_buffer->alac);
free(raop_buffer->buffer);
- free(raop_buffer->alac);
free(raop_buffer);
}
}