Ah, I see. Hybrid handles the source as configured.
Applying a filter that does not support interlaced content on an interlaced source would cause unwanted results.
When applying a filter, that does not support interlaced content, Hybrid does convert the content to progressive content based on what is configured under "Filtering->Vapoursynth->Misc->Source->Filter interlace handling" and converts it back to interlaced content at the end of the script.
In your example, Hybrid does exactly that.
You are using
CAS, which Hybrid assume to not support interlaced content.
Quote:converting interlaced to full-height progressive for filtering (vsCAS)
Hybrid thus deinterlaces the content according to your settings and reinterlaces the content at the end of the script.
"Filter interlace handling" atm. has the following options:
- separate fields: here the top and bottom fields will be filtered separately
- separate fields (join): here the top and bottom fields will be filtered as if they are following each other
- TDeint(): content will be 'bob deinterlaced' using TDeint.
- QTGMC(preset="XXX"): content will be 'bob deinterlaced' using QTGMC with the set preset (and ', Lossless=2')
Note that if you have filters that apply temporal based operations, deinterlacing and reinterlacing (the default setting) is the correct choice. In case of CAS which only works on static single frames (not tacking the neighboring frames into account), 'separate fields' is probably the most 'lossless' approach.
If you have a better suggestion how Hybrid could deal with this, let me know, and I will at least think about adding that method to Hybrid.
None of these methods should result in improper color space conversions or be unreasonably lossy.
So your options are:
a. use another setting for Hybrid on how to filter interlaced content with filters that only support progressive content.
b. do not use filters that do not support interlaced content
Cu Selur
Ps.: The "Filter interlace handling" will also be applied when a filter that does not support interlaced content is moved before the deinterlacing step in the filter order/queue and while dealing with interlaced content, which later gets converted to progressive content.