29.07.2021, 09:31
(29.07.2021, 04:58)Selur Wrote: Hybrid stalling usually happens when the output or inputs of a call are not properly parsed or something is missing.
Will look at it after work and report back then.
Happened again with a different 100 subjob file so I tried to experiment, came up with 2 results:
1st Result:
Noticed that a failed muxing encode had like 80 fonts! figured it couldnt be using all of them, opened up the subs and counted 13 font names, wasn't sure how font's and their bold/italic/etc differed from the base font in the subs so opened up mkvtoolnix and removed the fonts attached where I didn't see an obvious name match, leaving 63 fonts.
Inputted it into the encoder and it muxed, listed as finished but paused the encoding?
Took a closer look and noticed a duplicate font:
An apparent "feature" of mkvmerge is that it allows duplicate font attachments in the same file...
The script seems to just dump the mkv attachments extracted from input (duplicates overwriting the earlier one with an identical name) and shove them back in again at the end and failing the supplementary CleanUp jobs because the file has already been deleted.
A quick & dirty fix would just be to wildcard delete anything with the correct Job ID and a font extension type.
A more involved fix would be to have the parser take the extracted mkv attachments, stick in a data structure, delete duplicates and then spit out the corrected script.
The best solution, prob too much effort, would be to parse the subtitle files, check what fonts are used and only re-attach the fonts that are used.
2nd Result:
Took a file with 103 subjobs & used mkvtoolnix to remove some attachments:
Removed 1 font attachment - stopped at before muxing.. but completed subjobs 100-102 file
Removed 3 font attachments - stopped at before muxing.. but completed subjob 100
Removed 4 font attachments, making 99 subjobs and it muxed (but had the duplicate font bug) (bottom of the previous image)
So for whatever reason 99 subjobs seems to be a limit in the parser somewhere?