summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ext/flac/gstflacenc.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/ext/flac/gstflacenc.c b/ext/flac/gstflacenc.c
index d8928a0c..a0f9fb91 100644
--- a/ext/flac/gstflacenc.c
+++ b/ext/flac/gstflacenc.c
@@ -335,14 +335,6 @@ gst_flacenc_init (FlacEnc *flacenc)
flacenc->encoder = FLAC__seekable_stream_encoder_new();
- 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_client_data (flacenc->encoder,
- flacenc);
-
flacenc->negotiated = FALSE;
flacenc->first = TRUE;
flacenc->first_buf = NULL;
@@ -580,6 +572,15 @@ gst_flacenc_chain (GstPad *pad, GstData *_data)
FLAC__SEEKABLE_STREAM_ENCODER_UNINITIALIZED)
{
FLAC__SeekableStreamEncoderState 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_client_data (flacenc->encoder,
+ flacenc);
+
gst_flacenc_set_metadata (flacenc);
state = FLAC__seekable_stream_encoder_init (flacenc->encoder);
if (state != FLAC__STREAM_ENCODER_OK) {