mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-17 12:30:11 +01:00
avfilter/af_astats: add support for s64(p) sample format
This commit is contained in:
@@ -73,6 +73,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
static const enum AVSampleFormat sample_fmts[] = {
|
static const enum AVSampleFormat sample_fmts[] = {
|
||||||
AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P,
|
AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P,
|
||||||
AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S32P,
|
AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S32P,
|
||||||
|
AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_S64P,
|
||||||
AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP,
|
AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP,
|
||||||
AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_DBLP,
|
AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_DBLP,
|
||||||
AV_SAMPLE_FMT_NONE
|
AV_SAMPLE_FMT_NONE
|
||||||
@@ -351,6 +352,23 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
|
|||||||
update_stat(s, &s->chstats[c], *src, *src / (double)INT16_MAX, llrint(*src * (UINT64_C(1) << 63)));
|
update_stat(s, &s->chstats[c], *src, *src / (double)INT16_MAX, llrint(*src * (UINT64_C(1) << 63)));
|
||||||
}}
|
}}
|
||||||
break;
|
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:
|
case AV_SAMPLE_FMT_S32P:
|
||||||
for (c = 0; c < channels; c++) {
|
for (c = 0; c < channels; c++) {
|
||||||
ChannelStats *p = &s->chstats[c];
|
ChannelStats *p = &s->chstats[c];
|
||||||
|
|||||||
Reference in New Issue
Block a user