openbsd-ports/devel/gstreamer-plugins/patches/patch-ext_flac_gstflacdec_c

266 lines
11 KiB
Plaintext

$OpenBSD: patch-ext_flac_gstflacdec_c,v 1.1 2007/09/18 18:33:25 naddy Exp $
--- ext/flac/gstflacdec.c.orig Mon Sep 17 16:49:23 2007
+++ ext/flac/gstflacdec.c Mon Sep 17 17:44:21 2007
@@ -69,27 +69,27 @@ static gboolean gst_flacdec_src_query (GstPad * pad, G
static const GstEventMask *gst_flacdec_get_src_event_masks (GstPad * pad);
static gboolean gst_flacdec_src_event (GstPad * pad, GstEvent * event);
-static FLAC__SeekableStreamDecoderReadStatus
-gst_flacdec_read (const FLAC__SeekableStreamDecoder * decoder,
- FLAC__byte buffer[], unsigned *bytes, void *client_data);
-static FLAC__SeekableStreamDecoderSeekStatus
-gst_flacdec_seek (const FLAC__SeekableStreamDecoder * decoder,
+static FLAC__StreamDecoderReadStatus
+gst_flacdec_read (const FLAC__StreamDecoder * decoder,
+ FLAC__byte buffer[], size_t *bytes, void *client_data);
+static FLAC__StreamDecoderSeekStatus
+gst_flacdec_seek (const FLAC__StreamDecoder * decoder,
FLAC__uint64 position, void *client_data);
-static FLAC__SeekableStreamDecoderTellStatus
-gst_flacdec_tell (const FLAC__SeekableStreamDecoder * decoder,
+static FLAC__StreamDecoderTellStatus
+gst_flacdec_tell (const FLAC__StreamDecoder * decoder,
FLAC__uint64 * position, void *client_data);
-static FLAC__SeekableStreamDecoderLengthStatus
-gst_flacdec_length (const FLAC__SeekableStreamDecoder * decoder,
+static FLAC__StreamDecoderLengthStatus
+gst_flacdec_length (const FLAC__StreamDecoder * decoder,
FLAC__uint64 * length, void *client_data);
-static FLAC__bool gst_flacdec_eof (const FLAC__SeekableStreamDecoder * decoder,
+static FLAC__bool gst_flacdec_eof (const FLAC__StreamDecoder * decoder,
void *client_data);
static FLAC__StreamDecoderWriteStatus
-gst_flacdec_write (const FLAC__SeekableStreamDecoder * decoder,
+gst_flacdec_write (const FLAC__StreamDecoder * decoder,
const FLAC__Frame * frame,
const FLAC__int32 * const buffer[], void *client_data);
-static void gst_flacdec_metadata_callback (const FLAC__SeekableStreamDecoder *
+static void gst_flacdec_metadata_callback (const FLAC__StreamDecoder *
decoder, const FLAC__StreamMetadata * metadata, void *client_data);
-static void gst_flacdec_error_callback (const FLAC__SeekableStreamDecoder *
+static void gst_flacdec_error_callback (const FLAC__StreamDecoder *
decoder, FLAC__StreamDecoderErrorStatus status, void *client_data);
static GstElementClass *parent_class = NULL;
@@ -194,40 +194,14 @@ gst_flacdec_init (FlacDec * flacdec)
gst_pad_set_event_function (flacdec->srcpad, gst_flacdec_src_event);
gst_pad_use_explicit_caps (flacdec->srcpad);
- flacdec->decoder = FLAC__seekable_stream_decoder_new ();
+ flacdec->decoder = FLAC__stream_decoder_new ();
flacdec->total_samples = 0;
flacdec->init = TRUE;
flacdec->eos = FALSE;
flacdec->seek_pending = FALSE;
- FLAC__seekable_stream_decoder_set_read_callback (flacdec->decoder,
- gst_flacdec_read);
- FLAC__seekable_stream_decoder_set_seek_callback (flacdec->decoder,
- gst_flacdec_seek);
- FLAC__seekable_stream_decoder_set_tell_callback (flacdec->decoder,
- gst_flacdec_tell);
- FLAC__seekable_stream_decoder_set_length_callback (flacdec->decoder,
- gst_flacdec_length);
- FLAC__seekable_stream_decoder_set_eof_callback (flacdec->decoder,
- gst_flacdec_eof);
-#if FLAC_VERSION >= 0x010003
- FLAC__seekable_stream_decoder_set_write_callback (flacdec->decoder,
- gst_flacdec_write);
-#else
- FLAC__seekable_stream_decoder_set_write_callback (flacdec->decoder,
- (FLAC__StreamDecoderWriteStatus (*)
- (const FLAC__SeekableStreamDecoder * decoder,
- const FLAC__Frame * frame,
- const FLAC__int32 * buffer[], void *client_data))
- (gst_flacdec_write));
-#endif
- FLAC__seekable_stream_decoder_set_metadata_respond (flacdec->decoder,
+ FLAC__stream_decoder_set_metadata_respond (flacdec->decoder,
FLAC__METADATA_TYPE_VORBIS_COMMENT);
- FLAC__seekable_stream_decoder_set_metadata_callback (flacdec->decoder,
- gst_flacdec_metadata_callback);
- FLAC__seekable_stream_decoder_set_error_callback (flacdec->decoder,
- gst_flacdec_error_callback);
- FLAC__seekable_stream_decoder_set_client_data (flacdec->decoder, flacdec);
}
static void
@@ -238,7 +212,7 @@ gst_flacdec_finalize (GObject * object)
flacdec = GST_FLACDEC (object);
if (flacdec->decoder)
- FLAC__seekable_stream_decoder_delete (flacdec->decoder);
+ FLAC__stream_decoder_delete (flacdec->decoder);
flacdec->decoder = NULL;
G_OBJECT_CLASS (parent_class)->finalize (object);
@@ -287,7 +261,7 @@ gst_flacdec_update_metadata (FlacDec * flacdec,
static void
-gst_flacdec_metadata_callback (const FLAC__SeekableStreamDecoder * decoder,
+gst_flacdec_metadata_callback (const FLAC__StreamDecoder * decoder,
const FLAC__StreamMetadata * metadata, void *client_data)
{
FlacDec *flacdec;
@@ -307,7 +281,7 @@ gst_flacdec_metadata_callback (const FLAC__SeekableStr
}
static void
-gst_flacdec_error_callback (const FLAC__SeekableStreamDecoder * decoder,
+gst_flacdec_error_callback (const FLAC__StreamDecoder * decoder,
FLAC__StreamDecoderErrorStatus status, void *client_data)
{
FlacDec *flacdec;
@@ -333,8 +307,8 @@ gst_flacdec_error_callback (const FLAC__SeekableStream
GST_ELEMENT_ERROR (flacdec, STREAM, DECODE, (NULL), (error));
}
-static FLAC__SeekableStreamDecoderSeekStatus
-gst_flacdec_seek (const FLAC__SeekableStreamDecoder * decoder,
+static FLAC__StreamDecoderSeekStatus
+gst_flacdec_seek (const FLAC__StreamDecoder * decoder,
FLAC__uint64 position, void *client_data)
{
FlacDec *flacdec;
@@ -343,13 +317,13 @@ gst_flacdec_seek (const FLAC__SeekableStreamDecoder *
GST_DEBUG ("seek %" G_GINT64_FORMAT, position);
if (!gst_bytestream_seek (flacdec->bs, position, GST_SEEK_METHOD_SET)) {
- return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
+ return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
}
- return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
+ return FLAC__STREAM_DECODER_SEEK_STATUS_OK;
}
-static FLAC__SeekableStreamDecoderTellStatus
-gst_flacdec_tell (const FLAC__SeekableStreamDecoder * decoder,
+static FLAC__StreamDecoderTellStatus
+gst_flacdec_tell (const FLAC__StreamDecoder * decoder,
FLAC__uint64 * position, void *client_data)
{
FlacDec *flacdec;
@@ -358,15 +332,15 @@ gst_flacdec_tell (const FLAC__SeekableStreamDecoder *
*position = gst_bytestream_tell (flacdec->bs);
if (*position == -1)
- return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_ERROR;
+ return FLAC__STREAM_DECODER_TELL_STATUS_ERROR;
GST_DEBUG ("tell %" G_GINT64_FORMAT, *position);
- return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK;
+ return FLAC__STREAM_DECODER_TELL_STATUS_OK;
}
-static FLAC__SeekableStreamDecoderLengthStatus
-gst_flacdec_length (const FLAC__SeekableStreamDecoder * decoder,
+static FLAC__StreamDecoderLengthStatus
+gst_flacdec_length (const FLAC__StreamDecoder * decoder,
FLAC__uint64 * length, void *client_data)
{
FlacDec *flacdec;
@@ -375,15 +349,15 @@ gst_flacdec_length (const FLAC__SeekableStreamDecoder
*length = gst_bytestream_length (flacdec->bs);
if (*length == -1)
- return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_ERROR;
+ return FLAC__STREAM_DECODER_TELL_STATUS_ERROR;
GST_DEBUG ("length %" G_GINT64_FORMAT, *length);
- return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
+ return FLAC__STREAM_DECODER_LENGTH_STATUS_OK;
}
static FLAC__bool
-gst_flacdec_eof (const FLAC__SeekableStreamDecoder * decoder, void *client_data)
+gst_flacdec_eof (const FLAC__StreamDecoder * decoder, void *client_data)
{
FlacDec *flacdec;
@@ -393,9 +367,9 @@ gst_flacdec_eof (const FLAC__SeekableStreamDecoder * d
return flacdec->eos;
}
-static FLAC__SeekableStreamDecoderReadStatus
-gst_flacdec_read (const FLAC__SeekableStreamDecoder * decoder,
- FLAC__byte buffer[], unsigned *bytes, void *client_data)
+static FLAC__StreamDecoderReadStatus
+gst_flacdec_read (const FLAC__StreamDecoder * decoder,
+ FLAC__byte buffer[], size_t *bytes, void *client_data)
{
FlacDec *flacdec;
gint insize = 0;
@@ -444,11 +418,11 @@ gst_flacdec_read (const FLAC__SeekableStreamDecoder *
*bytes = insize;
gst_bytestream_flush_fast (flacdec->bs, insize);
- return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
+ return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
}
static FLAC__StreamDecoderWriteStatus
-gst_flacdec_write (const FLAC__SeekableStreamDecoder * decoder,
+gst_flacdec_write (const FLAC__StreamDecoder * decoder,
const FLAC__Frame * frame,
const FLAC__int32 * const buffer[], void *client_data)
{
@@ -563,20 +537,22 @@ gst_flacdec_loop (GstElement * element)
FLAC__StreamDecoderState res;
GST_DEBUG ("flacdec: initializing decoder");
- res = FLAC__seekable_stream_decoder_init (flacdec->decoder);
- if (res != FLAC__SEEKABLE_STREAM_DECODER_OK) {
+ res = FLAC__stream_decoder_init_stream (flacdec->decoder,
+ gst_flacdec_read, gst_flacdec_seek, gst_flacdec_tell,
+ gst_flacdec_length, gst_flacdec_eof, gst_flacdec_write,
+ gst_flacdec_metadata_callback, gst_flacdec_error_callback, flacdec);
+ if (res != FLAC__STREAM_DECODER_INIT_STATUS_OK) {
GST_ELEMENT_ERROR (flacdec, LIBRARY, INIT, (NULL),
- (FLAC__SeekableStreamDecoderStateString[res]));
+ (FLAC__StreamDecoderInitStatusString[res]));
return;
}
- /* FLAC__seekable_stream_decoder_process_metadata (flacdec->decoder); */
flacdec->init = FALSE;
}
if (flacdec->seek_pending) {
GST_DEBUG ("perform seek to sample %" G_GINT64_FORMAT, flacdec->seek_value);
- if (FLAC__seekable_stream_decoder_seek_absolute (flacdec->decoder,
+ if (FLAC__stream_decoder_seek_absolute (flacdec->decoder,
flacdec->seek_value)) {
flacdec->total_samples = flacdec->seek_value;
GST_DEBUG ("seek done");
@@ -587,14 +563,14 @@ gst_flacdec_loop (GstElement * element)
}
GST_DEBUG ("flacdec: processing single");
- res = FLAC__seekable_stream_decoder_process_single (flacdec->decoder);
+ res = FLAC__stream_decoder_process_single (flacdec->decoder);
GST_DEBUG ("flacdec: checking for EOS");
- if (FLAC__seekable_stream_decoder_get_state (flacdec->decoder) ==
- FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM) {
+ if (FLAC__stream_decoder_get_state (flacdec->decoder) ==
+ FLAC__STREAM_DECODER_END_OF_STREAM) {
GstEvent *event;
GST_DEBUG ("flacdec: sending EOS event");
- FLAC__seekable_stream_decoder_reset (flacdec->decoder);
+ FLAC__stream_decoder_reset (flacdec->decoder);
if (GST_PAD_IS_USABLE (flacdec->srcpad)) {
event = gst_event_new (GST_EVENT_EOS);
@@ -777,7 +753,7 @@ gst_flacdec_change_state (GstElement * element)
flacdec->total_samples = 0;
flacdec->eos = FALSE;
if (flacdec->init == FALSE) {
- FLAC__seekable_stream_decoder_reset (flacdec->decoder);
+ FLAC__stream_decoder_reset (flacdec->decoder);
}
break;
case GST_STATE_PAUSED_TO_PLAYING: