Opened 9 years ago

Closed 9 years ago

#8873 closed defect (fixed)

Seeking regression in MPEG-TS following Ringbuffer optimizations

Reported by: robertm Owned by: danielk
Priority: major Milestone: 0.24
Component: MythTV - General Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Seeking in some MPEG-TS files without a seektable has also become broken following the Ringbuffer optimizations. This minority of TS files (some Blu-ray files, some recordings, all without seektable) display a duration of one second, and any attempt to seek either restarts the file or does nothing whatsoever.

Original optimization to make seektable-less MPEG-TS work was committed here:

http://svn.mythtv.org/trac/changeset/23288

and appears to have been broken in:

http://svn.mythtv.org/trac/changeset/26101/trunk/mythtv/libs/libmythtv/RingBuffer.cpp

Since it is only a small minority of TS files that display this issue, it may be difficult to test, but I can try to create a sample if the issue isn't obvious.

Change History (2)

comment:1 Changed 9 years ago by robertm

Status: newassigned

comment:2 Changed 9 years ago by danielk

Resolution: fixed
Status: assignedclosed

(In [26173]) Fixes #8873. The seek to end optimization was using an int rather than a guaranteed 64-bit or larger type to check if the seek had succeeded, so it failed for all files larger than 231 when int was a 32 bit type, files larger than 215 when int was a 16 bit type, etc. Also since the seeks done when doing an mpeg-ts seek don't match the pattern that this optimization is for, I've disabled this optimization when the offset from the end of the file is not exactly 250,000 bytes. So this optimization will only be triggered where we know it will do some good..

Note: See TracTickets for help on using tickets.