This behaviour is correct.
Since there are a few filters which affect both sides (original/filtered).
(everything that can change the frame count or frame size)
Deinterlacing is one of these filters.
Deinterlacing (or ivtc) will be applied, if:
a. the detected scan order is not progressive
and
b. the output is not interlaced.
This is necessary to check both sides in sync. (deinterlacing, ivtc, .. can influence the frame count)
only applied MCTemporalDenoise to the filtered (clip) not the original version.
Cu Selur
Ps.: even if there was a bug, I wouldn't try to fix it since I don't have a the setup to create a build for such an old OS.
Since there are a few filters which affect both sides (original/filtered).
(everything that can change the frame count or frame size)
Deinterlacing is one of these filters.
Deinterlacing (or ivtc) will be applied, if:
a. the detected scan order is not progressive
and
b. the output is not interlaced.
This is necessary to check both sides in sync. (deinterlacing, ivtc, .. can influence the frame count)
Quote:It does not matter which filter is applied as the Original video windows always shows the Filtered video (same as the Filtered video)That is not the case here and according to the debug output you shared, the Vapoursynth script used for the preview:
# Imports
import os
import sys
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Import scripts folder
scriptPath = '/Applications/Hybrid.app/Contents/MacOS/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Import scripts
import havsfunc
# source: '/Users/macnb/Movies/Hybrid/Test/TRV-230E-MX-Test-Huff-06-no-crop-mask2.avi'
# current color space: YUV422P8, bit depth: 8, resolution: 720x540, fps: 25, color matrix: 470bg, yuv luminance scale: limited, scanorder: bottom field first
# Loading source using FFMS2
clip = core.ffms2.Source(source="/Users/macnb/Movies/Hybrid/Test/TRV-230E-MX-Test-Huff-06-no-crop-mask2.avi",cachefile="/private/var/folders/j_/kxqyfg3d7y91rnv_bq2bm27m0000gp/T/avi_4c259630c71c3f22630a5983223f207b_853323747.ffindex",format=vs.YUV422P8,alpha=False)
# Setting color matrix to 470bg.
clip = core.std.SetFrameProps(clip, _Matrix=5)
clip = clip if not core.text.FrameProps(clip,'_Transfer') else core.std.SetFrameProps(clip, _Transfer=5)
clip = clip if not core.text.FrameProps(clip,'_Primaries') else core.std.SetFrameProps(clip, _Primaries=5)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# making sure frame rate is set to 25
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
original = clip
# converting interlaced to half-height progressive for filtering (vsMCT) (separate fields)
clip = core.std.SeparateFields(clip, tff=False) # clip is half-height now
clipEven = clip[::2]
clipOdd = clip[1::2]
clipEven = core.std.SetFrameProp(clip=clipEven, prop="_FieldBased", intval=0)
clipOdd = core.std.SetFrameProp(clip=clipOdd, prop="_FieldBased", intval=0)
# denoising using MCTemporalDenoise
clipEven = havsfunc.MCTemporalDenoise(i=clipEven, settings="very high", ncpu=1)
# denoising using MCTemporalDenoise
clipOdd = havsfunc.MCTemporalDenoise(i=clipOdd, settings="very high", ncpu=1)
# converting progressive to interlaced for 'progressive to interlaced'
clip = core.std.Interleave([clipOdd, clipEven])
clip = core.std.DoubleWeave(clip=clip, tff=False) # clip is full-height now
clip = core.std.SelectEvery(clip, 2, 0)
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=1)
# adjusting output color from: YUV422P8 to YUV420P8 for x264Model
original = core.resize.Bicubic(clip=original, format=vs.YUV420P8, range_s="limited")
# adjusting output color from: YUV422P8 to YUV420P8 for x264Model
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8, range_s="limited")
original = core.text.Text(clip=original,text="Original",scale=1)
clip = core.text.Text(clip=clip,text="Filtered",scale=1)
stacked = core.std.StackHorizontal([original,clip])
# set output frame rate to 25.000fps
stacked = core.std.AssumeFPS(clip=stacked, fpsnum=25, fpsden=1)
# Output
stacked.set_output()Cu Selur
Ps.: even if there was a bug, I wouldn't try to fix it since I don't have a the setup to create a build for such an old OS.
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.

