From patchwork Sun Apr 9 14:08:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: FFmpeg Technical Committee X-Patchwork-Id: 41052 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4645:b0:e3:3194:9d20 with SMTP id eb5csp1591260pzb; Sun, 9 Apr 2023 07:10:29 -0700 (PDT) X-Google-Smtp-Source: AKy350ZTNw6UnBx1kzzqllHZYggGZAc3120nttL/kY6p0Z/dGt3tcq/eTVTdSFDj9jOnI/vj3EYe X-Received: by 2002:a05:6402:c5:b0:504:923f:e657 with SMTP id i5-20020a05640200c500b00504923fe657mr3698700edu.35.1681049429016; Sun, 09 Apr 2023 07:10:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681049429; cv=none; d=google.com; s=arc-20160816; b=THSMmnIrRrVDV3LoCCMXuYRhj121nwe2nQKVqrtYtjUniiM/COgg5C6xRZcxGht5x8 CLRJRWPHRp0fxlEzGn3o7eHsG+0zWrqDc4W6MkqNfh4wC0Uusuo14PsH/sr2USq/W96j OlCSDXshPukfGSjS5pX12NQ0CkPXWfp3U6wpMGt3+/hvgqwUyKGSdS4XKG/osswQ/uoj SQzJbpyl/1GTn1Bb7MA3OIqQtN9Nu8oOrHQq4exNGsm58BlyoczBFFn64z6MNRfrFWzN VgIDXjETF0grhzP5SaS/Q4Ys+Qy9UebAenMXW4qKsbGaDhg24iXcv1qQWeLq05r3m3LH FpPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:delivered-to; bh=Cy2JLxEfOS49Zii6gdOpi7HujJTSmHpOA2N/+243K7w=; b=I7VapQMJFAoL8c47r4pbQL5IRE8b6MI6tCyQiezHKIndu3Cbuw0ARuOOI8MTKneZwa NgJNLfAzC9rGJxuw63WpOAE5pf3shvdc+hnprF0jsInOOiwtCJZNkVI9auISy8WZsiBS ogp6qNLS7t7ps/X+YsejqOo+nhGYWH3Y3PLatbf8bdcBBtXq5qG5KGJ2RuPW5HhWjhFj Z95YDMaocYEhbTs0A2/XLtGeRHcwa1PctSr30cXBla/bFAIKH1eKAHmFJ85nzkwSKIad J7PTKmSuc/rLPPjmH9CLi5CN7V8YjhTB3A6uQo9v5PFylE08ZFg7aq/ccviGWHbeQOIC CuAg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h15-20020aa7c94f000000b0050477df9110si5567870edt.665.2023.04.09.07.10.27; Sun, 09 Apr 2023 07:10:28 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D31B068BD67; Sun, 9 Apr 2023 17:09:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3CB7068BBDD for ; Sun, 9 Apr 2023 17:09:18 +0300 (EEST) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id 780BF240706 for ; Sun, 9 Apr 2023 16:09:16 +0200 (CEST) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id fcrxwVZsBGOf for ; Sun, 9 Apr 2023 16:09:15 +0200 (CEST) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 7D98E240705 for ; Sun, 9 Apr 2023 16:09:10 +0200 (CEST) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 6E6AA3A03E5 for ; Sun, 9 Apr 2023 16:09:10 +0200 (CEST) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Sun, 9 Apr 2023 16:08:40 +0200 Message-Id: <20230409140853.28858-16-anton@khirnov.net> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230409140853.28858-1-anton@khirnov.net> References: <20230409140853.28858-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 16/29] fftools/ffmpeg: move printing verbose demuxing stats to ffmpeg_demux X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: aCK2DqldhEBN This is a more appropriate place for this. --- fftools/ffmpeg.c | 43 ------------------------------------------ fftools/ffmpeg_demux.c | 38 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 43 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 0a2dc85629..02a7f20554 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -738,46 +738,6 @@ static int reap_filters(int flush) return 0; } -static void print_final_stats(void) -{ - int i, j; - - /* print verbose per-stream stats */ - for (i = 0; i < nb_input_files; i++) { - InputFile *f = input_files[i]; - uint64_t total_packets = 0, total_size = 0; - - av_log(NULL, AV_LOG_VERBOSE, "Input file #%d (%s):\n", - i, f->ctx->url); - - for (j = 0; j < f->nb_streams; j++) { - InputStream *ist = f->streams[j]; - enum AVMediaType type = ist->par->codec_type; - - total_size += ist->data_size; - total_packets += ist->nb_packets; - - av_log(NULL, AV_LOG_VERBOSE, " Input stream #%d:%d (%s): ", - i, j, av_get_media_type_string(type)); - av_log(NULL, AV_LOG_VERBOSE, "%"PRIu64" packets read (%"PRIu64" bytes); ", - ist->nb_packets, ist->data_size); - - if (ist->decoding_needed) { - av_log(NULL, AV_LOG_VERBOSE, "%"PRIu64" frames decoded", - ist->frames_decoded); - if (type == AVMEDIA_TYPE_AUDIO) - av_log(NULL, AV_LOG_VERBOSE, " (%"PRIu64" samples)", ist->samples_decoded); - av_log(NULL, AV_LOG_VERBOSE, "; "); - } - - av_log(NULL, AV_LOG_VERBOSE, "\n"); - } - - av_log(NULL, AV_LOG_VERBOSE, " Total: %"PRIu64" packets (%"PRIu64" bytes) demuxed\n", - total_packets, total_size); - } -} - static void print_report(int is_last_report, int64_t timer_start, int64_t cur_time) { AVBPrint buf, buf_script; @@ -970,9 +930,6 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti } first_report = 0; - - if (is_last_report) - print_final_stats(); } int ifilter_parameters_from_codecpar(InputFilter *ifilter, AVCodecParameters *par) diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c index 354d3165c9..8fafbc3354 100644 --- a/fftools/ffmpeg_demux.c +++ b/fftools/ffmpeg_demux.c @@ -480,6 +480,41 @@ int ifile_get_packet(InputFile *f, AVPacket **pkt) return 0; } +static void demux_final_stats(Demuxer *d) +{ + InputFile *f = &d->f; + uint64_t total_packets = 0, total_size = 0; + + av_log(NULL, AV_LOG_VERBOSE, "Input file #%d (%s):\n", + f->index, f->ctx->url); + + for (int j = 0; j < f->nb_streams; j++) { + InputStream *ist = f->streams[j]; + enum AVMediaType type = ist->par->codec_type; + + total_size += ist->data_size; + total_packets += ist->nb_packets; + + av_log(NULL, AV_LOG_VERBOSE, " Input stream #%d:%d (%s): ", + f->index, j, av_get_media_type_string(type)); + av_log(NULL, AV_LOG_VERBOSE, "%"PRIu64" packets read (%"PRIu64" bytes); ", + ist->nb_packets, ist->data_size); + + if (ist->decoding_needed) { + av_log(NULL, AV_LOG_VERBOSE, "%"PRIu64" frames decoded", + ist->frames_decoded); + if (type == AVMEDIA_TYPE_AUDIO) + av_log(NULL, AV_LOG_VERBOSE, " (%"PRIu64" samples)", ist->samples_decoded); + av_log(NULL, AV_LOG_VERBOSE, "; "); + } + + av_log(NULL, AV_LOG_VERBOSE, "\n"); + } + + av_log(NULL, AV_LOG_VERBOSE, " Total: %"PRIu64" packets (%"PRIu64" bytes) demuxed\n", + total_packets, total_size); +} + static void ist_free(InputStream **pist) { InputStream *ist = *pist; @@ -512,6 +547,9 @@ void ifile_close(InputFile **pf) thread_stop(d); + if (f->ctx) + demux_final_stats(d); + for (int i = 0; i < f->nb_streams; i++) ist_free(&f->streams[i]); av_freep(&f->streams);