[mythtv-commits] Ticket #7731: Delay file deletion in mythtranscode
MythTV
mythtv at cvs.mythtv.org
Sun Dec 13 22:29:02 UTC 2009
#7731: Delay file deletion in mythtranscode
------------------------------------+---------------------------------------
Reporter: stichnot@… | Owner: ijr
Type: patch | Status: new
Priority: minor | Milestone: unknown
Component: MythTV - Mythtranscode | Version: unknown
Severity: medium | Mlocked: 0
------------------------------------+---------------------------------------
Comment(by stichnot@…):
At Mike Dean's challenge, I updated the patch to also do something
sensible with an existing bookmark when a cutlist is present, rather than
just clearing it. Computing the bookmark for the new file based on the
old file's bookmark and cutlist is straightforward. Things are somewhat
complicated when a bookmark is updated while mythtranscode is waiting to
delete the original file, because it may be hard to know whether the
bookmark was set with respect to the old or the new file.
Here is how it works at a high level:
1. There was existing code that updates the recordedmarkup table to remove
commflag and cutlist marks. This has been moved to a point before the
original recording file is deleted, so that if a new playback instance is
started on the new file while waiting to delete the old file, the new
playback instance won't have the old cutlist. (An old playback instance
will consequently have its cutlist removed, but that's preferable to
having a bogus cutlist for a new playback instance.)
2. Before waiting for old playback instances to exit, reload the bookmark
(since it might have changed during the several minutes transcoding takes)
and update with the translated value so that new playback instances have
the right bookmark.
3. Take an initial timestamp, then periodically (every 10 seconds in this
code) check the inuseprograms table for any 'playback' records that were
updated before the initial timestamp. If there are any, we need to keep
waiting. When there are none, we can finally delete the old file.
4. Reload the bookmark. If it has changed since step 2, translate it
again and write it back. (Unfortunately, the new bookmark could be from a
new playback instance in which case it shouldn't be translated, but
there's not much we can do when both the old and the new files are in
use.)
--
Ticket URL: <http://svn.mythtv.org/trac/ticket/7731#comment:1>
MythTV <http://www.mythtv.org/>
MythTV
More information about the mythtv-commits
mailing list