GstBaseParse broken for video streams?

Matej Knopp matej.knopp at
Thu Nov 10 03:11:34 PST 2011


I've got a fairly simple pipeline that generates incorrect timestamps.

mpegpsdemux -> mpegvideoparse

mpegpsdmux gives no timestamps whatsoever, all timestamps are gnerated
by baseparse, however there are gaps in the timestamps because of
following code in gstbaseparse.c

    /* move along with upstream timestamp (if any),
     * but interpolate in between */
timestamp = gst_adapter_prev_timestamp (parse->priv->adapter, NULL);
    if (GST_CLOCK_TIME_IS_VALID (timestamp) &&
        (parse->priv->prev_ts != timestamp)) {
      parse->priv->prev_ts = parse->priv->next_ts = timestamp;

now I'm not sure yet what's wrong with the stream (if anything) that
requires gstbaseparse to skip data but it doesn't seem right to try to
interpolate timestamps in videostream (even though it does work for
audio). Could anyone explain to me how this is supposed to work?


More information about the gstreamer-devel mailing list