]> git.sesse.net Git - movit/blob - NEWS
Don't try to check Cb and Cr positioning for output formats, as they should be non...
[movit] / NEWS
1 Movit 1.4.0, November 5th, 2016
2
3   - Allow setting the intermediate format for chains, instead of hardcoding
4     it at 16-bit RGBA; advanced users can use this to e.g. ask for 8-bit
5     sRGB intermediates, reducing the amount of memory bandwidth needed
6     at the cost of reduced precision. Whether this is a good tradeoff or not
7     depends on the exact chain and your requirements.
8
9   - Fix an issue where a (cached) shader program could be used from multiple
10     threads at a time, causing the uniforms to contain unpredictable values.
11
12   - Make the error printed on check_error() slightly friendlier: Include the
13     enum if possible, and print it to stderr instead of stdout.
14
15
16 Movit 1.3.2, February 23rd, 2016
17
18   - Fix an issue with initialization in certain locales. Patch from
19     Jean-Baptiste Mardelle.
20
21
22 Movit 1.3.1, February 15th, 2016
23
24   - Fix an issue where certain effect chains (particularly involving
25     out-of-tree effects that return only a constant color) could cause
26     texture coordinates not to be set properly. (The new code probably
27     also has slightly lower OpenGL driver overhead.) Reported by
28     Christophe Thommeret.
29
30
31 Movit 1.3.0, January 31st, 2016
32
33   - Movit now requires GLSL 1.30 (so a driver from 2008 or later);
34     before, it claimed to support 1.10, but actually used 1.30 features.
35     Note that some OpenGL drivers, in particular on OS X, only supports
36     GLSL 1.30 (actually, 1.50) if you have an OpenGL core context.
37
38   - Add a deinterlacer, based on YADIF.
39
40   - Allow parallel output to RGBA and Y'CbCr textures at the same time.
41
42   - Make FlatInput and YCbCrInput support taking in external OpenGL
43     textures. Also allow them to change width/height after instantiation.
44
45   - Various compatibility and performance fixes. In particular,
46     fp16 conversion on older (non-Haswell) CPUs is much faster, due to
47     new conversion code by Fabian Giesen.
48
49
50 Movit 1.2.0, September 24th, 2015
51
52   - Movit now ships a version.h with a #define MOVIT_VERSION that
53     increases on every API change, including in git. (The number
54     itself carries no semantic meaning beyond this.) Movit 1.2.0
55     is not API or ABI compatible with 1.1.x, so there has been a
56     soname bump to libmovit.so.3.
57
58   - More flexible Y'CbCr input; in particular, a special input
59     for 4:2:2 interleaved data (UYVY), and support for semi-planar
60     input (Cb and Cr in the same texture, like in NV12). Note that
61     you should now also set the new “num_levels” member of
62     YCbYCbCrFormat to 256 (signifying 8-bit input), although
63     it is not used yet; this is a stepping stone towards supporting
64     10- and 12-bit Y'CbCr.
65
66   - Basic support for Y'CbCr _output_. Currently only 8-bit,
67     and only 4:4:4 (ie., you'll need to subsample yourself
68     afterwards). It is possible to split the output into multiple
69     textures, though, if you want a luma/chroma split (NV12-like)
70     or full planar.
71
72   - Support top-left origin for output. This is only really useful
73     if you are rendering directly into some memory area with top-left
74     origin; most users will get the expected behavior by using
75     bottom-left as before.
76
77   - Rework uniform handling for less OpenGL overhead. Note that
78     this means your effects now need to register uniforms in the
79     C++ code instead of declaring them in the .frag file.
80
81   - Make the PaddingEffect border subpixel-aware, and also support
82     an arbitrary (subpixel) border offset. This means that you can
83     compose PaddingEffect with an integral left/top offset
84     (use the new IntegralPaddingEffect for potentially more speed)
85     and ResampleEffect with a subpixel left/top offset (and zoom to
86     compensate) to get Lanczos interpolation for the pixels and a
87     simple bilinear interpolation for the border itself.
88
89   - Fix a bug that could cause very bad filter weights in
90     ResampleEffect.
91
92   - Various performance improvements, in particular with regards to
93     CPU usage in ResampleEffect.
94
95
96 Movit 1.1.3, March 29th, 2015
97
98   - Fix accuracy issues in ResampleEffect, particularly when
99     zooming. Note that this might cost a few percent performance.
100     Reported by Christophe Thommeret.
101
102   - Make the number of BlurEffect taps configurable.
103     Based on patch by Christophe Thommeret.
104
105   - Multiple other bugfixes, some courtesy Dan Dennedy and
106     Christophe Thommeret. In particular, thread-safety fixes
107     related to locales and chain finalization.
108
109
110 Movit 1.1.2, August 12th, 2014
111
112   - Performance bugfix: Fix texture freelist behavior so that it's
113     LRU instead of the exact opposite. Patch by Christophe Thommeret.
114
115   - Performance bugfix: Correct the number of blur taps read in the
116     blur filter (it was reading about twice as many as it should).
117     Also found by Christophe Thommeret.
118
119
120 Movit 1.1.1, April 12th, 2014
121
122  - Fix an issue that could cause assertion failure in ResourcePool
123    when FBOs are reused, especially with NVIDIA's drivers.
124
125
126 Movit 1.1, April 10th, 2014
127
128  - NOTE: Movit now uses libepoxy rather than GLEW. This is needed because
129    of core context and GLES3 support (see below). Movit 1.1 should be
130    generally API-compatible with 1.0.3 (with the exception of the next
131    point), but is not ABI-compatible, so there has been a soname bump
132    to libmovit.so.2.
133
134  - NOTE: The rules for using an EffectChain or ResourcePool in multiple
135    OpenGL contexts or threads have changed somewhat; see the comments in
136    resource_pool.h.
137
138  - Movit will now work in OpenGL core contexts, and on GLES 3.0 or newer.
139    (GLES2 devices are not supported.) This also holds for all unit tests,
140    provided that you use SDL2 and not SDL1 (because SDL2 is needed to set
141    up such contexts). Note that the included demo application still requires
142    a classic OpenGL context.
143
144  - ResampleEffect can now do sub-pixel translate and/or zoom.
145
146  - LumaMixEffect now has an “invert” flag, as a convenience to e.g. change
147    a left-to-right wipe into a right-to-left one.
148
149  - Significant reduction in driver overhead, especially on NVIDIA drivers.
150
151  - Various smaller bugfixes and performance improvements.
152
153
154 Movit 1.0.3, March 16th, 2014
155
156  - Yet more build system tweaks mainly related to distribution packaging.
157
158
159 Movit 1.0.2, March 16th, 2014
160
161  - Make a few tweaks to “make install”, to make distributions' lives easier.
162
163
164 Movit 1.0.1, March 16th, 2014
165
166  - Fix so that shared libraries are built.
167
168
169 Movit 1.0, March 16th, 2014
170
171  - Initial release.