PARA_ERROR(OGGDEC_FAULT, "bug or heap/stack corruption"), \
PARA_ERROR(OGGDEC_BADLINK, "invalid stream section or requested link corrupt"), \
PARA_ERROR(OGGDEC_SYNTAX, "syntax error in oggdec config"), \
- PARA_ERROR(OGGDEC_EOF, "oggdec: end of file"), \
#define GRAB_CLIENT_ERRORS \
struct filter_node *fn = container_of(t, struct filter_node, task);
struct private_oggdec_data *pod = fn->private_data;
struct btr_node *btrn = fn->btrn;
- size_t iqs, len;
- int ret;
- char *in;
+ int ret, ns;
pod->converted = 0;
t->error = 0;
- ret = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL);
- if (ret <= 0)
- goto out;
- btr_merge(btrn, fn->min_iqs);
- len = btr_next_buffer(btrn, &in);
- iqs = btr_get_input_queue_size(btrn);
+ ret = ns = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL);
if (!pod->vf) {
+ if (ret <= 0)
+ goto out;
+ btr_merge(btrn, fn->min_iqs);
ret = ogg_init(fn);
if (ret <= 0)
goto out;
pod->converted = 0;
if (read_ret <= 0)
free(out);
- if (read_ret == 0) {
- if (btr_no_parent(btrn))
- ret = -E_OGGDEC_EOF;
- else
- ret = 0;
- goto out;
- }
- ret = 0;
- if (read_ret == OV_HOLE)
+ ret = ns;
+ if (read_ret == 0 || read_ret == OV_HOLE)
goto out;
ret = -E_OGGDEC_BADLINK;
if (read_ret < 0)