X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=spxdec_filter.c;h=7be817ddaa49bf97e5d4025c43be63b42da9cd4c;hp=3266d090a8a8d24674963422b63883718cf3cfe8;hb=HEAD;hpb=b59e841036a107b52a0221e48d7e05f86da92979 diff --git a/spxdec_filter.c b/spxdec_filter.c index 3266d090..08eac02a 100644 --- a/spxdec_filter.c +++ b/spxdec_filter.c @@ -2,7 +2,7 @@ * Copyright (C) 2002-2006 Jean-Marc Valin * Copyright (C) 2010 Andre Noll * - * Licensed under the GPL v2. For licencing details see COPYING. + * Licensed under the GPL v2, see file COPYING. */ /** \file spxdec_filter.c Paraslash's ogg/speex decoder. */ @@ -48,6 +48,7 @@ #include #include "para.h" +#include "portable_io.h" #include "list.h" #include "sched.h" #include "buffer_tree.h" @@ -80,7 +81,7 @@ struct private_spxdec_data { static void spxdec_open(struct filter_node *fn) { - struct private_spxdec_data *psd = para_calloc(sizeof(*psd)); + struct private_spxdec_data *psd = zalloc(sizeof(*psd)); fn->private_data = psd; fn->min_iqs = 200; @@ -121,12 +122,6 @@ static int speexdec_init(struct filter_node *fn) return 1; } -#if !defined(__LITTLE_ENDIAN__) && ( defined(WORDS_BIGENDIAN) || defined(__BIG_ENDIAN__) ) -#define le_short(s) ((short) ((unsigned short) (s) << 8) | ((unsigned short) (s) >> 8)) -#else -#define le_short(s) ((short) (s)) -#endif - /** * Size of the output buffer. * @@ -176,9 +171,9 @@ static int speexdec_write_frames(int packet_no, if (new_frame_size <= 0) continue; samples = new_frame_size * psd->shi.channels; - btr_output = para_malloc(2 * samples); + btr_output = arr_alloc(samples, 2); for (i = 0; i < samples; i++) - btr_output[i] = le_short(output[i + skip_idx]); + btr_output[i] = read_u16(output + i + skip_idx); btr_add_output((char *)btr_output, samples * 2, btrn); } return 1; @@ -251,7 +246,7 @@ static int compute_skip_samples(ogg_page *og, struct private_spxdec_data *psd) return ret; } -static int speexdec_post_select(__a_unused struct sched *s, void *context) +static int speexdec_post_monitor(__a_unused struct sched *s, void *context) { struct filter_node *fn = context; struct private_spxdec_data *psd = fn->private_data; @@ -310,7 +305,7 @@ fail: const struct filter lsg_filter_cmd_com_spxdec_user_data = { .open = spxdec_open, .close = speexdec_close, - .pre_select = generic_filter_pre_select, - .post_select = speexdec_post_select, + .pre_monitor = generic_filter_pre_monitor, + .post_monitor = speexdec_post_monitor, .execute = speexdec_execute, };