From patchwork Tue Feb 1 16:28:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bryce Newman X-Patchwork-Id: 34041 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp767233iov; Tue, 1 Feb 2022 08:28:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJzOuof4gRz8+mMN0On80yt9tnpuGiVD4ByP2tt2wWVDqNgtC2W4zRQOSSpQieTMnnRgZwNd X-Received: by 2002:a17:906:35c2:: with SMTP id p2mr21136624ejb.117.1643732938063; Tue, 01 Feb 2022 08:28:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643732938; cv=none; d=google.com; s=arc-20160816; b=cr8IG4Oas0mCaqLTTt1KCO8qZo1P1kwZv5XbCa/pPYkRXY190G3cLMHMgjNGHUO9/v PzwNjm/7y1zG6uIQ4uO/DcqMC6BmhytP6JZYoYjISCT2lhCrNu3YKf4vfGOvnok8OvM6 EYqxqT3GLqXtvz5YUsfLArJEfHsktSz04kxXfhvMneE0QJl9a2DNfaB9XT09SMgjYlag NNy0DmM9OzQKsDq3KArH7oliJdybS1G62R9f7FKdSFfGmOD/2sQw2QTYKQquUe29fC3I 4mdlOg4unOzxDjdCfmOTj6FtuVw18Kw7kGxaWvx1aMWVszUcCu1n1qkZLADfMy8fpqpH z6Sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:accept-language:message-id:date:thread-index :thread-topic:to:from:delivered-to; bh=HiVnBjukjV/3WkHWB5nh9FR2EGJJueEOI6ZBy56loYk=; b=EgpUoW6I0Yvj8SSQIfDCWIYDxdiVoxozwVyJQmCM0sApSalwo46U94mcSp4WzGwQ/j 1UJdfcS9pW5K2JYys0Hoeq0qY4ysjkIWu7U8Z+d4PTAGV6HRuBnSozNcMLsUcEDOrjr0 geqs7inWISKj8LKlN4ZAUfvmLsaEkWwngeNfkwGaztuqHd86cm9Obdr7t/0Tb3vQMJmJ LPcgavIHKZdOQonRgpkzD6zt5jwuv8FAbgVH9Ln8BPQAuw8pnLif74CzZ+DuAe9N3eTG EngjR4/tQBj5kZgIm971B/NjR0dhQj1Gkd9unEQz91kIagzvKp22TshoUN1jDR6buyTF JUyQ== 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=gettyimages.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p30si9561768ejn.331.2022.02.01.08.28.57; Tue, 01 Feb 2022 08:28:58 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gettyimages.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 476FF68B44A; Tue, 1 Feb 2022 18:28:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from us-smtp-delivery-165.mimecast.com (us-smtp-delivery-165.mimecast.com [170.10.133.165]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 494F668B06F for ; Tue, 1 Feb 2022 18:28:46 +0200 (EET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-8-Z720niRiPBy4ySWYRA3z0w-1; Tue, 01 Feb 2022 11:28:42 -0500 X-MC-Unique: Z720niRiPBy4ySWYRA3z0w-1 Received: from SN6PR08MB6079.namprd08.prod.outlook.com (2603:10b6:805:fc::10) by SN6PR08MB4736.namprd08.prod.outlook.com (2603:10b6:805:6c::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.17; Tue, 1 Feb 2022 16:28:41 +0000 Received: from SN6PR08MB6079.namprd08.prod.outlook.com ([fe80::896e:3bcf:8367:3e14]) by SN6PR08MB6079.namprd08.prod.outlook.com ([fe80::896e:3bcf:8367:3e14%6]) with mapi id 15.20.4930.022; Tue, 1 Feb 2022 16:28:41 +0000 From: Bryce Newman To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH] libavformat/mov: Expose Quicktime poster_time value as metadata TAG. Thread-Index: AQHYF4jF0AwFinFigUCAietLl8Asew== Date: Tue, 1 Feb 2022 16:28:40 +0000 Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3608.120.23.2.4) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 05a32b5f-1d22-4ed8-e7aa-08d9e59fe866 x-ms-traffictypediagnostic: SN6PR08MB4736:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0 x-microsoft-antispam-message-info: eTazRzlHasVLStwP1obCARAQUiaypYnWqB0n3/YBKjIYFNEZw0iSiJ6z89oJGy9xV/uc+2VEITNgAEZd1N2MpxqJLGiYUvd0TrAPJZf3MAJAP7iKzUX7XcRy1SOSvxZ2doXexgdPQ5rE7LgRTzOpbXQolqNpCrjqkHUf1YiOKRK54IA6QTg+6UwAROh7lisfxhYhxgwRoLgtPKbC2f/m1NnSxViMWEPF16e29tahEGZcQV959tzuVMPZ9wPRMmeP603Nd/xdKby+qQMXdgwBToCEV9i/aicNPms1DJHozC8MGjj13QCPcLSS+84Ugzsa4p4Ohf9bU4cspqMpixiEmrV20Ru21m31zpbOv7XZyN+Lk+64p+iYnyOeCyHsDBws51EN7VSxm7+8FBOCgB5//MsdGPzlV28bfa77EwK/MA0jGMWRkf/N0KRP/8k+TMVf6dK/d5KGEUQEg8WUALtYiBj32oBcGH+kFta1/5yTxjAyT0YuwgD8Ywjvby+n+3zKnvNQ4bTsojE+vaYMywNtVnN6N/DPZDGjj/0Fn1pZM4hmwjOfRwnxzTs/AwQ6VqOHwdOfh79RMwBlYeNybefpAPMMFCwMamYJUCNXM0BW4GiVLbwJG5drgzpNoadjNvjl0hPFdRhI2nV319YkAjlDne46wL5rcDfQNVT/esQp2LsBzdu+rbb0hGbMQqrNgsdZ62dXKOMYprDn8C9WKKsghLT2wShGgOfZcw+er7uTpstZH7z6/asTNXKIP0vcsWT/QWrtIUdiGjGwXmvQYEBZXUYDZiqGq0MeOfGLpgUJ7kpjc3eL4fqNBT1HoUJDrLBV x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR08MB6079.namprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(64756008)(8936002)(38100700002)(26005)(186003)(122000001)(36756003)(66446008)(86362001)(8676002)(66946007)(76116006)(66556008)(83380400001)(66476007)(6512007)(6506007)(508600001)(91956017)(44832011)(6916009)(71200400001)(38070700005)(33656002)(5660300002)(6486002)(966005)(316002)(2616005)(2906002)(45980500001)(20210929001); DIR:OUT; SFP:1102 x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: 16WXQiluYcT32LtsoIYIKCh2PKs4/JC86Th1yC2+6KTVIDvbcQcZI5xWkwaomdF9TRNbRG+WIQL2h8wj18+6Jg9qkXhNfezqCwbonl1H/RY0LTn2VCrgEK+VjpwEYzDH/2QYrHaqUETFpbk8NnEwkFXQvDWLHS0S7o117sZhf79w+52XUT50zU+lCNd59+bv3Ueg9ORwUw1HSNJQ2Iz4dHHPSbh//9tX1qFkeFxZXopqFcibecJgqM3s2OfQ0N1bb9I778gmpg2qDF3qqGfulEj93wMd765jtxUI2SWG0zWH3wuqvT7/vNCECCj7nYm3UOFxanmryt0FJB83YqDx4kn2+Vk8rew1nvh2Ku1QTGVKO2+FLVbbHXNK4UhLwNhPM3ftBbGnFzIvumzBaM7A6PcO5n1UF4e9p+u06oS1NPM4fUUZbF15lnlkddYvm1cdFdPpHfgrQvFy8JrvC2lkBtUFABOP8EiTMRSRnxuE+k2PJelNpeWU97v4KPoJBBYm8K+s+jo1hH7gKz2lY6M7jOKxT2+lEz/onQ4PuKmsHZZsap5ZWCWvPXpgsHRtdQ+85KiIG9ZyOyMteMRO9zX7N05lOg+CXSp9IgEOPbQYLy4zRT+2PPWgtt7n7v55s8yszggEpszXfvW7UKdVkCTuYb2hgDjpXQgl80fCF+JsRRxJylPY8/yCTWjLMfhSqJDpmV4WoCjnGmtQa5hK+xjbZbFELbNeR8V+QZLDHOupjF5fEOu3smtNWZFFm9QtSiUB1v3WYEgTCg21oIdYG3o70mJaNDGBAtFPk9Q0wg3NAm5gtZjUayZ+CYv6UBT6m87WpGmTc+cQHaEbttaUJM/CakiBSrPi7C5XMcmtXWK10Jnm5VoIGwmrtECl+MC8Eha742DXVDLgsbBX0d8zrAgXHm4Qd4BtjJ/BtoyL9PgE8kAMCqgn9vSrbYNTB42gb0TM6j+/LawfPcEQyascVuGuss8qz3zGCsOYPpH/x0Mxk4X2iSwGeNxTOwiXUBZRK6f09SqjNgizik1brfEMQYL0di7WQZQ8iWXnbaHh78pSOJ3RwlYdvfFHK36hRcQ9Yj1QrOdFo8D1Ndd3gD/uIyBLu+ksjHZ/pxrOacjqb1hLU6B6Y5fEgA0FNkjAOMUuzEwZnGb8PkTyPlFt6RgMGG/7em9HoXCV+3IpMYv7ZpugME0lPsMIlCH+REBxGmQ5TUCMd16ePe6aov7KJ93dB1yEXbYvPmwBCwcpeupaYV61Ix4hDjXx6Cu3pbMmc/0GIxkpnaTJZPCFiLBGgYk1yhzMenZswAzIxYnWvZkIAb/yb4lP5dvbkwNNY2JkeFzb0xZT1kq00ZOTYt1CYRwgNPNNBlM9by0uWMgkaRzHEnrOB6mY1rhgUdi9bMm8/Sp5L6U8TsggqQoIn2o8Vqkemm7WD2NAGQZ8TVlGeGm9g84o35aoz6Mng6wX6C2L/42cNBAV1R9UIKgtxMZmZ0QLmKcmnAW8m4KLqFTuCQ9VesL/MwwpAQ9ASK9sjFQIDUhKoX3CPKNXxxOIRNf4UQoqeEnXhYZF1uZjuL2NMVkjrZVy2uDJin1heIZAEx43DqmMRIbk/ZG1fAxTWKpjj0RdZOPGQXhGEaYhUAL+7McwWgp1RPo9wCikrhmoKyktuKGnG9crSYvBtwncMOdIm0UwFifdNAvZvM+DXjcvFuAX9vUwcZc= MIME-Version: 1.0 X-OriginatorOrg: gettyimages.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR08MB6079.namprd08.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 05a32b5f-1d22-4ed8-e7aa-08d9e59fe866 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2022 16:28:41.0317 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 789f3470-2a5c-436f-ac2d-dde981d2f3dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: m+YpSMM0Ja6FIziAYDTMOi3l+wqguz6tuEZYuYSkM9+eeqQ7V+oAWh1Kyqsk35AASEGZ8+xt5IHq5EXI7WwclFhnqcmvwtm5m3ugPFUEtxU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR08MB4736 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA65A383 smtp.mailfrom=bryce.newman@gettyimages.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: gettyimages.com X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] libavformat/mov: Expose Quicktime poster_time value as metadata TAG. 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: jtMJ4UoVTFRX I need the ability to derive the poster time found in the mvhd, so I can use that value to create a thumbnail from ffmpeg. More details can be found here https://www.mail-archive.com/ffmpeg-user@ffmpeg.org/msg30003.html Signed-off-by: Bryce Chester Newman --- libavformat/mov.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index a80fcc1606..4d4854c09e 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1525,12 +1525,21 @@ static int mov_read_mvhd(MOVContext *c, AVIOContext *pb, MOVAtom atom) avio_rb32(pb); /* preview time */ avio_rb32(pb); /* preview duration */ - avio_rb32(pb); /* poster time */ + int32_t poster_time = avio_rb32(pb); /* poster time */ avio_rb32(pb); /* selection time */ avio_rb32(pb); /* selection duration */ avio_rb32(pb); /* current time */ avio_rb32(pb); /* next track ID */ + av_log(c->fc, AV_LOG_TRACE, "poster_time = %i, time_scale = %i\n", poster_time, c->time_scale); + if(poster_time && c->time_scale && c->time_scale > 0) { + char buffer[32]; + float poster_time_location = (float)poster_time / c->time_scale; + snprintf(buffer, sizeof(buffer), "%.2f", poster_time_location); + /* This will appear as a TAG in the format section of FFProbe output using -show_format */ + av_dict_set(&c->fc->metadata, "poster_time", buffer, 0); + } + return 0; }