+2006-11-30 Michael Smith <msmith@fluendo.com>
+
+ * tests/check/pipelines/theoraenc.c: (check_buffer_granulepos),
+ (GST_START_TEST):
+ It would be very bad if, after a discont buffer, we thought every
+ single following buffer was also discont. So, add to the test to
+ ensure that this isn't the case.
+
+ * ext/theora/theoraenc.c: (theora_enc_is_discontinuous):
+ ... it was the case. So fix it.
+
2006-11-28 Wim Taymans <wim@fluendo.com>
* gst/playback/gstplaybasebin.c: (check_queue_event):
{
GstClockTime ts = GST_BUFFER_TIMESTAMP (buffer);
GstClockTimeDiff max_diff;
+ gboolean ret = FALSE;
/* Allow 3/4 a frame off */
max_diff = (enc->info.fps_denominator * GST_SECOND * 3) /
" exceeds expected value %" GST_TIME_FORMAT
" by too much, marking discontinuity",
GST_TIME_ARGS (ts), GST_TIME_ARGS (enc->expected_ts));
- return TRUE;
+ ret = TRUE;
}
}
else
enc->expected_ts = GST_CLOCK_TIME_NONE;
- return FALSE;
+ return ret;
}
static GstFlowReturn
fail_unless (GST_BUFFER_IS_DISCONT (buffer),
"expected discontinuous buffer yo");
gst_buffer_unref (buffer);
+
+ /* Then the buffer after that should be continuous */
+ buffer = gst_buffer_straw_get_buffer (bin, pad);
+ fail_if (GST_BUFFER_IS_DISCONT (buffer), "expected continuous buffer yo");
+ /* plain division because I know the answer is exact */
+ check_buffer_duration (buffer, GST_SECOND / 10);
+ check_buffer_granulepos (buffer, (2 << GRANULEPOS_SHIFT) + 1);
+ check_buffer_is_header (buffer, FALSE);
+ gst_buffer_unref (buffer);
}
gst_buffer_straw_stop_pipeline (bin, pad);