Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
[pvr] fixed - seek passed the time since the epg item started, which …
…won't work for seek operations
- Loading branch information
Showing
1 changed file
with
5 additions
and
1 deletion.
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
c1f11e6There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is wrong now after: 4c90033
subtraction happens in player.
c1f11e6There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
right, i haven't tested this after that patch, but that's the place where it should be fixed indeed. but this will need to be synced with other players too that are using pvr.
c1f11e6There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@FernetMenta @adamsutton said seek times were still correct for him with pvr.hts after this (when there's an epg tag, without a tag, this will be wrong). note that this only affects add-ons that use SeekTime, so demux only
c1f11e6There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm, I don't see how this is related to epg times. seekTime is supposed to be dts. In dvdplayer:
state.time = actual time (for pvr)
state.time_offeset = DVD_MSEC_TO_TIME(state.time) - state.dts;
if(dynamic_castCDVDInputStream::ISeekTime*(m_pInputStream) == NULL)
time -= m_State.time_offset;
-> time = state.time - (state.time - state.dts) = dts
I have debugged this to death and I always had a valid epg tag.
c1f11e6There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the epg start time was added to the player time iirc. i'll have to dig into it when i got time to provide a more detailed answer. with this commit in, the result (when epg info is available) is the relative seek time in millis, but only when an epg tag is present for the channel that's being played.
c1f11e6There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm staying out of this: I've not followed the stuff going on in the xbmc cores nor do I care what units make it to pvr.hts, we can deal with that as required in the addon if its not exactly what TVH requires.
But I agree that I don't like PVRClient getting in the way, I had always intended, when I added the SeekTime() call to the API that it would simply pass the message straight through to the addon and let that handle it.
If there are special circumstances I'm not aware of then I'll accept that I'm, as usual, out of my depth in the XBMC code.
c1f11e6There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
after @elupus commit it does not matter what state.time is. see equation above, the result is dts regardless of whatever value state.time has
I have observed incorrect seeks when using small steps like 5 secs. Target dts is calculated with reference to dts end of buffer. IMO this is wrong, it has to be calculated with reference to what the users sees on screen.
FernetMenta@fabf24e
Otherwise a small step back can result even in a step forward.
c1f11e6There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.