| Commit message (Collapse) | Author | Age |
|
|
|
| |
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
if the float pixel * 65535.0f > 2147483647.0f
lrintf may overfow and return negative values, depending on implementation.
nan and +/-inf values may also be implementation defined
clip the value first so lrintf always works.
values < 0.0f, -inf, nan = 0.0f
values > 65535.0f, +inf = 65535.0f
old timings
195960 decicycles in planar_rgbf32le_to_uv, 1 runs, 0 skips
186120 decicycles in planar_rgbf32le_to_uv, 2 runs, 0 skips
188645 decicycles in planar_rgbf32le_to_uv, 4 runs, 0 skips
183625 decicycles in planar_rgbf32le_to_uv, 8 runs, 0 skips
181157 decicycles in planar_rgbf32le_to_uv, 16 runs, 0 skips
177533 decicycles in planar_rgbf32le_to_uv, 32 runs, 0 skips
175689 decicycles in planar_rgbf32le_to_uv, 64 runs, 0 skips
232960 decicycles in planar_rgbf32be_to_uv, 1 runs, 0 skips
221380 decicycles in planar_rgbf32be_to_uv, 2 runs, 0 skips
216640 decicycles in planar_rgbf32be_to_uv, 4 runs, 0 skips
213505 decicycles in planar_rgbf32be_to_uv, 8 runs, 0 skips
211558 decicycles in planar_rgbf32be_to_uv, 16 runs, 0 skips
210596 decicycles in planar_rgbf32be_to_uv, 32 runs, 0 skips
210202 decicycles in planar_rgbf32be_to_uv, 64 runs, 0 skips
161680 decicycles in planar_rgbf32le_to_y, 1 runs, 0 skips
153540 decicycles in planar_rgbf32le_to_y, 2 runs, 0 skips
148255 decicycles in planar_rgbf32le_to_y, 4 runs, 0 skips
140600 decicycles in planar_rgbf32le_to_y, 8 runs, 0 skips
132935 decicycles in planar_rgbf32le_to_y, 16 runs, 0 skips
128531 decicycles in planar_rgbf32le_to_y, 32 runs, 0 skips
140933 decicycles in planar_rgbf32le_to_y, 64 runs, 0 skips
190980 decicycles in planar_rgbf32be_to_y, 1 runs, 0 skips
176080 decicycles in planar_rgbf32be_to_y, 2 runs, 0 skips
167980 decicycles in planar_rgbf32be_to_y, 4 runs, 0 skips
164685 decicycles in planar_rgbf32be_to_y, 8 runs, 0 skips
162751 decicycles in planar_rgbf32be_to_y, 16 runs, 0 skips
162404 decicycles in planar_rgbf32be_to_y, 32 runs, 0 skips
167849 decicycles in planar_rgbf32be_to_y, 64 runs, 0 skips
new timings
183320 decicycles in planar_rgbf32le_to_uv, 1 runs, 0 skips
175700 decicycles in planar_rgbf32le_to_uv, 2 runs, 0 skips
179570 decicycles in planar_rgbf32le_to_uv, 4 runs, 0 skips
172932 decicycles in planar_rgbf32le_to_uv, 8 runs, 0 skips
168707 decicycles in planar_rgbf32le_to_uv, 16 runs, 0 skips
165224 decicycles in planar_rgbf32le_to_uv, 32 runs, 0 skips
163423 decicycles in planar_rgbf32le_to_uv, 64 runs, 0 skips
184940 decicycles in planar_rgbf32be_to_uv, 1 runs, 0 skips
185150 decicycles in planar_rgbf32be_to_uv, 2 runs, 0 skips
185790 decicycles in planar_rgbf32be_to_uv, 4 runs, 0 skips
185472 decicycles in planar_rgbf32be_to_uv, 8 runs, 0 skips
185277 decicycles in planar_rgbf32be_to_uv, 16 runs, 0 skips
185813 decicycles in planar_rgbf32be_to_uv, 32 runs, 0 skips
185332 decicycles in planar_rgbf32be_to_uv, 64 runs, 0 skips
145400 decicycles in planar_rgbf32le_to_y, 1 runs, 0 skips
145100 decicycles in planar_rgbf32le_to_y, 2 runs, 0 skips
143490 decicycles in planar_rgbf32le_to_y, 4 runs, 0 skips
136687 decicycles in planar_rgbf32le_to_y, 8 runs, 0 skips
131271 decicycles in planar_rgbf32le_to_y, 16 runs, 0 skips
128698 decicycles in planar_rgbf32le_to_y, 32 runs, 0 skips
127170 decicycles in planar_rgbf32le_to_y, 64 runs, 0 skips
156020 decicycles in planar_rgbf32be_to_y, 1 runs, 0 skips
146990 decicycles in planar_rgbf32be_to_y, 2 runs, 0 skips
142020 decicycles in planar_rgbf32be_to_y, 4 runs, 0 skips
141052 decicycles in planar_rgbf32be_to_y, 8 runs, 0 skips
138973 decicycles in planar_rgbf32be_to_y, 16 runs, 0 skips
138027 decicycles in planar_rgbf32be_to_y, 32 runs, 0 skips
143939 decicycles in planar_rgbf32be_to_y, 64 runs, 0 skips
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is ment to be a cosmetic change
old timings:
42780 UNITS in grayf32le, 1 runs, 0 skips
56720 UNITS in grayf32le, 2 runs, 0 skips
67265 UNITS in grayf32le, 4 runs, 0 skips
58082 UNITS in grayf32le, 8 runs, 0 skips
63512 UNITS in grayf32le, 16 runs, 0 skips
52720 UNITS in grayf32le, 32 runs, 0 skips
46491 UNITS in grayf32le, 64 runs, 0 skips
68500 UNITS in grayf32be, 1 runs, 0 skips
66930 UNITS in grayf32be, 2 runs, 0 skips
62305 UNITS in grayf32be, 4 runs, 0 skips
55510 UNITS in grayf32be, 8 runs, 0 skips
50216 UNITS in grayf32be, 16 runs, 0 skips
44480 UNITS in grayf32be, 32 runs, 0 skips
42394 UNITS in grayf32be, 64 runs, 0 skips
new timings:
46660 UNITS in grayf32le, 1 runs, 0 skips
51830 UNITS in grayf32le, 2 runs, 0 skips
53390 UNITS in grayf32le, 4 runs, 0 skips
50910 UNITS in grayf32le, 8 runs, 0 skips
44968 UNITS in grayf32le, 16 runs, 0 skips
40349 UNITS in grayf32le, 32 runs, 0 skips
38330 UNITS in grayf32le, 64 runs, 0 skips
39980 UNITS in grayf32be, 1 runs, 0 skips
49630 UNITS in grayf32be, 2 runs, 0 skips
53540 UNITS in grayf32be, 4 runs, 0 skips
59767 UNITS in grayf32be, 8 runs, 0 skips
51206 UNITS in grayf32be, 16 runs, 0 skips
44743 UNITS in grayf32be, 32 runs, 0 skips
41468 UNITS in grayf32be, 64 runs, 0 skips
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
|
|
|
| |
This makes output consistent with a similar warning just few
lines above where this flag is checked in the same way.
Signed-off-by: softworkz <softworkz@hotmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
|
|
| |
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
| |
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
| |
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
|
| |
Fixes: ./ffplay dav.y4m -vf "scale=hd1080:threads=4"
Found-by: Paul
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
|
|
|
| |
Performance data(Less is better):
shuffle_bytes_ssse3 3.64654
shuffle_bytes_avx2 0.94288
Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
|
|
|
|
|
|
|
| |
Fixes: alphablend=checkerboard
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
| |
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
|
|
|
| |
Mixing unsigned and signed often leads to unexpected arithmetic results.
Fixes: out of array write
Found-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
| |
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
|
|
|
|
| |
This resolves a problem where conversions from YUV to X2RGB10LE
would produce color values a factor 4 too small, because an 8-bit
value was placed in a 10-bit channel.
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
|
|
| |
They do the same.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
|
|
|
|
|
|
|
| |
SSE2 is x86 specific, yet due to the call to av_get_cpu_flags()
compilers were unable to optimize the checks (and the call) away
on other arches.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In this case the current code tries to warn once; to do so, it uses
ordinary static ints to store whether the warning has already been
emitted. This is both a data race (and therefore undefined behaviour)
as well as a race condition, because it is really possible for multiple
threads to be the one thread to emit the warning. This is actually
common since the introduction of the new multithreaded scaling API.
This commit fixes this by using atomic integers for the state;
furthermore, these are not static anymore, but rather contained
in the user-facing SwsContext (i.e. the parent SwsContext in case
of slice-threading).
Given that these atomic variables are not intended for synchronization
at all (but only for atomicity, i.e. only to output the warning once),
the atomic operations use memory_order_relaxed.
This affected the nv12, nv21, yuv420, yuv420p10, yuv422, yuv422p10 and
yuv444 filter-overlay FATE-tests.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
|
|
|
|
|
|
|
| |
This allows to associate log messages from slice contexts to
the user-visible SwsContext.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
|
|
|
|
|
| |
Fixes valgrind warnings about use of uninitialised values.
Signed-off-by: James Almer <jamrial@gmail.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
These inclusions are not necessary, as cpu.h is already included
wherever it is needed (via direct inclusion or via the arch-specific
headers).
Also remove other unnecessary cpu.h inclusions from ordinary
non-headers.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
|
|
|
| |
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
|
|
|
| |
Dither none is only implemented in full chroma interpolation for these rgb formats
Its also a obscure choice (producing less nice images) that implementing it in the
other code-paths makes no sense
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
| |
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
|
|
|
| |
Fixes: null pointer dereference
Fixes: alloc_slice.mp4
Found-by: Rafael Dutra <rafael.dutra@cispa.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
| |
It does not interact in any way with the code setting up the image
pointers/strides, so it should not be intermixed with it.
|
|
|
|
|
| |
It does not interact in any way with the code setting up the image
pointers/strides, so it should not be intermixed with it.
|
|
|
|
|
| |
Place it right after the input parameter validation. There is no point
in performing any setup if the sws_scale() call won't do anything.
|
| |
|
|
|
|
| |
Also, return an error code on failure rather than 0.
|
| |
|
|
|
|
|
| |
Makes it more clear that resetting it does not interact with the scaling
code that it is currently intermixed with.
|
|
|
|
| |
That function pointer is now used only for unscaled conversion.
|
|
|
|
|
|
|
|
|
|
| |
Call the scaler function directly rather than through a function
pointer. Drop the now-unused return value from ff_getSwsFunc() and
rename the function to reflect its new role.
This will be useful in the following commits, where it will become
important that the amount of output is different for scaled vs unscaled
case.
|
| |
|
|
|
|
| |
Also, fail with an error code rather than 0.
|
| |
|
|
|
|
| |
Reindent after previous commit, rewrap long lines.
|
| |
|
|
|
|
| |
Reindent after previous commit, split long lines.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
There used to be more code inside them, but it was removed in
6de58b49032a206985602effec91e5e46c886ea2.
|
|
|
|
|
|
|
| |
Call ff_sws_rgb2rgb_init via ff_thread_once instead of checking one of the
variables it updates.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
|
|
|
| |
conversion when width%2
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
|
|
|
|
|
| |
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|