Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Provide accurate position/duration/seeking with non-constant framerates.
The recordedseek and filemarkup tables are enhanced to hold timestamp data in addition to the existing file offset data. The millisecond timestamps are produced by all recorders that subclass DTVRecorder, as well as mythtranscode and mythcommflag --rebuild. These timestamps are relative to the start of the recording/video. A new command is added to the myth protocol, "QUERY_RECORDER FILL_DURATION_MAP", modeled after FILL_POSITION_MAP, to send updated timestamp info for playback of an in-progress recording. The timestamp markup is used during playback to give accurate position and duration information in the OSD wherever possible, and to provide accurate time-based seeking, such as "skip forward 30 seconds" or "jump to the 5-minute mark". Timestamps are linearly interpolated from a frame's nearest neighbors in the map, and extrapolated based on the current frame rate when the map is missing (e.g. legacy recordings) or incomplete (e.g. in-progress recordings). Other than that, the frame rate is not used for seeking or duration calculations. (With the exception of a handful of areas that still need some attention, including seeking based on commskipmap, seeking across program boundaries during Live TV, and the watched flag calculation.) The cutlist continues to be taken into account for seeking and displaying timestamps, for the most part making cutlists indistinguishable from the result of lossless transcoding. Note that to get the benefit of these changes for preexisting recordings, it may be necessary to run "mythcommflag --rebuild" on such recordings. Bumps the ABI and protocol versions. "make distclean" is recommended. Fixes #10104.
- Loading branch information
Showing
33 changed files
with
881 additions
and
379 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.