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
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 12th September 2012, 11:02   #141  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
Quote:
Originally Posted by Chikuzen View Post
on vapoursynth-r6
I found the typo. Instead of height < 0 it checked height < x.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 12th September 2012, 11:23   #142  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
Quote:
Originally Posted by Reel.Deel View Post
I tried nnedi3 and the deinterlacing part works just fine but nnedi3_rpow2 has a problem.

Code:
core.avs.nnedi3_rpow2(c1=src,rfactor=2)

Invoke not fully implemented, tried to call: TurnRight but I will pretend it doesn't exist
Avisynth Error: escaped IScriptEnvironment::NotFound exceptions are non-recoverable, crashing...
I'm assuming other parameters like cshift, fwidth, and fheight will be problematic also.
I'd rather make a proper port of it than make an effort at fully implementing avisynth's invoke functionality including exact copies of the internal functions it calls.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 12th September 2012, 13:59   #143  |  Link
cretindesalpes
͡҉҉ ̵̡̢̛̗̘̙̜̝̞̟̠͇̊̋̌̍̎̏̿̿
 
cretindesalpes's Avatar
 
Join Date: Feb 2009
Location: No support in PM
Posts: 712
Anyway the "_rpow2" part is just an avs script written in C++, wrapping nnedi() and other built-in functions, nothing more. So there would be no gain trying to port the dll part over porting the equivalent call sequence in scripted language. Same for eedi3_rpow2.
__________________
dither 1.28.1 for AviSynth | avstp 1.0.4 for AviSynth development | fmtconv r30 for Vapoursynth & Avs+ | trimx264opt segmented encoding
cretindesalpes is offline   Reply With Quote
Old 12th September 2012, 16:40   #144  |  Link
Chikuzen
typo lover
 
Chikuzen's Avatar
 
Join Date: May 2009
Posts: 595
It seems that the Y4M file header which VapourSynth outputs is not attached 'C'(color) tag.
Since it is inconvenient to output YUV422/444 stuff, please attach it.
__________________
my repositories
Chikuzen is offline   Reply With Quote
Old 12th September 2012, 17:06   #145  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
Quote:
Originally Posted by Chikuzen View Post
It seems that the Y4M file header which VapourSynth outputs is not attached 'C'(color) tag.
Since it is inconvenient to output YUV422/444 stuff, please attach it.
Added for all 8bit yuv formats. I guess there's no way to specify 10/16 bit ones.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 12th September 2012, 21:22   #146  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
I've released R7. Changelog in the first post. Download from the website. I've also written a post about what will happen in the immediate future. Discuss it here or in the comment field there.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 12th September 2012, 22:24   #147  |  Link
mastrboy
Registered User
 
Join Date: Sep 2008
Posts: 365
I was just about to ask how many more R# releases we would see before the source became public.
About the licensing, "free for non-commercial use" might scare off some potential developers who use avisynth at work.
I would put my vote for a "free for all usage, source code changes to core (vapoursynth) has to be shared, but plugins can be closed source" kind of license.
(Or something that fits the debian guidelines for open source: http://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines )
__________________
(i have a tendency to drunk post)
mastrboy is offline   Reply With Quote
Old 12th September 2012, 22:30   #148  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
Quote:
Originally Posted by mastrboy View Post
I would put my vote for a "free for all usage, source code changes to core (vapoursynth) has to be shared, but plugins can be closed source" kind of license.
Yes, I was about to say the same.
sneaker_ger is offline   Reply With Quote
Old 12th September 2012, 23:09   #149  |  Link
Keiyakusha
契約者
 
Keiyakusha's Avatar
 
Join Date: Jun 2008
Posts: 1,576
If some company will decide to use vapoursynth to make money, why Myrsloik can't make money on them?
Keiyakusha is offline   Reply With Quote
Old 12th September 2012, 23:18   #150  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
Quote:
Originally Posted by mastrboy View Post
I was just about to ask how many more R# releases we would see before the source became public.
About the licensing, "free for non-commercial use" might scare off some potential developers who use avisynth at work.
I would put my vote for a "free for all usage, source code changes to core (vapoursynth) has to be shared, but plugins can be closed source" kind of license.
(Or something that fits the debian guidelines for open source: http://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines )
Yes, closed source plugins will of course be allowed. Anything else would just be crazy.
Free is all good and well, but to take this project all the way to where I want it is a bit more complicated.

Let's look at a relevant example: FFMS2
I released it under the MIT license in 2007. It has been about 2 years since I actively did any coding for it myself. Fortunately other people continued to maintain it (see the changelog for a full listing of these nice people), fixing all the api changes in ffmpeg and then the api changes in BOTH ffmpeg and libav. At once. Some bugs got fixed.

But where did the project go? Did it go anywhere? Did any new functionality really get added? Not really as I see it. Most of what end users celebrate are just improvements to libav/ffmpeg.

This brings me to my point. An open source project without a driving force will just sit there. You'll get some bugfixes and not much else. Organic growth and development is good at overcoming small obstacles but in the end directed development is needed to get bigger features. I want this to go further, I want vapoursynth to one day have good GPU support as well. Because without a GPU aware framework avoiding slow up/downloading to the GPU between filters will never be a possibility. In my world a stable CPU only version of vapoursynth is simply the first step. To make my point even more clear, just think about where Avisynth would be without sh0dan or IanB.

So how does this relate to my proposed license? Implementing this will take quite a bit of time. Time is money. Hence my choice to make it free for personal use but ask for a reasonable licensing fee for commercial use.

Note: I know that there is no such legal term as commercial use but there are other ways to state the same idea
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet

Last edited by Myrsloik; 12th September 2012 at 23:40. Reason: Clarification
Myrsloik is offline   Reply With Quote
Old 13th September 2012, 02:37   #151  |  Link
TurboPascal7
Registered User
 
TurboPascal7's Avatar
 
Join Date: Jan 2010
Posts: 270
Code:
c = vs.Core(accept_lowercase=True)
c.std.loadplugin(path=r'C:\Buf\vapoursynth\ffms2.dll')
ret = c.ffms2.source(source=r"C:\Buf\vapoursynth\sample.mkv")
print(ret.format)
Output with r7:
Code:
Traceback (most recent call last):
  File "C:/Buf/vapoursynth/test.py", line 7, in <module>
    print(ret.format)
  File "vapoursynth.pyx", line 202, in vapoursynth.Format.__str__ (cython\vapoursynth.c:3291)
AttributeError: 'str' object has no attribute 'decode'
Works right with r6.

Also, vapoursynth r7 prints the name of every positional argument used to stdout. Looks like someone forgot to remove debug code or something. >__>
TurboPascal7 is offline   Reply With Quote
Old 13th September 2012, 03:13   #152  |  Link
Caroliano
Registered User
 
Join Date: Feb 2005
Location: São Paulo, Brazil
Posts: 392
The most restrictive free software license you can chose is likely is the GNU Affero GPL, and may be a good choice because there is lots of transcoding going on in the ~cloud~. x264 devs apparently managed to get corporate sponsors with GPL, and LuaJIT with the liberal MIT license.

Anyway, the only thing you should not do (besides not releasing the source code ) is create your own open source license. Repositories like Sourceforge and Google Code refuse to host software that are not under a OSI accepted license, exactly to tack on the license proliferation problem.
Caroliano is offline   Reply With Quote
Old 13th September 2012, 07:48   #153  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
Quote:
Originally Posted by TurboPascal7 View Post
Also, vapoursynth r7 prints the name of every positional argument used to stdout. Looks like someone forgot to remove debug code or something. >__>
I'v reuploaded R7 with the debug print and .decode stuff fixed.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 13th September 2012, 15:03   #154  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,666
Hi Myrsloik, I was wondering if core.list_functions() is the only way to display internal functions.
The reason I ask is because I see people using print(clip.format,clip.width,clip.height) and that does not show up in the core.list_functions().
Reel.Deel is online now   Reply With Quote
Old 13th September 2012, 15:07   #155  |  Link
JEEB
もこたんインしたお!
 
JEEB's Avatar
 
Join Date: Jan 2008
Location: Finland / Japan
Posts: 512
Quote:
Originally Posted by Reel.Deel View Post
Hi Myrsloik, I was wondering if core.list_functions() is the only way to display internal functions.
The reason I ask is because I see people using print(clip.format,clip.width,clip.height) and that does not show up in the core.list_functions().
Print is a standard Python function. Now we have the power of a whole scripting language as well at our hands
__________________
[I'm human, no debug]
JEEB is offline   Reply With Quote
Old 13th September 2012, 15:11   #156  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,666
Ahhh, I see. I guess after work I will be doing some reading. Thanks JEEB.
Reel.Deel is online now   Reply With Quote
Old 13th September 2012, 15:37   #157  |  Link
gyth
Registered User
 
Join Date: Sep 2011
Posts: 86
Quote:
(unfortunately python itself has one huge mutex called the GIL so if it’s used too much it could lead to serious slowdowns)
The GIL is part of the threading module.
There is also a multiprocess module.

I haven't used either so it might be a non solution as well.
gyth is offline   Reply With Quote
Old 14th September 2012, 06:56   #158  |  Link
Chikuzen
typo lover
 
Chikuzen's Avatar
 
Join Date: May 2009
Posts: 595
If I type 'print(clip.format)' to Python shell, it will be displayed as follows.
Quote:
Id: 3000024
Name: YUV444P16
Color Family: YUV
But, 'print(help(vs))' says as follows.
Quote:
Yuv = 3000000
Yuv410P8 = 3000013
Yuv411P8 = 3000014
Yuv420P10 = 3000019
Yuv420P16 = 3000022
Yuv420P8 = 3000010
Yuv420P9 = 3000016
...
This is troublesome.
According to PEP8, you should unify all the constant names with the capital letter.
__________________
my repositories
Chikuzen is offline   Reply With Quote
Old 14th September 2012, 07:15   #159  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
Quote:
Originally Posted by Chikuzen View Post
If I type 'print(clip.format)' to Python shell, it will be displayed as follows.


But, 'print(help(vs))' says as follows.

This is troublesome.
According to PEP8, you should unify all the constant names with the capital letter.
Will change it in the next version.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 15th September 2012, 01:30   #160  |  Link
TheProfileth
Leader of Dual-Duality
 
TheProfileth's Avatar
 
Join Date: Aug 2010
Location: America
Posts: 134
Quote:
Originally Posted by gyth View Post
The GIL is part of the threading module.
There is also a multiprocess module.

I haven't used either so it might be a non solution as well.
Hmm after a cursory glance over some of the stuff in there it is pretty interesting. I wonder if Myrsloik had already considered that method?
In an only semi-related question, it has been established that some form of multithreading will be used, but is the multithreading going to be only in the vapoursynth core or independently implemented into individual filters or both or what?
Sorry if this has been covered already just have been under the assumption that vapoursynth itself is multithreaded but individual filters will need to be programmed to support multithreading and I wanted to be clear if this has already been discussed.
__________________
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
Reply

Tags
speed, vaporware, vapoursynth


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 07:28.


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