From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 2923F48ABC for ; Tue, 30 Jan 2024 12:39:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DF05668D33C; Tue, 30 Jan 2024 14:39:05 +0200 (EET) Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C448E68D060 for ; Tue, 30 Jan 2024 14:38:58 +0200 (EET) Received: by mail-oi1-f180.google.com with SMTP id 5614622812f47-3bbb4806f67so2918905b6e.3 for ; Tue, 30 Jan 2024 04:38:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706618336; x=1707223136; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=3Ew8fZt2OnSZK+Y/7SYQYVSfiAS+oqLnpFSdKX3KOZM=; b=XcI1UKs1E8HPImoFV/GKNCtVn6kqFuVR+y7TvvDD58dE8i4Jez+MVShZpPiM+BBRjv p/yRdpzBsY2SgE0XgV+fr2cmWxCbVwq4JcS/aYc3zY4fGUAouWCFFrXQQx5BZm/52J+3 xolzhVJZakx96++JAfP0T4sJj7ktZjX9tHLmv+7SgmO1k6TSabhUv9IwRTCXavo88ffX UO82DWuEvYqXbEgGBHvDlbWuuX3Pfu+pOfKEzJHAsoOM/LXh9KKYGPJvEMLCK5oww8eq zyXApU9+ZiA3DC9FXcIvBe/8w5leGZy57y5InwpqKmLD41KoG2JNS2+bZdiw8RVHZrrm BOXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706618336; x=1707223136; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3Ew8fZt2OnSZK+Y/7SYQYVSfiAS+oqLnpFSdKX3KOZM=; b=llfoEB1wznVVqJVQAFAEbhgCx1Z+iSyNvQShstBAQ8fWI6+DRwLg6+n0IrKGJqWKCU UF/wh2T1gljdxEE338GBo9sSgbuQHBVXB72xTdSIAjXonvYXa5TfZEZqxpCzdR8Uo88U vhM/4yvQBpdnNrTz7PmviHB+Smb/EuZaZPfOEIgofFKHYXCIasKyfJnVvTx7yd4VFIn7 Bymm5oBkbrT8wCXKXGushfz+KrjY3n2Cs6V729Wluy+gJdrjYdUtLtDL4FIJK6GZ2tHT 57YOS1barBxvgCJW/UuZWV1NHAmEghZx7FZoMr8t4UwolNtSk0uxiJnlcRZsCbVutqEU 98Lw== X-Gm-Message-State: AOJu0YzMXv76lf502M3yWBiaoHrMLdg56RmTiGFesVBwdBvUku8BHGnq gVxw85Wlxwhiyh5F3RhhOPwiD9LJTIGZmUf7L07ekgsE4CvagNztDBPkvEX1 X-Google-Smtp-Source: AGHT+IFiBqE2dwpW+ylbUVMKCl+P+slKahC53oXs60vKt0yfC6++//SQCX+exYxCDzd/u9reAiic1g== X-Received: by 2002:a05:6808:190c:b0:3be:1f50:1c7 with SMTP id bf12-20020a056808190c00b003be1f5001c7mr8317088oib.17.1706618336239; Tue, 30 Jan 2024 04:38:56 -0800 (PST) Received: from [192.168.0.18] (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id gx20-20020a056a001e1400b006dba11edc7csm7588686pfb.218.2024.01.30.04.38.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 30 Jan 2024 04:38:55 -0800 (PST) Message-ID: Date: Tue, 30 Jan 2024 09:39:19 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240129184215.16685-1-anton@khirnov.net> From: James Almer Autocrypt: addr=jamrial@gmail.com; keydata= xsBNBFjZtqABCADLW+vdEoZaJZDsIO6geYFTOcn1unsEHefj9zn+3oTHlDFFzO47mzHsSfbK 9JE2xpOJEVnC8FAF5Sayi/pVwV+mtQUV3n5dgVeVBYF9GUQwOGFCpK8X54RRqhkgknbunOEE 0CtgAJgmpFmmmHgq02GvEspx1h/rh4apqwQR6QX4Favb+x9+i9ytVpwVcBX94vo2toyP7h/K BWfadQmb8ltgE1kshfg+SQs/H5bTV5Z1DuEASf02ZL/1qYB/sdTgWPLv9XMUHHsRFmMY8TMx wJSkP+Af3AiYQPJYz1B1D4tt98T/NoiVdin10zATakPjV8hXaobuRmxgakkUASXudydDABEB AAHNH0phbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT7CwJIEEwEIADwCGwMGCwkIBwMC BhUIAgkKCwQWAgMBAh4BAheAFiEEd1EujP2UoWlX5pp6FGMBrXN2WeAFAmJoLUUCGQEACgkQ FGMBrXN2WeAFVQf9GtGhniRs1PzNUOgJktCnv6j4BbLieaIPYPEFXKDHOgjqQE2zVMYXnoXl Jam928ii902a8OY06r9ywn/R8ApD1/3NY/v64O71CY9scz5XyH2au8wIZ6HwFy3/f7sqjdGD uctY8Qs7rjT7NkoC5lmgMu2v2k03dGtM9AAf5AK5gU+H0EUw7vmKKiXzUqt5kvBuf4CEwXvH AQT1SMJ52rIlDWB7FQFyZeUbOAK2IgY/KNedfK6nsgd/eQVnlofPd2XoddE7kP6iys7jJefw DD3g3rZyDTq7in5dyk5glaNpWZpbHGBs+9SCYLnfQ8XvWqPFOD+gj0plamKANgOvavKTxM7A TQRY2bagAQgA69YtILj8kYxmqPr/M8+MXT7wVoOWVW9lvSmPquCELaDy/NIS7D06VC5EuE/6 JlJXZMTn37NLlyWhzwOgXuXw5w2tyoQQBuvqGiXJijuXwXH7HKdzrc6rpYtAqt5w05hzNrFS KrS0izG64VpWrfproy3BsL+8TBm9brLhhNPynVRqVukbbGzlATTzNQGZ14TTi2/dL6DkMQnM qn4jX9UEe4GdGQBP50bUJSSmeiIkyNLWA+znuN2PZEz930ZwNrF9GtDVw7mzcmpCZ7spldE2 tutbpy9D1bIqxyqBrYDSezyzL2adR1qgHyOTMCHg2AYNkrIQHrSyJxKTpZ1/hqOp8wARAQAB wsBfBBgBAgAJBQJY2bagAhsMAAoJEBRjAa1zdlnghekH/0Yb0iYJ74oID2f/Fj+AJKS2ekQF P2xOr8lpGzgp/+yWUvPtqbX0A33anBJdYwxaAC0NataX3tfZ+oJkzXqfmqhIHMPYHdZesJA2 Bk9hU/33mDl5s5U66/z0uelWzwKVHoQ2O6or4+qF3HJFSJLCe9uvWJ3zXf9F342Ftj73sfx+ 3xkw/IXsN1RqbYqDlzpoEQ99SIEfY/8Jjwnd3sIPfqkuyeaYfe6GJDqKawdCEP1oRRlbXEAp TJgYz8r3nPhGv9cdHNDCk44ISbsqVuxIEnLqi4fTPZaGupiQhT+srl268TTAp2TQW7+6Ce/b NPQorMquzS/LZoyALpmsYi/miMc= In-Reply-To: <20240129184215.16685-1-anton@khirnov.net> Subject: Re: [FFmpeg-devel] [PATCH] lavc/bsf: add a showinfo filter 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 1/29/2024 3:42 PM, Anton Khirnov wrote: > Analogous to the (a)showinfo lavfi filters, logs basic packet > information. Mainly useful for debugging/testing/development. > --- > Changelog | 1 + > doc/bitstream_filters.texi | 4 +++ > libavcodec/bitstream_filters.c | 1 + > libavcodec/bsf/Makefile | 1 + > libavcodec/bsf/showinfo.c | 66 ++++++++++++++++++++++++++++++++++ > 5 files changed, 73 insertions(+) > create mode 100644 libavcodec/bsf/showinfo.c > > diff --git a/Changelog b/Changelog > index c1fd66b4bd..c5fb21d198 100644 > --- a/Changelog > +++ b/Changelog > @@ -23,6 +23,7 @@ version : > - ffmpeg CLI -bsf option may now be used for input as well as output > - ffmpeg CLI options may now be used as -/opt , which is equivalent > to -opt > > +- showinfo bitstream filter > > version 6.1: > - libaribcaption decoder > diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi > index dc4f85bac0..d5bac105ff 100644 > --- a/doc/bitstream_filters.texi > +++ b/doc/bitstream_filters.texi > @@ -887,6 +887,10 @@ For example, to set PTS equal to DTS (not recommended if B-frames are involved): > ffmpeg -i INPUT -c:a copy -bsf:a setts=pts=DTS out.mkv > @end example > > +@section showinfo > +Log basic packet information. Mainly useful for testing, debugging, > +and development. > + > @anchor{text2movsub} > @section text2movsub > > diff --git a/libavcodec/bitstream_filters.c b/libavcodec/bitstream_filters.c > index 1e9a676a3d..1bae113d92 100644 > --- a/libavcodec/bitstream_filters.c > +++ b/libavcodec/bitstream_filters.c > @@ -58,6 +58,7 @@ extern const FFBitStreamFilter ff_pgs_frame_merge_bsf; > extern const FFBitStreamFilter ff_prores_metadata_bsf; > extern const FFBitStreamFilter ff_remove_extradata_bsf; > extern const FFBitStreamFilter ff_setts_bsf; > +extern const FFBitStreamFilter ff_showinfo_bsf; > extern const FFBitStreamFilter ff_text2movsub_bsf; > extern const FFBitStreamFilter ff_trace_headers_bsf; > extern const FFBitStreamFilter ff_truehd_core_bsf; > diff --git a/libavcodec/bsf/Makefile b/libavcodec/bsf/Makefile > index 7831b0f2aa..62609eb24e 100644 > --- a/libavcodec/bsf/Makefile > +++ b/libavcodec/bsf/Makefile > @@ -36,6 +36,7 @@ OBJS-$(CONFIG_PGS_FRAME_MERGE_BSF) += bsf/pgs_frame_merge.o > OBJS-$(CONFIG_PRORES_METADATA_BSF) += bsf/prores_metadata.o > OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF) += bsf/remove_extradata.o > OBJS-$(CONFIG_SETTS_BSF) += bsf/setts.o > +OBJS-$(CONFIG_SHOWINFO_BSF) += bsf/showinfo.o > OBJS-$(CONFIG_TEXT2MOVSUB_BSF) += bsf/movsub.o > OBJS-$(CONFIG_TRACE_HEADERS_BSF) += bsf/trace_headers.o > OBJS-$(CONFIG_TRUEHD_CORE_BSF) += bsf/truehd_core.o > diff --git a/libavcodec/bsf/showinfo.c b/libavcodec/bsf/showinfo.c > new file mode 100644 > index 0000000000..dc1ac8ceb6 > --- /dev/null > +++ b/libavcodec/bsf/showinfo.c > @@ -0,0 +1,66 @@ > +/* > + * Copyright (c) 2024 Anton Khirnov > + * > + * This file is part of FFmpeg. > + * > + * 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. > + * > + * 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 FFmpeg; if not, write to the Free Software > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA > + */ > + > +#include > + > +#include "bsf.h" > +#include "bsf_internal.h" > + > +#include "libavutil/log.h" > +#include "libavutil/timestamp.h" > + > +typedef struct ShowinfoContext { > + uint64_t nb_packets; > +} ShowinfoContext; > + > +static int showinfo_filter(AVBSFContext *ctx, AVPacket *pkt) > +{ > + ShowinfoContext *priv = ctx->priv_data; > + > + while (1) { > + int ret; > + > + ret = ff_bsf_get_packet_ref(ctx, pkt); > + if (ret < 0) > + return ret; > + > + av_log(ctx, AV_LOG_INFO, > + "n:%7"PRIu64" " > + "size:%7d " > + "pts:%s pt:%s " > + "dts:%s dt:%s " > + "ds:%"PRId64" d:%s " Why the trailing space? > + "\n", > + priv->nb_packets, pkt->size, > + av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &ctx->time_base_in), > + av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &ctx->time_base_in), > + pkt->duration, av_ts2timestr(pkt->duration, &ctx->time_base_in)); No av_ts2str for duration? Also, missing side data. It's useful to know if a bitstream in the chain/list added or removed any. Maybe all the printing from lavf/dump.c can be shared somehow? Or just duplicated. > + > + priv->nb_packets++; > + > + return 0; > + } > +} > + > +const FFBitStreamFilter ff_showinfo_bsf = { > + .p.name = "showinfo", > + .filter = showinfo_filter, > + .priv_data_size = sizeof(ShowinfoContext), > +}; _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".