Ideally the transcode table should refer to the file id instead of the title. This is currently not the case, primarily because the transcode entries live in storage under the file name. File moves also cannot move derivative files (I think this is a filerepo limitation?), so we need the name of the file. Additionally, this table predates many of the page_id and file_id logic being normalized, so it's just late to the party.
In order to solve this, we have to figure out how to handle the situation of file moves during transcoding. One method might be to store the file_id AND the file title in the job entry. Then if at the beginning or end of the job processing, the actual file name and the initiating file name are no longer in sync, then we know we can throw away the entry ?
We'll also have to consider the case of file deletion (file archive) during the transcode (if no longer the latest revision?)