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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > VapourSynth

Reply
 
Thread Tools Search this Thread Display Modes
Old 9th September 2012, 12:03   #81  |  Link
active1
Registered User
 
Join Date: Nov 2011
Location: spain
Posts: 45
Quote:
Originally Posted by Myrsloik View Post
It is how my threading model works. Avisynth filters are for compatibility reasons limited so one instance may run on one core at one time. Avisynth-mt gets around this by creating multiple instances (one per thread), OR by making very unsafe assumptions.
Newly written and ported filters for the vs api can if done correctly handle multiple frames at once. See the included Lut/Lut2 function.
so there is a chance to make it even better than Avisynth MT in speed wise? (with only one filter)
active1 is offline   Reply With Quote
Old 9th September 2012, 12:10   #82  |  Link
TurboPascal7
Registered User
 
TurboPascal7's Avatar
 
Join Date: Jan 2010
Posts: 270
Quote:
Originally Posted by Myrsloik View Post
I think I've fixed the crop argument checks. Can you give an example of the optional arguments maybe not working?
Code:
Traceback (most recent call last):
  File "D:/test.py", line 21, in <module>
    source = w.std.CropAbs(clip=source, x=16, y=16)
  File "vapoursynth.pyx", line 434, in vapoursynth.Function.__call__ (cython\vapoursynth.c:7371)
vapoursynth.Error: 'CropAbs: argument width is required'
Code:
source = w.std.CropAbs(clip=source, x=16, y=16, width=-16, height=-16)
Works but outputs garbage. Should throw error or work like avisynth's crop (subtracting provided negative width/height values from clip's parameters).

Quote:
Originally Posted by Myrsloik View Post
6. It's already included in list_functions(), why do you need one more?
I don't really need another list_functions() method. I do want to know Core class constructor parameters, VideoNode.output() method parameters (wanted to test callback, added in r4) etc. Without documentation and any public API I don't see any ways to do it since reflection doesn't work well with cython. I'm asking for this too early, I guess.
TurboPascal7 is offline   Reply With Quote
Old 9th September 2012, 12:13   #83  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,595
Quote:
Originally Posted by active1 View Post
so there is a chance to make it even better than Avisynth MT in speed wise? (with only one filter)
Not without porting filters, no. I'm not going to make another avisynth-mt mess. I intend to win people over in the end by being faster and more stable for most users.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 9th September 2012, 12:20   #84  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,595
Quote:
Originally Posted by TurboPascal7 View Post
Code:
Traceback (most recent call last):
  File "D:/test.py", line 21, in <module>
    source = w.std.CropAbs(clip=source, x=16, y=16)
  File "vapoursynth.pyx", line 434, in vapoursynth.Function.__call__ (cython\vapoursynth.c:7371)
vapoursynth.Error: 'CropAbs: argument width is required'
Of course width is required, this only moves the upper left point.
Quote:
Originally Posted by TurboPascal7 View Post
Code:
source = w.std.CropAbs(clip=source, x=16, y=16, width=-16, height=-16)
Works but outputs garbage. Should throw error or work like avisynth's crop (subtracting provided negative width/height values from clip's parameters).
fixed
Quote:
Originally Posted by TurboPascal7 View Post

I don't really need another list_functions() method. I do want to know Core class constructor parameters, VideoNode.output() method parameters (wanted to test callback, added in r4) etc. Without documentation and any public API I don't see any ways to do it since reflection doesn't work well with cython. I'm asking for this too early, I guess.
Core constructor: def __cinit__(self, flatten = True, addcache = True, int threads = 0)

Not much of interest, really. Flatten is whether or not single return value functions get the returned dict flattened to a single value automatically. addcache controls automatic cache insertion.

Output declaration:
def output(self, object fileobj not None, bint y4m = False, int lookahead = 10, object progress_update = None):

Where lookahead is the number of frame requests it has going at once to keep throughput up and progress_update is a functions that could looks like this:
def print_frame(n, total):
print('Frame: %d/%d' % (n, total))
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 9th September 2012, 14:02   #85  |  Link
active1
Registered User
 
Join Date: Nov 2011
Location: spain
Posts: 45
Quote:
Originally Posted by Myrsloik View Post
Not without porting filters, no. I'm not going to make another avisynth-mt mess. I intend to win people over in the end by being faster and more stable for most users.
that's good too, i hope that we will not need to load any filter from avisynth someday.

i have a problem with ColorMatrix:

every filter above work very well, except ColorMatrix
is it not supported yet?
active1 is offline   Reply With Quote
Old 9th September 2012, 21:20   #86  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,595
I released R5. Changes in the first post. If this one turns out well I'll start experimenting with other platforms.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 9th September 2012, 21:22   #87  |  Link
TheProfileth
Leader of Dual-Duality
 
TheProfileth's Avatar
 
Join Date: Aug 2010
Location: America
Posts: 134
Quote:
r5:
more python output fixes
added accept_lowercase as a setting for the core constructor
python module refinement, now all objects have a string representation with more information
other minor fixes
Does this mean you can do things with all lowercase now?
__________________
I'm Mr.Fixit and I feel good, fixin all the sources in the neighborhood
My New filter is in the works, and will be out soon
TheProfileth is offline   Reply With Quote
Old 9th September 2012, 21:23   #88  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,595
Quote:
Originally Posted by TheProfileth View Post
Does this mean you can do things with all lowercase now?
Yes, I added it as an experiment and it's off by default. It may disappear again if I don't like it.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 9th September 2012, 21:24   #89  |  Link
wOxxOm
Oz of the zOo
 
Join Date: May 2005
Posts: 208
this is great, let it be :-)
also, is there a way yet to create arbitrary clips like in avisynth's ScriptClip? The only way I see now is to loop through all frames and then core.std.splice individual frames after some processing which seems to defy the idea of lazy calculation in a ScriptClip.

Last edited by wOxxOm; 9th September 2012 at 21:35.
wOxxOm is offline   Reply With Quote
Old 9th September 2012, 21:32   #90  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,669
I have managed to finally output y4m but I do not know how to successfully pipe Vapoursynth to X264. Can someone please post a sample of how to achieve this?

@ Myrsloik

So I noticed that the vsvfw.dll is no longer included in r5. Is it still needed?
Reel.Deel is offline   Reply With Quote
Old 9th September 2012, 21:34   #91  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,595
Quote:
Originally Posted by Reel.Deel View Post
I have managed to finally output y4m but I do not know how to successfully pipe Vapoursynth to X264. Can someone please post a sample of how to achieve this?

@ Myrsloik

So I noticed that the vsvfw.dll is no longer included in r5. Is it still needed?
It was never used. The vfw part still isn't anywhere near ready.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 10th September 2012, 00:00   #92  |  Link
TheFluff
Excessively jovial fellow
 
Join Date: Jun 2004
Location: rude
Posts: 1,100
Quote:
Originally Posted by active1 View Post
that's good too, i hope that we will not need to load any filter from avisynth someday.

i have a problem with ColorMatrix:
every filter above work very well, except ColorMatrix
is it not supported yet?
It's not supported yet. Vapoursynth doesn't have equivalents for all of the internal Avisynth functions yet, so filters like ColorMatrix that invoke internal Avisynth filters will break if the invoked function doesn't exist in Vapoursynth.
TheFluff is offline   Reply With Quote
Old 10th September 2012, 00:07   #93  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,595
Quote:
Originally Posted by TheFluff View Post
It's not supported yet. Vapoursynth doesn't have equivalents for all of the internal Avisynth functions yet, so filters like ColorMatrix that invoke internal Avisynth filters will break if the invoked function doesn't exist in Vapoursynth.
I'd like to add that I may never add any extensive invoke support on the avisynth side. I estimate that the time to port the few useful filters that use invoke and adding good enough support for it in vs is about the same. I know which one I'm going to pick.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 10th September 2012, 07:55   #94  |  Link
Yoshiyuki Blade
Novice x264 User
 
Yoshiyuki Blade's Avatar
 
Join Date: Dec 2006
Location: California
Posts: 169
Ok so I finally got past the "test" phase of the installation instructions LOL. It turns out that I needed the Microsoft Visual C++ 2010 Redistributable Package (instead of the 2008 one) to get it working. The list.functions() is messed up in r5 compared to r3 (I don't have r4 around for some reason). Can't wait to dabble with a new interface and learn new things.
__________________
"I'll take a potato chip... and eat it!"

Last edited by Yoshiyuki Blade; 10th September 2012 at 07:58.
Yoshiyuki Blade is offline   Reply With Quote
Old 10th September 2012, 08:11   #95  |  Link
smok3
brontosaurusrex
 
smok3's Avatar
 
Join Date: Oct 2001
Posts: 2,392
vapour is win only?
__________________
certain other member
smok3 is offline   Reply With Quote
Old 10th September 2012, 08:51   #96  |  Link
TurboPascal7
Registered User
 
TurboPascal7's Avatar
 
Join Date: Jan 2010
Posts: 270
Quote:
Originally Posted by Yoshiyuki Blade View Post
The list.functions() is messed up in r5 compared to r3 (I don't have r4 around for some reason).
It isn't messed up. It just returns a string instead of printing it. Should be used like print(core.list_functions()).
TurboPascal7 is offline   Reply With Quote
Old 10th September 2012, 08:55   #97  |  Link
Yoshiyuki Blade
Novice x264 User
 
Yoshiyuki Blade's Avatar
 
Join Date: Dec 2006
Location: California
Posts: 169
Quote:
Originally Posted by TurboPascal7 View Post
It isn't messed up. It just returns a string instead of printing it. Should be used like print(core.list_functions()).
I see. Yeah, it looks fine when used that way.
__________________
"I'll take a potato chip... and eat it!"
Yoshiyuki Blade is offline   Reply With Quote
Old 10th September 2012, 09:46   #98  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,595
Quote:
Originally Posted by smok3 View Post
vapour is win only?
Only until it's kinda stable.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 10th September 2012, 11:10   #99  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,669
When I try loading the "official" MVtools (v2.5.11.3) it works fine, but when I try it on Dithers MVTools (v2.6.0.5) it just silently crashes the python command line.

Also, I'm happy to see DGIndexNV work on Vapoursynth.

Last edited by Reel.Deel; 10th September 2012 at 11:12.
Reel.Deel is offline   Reply With Quote
Old 10th September 2012, 13:15   #100  |  Link
Chikuzen
typo lover
 
Chikuzen's Avatar
 
Join Date: May 2009
Posts: 595
Quote:
Originally Posted by Reel.Deel View Post
Also, I'm happy to see DGIndexNV work on Vapoursynth.
However, DGMPEGDec can't be used because it requires avs internal crop function.
I used TS2AVI/MPEG2Dec3k after a long time...
__________________
my repositories
Chikuzen is offline   Reply With Quote
Reply

Tags
speed, vaporware, vapoursynth

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 21:26.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.