" all buffers coming into the decoders might be checked"
" and should have the exact expected metadatas and hash of the"
" content"));
+ REGISTER_VALIDATE_ISSUE (ISSUE, FIRST_BUFFER_NOT_DISCONT,
+ _("First buffer after a seek does not have the DISCONT flag set"), NULL);
REGISTER_VALIDATE_ISSUE (CRITICAL, WRONG_FLOW_RETURN,
_("flow return from pad push doesn't match expected value"),
_("flow return from a 1:1 sink/src pad element is as simple as "
#define WRONG_FLOW_RETURN _QUARK("buffer::wrong-flow-return")
#define BUFFER_AFTER_EOS _QUARK("buffer::after-eos")
#define WRONG_BUFFER _QUARK("buffer::not-expected-one")
+#define FIRST_BUFFER_NOT_DISCONT _QUARK("buffer::first-buffer-not-discont")
#define CAPS_IS_MISSING_FIELD _QUARK("caps::is-missing-field")
#define CAPS_FIELD_HAS_BAD_TYPE _QUARK("caps::field-has-bad-type")
}
static GstPadProbeReturn
+_check_discont_buffer_done (GstPad * pad, GstPadProbeInfo * info,
+ GstValidateAction * action)
+{
+ GstBuffer *buffer = GST_BUFFER (info->data);
+ if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) {
+ GST_VALIDATE_REPORT (action->scenario, FIRST_BUFFER_NOT_DISCONT,
+ "First buffer after a seek does not have the DISCONT flag set");
+ }
+ gst_validate_action_set_done (action);
+ return GST_PAD_PROBE_REMOVE;
+}
+
+static GstPadProbeReturn
_check_new_segment_done (GstPad * pad, GstPadProbeInfo * info,
GstValidateAction * action)
{
priv->seeked_in_pause = TRUE;
gst_event_replace (&priv->last_seek, NULL);
- gst_validate_action_set_done (action);
+
+ gst_pad_add_probe (pad,
+ GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_BUFFER_LIST,
+ (GstPadProbeCallback) _check_discont_buffer_done, action, NULL);
return GST_PAD_PROBE_REMOVE;
}