summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gst/wavenc/gstwavenc.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gst/wavenc/gstwavenc.c b/gst/wavenc/gstwavenc.c
index 9f62fc7ac..29bfad41a 100644
--- a/gst/wavenc/gstwavenc.c
+++ b/gst/wavenc/gstwavenc.c
@@ -197,8 +197,6 @@ gst_wavenc_init (GstWavEnc * wavenc)
wavenc->srcpad = gst_pad_new_from_static_template (&src_factory, "src");
gst_pad_use_fixed_caps (wavenc->srcpad);
- gst_pad_set_caps (wavenc->srcpad,
- gst_static_pad_template_get_caps (&src_factory));
gst_element_add_pad (GST_ELEMENT (wavenc), wavenc->srcpad);
}
@@ -264,7 +262,10 @@ gst_wavenc_push_header (GstWavEnc * wavenc)
/* seek to beginning of file */
gst_segment_init (&segment, GST_FORMAT_BYTES);
- gst_pad_push_event (wavenc->srcpad, gst_event_new_segment (&segment));
+ if (!gst_pad_push_event (wavenc->srcpad, gst_event_new_segment (&segment))) {
+ GST_WARNING_OBJECT (wavenc, "Seek to the beginning failed");
+ return GST_FLOW_ERROR;
+ }
GST_DEBUG_OBJECT (wavenc, "writing header, meta_size=%u, audio_size=%u",
wavenc->meta_length, wavenc->audio_length);
@@ -854,6 +855,9 @@ gst_wavenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
}
if (G_UNLIKELY (!wavenc->sent_header)) {
+ gst_pad_set_caps (wavenc->srcpad,
+ gst_static_pad_template_get_caps (&src_factory));
+
/* starting a file, means we have to finish it properly */
wavenc->finished_properly = FALSE;