summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--gst/matroska/matroska-mux.c6
2 files changed, 11 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index b7175170..1ff78f16 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-11-10 Josef Zlomek <josef dot zlomek at xeris dot cz>
+
+ Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
+
+ * gst/matroska/matroska-mux.c: (gst_matroska_mux_write_data):
+ Don't try to ready buffer duration from buffer that we don't
+ own any longer and that might already have been unreffed.
+ (#321136)
+
2005-11-09 Zeeshan Ali <zeenix@gmail.com>
* gst/flx/gstflxdec.c: (flx_decode_delta_fli),
diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c
index 78dcf960..84d59a96 100644
--- a/gst/matroska/matroska-mux.c
+++ b/gst/matroska/matroska-mux.c
@@ -1324,6 +1324,7 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux)
guint64 cluster, blockgroup;
gboolean write_duration;
guint16 relative_timestamp;
+ guint64 block_duration;
/* which stream to write from? */
best = gst_matroska_mux_best_pad (mux);
@@ -1424,9 +1425,8 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux)
/* Check if the duration differs from the default duration. */
write_duration = FALSE;
+ block_duration = GST_BUFFER_DURATION (buf);
if (GST_BUFFER_DURATION_IS_VALID (buf)) {
- guint64 block_duration = GST_BUFFER_DURATION (buf);
-
if (block_duration != best->track->default_duration) {
write_duration = TRUE;
}
@@ -1460,8 +1460,6 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux)
gst_ebml_write_buffer (ebml, hdr);
gst_ebml_write_buffer (ebml, buf);
if (write_duration) {
- guint64 block_duration = GST_BUFFER_DURATION (buf);
-
gst_ebml_write_uint (ebml, GST_MATROSKA_ID_BLOCKDURATION,
block_duration / mux->time_scale);
}