mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 06:46:38 +00:00
only update the DURATION field when appending buffers and both buffers have a valid duration.
Original commit message from CVS: only update the DURATION field when appending buffers and both buffers have a valid duration.
This commit is contained in:
parent
a4f13fb2be
commit
a4df733d52
2 changed files with 7 additions and 2 deletions
|
@ -452,8 +452,12 @@ gst_buffer_span (GstBuffer *buf1, guint32 offset, GstBuffer *buf2, guint32 len)
|
|||
}
|
||||
}
|
||||
/* if we completely merged the two buffers (appended), we can
|
||||
* calculate the duration too */
|
||||
if (offset == 0 && buf1->size + buf2->size == len) {
|
||||
* calculate the duration too. Also make sure we's not messing with
|
||||
* invalid DURATIONS */
|
||||
if (offset == 0 && buf1->size + buf2->size == len &&
|
||||
GST_BUFFER_DURATION_IS_VALID (buf1) &&
|
||||
GST_BUFFER_DURATION_IS_VALID (buf2))
|
||||
{
|
||||
/* add duration */
|
||||
GST_BUFFER_DURATION (newbuf) = GST_BUFFER_DURATION (buf1) +
|
||||
GST_BUFFER_DURATION (buf2);
|
||||
|
|
|
@ -69,6 +69,7 @@ extern GType _gst_buffer_pool_type;
|
|||
#define GST_BUFFER_OFFSET_NONE ((guint64)-1)
|
||||
#define GST_BUFFER_MAXSIZE_NONE ((guint)0)
|
||||
|
||||
#define GST_BUFFER_DURATION_IS_VALID(buffer) (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DURATION (buffer)))
|
||||
#define GST_BUFFER_TIMESTAMP_IS_VALID(buffer) (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (buffer)))
|
||||
#define GST_BUFFER_OFFSET_IS_VALID(buffer) (GST_BUFFER_OFFSET (buffer) != GST_BUFFER_OFFSET_NONE)
|
||||
#define GST_BUFFER_MAXSIZE_IS_VALID(buffer) (GST_BUFFER_MAXSIZE (buffer) != GST_BUFFER_MAXSIZE_NONE)
|
||||
|
|
Loading…
Reference in a new issue