static GstFlowReturn
gst_kate_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
{
  GstKateParseClass *klass;
  GstKateParse *parse;

  parse = GST_KATE_PARSE (parent);
  klass = GST_KATE_PARSE_CLASS (G_OBJECT_GET_CLASS (parse));

  g_assert (klass->parse_packet != NULL);

  if (G_UNLIKELY (!gst_pad_has_current_caps (pad)))
    return GST_FLOW_NOT_NEGOTIATED;

  return klass->parse_packet (parse, buffer);
}
static GstFlowReturn
gst_kate_parse_chain (GstPad * pad, GstBuffer * buffer)
{
    GstKateParseClass *klass;
    GstKateParse *parse;

    parse = GST_KATE_PARSE (GST_PAD_PARENT (pad));
    klass = GST_KATE_PARSE_CLASS (G_OBJECT_GET_CLASS (parse));

    g_assert (klass->parse_packet != NULL);

    if (G_UNLIKELY (GST_PAD_CAPS (pad) == NULL))
        return GST_FLOW_NOT_NEGOTIATED;

    return klass->parse_packet (parse, buffer);
}