avwait: Fix sending of dropping=true messages

If the first audio buffer to be dropped started right between two video
buffers (after the end of the first but before the start of the second,
as is often the case with N/1001 video frame rates), we would miss
sending the dropping=true message.

https://bugzilla.gnome.org/show_bug.cgi?id=797248
This commit is contained in:
Vivia Nikolaidou 2018-10-04 12:07:31 +03:00
parent faf212cd3a
commit d89104c57f

View file

@ -1074,6 +1074,12 @@ gst_avwait_asink_chain (GstPad * pad, GstObject * parent, GstBuffer * inbuf)
esign, GST_TIME_ARGS (running_time_at_end));
gst_buffer_unref (inbuf);
inbuf = NULL;
if (current_running_time >= self->audio_running_time_to_end_at &&
(self->must_send_end_message & END_MESSAGE_STREAM_ENDED) &&
!(self->must_send_end_message & END_MESSAGE_AUDIO_PUSHED)) {
send_element_message = TRUE;
}
} else if (gst_avwait_compare_guint64_with_signs (esign, running_time_at_end,
1, self->audio_running_time_to_wait_for) >= 0
&& gst_avwait_compare_guint64_with_signs (esign, running_time_at_end, 1,