summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-04-17 15:39:10 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-04-17 15:39:10 +0200
commit6c8f4a36e35a72da4deb876055e95099a8c36669 (patch)
treee66bdf835859b680765cf0b57ff640ce8703c00e
parent7a30947913c215baabaa0ae1b93b9582f82d3cd5 (diff)
downloadgst-plugins-bad-6c8f4a36e35a72da4deb876055e95099a8c36669.tar.gz
gst-plugins-bad-6c8f4a36e35a72da4deb876055e95099a8c36669.tar.bz2
gst-plugins-bad-6c8f4a36e35a72da4deb876055e95099a8c36669.zip
deinterlace2: Fix timestamps for buffers with RFF flag set
-rw-r--r--gst/deinterlace2/gstdeinterlace2.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/gst/deinterlace2/gstdeinterlace2.c b/gst/deinterlace2/gstdeinterlace2.c
index 7bbe2494..3a42d0d5 100644
--- a/gst/deinterlace2/gstdeinterlace2.c
+++ b/gst/deinterlace2/gstdeinterlace2.c
@@ -734,18 +734,16 @@ gst_deinterlace2_push_history (GstDeinterlace2 * self, GstBuffer * buffer)
the timestamp of the buffer equals the first fields timestamp */
timestamp = GST_BUFFER_TIMESTAMP (buffer);
- if (repeated) {
- GST_BUFFER_TIMESTAMP (field1) = timestamp;
- GST_BUFFER_TIMESTAMP (field2) = timestamp + 2 * self->field_duration;
- } else {
- GST_BUFFER_TIMESTAMP (field1) = timestamp;
- GST_BUFFER_TIMESTAMP (field2) = timestamp + self->field_duration;
- }
+ GST_BUFFER_TIMESTAMP (field1) = timestamp;
+ GST_BUFFER_TIMESTAMP (field2) = timestamp + self->field_duration;
+ if (repeated)
+ GST_BUFFER_TIMESTAMP (field2) += self->field_duration;
if (repeated) {
self->field_history[0].buf = field2;
self->field_history[0].flags = field2_flags;
self->field_history[1].buf = gst_buffer_ref (field1);
+ GST_BUFFER_TIMESTAMP (self->field_history[1].buf) += self->field_duration;
self->field_history[1].flags = field1_flags;
self->field_history[2].buf = field1;
self->field_history[2].flags = field1_flags;