From patchwork Tue Oct 12 11:02:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zane van Iperen X-Patchwork-Id: 31081 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2084:0:0:0:0 with SMTP id a4csp4645445ioa; Tue, 12 Oct 2021 04:02:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwzurA5oohv3K9vYqfK0//Wt9He9R+t2MhMiimDkkjjI0OWFJlYmA1P6Ow059fP/0pQFY9C X-Received: by 2002:a17:906:a3c4:: with SMTP id ca4mr31939540ejb.529.1634036562091; Tue, 12 Oct 2021 04:02:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634036562; cv=none; d=google.com; s=arc-20160816; b=u7SXZ98noYF4dQGrJAq4jvVakV7J4l3i1ilYyggWEKR5hKzQtOQs35KiarUEdU274x EMumTi8lIwCLhIZACAj0/xt7TlILTeiSmQd/bzSP/LCVDKcp/c7mmH8A2k4TfRBjzI8M zJE/Uw0rvbXm03WDuGfdUOKcVY326QPW6/sxa5qYvNyfTzAQiqLFL/2tWeSZ3U+UU/dB reAEvml6HaAZ+MoVV6GJanQRZFKHVUIXaXZZVSB18vJ+b6Z8228vML+xTI9DEqn6io8y tIX+7ZI1o0+MCAYef3r5WM5FxeoGUKR3eUAljQJ9TlnWr1sm07Iryehk54T28oP4Qmqm 5yYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :delivered-to; bh=WAbuhoEY3MAQ+xEIACRs2nk6lictaLoU0TRzPWge+Fk=; b=HelIMv5KU5cWqiz4bwZsBn5hOeIIAbDalMDyEKMOvPSINPQr62vPeDvLDI1n17Xj0B +5mRPxfDFpzRGahq3Zj0XqFps6QNudimFgJp6aOr2A4nHe/eS4XWYcywEn/CUljDyVWO imHSlMcDTqhvQ+/AVIKE+aUMjcYj5Jwz7/6zl7c5xzqxMCH8dZFYcPHeOEcn4GIAYcO+ n6yvp6ZZORphMas2IdHUWW6EcUzrKI8/3B/Li1IsVR+SEyNXzOaRSZ5ND7KVPnbeZ4Kw Dbyaiaz0yUnsh93ud6vqKf+lcQzW5efSIu9l8xWIMSykTmT3Dzngx98VwkHAZqmot5WR TOhA== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=zanevaniperen.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f14si12984749edc.450.2021.10.12.04.02.41; Tue, 12 Oct 2021 04:02:42 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=zanevaniperen.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9E16968A5DC; Tue, 12 Oct 2021 14:02:39 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out10.migadu.com (out10.migadu.com [46.105.121.227]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E05E268A408 for ; Tue, 12 Oct 2021 14:02:32 +0300 (EEST) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Zane van Iperen To: ffmpeg-devel@ffmpeg.org Date: Tue, 12 Oct 2021 21:02:22 +1000 Message-Id: <20211012110224.639056-1-zane@zanevaniperen.com> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: noreply-caprica@cadance.vs49688.net Subject: [FFmpeg-devel] [PATCH v2 1/3] avformat/argo_asf: cleanup and NULL-terminate name field in header 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 Cc: Zane van Iperen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 7FuXDSwFFwfO Signed-off-by: Zane van Iperen --- libavformat/argo_asf.c | 8 ++++---- libavformat/argo_asf.h | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c index 7e759c7c0c..acf30839b9 100644 --- a/libavformat/argo_asf.c +++ b/libavformat/argo_asf.c @@ -52,8 +52,8 @@ void ff_argo_asf_parse_file_header(ArgoASFFileHeader *hdr, const uint8_t *buf) hdr->version_minor = AV_RL16(buf + 6); hdr->num_chunks = AV_RL32(buf + 8); hdr->chunk_offset = AV_RL32(buf + 12); - for (int i = 0; i < FF_ARRAY_ELEMS(hdr->name); i++) - hdr->name[i] = AV_RL8(buf + 16 + i); + memcpy(hdr->name, buf + 16, ASF_NAME_SIZE); + hdr->name[ASF_NAME_SIZE] = '\0'; } int ff_argo_asf_validate_file_header(AVFormatContext *s, const ArgoASFFileHeader *hdr) @@ -331,7 +331,7 @@ static void argo_asf_write_file_header(const ArgoASFFileHeader *fhdr, AVIOContex avio_wl16( pb, fhdr->version_minor); avio_wl32( pb, fhdr->num_chunks); avio_wl32( pb, fhdr->chunk_offset); - avio_write(pb, fhdr->name, sizeof(fhdr->name)); + avio_write(pb, fhdr->name, ASF_NAME_SIZE); } static void argo_asf_write_chunk_header(const ArgoASFChunkHeader *ckhdr, AVIOContext *pb) @@ -368,7 +368,7 @@ static int argo_asf_write_header(AVFormatContext *s) } else { len = end - name; } - memcpy(fhdr.name, name, FFMIN(len, sizeof(fhdr.name))); + memcpy(fhdr.name, name, FFMIN(len, ASF_NAME_SIZE)); chdr.num_blocks = 0; chdr.num_samples = ASF_SAMPLE_COUNT; diff --git a/libavformat/argo_asf.h b/libavformat/argo_asf.h index e65125fb79..1fab31a90b 100644 --- a/libavformat/argo_asf.h +++ b/libavformat/argo_asf.h @@ -33,6 +33,7 @@ #define ASF_CHUNK_HEADER_SIZE 20 #define ASF_SAMPLE_COUNT 32 #define ASF_MIN_BUFFER_SIZE FFMAX(ASF_FILE_HEADER_SIZE, ASF_CHUNK_HEADER_SIZE) +#define ASF_NAME_SIZE 8 typedef struct ArgoASFFileHeader { uint32_t magic; /*< Magic Number, {'A', 'S', 'F', '\0'} */ @@ -40,7 +41,7 @@ typedef struct ArgoASFFileHeader { uint16_t version_minor; /*< File Minor Version. */ uint32_t num_chunks; /*< No. chunks in the file. */ uint32_t chunk_offset; /*< Offset to the first chunk from the start of the file. */ - int8_t name[8]; /*< Name. */ + char name[ASF_NAME_SIZE + 1]; /*< Name, +1 for NULL-terminator. */ } ArgoASFFileHeader; typedef struct ArgoASFChunkHeader { From patchwork Tue Oct 12 11:02:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zane van Iperen X-Patchwork-Id: 31082 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2084:0:0:0:0 with SMTP id a4csp4645845ioa; Tue, 12 Oct 2021 04:03:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTmRsq9PcBvcDxU7Fx+fX+lULiBKOnS4Pn4BwKoprfDU1ADlFx4LVxlrAytq9pN27ZyKlK X-Received: by 2002:a1c:9a4d:: with SMTP id c74mr4604946wme.139.1634036584209; Tue, 12 Oct 2021 04:03:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634036584; cv=none; d=google.com; s=arc-20160816; b=P1QLPYEo5xTYgKVyY2XAcph0vHxG3L5WjnUCge+hdcrrNGO+RmyKHZZ7DOkkIHFqZG J41/AIwVzkf7SefZfrsLcPLo4h2vk2uRVO3Du1eemvjVEfVehetWIASJ+T2iOSQto5wT nQaCzvaUawHMqKf+Zs9dKHzI39Cu64JL+m5iDMFZ/rjrbT3o65psMuGLma62lt/ZTTBv yyUx9Nvl3mnFbT1nQLgQDpChK4qGdA26nFfOQ5Kc7x1qulwWRaSZklckCHPWqJXFYjiv hxga220SuP/mlGHPH5Lltscam5GC0gYo28b/C2HB/Lnz1RIGfqDepH3quFcJeeu5Cn9T 4Few== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc: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=mFcI6DDBpZK/yzDNhLLcWL+dcZt23oeXXQFcMV2bIgE=; b=WtIF1ELP7G+mfPcKXqsVBI7FUda63d3TqGW4y17X0giSCTXabawmXYoSczxoxnzMyr mHRrNNmFXDNGk375HDoqmNlBt+kTSNbcAf9ZyDi/8mwEIWEmeEgfx/U3EN9Dcq+K7o8p j7fwydeKfyEMjA4UqyP5NsV7MwrRY9RFbO21CiKNlTQs/Bnv+QGucOpMyWLHdgTBobPM OV3i4aKWm21PaZp0LHaUftmqKFrQpRmo11qAFllNc51BEB4IDNc0Oz50wgXqZgEVfvX8 4QBk9gNXd/FenT6ygDtZDt7jN7Ixn0Yw/eCEI3/Gkg/lptP0OX5Y8uUpk1m4bTmqFc4w 6ooA== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=zanevaniperen.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v21si10197650ejc.253.2021.10.12.04.03.03; Tue, 12 Oct 2021 04:03:04 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=zanevaniperen.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CCC1A68A776; Tue, 12 Oct 2021 14:02:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out10.migadu.com (out10.migadu.com [46.105.121.227]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 152E268A631 for ; Tue, 12 Oct 2021 14:02:39 +0300 (EEST) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Zane van Iperen To: ffmpeg-devel@ffmpeg.org Date: Tue, 12 Oct 2021 21:02:23 +1000 Message-Id: <20211012110224.639056-2-zane@zanevaniperen.com> In-Reply-To: <20211012110224.639056-1-zane@zanevaniperen.com> References: <20211012110224.639056-1-zane@zanevaniperen.com> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: noreply-caprica@cadance.vs49688.net Subject: [FFmpeg-devel] [PATCH v2 2/3] avformat/argo_asf: pass name through as metadata 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 Cc: Zane van Iperen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: IV+KLr824KM/ Signed-off-by: Zane van Iperen --- libavformat/argo_asf.c | 2 ++ tests/ref/acodec/adpcm-argo | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c index acf30839b9..740680ece1 100644 --- a/libavformat/argo_asf.c +++ b/libavformat/argo_asf.c @@ -209,6 +209,8 @@ static int argo_asf_read_header(AVFormatContext *s) ff_argo_asf_parse_chunk_header(&asf->ckhdr, buf); + av_dict_set(&s->metadata, "title", asf->fhdr.name, 0); + return ff_argo_asf_fill_stream(s, st, &asf->fhdr, &asf->ckhdr); } diff --git a/tests/ref/acodec/adpcm-argo b/tests/ref/acodec/adpcm-argo index 127153c081..4032a8f1fe 100644 --- a/tests/ref/acodec/adpcm-argo +++ b/tests/ref/acodec/adpcm-argo @@ -1,4 +1,4 @@ 14b2507d14e95c20bb7ae49b4fcbcbf1 *tests/data/fate/acodec-adpcm-argo.argo_asf 281190 tests/data/fate/acodec-adpcm-argo.argo_asf -cc5e5c695adeaebaa2b1f0df5ebd59ee *tests/data/fate/acodec-adpcm-argo.out.wav +446f28460bdb7ff4361cf7d82ac22c3e *tests/data/fate/acodec-adpcm-argo.out.wav stddev: 1542.05 PSNR: 32.57 MAXDIFF:59667 bytes: 1058400/ 1058432 From patchwork Tue Oct 12 11:02:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zane van Iperen X-Patchwork-Id: 31080 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2084:0:0:0:0 with SMTP id a4csp4645740ioa; Tue, 12 Oct 2021 04:02:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzsoAsNeN5dA7hlHjC2Q6LzINs8itI0RmdVwW54qbmqnXADM6Oq07vlNEIX4QJkwfaspp2e X-Received: by 2002:a17:906:e098:: with SMTP id gh24mr32106408ejb.79.1634036578994; Tue, 12 Oct 2021 04:02:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634036578; cv=none; d=google.com; s=arc-20160816; b=nI4yXTSakngQ/et3T9RBhz3IzROt3Nuk0JtNXsjEa7RMlsu2/2TZgLz5RTgY8n0brP 4Gb4OElSvfH4LGDk2mkzQt4PAUZZuMOfEdMZbHvJcWO7OY2EVWoU8HjNjSsNRB1ffCDW HW+PdkzLmLEbT2RJpT0e+vlVgXE4Atz8/TeVNX/a+ZAXyfgW8gv5+/OMSLwEFuxFTJrH OlYR/IzHZucDtyTFwpG4HFrO2JHo28OD+gysdPQt0CL5IwUE7+pG3RsdneRAOKLaVRFn /mACTkE+Gcqv4ZRlPXbeCMYNM6v7EzPRco5ZSFk9sz/f4v1Xf+tL58vfyGBfkH8zWq22 UhUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc: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=H3Fg9+vYiFnvueVa+9uneLQAHXDXt1/wa3WT791Gok4=; b=R/Jy0rHc23bjXH3Fa4s3FX074zASz/I8hEsTpwmI0nXfuVJ7RilZqUKKEPun/K/eaT Zj6vktgnP1XupHNCcqkoFb0/ocjv4uGmbCeGSXxNY4DsjlDbtAlmZmlqHMjmm8f5mLr1 65aoNK9WvJindOjU9r6FtuTvSkxdtJQoYpZ8QCd9hviZqDSMr8G3HOpKecJWhqV7ICxF sjkmSB2EZw9BQv5/NWNy2xL2RTlYjbNXANDX60VAemKC+kkfY2sbeviy5cb7WW4G2ejL fgDhamJxxDnaMpTt8TYhgZ6BVo2aLmWJ75MOYUTD2XWwKWQVNOpRRMIsgkr+ydy1piAF Sz3Q== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=zanevaniperen.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s29si14449087edi.373.2021.10.12.04.02.51; Tue, 12 Oct 2021 04:02:58 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=zanevaniperen.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AC4F568A4D2; Tue, 12 Oct 2021 14:02:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out10.migadu.com (out10.migadu.com [46.105.121.227]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D27EC68A54D for ; Tue, 12 Oct 2021 14:02:35 +0300 (EEST) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Zane van Iperen To: ffmpeg-devel@ffmpeg.org Date: Tue, 12 Oct 2021 21:02:24 +1000 Message-Id: <20211012110224.639056-3-zane@zanevaniperen.com> In-Reply-To: <20211012110224.639056-1-zane@zanevaniperen.com> References: <20211012110224.639056-1-zane@zanevaniperen.com> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: noreply-caprica@cadance.vs49688.net Subject: [FFmpeg-devel] [PATCH v2 3/3] avformat/argo_asf: use title metadata when muxing 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 Cc: Zane van Iperen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: +qZcZ0fAd6lB Signed-off-by: Zane van Iperen --- libavformat/argo_asf.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c index 740680ece1..2b3569ebc3 100644 --- a/libavformat/argo_asf.c +++ b/libavformat/argo_asf.c @@ -358,14 +358,22 @@ static int argo_asf_write_header(AVFormatContext *s) .num_chunks = 1, .chunk_offset = ASF_FILE_HEADER_SIZE }; - const char *name = ctx->name, *end; + AVDictionaryEntry *t; + const char *name, *end; size_t len; /* - * If the user specified a name, use it as is. Otherwise take the - * basename and lop off the extension (if any). + * If the user specified a name, use it as is. Otherwise, + * try to use metadata (if present), then fall back to the + * filename (minus extension). */ - if (name || !(end = strrchr((name = av_basename(s->url)), '.'))) { + if (ctx->name) { + name = ctx->name; + len = strlen(ctx->name); + } else if ((t = av_dict_get(s->metadata, "title", NULL, 0))) { + name = t->value; + len = strlen(t->value); + } else if (!(end = strrchr((name = av_basename(s->url)), '.'))) { len = strlen(name); } else { len = end - name;