GithubHelp home page GithubHelp logo

crendking / avisynth_filter Goto Github PK

View Code? Open in Web Editor NEW
107.0 107.0 8.0 1.16 MB

DirectShow filters that put AviSynth and VapourSynth into video playing

License: MIT License

C++ 97.23% C 2.54% Batchfile 0.03% PowerShell 0.20%
avisynth directshow vapoursynth video-player

avisynth_filter's People

Contributors

chainikdn avatar crendking avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

avisynth_filter's Issues

build.bat show error

   “F:\Users\oops\Desktop\avisynth_filter-master\avisynth_filter-master\avisynth_filter\avisynth_filter.sln”(默认 目标)
   (1) ->
   “F:\Users\oops\Desktop\avisynth_filter-master\avisynth_filter-master\avisynth_filter\avisynth_filter.vcxproj”( 默认
   目标) (2) ->
   (ClCompile 目标) ->
     F:\Users\oops\Desktop\avisynth_filter-master\avisynth_filter-master\avisynth_filter\src\pch.h(30,10): fatal er
   ror C1083: 无法打开包括文件: “streams.h”: No such file or directory [F:\Users\oops\Desktop\avisynth_filter-master\avisyn
   th_filter-master\avisynth_filter\avisynth_filter.vcxproj]

0 个警告
1 个错误  

C1083: cannot open file “streams.h”

Hang on closing

Environment

  • Filter version: 0.9.4
  • OS: e.g. Windows 10 x64
  • Video player: MPC-HC x64 1.9.8
  • SVP is running and enabled

To Reproduce

  1. open a video
  2. immediately (i.e. "faster than 1000 ms") close the player
  3. the player hangs in the Task Manager forever with a <50% chance

Log

...
T  20072 @     1000: Get source frame: frameNb     28 Input queue size  6
T  27248 @     1000: Processed source frame:     34 at   11344667 ~   11678334 duration(literal)     333667 nextSourceFrameNb     34 nextOutputFrameStartTime   10677333
T  27248 @     1001: Create output frame     32 for source frame     32 at   10677333 ~   11011000 duration     333667
T  27248 @     1001: Frame time drift:          0
T  27248 @     1001: Frame handler start BeginFlush()
T  27248 @     1001: Frame handler wait for barriers
T  20072 @     1029: Delivered frame     28
T  20072 @     1029: GarbageCollect frames until     28 pre size   7 post size   6
T  20072 @     1029: Output worker thread wait for flush
T  27248 @     1029: Frame handler finish BeginFlush()
T  27248 @     1029: ReloadAviSynthScript
T  21444 @     1331: Frame handler start BeginFlush()
T  21444 @     1331: Frame handler cleanup after stop threads
T  27248 @     1474: Frame handler EndFlush()
T  27248 @     1474: Upstream propose to change input format: name NV12, width   704, height   528

avsf-hang.log

Video freezes with audio playing,again

Environment

  • Filter version: 1.0.0
  • AviSynth+ version: 3.5.1
  • OS: Win10 x64 1909
  • AviSynth script: SVP 4.5.206
  • Log file
    1.log

Describe the bug

Video freezes with audio playing after serveral minutes.

To Reproduce

What's difference after last normal state: I replaced my Vega56 graphics card with a 6700XT
1.Potplayer(serveral versions):LAV+madVR+SVP:freezes
2.Potplayer(serveral versions):LAV+EVR+SVP:freezes
3.Potplayer(serveral versions):built in decoder+EVR+SVP:freezes
4.Potplayer(serveral versions):built in decoder+madVR+SVP:freezes
5.Potplayer(serveral versions):ffdshow raw filter+LAV+madVR+SVP: normal
6.Potplayer(serveral versions):ffdshow raw filter+LAV+EVR+SVP: normal
7.MPC-HC 1.7.3:Avisynth filter+LAV+madVR/EVR+SVP: normal
8.MPC-HC 1.7.3:ffdshow raw filter+LAV+madVR/EVR+SVP: normal

Vapoursynth filter doesn't load property page

Environment

Describe the bug

Vapoursynth filter won't load property page in mpc-be 1.5.7 64 bit. It doesn't load in any other player like mpc-hc either. It can be added fine but when I doubleclick on the filter in mpc-be to load the property page, player crashes and exits.

Also I wouldl like to use the filter mentioned in the github link, do you think it will work? Please test this filter thanks in advance.

To Reproduce

  1. Just add filter to mpc-be 1.5.7 portable and try to open the filter property page (double click), player exits immediately after that.

Not working with custom svp avisynth script

Not working with custom svp avisynth script. Opens capture card, but black screen, no video, no statistics.
Using mpc-hc latest version, using latest version of avisynth filter.

Not working on 3 different pc, with nvidia cards, an older version of avisynth filter works, when the 32 bit and 64 bit versions were separate downloads.

filter registerd via mpc-hc.

Please let me know what other info is needed, thanks in advance.

[LAV Filters] Access Violation

Environment

  • Filter version: v0.8.4
  • AviSynth+ version: v3.6.1
  • OS: Windows 10 x64 2004
  • Video player: [MPC-BE x64 1.5.5.5433, MPC-HC x64 1.9.8
  • Splitter filter and video decoder: LAV Filters
  • Video renderer: madVR, EVR-CP
  • Video format: NV12
  • AviSynth script: any
  • Do you use other DirectShow filters? Specify name and version: no

Describe the bug

When using LAV Filters (LAV Splitter Source to be precise) pressing Stop then Play will crash the video player. MPC-BE just closes, MPC-HC shows an Access violation message. AVSF v0.8.2 has no this problem.

2020-12-09

To Reproduce

  1. Enable LAV Splitter Source in MPC-BE and make it prefer (or just start MPC-HC)
  2. Open any video, press Stop in video player, and then Play

Checklist

  • Try a different video player and check if the issue persist. For example, if your main video player is MPC-HC, try MPC-BE.
    Findings: issue persists

  • Try a different video renderer and check if the issue persist. For example, if issue exists with madVR, try EVR.
    Findings: issue persists

  • Try a different video decoder and check if the issue persist.
    Findings: no problem with MPC-BE internal filters

Couldn't install it

Environment

  • Filter version: v0.8.1
  • AviSynth+ version: 3.6.1_20200619
  • OS: Windows 10 x64
  • Video player: PotPlayer x64 v201021(1.7.21311)
  • Splitter filter and video decoder: LAV Filters
  • Video renderer: madVR

To Reproduce

1.Unzip AviSynthFilter.zip
2.Run as administrator "install.bat" from AviSynthFilter folder.
3.
image

Am I missing something? Sorry if I opened an issue for this. Don't know where to ask.

AVS clip(s) are not properly deleted/cleared

Environment

0.10.0

Describe the bug

AVSF now creates extra clip instances.
I put two debug lines into my plugin where "++++" marks construction and "~~~~" marks destruction.
0.9.4:

++++ 7C31C5B0 <--- launch
~~~~ 7C31C5B0 <--- seek
++++ 3313DC70 
~~~~ 3313DC70 <--- close window

0.10.0:

test 1 - start playback, then close window

++++ 6F960150
++++ 6F960F30

test 2 - start playback, seek, close window

++++ D9184590
++++ D9183C50
~~~~ D9184590
++++ D9183EA0

test 3 - start playback, close playback via File -> Close: the same as in "test 1", but the resources (memory, GPU memory) are not freed.

Issues when closing a video player

  1. RC destruction often hangs forever: PostQuitMessage() doesn't break the event loop for some reason. If I replace PostQuitMessage with DestroyWindow - it always works as expected.

  2. Right now CAviSynthFilter::Reset() is called THREE (3) times on closing, including one time from the CAviSynthFilterInputPin::Active(). Not a big problem but it looks like a lot of useless work taking 1.5-2.5 secs to finish the player process.

[Feature Request] Optional configuration through an .ini-file

By first checking whether a specific .ini file exists, then loading settings from the file if it exists, or registry if it doesn't, AviSynth Filter could support both portable players and multiple configurations (player presets) on a single system.

Things to consider...

  1. Whether enabling portable mode should be available from the configuration menu or only documented in the wiki?
  • Users who want to make their configurations portable, generally don't mind reading through the documentation to set things up.
  1. What is the best location and format for the .ini file?
  • Most portable filters save their configurations next to their binaries, but there is a lot of variation in the exact format used.

Couldn't install

I am using a new laptop and didn't install anything video-related apps yet except LAVFilters, MadVR, and PotPlayer.

Environment

  • Filter version: v0.8.2
  • AviSynth+ version: v3.6.1
  • OS: Windows 10 x64
  • Video player: PotPlayer x64
  • Splitter filter and video decoder: LAV Filters
  • Video renderer: madVR
  • Video format: NV12

Describe the bug

Couldn't install it.

To Reproduce

  1. Download the .zip file
  2. Extract it
  3. Run "install.bat" as Administrator.

Does not pass HDR metadata to MadVR

Environment

  • Filter version: v0.9.2
  • AviSynth+ version: 3.7.0
  • OS: Windows 10 x64
  • Video player: MPC-HC x64 v1.9.9
  • Splitter filter and video decoder: LAV Filters
  • Video renderer: MadVR
  • Video format: YUV 420 BT.2020 HDR10
  • AviSynth script: [e.g. minimum content required to reproduce the issue, or software you used such as SVP]
# This script was generated by SVP 4 Manager.
# Check https://www.svp-team.com for more details.
AvsFilterSource()
SetMemoryMax(10000)
global threads=25

LoadPlugin("C:\Program Files (x86)\AviSynth+\plugins64\svpflow1_64.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth+\plugins64\svpflow2_64.dll")

SetFilterMTMode("DEFAULT_MT_MODE",2)
SetFilterMTMode("AvsFilterSource",3)
SetFilterMTMode("SVSuper",1)
SetFilterMTMode("SVAnalyse",1)
ConvertToYV12()

global crop_string  = ""
global resize_string = ""
global super_params     = "{pel:1,scale:{up:0},gpu:1,full:false,rc:true}"
global analyse_params   = "{block:{w:32},main:{search:{coarse:{distance:-8,bad:{sad:2000,range:24}},type:2}},refine:[{thsad:250}]}"
global smoothfps_params = "{gpuid:11,rate:{num:25,den:6},algo:23,mask:{area:50},scene:{mode:0}}"

global demo_mode=0
global stereo_type=0

global nvof = 2

########## BEGIN OF base.avs ##########
# This file is a part of SmoothVideo Project (SVP) ver.4
# This is NOT the full AVS script, all used variables are defined via
# JScript code that generates the full script text.
function interpolate(clip src)
{
    input = crop_string=="" ? src : eval("src."+crop_string)
    input = resize_string=="" ? input : eval("input."+resize_string)
    nvof=true ? eval("""
        super=SVSuper(input, super_params)
        vectors=SVAnalyse(super, analyse_params, src=input)
        smooth=SVSmoothFps(input, super, vectors, smoothfps_params, mt=threads, src=src)
    """) : eval("""
        nvof_blk = 16
        nvof_src = input.LanczosResize(input.width/nvof_blk*4,input.height/nvof_blk*4,src_width=-(input.width % nvof_blk),src_height=-(input.height % nvof_blk))
        smooth=SVSmoothFps_NVOF(input, smoothfps_params, nvof_src=nvof_src, mt=threads, src=src)
    """)
    return demo_mode==0 ? smooth : demo(input,smooth)
}
input=last
    stereo_type==0 ? eval(""" interpolate(input)
""") :     stereo_type==1 ? eval("""
        lf = interpolate(input.crop(0,0,input.width/2,0))
        rf = interpolate(input.crop(input.width/2,0,0,0))
        StackHorizontal(lf, rf)
""") :     stereo_type==2 ? Eval("""
        lf = interpolate(input.crop(0,0,0,input.height/2))
        rf = interpolate(input.crop(0,input.height/2,0,0))
        StackVertical(lf, rf)""") : input
########### END OF base.avs ###########
Prefetch(threads)
  • Do you use other DirectShow filters? Specify name and version: Nil

Describe the bug

Playing a 4KHDR HEVC video from blue ray remux. Add Avsynth filter into MPC-HC external filters and enabled it. Then selected MadVR as the video renderer in MPC settings. MadVR OSD reports receiving BT.709 non-HDR video. The avisynth script is working as MadVR reports correct high frame rate due to the SVP script. However image looks washed out due to the BT.709 and MadVR unable to detect it as HDR video thus does not apply tone mapping. One workaround I found out is to add MadVR into the list of external filters too and place it right below the avisynth filter and enable it. However this approach results in heavy system resource usage as MadVR is being used twice thus processed the video twice (one as an external filter, one as a built-in video renderer). Tested with multiple HDR files, all same behaviour.
In v0.9.1, adding the avisynth filter to external filters list without the MadVR filter results in a black screen e.g. no video output at all, so I believe one of the change made between 0.9.1 and 0.9.2 caused this. Nonetheless, its still an improvement from black screen to displaying it without HDR data.

Checklist

  • Try a different video player and check if the issue persist. For example, if your main video player is MPC-HC, try MPC-BE.
    Findings: persist

  • Try a different video renderer and check if the issue persist. For example, if issue exists with madVR, try EVR.
    Findings: persist (only madVR can do tone mapping)

  • Try a different video file and check if the issue persist. Try another file with different format, dimension and frame rate.
    Findings: persist
    image


ID : | 1
-- | --
Format : | HEVC
Format/Info : | High Efficiency Video Coding
Format profile : | Main [email protected]@High
HDR format : | SMPTE ST 2086, HDR10 compatible
Codec ID : | V_MPEGH/ISO/HEVC
Duration : | 1 时 30 分
Bit rate : | 67.6 Mb/s
Width : | 3 840 像素
Height : | 2 160 像素
Display aspect ratio : | 16:9
Frame rate mode : | 恒定帧率 (CFR)
Frame rate : | 23.976 (24000/1001) FPS
Color space : | YUV
Chroma subsampling : | 4:2:0 (Type 2)
Bit depth : | 10 位
Bits/(Pixel*Frame) : | 0.340
Stream size : | 42.9 GiB (93%)
Title : | HEVC 4K HDR10
Writing library : | ATEME Titan File 3.8.3 (4.8.3.0)
Language : | 英语 (English)
Default : | 是
Forced : | 是
Color range : | Limited
Color primaries : | BT.2020
Transfer characteristics : | PQ
Matrix coefficients : | BT.2020 non-constant
Mastering display color primaries : | Display P3
Mastering display luminance : | min: 0.0050 cd/m2, max: 1000 cd/m2
Maximum Content Light Level : | 739 cd/m2
Maximum Frame-Average Light Level : | 331 cd/m2

Green bar on the right side

Happens with a non-square-pixel videos (par != 1) (mostly DVD's)
Regression in 0.9.0 - doesn't happen with 0.8.5.

"green" transparent bar - on madVR, and a bw-bar on EVR

PotPlayer crashes on playback stop (0.7.5+)

... started in #9 (comment) ...

PotPlayer sometimes crashes with 0.7.5 and later, mostly when switching to another video in playlist and with LAV Video decoder in use. Last lines in the log:

T 6912 @ 33769: Frame handler start BeginFlush()
T 6912 @ 33769: Frame handler cleanup after stop threads

I'm unable to attach debugger to the PotPlayer process for some reason oO so I just tried to narrow the problem down using good-old log file.

The crash occurs while waiting for output thread(s) termination in t.join();.
What happens in the output thread? seems like it crashes on _filter.InitializeOutputSample()

Interesting fact:

  • I have two more people reporting this
  • it doesn't crash on 0.7.4!

Add a bunch videos to playlist.

It doesn't matter how many videos are in the playlist, just keep switching videos... in fact you don't need a playlist at all, you can just stop-and-play one video 10+ times. Playlist is just a quickest way to do it.

Does AviSynth Filter support D3D11 hardware decoder? (re: LAV Filters, etc)

Here is my configuration:

  • Windows 10 x64 (Nvidia GTX 3080 / Intel i7-8700K @ 5.0 GHz)
  • LAV Filters v0.75
  • AviSynth+v3.7.0
  • AviSynth Filter v1.0
  • MPC-HC v1.9.8.75 (with AviSynth Filter enabled with 'Preferred' but no script loaded)

If I select 'D3D11' (native or copy-back) with LAV then I get a black screen.
If I select 'DXVA2' (native or copy-back) it works but is extremely slow with 7K or 8K video.

The only method I can successfully play 7K or 8K is using D3D11 (native) or DXVA2 (native).

  1. Does AviSynth Filter (or AviSynth+ itself?) support D3D11 hardware decoding in LAV Filters?
  2. Does AviSynth Filter (or AviSynth+ itself?) force DXVA2 (native) into copy-back mode? For example, my 7K/8K videos playback perfectly with DXVA2 (native) but adding AviSynth Filter (but no scripts!) causes the playback to become extremely slow similar to copy-back methods.

RGB48 doesn't work correctly

Consider a 4:4:4 10-bit video (yuv444p10le).
With RGB48 option checked (which is by default) the image is upside-down and with wrong colors. Pin info shows "Connection media type: Video: RGB0 1280x720 23.976fps".
With RGB48 unchecked connection is made with "Video: RGB32 1280x720 23.976fps" and everything works just fine.

0.9.1, 10-bit video doesn't show with EVR

Again, a regression in 0.9, works with 0.8.5

MPC-HC, EVR-CP renderer, any 10-bit video

0.8.5: connects as NV12, plays fine
0.9.1: doesn't connect at all, video isn't processed.

it works only if uncheck both p010 and p016 checkboxes

T 19416 @ 0: Configured script file:
T 19416 @ 0: Configured input format NV12: 1
T 19416 @ 0: Configured input format IYUV: 1
T 19416 @ 0: Configured input format P210: 1
T 19416 @ 0: Configured input format YV12: 1
T 19416 @ 0: Configured input format I420: 1
T 19416 @ 0: Configured input format P016: 1
T 19416 @ 0: Configured input format YUY2: 1
T 19416 @ 0: Configured input format P010: 1
T 19416 @ 0: Configured input format P216: 1
T 19416 @ 0: Configured input format YV24: 0
T 19416 @ 0: Configured input format RGB24: 1
T 19416 @ 0: Configured input format RGB32: 1
T 19416 @ 0: Configured output threads: 1
T 19416 @ 1: Loading process: mpc-hc64.exe
T 19416 @ 4: AvsHandler()
T 19416 @ 4: Filter version: 0.9.1
T 19416 @ 4: AviSynth version: AviSynth+ 3.5 (r3106, 3.5, x86_64)
T 19416 @ 4: CAviSynthFilter(): 000001C2C116E530
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input P010 output P016
T 19416 @ 4: Add compatible definitions: input P010 output P010
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input P010 output P016
T 19416 @ 4: Add compatible definitions: input P010 output P010
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input P016 output P016
T 19416 @ 4: Add compatible definitions: input P016 output P010
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input P016 output P016
T 19416 @ 4: Add compatible definitions: input P016 output P010
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input NV12 output NV12
T 19416 @ 4: Add compatible definitions: input NV12 output IYUV
T 19416 @ 4: Add compatible definitions: input NV12 output YV12
T 19416 @ 4: Add compatible definitions: input NV12 output I420
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input NV12 output NV12
T 19416 @ 4: Add compatible definitions: input NV12 output IYUV
T 19416 @ 4: Add compatible definitions: input NV12 output YV12
T 19416 @ 4: Add compatible definitions: input NV12 output I420
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input YV12 output NV12
T 19416 @ 4: Add compatible definitions: input YV12 output IYUV
T 19416 @ 4: Add compatible definitions: input YV12 output YV12
T 19416 @ 4: Add compatible definitions: input YV12 output I420
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input YV12 output NV12
T 19416 @ 4: Add compatible definitions: input YV12 output IYUV
T 19416 @ 4: Add compatible definitions: input YV12 output YV12
T 19416 @ 4: Add compatible definitions: input YV12 output I420
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input P216 output P210
T 19416 @ 4: Add compatible definitions: input P216 output P216
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input P216 output P210
T 19416 @ 4: Add compatible definitions: input P216 output P216
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input P210 output P210
T 19416 @ 4: Add compatible definitions: input P210 output P216
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input P210 output P210
T 19416 @ 4: Add compatible definitions: input P210 output P216
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input YUY2 output YUY2
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input YUY2 output YUY2
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input RGB32 output RGB32
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input RGB32 output RGB32
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input RGB24 output RGB24
T 19416 @ 4: ReloadAviSynthScript
T 19416 @ 4: Add compatible definitions: input RGB24 output RGB24
T 19416 @ 5: CAviSynthFilter(): 000001C2C65F48E0
T 19416 @ 5: Destroy CAviSynthFilter: 000001C2C65F48E0
T 19416 @ 7: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 7: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 7: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 7: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 7: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 7: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 7: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 7: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 7: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 7: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 7: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 7: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 7: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 7: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 7: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 7: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 7: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 7: Accept transform: output YUY2 Offered input: P010 Compatible input: YUY2
T 19416 @ 7: Accept transform: output YUY2 Offered input: P010 Compatible input: YUY2
T 19416 @ 7: Accept transform: output RGB32 Offered input: P010 Compatible input: RGB32
T 19416 @ 7: Accept transform: output RGB32 Offered input: P010 Compatible input: RGB32
T 19416 @ 7: Accept transform: output RGB24 Offered input: P010 Compatible input: RGB24
T 19416 @ 8: Accept transform: output RGB24 Offered input: P010 Compatible input: RGB24
T 19416 @ 8: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 8: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 8: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 8: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 8: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 8: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 8: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 8: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 8: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 8: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 8: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 8: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 8: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 8: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 8: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 8: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 8: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 8: Accept transform: output YUY2 Offered input: P010 Compatible input: YUY2
T 19416 @ 8: Accept transform: output YUY2 Offered input: P010 Compatible input: YUY2
T 19416 @ 8: Accept transform: output RGB32 Offered input: P010 Compatible input: RGB32
T 19416 @ 8: Accept transform: output RGB32 Offered input: P010 Compatible input: RGB32
T 19416 @ 8: Accept transform: output RGB24 Offered input: P010 Compatible input: RGB24
T 19416 @ 8: Accept transform: output RGB24 Offered input: P010 Compatible input: RGB24
T 19416 @ 17: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 17: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 17: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 17: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 17: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 17: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 17: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 17: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 17: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 17: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output YUY2 Offered input: P010 Compatible input: YUY2
T 19416 @ 18: Accept transform: output YUY2 Offered input: P010 Compatible input: YUY2
T 19416 @ 18: Accept transform: output RGB32 Offered input: P010 Compatible input: RGB32
T 19416 @ 18: Accept transform: output RGB32 Offered input: P010 Compatible input: RGB32
T 19416 @ 18: Accept transform: output RGB24 Offered input: P010 Compatible input: RGB24
T 19416 @ 18: Accept transform: output RGB24 Offered input: P010 Compatible input: RGB24
T 19416 @ 18: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 18: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 18: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 18: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 18: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 18: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 18: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 18: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 18: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output IYUV Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output YV12 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output I420 Offered input: P010 Compatible input: NV12
T 19416 @ 18: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P210 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output P216 Offered input: P010 Compatible input: P216
T 19416 @ 18: Accept transform: output YUY2 Offered input: P010 Compatible input: YUY2
T 19416 @ 18: Accept transform: output YUY2 Offered input: P010 Compatible input: YUY2
T 19416 @ 18: Accept transform: output RGB32 Offered input: P010 Compatible input: RGB32
T 19416 @ 18: Accept transform: output RGB32 Offered input: P010 Compatible input: RGB32
T 19416 @ 18: Accept transform: output RGB24 Offered input: P010 Compatible input: RGB24
T 19416 @ 18: Accept transform: output RGB24 Offered input: P010 Compatible input: RGB24
T 19416 @ 153: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 153: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 153: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 153: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 153: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 153: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 153: Accept transform: output P016 Offered input: P010 Compatible input: P010
T 19416 @ 153: Accept transform: output P010 Offered input: P010 Compatible input: P010
T 19416 @ 153: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 159: Accept transform: output NV12 Offered input: P010 Compatible input: NV12
T 19416 @ 166: Accept transform: output NV12 Offered input: P010 Compatible input: NV12

... and nothing else

install.bat does not work via double click or run as administrator

Environment

Mostly na, Using Windows 10 64bit.

Describe the bug

When trying to install the plugin via the install.bat, it doesn't work by double clicking on it, or right clicking and running as administrator. The error is 'The module avisynth_filter_64.ax failed to load.'

Instead I need to cd into the directory in an elevated cmd prompt, and run install.bat from there. I can make a patch to resolve this to make it behave similar to the likes of the madVR install.bat, which seems to support running via right click / run as administrator?

To Reproduce

  1. Right click on install.bat
  2. Run as Administrator

Checklist

  • Did you try a different video player and check if the issue persist? For example, if your main video player is MPC-HC, try MPC-BE.
    Answer: na

  • Did you try a different video renderer and check if the issue persist? For example, if issue exists with madVR, try EVR.
    Answer: na

  • Did you try a different video file and check if the issue persist? Try another file with different format, dimension and frame rate.
    Answer: na

QTGMC + ApparentFPS problem (was: TDecimate issue)

Environment

  • Filter version: v0.8.2
  • AviSynth+ version: v3.6.1
  • CPU: Ryzen 7 3800X
  • OS: Windows 10 x64 2004
  • Video player: MPC-HC x64 1.9.8
  • Splitter filter and video decoder: MPC-HC x64 internal
  • Video renderer: madVR
  • Video format: NV12
  • AviSynth script 1:
AvsFilterSource()
QTGMC()
ApparentFPS()
prefetch()
  • AviSynth script 2:
AvsFilterSource()
QTGMC()
prefetch()
ApparentFPS()

Describe the bug

QTGMC and ApparentFPS work great individually in realtime, but not in one script. Script 1 plays choppy (but seeking works). Script 2 plays smoothly, but the video player with AVSF 0.8.2 hangs on seek. Script 2 with AVSF test build plays smoothly and seeking work mostly, but sometimes hangs (1 of 5-10 times).

To Reproduce

  1. Load quoted script to AVSF
  2. Try to play video and check lags and ability to seek.

Checklist

  • Try a different video player and check if the issue persist. For example, if your main video player is MPC-HC, try MPC-BE.
    Findings: not tried MPC-BE yet

  • Try a different video renderer and check if the issue persist. For example, if issue exists with madVR, try EVR.
    Findings: when EVR-CP used instead of madVR, Script 2 with AVSF test build always hangs on seek

  • Try a different video file and check if the issue persist. Try another file with different format, dimension and frame rate.
    Findings: not tested yet

Avisynth Filter doubles playback framerate when used with default potplayer codecs

Environment

  • Filter version: v.1.1.0 #8332de9 (also tried latest commit)
  • AviSynth+ version: v3.5 r3106
  • OS: Windows 10 x64 20H2
  • AviSynth script: SVP user, but the issue occurs when SVP is not running/program closed
    -avsf log.log

Describe the bug

-When Avisynth Filter is enabled and playing any video using default potplayer codecs, it would result in double framerate even if source is progressive

-Works fine when using LAV video decoder, would have the issue when using built in FFmpeg decoders

To Reproduce

  1. Keep codec settings as default (potplayer v210428 x64, 210611 x64 beta)
  2. Add Avisynth Filter to potplayer
  3. Play any video

Installation problem

Environment

  • Filter version: 0.8.2/0.8.3
  • AviSynth+ version: v3.6.1
  • OS: Windows 10 x64
  • Video player: MPC-BE x64 1.5.5.5433, MPC-HC x64 1.9.8
  • Splitter filter and video decoder: MPC-BE x64 internal, MPC-HC x64 internal
  • Video renderer: madVR, EVR-CP

Describe the bug

After repeating all install steps from README.md AviSynth Filter doesn't appear in the video player filters list.
AviSynth Filter appears in the video player filters list only after applying activate_remote_control.reg manually.

To Reproduce

Delete AvsFile and RemoteControl keys under registry path HKEY_CURRENT_USER\SOFTWARE\AviSynthFilter

Checklist

  • Try a different video player and check if the issue persist. For example, if your main video player is MPC-HC, try MPC-BE.
    Findings: tried MPC-HC+madVR and MPC-BE+EVR-CP, issue persist

  • Try a different video renderer and check if the issue persist. For example, if issue exists with madVR, try EVR.
    Findings: doesn't matter

  • Try a different video file and check if the issue persist. Try another file with different format, dimension and frame rate.
    Findings: doesn't matter

avsf.log

Source folder name cause player to crash

Environment

  • Filter version: v0.8.1 (?)
  • AviSynth+ version: v3.5
  • OS: Windows 10 x64
  • Video player: MPC-BE x64 1.5.3 (build 4488)
  • Splitter filter and video decoder: LAV Filters
  • Video renderer: madVR
  • Video format:
  • AviSynth script:
  • Do you use other DirectShow filters? Specify name and version:

Describe the bug

Some folder name causes crashing.
I guess the folder name includes one or more chars are NOT in system Charset.
But file name is fine.

And
When I enable avisynth filter log.
REG ADD HKCU\SOFTWARE\AviSynthFilter /v "LogFile" /t REG_SZ /d "%temp%\AviSynthFilter.log" /f
EVERYTHING WILL BE FINE.
It's fun.
I just want debug.

To Reproduce

  1. Create a folder "挥" anywhere. (If your system charset is not GB)
  2. Put any video file in.
  3. Play it.

"worker" issues

Quickly change SVP settings several times, for example move the "quality/perf" slider ---> video player will hang.

It hangs at _avsScriptClip = invokeResult.AsClip();

 	[External Code]	
 	avisynth_filter_64.ax!PClip::operator=(const PClip & x) Line 1131	C++
>	avisynth_filter_64.ax!AvsFilter::CAviSynthFilter::ReloadAviSynthScript(const _AMMediaType & mediaType) Line 834	C++
 	avisynth_filter_64.ax!AvsFilter::CAviSynthFilter::Receive(IMediaSample * pSample) Line 299	C++
 	avisynth_filter_64.ax!CTransformInputPin::Receive(IMediaSample * pSample) Line 763	C++
 	[External Code]

... which means it hangs at destruction of previous clip
... which means it's locked at _sourceFrameAvailCv

_avsScriptClip is still alive after FrameHandler::EndFlush() and GetSourceFrame() still can be called.

x86: crash with ReClock enabled

no comments - it just crashes on start
call stack shows it's a ReClock's crash when AVSF is enabled, but it doesn't make any difference for the end-user
doesn't crash with ffdshow, obviously

 	[External Code]	
>	ReClock.dll!0caeae7d()	Unknown
 	ReClock.dll![Frames below may be incorrect and/or missing, no symbols loaded for ReClock.dll]	Unknown
 	[External Code]	

[Bug] Player hangs after seeking backwards with multiple Prefetchers.

Environment

  • Filter version: All recent versions.
  • AviSynth+ version: Tested v3.5.2 (r3218) & 3.6.2 (r3325)
  • OS: Windows7 x64
  • Video player: Tested: PotPlayer 200908(1.7.21295), MPC-HC (1.9.8) & MPC-BE (1.5.5.5433) 32bit & 64bit
  • Splitter filter and video decoder: LAV Filters, MPC-HC & MPC-BE internal defaults
  • Video renderer: Tested: MadVR & EVR(C/P)
  • Video format: Tested: YV12
  • AviSynth script:

AvsFilterSource()
Prefetch(1,8)
OnCPU(16)

or

AvsFilterSource()
Prefetch(1,1)
Prefetch(1,2)

  • Do you use other DirectShow filters? Specify name and version: Happens with or without changing player defaults.

Describe the bug

Player window hangs as a result of seeking with multiple prefetchers enabled. Simplifying the script seems to have increased the reproduction sensitivity over how it was with filters in between. With the full script i originally detected it with, difference between AviSynth Filter builds seemed more obvious, however it very well could have been present all along.

To Reproduce

  1. Load video player.
  2. Load a video.
  3. Seek to middle.
  4. Repeatedly seek backwards in quick succession.

Checklist

  • Did you try a different video player and check if the issue persist? For example, if your main video player is MPC-HC, try MPC-BE.
    Answer: Yes.

  • Did you try a different video renderer and check if the issue persist? For example, if issue exists with madVR, try EVR.
    Answer: Yes

  • Did you try a different video file and check if the issue persist? Try another file with different format, dimension and frame rate.
    Answer: Yes

I'll describe the function and purpose of OnCPU & Prefetch (as i understand it) later on in another comment.

HDR issue

Can you make it passthrough HDR metadata to SCREEN?
because madvr was high overhead,even with lowest setting.

analog capture card jitter and sync offset issues?

Environment

  • Filter version: 0.81
  • AviSynth+ version: [ v3.6.1]
  • OS: [e.g. Windows 10 x64]
  • Video player: [ MPC-HC x86 1.9.8]
  • Splitter filter and video decoder: [default decoder]
  • Video renderer: [ EVR]
  • Video format: yuy2
  • AviSynth script:
SetMemoryMax(6000)
global threads=4
AvsFilterSource()
ConvertToYV12()
FDecimate2(24)
SetFilterMTMode("DEFAULT_MT_MODE",2)
global crop_params=""
global resize_string=""
global super_params     = "{gpu:1}"
global analyse_params   = "{gpu:1}"
global smoothfps_params = "{rate:{num:144,den:1,abs:true},algo:21,scene:{mode:0,blend:true}}"
global demo_mode=0
stereo_type=0
stereo_left_selection=""
stereo_right_selection=""
########## BEGIN OF MSMoothFps.avs ##########
# This file is a part of SmoothVideo Project (SVP) 3.1
# This is NOT the full AVS script, all used variables are defined via 
# JavaScript code that generates the full script text.
function interpolate(clip src)
{
	input = crop_params=="" ? src : eval("src.crop("+crop_params+")")
	input = resize_string=="" ? input : eval("input."+resize_string)
	super=SVSuper(input, super_params)
	vectors=SVAnalyse(super, analyse_params, src=input)
	smooth=SVSmoothFps(input, super, vectors, smoothfps_params, mt=threads, url="www.svp-team.com")
	return demo_mode==0 ? smooth : demo(input,smooth)
}
input=last
	stereo_type==0 ? eval(""" interpolate(input)
""") : 	stereo_type==1 || stereo_type==3 ? eval("""
		lf = interpolate(input.crop(0,0,input.width/2,0))"""+stereo_left_selection+"""
		rf = interpolate(input.crop(input.width/2,0,0,0))"""+stereo_right_selection+"""
		StackHorizontal(lf, rf)
""") : 	stereo_type==2 || stereo_type==4  ? Eval("""
		lf = interpolate(input.crop(0,0,0,input.height/2))"""+stereo_left_selection+"""
		rf = interpolate(input.crop(0,input.height/2,0,0))"""+stereo_right_selection+"""
		StackVertical(lf, rf)""") : input
########### END OF MSMoothFps.avs ###########
Prefetch(4)
  • Do you use other DirectShow filters? Specify name and version: [none]

Describe the bug

Jitter and sync offset not 0 when using avisynth filter with svp script on an analog capture card-ImpactVCBe
model 1381- but when just using ffdshow and it's avisynth function, jitter and sync offset is 0.

To Reproduce

1.analog capture card and avisynth filter and my script and evr-cp
2.
3.

Checklist

  • Did you try a different video player and check if the issue persist? For example, if your main video player is MPC-HC, try MPC-BE.
    Answer: no

  • Did you try a different video renderer and check if the issue persist? For example, if issue exists with madVR, try EVR.
    Answer: no

  • Did you try a different video file and check if the issue persist? Try another file with different format, dimension and frame rate.
    Answer: no

Random hanging

Environment

  • Filter version: v0.9.4
  • AviSynth+ version: 3.7.0
  • OS: Windows 10 x64
  • GPU: NVIDIA GTX 1080 (driver 461.81)
  • CPU: Intel Core i9 10850k (10c20t)
  • Video player: MPC-BE x64 1.5.6
  • Splitter filter and video decoder: MPC
  • Video renderer: madVR
  • Video format: NV12
  • AviSynth script: SVP
  • Do you use other DirectShow filters? Specify name and version: No

Describe the bug

After watching a video for a period of time (it doesn't seem very consistent, sometimes it happens within 5 minutes, sometimes within 15, ~15 minutes tends to be the longest), with madVR the video frame freezes but the audio continues to play, and pausing the video and replaying it causes it to start playing video again but no longer at the interpolated framerate (not positive what is happening here, is it SVP's script? avisynth filter? avisynth+? How can I find out?) When using EVR the entire player just crashes. I have zero problems using SVP with just ffdshow (well, as far as crashes/hanging goes).

I'd love to figure out how to get this working as the one major change over ffdshow that helps so much for the experience is that with ffdshow, the video will freeze for a bit after AR changes and SVP's black bar detection kicks in. With avisynth filter it transitions nearly seamlessly.

I thought maybe this could have been related to #24 but I've tried messing with the CPU and GPU queue sizes and it seems to happen regardless of what they are set to.

I should also mention that I tried it with the AvySynth+ version that gets installed by SVP (3.5 I think?), and it also occurred there, I manually updated it to 3.7.0 seeing that it had improvements for multithreading and thought maybe it would help, but alas it did not.

Checklist

  • Try a different video player and check if the issue persist. For example, if your main video player is MPC-HC, try MPC-BE.
    Findings: I've tested and this happens in both MPC-HC and MPC-BE.

  • Try a different video file and check if the issue persist. Try another file with different format, dimension and frame rate.
    Findings: I've been having this consistently with everything I watch so I don't believe the file format is related.

avsf.zip (log file)

A 100%-chance hanging scenario

Open video, wait for SVP to kick-in and stabilize, move the quality/perf slider in SVP and immediately after that click on the video timeline. There's probably a race condition when seeking while the filter is still "working" on script reloading via RC, IF script reloading takes a lot of time (such as SVP script with GPU acceleration enabled).
I can't trigger hang with seeking only or moving SVP's slider only. It only appears when both events happen at the same time.

Possible audio desync due to incorrect frame times

One user reported audio desync after playing 30+ mins of video. So I decided to check (one more time :)) how AVSF calculates frame times.

Consider a 23.976 fps constant-rate video, the frame times after decoder are usually NOT a constant value but something like 42 ms - 41 - 42 - 42 - 41 - ... So it's efficiently a variable-rate sequence.
Now when FRC is active AND the FRC rate is an integer value (e.g. 2) there's no problem, the output sequence will be 42/2, 42/2, 41/2, 41/2, 42/2, etc.
But what happens with a non-integer FRC rate - e.g. 2.5? AVSF will produce something like this: 42/2.5, 42/2.5, 42/2.5, 41/2.5, 41/2.5, 42/2.5, ... But it's not correct! The correct sequence must be: 42/2.5, 42/2.5, (42/2.5 + 41/2.5)/2, 41/2.5, 41/2.5, 42/2.5, ...
In this example we already made a 0.2 ms desync on the first 3 source frames.

source frames:       |-----|----------|
x2.5, avsf output:   |--|--|--|----|----|
x2.5, correct times: |--|--|---|----|----|

Crash when jumping & 100% hanging when video ends natually

Environment

  • Filter version: #41 (comment)
  • AviSynth+ version: 3.7
  • OS: Win10 x64 1909
  • Video player: Potplayer x64 210318(1.7.21467)
  • Splitter filter and video decoder: LAV filter& LAV video decoder 0.74.1.75
  • Video renderer: madVR and EVR(CP)
  • Video format: NV12
  • AviSynth script: SVP4.5.206
  • Do you use other DirectShow filters? Specify name and version: No

Describe the bug

1.Crashes easily when jumping
114312986-45ae1b00-9b27-11eb-8321-731a573c8812
2.100% Hangs when the video ends natually

To Reproduce

1.SVP(GPU)+madVR: crashes easily when jumping, different results depend on videos. 100% hangs when video ends natually
2.SVP(CPU)+madVR: jumping is much more stable, not sure 100% stable. 100% hangs when video ends natually
3.SVP(GPU)+EVR(CP): same as 1
4.SVP(CPU)+EVR(CP): same as 2
5.SVP off+EVR/madVR: same as 2

Note: Restarting SVP is required when switching between CPU and GPU.

Checklist

  • Try a different video player and check if the issue persist. For example, if your main video player is MPC-HC, try MPC-BE.
    Findings: MPC-HC(with its internal LAV 0.70) also crashes when jumping, but keep playing till the end.

  • Try a different video renderer and check if the issue persist. For example, if issue exists with madVR, try EVR.
    Findings: see above

  • Try a different video file and check if the issue persist. Try another file with different format, dimension and frame rate.
    Findings: 720P videos crash easier than the 1080P ones.

hang when the video ends.log
jumping crash.log

[BUG] Settings don't save.

Environment

Filter version: v0.9.5
AviSynth+ version: 3.7.0
OS: Windows 10 x64
GPU: NVIDIA MX150
CPU: INTEL i5-8250u
Video player: PotPlayer 201021 (1.7.21311)
Splitter filter and video decoder: LAV Filters
Video renderer: MadVR
Video format: YV12
AviSynth script: SVPLite
Do you use other DirectShow filters? Specify name and version: No

I tried playing some video using the updated configurations said above and everything works fine. Then I tried changing my Filter and unchecked all unnecessary input formats except YV12. Clicked Apply and OK

Then pressed Apply again and OK on the PotPlayer. Stopped the video then play it again to restart and make sure that the settings were applied. After that, it throws an error that Only 8bit sources allowed. I was confused at first since I unchecked all unnecessary video input formats and just left YV12 alone. And when I tried to check it, all boxes were checked which I'm pretty sure I unchecked the rest of them except YV12.

I tried unchecking them all again and repeated the said above process. It still showed the error and the checkboxes were all checked again.

Playback freezes on some content after a few frames

Environment

  • Filter version: 0.8.1
  • AviSynth+ version: AviSynth+ 3.5 (r3106, 3.5, x86_64)
  • OS: Windows 10 x64
  • Video player: mpc-be 1.5.5 (build 5274) beta
  • Splitter filter and video decoder: LAV Filters latest nightly 0.74.1.87-git
  • Video renderer: madVR latest 114 beta
  • Video format: NV12
  • AviSynth script: No script at all
  • Do you use other DirectShow filters? Specify name and version: XySubFilter 3.1.0.752

Describe the bug

An issue which I assume also somehow related to the frame queue/cache. When madVR is set (as I have it set) to "delay playback start until render queue is full", and "delay playback start after seeking, too", sometimes (perhaps 50% of the time, but I can't find a pattern), when starting some videos, the image plays a few frames and then freezes. I have gpu and cpu queue set at 16 now. The audio continues in the background fine.

Manually seeking in the file, restores video playback.

Changing display modes (by double clicking madVRs image and letting it change my desktop from default of 60 to 48hz) seems to completely stop the audio.

This clip is an interlaced clip that I'm using LAV Video Yadif to de-interlace to double its original frame rate. (its a live performance of Lady Gaga Born This Way titled "Born This Way - 2011(HDTV-1080).mpg")

This occurs without SVP enabled (exited from the system tray completely), so avisynthfilter in this case has no actual avisynth script to process.

To Reproduce

  1. Play clip
  2. Wait about 0.5 seconds
  3. The image freezes but audio continues

Checklist

  • Did you try a different video player and check if the issue persist? For example, if your main video player is MPC-HC, try MPC-BE.
    Answer: No

  • Did you try a different video renderer and check if the issue persist? For example, if issue exists with madVR, try EVR.
    Answer: Yes I tried EVR, and can't reproduce there. It seems like some combination of madVR and avisynthfilter from what I can see.

  • Did you try a different video file and check if the issue persist? Try another file with different format, dimension and frame rate.
    Answer: Yes, I am currently only able to reproduce it on this 1 file. I'll try other HFR files to see can I reproduce also.

Filter registration broken in 0.7.3

  1. consider 0.7.2 already registered and added to MPC-HC
  2. unregister 0.7.2 -> open "external filters" in MPC-HC, see "Avisynth filter "
  3. register 0.7.3 -> nothing changed in "external filters"
  4. "Add filter" -> "Avisynth filter" -> now there're two lines - "Avisynth filter " + "Avisynth filter"
  5. double-click on newly added one - nothing happens, the property page doesn't open

Avisynth 3.5 vs 3.6+

Right now we're building with the latest AVS 3.6 headers. This resulting in AVSF is not working with AVS 3.5 installed solely due to AVISYNTH_INTERFACE_VERSION was bumped from 6 to 8. The filter doesn't depend on anything specific to the updated interface.

We (SVP) now have a problem: ffdshow doesn't work with AVS 3.6+ (AviSynth/AviSynthPlus#178) and AVSF doesn't work with AVS 3.5.

So, may I suggest building AVSF with headers from 3.5.0 release? Again, I don't see any difference for AVSF now.

Wrong conversion (?) to RGB24

The video: https://mega.nz/file/ZR9iDaqK#tMwyH_hufrhkxI617KYAjUtASGC5AuOSAMwgQbIYk0Q
MPC-HC 64-bit, LAV decoder, madVR, AVSF 0.7.2, no SVP, no script in AVSF

  1. LAV decoder set to DXVA2-CP: normal playback, madVR shows "h264, 8 bit, 4:2:0 -> NV12, 8 bit, 4:2:0"
  2. LAV decoder set to CUVID: picture is grayscale, flipped vertically and resized to 1/4 of width. madVR shows "h264, 8 bit, 4:2:0 -> RGB24, 8 bit, RGB".
    "Avs In" - Connection media type: NV12 1024x576 23.976fps in both cases.
    Log:
T  16372 @        0: Configured script file: 
T  16372 @        0: Configured input formats: 2047
T  16372 @        0: Configured output threads: 1
T  16372 @        0: Loading process: C:\Program Files\MPC-HC\mpc-hc64.exe
T  16372 @        0: CAviSynthFilter::CAviSynthFilter()
T  16372 @        0: Filter version: 0.7.2
T  16372 @        0: AviSynth version: AviSynth+ 3.5 (r3106, 3.5, x86_64)
T  16372 @        0: ReloadAviSynthScript
T  16372 @        0: Add acceptable input definition:  0
T  16372 @        0: Add acceptable output definition:  0
T  16372 @        0: Add compatible definitions: input  0 output  0
T  16372 @        0: Add acceptable output definition:  1
T  16372 @        0: Add compatible definitions: input  0 output  1
T  16372 @        0: Add acceptable output definition:  2
T  16372 @        0: Add compatible definitions: input  0 output  2
T  16372 @        0: Add acceptable output definition:  3
T  16372 @        0: Add compatible definitions: input  0 output  3
T  16372 @        0: ReloadAviSynthScript
T  16372 @        0: Add acceptable input definition:  4
T  16372 @        0: Add acceptable output definition:  4
T  16372 @        0: Add compatible definitions: input  4 output  4
T  16372 @        0: Add acceptable output definition:  5
T  16372 @        0: Add compatible definitions: input  4 output  5
T  16372 @        0: ReloadAviSynthScript
T  16372 @        0: Add acceptable input definition:  6
T  16372 @        0: Add acceptable output definition:  6
T  16372 @        0: Add compatible definitions: input  6 output  6
T  16372 @        0: Add acceptable output definition:  7
T  16372 @        0: Add compatible definitions: input  6 output  7
T  16372 @        0: ReloadAviSynthScript
T  16372 @        0: Add acceptable input definition:  9
T  16372 @        0: Add acceptable output definition:  9
T  16372 @        0: Add compatible definitions: input  9 output  9
T  16372 @        0: ReloadAviSynthScript
T  16372 @        0: Add acceptable input definition:  8
T  16372 @        0: Add acceptable output definition:  8
T  16372 @        0: Add compatible definitions: input  8 output  8
T  16372 @        0: Accept input definition:  0
T  16372 @        0: Connected input pin with definition:  0
T  16372 @        0: Offer output definition:  0
T  16372 @        0: Offer output definition:  1
T  16372 @        0: Offer output definition:  2
T  16372 @        0: Offer output definition:  3
T  16372 @        0: Offer output definition:  4
T  16372 @        0: Offer output definition:  5
T  16372 @        0: Offer output definition:  6
T  16372 @        0: Offer output definition:  7
T  16372 @        0: Offer output definition:  9
T  16372 @        0: Offer output definition:  8
T  16372 @        1: CAviSynthFilter::CAviSynthFilter()
T  16372 @        1: Frame handler begin flush
T  16372 @        1: Frame handler cleanup after stop threads
T  16372 @        1: Frame handler end flush
T  16372 @       13: Offer output definition:  0
T  16372 @       13: Accept transform: out  0
T  16372 @       13: Offer output definition:  1
T  16372 @       13: Accept transform: out  1
T  16372 @       13: Offer output definition:  2
T  16372 @       13: Accept transform: out  2
T  16372 @       13: Offer output definition:  3
T  16372 @       13: Accept transform: out  3
T  16372 @       13: Offer output definition:  4
T  16372 @       13: Accept transform: out  4
T  16372 @       13: Offer output definition:  5
T  16372 @       13: Accept transform: out  5
T  16372 @       13: Offer output definition:  6
T  16372 @       13: Accept transform: out  6
T  16372 @       13: Offer output definition:  7
T  16372 @       13: Accept transform: out  7
T  16372 @       13: Offer output definition:  9
T  16372 @       13: Accept transform: out  9
T  16372 @       13: Offer output definition:  8
T  16372 @       13: Accept transform: out  8
T  16372 @       13: Offer output definition:  0
T  16372 @       13: Accept transform: out  0
T  16372 @       13: Offer output definition:  1
T  16372 @       13: Accept transform: out  1
T  16372 @       13: Offer output definition:  2
T  16372 @       13: Accept transform: out  2
T  16372 @       13: Offer output definition:  3
T  16372 @       13: Accept transform: out  3
T  16372 @       14: Offer output definition:  4
T  16372 @       14: Accept transform: out  4
T  16372 @       14: Offer output definition:  5
T  16372 @       14: Accept transform: out  5
T  16372 @       14: Offer output definition:  6
T  16372 @       14: Accept transform: out  6
T  16372 @       14: Offer output definition:  7
T  16372 @       14: Accept transform: out  7
T  16372 @       14: Offer output definition:  9
T  16372 @       14: Accept transform: out  9
T  16372 @       14: Offer output definition:  8
T  16372 @       14: Accept transform: out  8
T  16372 @       84: Offer output definition:  0
T  16372 @       84: Accept transform: out  0
T  16372 @       84: Accept transform: out  0
T  16372 @      137: Connected with types: in  0 out  0
T  16372 @      137: Offer output definition:  0
T  16340 @      794: Visiting filter: LAV Splitter Source (internal)
T  16340 @      794: Visiting filter: LAV Video Decoder (internal)
T  16340 @      794: Visiting filter: AviSynth Filter
T  16340 @      794: Visiting filter: madVR
T  15648 @      795: Start output worker thread
T  13104 @      800: Remote control started
T  11964 @      875: Accept input definition:  0
T  11964 @      875: Accept transform: out  0
T  11964 @      875: Accept input definition:  0
T  11964 @      875: Accept transform: out  0
T  11964 @      875: Update output format using input format: definition 0, width  1024, height   576, codec NV12
T  11964 @      875: Accept transform: out  8
T  11964 @      875: Accept transform: out  8
T  11964 @      876: Accept transform: out  8
T  11964 @      876: Accept input definition:  0
T  11964 @      876: Accept transform: out  0
T  11964 @      876: Frame handler begin flush
T  11964 @      876: Frame handler wait for barriers
T  15648 @      876: Output worker thread wait for flush
T  11964 @      876: Frame handler end flush
T  11964 @      876: ReloadAviSynthScript
T  11964 @      876: Update output format using input format: definition 0, width  1024, height   576, codec NV12
T  11964 @      876: Accept transform: out  0
T  11964 @      876: Accept transform: out  0
T  11964 @      876: New output format: definition 8, width  1024, height  -576, codec RGB24
T  11964 @      877: Processed source frame:      0 at      81250 ~     498333, nextSourceFrameNb      0 nextOutputFrameStartTime          0
T  11964 @      877: New output format: definition 8, width  1024, height  -576, codec RGB24
T  11964 @      878: Processed source frame:      1 at     491250 ~     908333, nextSourceFrameNb      1 nextOutputFrameStartTime          0
T  11964 @      878: Create output frame      0 for source frame      0 at      81250 ~     491250
T  15648 @      878: Start processing output frame      0 at      81250 ~     491250 frameTime     410000 for source      0 Output queue size  0 Front     -1 Back     -1
T  15648 @      878: Get source frame: frameNb      0 Input queue size  2
T  11964 @      878: New output format: definition 8, width  1024, height  -576, codec RGB24
T  15648 @      879: Accept transform: out  8
T  15648 @      879: Delivered frame      0
T  15648 @      879: GarbageCollect frame      0 pre refcount    1 post queue size  2
T  11964 @      879: Processed source frame:      2 at     911250 ~    1328333, nextSourceFrameNb      2 nextOutputFrameStartTime     491250
T  11964 @      879: Create output frame      1 for source frame      1 at     491250 ~     911250

Black screen after clean installation

Just installed clean fresh Window 10 21H1 in a VM, then installed SVP.
After switching from ffdshow to AVSF - it doesn't work at all. The filter is missing from the filters list, player shows black screen.
What am I missing?
avsf.log

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.