VapourSource

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (VSEval)
(Supported Formats)
 
(16 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{FilterCat|External_filters|Source_filters|Plugins}}
+
{{FilterCat5|External_filters|Source_filters|Plugins|Plugins_x64|Deep_color_tools}}
 
{{Filter3
 
{{Filter3
| {{Author/Chikuzen}}
+
| {{Author/Chikuzen}}, [https://github.com/DJATOM DJATOM]
| 0.0.2  
+
| 0.2  
| [http://www.mediafire.com/download/nrk3k4xakkwujqx/VapourSource-0.0.2.zip VapourSource-0.0.2.zip]
+
| [https://github.com/DJATOM/VapourSource/releases Releases]
 
| Source filters  
 
| Source filters  
 
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
 
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
 
|6=[http://forum.doom9.org/showthread.php?t=168339 Doom9 Thread]}}
 
|6=[http://forum.doom9.org/showthread.php?t=168339 Doom9 Thread]}}
<br>
+
 
 
== Description ==
 
== Description ==
:<tt>VapourSource</tt> is a VapourSynth script reader for AviSynth 2.6.
+
<tt>VapourSource</tt> is a VapourSynth script reader for AviSynth+ / AviSynth 2.6.
 +
 
 
<br>
 
<br>
 +
== Requirements ==
 +
* [x86]: [[AviSynth+]] or [https://sourceforge.net/projects/avisynth2/ AviSynth 2.6]
 +
* [x64]: [[AviSynth+]]
 +
* [http://www.vapoursynth.com/ VapourSynth] R32 or greater (x86 or x64)
 +
* [[SSE2]] capable CPU
 +
* [https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads Microsoft Visual C++ 2019 Redistributable Package] (x86 / x64)
 +
:<span style="color:red">***</span> <tt>vcredist_x86.exe</tt> is required for <tt>VapourSource-x86</tt>
 +
:<span style="color:red">***</span> <tt>vcredist_x64.exe</tt> is required for <tt>VapourSource-x64</tt>
 +
<br>
 +
 
== Supported Formats ==
 
== Supported Formats ==
:<tt>VapourSource</tt> supports the following formats:
+
<tt>VapourSource</tt> supports the following formats:
  
::{| class="wikitable" border="1"; width="400px"
+
:{| class="wikitable" border="1"; width="400px"
 
|-
 
|-
!!width="200px"| AviSynth colorspace
 
 
!!width="200px"| [http://www.vapoursynth.com/doc/pythonreference.html#format-constants VapourSynth colorspace]
 
!!width="200px"| [http://www.vapoursynth.com/doc/pythonreference.html#format-constants VapourSynth colorspace]
 +
!!width="200px"| AviSynth colorspace
 +
!!width="200px"| [[Avisynthplus_color_formats#Color_Format_Table|AviSynth+ colorspace]]
 
|-
 
|-
|[[RGB24]]
 
 
|RGB24
 
|RGB24
 +
|[[RGB24]]
 +
|[[RGB24]]
 
|-
 
|-
|[[RGB32]]
 
 
|COMPATBGR32  
 
|COMPATBGR32  
 +
|[[RGB32]]
 +
|[[RGB32]]
 
|-
 
|-
|[[YUY2]]
 
 
|COMPATYUY2
 
|COMPATYUY2
 +
|[[YUY2]]
 +
|[[YUY2]]
 
|-
 
|-
|[[Y8]]*
+
|GRAY8
|GRAY8/16
+
|[[Y8]]
 +
|[[Y8]]
 
|-
 
|-
|[[YV12]]*
+
|GRAY16/H
|YUV420P8/9/10/16
+
|[[Y8]] (x2 width)
 +
|[[Y16]]
 
|-
 
|-
|[[YV16]]*
+
|GRAYS
|YUV422P8/9/10/16
+
|[[Y8]] (x4 width)
 +
|[[Y32]]
 
|-
 
|-
|[[YV24]]*
+
|YUV420P8
|YUV444P8/9/10/16
+
|[[YV12]]
 +
|[[YV12]]
 +
|-
 +
|YUV420P9/10/16
 +
|[[YV12]] (x2 width)
 +
|[[YUV420P16]]
 +
|-
 +
|YUV422P8
 +
|[[YV16]]
 +
|[[YV16]]
 +
|-
 +
|YUV422P9/10/16
 +
|[[YV16]] (x2 width)
 +
|[[YUV422P16]]
 +
|-
 +
|YUV444P8
 +
|[[YV24]]
 +
|[[YV24]]
 +
|-
 +
|YUV444P9/10/16
 +
|[[YV24]] (x2 width)
 +
|[[YUV444P16]]
 +
|-
 +
|YUV444PS
 +
|[[YV24]] (x4 width)
 +
|[[YUV444PS]]
 
|-
 
|-
|[[YV411]]
 
 
|YUV411P8
 
|YUV411P8
 +
|[[YV411]]
 +
|[[YV411]]
 
|-
 
|-
| colspan="2"| Only constant format/resolution/framerate clips are supported.
+
| colspan="3"| Only constant format/resolution/framerate clips are supported.
 
|-
 
|-
! colspan="2"| *Y8/YV12/16/24 allow bit depths >8 using the [[Stack16]] format.
+
! colspan="3"| *Y8/YV12/16/24 allow bit depths >8 using the 16bit interleaved format.
 
|}
 
|}
<br>
 
  
== Requirements ==
 
:- [http://forum.doom9.org/showthread.php?t=168764 AviSynth 2.6.0 Alpha5] or later
 
:- [http://www.vapoursynth.com/ VapourSynth] R24 or later
 
<br>
 
:- [[SSE2]] capable CPU
 
:- [http://www.microsoft.com/en-us/download/details.aspx?id=8328 Microsoft Visual C++ 2010 Redistributable Package (x86)]
 
 
<br>
 
<br>
 +
 
== [[Script variables|Syntax and Parameters]] ==
 
== [[Script variables|Syntax and Parameters]] ==
 +
 
<br>
 
<br>
 
=== VSImport===
 
=== VSImport===
Line 62: Line 101:
 
<br>
 
<br>
 
<br>
 
<br>
:{{Template:FuncDef|VSImport (''string'' source, ''bool'' "stacked", ''int'' "index")}}
+
:{{Template:FuncDef|VSImport (''string'' source, ''bool'' "stacked", ''int'' "index", ''int'' "prefetch")}}
 
<br>
 
<br>
 
::{{Par2|source|string| }}
 
::{{Par2|source|string| }}
Line 68: Line 107:
 
<br>
 
<br>
 
::{{Par2|stacked|bool|false}}
 
::{{Par2|stacked|bool|false}}
:::If this is set to true, MSB/LSB will be separated and be stacked vertically.
+
:::If this is set to true, MSB/LSB will be separated and be stacked vertically ([[Stack16]]).
 
<br>
 
<br>
 
::{{Par2|index|int|0}}
 
::{{Par2|index|int|0}}
 
:::Index of input clip.
 
:::Index of input clip.
 +
<br>
 +
::{{Par2|prefetch|int|0}}
 +
:::Request given amount of frames in advance (MT behaviour). If you have 4 physical cores, set it to 4.
 +
:::If AviSynth part of script is too easy in comparison with VS one, It might be good idea to set prefetch to 5. Anyway you can tune it and seek for better performance.
 
<br>
 
<br>
 
------------------------------------
 
------------------------------------
Line 78: Line 121:
 
Evaluates a VapourSynth script inside an AviSynth script, no need for an external script.
 
Evaluates a VapourSynth script inside an AviSynth script, no need for an external script.
 
<br>
 
<br>
<br>
+
:{{Template:FuncDef|VSEval (''string'' source, ''bool'' "stacked", ''int'' "index",  ''bool'' "utf8", ''int'' "prefetch")}}
:{{Template:FuncDef|VSEval (''string'' source, ''bool'' "stacked", ''int'' "index")}}
+
 
<br>
 
<br>
 
::{{Par2|source|string| }}
 
::{{Par2|source|string| }}
Line 90: Line 132:
 
:::Index of input clip.
 
:::Index of input clip.
 
<br>
 
<br>
 
+
::{{Par2|utf8|bool|false}}
 +
:::If this is set to true, source is assumed to be UTF-8 encoded (default: false).
 +
<br>
 +
::{{Par2|prefetch|int|0}}
 +
:::Request given amount of frames in advance (MT behaviour). If you have 4 physical cores, set it to 4.
 +
:::If AviSynth part of script is too easy in comparison with VS one, It might be good idea to set prefetch to 5. Anyway you can tune it and seek for better performance.
 +
<br>
 
== Examples ==
 
== Examples ==
 
VSImport:
 
VSImport:
  VSImport("script.vpy", stacked=false, index=0)
+
  VSImport("script.vpy", stacked=false, index=0, prefetch=4)
 
<br>
 
<br>
 
VSEval:
 
VSEval:
Line 104: Line 152:
 
  clip1.set_output(index=1)
 
  clip1.set_output(index=1)
 
  """
 
  """
  VSEval(source=script, index=1)
+
  VSEval(source=script, index=1, prefetch=4)
 +
 
 
<br>
 
<br>
 
== Changelog ==
 
== Changelog ==
 
  Version      Date            Changes<br>
 
  Version      Date            Changes<br>
  0.0.2        08/06/2013     - fix vertical flip issue on COMPATBGR32.
+
0.2          2020/04/06      - reworked prefetch code
 +
                              - re-formatted source<br>
 +
0.1.1        2018/07/19      - add prefetch parameter for multithreading from VapourSynth.<br>
 +
0.1.0        2016/07/05      - support high bit depth formats of AviSynth+
 +
                              - requires Microsoft Visual C++ 2015 Redistributable Package<br>
 +
0.0.4        2016/05/07      - VS2010 to VS2015
 +
                              - update avisynth.h, VapourSynth.h and VSScript.h
 +
                              - add 64bit binary<br>
 +
  0.0.2        2013/08/06      - fix vertical flip issue on COMPATBGR32.
 
                               - allow to input a RGB24 clip.<br>
 
                               - allow to input a RGB24 clip.<br>
  0.0.1        07/31/2013     - initial release
+
  0.0.1        2013/07/31      - initial release
 +
 
 
<br>
 
<br>
 +
<!--
 
== Archived Downloads ==
 
== Archived Downloads ==
{| class="wikitable" border="1"; width="600px"
+
{| class="wikitable" border="1"; width="800px"
 
|-
 
|-
 
!!width="100px"| Version
 
!!width="100px"| Version
 
!!width="150px"| Download
 
!!width="150px"| Download
 
!!width="150px"| Source code
 
!!width="150px"| Source code
!!width="150px"| Mirror
+
!!width="250px"| Mirror
 
|-
 
|-
 
!v0.2.0
 
!v0.2.0
|[http://www.mediafire.com/download/nrk3k4xakkwujqx/VapourSource-0.0.2.zip VapourSource-0.0.2.zip]
+
|[http://web.archive.org/web/20160302122938/https://filetea.me/t1ss3Zv3rqsSqSzOXX9tbp5Ww/dl VapourSource-0.0.2.zip]
 
|[http://codeload.github.com/chikuzen/VapourSource/zip/master VapourSource-master.zip]
 
|[http://codeload.github.com/chikuzen/VapourSource/zip/master VapourSource-master.zip]
|
+
|[http://www.mediafire.com/download/nrk3k4xakkwujqx/VapourSource-0.0.2.zip VapourSource-0.0.2.zip] -- [http://web.archive.org/web/20160302140330/https://codeload.github.com/chikuzen/VapourSource/zip/master VapourSource-master.zip]
 
|}
 
|}
<br>
+
-->
 +
 
 
== External Links ==
 
== External Links ==
*[http://forum.doom9.org/showthread.php?t=168339 Doom9 Forum] - VapourSource discussion.
+
*[https://github.com/chikuzen/VapourSource/ GitHub] - Source code repository (v0.1.0 by Chikuzen)
*[http://github.com/chikuzen/VapourSource/ GitHub] - Source code repository.  
+
*[https://github.com/Beatrice-Raws/VapourSource GitHub] - Source code repository (v0.2 by DJATOM)
<br>
+
<br>
+
 
<br>
 
<br>
 
-----------------------------------------------
 
-----------------------------------------------
 
'''Back to [[External_filters#Source_Filters|External Filters]] &larr;'''
 
'''Back to [[External_filters#Source_Filters|External Filters]] &larr;'''

Latest revision as of 10:04, 9 July 2020

Abstract
Author Chikuzen, DJATOM
Version 0.2
Download Releases
Category Source filters
License GPLv2
Discussion Doom9 Thread

Contents

[edit] Description

VapourSource is a VapourSynth script reader for AviSynth+ / AviSynth 2.6.


[edit] Requirements

*** vcredist_x86.exe is required for VapourSource-x86
*** vcredist_x64.exe is required for VapourSource-x64


[edit] Supported Formats

VapourSource supports the following formats:

VapourSynth colorspace AviSynth colorspace AviSynth+ colorspace
RGB24 RGB24 RGB24
COMPATBGR32 RGB32 RGB32
COMPATYUY2 YUY2 YUY2
GRAY8 Y8 Y8
GRAY16/H Y8 (x2 width) Y16
GRAYS Y8 (x4 width) Y32
YUV420P8 YV12 YV12
YUV420P9/10/16 YV12 (x2 width) YUV420P16
YUV422P8 YV16 YV16
YUV422P9/10/16 YV16 (x2 width) YUV422P16
YUV444P8 YV24 YV24
YUV444P9/10/16 YV24 (x2 width) YUV444P16
YUV444PS YV24 (x4 width) YUV444PS
YUV411P8 YV411 YV411
Only constant format/resolution/framerate clips are supported.
*Y8/YV12/16/24 allow bit depths >8 using the 16bit interleaved format.


[edit] Syntax and Parameters


[edit] VSImport

Imports an external VapourSynth script (*.vpy).

VSImport (string source, bool "stacked", int "index", int "prefetch")


string  source =
Path to VapourSynth script (*.vpy); path can be omitted if the script is in the same folder as the AviSynth script (*.avs).


bool  stacked = false
If this is set to true, MSB/LSB will be separated and be stacked vertically (Stack16).


int  index = 0
Index of input clip.


int  prefetch = 0
Request given amount of frames in advance (MT behaviour). If you have 4 physical cores, set it to 4.
If AviSynth part of script is too easy in comparison with VS one, It might be good idea to set prefetch to 5. Anyway you can tune it and seek for better performance.




[edit] VSEval

Evaluates a VapourSynth script inside an AviSynth script, no need for an external script.

VSEval (string source, bool "stacked", int "index", bool "utf8", int "prefetch")


string  source =
VapourSynth script to be evaluated.


bool  stacked = false
If this is set to true, MSB/LSB will be separated and be stacked vertically.


int  index = 0
Index of input clip.


bool  utf8 = false
If this is set to true, source is assumed to be UTF-8 encoded (default: false).


int  prefetch = 0
Request given amount of frames in advance (MT behaviour). If you have 4 physical cores, set it to 4.
If AviSynth part of script is too easy in comparison with VS one, It might be good idea to set prefetch to 5. Anyway you can tune it and seek for better performance.


[edit] Examples

VSImport:

VSImport("script.vpy", stacked=false, index=0, prefetch=4)


VSEval:

script = """
import vapoursynth as vs
bc = vs.get_core().std.BlankClip
clip0 = bc(format=vs.YUV422P8, color=[0, 128, 128])
clip1 = bc(format=vs.YUV422P8, color=[255, 128, 128])
clip0.set_output(index=0)
clip1.set_output(index=1)
"""
VSEval(source=script, index=1, prefetch=4)


[edit] Changelog

Version      Date            Changes
0.2 2020/04/06 - reworked prefetch code - re-formatted source
0.1.1 2018/07/19 - add prefetch parameter for multithreading from VapourSynth.
0.1.0 2016/07/05 - support high bit depth formats of AviSynth+ - requires Microsoft Visual C++ 2015 Redistributable Package
0.0.4 2016/05/07 - VS2010 to VS2015 - update avisynth.h, VapourSynth.h and VSScript.h - add 64bit binary
0.0.2 2013/08/06 - fix vertical flip issue on COMPATBGR32. - allow to input a RGB24 clip.
0.0.1 2013/07/31 - initial release


[edit] External Links

  • GitHub - Source code repository (v0.1.0 by Chikuzen)
  • GitHub - Source code repository (v0.2 by DJATOM)



Back to External Filters

Personal tools