[mythtv] Seektable problems

John Pilkington J.Pilk at tesco.net
Fri Jan 19 16:05:42 UTC 2018


On 17/01/18 17:06, Peter Bennett wrote:
> There are some problems around the seek table that do not have immediate 
> solutions.
> 
> 1. H265 recordings get an incorrect seek table and this causes problems. 
> See ticket https://code.mythtv.org/trac/ticket/12993.
> 2. Depending on the content, regenerating the seek table for an H264 
> recording causes some problems. See ticket 
> https://code.mythtv.org/trac/ticket/12010
> 3. Generating a seek table for an mkv file is a waste of resources, it 
> reads through the entire file then creates no seek table. See 
> https://lists.gt.net/mythtv/users/536443#536443. It works better to just 
> delete the seek table with mythutil.
> 
> The creating of the seek table is done in two places: During recording 
> by the recorder, and in mythcommflag when using the --rebuild option. In 
> both cases we are using parsers in MythTV code, MPEG parser and H264 
> parser. During recording, anything that is not H264 is passed to the 
> MPEG parser, which creates wrong entries for H265 content. During 
> mythcommflag It specifically checks for MPEG and H264 and anything else 
> is not parsed, which means no seektable entries are generated.
> 
> The consequences of having no seektable are that you cannot edit, and 
> maybe commercial flagging won't work. Actual seeking seems to work well 
> without a seek table, although the h265 user said there was 1 second of 
> pixellation after seeking.
> 
> Deleting the seektable for an MPEG2 recording that is interlaced results 
> in MythTV thinking it is twice the length. In the progress bar it shows 
> the program as 2 hours instead of 1 hour, but skipping and playing is 
> fine. When the progress bar gets to 50% the playback ends.
> 
> I did some work trying to get the seektable to generate for h264 mkv 
> files. With some changes, I got it to work. However it did not speed up 
> searches. Editing worked but cut points were not skipped accurately 
> during playback. So I decided to abandon that.
> 
> So the question is - what should be done for those areas that are not 
> working, such as H265? I suggest that we change the recorder to skip the 
> seek table on H265 for the short term fix. For long term, should we 
> start writing parsers for H265 and other types of content, or eliminate 
> the seek table and try to make the editor work without it? For H265 
> pixellation after seeking perhaps we could build something into the 
> player to search for an IDR frame after skipping, using the decoded 
> stream rather than by writing our own parser.
> 
> I do not have access to any H265 broadcasts, so maybe somebody in 
> Germany can look at the recorder problem (recording H265 without 
> creating a seek table). I can look at the playback side of it if I get a 
> sample recorded file.
> 
> Peter

I just repeated what I did 3 years ago in #12010 on a short recording 
from BBC TWO HD (DVB-T2 h264), with similar results.  Latest 'buntu 
build of Master, v30pre366.

Strangely the column layouts are different in the --getmarkup output for 
the raw and rebuilt seektables but the byte offsets found are identical. 
  The frame numbers and timestamps again drift apart, this time by 3 
frames or 120 ms in about 5 minutes; at the discontinuities the rebuilt 
frame numbers advance, as usual, by 24 while with the raw ones it's 
sometimes 23.

For my purposes I don't see a problem here, and editing SD mpeg2 seems 
fine too.  I haven't used mkv or h265.

John P









More information about the mythtv-dev mailing list