+ case AV_SAMPLE_FMT_FLT: {
+ const float *src = (const float *)buf->extended_data[0];
+
+ for (i = 0; i < buf->nb_samples; i++) {
+ for (c = 0; c < channels; c++, src++)
+ update_stat(s, &s->chstats[c], *src, *src, llrint(*src * (UINT64_C(1) << 31)));
+ }}
+ break;
+ case AV_SAMPLE_FMT_S64P:
+ for (c = 0; c < channels; c++) {
+ ChannelStats *p = &s->chstats[c];
+ const int64_t *src = (const int64_t *)buf->extended_data[c];
+
+ for (i = 0; i < buf->nb_samples; i++, src++)
+ update_stat(s, p, *src, *src / (double)INT64_MAX, *src);
+ }
+ break;
+ case AV_SAMPLE_FMT_S64: {
+ const int64_t *src = (const int64_t *)buf->extended_data[0];
+
+ for (i = 0; i < buf->nb_samples; i++) {
+ for (c = 0; c < channels; c++, src++)
+ update_stat(s, &s->chstats[c], *src, *src / (double)INT64_MAX, *src);
+ }}
+ break;
+ case AV_SAMPLE_FMT_S32P:
+ for (c = 0; c < channels; c++) {
+ ChannelStats *p = &s->chstats[c];
+ const int32_t *src = (const int32_t *)buf->extended_data[c];
+
+ for (i = 0; i < buf->nb_samples; i++, src++)
+ update_stat(s, p, *src, *src / (double)INT32_MAX, *src);
+ }
+ break;
+ case AV_SAMPLE_FMT_S32: {
+ const int32_t *src = (const int32_t *)buf->extended_data[0];
+
+ for (i = 0; i < buf->nb_samples; i++) {
+ for (c = 0; c < channels; c++, src++)
+ update_stat(s, &s->chstats[c], *src, *src / (double)INT32_MAX, *src);
+ }}
+ break;
+ case AV_SAMPLE_FMT_S16P:
+ for (c = 0; c < channels; c++) {
+ ChannelStats *p = &s->chstats[c];
+ const int16_t *src = (const int16_t *)buf->extended_data[c];
+
+ for (i = 0; i < buf->nb_samples; i++, src++)
+ update_stat(s, p, *src, *src / (double)INT16_MAX, *src);
+ }
+ break;
+ case AV_SAMPLE_FMT_S16: {
+ const int16_t *src = (const int16_t *)buf->extended_data[0];
+
+ for (i = 0; i < buf->nb_samples; i++) {
+ for (c = 0; c < channels; c++, src++)
+ update_stat(s, &s->chstats[c], *src, *src / (double)INT16_MAX, *src);
+ }}
+ break;