openbsd-ports/net/ices/patches/patch-src_in_vorbis_c
mgrimm 91005d0bd1 Support both flac-1.1.2 and flac-1.1.3+ updates, which removes net/ices as
a stumbling block for audio/flac updates. Identical to what is currently in
the upstream repository. Regen patches while here.

ok naddy@
2007-09-08 16:25:06 +00:00

39 lines
1.2 KiB
Plaintext

$OpenBSD: patch-src_in_vorbis_c,v 1.4 2007/09/08 16:25:06 mgrimm Exp $
--- src/in_vorbis.c.orig Mon Mar 22 04:13:13 2004
+++ src/in_vorbis.c Fri Sep 7 19:18:46 2007
@@ -44,7 +44,7 @@ typedef struct {
} ices_vorbis_in_t;
/* -- static prototypes -- */
-static int ices_vorbis_readpcm (input_stream_t* self, size_t len,
+static ssize_t ices_vorbis_readpcm (input_stream_t* self, size_t len,
int16_t* left, int16_t* right);
static int ices_vorbis_close (input_stream_t* self);
static void in_vorbis_parse (input_stream_t* self);
@@ -133,13 +133,13 @@ ices_vorbis_open (input_stream_t* self, char* buf, siz
return 0;
}
-static int
+static ssize_t
ices_vorbis_readpcm (input_stream_t* self, size_t olen, int16_t* left,
int16_t* right)
{
ices_vorbis_in_t* vorbis_data = (ices_vorbis_in_t*) self->data;
int link;
- int len;
+ ssize_t len;
int i;
/* refill buffer if necessary */
@@ -150,6 +150,9 @@ ices_vorbis_readpcm (input_stream_t* self, size_t olen
sizeof (vorbis_data->buf), ICES_OV_BE, SAMPLESIZE, 1, &link)) <= 0) {
if (len == OV_HOLE) {
ices_log_error ("Skipping bad vorbis data");
+ } else if (len < 0) {
+ ices_log_error ("ov_read returned an error: %d", len);
+ return 0;
} else
return len;
}