[Bug 738237] baseparse: parser is never marked as FLAG_LOST_SYNC on discont

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri May 8 16:13:00 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=738237

--- Comment #9 from Ilya Konstantinov <ilya.konstantinov at gmail.com> ---
SOURCE CODE ARCHEOLOGY FOLLOWS:

The concept of 'sync' was introduced in commit
1bc8301c795ea5e4bb3389c2fc9a5ea4186adc18 (2009-10-28) by Mark Nauwelaerts. It
was defined as simply:

  gboolean gst_base_parse_get_sync (GstBaseParse * parse) {
    ...
    /* losing sync is pretty much a discont (and vice versa), no ? */
    ret = !parse->priv->discont;
    ...
  }

In this patch, Mark also set 'discont' to be initially TRUE, meaning the
element starts in the state of not-synced.

At a latter point, sync was replaced with LOST_SYNC (i.e. inverted). This made
the semantics murkier, since discont is TRUE initially, however no sync was
ever *LOST*.

Finally, Mark himself introduced the bug in
b761f5479a2ca977c07d70be39f1f0eb764b034e (2012-02-13), making his very own
LOST_SYNC meaningless, since it was no longer ever getting set.

The initial revision of wavpackparse.c is from 2012-02-28, two weeks later,
also implemented by Mark Nauwelaerts. The initial revision of wavpackparse.c
contains:

  lost_sync = GST_BASE_PARSE_LOST_SYNC (parse);

but following the 2012-02-13, the LOST_SYNC flag was never set, and the
lost_sync codepath was never tested.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.


More information about the gstreamer-bugs mailing list