Commit 5cc4b79b authored by Marton Balint's avatar Marton Balint

avfilter/af_astats: rework sample loops

The channel loop is now the outer loop for both planar and interleaved. This is
needed by the next patch, and the speed difference is negligable if any.
Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
parent 235228ea
......@@ -410,17 +410,18 @@ static void set_metadata(AudioStatsContext *s, AVDictionary **metadata)
for (int c = 0; c < channels; c++) { \
ChannelStats *p = &s->chstats[c]; \
const type *src = (const type *)data[c]; \
for (int i = 0; i < samples; i++, src++) \
const type * const srcend = src + samples; \
for (; src < srcend; src++) \
update_stat(s, p, double_sample, normalized_sample, int_sample); \
}
#define UPDATE_STATS_I(type, double_sample, normalized_sample, int_sample) \
{ \
const type *src = (const type *)data[0]; \
for (int i = 0; i < samples; i++) { \
for (int c = 0; c < channels; c++, src++) \
update_stat(s, &s->chstats[c], double_sample, normalized_sample, int_sample); \
} \
#define UPDATE_STATS_I(type, double_sample, normalized_sample, int_sample) \
for (int c = 0; c < channels; c++) { \
ChannelStats *p = &s->chstats[c]; \
const type *src = (const type *)data[0]; \
const type * const srcend = src + samples * channels; \
for (src += c; src < srcend; src += channels) \
update_stat(s, p, double_sample, normalized_sample, int_sample); \
}
#define UPDATE_STATS(planar, type, sample, normalizer_suffix, int_sample) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment