Opened 13 years ago

Closed 13 years ago

#9625 closed Bug Report - General (fixed)

Exiting near end of still-recording program results in no bookmark set

Reported by: John Veness <John.Veness.mythtv@…> Owned by: sphery
Priority: minor Milestone: 0.25
Component: MythTV - General Version: 0.24-fixes
Severity: medium Keywords:
Cc: Ticket locked: no

Description

From http://www.gossamer-threads.com/lists/mythtv/users/473755 :

I have the setting "Action on playback exit: Save position and exit". This saves a bookmark when I press Esc while playing a recording, allowing me to resume from where I left off.

However, if I start playing a program while it is still being recorded, and skip right up to the end (or as close to the end as I can get, which is a few seconds before the end), then press Esc, a bookmark is *not* set. This means that when I play the recording again, it starts from the beginning rather than when I got up to.

I often "chase play" recordings like this, like sporting events, where I start playing the program late and skip through the adverts, and catch up to the live broadcast. It's OK if I continue playing, but if I stop, no bookmark is set and it's annoying when it happens. The workaround is to pause or skip back a few seconds before stopping, but I keep forgetting to do so.

I think this problem is new in 0.23 or 0.24. It certainly happens now with up-to-date 0.24-fixes, and I certainly don't recall it happening in 0.22 and earlier (I only used 0.23 for a day or two).

Jim Stichnoth says:

TV::PrepareToExitPlayer?() won't set a bookmark if IsNearEnd?() is true, which must be what's happening here. Probably an additional test on the recording state should be added, like:

if (bookmark_it&& (!ctx->player->IsNearEnd?()

StateIsRecording?(GetState?(ctx))))

ctx->player->SetBookmark?();

The following test on db_auto_set_watched probably needs similar treatment.

That sounds sensible. Alternatively, maybe the check for an in-progress recording could be moved to IsNearEnd?(), so that function would return false if a recording is in progress, no matter where the current position is? It seems logical to me that, even if you are almost at the "as live" position, you're still not near the *end* of the recording, as the recording has potentially hours to do. Of course, someone would need to check that this doesn't break other uses of IsNearEnd?().

Change History (2)

comment:1 Changed 13 years ago by sphery

Milestone: unknown0.25
Owner: set to sphery
Status: newaccepted

comment:2 Changed 13 years ago by Michael T. Dean

Resolution: fixed
Status: acceptedclosed

Allow near-end bookmarks for in-progress recordings.

When exiting in-progress recordings, what's now near the end may not be near the end later, so go ahead and set a bookmark (for those who have specified "Save position and exit"), so users don't lose their place.

I didn't modify MythPlayer::SetWatched?(), since I have a feeling quite a few users will watch in-progress recordings and exit after the end of the show, but before recording stops--in which case they have watched it and just want to be done with it (rather than have to manually mark it watched). On the other hand, users who watch until they're caught up with current time then exit before the end of the show will likely come back to finish watching the recording sooner, rather than later (so it will be watched soon enough). Alternatively, if the auto-detection does the wrong thing, they can choose to mark the show unwatched.

Since we can't always do the right thing automatically, I'm trying to guess what's likely right for the most people. That said, I have some projects in the works to improve both bookmark and watched handling.

Fixes #9625.

Changeset: 624c23c56d21ee2840aef24d9f447baa54eb7d84

Note: See TracTickets for help on using tickets.