$OpenBSD: patch-ext_flac_gstflacenc_c,v 1.1 2007/09/18 18:33:25 naddy Exp $
--- ext/flac/gstflacenc.c.orig	Mon Aug 29 13:50:49 2005
+++ ext/flac/gstflacenc.c	Mon Sep 17 22:51:14 2007
@@ -81,11 +81,11 @@ static void gst_flacenc_get_property (GObject * object
 static GstElementStateReturn gst_flacenc_change_state (GstElement * element);
 
 static FLAC__StreamEncoderWriteStatus
-gst_flacenc_write_callback (const FLAC__SeekableStreamEncoder * encoder,
-    const FLAC__byte buffer[], unsigned bytes,
+gst_flacenc_write_callback (const FLAC__StreamEncoder * encoder,
+    const FLAC__byte buffer[], size_t bytes,
     unsigned samples, unsigned current_frame, void *client_data);
-static FLAC__SeekableStreamEncoderSeekStatus
-gst_flacenc_seek_callback (const FLAC__SeekableStreamEncoder * encoder,
+static FLAC__StreamEncoderSeekStatus
+gst_flacenc_seek_callback (const FLAC__StreamEncoder * encoder,
     FLAC__uint64 absolute_byte_offset, void *client_data);
 
 static GstElementClass *parent_class = NULL;
@@ -328,7 +328,7 @@ gst_flacenc_init (FlacEnc * flacenc)
 
   GST_FLAG_SET (flacenc, GST_ELEMENT_EVENT_AWARE);
 
-  flacenc->encoder = FLAC__seekable_stream_encoder_new ();
+  flacenc->encoder = FLAC__stream_encoder_new ();
 
   flacenc->negotiated = FALSE;
   flacenc->offset = 0;
@@ -344,7 +344,7 @@ gst_flacenc_finalize (GObject * object)
 {
   FlacEnc *flacenc = GST_FLACENC (object);
 
-  FLAC__seekable_stream_encoder_delete (flacenc->encoder);
+  FLAC__stream_encoder_delete (flacenc->encoder);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -373,11 +373,11 @@ gst_flacenc_sinkconnect (GstPad * pad, const GstCaps *
     return ret;
   }
 
-  FLAC__seekable_stream_encoder_set_bits_per_sample (flacenc->encoder,
+  FLAC__stream_encoder_set_bits_per_sample (flacenc->encoder,
       flacenc->depth);
-  FLAC__seekable_stream_encoder_set_sample_rate (flacenc->encoder,
+  FLAC__stream_encoder_set_sample_rate (flacenc->encoder,
       flacenc->sample_rate);
-  FLAC__seekable_stream_encoder_set_channels (flacenc->encoder,
+  FLAC__stream_encoder_set_channels (flacenc->encoder,
       flacenc->channels);
 
   flacenc->negotiated = TRUE;
@@ -392,9 +392,9 @@ gst_flacenc_update_quality (FlacEnc * flacenc, gint qu
 
 #define DO_UPDATE(name, val, str) 	                    	\
   G_STMT_START {                                                \
-    if (FLAC__seekable_stream_encoder_get_##name (flacenc->encoder) != 	\
+    if (FLAC__stream_encoder_get_##name (flacenc->encoder) != 	\
         flacenc_params[quality].val) {        			\
-      FLAC__seekable_stream_encoder_set_##name (flacenc->encoder, 	\
+      FLAC__stream_encoder_set_##name (flacenc->encoder, 	\
           flacenc_params[quality].val);				\
       g_object_notify (G_OBJECT (flacenc), str);                \
     }                                                           \
@@ -429,8 +429,8 @@ gst_flacenc_update_quality (FlacEnc * flacenc, gint qu
   return TRUE;
 }
 
-static FLAC__SeekableStreamEncoderSeekStatus
-gst_flacenc_seek_callback (const FLAC__SeekableStreamEncoder * encoder,
+static FLAC__StreamEncoderSeekStatus
+gst_flacenc_seek_callback (const FLAC__StreamEncoder * encoder,
     FLAC__uint64 absolute_byte_offset, void *client_data)
 {
   FlacEnc *flacenc;
@@ -454,8 +454,8 @@ gst_flacenc_seek_callback (const FLAC__SeekableStreamE
 }
 
 static FLAC__StreamEncoderWriteStatus
-gst_flacenc_write_callback (const FLAC__SeekableStreamEncoder * encoder,
-    const FLAC__byte buffer[], unsigned bytes,
+gst_flacenc_write_callback (const FLAC__StreamEncoder * encoder,
+    const FLAC__byte buffer[], size_t bytes,
     unsigned samples, unsigned current_frame, void *client_data)
 {
   FlacEnc *flacenc;
@@ -482,8 +482,8 @@ gst_flacenc_write_callback (const FLAC__SeekableStream
   return FLAC__STREAM_ENCODER_OK;
 }
 
-static FLAC__SeekableStreamEncoderTellStatus
-gst_flacenc_tell_callback (const FLAC__SeekableStreamEncoder * encoder,
+static FLAC__StreamEncoderTellStatus
+gst_flacenc_tell_callback (const FLAC__StreamEncoder * encoder,
     FLAC__uint64 * absolute_byte_offset, void *client_data)
 {
   FlacEnc *flacenc = GST_FLACENC (client_data);
@@ -533,7 +533,7 @@ gst_flacenc_set_metadata (FlacEnc * flacenc)
       FLAC__metadata_object_new (FLAC__METADATA_TYPE_VORBIS_COMMENT);
   gst_tag_list_foreach (copy, add_one_tag, flacenc);
 
-  if (FLAC__seekable_stream_encoder_set_metadata (flacenc->encoder,
+  if (FLAC__stream_encoder_set_metadata (flacenc->encoder,
           flacenc->meta, 1) != true)
     g_warning ("Dude, i'm already initialized!");
   gst_tag_list_free (copy);
@@ -560,7 +560,7 @@ gst_flacenc_chain (GstPad * pad, GstData * _data)
 
     switch (GST_EVENT_TYPE (event)) {
       case GST_EVENT_EOS:
-        FLAC__seekable_stream_encoder_finish (flacenc->encoder);
+        FLAC__stream_encoder_finish (flacenc->encoder);
         break;
       case GST_EVENT_TAG:
         if (flacenc->tags) {
@@ -588,22 +588,15 @@ gst_flacenc_chain (GstPad * pad, GstData * _data)
   insize = GST_BUFFER_SIZE (buf);
   samples = insize / ((depth + 7) >> 3);
 
-  if (FLAC__seekable_stream_encoder_get_state (flacenc->encoder) ==
-      FLAC__SEEKABLE_STREAM_ENCODER_UNINITIALIZED) {
-    FLAC__SeekableStreamEncoderState state;
+  if (FLAC__stream_encoder_get_state (flacenc->encoder) ==
+      FLAC__STREAM_ENCODER_UNINITIALIZED) {
+    FLAC__StreamEncoderState state;
 
-    FLAC__seekable_stream_encoder_set_write_callback (flacenc->encoder,
-        gst_flacenc_write_callback);
-    FLAC__seekable_stream_encoder_set_seek_callback (flacenc->encoder,
-        gst_flacenc_seek_callback);
-    FLAC__seekable_stream_encoder_set_tell_callback (flacenc->encoder,
-        gst_flacenc_tell_callback);
-
-    FLAC__seekable_stream_encoder_set_client_data (flacenc->encoder, flacenc);
-
     gst_flacenc_set_metadata (flacenc);
-    state = FLAC__seekable_stream_encoder_init (flacenc->encoder);
-    if (state != FLAC__STREAM_ENCODER_OK) {
+    state = FLAC__stream_encoder_init_stream (flacenc->encoder,
+        gst_flacenc_write_callback, gst_flacenc_seek_callback,
+        gst_flacenc_tell_callback, NULL, flacenc);
+    if (state != FLAC__STREAM_ENCODER_INIT_STATUS_OK) {
       GST_ELEMENT_ERROR (flacenc, LIBRARY, INIT, (NULL),
           ("could not initialize encoder (wrong parameters?)"));
       return;
@@ -631,7 +624,7 @@ gst_flacenc_chain (GstPad * pad, GstData * _data)
 
   gst_buffer_unref (buf);
 
-  res = FLAC__seekable_stream_encoder_process_interleaved (flacenc->encoder,
+  res = FLAC__stream_encoder_process_interleaved (flacenc->encoder,
       (const FLAC__int32 *) data, samples / flacenc->channels);
 
   g_free (flacenc->data);
@@ -654,51 +647,51 @@ gst_flacenc_set_property (GObject * object, guint prop
       gst_flacenc_update_quality (this, g_value_get_enum (value));
       break;
     case ARG_STREAMABLE_SUBSET:
-      FLAC__seekable_stream_encoder_set_streamable_subset (this->encoder,
+      FLAC__stream_encoder_set_streamable_subset (this->encoder,
           g_value_get_boolean (value));
       break;
     case ARG_MID_SIDE_STEREO:
-      FLAC__seekable_stream_encoder_set_do_mid_side_stereo (this->encoder,
+      FLAC__stream_encoder_set_do_mid_side_stereo (this->encoder,
           g_value_get_boolean (value));
       break;
     case ARG_LOOSE_MID_SIDE_STEREO:
-      FLAC__seekable_stream_encoder_set_loose_mid_side_stereo (this->encoder,
+      FLAC__stream_encoder_set_loose_mid_side_stereo (this->encoder,
           g_value_get_boolean (value));
       break;
     case ARG_BLOCKSIZE:
-      FLAC__seekable_stream_encoder_set_blocksize (this->encoder,
+      FLAC__stream_encoder_set_blocksize (this->encoder,
           g_value_get_uint (value));
       break;
     case ARG_MAX_LPC_ORDER:
-      FLAC__seekable_stream_encoder_set_max_lpc_order (this->encoder,
+      FLAC__stream_encoder_set_max_lpc_order (this->encoder,
           g_value_get_uint (value));
       break;
     case ARG_QLP_COEFF_PRECISION:
-      FLAC__seekable_stream_encoder_set_qlp_coeff_precision (this->encoder,
+      FLAC__stream_encoder_set_qlp_coeff_precision (this->encoder,
           g_value_get_uint (value));
       break;
     case ARG_QLP_COEFF_PREC_SEARCH:
-      FLAC__seekable_stream_encoder_set_do_qlp_coeff_prec_search (this->encoder,
+      FLAC__stream_encoder_set_do_qlp_coeff_prec_search (this->encoder,
           g_value_get_boolean (value));
       break;
     case ARG_ESCAPE_CODING:
-      FLAC__seekable_stream_encoder_set_do_escape_coding (this->encoder,
+      FLAC__stream_encoder_set_do_escape_coding (this->encoder,
           g_value_get_boolean (value));
       break;
     case ARG_EXHAUSTIVE_MODEL_SEARCH:
-      FLAC__seekable_stream_encoder_set_do_exhaustive_model_search (this->
+      FLAC__stream_encoder_set_do_exhaustive_model_search (this->
           encoder, g_value_get_boolean (value));
       break;
     case ARG_MIN_RESIDUAL_PARTITION_ORDER:
-      FLAC__seekable_stream_encoder_set_min_residual_partition_order (this->
+      FLAC__stream_encoder_set_min_residual_partition_order (this->
           encoder, g_value_get_uint (value));
       break;
     case ARG_MAX_RESIDUAL_PARTITION_ORDER:
-      FLAC__seekable_stream_encoder_set_max_residual_partition_order (this->
+      FLAC__stream_encoder_set_max_residual_partition_order (this->
           encoder, g_value_get_uint (value));
       break;
     case ARG_RICE_PARAMETER_SEARCH_DIST:
-      FLAC__seekable_stream_encoder_set_rice_parameter_search_dist (this->
+      FLAC__stream_encoder_set_rice_parameter_search_dist (this->
           encoder, g_value_get_uint (value));
       break;
     default:
@@ -721,57 +714,57 @@ gst_flacenc_get_property (GObject * object, guint prop
       break;
     case ARG_STREAMABLE_SUBSET:
       g_value_set_boolean (value,
-          FLAC__seekable_stream_encoder_get_streamable_subset (this->encoder));
+          FLAC__stream_encoder_get_streamable_subset (this->encoder));
       break;
     case ARG_MID_SIDE_STEREO:
       g_value_set_boolean (value,
-          FLAC__seekable_stream_encoder_get_do_mid_side_stereo (this->encoder));
+          FLAC__stream_encoder_get_do_mid_side_stereo (this->encoder));
       break;
     case ARG_LOOSE_MID_SIDE_STEREO:
       g_value_set_boolean (value,
-          FLAC__seekable_stream_encoder_get_loose_mid_side_stereo (this->
+          FLAC__stream_encoder_get_loose_mid_side_stereo (this->
               encoder));
       break;
     case ARG_BLOCKSIZE:
       g_value_set_uint (value,
-          FLAC__seekable_stream_encoder_get_blocksize (this->encoder));
+          FLAC__stream_encoder_get_blocksize (this->encoder));
       break;
     case ARG_MAX_LPC_ORDER:
       g_value_set_uint (value,
-          FLAC__seekable_stream_encoder_get_max_lpc_order (this->encoder));
+          FLAC__stream_encoder_get_max_lpc_order (this->encoder));
       break;
     case ARG_QLP_COEFF_PRECISION:
       g_value_set_uint (value,
-          FLAC__seekable_stream_encoder_get_qlp_coeff_precision (this->
+          FLAC__stream_encoder_get_qlp_coeff_precision (this->
               encoder));
       break;
     case ARG_QLP_COEFF_PREC_SEARCH:
       g_value_set_boolean (value,
-          FLAC__seekable_stream_encoder_get_do_qlp_coeff_prec_search (this->
+          FLAC__stream_encoder_get_do_qlp_coeff_prec_search (this->
               encoder));
       break;
     case ARG_ESCAPE_CODING:
       g_value_set_boolean (value,
-          FLAC__seekable_stream_encoder_get_do_escape_coding (this->encoder));
+          FLAC__stream_encoder_get_do_escape_coding (this->encoder));
       break;
     case ARG_EXHAUSTIVE_MODEL_SEARCH:
       g_value_set_boolean (value,
-          FLAC__seekable_stream_encoder_get_do_exhaustive_model_search (this->
+          FLAC__stream_encoder_get_do_exhaustive_model_search (this->
               encoder));
       break;
     case ARG_MIN_RESIDUAL_PARTITION_ORDER:
       g_value_set_uint (value,
-          FLAC__seekable_stream_encoder_get_min_residual_partition_order (this->
+          FLAC__stream_encoder_get_min_residual_partition_order (this->
               encoder));
       break;
     case ARG_MAX_RESIDUAL_PARTITION_ORDER:
       g_value_set_uint (value,
-          FLAC__seekable_stream_encoder_get_max_residual_partition_order (this->
+          FLAC__stream_encoder_get_max_residual_partition_order (this->
               encoder));
       break;
     case ARG_RICE_PARAMETER_SEARCH_DIST:
       g_value_set_uint (value,
-          FLAC__seekable_stream_encoder_get_rice_parameter_search_dist (this->
+          FLAC__stream_encoder_get_rice_parameter_search_dist (this->
               encoder));
       break;
     default:
@@ -795,10 +788,10 @@ gst_flacenc_change_state (GstElement * element)
     case GST_STATE_PLAYING_TO_PAUSED:
       break;
     case GST_STATE_PAUSED_TO_READY:
-      if (FLAC__seekable_stream_encoder_get_state (flacenc->encoder) !=
+      if (FLAC__stream_encoder_get_state (flacenc->encoder) !=
           FLAC__STREAM_ENCODER_UNINITIALIZED) {
         flacenc->stopped = TRUE;
-        FLAC__seekable_stream_encoder_finish (flacenc->encoder);
+        FLAC__stream_encoder_finish (flacenc->encoder);
       }
       flacenc->negotiated = FALSE;
       flacenc->offset = 0;
