summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-10-31 09:00:49 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-10-31 11:11:32 +0200
commit9ba6fb86d8e63a83031824d25d633116e78b4c66 (patch)
tree3702282618a6156fcfe246009e077c7b1ea42bd8
parent1dc1ee2ae34574fd764a913dcb499dc1e36b8a26 (diff)
wavparse: Don't try to add srcpad if we don't know valid caps yet
Otherwise we'll run into an assertion on specially crafted files. https://bugzilla.gnome.org/show_bug.cgi?id=773643
-rw-r--r--gst/wavparse/gstwavparse.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c
index 6650d183b..49bc03cc6 100644
--- a/gst/wavparse/gstwavparse.c
+++ b/gst/wavparse/gstwavparse.c
@@ -2216,7 +2216,7 @@ pause:
else if (wav->segment.rate < 0.0)
wav->segment.position = wav->segment.start;
}
- if (wav->state == GST_WAVPARSE_START) {
+ if (wav->state == GST_WAVPARSE_START || !wav->caps) {
GST_ELEMENT_ERROR (wav, STREAM, WRONG_TYPE, (NULL),
("No valid input found before end of stream"));
gst_pad_push_event (wav->srcpad, gst_event_new_eos ());
@@ -2427,7 +2427,7 @@ gst_wavparse_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
break;
}
case GST_EVENT_EOS:
- if (wav->state == GST_WAVPARSE_START) {
+ if (wav->state == GST_WAVPARSE_START || !wav->caps) {
GST_ELEMENT_ERROR (wav, STREAM, WRONG_TYPE, (NULL),
("No valid input found before end of stream"));
} else {