Opened 18 years ago

Closed 18 years ago

Last modified 18 years ago

#659 closed task (fixed)

Handle TS recordings where keyframe not detected early

Reported by: danielk Owned by: danielk
Priority: minor Milestone: 0.19
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Currently the keyframe map will be off and buffer switching will give us a glitch if the Sequence or GOP stream id is detected outside the first TS packet encapsulating a PES packet.

Change History (2)

comment:1 Changed 18 years ago by danielk

Resolution: fixed
Status: newclosed

(In [7902]) Closes #659.

This queues up TS packet after a payload start until either a keyframe stream id is found, or the 10 packets following the payload start have been processed without finding it. If we do find a a keyframe stream id the keyframe is marked at the payload start packet's location.

Before this commit the TS packet where the keyframe stream id was found was considered the location of the keyframe, but you need a packet with the payload start flag to begin constructing the PES packet on playback; so this would mess up seek map and would mess up ringbuffer switching in LiveTV. Most broadcasters keep SEQ & GOP headers in the first TS packet, not doing so breaks compliance with hardware MPEG multiplexors. However, there is at least one broadcaster in Chicago who transmits such streams, hence the this change.

comment:2 Changed 18 years ago by danielk

(In [8211]) Fixes #659 again (broken by [8126]) and fixes #689.

This is reapply of [7902] updated to the latest SVN. It should no longer cause #689, because that seems to have been due to the a bad interaction with the bug fixed in [8080].

Note: See TracTickets for help on using tickets.