There absolutely is.

FFAStrans performs the ffprobe, exiftools and Mediainfo analysis of every incoming file.
The output of the analysis is always stored in the following variable: %s_info_mediainfo%
It's stored as a JSON and you can read it and have conditional nodes making decisions based on it.
In particular, it's gonna be in MediaInfo.General.IsTruncated, so you can just write a conditional that checks that section of the JSON to see if it's there and set to "Yes" so that the file is skipped and won't get processed.
Untested, but I think that in this case it would be something like:
Code: Select all
if $jsonget('%s_info_mediainfo%', 'General.IsTruncated) == "Yes"
then %s_error% = "File is Truncated!"
else keep going
By the way, the reason why we keep going by default is that, within FFAStrans, the motto is "if it exists, it must be decoded", so we're literally trying to do the best we can to always keep going in any situation for any file. This is true not just for the normal decoding but also for the indexers we're calling like FFVideoSource(), FFAudioSource() and BestAudioSource(). If a file is corrupted at some point, the indexer will duplicate the previous frame to fill the gap and it will keep going and in the same way I have a pull request pending for FFAudioSource() that will fill the audio with silence if there's a CRC error at some point and we're just gonna keep going.
I know that this *might* be undesirable for content processing when you're dealing with movies and tv series for instance, but think about production departments collecting shootings from everywhere or even partially corrupted files recorded on a mobile phone by people close to a natural disaster that sent those to our news channel: saving as much as we can to make it go on air is invaluable and that's why we do it.
By the way, whenever this happens, we always register it in the logs and you're gonna be able to see it from the Job Details anyway.
