Opened 12 years ago

Closed 11 years ago

#5109 closed defect (invalid)

filemarkup table is inefficient.

Reported by: anonymous Owned by: Anduin Withers
Priority: minor Milestone: unknown
Component: mythvideo Version: unknown
Severity: medium Keywords:
Cc: stuartm Ticket locked: yes

Description

I'm moving to the Internal player for mythvideo and thought I should do the right thing and build a seek table for the files. I just added the first one with "mythtranscode --mpeg2 --video --infile ~av/Video/Angelina\ Ballerina\ -\ Princess\ Dance.mpg --buildindex" and filemarkup.MYD is now 439656 bytes for just 5785 rows (75 bytes per seek point). Most of it is due to the filename being stored in the table.

Can we move the filenames out into a separate table and use an index from that table in the filemarkup table?

Change History (6)

comment:1 Changed 12 years ago by mythtv-users@…

Sorry about the anon, this is the submitter.

comment:2 Changed 11 years ago by stuartm

Cc: stuartm added

comment:3 Changed 11 years ago by simonwalls@…

I agree with the submitter. With a longish path like '/storage/videos/miscellaneous/myvideo.mpg' the pathname occupies way more space than the markup data. And if the video is a movie with MARK_GOP_BYFRAME in use, there can be 100,000+ marks. Ten saved characters in pathname will save 1Mb of space. My database jumped 11Mb (is now 73Mb) in size after building seektables for a few movies using a similar path to above.

Furthermore, this will help with another latent problem. If the video file is modified _after_ the markup table is created, and the user fails to rebuild it, seeking problems might occur. At present there's no warning if there is no seektable, just poor fast forward / rewind user experience.

If a separate table is used to hold video filenames, then a datestamp can be kept when the filemarkup was created, and if the video datestamp is later (test this when starting to play the file), output a warning into the log using VERBOSE..IMPORTANT (not PLAYBACK). Video Manager could also notify the user of the lack of up-to-date information, and suggest a rebuild (or even perform it assuming the user is willing to wait for the necessary period of time).

I have just been through the learning curve for fast forward / rewind and finding the correct way to build an index of an mpeg2 movies in Mythvideo and it 'could have been easier'. I'll keep an eye on the subject and see if I can help.

comment:4 Changed 11 years ago by wstewart@…

we have already have the file names in the videometadata table. It would make more sense to link the filemarkup table to videometadata. Recordings have a separate filemarkup table.

comment:5 Changed 11 years ago by stuartm

Ticket locked: set

comment:6 Changed 11 years ago by Janne Grunau

Resolution: invalid
Status: newclosed
Note: See TracTickets for help on using tickets.