matroskamux: streamable files need no _finish

Fixes #624455.
This commit is contained in:
Mark Nauwelaerts 2010-07-16 12:46:50 +02:00
parent f62c6ce5c8
commit 4b76e95abe

View file

@ -2192,7 +2192,7 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
}
/* cues */
if (mux->index != NULL && !mux->streamable) {
if (mux->index != NULL) {
guint n;
guint64 master, pointentry_master, trackpos_master;
@ -2223,7 +2223,7 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
/* tags */
tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (mux));
if (tags != NULL && !gst_tag_list_is_empty (tags) && !mux->streamable) {
if (tags != NULL && !gst_tag_list_is_empty (tags)) {
guint64 master_tags, master_tag;
GST_DEBUG ("Writing tags");
@ -2247,8 +2247,6 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
* length pointer starts at 20.
* - all entries are local to the segment (so pos - segment_master).
* - so each entry is at 12 + 20 + num * 28. */
if (!mux->streamable) {
GST_DEBUG_OBJECT (mux, "not streamable");
gst_ebml_replace_uint (ebml, mux->seekhead_pos + 32,
mux->info_pos - mux->segment_master);
gst_ebml_replace_uint (ebml, mux->seekhead_pos + 60,
@ -2325,7 +2323,6 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
gst_ebml_write_buffer_header (ebml, GST_EBML_ID_VOID, 8);
gst_ebml_write_seek (ebml, my_pos);
}
}
GST_DEBUG_OBJECT (mux, "finishing segment");
/* finish segment - this also writes element length */
gst_ebml_write_master_finish (ebml, mux->segment_pos);
@ -2745,7 +2742,11 @@ gst_matroska_mux_collected (GstCollectPads * pads, gpointer user_data)
/* if there is no best pad, we have reached EOS */
if (best == NULL) {
GST_DEBUG_OBJECT (mux, "No best pad finishing...");
if (!mux->streamable) {
gst_matroska_mux_finish (mux);
} else {
GST_DEBUG_OBJECT (mux, "... but streamable, nothing to finish");
}
gst_pad_push_event (mux->srcpad, gst_event_new_eos ());
ret = GST_FLOW_UNEXPECTED;
break;