* Copyright (c) 2007-2012 Xiph.Org Foundation
* Copyright (C) 2012 Andre Noll <maan@tuebingen.mpg.de>
*
- * Licensed under the GPL v2. For licencing details see COPYING.
+ * Licensed under the GPL v2, see file COPYING.
*/
/** \file opusdec_filter.c The ogg/opus decoder. */
#include "para.h"
#include "list.h"
#include "sched.h"
-#include "ggo.h"
#include "buffer_tree.h"
#include "filter.h"
#include "error.h"
ogg_page ogg_page;
bool eos;
int channels;
- int preskip;
+ uint16_t preskip;
bool have_opus_stream;
bool have_more;
ogg_int32_t opus_serialno;
static void opusdec_add_output(short *pcm, int frames_available,
struct btr_node *btrn, struct opusdec_context *ctx)
{
- int tmp_skip, num_frames, bytes;
+ int num_frames, bytes;
+ uint16_t tmp_skip;
- tmp_skip = PARA_MIN(ctx->preskip, frames_available);
+ tmp_skip = PARA_MIN((int)ctx->preskip, frames_available);
ctx->preskip -= tmp_skip;
num_frames = frames_available - tmp_skip;
if (num_frames <= 0)
return sched_min_delay(s);
}
-/**
- * The init function of the opusdec filter.
- *
- * \param f Pointer to the filter struct to initialize.
- *
- * \sa filter::init.
- */
-void opusdec_filter_init(struct filter *f)
-{
- f->open = opusdec_open;
- f->close = opusdec_close;
- f->pre_select = opusdec_pre_select;
- f->post_select = opusdec_post_select;
- f->execute = opusdec_execute;
-}
+const struct filter lsg_filter_cmd_com_opusdec_user_data = {
+ .open = opusdec_open,
+ .close = opusdec_close,
+ .pre_select = opusdec_pre_select,
+ .post_select = opusdec_post_select,
+ .execute = opusdec_execute,
+};