Skip to content

tsdemux: Various timing fixes

Edward Hervey requested to merge bilboed/gstreamer:ts-fixes into main
    tsdemux: Improve gap detection
    
    We should also take into account whether data is currently pending when checking
    for gap on streams. It could very well be that some streams have very low
    bitrate (and spread out) data. For those we don't want to push out a gap event.
    tsdemux: Handle "negative" timestamps
    
    This is only enabled in push time mode. Furthermore it's only enabled for now if
    PCR is to be ignored.
    
    The problem is dealing with streams where the initial PTS/DTS observation might
    be greater than following ones (from other PID for example). Before this patch,
    this would result in sending buffers without any timestamp which would cause a
    wide variety of issues.
    
    Instead, pad segment and buffer timestamps with an extra
    value (packetizer->extra_shift, default to 2s), to ensure that we can get valid
    timestamps on outgoing buffers (even if that means they are before the segment
    start).
    tsdemux: Handle streams with bogus PTS vs DTS
    
    PTS and DTS should be within a reasonable distance of each other.
    tsdemux: Handle PTS->TS at wraparound
    
    This has been a FIXME for ages.

Merge request reports