/src/ffmpeg/libavutil/intmath.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2010 Mans Rullgard <mans@mansr.com> |
3 | | * |
4 | | * This file is part of FFmpeg. |
5 | | * |
6 | | * FFmpeg is free software; you can redistribute it and/or |
7 | | * modify it under the terms of the GNU Lesser General Public |
8 | | * License as published by the Free Software Foundation; either |
9 | | * version 2.1 of the License, or (at your option) any later version. |
10 | | * |
11 | | * FFmpeg is distributed in the hope that it will be useful, |
12 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | | * Lesser General Public License for more details. |
15 | | * |
16 | | * You should have received a copy of the GNU Lesser General Public |
17 | | * License along with FFmpeg; if not, write to the Free Software |
18 | | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
19 | | */ |
20 | | |
21 | | #ifndef AVUTIL_INTMATH_H |
22 | | #define AVUTIL_INTMATH_H |
23 | | |
24 | | #include <stdint.h> |
25 | | |
26 | | #include "config.h" |
27 | | #include "attributes.h" |
28 | | |
29 | | #if ARCH_ARM |
30 | | # include "arm/intmath.h" |
31 | | #elif ARCH_RISCV |
32 | | # include "riscv/intmath.h" |
33 | | #elif ARCH_X86 |
34 | | # include "x86/intmath.h" |
35 | | #endif |
36 | | |
37 | | #if HAVE_FAST_CLZ |
38 | | #if AV_GCC_VERSION_AT_LEAST(3,4) || AV_HAS_BUILTIN(__builtin_clz) |
39 | | #ifndef ff_log2 |
40 | | # define ff_log2(x) (31 - __builtin_clz((x)|1)) |
41 | | # ifndef ff_log2_16bit |
42 | | # define ff_log2_16bit av_log2 |
43 | | # endif |
44 | | #endif /* ff_log2 */ |
45 | | #endif /* AV_GCC_VERSION_AT_LEAST(3,4) */ |
46 | | #endif |
47 | | |
48 | | extern const uint8_t ff_log2_tab[256]; |
49 | | |
50 | | #ifndef ff_log2 |
51 | 0 | #define ff_log2 ff_log2_c |
52 | | static av_always_inline av_const int ff_log2_c(unsigned int v) |
53 | 0 | { |
54 | 0 | int n = 0; |
55 | 0 | if (v & 0xffff0000) { |
56 | 0 | v >>= 16; |
57 | 0 | n += 16; |
58 | 0 | } |
59 | 0 | if (v & 0xff00) { |
60 | 0 | v >>= 8; |
61 | 0 | n += 8; |
62 | 0 | } |
63 | 0 | n += ff_log2_tab[v]; |
64 | |
|
65 | 0 | return n; |
66 | 0 | } Unexecuted instantiation: avfiltergraph.c:ff_log2_c Unexecuted instantiation: buffersink.c:ff_log2_c Unexecuted instantiation: buffersrc.c:ff_log2_c Unexecuted instantiation: formats.c:ff_log2_c Unexecuted instantiation: framequeue.c:ff_log2_c Unexecuted instantiation: graphparser.c:ff_log2_c Unexecuted instantiation: pthread.c:ff_log2_c Unexecuted instantiation: video.c:ff_log2_c Unexecuted instantiation: allfilters.c:ff_log2_c Unexecuted instantiation: avfilter.c:ff_log2_c Unexecuted instantiation: framepool.c:ff_log2_c Unexecuted instantiation: audio.c:ff_log2_c Unexecuted instantiation: swscale.c:ff_log2_c Unexecuted instantiation: utils.c:ff_log2_c Unexecuted instantiation: vscale.c:ff_log2_c Unexecuted instantiation: yuv2rgb.c:ff_log2_c Unexecuted instantiation: alphablend.c:ff_log2_c Unexecuted instantiation: format.c:ff_log2_c Unexecuted instantiation: graph.c:ff_log2_c Unexecuted instantiation: hscale_fast_bilinear.c:ff_log2_c Unexecuted instantiation: input.c:ff_log2_c Unexecuted instantiation: lut3d.c:ff_log2_c Unexecuted instantiation: ops.c:ff_log2_c Unexecuted instantiation: ops_backend.c:ff_log2_c Unexecuted instantiation: ops_chain.c:ff_log2_c Unexecuted instantiation: ops_dispatch.c:ff_log2_c Unexecuted instantiation: ops_memcpy.c:ff_log2_c Unexecuted instantiation: ops_optimizer.c:ff_log2_c Unexecuted instantiation: options.c:ff_log2_c Unexecuted instantiation: output.c:ff_log2_c Unexecuted instantiation: rgb2rgb.c:ff_log2_c Unexecuted instantiation: slice.c:ff_log2_c Unexecuted instantiation: swscale_unscaled.c:ff_log2_c Unexecuted instantiation: cms.c:ff_log2_c Unexecuted instantiation: csputils.c:ff_log2_c Unexecuted instantiation: gamma.c:ff_log2_c Unexecuted instantiation: hscale.c:ff_log2_c Unexecuted instantiation: avformat.c:ff_log2_c Unexecuted instantiation: demux.c:ff_log2_c Unexecuted instantiation: demux_utils.c:ff_log2_c Unexecuted instantiation: id3v2.c:ff_log2_c Unexecuted instantiation: metadata.c:ff_log2_c Unexecuted instantiation: seek.c:ff_log2_c Unexecuted instantiation: allformats.c:ff_log2_c Unexecuted instantiation: avio.c:ff_log2_c Unexecuted instantiation: aviobuf.c:ff_log2_c Unexecuted instantiation: id3v1.c:ff_log2_c Unexecuted instantiation: network.c:ff_log2_c Unexecuted instantiation: os_support.c:ff_log2_c Unexecuted instantiation: allcodecs.c:ff_log2_c Unexecuted instantiation: avcodec.c:ff_log2_c Unexecuted instantiation: bitstream_filters.c:ff_log2_c Unexecuted instantiation: bsf.c:ff_log2_c Unexecuted instantiation: codec_desc.c:ff_log2_c Unexecuted instantiation: codec_par.c:ff_log2_c Unexecuted instantiation: decode.c:ff_log2_c Unexecuted instantiation: encode.c:ff_log2_c Unexecuted instantiation: exif.c:ff_log2_c Unexecuted instantiation: get_buffer.c:ff_log2_c Unexecuted instantiation: packet.c:ff_log2_c Unexecuted instantiation: parser.c:ff_log2_c Unexecuted instantiation: parsers.c:ff_log2_c Unexecuted instantiation: profiles.c:ff_log2_c Unexecuted instantiation: pthread_frame.c:ff_log2_c Unexecuted instantiation: pthread_slice.c:ff_log2_c Unexecuted instantiation: raw.c:ff_log2_c Unexecuted instantiation: threadprogress.c:ff_log2_c Unexecuted instantiation: tiff_common.c:ff_log2_c Unexecuted instantiation: to_upper4.c:ff_log2_c Unexecuted instantiation: buffer.c:ff_log2_c Unexecuted instantiation: channel_layout.c:ff_log2_c Unexecuted instantiation: container_fifo.c:ff_log2_c Unexecuted instantiation: cpu.c:ff_log2_c Unexecuted instantiation: eval.c:ff_log2_c Unexecuted instantiation: frame.c:ff_log2_c Unexecuted instantiation: hwcontext.c:ff_log2_c Unexecuted instantiation: iamf.c:ff_log2_c Unexecuted instantiation: imgutils.c:ff_log2_c Unexecuted instantiation: log.c:ff_log2_c Unexecuted instantiation: mastering_display_metadata.c:ff_log2_c Unexecuted instantiation: mathematics.c:ff_log2_c Unexecuted instantiation: opt.c:ff_log2_c Unexecuted instantiation: parseutils.c:ff_log2_c Unexecuted instantiation: pixdesc.c:ff_log2_c Unexecuted instantiation: random_seed.c:ff_log2_c Unexecuted instantiation: rational.c:ff_log2_c Unexecuted instantiation: side_data.c:ff_log2_c Unexecuted instantiation: timestamp.c:ff_log2_c Unexecuted instantiation: file_open.c:ff_log2_c |
67 | | #endif |
68 | | |
69 | | #ifndef ff_log2_16bit |
70 | | #define ff_log2_16bit ff_log2_16bit_c |
71 | | static av_always_inline av_const int ff_log2_16bit_c(unsigned int v) |
72 | 0 | { |
73 | 0 | int n = 0; |
74 | 0 | if (v & 0xff00) { |
75 | 0 | v >>= 8; |
76 | 0 | n += 8; |
77 | 0 | } |
78 | 0 | n += ff_log2_tab[v]; |
79 | 0 |
|
80 | 0 | return n; |
81 | 0 | } Unexecuted instantiation: avfiltergraph.c:ff_log2_16bit_c Unexecuted instantiation: buffersink.c:ff_log2_16bit_c Unexecuted instantiation: buffersrc.c:ff_log2_16bit_c Unexecuted instantiation: formats.c:ff_log2_16bit_c Unexecuted instantiation: framequeue.c:ff_log2_16bit_c Unexecuted instantiation: graphparser.c:ff_log2_16bit_c Unexecuted instantiation: pthread.c:ff_log2_16bit_c Unexecuted instantiation: video.c:ff_log2_16bit_c Unexecuted instantiation: allfilters.c:ff_log2_16bit_c Unexecuted instantiation: avfilter.c:ff_log2_16bit_c Unexecuted instantiation: framepool.c:ff_log2_16bit_c Unexecuted instantiation: audio.c:ff_log2_16bit_c Unexecuted instantiation: swscale.c:ff_log2_16bit_c Unexecuted instantiation: utils.c:ff_log2_16bit_c Unexecuted instantiation: vscale.c:ff_log2_16bit_c Unexecuted instantiation: yuv2rgb.c:ff_log2_16bit_c Unexecuted instantiation: alphablend.c:ff_log2_16bit_c Unexecuted instantiation: format.c:ff_log2_16bit_c Unexecuted instantiation: graph.c:ff_log2_16bit_c Unexecuted instantiation: hscale_fast_bilinear.c:ff_log2_16bit_c Unexecuted instantiation: input.c:ff_log2_16bit_c Unexecuted instantiation: lut3d.c:ff_log2_16bit_c Unexecuted instantiation: ops.c:ff_log2_16bit_c Unexecuted instantiation: ops_backend.c:ff_log2_16bit_c Unexecuted instantiation: ops_chain.c:ff_log2_16bit_c Unexecuted instantiation: ops_dispatch.c:ff_log2_16bit_c Unexecuted instantiation: ops_memcpy.c:ff_log2_16bit_c Unexecuted instantiation: ops_optimizer.c:ff_log2_16bit_c Unexecuted instantiation: options.c:ff_log2_16bit_c Unexecuted instantiation: output.c:ff_log2_16bit_c Unexecuted instantiation: rgb2rgb.c:ff_log2_16bit_c Unexecuted instantiation: slice.c:ff_log2_16bit_c Unexecuted instantiation: swscale_unscaled.c:ff_log2_16bit_c Unexecuted instantiation: cms.c:ff_log2_16bit_c Unexecuted instantiation: csputils.c:ff_log2_16bit_c Unexecuted instantiation: gamma.c:ff_log2_16bit_c Unexecuted instantiation: hscale.c:ff_log2_16bit_c Unexecuted instantiation: avformat.c:ff_log2_16bit_c Unexecuted instantiation: demux.c:ff_log2_16bit_c Unexecuted instantiation: demux_utils.c:ff_log2_16bit_c Unexecuted instantiation: id3v2.c:ff_log2_16bit_c Unexecuted instantiation: metadata.c:ff_log2_16bit_c Unexecuted instantiation: seek.c:ff_log2_16bit_c Unexecuted instantiation: allformats.c:ff_log2_16bit_c Unexecuted instantiation: avio.c:ff_log2_16bit_c Unexecuted instantiation: aviobuf.c:ff_log2_16bit_c Unexecuted instantiation: id3v1.c:ff_log2_16bit_c Unexecuted instantiation: network.c:ff_log2_16bit_c Unexecuted instantiation: os_support.c:ff_log2_16bit_c Unexecuted instantiation: allcodecs.c:ff_log2_16bit_c Unexecuted instantiation: avcodec.c:ff_log2_16bit_c Unexecuted instantiation: bitstream_filters.c:ff_log2_16bit_c Unexecuted instantiation: bsf.c:ff_log2_16bit_c Unexecuted instantiation: codec_desc.c:ff_log2_16bit_c Unexecuted instantiation: codec_par.c:ff_log2_16bit_c Unexecuted instantiation: decode.c:ff_log2_16bit_c Unexecuted instantiation: encode.c:ff_log2_16bit_c Unexecuted instantiation: exif.c:ff_log2_16bit_c Unexecuted instantiation: get_buffer.c:ff_log2_16bit_c Unexecuted instantiation: packet.c:ff_log2_16bit_c Unexecuted instantiation: parser.c:ff_log2_16bit_c Unexecuted instantiation: parsers.c:ff_log2_16bit_c Unexecuted instantiation: profiles.c:ff_log2_16bit_c Unexecuted instantiation: pthread_frame.c:ff_log2_16bit_c Unexecuted instantiation: pthread_slice.c:ff_log2_16bit_c Unexecuted instantiation: raw.c:ff_log2_16bit_c Unexecuted instantiation: threadprogress.c:ff_log2_16bit_c Unexecuted instantiation: tiff_common.c:ff_log2_16bit_c Unexecuted instantiation: to_upper4.c:ff_log2_16bit_c Unexecuted instantiation: buffer.c:ff_log2_16bit_c Unexecuted instantiation: channel_layout.c:ff_log2_16bit_c Unexecuted instantiation: container_fifo.c:ff_log2_16bit_c Unexecuted instantiation: cpu.c:ff_log2_16bit_c Unexecuted instantiation: eval.c:ff_log2_16bit_c Unexecuted instantiation: frame.c:ff_log2_16bit_c Unexecuted instantiation: hwcontext.c:ff_log2_16bit_c Unexecuted instantiation: iamf.c:ff_log2_16bit_c Unexecuted instantiation: imgutils.c:ff_log2_16bit_c Unexecuted instantiation: log.c:ff_log2_16bit_c Unexecuted instantiation: mastering_display_metadata.c:ff_log2_16bit_c Unexecuted instantiation: mathematics.c:ff_log2_16bit_c Unexecuted instantiation: opt.c:ff_log2_16bit_c Unexecuted instantiation: parseutils.c:ff_log2_16bit_c Unexecuted instantiation: pixdesc.c:ff_log2_16bit_c Unexecuted instantiation: random_seed.c:ff_log2_16bit_c Unexecuted instantiation: rational.c:ff_log2_16bit_c Unexecuted instantiation: side_data.c:ff_log2_16bit_c Unexecuted instantiation: timestamp.c:ff_log2_16bit_c Unexecuted instantiation: file_open.c:ff_log2_16bit_c |
82 | | #endif |
83 | | |
84 | 0 | #define av_log2 ff_log2 |
85 | | #define av_log2_16bit ff_log2_16bit |
86 | | |
87 | | /** |
88 | | * @addtogroup lavu_math |
89 | | * @{ |
90 | | */ |
91 | | |
92 | | #if HAVE_FAST_CLZ |
93 | | #if !defined(ff_ctz) && (AV_GCC_VERSION_AT_LEAST(3,4) || AV_HAS_BUILTIN(__builtin_ctz)) |
94 | | #define ff_ctz(v) __builtin_ctz(v) |
95 | | #endif |
96 | | #if !defined(ff_ctzll) && (AV_GCC_VERSION_AT_LEAST(3,4) || AV_HAS_BUILTIN(__builtin_ctzll)) |
97 | | #define ff_ctzll(v) __builtin_ctzll(v) |
98 | | #endif |
99 | | #if !defined(ff_clz) && (AV_GCC_VERSION_AT_LEAST(3,4) || AV_HAS_BUILTIN(__builtin_clz)) |
100 | | #define ff_clz(v) __builtin_clz(v) |
101 | | #endif |
102 | | #endif |
103 | | |
104 | | #ifndef ff_ctz |
105 | 0 | #define ff_ctz ff_ctz_c |
106 | | /** |
107 | | * Trailing zero bit count. |
108 | | * |
109 | | * @param v input value. If v is 0, the result is undefined. |
110 | | * @return the number of trailing 0-bits |
111 | | */ |
112 | | /* We use the De-Bruijn method outlined in: |
113 | | * http://supertech.csail.mit.edu/papers/debruijn.pdf. */ |
114 | | static av_always_inline av_const int ff_ctz_c(int v) |
115 | 0 | { |
116 | 0 | static const uint8_t debruijn_ctz32[32] = { |
117 | 0 | 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, |
118 | 0 | 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 |
119 | 0 | }; |
120 | 0 | return debruijn_ctz32[(uint32_t)((v & -(uint32_t)v) * 0x077CB531U) >> 27]; |
121 | 0 | } Unexecuted instantiation: avfiltergraph.c:ff_ctz_c Unexecuted instantiation: buffersink.c:ff_ctz_c Unexecuted instantiation: buffersrc.c:ff_ctz_c Unexecuted instantiation: formats.c:ff_ctz_c Unexecuted instantiation: framequeue.c:ff_ctz_c Unexecuted instantiation: graphparser.c:ff_ctz_c Unexecuted instantiation: pthread.c:ff_ctz_c Unexecuted instantiation: video.c:ff_ctz_c Unexecuted instantiation: allfilters.c:ff_ctz_c Unexecuted instantiation: avfilter.c:ff_ctz_c Unexecuted instantiation: framepool.c:ff_ctz_c Unexecuted instantiation: audio.c:ff_ctz_c Unexecuted instantiation: swscale.c:ff_ctz_c Unexecuted instantiation: utils.c:ff_ctz_c Unexecuted instantiation: vscale.c:ff_ctz_c Unexecuted instantiation: yuv2rgb.c:ff_ctz_c Unexecuted instantiation: alphablend.c:ff_ctz_c Unexecuted instantiation: format.c:ff_ctz_c Unexecuted instantiation: graph.c:ff_ctz_c Unexecuted instantiation: hscale_fast_bilinear.c:ff_ctz_c Unexecuted instantiation: input.c:ff_ctz_c Unexecuted instantiation: lut3d.c:ff_ctz_c Unexecuted instantiation: ops.c:ff_ctz_c Unexecuted instantiation: ops_backend.c:ff_ctz_c Unexecuted instantiation: ops_chain.c:ff_ctz_c Unexecuted instantiation: ops_dispatch.c:ff_ctz_c Unexecuted instantiation: ops_memcpy.c:ff_ctz_c Unexecuted instantiation: ops_optimizer.c:ff_ctz_c Unexecuted instantiation: options.c:ff_ctz_c Unexecuted instantiation: output.c:ff_ctz_c Unexecuted instantiation: rgb2rgb.c:ff_ctz_c Unexecuted instantiation: slice.c:ff_ctz_c Unexecuted instantiation: swscale_unscaled.c:ff_ctz_c Unexecuted instantiation: cms.c:ff_ctz_c Unexecuted instantiation: csputils.c:ff_ctz_c Unexecuted instantiation: gamma.c:ff_ctz_c Unexecuted instantiation: hscale.c:ff_ctz_c Unexecuted instantiation: avformat.c:ff_ctz_c Unexecuted instantiation: demux.c:ff_ctz_c Unexecuted instantiation: demux_utils.c:ff_ctz_c Unexecuted instantiation: id3v2.c:ff_ctz_c Unexecuted instantiation: metadata.c:ff_ctz_c Unexecuted instantiation: seek.c:ff_ctz_c Unexecuted instantiation: allformats.c:ff_ctz_c Unexecuted instantiation: avio.c:ff_ctz_c Unexecuted instantiation: aviobuf.c:ff_ctz_c Unexecuted instantiation: id3v1.c:ff_ctz_c Unexecuted instantiation: network.c:ff_ctz_c Unexecuted instantiation: os_support.c:ff_ctz_c Unexecuted instantiation: allcodecs.c:ff_ctz_c Unexecuted instantiation: avcodec.c:ff_ctz_c Unexecuted instantiation: bitstream_filters.c:ff_ctz_c Unexecuted instantiation: bsf.c:ff_ctz_c Unexecuted instantiation: codec_desc.c:ff_ctz_c Unexecuted instantiation: codec_par.c:ff_ctz_c Unexecuted instantiation: decode.c:ff_ctz_c Unexecuted instantiation: encode.c:ff_ctz_c Unexecuted instantiation: exif.c:ff_ctz_c Unexecuted instantiation: get_buffer.c:ff_ctz_c Unexecuted instantiation: packet.c:ff_ctz_c Unexecuted instantiation: parser.c:ff_ctz_c Unexecuted instantiation: parsers.c:ff_ctz_c Unexecuted instantiation: profiles.c:ff_ctz_c Unexecuted instantiation: pthread_frame.c:ff_ctz_c Unexecuted instantiation: pthread_slice.c:ff_ctz_c Unexecuted instantiation: raw.c:ff_ctz_c Unexecuted instantiation: threadprogress.c:ff_ctz_c Unexecuted instantiation: tiff_common.c:ff_ctz_c Unexecuted instantiation: to_upper4.c:ff_ctz_c Unexecuted instantiation: buffer.c:ff_ctz_c Unexecuted instantiation: channel_layout.c:ff_ctz_c Unexecuted instantiation: container_fifo.c:ff_ctz_c Unexecuted instantiation: cpu.c:ff_ctz_c Unexecuted instantiation: eval.c:ff_ctz_c Unexecuted instantiation: frame.c:ff_ctz_c Unexecuted instantiation: hwcontext.c:ff_ctz_c Unexecuted instantiation: iamf.c:ff_ctz_c Unexecuted instantiation: imgutils.c:ff_ctz_c Unexecuted instantiation: log.c:ff_ctz_c Unexecuted instantiation: mastering_display_metadata.c:ff_ctz_c Unexecuted instantiation: mathematics.c:ff_ctz_c Unexecuted instantiation: opt.c:ff_ctz_c Unexecuted instantiation: parseutils.c:ff_ctz_c Unexecuted instantiation: pixdesc.c:ff_ctz_c Unexecuted instantiation: random_seed.c:ff_ctz_c Unexecuted instantiation: rational.c:ff_ctz_c Unexecuted instantiation: side_data.c:ff_ctz_c Unexecuted instantiation: timestamp.c:ff_ctz_c Unexecuted instantiation: file_open.c:ff_ctz_c |
122 | | #endif |
123 | | |
124 | | #ifndef ff_ctzll |
125 | 0 | #define ff_ctzll ff_ctzll_c |
126 | | /* We use the De-Bruijn method outlined in: |
127 | | * http://supertech.csail.mit.edu/papers/debruijn.pdf. */ |
128 | | static av_always_inline av_const int ff_ctzll_c(long long v) |
129 | 0 | { |
130 | 0 | static const uint8_t debruijn_ctz64[64] = { |
131 | 0 | 0, 1, 2, 53, 3, 7, 54, 27, 4, 38, 41, 8, 34, 55, 48, 28, |
132 | 0 | 62, 5, 39, 46, 44, 42, 22, 9, 24, 35, 59, 56, 49, 18, 29, 11, |
133 | 0 | 63, 52, 6, 26, 37, 40, 33, 47, 61, 45, 43, 21, 23, 58, 17, 10, |
134 | 0 | 51, 25, 36, 32, 60, 20, 57, 16, 50, 31, 19, 15, 30, 14, 13, 12 |
135 | 0 | }; |
136 | 0 | return debruijn_ctz64[(uint64_t)((v & -(uint64_t)v) * 0x022FDD63CC95386DU) >> 58]; |
137 | 0 | } Unexecuted instantiation: avfiltergraph.c:ff_ctzll_c Unexecuted instantiation: buffersink.c:ff_ctzll_c Unexecuted instantiation: buffersrc.c:ff_ctzll_c Unexecuted instantiation: formats.c:ff_ctzll_c Unexecuted instantiation: framequeue.c:ff_ctzll_c Unexecuted instantiation: graphparser.c:ff_ctzll_c Unexecuted instantiation: pthread.c:ff_ctzll_c Unexecuted instantiation: video.c:ff_ctzll_c Unexecuted instantiation: allfilters.c:ff_ctzll_c Unexecuted instantiation: avfilter.c:ff_ctzll_c Unexecuted instantiation: framepool.c:ff_ctzll_c Unexecuted instantiation: audio.c:ff_ctzll_c Unexecuted instantiation: swscale.c:ff_ctzll_c Unexecuted instantiation: utils.c:ff_ctzll_c Unexecuted instantiation: vscale.c:ff_ctzll_c Unexecuted instantiation: yuv2rgb.c:ff_ctzll_c Unexecuted instantiation: alphablend.c:ff_ctzll_c Unexecuted instantiation: format.c:ff_ctzll_c Unexecuted instantiation: graph.c:ff_ctzll_c Unexecuted instantiation: hscale_fast_bilinear.c:ff_ctzll_c Unexecuted instantiation: input.c:ff_ctzll_c Unexecuted instantiation: lut3d.c:ff_ctzll_c Unexecuted instantiation: ops.c:ff_ctzll_c Unexecuted instantiation: ops_backend.c:ff_ctzll_c Unexecuted instantiation: ops_chain.c:ff_ctzll_c Unexecuted instantiation: ops_dispatch.c:ff_ctzll_c Unexecuted instantiation: ops_memcpy.c:ff_ctzll_c Unexecuted instantiation: ops_optimizer.c:ff_ctzll_c Unexecuted instantiation: options.c:ff_ctzll_c Unexecuted instantiation: output.c:ff_ctzll_c Unexecuted instantiation: rgb2rgb.c:ff_ctzll_c Unexecuted instantiation: slice.c:ff_ctzll_c Unexecuted instantiation: swscale_unscaled.c:ff_ctzll_c Unexecuted instantiation: cms.c:ff_ctzll_c Unexecuted instantiation: csputils.c:ff_ctzll_c Unexecuted instantiation: gamma.c:ff_ctzll_c Unexecuted instantiation: hscale.c:ff_ctzll_c Unexecuted instantiation: avformat.c:ff_ctzll_c Unexecuted instantiation: demux.c:ff_ctzll_c Unexecuted instantiation: demux_utils.c:ff_ctzll_c Unexecuted instantiation: id3v2.c:ff_ctzll_c Unexecuted instantiation: metadata.c:ff_ctzll_c Unexecuted instantiation: seek.c:ff_ctzll_c Unexecuted instantiation: allformats.c:ff_ctzll_c Unexecuted instantiation: avio.c:ff_ctzll_c Unexecuted instantiation: aviobuf.c:ff_ctzll_c Unexecuted instantiation: id3v1.c:ff_ctzll_c Unexecuted instantiation: network.c:ff_ctzll_c Unexecuted instantiation: os_support.c:ff_ctzll_c Unexecuted instantiation: allcodecs.c:ff_ctzll_c Unexecuted instantiation: avcodec.c:ff_ctzll_c Unexecuted instantiation: bitstream_filters.c:ff_ctzll_c Unexecuted instantiation: bsf.c:ff_ctzll_c Unexecuted instantiation: codec_desc.c:ff_ctzll_c Unexecuted instantiation: codec_par.c:ff_ctzll_c Unexecuted instantiation: decode.c:ff_ctzll_c Unexecuted instantiation: encode.c:ff_ctzll_c Unexecuted instantiation: exif.c:ff_ctzll_c Unexecuted instantiation: get_buffer.c:ff_ctzll_c Unexecuted instantiation: packet.c:ff_ctzll_c Unexecuted instantiation: parser.c:ff_ctzll_c Unexecuted instantiation: parsers.c:ff_ctzll_c Unexecuted instantiation: profiles.c:ff_ctzll_c Unexecuted instantiation: pthread_frame.c:ff_ctzll_c Unexecuted instantiation: pthread_slice.c:ff_ctzll_c Unexecuted instantiation: raw.c:ff_ctzll_c Unexecuted instantiation: threadprogress.c:ff_ctzll_c Unexecuted instantiation: tiff_common.c:ff_ctzll_c Unexecuted instantiation: to_upper4.c:ff_ctzll_c Unexecuted instantiation: buffer.c:ff_ctzll_c Unexecuted instantiation: channel_layout.c:ff_ctzll_c Unexecuted instantiation: container_fifo.c:ff_ctzll_c Unexecuted instantiation: cpu.c:ff_ctzll_c Unexecuted instantiation: eval.c:ff_ctzll_c Unexecuted instantiation: frame.c:ff_ctzll_c Unexecuted instantiation: hwcontext.c:ff_ctzll_c Unexecuted instantiation: iamf.c:ff_ctzll_c Unexecuted instantiation: imgutils.c:ff_ctzll_c Unexecuted instantiation: log.c:ff_ctzll_c Unexecuted instantiation: mastering_display_metadata.c:ff_ctzll_c Unexecuted instantiation: mathematics.c:ff_ctzll_c Unexecuted instantiation: opt.c:ff_ctzll_c Unexecuted instantiation: parseutils.c:ff_ctzll_c Unexecuted instantiation: pixdesc.c:ff_ctzll_c Unexecuted instantiation: random_seed.c:ff_ctzll_c Unexecuted instantiation: rational.c:ff_ctzll_c Unexecuted instantiation: side_data.c:ff_ctzll_c Unexecuted instantiation: timestamp.c:ff_ctzll_c Unexecuted instantiation: file_open.c:ff_ctzll_c |
138 | | #endif |
139 | | |
140 | | #ifndef ff_clz |
141 | | #define ff_clz ff_clz_c |
142 | | static av_always_inline av_const unsigned ff_clz_c(unsigned x) |
143 | 0 | { |
144 | 0 | unsigned i = sizeof(x) * 8; |
145 | 0 |
|
146 | 0 | while (x) { |
147 | 0 | x >>= 1; |
148 | 0 | i--; |
149 | 0 | } |
150 | 0 |
|
151 | 0 | return i; |
152 | 0 | } Unexecuted instantiation: avfiltergraph.c:ff_clz_c Unexecuted instantiation: buffersink.c:ff_clz_c Unexecuted instantiation: buffersrc.c:ff_clz_c Unexecuted instantiation: formats.c:ff_clz_c Unexecuted instantiation: framequeue.c:ff_clz_c Unexecuted instantiation: graphparser.c:ff_clz_c Unexecuted instantiation: pthread.c:ff_clz_c Unexecuted instantiation: video.c:ff_clz_c Unexecuted instantiation: allfilters.c:ff_clz_c Unexecuted instantiation: avfilter.c:ff_clz_c Unexecuted instantiation: framepool.c:ff_clz_c Unexecuted instantiation: audio.c:ff_clz_c Unexecuted instantiation: swscale.c:ff_clz_c Unexecuted instantiation: utils.c:ff_clz_c Unexecuted instantiation: vscale.c:ff_clz_c Unexecuted instantiation: yuv2rgb.c:ff_clz_c Unexecuted instantiation: alphablend.c:ff_clz_c Unexecuted instantiation: format.c:ff_clz_c Unexecuted instantiation: graph.c:ff_clz_c Unexecuted instantiation: hscale_fast_bilinear.c:ff_clz_c Unexecuted instantiation: input.c:ff_clz_c Unexecuted instantiation: lut3d.c:ff_clz_c Unexecuted instantiation: ops.c:ff_clz_c Unexecuted instantiation: ops_backend.c:ff_clz_c Unexecuted instantiation: ops_chain.c:ff_clz_c Unexecuted instantiation: ops_dispatch.c:ff_clz_c Unexecuted instantiation: ops_memcpy.c:ff_clz_c Unexecuted instantiation: ops_optimizer.c:ff_clz_c Unexecuted instantiation: options.c:ff_clz_c Unexecuted instantiation: output.c:ff_clz_c Unexecuted instantiation: rgb2rgb.c:ff_clz_c Unexecuted instantiation: slice.c:ff_clz_c Unexecuted instantiation: swscale_unscaled.c:ff_clz_c Unexecuted instantiation: cms.c:ff_clz_c Unexecuted instantiation: csputils.c:ff_clz_c Unexecuted instantiation: gamma.c:ff_clz_c Unexecuted instantiation: hscale.c:ff_clz_c Unexecuted instantiation: avformat.c:ff_clz_c Unexecuted instantiation: demux.c:ff_clz_c Unexecuted instantiation: demux_utils.c:ff_clz_c Unexecuted instantiation: id3v2.c:ff_clz_c Unexecuted instantiation: metadata.c:ff_clz_c Unexecuted instantiation: seek.c:ff_clz_c Unexecuted instantiation: allformats.c:ff_clz_c Unexecuted instantiation: avio.c:ff_clz_c Unexecuted instantiation: aviobuf.c:ff_clz_c Unexecuted instantiation: id3v1.c:ff_clz_c Unexecuted instantiation: network.c:ff_clz_c Unexecuted instantiation: os_support.c:ff_clz_c Unexecuted instantiation: allcodecs.c:ff_clz_c Unexecuted instantiation: avcodec.c:ff_clz_c Unexecuted instantiation: bitstream_filters.c:ff_clz_c Unexecuted instantiation: bsf.c:ff_clz_c Unexecuted instantiation: codec_desc.c:ff_clz_c Unexecuted instantiation: codec_par.c:ff_clz_c Unexecuted instantiation: decode.c:ff_clz_c Unexecuted instantiation: encode.c:ff_clz_c Unexecuted instantiation: exif.c:ff_clz_c Unexecuted instantiation: get_buffer.c:ff_clz_c Unexecuted instantiation: packet.c:ff_clz_c Unexecuted instantiation: parser.c:ff_clz_c Unexecuted instantiation: parsers.c:ff_clz_c Unexecuted instantiation: profiles.c:ff_clz_c Unexecuted instantiation: pthread_frame.c:ff_clz_c Unexecuted instantiation: pthread_slice.c:ff_clz_c Unexecuted instantiation: raw.c:ff_clz_c Unexecuted instantiation: threadprogress.c:ff_clz_c Unexecuted instantiation: tiff_common.c:ff_clz_c Unexecuted instantiation: to_upper4.c:ff_clz_c Unexecuted instantiation: buffer.c:ff_clz_c Unexecuted instantiation: channel_layout.c:ff_clz_c Unexecuted instantiation: container_fifo.c:ff_clz_c Unexecuted instantiation: cpu.c:ff_clz_c Unexecuted instantiation: eval.c:ff_clz_c Unexecuted instantiation: frame.c:ff_clz_c Unexecuted instantiation: hwcontext.c:ff_clz_c Unexecuted instantiation: iamf.c:ff_clz_c Unexecuted instantiation: imgutils.c:ff_clz_c Unexecuted instantiation: log.c:ff_clz_c Unexecuted instantiation: mastering_display_metadata.c:ff_clz_c Unexecuted instantiation: mathematics.c:ff_clz_c Unexecuted instantiation: opt.c:ff_clz_c Unexecuted instantiation: parseutils.c:ff_clz_c Unexecuted instantiation: pixdesc.c:ff_clz_c Unexecuted instantiation: random_seed.c:ff_clz_c Unexecuted instantiation: rational.c:ff_clz_c Unexecuted instantiation: side_data.c:ff_clz_c Unexecuted instantiation: timestamp.c:ff_clz_c Unexecuted instantiation: file_open.c:ff_clz_c |
153 | | #endif |
154 | | |
155 | | #if AV_GCC_VERSION_AT_LEAST(3,4) || AV_HAS_BUILTIN(__builtin_parity) |
156 | | #ifndef av_parity |
157 | | #define av_parity __builtin_parity |
158 | | #endif |
159 | | #endif |
160 | | |
161 | | /** |
162 | | * @} |
163 | | */ |
164 | | #endif /* AVUTIL_INTMATH_H */ |