mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-01 12:02:27 +00:00
ext/flac/gstflacdec.c (gst_flacdec_write): Deal with pad_alloc error returns.
Original commit message from CVS: 2005-10-03 Andy Wingo <wingo@pobox.com> * ext/flac/gstflacdec.c (gst_flacdec_write): Deal with pad_alloc error returns.
This commit is contained in:
parent
94bcb7452d
commit
03f926ce2e
2 changed files with 14 additions and 5 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2005-10-03 Andy Wingo <wingo@pobox.com>
|
||||||
|
|
||||||
|
* ext/flac/gstflacdec.c (gst_flacdec_write): Deal with pad_alloc
|
||||||
|
error returns.
|
||||||
|
|
||||||
2005-10-02 Andy Wingo <wingo@pobox.com>
|
2005-10-02 Andy Wingo <wingo@pobox.com>
|
||||||
|
|
||||||
* configure.ac (GST_PLUGIN_LDFLAGS): Change to be like -base.
|
* configure.ac (GST_PLUGIN_LDFLAGS): Change to be like -base.
|
||||||
|
|
|
@ -464,9 +464,14 @@ gst_flacdec_write (const FLAC__SeekableStreamDecoder * decoder,
|
||||||
flacdec->frequency = frame->header.sample_rate;
|
flacdec->frequency = frame->header.sample_rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
gst_pad_alloc_buffer (flacdec->srcpad, flacdec->total_samples,
|
ret = gst_pad_alloc_buffer (flacdec->srcpad, flacdec->total_samples,
|
||||||
samples * channels * ((width + 7) >> 3), GST_PAD_CAPS (flacdec->srcpad),
|
samples * channels * ((width + 7) >> 3), GST_PAD_CAPS (flacdec->srcpad),
|
||||||
&outbuf);
|
&outbuf);
|
||||||
|
if (ret != GST_FLOW_NOT_LINKED && ret != GST_FLOW_OK) {
|
||||||
|
GST_DEBUG ("stopping flac decoder engine (%d)", (gint) ret);
|
||||||
|
return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT;
|
||||||
|
}
|
||||||
|
|
||||||
GST_BUFFER_TIMESTAMP (outbuf) =
|
GST_BUFFER_TIMESTAMP (outbuf) =
|
||||||
flacdec->total_samples * GST_SECOND / frame->header.sample_rate;
|
flacdec->total_samples * GST_SECOND / frame->header.sample_rate;
|
||||||
GST_BUFFER_DURATION (outbuf) =
|
GST_BUFFER_DURATION (outbuf) =
|
||||||
|
@ -786,12 +791,11 @@ gst_flacdec_sink_activate_pull (GstPad * sinkpad, gboolean active)
|
||||||
if (active) {
|
if (active) {
|
||||||
/* if we have a scheduler we can start the task */
|
/* if we have a scheduler we can start the task */
|
||||||
GST_FLACDEC (GST_OBJECT_PARENT (sinkpad))->offset = 0;
|
GST_FLACDEC (GST_OBJECT_PARENT (sinkpad))->offset = 0;
|
||||||
gst_pad_start_task (sinkpad, (GstTaskFunction) gst_flacdec_loop, sinkpad);
|
return gst_pad_start_task (sinkpad, (GstTaskFunction) gst_flacdec_loop,
|
||||||
|
sinkpad);
|
||||||
} else {
|
} else {
|
||||||
gst_pad_stop_task (sinkpad);
|
return gst_pad_stop_task (sinkpad);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstStateChangeReturn
|
static GstStateChangeReturn
|
||||||
|
|
Loading…
Reference in a new issue