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 > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 28th October 2013, 22:17   #21  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,173
@Ultim,

Spoke to Avery :-
Quote:
Originally Posted by http://forums.virtualdub.org/index.php?act=ST&f=11&t=21832&#entry94370
This makes sense. I'll add SSE42 = 0x1000.
I'll reserve AVX=0x800 and adjust SSE4.2=0x1000, thanks.

@TurboPascal7,

Thanks for the 2 bug reports.
IanB is offline   Reply With Quote
Old 29th October 2013, 11:54   #22  |  Link
TurboPascal7
Registered User
 
TurboPascal7's Avatar
 
Join Date: Jan 2010
Posts: 270
And we'll get AVX=0x800, SSE4.2=0x1000 and AVX2=0x2000. Not really important but still silly.
In fact, does avs even need to have SSE4.2 defined? It's basically useless for video filtering.
__________________
Me on GitHub | AviSynth+ - the (dead) future of AviSynth
TurboPascal7 is offline   Reply With Quote
Old 30th October 2013, 10:36   #23  |  Link
Richard1485
AviSynth monkey
 
Richard1485's Avatar
 
Join Date: Feb 2010
Posts: 323
I can't find a generic thread for requests for updates to Avisynth, so I'll post this here if I may. Avisynth crossfades are simple linear dissolves. Is it possible to change this so that more complicated crossfades, such as those found in NLEs, are possible? I have a thread here that goes into more detail.

I note that there have been recent, audio-related changes to the Trim() function, so I hope that the developers will consider implementing other audio-related changes, such as a non-linear crossfade. Thanks.
Richard1485 is offline   Reply With Quote
Old 7th November 2013, 06:29   #24  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,258
A couple of related requests:

First,
Can avisynth_c.h be synchronized with the semi-updated version that x264 ships with in extras/? The modifications were authored by kemuri-_9 but the colorspace-specific ones haven't been integrated with the rest of the updates to avisynth_c.h mentioned in the Changelog. For convenience, I converted the changes into a patch:
Code:
diff --git a/src/core/avisynth_c.h b/src/core/avisynth_c.h
index e419d03..9b6325b 100644
--- a/src/core/avisynth_c.h
+++ b/src/core/avisynth_c.h
@@ -75,7 +75,7 @@ typedef __int64 INT64;
 //
 
 #ifndef __AVISYNTH_H__
-enum { AVISYNTH_INTERFACE_VERSION = 3 };
+enum { AVISYNTH_INTERFACE_VERSION = 5 };
 #endif
 
 enum {AVS_SAMPLE_INT8  = 1<<0,
@@ -90,13 +90,46 @@ enum {AVS_PLANAR_Y=1<<0,
       AVS_PLANAR_ALIGNED=1<<3,
       AVS_PLANAR_Y_ALIGNED=AVS_PLANAR_Y|AVS_PLANAR_ALIGNED,
       AVS_PLANAR_U_ALIGNED=AVS_PLANAR_U|AVS_PLANAR_ALIGNED,
-      AVS_PLANAR_V_ALIGNED=AVS_PLANAR_V|AVS_PLANAR_ALIGNED};
+      AVS_PLANAR_V_ALIGNED=AVS_PLANAR_V|AVS_PLANAR_ALIGNED,
+      AVS_PLANAR_A=1<<4,
+      AVS_PLANAR_R=1<<5,
+      AVS_PLANAR_G=1<<6,
+      AVS_PLANAR_B=1<<7,
+      AVS_PLANAR_A_ALIGNED=AVS_PLANAR_A|AVS_PLANAR_ALIGNED,
+      AVS_PLANAR_R_ALIGNED=AVS_PLANAR_R|AVS_PLANAR_ALIGNED,
+      AVS_PLANAR_G_ALIGNED=AVS_PLANAR_G|AVS_PLANAR_ALIGNED,
+      AVS_PLANAR_B_ALIGNED=AVS_PLANAR_B|AVS_PLANAR_ALIGNED};
 
   // Colorspace properties.
-enum {AVS_CS_BGR = 1<<28,  
+enum {AVS_CS_BGR = 1<<28,
       AVS_CS_YUV = 1<<29,
       AVS_CS_INTERLEAVED = 1<<30,
-      AVS_CS_PLANAR = 1<<31};
+      AVS_CS_PLANAR = 1<<31,
+    
+      AVS_CS_SHIFT_SUB_WIDTH   = 0,
+      AVS_CS_SHIFT_SUB_HEIGHT  = 1 << 3,
+      AVS_CS_SHIFT_SAMPLE_BITS = 1 << 4,
+
+      AVS_CS_SUB_WIDTH_MASK    = 7 << AVS_CS_SHIFT_SUB_WIDTH,
+      AVS_CS_SUB_WIDTH_1       = 3 << AVS_CS_SHIFT_SUB_WIDTH, // YV24
+      AVS_CS_SUB_WIDTH_2       = 0 << AVS_CS_SHIFT_SUB_WIDTH, // YV12, I420, YV16
+      AVS_CS_SUB_WIDTH_4       = 1 << AVS_CS_SHIFT_SUB_WIDTH, // YUV9, YV411
+
+      AVS_CS_VPLANEFIRST       = 1 << 3, // YV12, YV16, YV24, YV411, YUV9
+      AVS_CS_UPLANEFIRST       = 1 << 4, // I420
+
+      AVS_CS_SUB_HEIGHT_MASK   = 7 << AVS_CS_SHIFT_SUB_HEIGHT,
+      AVS_CS_SUB_HEIGHT_1      = 3 << AVS_CS_SHIFT_SUB_HEIGHT, // YV16, YV24, YV411
+      AVS_CS_SUB_HEIGHT_2      = 0 << AVS_CS_SHIFT_SUB_HEIGHT, // YV12, I420
+      AVS_CS_SUB_HEIGHT_4      = 1 << AVS_CS_SHIFT_SUB_HEIGHT, // YUV9
+
+      AVS_CS_SAMPLE_BITS_MASK  = 7 << AVS_CS_SHIFT_SAMPLE_BITS,
+      AVS_CS_SAMPLE_BITS_8     = 0 << AVS_CS_SHIFT_SAMPLE_BITS,
+      AVS_CS_SAMPLE_BITS_16    = 1 << AVS_CS_SHIFT_SAMPLE_BITS,
+      AVS_CS_SAMPLE_BITS_32    = 2 << AVS_CS_SHIFT_SAMPLE_BITS,
+
+      AVS_CS_PLANAR_MASK       = AVS_CS_PLANAR | AVS_CS_INTERLEAVED | AVS_CS_YUV | AVS_CS_BGR | AVS_CS_SAMPLE_BITS_MASK | AVS_CS_SUB_HEIGHT_MASK | AVS_CS_SUB_WIDTH_MASK,
+      AVS_CS_PLANAR_FILTER     = ~( AVS_CS_VPLANEFIRST | AVS_CS_UPLANEFIRST )};
 
   // Specific colorformats
 enum {
@@ -104,9 +137,18 @@ enum {
   AVS_CS_BGR24 = 1<<0 | AVS_CS_BGR | AVS_CS_INTERLEAVED,
   AVS_CS_BGR32 = 1<<1 | AVS_CS_BGR | AVS_CS_INTERLEAVED,
   AVS_CS_YUY2 = 1<<2 | AVS_CS_YUV | AVS_CS_INTERLEAVED,
-  AVS_CS_YV12 = 1<<3 | AVS_CS_YUV | AVS_CS_PLANAR,  // y-v-u, planar
-  AVS_CS_I420 = 1<<4 | AVS_CS_YUV | AVS_CS_PLANAR,  // y-u-v, planar
-  AVS_CS_IYUV = 1<<4 | AVS_CS_YUV | AVS_CS_PLANAR  // same as above
+  //  AVS_CS_YV12  = 1<<3  Reserved
+  //  AVS_CS_I420  = 1<<4  Reserved
+  AVS_CS_RAW32 = 1<<5 | AVS_CS_INTERLEAVED,
+
+  AVS_CS_YV24  = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_1 | AVS_CS_SUB_WIDTH_1,  // YVU 4:4:4 planar
+  AVS_CS_YV16  = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_1 | AVS_CS_SUB_WIDTH_2,  // YVU 4:2:2 planar
+  AVS_CS_YV12  = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_2 | AVS_CS_SUB_WIDTH_2,  // YVU 4:2:0 planar
+  AVS_CS_I420  = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_UPLANEFIRST | AVS_CS_SUB_HEIGHT_2 | AVS_CS_SUB_WIDTH_2,  // YUV 4:2:0 planar
+  AVS_CS_IYUV  = AVS_CS_I420,
+  AVS_CS_YV411 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_1 | AVS_CS_SUB_WIDTH_4,  // YVU 4:1:1 planar
+  AVS_CS_YUV9  = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_4 | AVS_CS_SUB_WIDTH_4,  // YVU 4:1:0 planar
+  AVS_CS_Y8    = AVS_CS_PLANAR | AVS_CS_INTERLEAVED | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8                                              // Y   4:0:0 planar
 };
 
 enum {
@@ -191,17 +233,29 @@ AVSC_INLINE int avs_is_yuv(const AVS_VideoInfo * p)
 AVSC_INLINE int avs_is_yuy2(const AVS_VideoInfo * p) 
         { return (p->pixel_type & AVS_CS_YUY2) == AVS_CS_YUY2; }  
 
+AVSC_INLINE int avs_is_yv24(const AVS_VideoInfo * p)
+        { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV24  & AVS_CS_PLANAR_FILTER); }
+
+AVSC_INLINE int avs_is_yv16(const AVS_VideoInfo * p)
+        { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV16  & AVS_CS_PLANAR_FILTER); }
+
 AVSC_INLINE int avs_is_yv12(const AVS_VideoInfo * p) 
-        { return ((p->pixel_type & AVS_CS_YV12) == AVS_CS_YV12)||((p->pixel_type & AVS_CS_I420) == AVS_CS_I420); }
+        { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV12  & AVS_CS_PLANAR_FILTER); }
 
-AVSC_INLINE int avs_is_color_space(const AVS_VideoInfo * p, int c_space) 
-        { return ((p->pixel_type & c_space) == c_space); }
+AVSC_INLINE int avs_is_yv411(const AVS_VideoInfo * p)
+        { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV411 & AVS_CS_PLANAR_FILTER); }
+	
+AVSC_INLINE int avs_is_y8(const AVS_VideoInfo * p)
+        { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_Y8    & AVS_CS_PLANAR_FILTER); }
 
 AVSC_INLINE int avs_is_property(const AVS_VideoInfo * p, int property) 
         { return ((p->pixel_type & property)==property ); }
 
 AVSC_INLINE int avs_is_planar(const AVS_VideoInfo * p) 
         { return !!(p->pixel_type & AVS_CS_PLANAR); }
+
+AVSC_INLINE int avs_is_color_space(const AVS_VideoInfo * p, int c_space)
+        { return avs_is_planar(p) ? ((p->pixel_type & AVS_CS_PLANAR_MASK) == (c_space & AVS_CS_PLANAR_FILTER)) : ((p->pixel_type & c_space) == c_space); }
         
 AVSC_INLINE int avs_is_field_based(const AVS_VideoInfo * p) 
         { return !!(p->image_type & AVS_IT_FIELDBASED); }
@@ -351,7 +405,7 @@ AVSC_INLINE int avs_get_row_size_p(const AVS_VideoFrame * p, int plane) {
                 else            return 0;
     case AVS_PLANAR_U_ALIGNED: case AVS_PLANAR_V_ALIGNED: 
                 if (p->pitchUV) { 
-                        int r = (p->row_sizeUV+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize
+                        r = (p->row_sizeUV+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize
                         if (r < p->pitchUV) 
                                 return r; 
                         return p->row_sizeUV;
@@ -602,7 +656,6 @@ enum {
   AVS_CPUF_SSE4_2     = 0x800,   //  Nehalem
 };
 
-
 AVSC_API(const char *, avs_get_error)(AVS_ScriptEnvironment *); // return 0 if no error
 
 AVSC_API(long, avs_get_cpu_flags)(AVS_ScriptEnvironment *);
@@ -715,6 +768,7 @@ struct AVS_Library {
   AVSC_DECLARE_FUNC(avs_function_exists);
   AVSC_DECLARE_FUNC(avs_get_audio);
   AVSC_DECLARE_FUNC(avs_get_cpu_flags);
+  AVSC_DECLARE_FUNC(avs_get_error);
   AVSC_DECLARE_FUNC(avs_get_frame);
   AVSC_DECLARE_FUNC(avs_get_parity);
   AVSC_DECLARE_FUNC(avs_get_var);
@@ -739,7 +793,6 @@ struct AVS_Library {
   AVSC_DECLARE_FUNC(avs_subframe_planar);
   AVSC_DECLARE_FUNC(avs_take_clip);
   AVSC_DECLARE_FUNC(avs_vsprintf);
-  AVSC_DECLARE_FUNC(avs_get_error);
 };
 
 #undef AVSC_DECLARE_FUNC
@@ -774,6 +827,7 @@ AVSC_INLINE AVS_Library * avs_load_library() {
   AVSC_LOAD_FUNC(avs_function_exists);
   AVSC_LOAD_FUNC(avs_get_audio);
   AVSC_LOAD_FUNC(avs_get_cpu_flags);
+  AVSC_LOAD_FUNC(avs_get_error);
   AVSC_LOAD_FUNC(avs_get_frame);
   AVSC_LOAD_FUNC(avs_get_parity);
   AVSC_LOAD_FUNC(avs_get_var);
@@ -798,7 +852,6 @@ AVSC_INLINE AVS_Library * avs_load_library() {
   AVSC_LOAD_FUNC(avs_subframe_planar);
   AVSC_LOAD_FUNC(avs_take_clip);
   AVSC_LOAD_FUNC(avs_vsprintf);
-  AVSC_LOAD_FUNC(avs_get_error);
 
 #undef __AVSC_STRINGIFY
 #undef AVSC_STRINGIFY
-- 
1.7.11.msysgit.1
Second,
This is a patch that adds a GNU-style Makefile to ease users needing to install AviSynth's headers. It installs both avisynth.h and avisynth_c.h:
Code:
diff --git a/GNUmakefile b/GNUmakefile
new file mode 100644
index 0000000..083ab09
--- /dev/null
+++ b/GNUmakefile
@@ -0,0 +1,13 @@
+# Makefile
+
+all: default
+
+PREFIX=/usr/local
+
+install:
+	install -d $(PREFIX)/include
+	install -d $(PREFIX)/include/avisynth
+	install -m 644 $(addprefix src/core/, avisynth.h avisynth_c.h) $(PREFIX)/include/avisynth
+
+uninstall:
+	rm -f -R $(PREFIX)/include/avisynth
diff --git a/README-GNUmakefile b/README-GNUmakefile
new file mode 100644
index 0000000..728584b
--- /dev/null
+++ b/README-GNUmakefile
@@ -0,0 +1,18 @@
+AviSynth, as an MSVC-based project, does not have a 'make install'
+routine that users familiar with GNU-style build systems recognize.
+Thus, users must search out the right header(s) from AviSynth's
+source code and manually copy them to wherever their source code
+expects them to be.
+
+As a remedy for this issue when wanting to build libav with
+--enable-avisynth, this Makefile supplies this method of
+installation.
+
+To install:
+make install
+
+To install to a non-standard location:
+make install PREFIX=/path/to/location
+
+To uninstall:
+make uninstall
-- 
1.7.11.msysgit.1
The reason for this is that libav is in the process of vetting the rewritten AviSynth demuxer that FFmpeg committed back in March. This new version of the demuxer uses the C interface header, and assumes the one included with x264 so that it can use YV24, YV16, YV411, and Y8. For FFmpeg this wasn't a problem, a copy of the header is stored locally in compat/. But libav doesn't want to store a local copy of the header, shifting the responsibility of acquiring and installing it onto the user (I have a stopgap repo on Github that supplies it, but I really don't like that as a solution). So avisynth_c.h in CVS would need to be updated in order to allow the demuxer to even compile correctly, and the GNUmakefile is there to eliminate the burden of manually copying files around.
qyot27 is offline   Reply With Quote
Old 9th November 2013, 15:42   #25  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Bug report

DynamicAssembledCode::Free() should be using delete[] instead of free().
ultim is offline   Reply With Quote
Old 13th November 2013, 17:51   #26  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Hi IanB,

I'd like to ask for your permission to add back the license exception clause to the 2.6 avisynth.h in Avisynth+. Can we, please?
ultim is offline   Reply With Quote
Old 16th January 2014, 04:42   #27  |  Link
vcmohan
Registered User
 
Join Date: Jul 2003
Location: India
Posts: 788
Where can one get the new avisynth.h for the 2.6 5th release?
__________________
mohan
my plugins are now hosted here
vcmohan is offline   Reply With Quote
Old 16th January 2014, 11:20   #28  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,044
Quote:
Originally Posted by vcmohan View Post
Where can one get the new avisynth.h for the 2.6 5th release?
You can either use the file from the official CVS repo here or use the header from AVS+, from here
Groucho2004 is offline   Reply With Quote
Old 17th January 2014, 04:45   #29  |  Link
vcmohan
Registered User
 
Join Date: Jul 2003
Location: India
Posts: 788
Quote:
Originally Posted by Groucho2004 View Post
You can either use the file from the official CVS repo here or use the header from AVS+, from here
I tried both places. Each wants me to download another software prior. Is there no way of getting this file straight w/o hassle?
Are avisynth+ and avisynth 2.6 header files same?
__________________
mohan
my plugins are now hosted here
vcmohan is offline   Reply With Quote
Old 17th January 2014, 04:55   #30  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 8,861
@VcMohan,
you could just copy/paste the text from here:-
https://github.com/AviSynth/AviSynth...ude/avisynth.h
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is online now   Reply With Quote
Old 17th January 2014, 04:59   #31  |  Link
zero9999
Registered User
 
Join Date: Oct 2011
Posts: 52
Quote:
Originally Posted by vcmohan View Post
I tried both places. Each wants me to download another software prior. Is there no way of getting this file straight w/o hassle?
https://github.com/AviSynth/AviSynthPlus/archive/master.zip

or get the files separately from here. (click RAW)
zero9999 is offline   Reply With Quote
Old 17th January 2014, 10:38   #32  |  Link
vcmohan
Registered User
 
Join Date: Jul 2003
Location: India
Posts: 788
Thanks. I could get avisynth.h from a forked version of avisynth as avisynth plus. Are the original avisynth.h version (official) and this are from the fork identical?
__________________
mohan
my plugins are now hosted here
vcmohan is offline   Reply With Quote
Old 17th January 2014, 10:58   #33  |  Link
TurboPascal7
Registered User
 
TurboPascal7's Avatar
 
Join Date: Jan 2010
Posts: 270
No. You can get the original one from the alpha5 github mirror here. They aren't that different though and should be perfectly compatible.
__________________
Me on GitHub | AviSynth+ - the (dead) future of AviSynth
TurboPascal7 is offline   Reply With Quote
Old 17th January 2014, 12:09   #34  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by TurboPascal7 View Post
No. You can get the original one from the alpha5 github mirror here. They aren't that different though and should be perfectly compatible.
They are perfectly compatible. Because avs+'s header is actually composed of multiple (a small number of) files though, it might be a bit easier for you to handle 2.6a5's version. EDIT: On the other hand, avs+'s header is x64-compatible.
__________________
AviSynth+

Last edited by ultim; 17th January 2014 at 15:28.
ultim is offline   Reply With Quote
Old 18th January 2014, 02:57   #35  |  Link
TurboPascal7
Registered User
 
TurboPascal7's Avatar
 
Join Date: Jan 2010
Posts: 270
Yes, your understanding is correct. Technically, all closed-source 2.6 plugins violate GPL. In practice, no one really cares.
__________________
Me on GitHub | AviSynth+ - the (dead) future of AviSynth
TurboPascal7 is offline   Reply With Quote
Old 18th January 2014, 07:57   #36  |  Link
SEt
Registered User
 
Join Date: Aug 2007
Posts: 374
Quote:
Originally Posted by rean View Post
Do I understand correctly that any Y8-compatible close-source plugin is illegal now because Y8 colorspace is added to 2.6?
Not really. You can completely ignore official header and define interfaces yourself. It's the code that is under GPL, not the interfaces as far as I understand.
SEt is offline   Reply With Quote
Old 19th January 2014, 20:21   #37  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 6,341
Quote:
Originally Posted by TurboPascal7 View Post
Yes, your understanding is correct. Technically, all closed-source 2.6 plugins violate GPL. In practice, no one really cares.
Speak for yourself TurboPascal7. Only shameless people don't care. But if you have a list of examples let us know.

Quote:
Originally Posted by SEt
Not really. You can completely ignore official header and define interfaces yourself. It's the code that is under GPL, not the interfaces as far as I understand.
As far as I understand this is simply not true, because it is a derivative of AviSynth. But feel free to prove otherwise.

The reason the exemption was temporary removed is described here http://forum.doom9.org/showthread.php?t=125582 (plugins can be fixed when the api is finished). Yes if devs stay around the reason is a bit moot.
Wilbert is offline   Reply With Quote
Old 19th January 2014, 20:40   #38  |  Link
TurboPascal7
Registered User
 
TurboPascal7's Avatar
 
Join Date: Jan 2010
Posts: 270
Quote:
Originally Posted by Wilbert View Post
Speak for yourself TurboPascal7. Only shameless people don't care. But if you have a list of examples let us know.
What for? To force freedom on people's heads? To make the authors remove the plugins, making its users very happy? Even if I did know any, I'd shamelessly pass, thank you.

As for the reasoning - the point is very moot if the avs dev himself doesn't really stay around. Not to mention that 6 years is quite a long time to finalize the interface, don't you think?
__________________
Me on GitHub | AviSynth+ - the (dead) future of AviSynth
TurboPascal7 is offline   Reply With Quote
Old 19th January 2014, 22:23   #39  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,922
Quote:
Originally Posted by Wilbert View Post
The reason the exemption was temporary removed is described here http://forum.doom9.org/showthread.php?t=125582 (plugins can be fixed when the api is finished).
I don't see how anybody can remove the exemption originally granted by the creator of Avisynth, Ben Rudiak-Gould. I will proceed as if the exemption is still in effect, and advise others to do the same.
Guest is offline   Reply With Quote
Old 19th January 2014, 22:46   #40  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by neuron2 View Post
I don't see how anybody can remove the exemption originally granted by the creator of Avisynth, Ben Rudiak-Gould. I will proceed as if the exemption is still in effect, and advise others to do the same.
Unfortunately, he can remove it. More precisely, he decided to license his own code in the header as GPL (without the exemption), which he has every right to do. Of course that does not remove the exemption from the other parts of the code that he has not written, but since his code is licensed under the GPL, as long as you use his header, you basically have to treat the whole project as GPL. You can ignore his step and treat the AviSynth code as if the exemption was still in effect, but then you must not use his header.

To summarize, you are free to proceed as if the exemption is still in effect if you don't use his 2.6-style header. Otherwise you're violating the licence.

EDIT: Actually, assuming he has contributed his non-header code under the GPL too, without his explicit agreement you cannot use the exemption at all with any of his copyrightable code, not even with other headers. Otherwise it would be possible to add non-GPL headers to GPL code and circumvent the licence in any project this way.
__________________
AviSynth+

Last edited by ultim; 20th January 2014 at 00:07.
ultim is offline   Reply With Quote
Reply

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 22:32.


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