GNOME Bugzilla – Bug 144624
wavenc doesn't close file properly
Last modified: 2004-12-22 21:47:04 UTC
When the wavenc stops, it seeks to the beginning of the file to update the headers using event = gst_event_new_seek (GST_FORMAT_BYTES | GST_SEEK_METHOD_SET, 0); gst_pad_send_event (GST_PAD_PEER (wavenc->srcpad), event); It don't know why but this doesn't seek to the beginning. It can be fixed by using event = gst_event_new_seek (GST_FORMAT_BYTES | GST_SEEK_METHOD_SET, 0); gst_pad_push(wavenc->srcpad, GST_DATA(event)); I'm not sure if the bug is in gst_pad_send_event() or wavparse.
it should send a discontinuous event, seek events are upstream only.
*** Bug 144625 has been marked as a duplicate of this bug. ***
Actually, right now, seek/discont can be used interchangeably downstream. For 0.9.x, we need to choose either one.
filesink handles GST_EVENT_DISCONTINUOUS as well as GST_EVENT_SEEK. Using event = gst_event_new_discontinuous (FALSE, GST_FORMAT_BYTES, (gint64) 0, NULL); gst_pad_send_event (GST_PAD_PEER (wavenc->srcpad), event); doesn't work either. The problem here seems to be gst_pad_send_event() because its working using gst_pad_push().
Changing to gst_pad_push() doesn't fix the problem for me.
part of the problem is that wavenc was not writing the header correctly at EOF. It's fixed now. Note that we still don't write the header correctly if there's no EOS on the stream.
*** Bug 145155 has been marked as a duplicate of this bug. ***