X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=audiod.c;h=a5a774376b37c50eba92a76a02b1389bd6df67f4;hb=refs%2Fheads%2Fpu;hp=0d8f039c768938bd563b7f928cb7a9aa0f2776ab;hpb=420a1f30cc06482f36371d096635846f8800e198;p=paraslash.git diff --git a/audiod.c b/audiod.c index 0d8f039c..a03a4bda 100644 --- a/audiod.c +++ b/audiod.c @@ -46,8 +46,9 @@ static struct lls_parse_result *lpr; #define OPT_UINT32_VAL(_name) (lls_uint32_val(0, OPT_RESULT(_name))) __printf_2_3 void (*para_log)(int, const char*, ...) = daemon_log; -/** define the array containing all supported audio formats */ -const char *audio_formats[] = {AUDIOD_AUDIO_FORMAT_ARRAY NULL}; +/* Audio formats supported by audiod */ +static const char *audio_formats[] = {AUDIOD_AUDIO_FORMAT_ARRAY}; +#define NUM_AUDIO_FORMATS ARRAY_SIZE(audio_formats) /** Defines how audiod handles one supported audio format. */ struct audio_format_info { @@ -290,7 +291,7 @@ static int get_play_time_slot_num(void) * * \return A string that must be freed by the caller. */ -char *get_time_string(void) +__malloc char *get_time_string(void) { int ret, seconds = 0, length = stat_task->length_seconds; struct timeval *tmp, sum, sss, /* server stream start */ @@ -828,11 +829,14 @@ static int parse_stream_command(const char *txt, const char **cmd) static int add_filter(int format, const char *cmdline) { struct audio_format_info *a = &afi[format]; - int filter_num, nf = a->num_filters; + int ret, filter_num, nf = a->num_filters; void *cfg; struct lls_parse_result *flpr; - filter_num = filter_setup(cmdline, &cfg, &flpr); + ret = filter_setup(cmdline, &cfg, &flpr); + if (ret < 0) + return ret; + filter_num = ret; a->filter_lpr = arr_realloc(a->filter_lpr, nf + 1, sizeof(flpr)); a->filter_conf = arr_realloc(a->filter_conf, nf + 1, sizeof(void *)); a->filter_nums = arr_realloc(a->filter_nums, nf + 1, sizeof(unsigned)); @@ -1517,5 +1521,6 @@ out: PARA_ERROR_LOG("%s\n", errctx); if (ret < 0) PARA_EMERG_LOG("%s\n", para_strerror(-ret)); + free(get_confdir()); return ret < 0? EXIT_FAILURE : EXIT_SUCCESS; }