Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
20th January 2020, 22:36 | #3701 | Link |
Registered User
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
|
@Myrsloik
I found a solution that should be fine for me, moving the cleanup code past the message loop, apparently it has something to do with the message system. Sorry for not finding it earlier and thanks for trying to help.
__________________
https://github.com/stax76/software-list https://www.youtube.com/@stax76/playlists |
21st January 2020, 00:32 | #3702 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Definitely looks like some kind of memory corruption but I can't explain why it happens. A true mystery. It crashes in vpy_clearEnvironment() which gets called twice in a row (impossible) and I can't explain that at all.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
21st January 2020, 11:23 | #3703 | Link | |
Registered User
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
|
Quote:
https://docs.microsoft.com/en-us/win...msg/wm-destroy
__________________
https://github.com/stax76/software-list https://www.youtube.com/@stax76/playlists |
|
21st January 2020, 15:28 | #3704 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
Your code sample was helpful to the development of audio support anyway since it exposed another bug.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
25th January 2020, 12:52 | #3706 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
Then "windows desktop wizard" and when asked select dll as project type and check "empty project". Add the sdk source file and then add the location of vapoursynth.h to the include dirs (or simply stuff it in the same dir as the source code if you're lazy). Something like that.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
25th January 2020, 18:54 | #3707 | Link | |
Registered User
Join Date: Sep 2006
Posts: 1,657
|
Quote:
Last edited by lansing; 25th January 2020 at 18:57. |
|
25th January 2020, 19:22 | #3708 | Link |
Registered User
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
|
In the project properties there is a VC++ Directory section where you can set include and lib directories.
__________________
https://github.com/stax76/software-list https://www.youtube.com/@stax76/playlists |
26th January 2020, 14:30 | #3710 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Go try the builds with audio support.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
27th January 2020, 21:06 | #3711 | Link |
I'm Siri
Join Date: Oct 2012
Location: void
Posts: 2,633
|
update on the syntactic sugar: https://github.com/IFeelBloated/vapo...ster/sugar.hpp
new function: View(y, x) creates an offset view of the src plane centered on (y, x), you can also create a second/third/... order view on a view to manipulate the relative coordinates of, well, relative coordinates. high order views are useful to algorithms with nested search windows (eg. NLMeans, you got a sliding similarity window(s) inside a sliding search window(a)). the previous box blur example Code:
auto srcp = MakePlane<const float>(srcp8, width, height, Repeat); auto dstp = MakePlane<float>(dstp8, width, height, Zero); for (auto y : Range{ height }) for (auto x : Range{ width }) dstp[y][x] = (srcp[y-1][x-1] + srcp[y-1][x] + srcp[y-1][x+1] + srcp[y][x-1] + srcp[y][x] + srcp[y][x+1] + srcp[y+1][x-1] + srcp[y+1][x] + srcp[y+1][x+1]) / 9; Code:
auto srcp = MakePlane<const float>(srcp8, width, height, Repeat); auto dstp = MakePlane<float>(dstp8, width, height, Zero); for (auto y : Range{ height }) for (auto x : Range{ width }) { auto center = srcp.View(y, x); dstp[y][x] = (center[-1][-1] + center[-1][0] + center[-1][1] + center[0][-1] + center[0][0] + center[0][1] + center[1][-1] + center[1][0] + center[1][1]) / 9; } |
27th January 2020, 22:56 | #3713 | Link |
Registered User
Join Date: Sep 2006
Posts: 1,657
|
I got a crash from the audio test build while running benchmark in vsedit. It works fine when I switch back to R48.
Code:
core.avs.LoadPlugin(vd_filter) core.avs.LoadVirtualdubPlugin(neatvideo_vdf, "NeatVideo", 2) clip = core.lsmas.LWLibavSource(src, prefer_hw=1) rgb_clip = core.resize.Bicubic(clip, matrix_in_s="709", format=vs.COMPATBGR32) denoise_clip = core.avs.NeatVideo_2(rgb_clip, profilePath, presetPath) denoise_clip.set_output() |
27th January 2020, 23:26 | #3714 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
No, this is definitely not something the API should handle. Not that it'd be possible anyway to expose a huge lump of C++ templates in a header through a C API anyway...
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
28th January 2020, 09:02 | #3715 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
28th January 2020, 11:04 | #3717 | Link |
Registered User
Join Date: Sep 2006
Posts: 1,657
|
Yes, I tested with QTGMC, also crashed.
Code:
import vapoursynth as vs import havsfunc as haf core = vs.get_core() clip = core.std.BlankClip(width=1920, height=1080, format=vs.YUV420P8, length=10000) clip = haf.QTGMC(clip, TFF=True) clip.set_output() |
28th January 2020, 16:45 | #3718 | Link |
I'm Siri
Join Date: Oct 2012
Location: void
Posts: 2,633
|
@Myrsloik
can I store vsapi, in and out as global variables and for each filter in the plugin, refresh them in xxxCreate()? will there be some unknown conflict? I assume this should work since you can only invoke one filter in the plugin with each function call? I haven't finished but basically, it's https://github.com/IFeelBloated/vapo...ample).cxx#L70 |
28th January 2020, 18:25 | #3719 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
1. You can get different vsapi pointers to different filters. This is how different api versions are handled. 2. Multithreaded filter creation is actually a thing. So you'll have races when using globals for in and out.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
Tags |
speed, vaporware, vapoursynth |
|
|