gst/matroska/matroska-mux.c: Don't try to ready buffer duration from buffer that...
authorTim-Philipp Müller <tim@centricular.net>
Thu, 10 Nov 2005 12:22:30 +0000 (12:22 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Thu, 10 Nov 2005 12:22:30 +0000 (12:22 +0000)
Original commit message from CVS:
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)

ChangeLog
gst/matroska/matroska-mux.c

index b717517..1ff78f1 100644 (file)
--- 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),
index 78dcf96..84d59a9 100644 (file)
@@ -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);
     }