Commit 720506a4 authored by Sebastian Dröge's avatar Sebastian Dröge 🍵 Committed by Sebastian Dröge
Browse files

[MOVED FROM BAD 35/56] gst/deinterlace2/gstdeinterlace2.c: Respect the latency...

[MOVED FROM BAD 35/56] gst/deinterlace2/gstdeinterlace2.c: Respect the latency of the deinterlacing algorithm for the timestamps of every bu...

Original commit message from CVS:
* gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_chain):
Respect the latency of the deinterlacing algorithm for the timestamps
of every buffer.
parent fba3f4d3
......@@ -592,9 +592,14 @@ gst_deinterlace2_chain (GstPad * pad, GstBuffer * buf)
/* do magic calculus */
gst_deinterlace_method_deinterlace_frame (self->method, self);
buf = gst_deinterlace2_pop_history (self);
g_assert (self->history_count - 1 -
gst_deinterlace_method_get_latency (self->method) >= 0);
buf =
self->field_history[self->history_count - 1 -
gst_deinterlace_method_get_latency (self->method)].buf;
timestamp = GST_BUFFER_TIMESTAMP (buf);
gst_buffer_unref (buf);
gst_buffer_unref (gst_deinterlace2_pop_history (self));
GST_BUFFER_TIMESTAMP (self->out_buf) = timestamp;
if (self->fields == GST_DEINTERLACE2_ALL)
......@@ -611,8 +616,7 @@ gst_deinterlace2_chain (GstPad * pad, GstBuffer * buf)
else if (self->field_history[cur_field_idx].flags ==
PICTURE_INTERLACED_TOP && self->fields == GST_DEINTERLACE2_BF) {
GST_DEBUG ("Removing unused top field");
buf = gst_deinterlace2_pop_history (self);
gst_buffer_unref (buf);
gst_buffer_unref (gst_deinterlace2_pop_history (self));
}
cur_field_idx = self->history_count - fields_required;
......@@ -635,9 +639,14 @@ gst_deinterlace2_chain (GstPad * pad, GstBuffer * buf)
/* do magic calculus */
gst_deinterlace_method_deinterlace_frame (self->method, self);
buf = gst_deinterlace2_pop_history (self);
g_assert (self->history_count - 1 -
gst_deinterlace_method_get_latency (self->method) >= 0);
buf =
self->field_history[self->history_count - 1 -
gst_deinterlace_method_get_latency (self->method)].buf;
timestamp = GST_BUFFER_TIMESTAMP (buf);
gst_buffer_unref (buf);
gst_buffer_unref (gst_deinterlace2_pop_history (self));
GST_BUFFER_TIMESTAMP (self->out_buf) = timestamp;
if (self->fields == GST_DEINTERLACE2_ALL)
......@@ -655,8 +664,7 @@ gst_deinterlace2_chain (GstPad * pad, GstBuffer * buf)
else if (self->field_history[cur_field_idx].flags ==
PICTURE_INTERLACED_BOTTOM && self->fields == GST_DEINTERLACE2_TF) {
GST_DEBUG ("Removing unused bottom field");
buf = gst_deinterlace2_pop_history (self);
gst_buffer_unref (buf);
gst_buffer_unref (gst_deinterlace2_pop_history (self));
}
}
......
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