CrendKing / avisynth_filter

DirectShow filters that put AviSynth and VapourSynth into video playing
MIT License
107 stars 8 forks source link

MPC-BE x64 when to vs.RGBS freeze #92

Open Ken1256 opened 4 months ago

Ken1256 commented 4 months ago
from vapoursynth import core
import vapoursynth as vs

pp = VpsFilterSource

matrix = "709"
pp = core.resize.Spline36(pp, format=vs.RGBS, matrix_in_s=matrix)
pp = core.resize.Spline36(pp, format=vs.YUV444P16, matrix=matrix, matrix_in=matrix, range=1)

pp.set_output()

if del pp = core.resize.Spline36(pp, format=vs.RGBS, matrix_in_s=matrix) work fine.

vs-mlrt need vs.RGBS to work.

CrendKing commented 4 months ago

I'm assuming you are testing with madVR? I can reproduce the issue, and the log shows this: Resize error 2049: unrecognized matrix coefficients, which comes from VapourSynth. It freezes because no frame can be generated.

Maybe this operation can't use Rec.709 as the transfer matrix? I found a Doom9 thread similar to this, maybe it helps?

Ken1256 commented 4 months ago
from vapoursynth import core
import vapoursynth as vs

pp = VpsFilterSource

matrix = "709"

# pp = core.std.SetFrameProp(pp, prop="_Matrix", intval=2)
# pp = core.std.SetFrameProp(pp, prop="_Transfer", intval=2)
# pp = core.std.SetFrameProp(pp, prop="_FieldBased", intval=0)
# pp = core.std.SetFrameProp(pp, prop="_Primaries", intval=2)
# pp = core.resize.Spline36(pp, format=vs.RGBS, matrix=matrix, matrix_in=matrix, matrix_in_s=matrix)

pp = core.resize.Spline36(pp, format=vs.YUV444P16, matrix=matrix, matrix_in=matrix, matrix_in_s=matrix, range_in=0, range=1)
pp = core.fmtc.matrix(pp, mat=matrix, matd=matrix, fulls=True, fulld=True, col_fam=vs.RGB, bits=16)
pp = core.resize.Spline36(pp, format=vs.RGBS)
# pp = core.resize.Spline36(pp, format=vs.RGB24)
pp = core.fmtc.matrix(pp, mat=matrix, matd=matrix, fulls=True, fulld=True, col_fam=vs.YUV)
pp = core.fmtc.bitdepth(pp, bits=16, dmode=1)

pp.set_output()

fmtc work but slower, Is there any other way to use VapourSynth Resize to rgb? Where can I find the avisynth_filter error log file?

CrendKing commented 4 months ago

Is there any other way to use VapourSynth Resize to rgb?

Well, you have to try changing the script yourself.

Where can I find the avisynth_filter error log file?

https://github.com/CrendKing/avisynth_filter/wiki/How-to-enable-logging