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 D2A914A25C for ; Thu, 25 Apr 2024 14:35:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4B6F668D223; Thu, 25 Apr 2024 17:35:09 +0300 (EEST) Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D6B0868D232 for ; Thu, 25 Apr 2024 17:35:02 +0300 (EEST) Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-1e3ff14f249so8326465ad.1 for ; Thu, 25 Apr 2024 07:35:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714055699; x=1714660499; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=TvWWGiwapCTLn7+hBaI98cwKVXsz3DFzUUM363cCi4o=; b=iGiYMrQPAKUJFPhkz4VjgctrrZx71eDsqvtAYcDnqveDH/kstlILT8QN4dMPa+pK+V iFNQBuEqa7bK7N0mtv4D3VNoS+68JjVWje65R6VVe/OXZUXf1gXSPmgCEl/xB6nmW6dO ZgUobggy/OuqlO2pLQrDeH4ppPJUwcbkEOoxik37Wxhbgrn3AVWY1xH43JF6kt2LpVx0 lUNA0og3vaqebXtI+bzcMzeYThepI/kPqsJrE5SMAvr0wtn/0G1GBhob9mZDde+gm22N xlTDIY/GNciKzUVf+dcTvZmkqwSc+4bzEC8HAOHgEhYdQ2JVOzmprwM6mbhmgeH+kxFz qfGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714055699; x=1714660499; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=TvWWGiwapCTLn7+hBaI98cwKVXsz3DFzUUM363cCi4o=; b=GSQZLwvm9nLaNnJpfR+CrUuPuhgaBcB9HPT5cCncuKrCTHTAtS7BPlHU64Izz6t/3Y E994vC1veTWUryJBtlJF24kbIYxc8o0p16tX3M+WazuOF65qaF9avkQJ+u2h+VuVk4dH jtqwXZDtuOAX35PjEOSeExGwkV+mZ7S3GmdrcxucIqwPfgchz30S35tkaoisr+pFcNeR ihVNf0O6wt+VQ9HOSaWjlcVwswDIdUMXUHFp8bQIbOVr6pfbkR0YIL6LymXiV0amxl+n EDQyHS/zWCCJEIGczoFtNK+9cMXnqKRBgQhuPrsRpR5gFS4a1mwOajx/a3eXcco+qxQO I1xQ== X-Gm-Message-State: AOJu0YwPbI6Wce0JfzLT7hXtGh8eO5ESTYQ/02aWM0YFRLHdi0pGdxFd N/PCIc1mLhQmKmRYYO4T1Ap7blJMQK3osza5QC/v5RhODH0Bql8o+zmrsg== X-Google-Smtp-Source: AGHT+IHk8LSyuCyXsCzWEDK8VP/68YgXc5pS9/f9MYIbvudJ/PL2pZZGBZxOjnkT274QyW4kQk1Opg== X-Received: by 2002:a17:903:238b:b0:1e3:cf18:7464 with SMTP id v11-20020a170903238b00b001e3cf187464mr5216046plh.3.1714055699307; Thu, 25 Apr 2024 07:34:59 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id j7-20020a170902da8700b001e0bbd8d0b0sm13827455plx.189.2024.04.25.07.34.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Apr 2024 07:34:58 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 25 Apr 2024 11:34:59 -0300 Message-ID: <20240425143459.2875-1-jamrial@gmail.com> X-Mailer: git-send-email 2.44.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/framecrcenc: allow setting which side data parameters are printed 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-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: For some side data types, the size is dependent on the arch at runtime, which is not good for FATE tests. Add an option to set which parameters may be printed, starting with size. Signed-off-by: James Almer --- libavformat/framecrcenc.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/libavformat/framecrcenc.c b/libavformat/framecrcenc.c index ce306a6c49..7d0e3978f2 100644 --- a/libavformat/framecrcenc.c +++ b/libavformat/framecrcenc.c @@ -23,6 +23,7 @@ #include "libavutil/adler32.h" #include "libavutil/avstring.h" +#include "libavutil/opt.h" #include "libavcodec/codec_id.h" #include "libavcodec/codec_par.h" @@ -32,6 +33,11 @@ #include "internal.h" #include "mux.h" +struct FrameCRCContext { + const AVClass *avclass; + int flags; +}; + static int framecrc_write_header(struct AVFormatContext *s) { int i; @@ -48,8 +54,11 @@ static int framecrc_write_header(struct AVFormatContext *s) return ff_framehash_write_header(s); } +#define SD_SIZE 1 + static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt) { + struct FrameCRCContext *c = s->priv_data; uint32_t crc = av_adler32_update(0, pkt->data, pkt->size); char buf[256]; @@ -61,6 +70,7 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt) av_strlcatf(buf, sizeof(buf), ", S=%d", pkt->side_data_elems); for (int i = 0; i < pkt->side_data_elems; i++) { + if (c->flags & SD_SIZE) av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER, pkt->side_data[i].size); } @@ -70,11 +80,29 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt) return 0; } +#define OFFSET(x) offsetof(struct FrameCRCContext, x) +#define ENC AV_OPT_FLAG_ENCODING_PARAM +static const AVOption framecrc_options[] = { + { "print_side_data", "set which side data parameters to print", OFFSET(flags), + AV_OPT_TYPE_FLAGS, { .i64 = SD_SIZE }, INT_MIN, INT_MAX, ENC, .unit = "flags"}, + { "size", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = SD_SIZE }, INT_MIN, INT_MAX, ENC, .unit = "flags"}, + { NULL }, +}; + +static const AVClass framecrc_class = { + .class_name = "framecrc muxer", + .item_name = av_default_item_name, + .option = framecrc_options, + .version = LIBAVUTIL_VERSION_INT, +}; + const FFOutputFormat ff_framecrc_muxer = { .p.name = "framecrc", .p.long_name = NULL_IF_CONFIG_SMALL("framecrc testing"), + .p.priv_class = &framecrc_class, .p.audio_codec = AV_CODEC_ID_PCM_S16LE, .p.video_codec = AV_CODEC_ID_RAWVIDEO, + .priv_data_size = sizeof(struct FrameCRCContext), .write_header = framecrc_write_header, .write_packet = framecrc_write_packet, .p.flags = AVFMT_VARIABLE_FPS | AVFMT_TS_NONSTRICT | -- 2.44.0 _______________________________________________ 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".