Realised haven't accounted for HDR10+ which would also likely be affected by ffmpeg so we skip those too.
Also some tidy up on comments
Removed a map cmd that shouldn't be needed
Done more testing & confirmed, dolby vision files are normally not converted properly so we'll filter these out now.
The output usually doesn't have evident issues, it's only when tested on a Dolby vision TV that issues present & it's highly dependant on the source material.
i.e I think if the file has the correct HDR10 fallback info then it will play fine on a Dolby vision TV (just can't play Dovi proper), but a lot of files I've had don't have this info & after conversion the Dovi TV will display a pink blown out version.
It'll be better to just prevent Dovi conversions & I guess there's the question of why compress a Dovi file? I don't think it fits the work flow of a bitrate based re-encode.
Fairly major revision. Been using this locally for months on HEVC & AV1 encodes and not had any issues currently.
I can't verify if my 4k HDR & DoVi setups are 'actually' working for real but they seem to look correct & I've not had errors for encodes or on Plex.
With AV1 support, admittedly this may be confusing since the plugin ID still specifies HEVC but I have updated the name. I didn't want to split this into a new plugin since the logic is pretty much exactly the same & I don't want to maintain two almost identical plugins)
- Adding AV1 encode support, added as drop down selector (default is still hevc)
- Logic should pick valid video profile for either encoder setting
- HDR detection & encode improvement (Appears to work on my HDR content & DoVi)
- Added target bitrate modifier so it's possible to tune the bitrate (useful for AV1 to crunch it down further)
- Better bitrate detection, should error if it can't be found at all
- Mac support is over. Doubt anyone was really using it on Mac but it's not worth touching further. Plugin should still use videotoolbox when on Mac but I won't be fixing up errors.
- Cleaned up descriptions & info logs where reasonable to try and clarify what's happening
- Tests updated & added new test for a fully loaded AV1 setup
- Added HDR support. Tested as working but can have issues. Warning applied
- Made duration check a bit better with try statement
- Cleaned up how the info log was used so it's more consistent & fixed up trailing spaces & line breaks
- Initial test fix up but more will be needed
- Corrected some Mac/Darwin support, incorrect 10 bit options (In future will remove videotoolbox support and split into separate plugin)
- Improved video check loops, some logic did seem to not correctly stop when needed & the remove stream option had the wrong syntax so probably wouldn't have worked
Ended up finding more cases where errors would pop up and looks to all to do with HW decode.
- Now ensured that unless the incoming format is in the white list then sw decode is done instead
- Correctly removed -hwaccel cmd when sw decode happens preventing accidental hwdecode
- Specify the format to decode when using sw
- renamed oldformat var to match its use case (now swDecode)
- Info log updated with when SW decode happens and will report which incoming format caused it
- Removed mkvpropedit remux behaviour - No longer seems to be needed (It's upto the user to have the mkvpropedit option enabled on Tdarr side)
- Corrected parts of the ffmpeg cmd to define the output format based on container
- Updated win32 hwaccel cmd to use a more correct type
- Enabled hwupload & hwupload frames
- Added check to ensure video bitrate is actually a number
- Updated QSV decoders since VC1 & VP8 aren't supported on latest hardware (according to wikipedia...) & AV1 added
- Added new video codec check which enables protection for 10 bit encoding, basically trying to encode from something like mpeg4 into 10bit could cause issues
Fixed up an issue with HW decoding. If the -hwaccel qsv is set then ffmpeg seems to automatically enable hw decoding even when we don't want it. There's been several reports of issues with certain files & I think this is the cause. I've tested and that appears to resolve the transcode error