Fix things on case-insensitive file systems.
[vapoursynth-svn.git] / ChangeLog
blobb5648c9848b1c297ce629b548df2a8df6b2df9bf
1 known issues:
2 compatrgb32 may be flipped when output (use FlipVertical as a workaround)
4 r19:
5 properly initialize color in addborders to 0
6 calls to the getFrame() function inside vapoursynth can never deadlock now, the thread handling is also slightly improved
7 fixed a bug in the cache that would stop it from freeing all its frames when memory is needed, fixes an out of memory error reported by Chikuzen
8 output is no longer determined by setting the last variable in __main__, instead clip.set_output(int index = 0) is used to set which clip(s) are exported
9 fixed some memory leaks in the internal filters when they're freed (jackoneill)
10 now properly initializes blankclips to all 0 when no values are given
11 added proper const declarations now that cython supports it, cython 0.18 or later required to build the extension now
12 fixed get_write_ptr() in python to actually return a write pointer
13 fixed the lut and lut2 filters for > 8 bit formats (ADub)
14 various minor fixes to vivtc
15 removed clip.output() since it's a bad design decision, now a command-line program called vspipe can be used to pipe or write raw video output
16 renamed newMap() to createMap() to match the naming of all other functions
17 added core.get_plugins() for the core and core.namepace.get_functions() for namespaces, it works similarly to list_functions() but instead returns the information in a dict
18 removed the unmentioned and unused link option for filter arguments as it is completely pointless and similar functionality may be implemented anyway
19 there's now a sane external api available for embedding in other applications, see vsscript.h and vsvfw for an example
20 now a singleton pattern is used for the core in python scripts, use vs.get_core() to get a reference to it
21 clip.get_frame() now throws an exception when out of bounds frames are requested
22 fixes a reference leak in the VideoProps python class
23 now ignores functions with . in their argument string for avisynth compatibility, this makes warpsharp mostly compatible
25 r18:
26 the installer no longer asks for the installation type since there's only one option anyway
27 vdecimate now returns and decimates the frames in the last incomplete cycle as well
28 fixed a bug that prevented mask scaling from working in MaskedMerge
29 fixed a bug in VSFS that made the module crash on script errors, the full error message is now reported in a log file just like AVFS
30 improved the error message when the last variable hasn't been set in a script
31 changed default interleave behavior to match avisynth, the old and in some cases desirable behavior can be selected with the extend argument
32 added color argument to addborders
33 fixed addborders for formats with over 8 bits per sample
34 blankclip can now produce float clips
35 fixed/at least greatly reduced the big memory leak when reopening a script through vfw
37 r17:
38 the installer will now register and unregister the vsfs dll if selected (pismo file mount must of course be installed at the time for it to work)
39 cleaned up the asm in the transpose filter
40 fixed python detection in the installer if it was installed for a single user
41 vdecimate can now accept up to 16 bit integer input and all color formats (jackoneill)
42 fixed a bug that made the array for storing metrics uninitialized at the end in vdecimate leading to random decisions (jackoneill)
43 added an inappropriately named subtitle filter based on libass (lachs0r)
44 EEDI3 has now been changed into pure C (jackoneill)
45 it is now possible to have the warning/error messages handled by a user specified callback function
46 added a check for the SSE state so plugins cannot modify it without it being noticed (similar to the FPU and MMX checks)
47 fixed that two plugins could be loaded into the same namespace
48 fixed some issues with argument handling in python due to exceptions not being propagated properly
49 added the Expr filter, it can evaluate an expression per pixel during runtime for 1-3 input clips
50 fixed a clip reference leak introduced in R15 with the multiple clip output changes
51 fixed AVISource crashes due to RGB output not being properly initialized
52 fixed the upper memory limit check
53 fixed callback functions hanging in vfw and vsfs
54 changed the license of all files to LGPL, previously a few of them were MIT licensed
56 r16:
57 fixed a MaskedMerge reference leak under some rare conditions
58 added a check for CPU features on x86, will now return an error if SSE2 isn't present
59 fixed an issue in avisynth compatibility caused by stricter internal checks
61 r15:
62 documented all the predefined frame properties and all important python classes
63 fixed iterating over clips in python
64 allocate memory per plane instead of in one big lump, this allows planes to be copied by reference using the newVideoFrame2() function and will also reduce memory usage slightly for filters that use it
65 fixed infinite loop in lut and lut2 when used with 9 bit input or more 
66 added ClipToProp and PropToClip functions, they allow one clip to be attached to another clip as frame properties
67 fixed a reference leak in vivtc
68 ported avisource from avisynth, it has been thoroughly upgraded and can understand several high bitdepth formats including v210 which many "professional" codecs use, it is also based on the latest vdub parser code now
69 added len() support for clips in python
70 fixed a bug with plugin functions having array output in python
71 improved the api so that a single node/filter can produce several output clips, this bumps the api version to r3 (r2 plugins are still binary compatible but the r2 abi will also be removed in a version or two)
73 r14:
74 fixed setting the pixel values in blankclip
75 a collection of ported/new filters are now bundled (eedi3, vivtc, histogram and temporalsoften)
76 all examples and headers needed to write a new filter are now included in the installer
77 fixed a frame data alignment issue in VSFS
78 added vivtc (aka tivtc lite) to the included filters
79 the fpu state check now only outputs a warning instead of terminating (this is until I've been able to locate why certain people trigger it)
80 users can now set the cache size limit over which vs aggressively starts to decrease cache size, use core.set_max_cache_size(number of MB) (the memory use is calculated from the combined size of all framebuffers allocated)
81 fixed memory leaks in PlaneDifference and PlaneAverage
83 r13:
84 enabled another part of the cache size adjustment, cache sizes will now be aggressively reduced to keep framebuffer memory use below 1GB
85 filters can now get passed zero length arrays, the rewritten parts also improves argument handling in python (integer types now get converted to float implicitly when passed as a function argument)
86 added right click\new\vapoursynth script shortcut to the installer
87 make the number of frames in progress equal the number of threads, this should always be the upper beneficial value for any script, previously it was fixed at 10
88 fixed a rowsize bug in avisynth compatibility and implemented the subframe functions
89 added PEMVerify, a function to check for out of bounds values in filter output for developers
90 added PlaneDifference and PlaneAverage functions for use in conditional filtering
91 added copy(), and get_write_ptr() to clips in python, renamed get_data() to get_read_ptr()
92 greatly improved the handling of SelectClip and ModifyFrame (formerly ModifyProps), conditional filtering is now something that's usable
93 using ModifyFrame and a bit of cleverness it is now possible to implement fairly complex filters in python
95 r12:
96 fixed a scheduling error for fmParallelRequests filters (all avisynth filters and several internal ones)
97 added a bit more documentation, this time a bit about python and the classes found there
98 added vsfs, a port of avfs
99 v210 output support, add enable_v210=True to use it
100 removed support for clips with unknown length from vfw
101 can now open files with unicode filenames in vfw
102 fixed some minor bugs and compiler warnings
104 r11:
105 switched the precompiled module to python 3.3
106 vfw now also has several frame requests going at once, this should make the throughput get close to clip.output()
107 vfw now returns some colorful bars on error because refusing to open crashes too many applications
108 vfw now has support for the P010, P016, P210, P216 formats, tested in mpc-hc with madvr
109 removed some stray debug prints
111 r10:
112 fixed an issue where python could deadlock on the GIL
113 now comes in an installer
114 added a skeleton filter and a heavily commented invert example filter to the sdk dir
115 added a vfw module
116 fixed slicing/indexing in python module
117 list_functions() can now be used on a namespace (core.resize.list_functions())
118 improved and documented build system, see INSTALL
119 other small fixes relating to the python bindings
122 to get around keyword conflicts all function arguments names can be specified with both name and _name (Loop(_clip=a) is the same as Loop(clip=a))
123 works under linux and probably osx too
124 full source released under LGPL
125 it is now possible to use + to splice clips and the slicing operator to perform Trim, Reverse and SelectEvery operations on a clip
126 documentation of all user functions
127 lots of included filter fixes
128 minor fixes to other things
131 portability fixes for linux
132 minor api additions to make filters that consume 20+ input frames/scan a whole clip feasible
133 added cpu state checks after filter calls
134 added a function type, plugins may now take a python function and evaluate it for every frame
135 implemented the final planned standard functions (transpose, croprel, clipselect, modifyprops)
136 fixed the huge memory leak in cropabs
137 other small fixes
140 includes the source for all of the std functions and the header needed to write plugins (more source coming soon)
141 unnamed arguments are now accepted
142 y4m headers now specify the colorspace for all yuv formats and gives an error when used with non-yuv
143 added a new B tag to y4m output that specifies the number of bits per sample (B8/B10/B16)
144 more minor fixes
147 now drops all crop calls to env->invoke(), fixes dgdecode compatibility but you have to crop yourself now
148 all 64bit issues fixed
149 added several checks to prevent the compat formats from being used by new filters
150 minor fixes and extra checks for everything
153 more python output fixes
154 added accept_lowercase as a setting for the core constructor
155 python module refinement, now all objects have a string representation with more information
156 other minor fixes
159 fixed the bad frame output from the python module
160 added a callback to the output function so progress can be reported
161 ported ffms2
162 raw frame data can be accessed from python
165 fixes even more threading and performance issues
166 adds special support for yuy2 and rgb32 so most avisynth filters should work
167 added hacks to make mvtools2 work
170 fixes a large number of threading issues
171 removed the stupid clip.vi.width thing in python, now it's simply clip.width
172 fixed the frame reordering in the python bindings, now frames pop out in the expected order
175 buggy first version