From patchwork Wed Sep 6 10:16:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Bart=C5=82omiej_Stycze=C5=84?= X-Patchwork-Id: 43590 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp2414817pzb; Wed, 6 Sep 2023 03:16:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGIqBnzlFyS0ad/+ynz7iclCUVpEiD/7kpZRcs4ly/jdFE8lOLGwVRDb6rYMdi64TSd+xGZ X-Received: by 2002:a50:fa8e:0:b0:522:18b6:c01f with SMTP id w14-20020a50fa8e000000b0052218b6c01fmr2435097edr.3.1693995407353; Wed, 06 Sep 2023 03:16:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693995407; cv=none; d=google.com; s=arc-20160816; b=g5eBYmBVf1KL3/9W+79qmRmGysGNVlGbY5wHiu80NubBGZw/vJX4AjOgY0UQ+IPGwG 5kqVX9TH7LsAwhtgbFUhMz0dNfv2HSrhzELAbfCdvY/L2xV0das/GGZZ5Yj/jVZWhmIU KKJN/5+8FeJ0aqUjPDHH+dYjYZ/6ZwQxv/tRlQQEE2ssW/4v6p46iA6Zt3nPH3RXC3Hm BtiHIeC3YqSxGAe1+jc4dAqu+bzvFPEUFTUa65ZJrVMRnUWeAzwPFasDiQNvZSLU1QIb VOSTjnp0QDbUQdcN58iQMIrusSP4Qd2bG1LSknbBfc7FWGtCBn1xPccT8G/LxVUcxFb+ cgZg== 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:to:date:message-id:mime-version:from :dkim-signature:delivered-to; bh=ASnHtLGG9Fe669cAiFTpo/RyAOGNt1Dn3q+2lGkKOgU=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=xrdA+yoGP9qSxXq9rkMwJ0+ozijCFRoiZM9oDx//L5E5+RfOvXUQmWBpvhygzwiYHg rL/I5xLUp1nrIGa1xPLndDhRtsh6k0Mka6Py1A7WfIU3QyfoNOoAFUB0xI1WiSFd403H HWjiAlZiZJN47/Zf3QtLNVhj7bIUVUCPAHJIUmPBSVZSZo8vNG01IwQUqUTwd0TJiQrk XlunAUlBuAdx4jspcsuNc7EptLnLJHf2NIiebdogmL+ouS3gD1T5zCkgDVRmaXsp0NUX oK5X2OQq4ms7O4aiUlqRRyyt8gQvuBgZXLLMRgMy9eFhio9lYWEYiM9NZZfUfCUSe0Ty rVdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@cine.dev header.s=google header.b=XYyuizjs; 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=cine.dev Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ba9-20020a0564021ac900b0052c235ca6dfsi9548994edb.391.2023.09.06.03.16.47; Wed, 06 Sep 2023 03:16:47 -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; dkim=neutral (body hash did not verify) header.i=@cine.dev header.s=google header.b=XYyuizjs; 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=cine.dev Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1ED7868C749; Wed, 6 Sep 2023 13:16:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f175.google.com (mail-lj1-f175.google.com [209.85.208.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E963368C749 for ; Wed, 6 Sep 2023 13:16:37 +0300 (EEST) Received: by mail-lj1-f175.google.com with SMTP id 38308e7fff4ca-2be5e2a3c86so8633151fa.0 for ; Wed, 06 Sep 2023 03:16:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cine.dev; s=google; t=1693995397; x=1694600197; darn=ffmpeg.org; h=to:date:message-id:subject:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=xK4XUDHjPx/JT5fxs6Cg05sn/Uonsq6RzQssd1Je+0M=; b=XYyuizjsiin4XDYeSt2VpYIoIf4ResNZhA+xm7dNhLyhjcna0uEfkVfuzSuiWKpI3J Uzs/qGYSGhfBZIETgnL89yOQer63GUdO3YCdN+BeUiOyLArGUL+e3MY8JolgaB7MM57K wUyxOn4bOpypNQuo8YmaKGrufe9wN6SD8JOpw9xxpxpQThnv0AusYX+vKMBC39E3GJu8 5PhUFv0IECFzlpmqakOiO3CSda9kdIP0G4b1ADYxyFLeM906oIlg7hqUKYz2+H4ux1qw n2iJr3ya4QWmkTAGN3ipD127jzMTbsVSNbB9MB4gUYpjPLF2TQfTiFHZDX20+aKKniDc biqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693995397; x=1694600197; h=to:date:message-id:subject:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=xK4XUDHjPx/JT5fxs6Cg05sn/Uonsq6RzQssd1Je+0M=; b=PKTLY46dCm9byc0KRaCuceoipfDjpOKiFzhKlepYH5lyBSPoCWOpb0N2oKKYwk5/Zw yQDDO5lOyGhJKkhPQVpdNdGnQP5j8Cx1XV8lI+VlMZxiGWH0QKTjk+GlK/SgjK1NMJll a6ANZ9WNWZs2mke0wNBX1fyeNL1vwan3YjrSp7gngI1g04e28nWcTh/iCT3feU+mf5nr AL5F0IhP2AzQ3xvWGpcuH5fc5G/gGtg8CxtgyaCpN7/coFW9OBGevdZ+2CsHEpqZVku9 ZlEX3iVLcoUGXbKH9QofJtehLM5z8td8GVuq5LqsnCnHVLmUO83m9chA/zLof4yAXoGx Gl1w== X-Gm-Message-State: AOJu0YxhUgyQ5keVETzd3m/Mqn4k4EIxv43JwxQfzeJLbUHtvLDnaPlX 9B2AdchZa1gLmGS2b/BRoHVZ31pGxkMFLeoncUg= X-Received: by 2002:a19:ca0e:0:b0:4f8:6831:fd70 with SMTP id a14-20020a19ca0e000000b004f86831fd70mr954372lfg.3.1693995396686; Wed, 06 Sep 2023 03:16:36 -0700 (PDT) Received: from smtpclient.apple (87-206-23-17.dynamic.chello.pl. [87.206.23.17]) by smtp.gmail.com with ESMTPSA id v11-20020ac2560b000000b004fe4ab686b4sm2707046lfd.167.2023.09.06.03.16.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Sep 2023 03:16:36 -0700 (PDT) From: Bart Styczen Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.200.110.1.12\)) Message-Id: <8E129170-900A-4E57-990F-9FB6D1EF922A@cine.dev> Date: Wed, 6 Sep 2023 12:16:25 +0200 To: ffmpeg-devel@ffmpeg.org X-Mailer: Apple Mail (2.3731.200.110.1.12) X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] mxfenc.c: look for reel_name within streams as well 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: 1zFG/zsWVErm If an MXF file has reel_name stored in a stream, while copying or remuxing file, some (most) of the stream metadata is lost. Here’s the file: https://streams.videolan.org/ffmpeg/incoming/original.mxf After running ffmpeg -i original.mxf -c copy output.mxf, and checking with ffprobe, the original file has the following stream metadata: > file_package_umid: 0x060A2B340101010501010D431300000064F640280FA57031060E2B347F7F2A80 > file_package_name: B002C0006_230803_1932_000001 (0) > track_name : B002C0006_230803_1932_000001 (0)_v1 > reel_umid : 0x060A2B340101010501010D431300000064F640280FA67031060E2B347F7F2A80 > reel_name : B002C0006_230803_1932_000001 (1) > timecode : 00:06:15:21 And the copied file only these: > file_package_umid: 0x060A2B340101010501010D001339242252947134203924220052947134203901 > file_package_name: B002C0006_230803_1932_000001 (0) After applying the patch, copied file correctly shows reel metadata and the timecode: > file_package_umid: 0x060A2B340101010501010D001321CA09529471342721CA090052947134272101 > file_package_name: B002C0006_230803_1932_000001 (0) > reel_umid : 0x060A2B340101010501010D001321CA09529471342721CA090052947134272102 > reel_name : B002C0006_230803_1932_000001 (1) > timecode : 00:06:15:21 The track_name is still missing though, so I will continue to investigate the issue. Signed-off-by: Bart Styczen Signed-off-by: Bart Styczen --- libavformat/mxfenc.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index d8252ed68f..d3ae83a9fb 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -1817,7 +1817,17 @@ static int mxf_write_header_metadata_sets(AVFormatContext *s) } entry = av_dict_get(s->metadata, "reel_name", NULL, 0); - if (entry) { + if (!entry) { + /* check if any of the streams contain a reel_name */ + for (i = 0; i < s->nb_streams; i++) { + st = s->streams[i]; + if (entry = av_dict_get(st->metadata, "reel_name", NULL, 0)) { + break; + } + } + } + + if(entry) { packages[2].name = entry->value; packages[2].type = SourcePackage; packages[2].instance = 2;