Commit 1444040b authored by Wim Taymans's avatar Wim Taymans
Browse files

gst/multipart/multipartmux.c: Keep track of the buffer timestamp in the...

gst/multipart/multipartmux.c: Keep track of the buffer timestamp in the collectdata member instead of modifying the b...

Original commit message from CVS:
* gst/multipart/multipartmux.c: (gst_multipart_mux_compare_pads),
(gst_multipart_mux_queue_pads), (gst_multipart_mux_collected):
Keep track of the buffer timestamp in the collectdata member instead
of modifying the buffer without making the metadata writable first.
Fixes #382277.
parent 21c9ac41
2006-12-06 Wim Taymans <wim@fluendo.com>
* gst/multipart/multipartmux.c: (gst_multipart_mux_compare_pads),
(gst_multipart_mux_queue_pads), (gst_multipart_mux_collected):
Keep track of the buffer timestamp in the collectdata member instead
of modifying the buffer without making the metadata writable first.
Fixes #382277.
2006-12-06 Wim Taymans <wim@fluendo.com>
Patch by: Rob Taylor <robtaylor at floopily dot org>
......
......@@ -66,6 +66,7 @@ typedef struct
GstCollectData collect; /* we extend the CollectData */
GstBuffer *buffer; /* the queued buffer for this pad */
GstClockTime timestamp; /* its timestamp */
}
GstMultipartPad;
......@@ -366,12 +367,12 @@ gst_multipart_mux_compare_pads (GstMultipartMux * multipart_mux,
return -1;
/* no timestamp on old buffer, it must go first */
oldtime = GST_BUFFER_TIMESTAMP (old->buffer);
oldtime = old->timestamp;
if (oldtime == GST_CLOCK_TIME_NONE)
return -1;
/* no timestamp on new buffer, it must go first */
newtime = GST_BUFFER_TIMESTAMP (new->buffer);
newtime = new->timestamp;
if (newtime == GST_CLOCK_TIME_NONE)
return 1;
......@@ -410,10 +411,11 @@ gst_multipart_mux_queue_pads (GstMultipartMux * mux)
buf = gst_collect_pads_pop (mux->collect, data);
/* Adjust timestamp with segment_start and preroll */
if (buf) {
GST_BUFFER_TIMESTAMP (buf) -= data->segment.start;
}
/* Store timestamp with segment_start and preroll */
if (buf && GST_BUFFER_TIMESTAMP_IS_VALID (buf))
pad->timestamp = GST_BUFFER_TIMESTAMP (buf) - data->segment.start;
else
pad->timestamp = GST_CLOCK_TIME_NONE;
pad->buffer = buf;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment