[Bug 614479] [mpegtspacketizer] Use CRC to check if tables are duplicate

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Jun 19 11:38:03 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=614479
  GStreamer | gst-plugins-bad | git

Edward Hervey <bilboed> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
                 CC|                            |bilboed at gmail.com
         Resolution|FIXED                       |

--- Comment #2 from Edward Hervey <bilboed at gmail.com> 2013-06-19 18:37:59 UTC ---
So actually it seems to be a bit more subtle than that. That fix did avoid
"losing" data ... but a side effect is re-posting duplicated data.

I have a stream here capture from Numericable (french cable ISP, 400+ channels)
with a *lot* of NIT updates (over 4500 in 30seconds)

while we do indeed need to check for both version AND CRC ... it seems to
cycle.

Here's a snippet of logs for a changed section (same PID, same subtable)

4707 version number:6 (previous6) crc 0xd3a293fa (previous:0xe71e8911)
4707 version number:6 (previous6) crc 0x49fc0a8e (previous:0xd3a293fa)
4707 version number:6 (previous6) crc 0x73de41ba (previous:0x49fc0a8e)
4707 version number:6 (previous6) crc 0x509e86da (previous:0x73de41ba)
4707 version number:6 (previous6) crc 0x11291ee (previous:0x509e86da)
4707 version number:6 (previous6) crc 0x7779998f (previous:0x11291ee)
4707 version number:6 (previous6) crc 0x73c9b6da (previous:0x7779998f)
4707 version number:6 (previous6) crc 0xe71e8911 (previous:0x73c9b6da)
4707 version number:6 (previous6) crc 0xd3a293fa (previous:0xe71e8911)
4707 version number:6 (previous6) crc 0x49fc0a8e (previous:0xd3a293fa)
4707 version number:6 (previous6) crc 0x73de41ba (previous:0x49fc0a8e)
4707 version number:6 (previous6) crc 0x509e86da (previous:0x73de41ba)
4707 version number:6 (previous6) crc 0x11291ee (previous:0x509e86da)

Notice how it cycles back to a CRC of 0xd3a293fa with the same version number.

So it seems that, when the version number doesn't change, we should accumulate
all past CRC and check against all past CRC for that version number. If we
already saw that CRC *AND* version_number, then we can skip parsing it. Else we
parse it (since we never saw it).

If only the version number changes, then we obviously parse it.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list