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. |
![]() |
#3741 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Ikea Chair
Posts: 2,279
|
Quote:
All existing audio sources suck so I'll probably have to improve FFMS2 first. Feel free to start implementing audio plugins using the doodle1 branch. The API is conceptually stable (but tweaks will definitely be made).
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
![]() |
![]() |
![]() |
#3743 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Ikea Chair
Posts: 2,279
|
What about you asking a complete question?
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
![]() |
![]() |
![]() |
#3745 | Link | ||
Registered User
Join Date: Sep 2018
Posts: 14
|
Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#3746 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Ikea Chair
Posts: 2,279
|
There needs to be at least one decent source filter for audio or there won't be much to test really...
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
![]() |
![]() |
![]() |
#3747 | Link |
Cary Knoop
Join Date: Feb 2017
Location: Newark CA, USA
Posts: 397
|
I can't figure this out on Windows 10.
1. I installed Python using Anaconda (e:\anaconda3) 2. Installed Vapoursynth (all users) (e:\vapoursynth) python myscript.vpy works fine! Code:
import vapoursynth as vs from vapoursynth import core print(core.version()) clip = core.std.BlankClip(format=vs.RGB24, color=[0, 0, 0]) clip.set_output() vspipe --info myscript.vpy - Setting PythonPath in registry to "e:\anaconda3" gives: Failed to initialize VapourSynth environment Setting PythonPath to "" gives: Fatal Python error: initfsencoding: unable to load the file system codec ModuleNotFoundError: No module named 'encodings' Current thread 0x00008fdc (most recent call first): Registry entries: Code:
Key Name: HKEY_LOCAL_MACHINE\SOFTWARE\VapourSynth Class Name: <NO CLASS> Last Write Time: 12/31/2019 - 4:26 PM Value 0 Name: Version Type: REG_SZ Data: 48 Value 1 Name: Path Type: REG_SZ Data: e:\vapoursynth Value 2 Name: CorePlugins Type: REG_SZ Data: e:\vapoursynth\core\plugins Value 3 Name: Plugins Type: REG_SZ Data: e:\vapoursynth\plugins Value 4 Name: VapourSynthDLL Type: REG_SZ Data: e:\vapoursynth\core\vapoursynth.dll Value 5 Name: VSScriptDLL Type: REG_SZ Data: e:\vapoursynth\core\vsscript.dll Value 6 Name: VSPipeEXE Type: REG_SZ Data: e:\vapoursynth\core\vspipe.exe Value 7 Name: VSRepoPY Type: REG_SZ Data: e:\vapoursynth\vsrepo\vsrepo.py Value 8 Name: PythonPath Type: REG_SZ Data: e:\anaconda3 No change, same problem. Last edited by Cary Knoop; 1st January 2020 at 01:33. |
![]() |
![]() |
![]() |
#3748 | Link |
I'm Siri
Join Date: Oct 2012
Location: Providence, RI
Posts: 2,504
|
I wrote some syntactic sugar stuff for the C++ API here: https://github.com/IFeelBloated/vapo...ster/sugar.hpp
C++2a support is required (I'm 100% sure C++17 aint cuttin' it), it compiles with "-std=c++2a" for GCC10 you can use Code:
auto MakePlane(auto Pointer, auto Width, auto Height, auto PaddingPolicy) I'll give you a concrete example, to write a 3x3 box blur, you would do the following: Code:
auto srcp = reinterpret_cast<const float *>(srcp8); auto dstp = reinterpret_cast<float *>(dstp8); auto padded_src = reinterpret_cast<float *>(malloc((width+2) * (height+2) * sizeof(float))); for (auto y : Range{ height }) std::memcpy(padded_src + (y+1) * (width+2) + 1, srcp + y * width, width * sizeof(float)); // lots of code here to deal with padding for "padded_src" auto gc_addr = padded_src; padded_src += (width + 2) + 1; for (auto y : Range{ height }) for (auto x : Range{ width }) { auto above = padded_src - (width + 2); auto below = padded_src + (width + 2); dstp[x] = (above[x-1] + above[x] + above[x+1] + padded_src[x-1] + padded_src[x] + padded_src[x+1] + below[x-1] + below[x] + below[x+1]) / 9; dstp += width; padded_src += width + 2; } free(gc_addr); 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; // possible out-of-bound access like "srcp[y-1][x-1]" is automatically handled here with the given padding policy, you got nothing to worry about Code:
Zero Repeat (or simply called "pad" on this forum) Reflect Code:
auto PaddingFunction = [](auto Canvas, auto Width, auto Height, auto y, auto x) { ... }; you are welcome to leave a comment if you have any suggestions or ideas to further improve this.
__________________
If I got new ideas, will post here: https://github.com/IFeelBloated Last edited by feisty2; 6th January 2020 at 11:45. |
![]() |
![]() |
![]() |
#3749 | Link |
I'm Siri
Join Date: Oct 2012
Location: Providence, RI
Posts: 2,504
|
simple live demonstration: https://godbolt.org/z/MHebt8
__________________
If I got new ideas, will post here: https://github.com/IFeelBloated |
![]() |
![]() |
![]() |
#3751 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Hollola, Finland
Posts: 4,989
|
Standard IVTC? VFM to match fields followed by VDecimate to drop the dupes.
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
![]() |
![]() |
![]() |
#3752 | Link | |
Registered User
Join Date: Jan 2002
Location: -
Posts: 115
|
I'm getting this error when compiling Vapoursynth on Linux (Mint 19.3)
I installed cython through pip. "which cython" gives "/home/me/.local/bin/cython" Quote:
Last edited by PlazzTT; 11th January 2020 at 17:24. |
|
![]() |
![]() |
![]() |
#3753 | Link |
Registered User
Join Date: Jul 2019
Location: Russia
Posts: 63
|
By the way, to the page:
http://www.vapoursynth.com/doc/insta...-from-packages May be added that there is a ready-made solution for Debian: https://www.deb-multimedia.org/ And, apparently, remove the link to packages for Ubuntu. Last edited by Jukus; 11th January 2020 at 20:58. |
![]() |
![]() |
![]() |
#3754 | Link |
Registered User
Join Date: Aug 2018
Posts: 14
|
Where should Vapoursynth plugins (.so) be placed by default on Linux (Ubuntu) so that they are auto-loaded?
Is there a way to print the autoload folder? I've tried /usr/local/lib/ and /usr/lib/x86_64-linux-gnu/vapoursynth/ but it seems the modules are not being found. |
![]() |
![]() |
![]() |
#3756 | Link | |
Registered User
Join Date: Jun 2012
Location: Ibiza, Spain
Posts: 311
|
Quote:
Most probably in /usr/local/lib/vapoursynth in your case. |
|
![]() |
![]() |
![]() |
#3757 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Ikea Chair
Posts: 2,279
|
Quote:
A a best but slow audio source has been created so that's no longer a major problem (will still get some usefulness improvements over time). Testing and debugging everything else is however taking longer than expected but audio will be fully supported by AVFS and VFW as well from the start and vspipe will be able to output wave64 headers.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
![]() |
![]() |
![]() |
#3759 | Link |
Registered User
Join Date: Jun 2002
Location: On thin ice
Posts: 6,658
|
I'm not sure what's the focus of this thread because my question is about vs host application development.
There is a weird exception happening here: Code:
case WM_DESTROY: DiscardGraphicsResources(); SafeRelease(&g_D2D_Factory); g_vsapi->freeNode(g_vsnode); vsscript_freeScript(g_vsscript); vsscript_finalize(); PostQuitMessage(0); return 0; Weird thing is it crashes only inside WM_DESTROY and not when this code is executed before WM_DESTROY ! How can this issue be debugged? Last edited by stax76; 18th January 2020 at 12:46. |
![]() |
![]() |
![]() |
#3760 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Ikea Chair
Posts: 2,279
|
Quote:
Are there any restrictions on what you're allowed to do when handling a WM_DESTROY message? If not then I'd simply see what the call stack is in a debugger. Maybe there's a hint in there.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
![]() |
![]() |
![]() |
Tags |
speed, vaporware, vapoursynth |
Thread Tools | Search this Thread |
Display Modes | |
|
|