diff options
Diffstat (limited to 'libavfilter/af_ashowinfo.c')
-rw-r--r-- | libavfilter/af_ashowinfo.c | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/libavfilter/af_ashowinfo.c b/libavfilter/af_ashowinfo.c index c8e830e..7e7543f 100644 --- a/libavfilter/af_ashowinfo.c +++ b/libavfilter/af_ashowinfo.c @@ -1,20 +1,20 @@ /* * Copyright (c) 2011 Stefano Sabatini * - * This file is part of Libav. + * This file is part of FFmpeg. * - * Libav is free software; you can redistribute it and/or + * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * - * Libav is distributed in the hope that it will be useful, + * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with Libav; if not, write to the Free Software + * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -30,6 +30,7 @@ #include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/mem.h" +#include "libavutil/timestamp.h" #include "libavutil/samplefmt.h" #include "audio.h" @@ -48,17 +49,6 @@ typedef struct AShowInfoContext { uint64_t frame; } AShowInfoContext; -static int config_input(AVFilterLink *inlink) -{ - AShowInfoContext *s = inlink->dst->priv; - int channels = av_get_channel_layout_nb_channels(inlink->channel_layout); - s->plane_checksums = av_malloc(channels * sizeof(*s->plane_checksums)); - if (!s->plane_checksums) - return AVERROR(ENOMEM); - - return 0; -} - static void uninit(AVFilterContext *ctx) { AShowInfoContext *s = ctx->priv; @@ -77,6 +67,11 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *buf) int data_size = buf->audio->nb_samples * block_align; int planes = planar ? channels : 1; int i; + void *tmp_ptr = av_realloc(s->plane_checksums, channels * sizeof(*s->plane_checksums)); + + if (!tmp_ptr) + return AVERROR(ENOMEM); + s->plane_checksums = tmp_ptr; for (i = 0; i < planes; i++) { uint8_t *data = buf->extended_data[i]; @@ -90,11 +85,13 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *buf) buf->audio->channel_layout); av_log(ctx, AV_LOG_INFO, - "n:%"PRIu64" pts:%"PRId64" pts_time:%f " - "fmt:%s chlayout:%s rate:%d nb_samples:%d " + "n:%"PRIu64" pts:%s pts_time:%s pos:%"PRId64" " + "fmt:%s channels:%d chlayout:%s rate:%d nb_samples:%d " "checksum:%08X ", - s->frame, buf->pts, buf->pts * av_q2d(inlink->time_base), - av_get_sample_fmt_name(buf->format), chlayout_str, + s->frame, + av_ts2str(buf->pts), av_ts2timestr(buf->pts, &inlink->time_base), + buf->pos, + av_get_sample_fmt_name(buf->format), buf->audio->channels, chlayout_str, buf->audio->sample_rate, buf->audio->nb_samples, checksum); @@ -112,7 +109,6 @@ static const AVFilterPad inputs[] = { .name = "default", .type = AVMEDIA_TYPE_AUDIO, .get_audio_buffer = ff_null_get_audio_buffer, - .config_props = config_input, .filter_frame = filter_frame, .min_perms = AV_PERM_READ, }, |