These are not supported by all compilers (gcc 2.95 but also older SPARC compilers, see gcc bug #33304 for example), and there is no real need for them. One use of this feature remains in libavdevice/v4l2.c which can't be replaced quite as easily. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>tags/n2.2-rc1
| @@ -60,7 +60,7 @@ static void arith_normalise(ArithCoder *c) | |||||
| } | } | ||||
| } | } | ||||
| ARITH_GET_BIT() | |||||
| ARITH_GET_BIT(arith) | |||||
| static int arith_get_bits(ArithCoder *c, int bits) | static int arith_get_bits(ArithCoder *c, int bits) | ||||
| { | { | ||||
| @@ -105,7 +105,7 @@ static int arith_get_prob(ArithCoder *c, int16_t *probs) | |||||
| return sym; | return sym; | ||||
| } | } | ||||
| ARITH_GET_MODEL_SYM() | |||||
| ARITH_GET_MODEL_SYM(arith) | |||||
| static void arith_init(ArithCoder *c, GetBitContext *gb) | static void arith_init(ArithCoder *c, GetBitContext *gb) | ||||
| { | { | ||||
| @@ -99,8 +99,8 @@ int ff_mss12_decode_init(MSS12Context *c, int version, | |||||
| SliceContext *sc1, SliceContext *sc2); | SliceContext *sc1, SliceContext *sc2); | ||||
| int ff_mss12_decode_end(MSS12Context *ctx); | int ff_mss12_decode_end(MSS12Context *ctx); | ||||
| #define ARITH_GET_BIT(VERSION) \ | |||||
| static int arith ## VERSION ## _get_bit(ArithCoder *c) \ | |||||
| #define ARITH_GET_BIT(prefix) \ | |||||
| static int prefix ## _get_bit(ArithCoder *c) \ | |||||
| { \ | { \ | ||||
| int range = c->high - c->low + 1; \ | int range = c->high - c->low + 1; \ | ||||
| int bit = 2 * c->value - c->low >= c->high; \ | int bit = 2 * c->value - c->low >= c->high; \ | ||||
| @@ -110,22 +110,22 @@ static int arith ## VERSION ## _get_bit(ArithCoder *c) \ | |||||
| else \ | else \ | ||||
| c->high = c->low + (range >> 1) - 1; \ | c->high = c->low + (range >> 1) - 1; \ | ||||
| \ | \ | ||||
| arith ## VERSION ## _normalise(c); \ | |||||
| prefix ## _normalise(c); \ | |||||
| \ | \ | ||||
| return bit; \ | return bit; \ | ||||
| } | } | ||||
| #define ARITH_GET_MODEL_SYM(VERSION) \ | |||||
| static int arith ## VERSION ## _get_model_sym(ArithCoder *c, Model *m) \ | |||||
| #define ARITH_GET_MODEL_SYM(prefix) \ | |||||
| static int prefix ## _get_model_sym(ArithCoder *c, Model *m) \ | |||||
| { \ | { \ | ||||
| int idx, val; \ | int idx, val; \ | ||||
| \ | \ | ||||
| idx = arith ## VERSION ## _get_prob(c, m->cum_prob); \ | |||||
| idx = prefix ## _get_prob(c, m->cum_prob); \ | |||||
| \ | \ | ||||
| val = m->idx2sym[idx]; \ | val = m->idx2sym[idx]; \ | ||||
| ff_mss12_model_update(m, idx); \ | ff_mss12_model_update(m, idx); \ | ||||
| \ | \ | ||||
| arith ## VERSION ## _normalise(c); \ | |||||
| prefix ## _normalise(c); \ | |||||
| \ | \ | ||||
| return val; \ | return val; \ | ||||
| } | } | ||||
| @@ -54,7 +54,7 @@ static void arith2_normalise(ArithCoder *c) | |||||
| } | } | ||||
| } | } | ||||
| ARITH_GET_BIT(2) | |||||
| ARITH_GET_BIT(arith2) | |||||
| /* L. Stuiver and A. Moffat: "Piecewise Integer Mapping for Arithmetic Coding." | /* L. Stuiver and A. Moffat: "Piecewise Integer Mapping for Arithmetic Coding." | ||||
| * In Proc. 8th Data Compression Conference (DCC '98), pp. 3-12, Mar. 1998 */ | * In Proc. 8th Data Compression Conference (DCC '98), pp. 3-12, Mar. 1998 */ | ||||
| @@ -127,7 +127,7 @@ static int arith2_get_prob(ArithCoder *c, int16_t *probs) | |||||
| return i; | return i; | ||||
| } | } | ||||
| ARITH_GET_MODEL_SYM(2) | |||||
| ARITH_GET_MODEL_SYM(arith2) | |||||
| static int arith2_get_consumed_bytes(ArithCoder *c) | static int arith2_get_consumed_bytes(ArithCoder *c) | ||||
| { | { | ||||
| @@ -21,14 +21,14 @@ | |||||
| #include "libswresample/swresample_internal.h" | #include "libswresample/swresample_internal.h" | ||||
| #include "libswresample/audioconvert.h" | #include "libswresample/audioconvert.h" | ||||
| #define PROTO(pre, in, out, cap) void ff ## pre ## _ ##in## _to_ ##out## _a_ ##cap(uint8_t **dst, const uint8_t **src, int len); | |||||
| #define PROTO(pre, in, out, cap) void ff ## pre ## in## _to_ ##out## _a_ ##cap(uint8_t **dst, const uint8_t **src, int len); | |||||
| #define PROTO2(pre, out, cap) PROTO(pre, int16, out, cap) PROTO(pre, int32, out, cap) PROTO(pre, float, out, cap) | #define PROTO2(pre, out, cap) PROTO(pre, int16, out, cap) PROTO(pre, int32, out, cap) PROTO(pre, float, out, cap) | ||||
| #define PROTO3(pre, cap) PROTO2(pre, int16, cap) PROTO2(pre, int32, cap) PROTO2(pre, float, cap) | #define PROTO3(pre, cap) PROTO2(pre, int16, cap) PROTO2(pre, int32, cap) PROTO2(pre, float, cap) | ||||
| #define PROTO4(pre) PROTO3(pre, mmx) PROTO3(pre, sse) PROTO3(pre, sse2) PROTO3(pre, ssse3) PROTO3(pre, sse4) PROTO3(pre, avx) | #define PROTO4(pre) PROTO3(pre, mmx) PROTO3(pre, sse) PROTO3(pre, sse2) PROTO3(pre, ssse3) PROTO3(pre, sse4) PROTO3(pre, avx) | ||||
| PROTO4() | |||||
| PROTO4(_pack_2ch) | |||||
| PROTO4(_pack_6ch) | |||||
| PROTO4(_unpack_2ch) | |||||
| PROTO4(_) | |||||
| PROTO4(_pack_2ch_) | |||||
| PROTO4(_pack_6ch_) | |||||
| PROTO4(_unpack_2ch_) | |||||
| av_cold void swri_audio_convert_init_x86(struct AudioConvert *ac, | av_cold void swri_audio_convert_init_x86(struct AudioConvert *ac, | ||||
| enum AVSampleFormat out_fmt, | enum AVSampleFormat out_fmt, | ||||