ext/flac/gstflacdec.c: Correctly post an error on the bus if something went wrong in the loop function. This fixes a ...

Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_dec_loop):
Correctly post an error on the bus if something went wrong in the loop
function. This fixes a few cases where the task was paused and nothing
happened anymore.
This commit is contained in:
Sebastian Dröge 2007-05-02 17:08:09 +00:00
parent 2c47f4d658
commit b64fd034a5
2 changed files with 16 additions and 4 deletions

View file

@ -1,3 +1,10 @@
2007-05-02 Sebastian Dröge <slomo@circular-chaos.org>
* ext/flac/gstflacdec.c: (gst_flac_dec_loop):
Correctly post an error on the bus if something went wrong in the loop
function. This fixes a few cases where the task was paused and nothing
happened anymore.
2007-05-02 Wim Taymans <wim@fluendo.com>
* gst/rtsp/test.c: (main):

View file

@ -52,6 +52,7 @@
#include <string.h>
#include "gstflacdec.h"
#include <gst/gst-i18n-plugin.h>
#include <gst/gsttagsetter.h>
#include <gst/tag/tag.h>
@ -931,10 +932,14 @@ analyze_state:
case FLAC__SEEKABLE_STREAM_DECODER_SEEKING:{
GST_DEBUG_OBJECT (flacdec, "everything ok");
if (flacdec->last_flow != GST_FLOW_OK &&
flacdec->last_flow != GST_FLOW_NOT_LINKED) {
GST_DEBUG_OBJECT (flacdec, "last_flow return was %s, pausing",
gst_flow_get_name (flacdec->last_flow));
if (GST_FLOW_IS_FATAL (flacdec->last_flow) ||
flacdec->last_flow == GST_FLOW_NOT_LINKED) {
GST_ELEMENT_ERROR (flacdec, STREAM, FAILED,
(_("Internal data stream error.")),
("stream stopped, reason %s",
gst_flow_get_name (flacdec->last_flow)));
goto eos_and_pause;
} else if (flacdec->last_flow != GST_FLOW_OK) {
goto pause;
}