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, | ||||