From patchwork Mon Sep 19 13:25:33 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: erkki.seppala.ext@nokia.com X-Patchwork-Id: 632 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.134 with SMTP id o128csp1000368vsd; Mon, 19 Sep 2016 06:27:08 -0700 (PDT) X-Received: by 10.28.189.197 with SMTP id n188mr1424811wmf.116.1474291628212; Mon, 19 Sep 2016 06:27:08 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id lp3si17989211wjb.242.2016.09.19.06.27.06; Mon, 19 Sep 2016 06:27:08 -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=@nokia.onmicrosoft.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 dis=NONE) header.from=nokia.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AAEAB689FB2; Mon, 19 Sep 2016 16:26:00 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00134.outbound.protection.outlook.com [40.107.0.134]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9DC53689D9C for ; Mon, 19 Sep 2016 16:25:57 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=sCNkAM4Gc1IuYdoaukrEx8Wvcw0gXgA82EOSlBG5hyk=; b=MQFeAE/+iy3HKnttxjq6IVHjLf51uGDL/OtqOYVsaPAGeeIbnZavMJ5pn7rH3I8rbdozeIY3e9IJBp56ZgSI/kXxHgIsf3xw/STcvebLRrWfEZE2RKfvMmgiO7sgD6vw3x2n1ZGi/P3SC3KtMfXfQNvZl26oJ8Yo7C8slUuaiMU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=erkki.seppala.ext@nokia.com; Received: from erkkise-laptop.vincit.intranet (131.228.2.24) by AM5PR0701MB2531.eurprd07.prod.outlook.com (10.169.153.151) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.629.8; Mon, 19 Sep 2016 13:26:07 +0000 Received: by erkkise-laptop.vincit.intranet (Postfix, from userid 1000) id C5C704F0F4F; Mon, 19 Sep 2016 16:25:48 +0300 (EEST) From: =?UTF-8?q?Erkki=20Sepp=C3=A4l=C3=A4?= To: Date: Mon, 19 Sep 2016 16:25:33 +0300 Message-ID: <1474291548-17810-11-git-send-email-erkki.seppala.ext@nokia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1474291548-17810-1-git-send-email-erkki.seppala.ext@nokia.com> References: <1471943019-14136-1-git-send-email-erkki.seppala.ext@nokia.com> <1474291548-17810-1-git-send-email-erkki.seppala.ext@nokia.com> MIME-Version: 1.0 X-Originating-IP: [131.228.2.24] X-ClientProxiedBy: BN6PR08CA0067.namprd08.prod.outlook.com (10.172.144.29) To AM5PR0701MB2531.eurprd07.prod.outlook.com (10.169.153.151) X-MS-Office365-Filtering-Correlation-Id: 2c85bde5-c558-42f5-82ba-08d3e0908360 X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB2531; 2:s+57W0/NMznJXymmJcUH/Gxymimus+vlu0yZ/0lNETpv+jAMYweEiJTuRkbmpMKr5q5oX1IY1Ssct+wPk9d3LAtK7L2Kc151mhQf+gCvZTeSV/nepoYG0eTlVJjQrxeolsw9roT/CMHb4KQ5naIPpxu/GzA6EF2G5E4SWJLuKllnAFLZpmmu7TDSzYJJESTZ; 3:8tzF9PYtAfRXvtlke9o0LdnkGR3ewvLEgHhB74LXNNHvDknkkxfXSNvFB0VyfCHIUrpb2dbgyEkb6jf9x/sI4Ii+lDee20eTrw838EpXaWe9IyZSRDgd1ieeepWBA0ej X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0701MB2531; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB2531; 25:9fq4KeVy/LRrhoBysITQt6RAXKfRsGsXxGyx5UUMfaBVHM9UZ1uL+Oj+ZPmFXF6cF6wbzPbvuo1+KrpJ+iSPofiwivP9X+Ir/vZw2CHA1UoBauEwMWiepj7+e2V76QMrF+i5Q7olnEjz3mvNm2fmJLYvTBqlciitT15fgsXchehDdr7EfnB6MjYn/h1jXx7nxJfOYjOt8veRd1VyTGR3ITm7DGWKFhqssXUsNVipLix+kfOxeqzxArFejKBgfWayWqiUtdwnvE+i9E8LZ/rs9/WA5+MNnF8LPgX2uuum8043teW/zddXYOj5VVfM0EZNpxqmNlPsLAvavUaicbqM7KVHmAgO97UjZhwDWZEwcHKnmVdbHcgGN0bJ6YllQYTRrrmnxIEE2Q0UtrCznsoipPvhDJuL3G5c6X4fSkjgmZb18Q6E9gK8HVikEKf0SXYLJXjxYwpJkS19r/V4Sti1wZ2DgGr9IG42bO/gW6boiVtaor/K85SL+GfLZaNeTjqf8aFz3ycdyQ+jore+hJOd4sdmkOW+KWuOgwQB7dqkl0un2v6taKN2utp1wYD+nuUkbGj7gC8uH6lorlV/cL5tqFDNs+sxbSUt2OH7ng93UFIF+HpwnTJhloA1cDNbGOADtEtXSOOO4zAltGKzmBVTk4NNtHK/zPhnpVXMjoPhoNbtixd1dVXvjEHg4UyJDwgFqoW631X8VYYM444UMECXYzeE4iCpApUEgs4OMp0K7AUO2B6LOPRYXg8Vyu082vr0VmFvp155+bjeZQXBhiRQau7N0yiGz+JZ8y4STVy6Xys= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB2531; 31:I0d7TCuCFaarj9M90bzbrcc1ntVcP2Bmvp43owjnvBBUUMidHx+u+IQ67TRdpWqcRPPOt/K5PcDMFUp0Mdo0Xvxy97tc/DTgLM0ICuaHiLoVn2GrA2iZ6RLEByWIDVRv/AlmYKsCf6sUuUIqcRaAAcGU27QapIjNlIjONKB6keWs9yDb/MMYNDC2q0x0OzAQqodxMdWxEOOI3P3POeF7kf8QzIXiNMGM54sgAPo4u30=; 20:IyhFKBX9FLupOoTqPcLkc0mfGcrneT8IxyIyu6Ap2LbdRonBzOqnt8x/uNSDDDGzDnBCP3BtM7vaZhtl5oB0uc1SD9TwkFT0+BshpyaUNoiesKsx0y8Sj1eyziHxBO6+CnQuPzLkr6wQDr31NGeHkViZ+04H69YAwi9My5WsiNbHrq+SZNY9mjraOoOnMUsk+Lgm7TNfXxTHH0LVeGYcqmlloHxTaGZg1/PyuZRnkQMQSPbCaMjzG5bnpJN6qZOcK2T7gOP+J0YJ6soFWOx5dVvB6ElGNWbbRE4SHLuTwbFfPg+w6Gz6C0hFXmjTSM4znN1anZfEa3AAD7NcP56h1g9gnsDSW6irSiHNptSlfwwQ9bqpnokLvj6BYpVJnOqX4IXQdl3WJC+8UV1EvvmfJK2S1RvcwvaPqk2zqGy2cF1UldlSIbDfQMWorDncYrTcXbc5Xi1aZxEydL7YzFa8Xw2M0A5zP/lrhMNa5DFHYffoNCXoPWaxdE2grHeMR2d2 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(23117731428927)(82608151540597)(31960201722614); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:AM5PR0701MB2531; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0701MB2531; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB2531; 4:X3gRglLxPDmQ97Ye0E2StYp18ysEJzWWdxniPNRff/zFciVma+C4z9XyRErq0+xKhF4L7s5XKNd38/Y3qB2+jiQtgC20Og8llXxB+GNrBERgoGxBb+prKv+QIqqBt71XYcU7CtTq5Pw8gC+ZuwIt2+6viSruUpVPmwZHWRZJwI65RcfWSUq4vC15tI3l6Y14IVoSXP1jxObSTH4PmUYH5Tb30/Pe/f0kaBuKPdjgsTvEadoknJZAtUjFAK8QIr9V3rAgSPaKljZ8cMrufdAxa8HJiuu/HeyCskhIBGRbmM13ZusdZJDaeTjeZySAs4i0H1VeEU8D33w4WLIV+Dv2jQUH40VPe3lrlTFhB3qA0JhbCwPxVlhIWDUDezM5USzXy5GdloJuJ1My69j8k5ZwfJGmVw4CcDO2xKCFIuoqVri5s/r1UjWmf/KpuVrXLtVg96HfF+Sm96oQgfkSI4xvoigEW+5jYDrxfaxnTb57vqUYPvX8oeKer6MzhifVH2ofLTMxYLv0Ks9jGd6OFDbzdA== X-Forefront-PRVS: 0070A8666B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(199003)(50466002)(45336002)(4001430100002)(19625735002)(90966002)(36756003)(47776003)(92566002)(229853001)(2351001)(66066001)(52956003)(189998001)(107886002)(122856001)(68736007)(5820100001)(50226002)(2870700001)(106356001)(50986999)(6116002)(5660300001)(3846002)(4326007)(2906002)(586003)(76176999)(105586002)(33646002)(7736002)(110136003)(19580395003)(305945005)(450100001)(81156014)(101416001)(7846002)(81166006)(19580405001)(15975445007)(42186005)(46386002)(97736004)(23676002)(8676002)(86362001)(2950100001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM5PR0701MB2531; H:erkkise-laptop.vincit.intranet; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: nokia.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTVQUjA3MDFNQjI1MzE7MjM6aEJlYU44Wko1Tjg5dFpLVXVyMHcvTG96?= =?utf-8?B?STdpTWJPaTFKRWJURldHZzg4NVA1Rm5RTjVmdGJCaU9mM0J0WDBoWnVVeHZG?= =?utf-8?B?QjhScmcvZUlMN1dsSkUvamx2ekxuaUw4Z244ZkJNdDZJK095dll3WVgrVUp2?= =?utf-8?B?RS96SkZRNUNJZzhzMWlYOHZvSHdBeWl2bzJKak5iNGdiZExqbnFKWG81Kzdu?= =?utf-8?B?NGZWdzhXNGhWYnBLVFg3NHV6ZUUyZnhId3VybUZtajVmMlAvQ3JYWElxakJU?= =?utf-8?B?VUUwZGE3Y3VTRDZiMFdPWGVEYUR1MEdmZHIxT1labm5RNURKZFZKL0p4enN0?= =?utf-8?B?RDVIRlMvV29uOGoxYmxEaERzQWdlRnZLbCt5andoQ1hjbkJnaWU1T0FwcHUv?= =?utf-8?B?OEZWeUxCMk5aSWEzYVJub3krbEc4bUI4VVRSeVBtQVYxbTNOUnpZM0V1akxm?= =?utf-8?B?eUdkU2JlTk02dkhyajJ1dHpOSElxUlVLTUxSdDBhVHZQcmx6NnVXYnhZS1RZ?= =?utf-8?B?M0w1REN5NVBxaTVsZXZJUEp1ZFFwYnB1NUpBb2lNVWdiSjl1c3RPeHd3WnBu?= =?utf-8?B?QUhaY084Q0FyUGhUaWY5M0RXbEY1VVNxbWdJekFFNjJrMmgxbHFCendIazRF?= =?utf-8?B?bXQwcXdZYVRBQjB4WlNrNG5CZ09sVkZOaDBoU29KeGhWVGlOL29WUXRvVmNU?= =?utf-8?B?b1NPb0tkOUxmVFN4SW5pWnZDaEJ3bVMxSEN5b1hXMDh0OXV1bGEzZ2tuWVhK?= =?utf-8?B?aU0vRDIwZzQ4WFFkVXhTSU1aaWNKWWtzd3NDZEpjL2J1cmowaCt1bWk1eDZC?= =?utf-8?B?YWxnc2lJWDNsV1BrS0JjU0t4SkhKWTRaSXA4RHMrcVJ4amUxK1ZVYWNXZnZV?= =?utf-8?B?dTZCdjJYVFlXbzNmcTZ3RFVkbGp4REN2NGwzVDFIaVlIdDZLQmd5enFYZUNS?= =?utf-8?B?ei94WkU4ZFY3cTlnSVQydEord3h0OW4xUnZuVEk3SjZiNnNFdkhFcFBoTU02?= =?utf-8?B?dXk0MEx3ckcvVHdvVmkyS25QeGtoTjg3b1RQUStlMkdPYlV6MThZc1ZaSXBa?= =?utf-8?B?a1NXZm5Hc0M0TjFrM21pUWhpeUV3cDNBWHBiSzVmWTMyaWd3c1E5QVNQcVB5?= =?utf-8?B?TlBYSTZWUUo2U3N6UjBUZ0UvS1dRVzdqSTF2Z3ZqbG9GbG5UUHdRTmd4VDBQ?= =?utf-8?B?ZFdUVU1GWlo1Q2M3eWt5a05xbllGa1pweXZhZ3ZaU3FZd20vVEJaTGVFbDVu?= =?utf-8?B?UkNsanQ0MEJLVjA4VmwwbVliUlVuWXlqV0ZUNWRROVNtTFZ4ZUIxeHFWMHRk?= =?utf-8?B?TkUvZGtOYUlkbUdSZlMzejRGMG1ham91YlNjdUsxYnhvL0IwZHFkNStOVU5t?= =?utf-8?B?cm9ObVUza3k1OGRUZUtqQTNCVUhYcjRPa2thUTdXcjYweko1ZG1DbW9wK1hy?= =?utf-8?B?YmUxM2JtbkxxWk5hSGVkUGcxaXdjdWdQbGs0cGJaK3hMRGp3MHpNMHVoV042?= =?utf-8?B?dWJ0cmJWYklaYUd0czFFQTl3N3d0UTBtVjV4bHordlpHUjNHQ2ttZ0RiemdM?= =?utf-8?B?T0VkYVRHL1IvSzZYOWpoQmJrTWx0UXNqSVJhVmVrYjYrT25ZMExZWklybkN5?= =?utf-8?B?S0wrdXJkdWVXcEpvSDVuWnhOZ0dwZkwwUElaenBBMkYrbzVmbEhLQWNEaGQ3?= =?utf-8?B?UHFoNFZnUGY5MU50bVVnQXdkenZzUm04YmlQL3dSOGg3VGU0UmErUDJpOG5L?= =?utf-8?B?TjJiT2NWOXBNb0VrdWNrUVVKUWpxclZlbXpqSDVYYm1nK0ViRWR2Qms3VERS?= =?utf-8?Q?ATQ7a+SJuwKuloU?= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB2531; 6:F1Qm9O6jnQzNtvOqRkASvcQG6Kb1OyaqkGJ2iIqZytGeSRnVlycU4jWNBCLXM8YNXNcGEYHsEvMSaAB7D9OzOtnasnNlHdlSjLoSnQ0ZuA/qeAuSoit307v1gWISvMab+0VHoBnptag8Uh4bhCyYH7SDc5shOx+JAx/8lFZ5USYBJJ0NqcT2IZxahhhJdacabwbyKKpnwUG1V3AdqQ/y9l4AXrM0DfVSyVmUb2rgfPWbvSJRziBBd4q6vziUkuu8oQRU6k7YRd9vFwPgRiyujhS+wbx75pJQNCcRDNS7FimNln7mpL9Rzm6fcIosBqyF/2ErYQwbT72E/NHsLfxdzg==; 5:zmOJe57Pj5/KfkhOXdypFIWTGdsmCdfYkhfM6zSm+5d1KGLEKwmszReipIup1ndcJ6SryqwM3Xd6eOLyYLQDqChG0MTYnbrZGIyVWNSPPGW8ZguQ6gs0k41rXmRVvtFut48gsjk9v0RRIku8pXOTBA==; 24:9fFhi8eBhv8/nvcGEuQcu1BOWoL1mSHg6asFEizAf8BS/2hm0eToXsmqJIESip/+v+odY8jYpNC8zzMgszwdAc8vpdeiwl3zhXG+XXu0y/U=; 7:31kN80nofAV7AgDM8N1DJQE53KsuCO/nDqcGNCxMaodc0DBHkzt7lmZVb4p7RIe4kJVt0DTWfZCzY6ZEdtpGCsaOfa+WcpMf6vGkPGbrHSYaBmsi7ngNy/E2IveFNGbGaABeLRnQq7fzItO3VyYR55lrT/vfBTlUQNs0PZdOjEd8Ps7HP03RWwn6GnL4BTu+1f+cJqcdeVLVUsqoIuasr7JPKpAoDpeZwKHobRhLdiCu/XYbfhShFQmO9q1dYjHEXxBU9gTjSiE+mB8tzC0RiVxpY68051tnd7L+A08Aq0DTxrctPsEYi1xmzzp8Eq6o SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2016 13:26:07.1362 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0701MB2531 Subject: [FFmpeg-devel] [PATCH v3 10/25] avformat/movenc: deal with AVMEDIA_TYPE_DATA by using AV_CODEC_ID_META X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: =?UTF-8?q?Erkki=20Sepp=C3=A4l=C3=A4?= , OZOPlayer Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This includes creating an AVCodecTag table ff_codec_metadata_tags as there are for video, audio and subtitles. The tag table is used for mov-compatiblity. Signed-off-by: Erkki Seppälä Signed-off-by: OZOPlayer --- libavformat/isom.c | 5 +++++ libavformat/isom.h | 1 + libavformat/movenc.c | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/libavformat/isom.c b/libavformat/isom.c index cb457dd..1a90d00 100644 --- a/libavformat/isom.c +++ b/libavformat/isom.c @@ -355,6 +355,11 @@ const AVCodecTag ff_codec_movsubtitle_tags[] = { { AV_CODEC_ID_NONE, 0 }, }; +const AVCodecTag ff_codec_metadata_tags[] = { + { AV_CODEC_ID_META, MKTAG('m', 'e', 't', 'a') }, + { AV_CODEC_ID_NONE, 0 }, +}; + /* map numeric codes from mdhd atom to ISO 639 */ /* cf. QTFileFormat.pdf p253, qtff.pdf p205 */ /* http://developer.apple.com/documentation/mac/Text/Text-368.html */ diff --git a/libavformat/isom.h b/libavformat/isom.h index 7b521d8..89b15ea 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -35,6 +35,7 @@ extern const AVCodecTag ff_mp4_obj_type[]; extern const AVCodecTag ff_codec_movvideo_tags[]; extern const AVCodecTag ff_codec_movaudio_tags[]; extern const AVCodecTag ff_codec_movsubtitle_tags[]; +extern const AVCodecTag ff_codec_metadata_tags[]; int ff_mov_iso639_to_lang(const char lang[4], int mp4); int ff_mov_lang_to_iso639(unsigned code, char to[4]); diff --git a/libavformat/movenc.c b/libavformat/movenc.c index b2e87ed..a6f234e 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -1470,6 +1470,8 @@ static int mov_get_codec_tag(AVFormatContext *s, MOVTrack *track) } } else if (track->par->codec_type == AVMEDIA_TYPE_SUBTITLE) tag = ff_codec_get_tag(ff_codec_movsubtitle_tags, track->par->codec_id); + else if (track->par->codec_type == AVMEDIA_TYPE_DATA) + tag = ff_codec_get_tag(ff_codec_metadata_tags, track->par->codec_id); } return tag; @@ -2242,6 +2244,9 @@ static int mov_write_hdlr_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *tra } else if (track->par->codec_tag == MKTAG('t','m','c','d')) { hdlr_type = "tmcd"; descr = "TimeCodeHandler"; + } else if (track->par->codec_type == AVMEDIA_TYPE_DATA) { + hdlr_type = "meta"; + descr = "DataHandler"; } else { char tag_buf[32]; av_get_codec_tag_string(tag_buf, sizeof(tag_buf), @@ -5425,6 +5430,7 @@ static void enable_tracks(AVFormatContext *s) case AVMEDIA_TYPE_VIDEO: case AVMEDIA_TYPE_AUDIO: case AVMEDIA_TYPE_SUBTITLE: + case AVMEDIA_TYPE_DATA: if (enabled[i] > 1) mov->per_stream_grouping = 1; if (!enabled[i] && first[i] >= 0)