There are a number of flaws/bugs/problems in the seek by seconds functionality (triggered when the user hits the Seek Back/Forward/Rewind buttons) which cause it not to work very well:
1. It suffers from the same buffering issues described in #1990985
2. After the initial seek it then attempts to make sure it has actually jumped by the right number of seconds, but this code is also flawed in a number of ways:
a) Current and target times are converted from 90kHz clock value to a H:M:S values before being compared, somewhere along the line this seems to get messed up, and comparisons don't seem to work. This whole conversion stage is unnecessary, and it would seem to be easier to just compare the 32 least significant bits of the original (33-bit) value.
b) If it determins it needs to seek back/forwards from here it then performs a seek() directly on the file, but doesn't perform the necessary operations to put the demuxer back into a "seeking" mode, this could well screw up lip sync, aswell as a bunch of other things.
Simon