From patchwork Tue Feb 27 01:42:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?0JLQvtC00Y/QvdC90LjQutC+0LIg0JAu0JIu?= X-Patchwork-Id: 46560 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c51b:b0:19e:cdac:8cce with SMTP id gm27csp1726966pzb; Mon, 26 Feb 2024 17:42:34 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUmoynFHrE9Nw+xD5dih9MtlVcVrvHGQqHFNKNF51KJ/MLS1RkQAH+r2P7aGP66NHIAV1uLPdjmEbk/Bl17Tn3ebTE9l2yVWoV2nQ== X-Google-Smtp-Source: AGHT+IH7HuIP1Rh40gnDsX7KpV2BQYGCdxzgzMK+1kMiTNHpRRGa3fGCkrwnAoa2pA8VLmizraG1 X-Received: by 2002:aa7:d958:0:b0:565:214d:8dd7 with SMTP id l24-20020aa7d958000000b00565214d8dd7mr6074159eds.35.1708998154363; Mon, 26 Feb 2024 17:42:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1708998154; cv=none; d=google.com; s=arc-20160816; b=jnl+SM6qab4MbvVxpfGpC6PqWOtOEf0Twa5IYFHYcbkmvIg/Tm88W8hsCoY6KhPvAX 9SXsK4Ad5iv5GuU4XDEk2BbtTYtZ3eA5UqqEKqIVOmDj3w13E70YXQ3IobuzKhD4xAPh TACK18GSmRStB79Xt94SFf5e/hw6aLGiRGxJ1hK9LfWejwaWmnyekg9ApMJAcorNeF3K 4MnkO6mccOwt4IKJfXPsKM19sgPT3vtljIvTFS6D/j9wZvhXKM9eUVoNG3TC+N1NnQjH KDFDOC+cYRvOn2PnPIFczZEfGWeORDRBC4VYrCn4MzhBDHFyTbwycqY3Cx8zosR0ipox dz9w== 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:from :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:content-disposition:to:content-language :user-agent:mime-version:date:message-id:delivered-to; bh=SdzKDvp8KLLVwuRXtJidFkelTpyV2J+s8MC4MlWG1ms=; fh=uK6ovvt9taSrCCgCDpaJX28Nrscar2l8bqWwwKTo/3k=; b=C+Jh+SkaDuA4CbDBPAeuHbK/RXXWjhO4IseP5QaqqvLvlpfrVj3fJJaAzlSXR02C1I Hb9AeN9HmilqvGic/vLoFdojFo275rrmXduq0dfcIx5s99wfeTSGrg9oxVRNPTjJsYRR 9X2K3g1llSCg6tq5ycczNAlR5RVfqjotglPq3wnDjydGzD5P4RbJuZlCJDrOu6fWCxkk s5cM9y42kfyExbGZFIqeMWH857gr4QfbgeTuACjn7m38RF7Pg8Q6p7KYdCa1WCDFNbp8 zOB+WLc6BsuAlMZmNQn2s6t0ctkbMrAksorFC5zigE9ZjPFEin3i6CzsTPcPWpTrTU6g lelA==; dara=google.com 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 x40-20020a50baab000000b0056611ad8b7csi247343ede.506.2024.02.26.17.42.33; Mon, 26 Feb 2024 17:42:34 -0800 (PST) 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 3176968CA56; Tue, 27 Feb 2024 03:42:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp34.i.mail.ru (smtp34.i.mail.ru [95.163.41.75]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C27AE68C27C for ; Tue, 27 Feb 2024 03:42:23 +0200 (EET) Received: by smtp34.i.mail.ru with esmtpa (envelope-from ) id 1remU8-0000000EP6q-4BKg for ffmpeg-devel@ffmpeg.org; Tue, 27 Feb 2024 04:42:21 +0300 Message-ID: <191184c4-f475-4bb1-85ed-d6f6693e4a99@mail.ru> Date: Tue, 27 Feb 2024 11:42:16 +1000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD9B3D8B2ACB710714413FECF7839A487323F02638B2E9E8CBE182A05F538085040C93D6D7D92C4C80103ED270C30F246C5A68364BC630D8BE340693B6D6EEB5B25E8059BD5A173A443 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7FDE19FEC90BA7BD7C2099A533E45F2D0395957E7521B51C2CFCAF695D4D8E9FCEA1F7E6F0F101C6778DA827A17800CE731D82F3F177D3BCDEA1F7E6F0F101C6723150C8DA25C47586E58E00D9D99D84E1BDDB23E98D2D38B73AB1701401CD8710987298ECF6923F91CBD993B500FE0B978DB7D1A49C1C9381DF9E95F17B0083B26EA987F6312C9EC9ECD01F8117BC8BEA471835C12D1D9774AD6D5ED66289B5278DA827A17800CE78C592797616C97AB9FA2833FD35BB23D2EF20D2F80756B5F868A13BD56FB6657A471835C12D1D977725E5C173C3A84C3A12191B5F2BB8629117882F4460429728AD0CFFFB425014E868A13BD56FB6657D81D268191BDAD3DC09775C1D3CA48CF2ECB75B566AFDDCCBA3038C0950A5D36C8A9BA7A39EFB766D91E3A1F190DE8FDBA3038C0950A5D36D5E8D9A59859A8B6543735AC9C76F23876E601842F6C81A1F004C906525384303E02D724532EE2C3F43C7A68FF6260569E8FC8737B5C2249D082881546D93491E827F84554CEF50127C277FBC8AE2E8BA83251EDC214901ED5E8D9A59859A8B66F6A3E018CF4DC80089D37D7C0E48F6C5571747095F342E88FB05168BE4CE3AF X-C1DE0DAB: 0D63561A33F958A5452BDDDBD3EEE2755002B1117B3ED696FB78B249AA1CCF6A466072E6821086B3823CB91A9FED034534781492E4B8EEAD69BF13FED57427F1C79554A2A72441328621D336A7BC284946AD531847A6065A535571D14F44ED41 X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF3FED46C3ACD6F73ED3581295AF09D3DF87807E0823442EA2ED31085941D9CD0AF7F820E7B07EA4CF745847621A75E19F8E1A71001ECBAC399AC2938AC27112AFC307D8389E84B81F2D55A8303E10F658A653534C7294CACCFB06599924D021B6BA05A7CA29D8CDF67B34DB5D9FC7D3C2383C93C5AD2DA449913E6812662D5F2AC3039550F769F8798F143D39BEEEEE2FC3981EEBE9DB10F943082AE146A756F3 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojVa3JOTFD6tBjB7uGxnaEcw== X-Mailru-Sender: 58FA1740AF0C9621328149A0E74677727F72913178CF1C9D77EA6416FFE467E195857C8081387729D374630430C8D43A23B8B6364D89957A3DDE9B364B0DF289DD78749A30E7047613232A9A0118815C0D4ABDE8C577C2ED X-Mras: Ok Content-Disposition: attachment; filename="mov-parse-track-based-udta-name-tags.patch" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] mov: parse track-based udta name tags 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: , X-Patchwork-Original-From: =?utf-8?b?0JLQvtC00Y/QvdC90LjQutC+0LIg0JAu0JIuIHZpYSBmZm1wZWctZGV2ZWw=?= From: =?utf-8?b?0JLQvtC00Y/QvdC90LjQutC+0LIg0JAu0JIu?= Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?b?0JLQvtC00Y/QvdC90LjQutC+0LIg0JAu0JIu?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: XOZEL+uBaKJq From 1833111ec9fe0350e9cf206bb33ca573b6b8c4b5 Mon Sep 17 00:00:00 2001 From: Aleksoid Date: Sun, 25 Feb 2024 11:59:03 +1000 Subject: [PATCH] mov: parse track-based udta name tags Signed-off-by: Aleksoid --- libavformat/mov.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 1a1b104615..c7b6919433 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -301,6 +301,16 @@ static int mov_metadata_hmmt(MOVContext *c, AVIOContext *pb, unsigned len) return 0; } + +static void mov_set_metadata(MOVContext *c, const char *key, const char *str) +{ + if (c->trak_index >= 0) { + AVStream *st = c->fc->streams[c->fc->nb_streams-1]; + av_dict_set(&st->metadata, key, str, 0); + } else + av_dict_set(&c->fc->metadata, key, str, 0); +} + static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) { char tmp_key[AV_FOURCC_MAX_STRING_SIZE] = {0}; @@ -403,6 +413,7 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) case MKTAG(0xa9,'w','r','n'): key = "warning"; break; case MKTAG(0xa9,'w','r','t'): key = "composer"; break; case MKTAG(0xa9,'x','y','z'): key = "location"; break; + case MKTAG( 'n','a','m','e'): key = "title"; break; } retry: if (c->itunes_metadata && atom.size > 8) { @@ -530,10 +541,10 @@ retry: str[str_size] = 0; } c->fc->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; - av_dict_set(&c->fc->metadata, key, str, 0); + mov_set_metadata(c, key, str); if (*language && strcmp(language, "und")) { snprintf(key2, sizeof(key2), "%s-%s", key, language); - av_dict_set(&c->fc->metadata, key2, str, 0); + mov_set_metadata(c, key2, str); } if (!strcmp(key, "encoder")) { int major, minor, micro;