From patchwork Mon Sep 19 13:25:30 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: 636 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.134 with SMTP id o128csp1000817vsd; Mon, 19 Sep 2016 06:28:10 -0700 (PDT) X-Received: by 10.28.133.12 with SMTP id h12mr4106755wmd.74.1474291690111; Mon, 19 Sep 2016 06:28:10 -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 cy7si22728965wjc.70.2016.09.19.06.28.09; Mon, 19 Sep 2016 06:28:10 -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 9C79668A05F; Mon, 19 Sep 2016 16:26:06 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40111.outbound.protection.outlook.com [40.107.4.111]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6AA50689F02 for ; Mon, 19 Sep 2016 16:25:55 +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=TYU7XJkornLQDEaa6kfgFyEA9YbTeCsVJkTsaA3HJAs=; b=XV+FNAyGwB8gTO+e59kuTrWaNuwdJubJxQjM+y813tzI/VIM4hiEAiuOC5U2C2AcWMGcJ2tpfS+OXFe0DKoty5eUUlWVYgd4X1sRfyuj2SUovCg7TTK0WqCh+PDP2JoM5UKkzeWZD4Sl/7bYdS8exQ0JjSMc4tMFWGre5/g+hNM= 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 HE1PR0701MB2538.eurprd07.prod.outlook.com (10.168.129.16) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.619.10; Mon, 19 Sep 2016 13:26:08 +0000 Received: by erkkise-laptop.vincit.intranet (Postfix, from userid 1000) id B59FB4F0F49; 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:30 +0300 Message-ID: <1474291548-17810-8-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: BN6PR13CA0048.namprd13.prod.outlook.com (10.171.172.34) To HE1PR0701MB2538.eurprd07.prod.outlook.com (10.168.129.16) X-MS-Office365-Filtering-Correlation-Id: 659734f2-7e33-4f89-6fd9-08d3e090843b X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2538; 2:GNlUXq9e1SJmqTi5MYEgB6RCizuhcRy6ai697UfEZY2kb00EuhCq2Rq1Pg+rGWoePMPD61z2x99lzc32u+eDz/g8Noo/DSCxxB7fwWhs00U5D1DvMCvwqNScz9KXPM025Be6CBgft0n6zD/izXLqm1ZYdC32hB338wWZg3vXqXEOX5zUDY0OLTeOdfjFvxeE; 3:9WzBqlj5GmNsQULssyF16D3lrhA3EfcbjHDLU62XLbLW70RONIdv/AFR4LjYOVx8g5z5tPzsXr3mnSNLZgcK+kp2cQP5aIe5AX+U/D9KednVYTesA7Lhyw0mn+6OJz1A X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0701MB2538; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2538; 25:SUQ3bqQNB63ZLNWhYNJK0igFVNyQ2MHekoZJIfrF2r1SbhfmGUCCqtKfaDIzXTV7Dfsrucsr1f59sQCQ3xG/6wnmo2t2SryhVPTDtM/cWsVNZMwrTHSq9PQA+XMK1zd/pl2InEp35pqOZ/MGMQJ5dyvNakr5Y2QZfh36QKQzbacZGiFb7ODb4kDniQFri6jU5opbfuMCgF8Yqi7/5+lBUqOLDrnd46zxE3t632foxMqVkZfw8a6oxYG0jUVYzHmFNs6lelAduAOxrU9EO8kntEqLClyWldcYD92Ixx98+CC0kZwHV43Dfe15MF1UVDnTiokxVwnYeEJDSicYWyO427KLQkSWg/2LAyN8oO5SgBgaBkLWiLSFNfO5xJHRzaz3JGeCWPpSREHduPt+6Sk/jDwsiqFm2Rv/5PbgUWHNfP18y1x7T5InupWupbnbISutrBmL00+U7l4BydZV72BztR2W2Sc+SxCxNO8PjgY4NYDBVhs5/00U26m7Jr/2Eu7fwLGCS1GQbrsrHMrdVXhr41NhnoV5of7+zkmw8QKT6vkgZ7BWHPTcM+iN752vGGsn8eeBSHyJZA5XoYjQQrYd3yshdQ0iZGCkzLEHqEsKNod2zzO/ls0OMmmkRok53gjwAsNbgZfNIaNcYjhgFdrRGB3GtlETmZszE49GnyuAwvnbfEHEMbHromBdZyx42ZvrpaHVgbQMTxTkPXS14cewkA==; 31:PzK05qMF1AFz5NshyhDHGK+Sx3VzsOJBzZThWYV1myAXnv+VCFsLMflO6IN5MO3RXwEyOQKC9fBOb/qisBmvB6+caQjwnNl/BhuW5fmF6FuxgSzaxx6kJ1QSn6U+sGAusD+mgRtPPaEEE8aZ9XZ4djzlilMGoPewDmJrbOodwRvWH2uT+kg4R9L8sQ78nOpukDwuHPSSYwCP4SiW0c1OyPoF/7sfScAU4WgRC9BWM/4= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2538; 20:oKF7Gk27gi6vZG9gqQkzaZpNOYhWCUhOocI+4Yy2Jq7Z7Kl5ihLgd+Q8D6yNc7wqGoyQpPMr6O7v8sqE+AcrJ8I4+0FKc6tr4gjaWFzPhTHZMCnPcpcD2y2QYkBaOcFFqm+wk4l6xLe4dcj0DTjkaZKKmUrDohqxVn7ApBQIADsdqtXjq3vh8QKXkvZ5Yxa8ZBdNWP8F7nrT6b654e7OfoF7Ws6jiipTjux4HYaZhmVKEXerx3PoM/5AyhOHlYijJcNTSAS77kWC7mP/WZ9HnxoD4efFGowKgnernXPSAhMrB6CCxFm66cjxYndsEri/ygKHgb2C5YXDARxJBc75jdme2wsLFXlKnU8PQIY5vaAffesMH/s8NzCnO08wG8ry8Gw8IApEUW4gahzd7LnmJF6d4z+Bva1Ee9Cw/ZonRn5GqoTZYAN0WGjWEvHoyp8SeUoGEtsEpyRW88g0bC77acHZJNkxU1ZHZlcikSnfOKoQkk2ZqjxeCeWtZZK/O91S X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(82608151540597); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:HE1PR0701MB2538; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0701MB2538; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2538; 4:J6VPXOgr+/eNlfbDpY/X9+vl3ENw5OYfpPh8bmmJsMcuPIvdauZIwVpdaWgOoy2FD2yH7NzdJyV1hhIqQtM/l5q504X8r1LaLJk3EoxruhZ36W/mvDxMbBsUDKdcO3YGwOA72sBKpwjq/qXcCdcFbGg5GEyKpGO9MjrARLWCjnXFVqRSsn3xKSm7T24kUEFufjrgLGxBIPnwxyvI6u1aAbCbNN+3paiyVAeGWUaSP9O/65zq/7BTtrT0qGGxkSnPHG8C4Cl5Fw7SvGS7ErbWZee3tGRAqxiZZJ9TlSJKJ/dTOIut/pgpUYfNrbzL9ryEzz/ST7eBRx1SZFQHreR5F8mL4jPnJHpwAgfhzmxVs19F6AXXjjavyZShT+gKPeVv07+tBr+nwrdA4Lf1OgXlUCJogj8Fru6dxAwmkWm+kqFCWN/haLOCPn6pYXmMPF3V8yoFYtaVZo1lcShHbY6h2w== X-Forefront-PRVS: 0070A8666B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(199003)(6116002)(47776003)(3846002)(229853001)(106356001)(23676002)(7846002)(586003)(4001430100002)(36756003)(107886002)(97736004)(86362001)(90966002)(2351001)(68736007)(110136003)(4326007)(33646002)(92566002)(5820100001)(50466002)(450100001)(2950100001)(52956003)(46386002)(2906002)(81166006)(305945005)(81156014)(8676002)(2870700001)(101416001)(5660300001)(7736002)(76176999)(50986999)(42186005)(189998001)(19580405001)(122856001)(105586002)(45336002)(66066001)(19580395003)(50226002); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0701MB2538; 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?MTtIRTFQUjA3MDFNQjI1Mzg7MjM6OUxhZHRyaE1GcGRVMjlwZGdDNHRXcU5Y?= =?utf-8?B?SzNLYjFTQWtGbmhNejF6RTFIVzV3M1Q1dTB1a1VJK0xObjUyWVcycXR5bHIr?= =?utf-8?B?Ry8yRXFBMS9TcythSjB2OXB4RjcyMjBodlVidjdRRk1wN0tUdDdJeW4xa2RR?= =?utf-8?B?cUlqcm40T0ZpOWJ5K0FXRGFUeWVSNEhsNEpHOHhPSkgzaEh4OXVvUEo0eVVE?= =?utf-8?B?SUpqb1JaMjdLbEVrRXZqeEI0WDYwR2NNSGNDK2VDS3dBRVJKcER2cUVMTDFH?= =?utf-8?B?Nm1ocjd1Wm1xdWwvTk44VFJJS2lzOFBSelJ2YXpqcDFJWEs4V2x2VytTRUNn?= =?utf-8?B?K0ZHS3JEbWFHbXVkVVVEcTM5aCtlOUE5RlhwbVRlWFRjN1lOckRwbnplV0Zx?= =?utf-8?B?cjcyVWFGV2ZCYlNJMW5xRk16Z3VaaVB1SnZ5cVBPNlQ2U21IVE1JbzI3OE0z?= =?utf-8?B?UWJtZXlWZlplOFRwSkJNRUdDNEl1b2FKckRPQVZyREJ2L1JUUVZlbWZENUpI?= =?utf-8?B?alkxSVBoYmI2b3dqcCtXdWRCWVdXWlh5bHlxd0FKVVQvdU55WVcwRElyNzlq?= =?utf-8?B?ZnF0TlF2NWhWandjRlA2d0JCNUt3QzFVNjhlQXFReHNrZHVJYmlFRGkxaElW?= =?utf-8?B?YVZtNno2TUg5QjZZQ3NRWnVITXZocXgyRytTQ1FpUDRDLzdFeFE2OXY2TlFT?= =?utf-8?B?bGlZL05EclNzcWdyRHRIUmpueU9CU2NqNS9PZEY1SEVlOFAxRzE5NFV6cHlo?= =?utf-8?B?SmFCeU8rOUVldjg5cmhhM2NrZkMvSjhRZy8wVEhxdHRwT1dsTHNCcEhSZlhh?= =?utf-8?B?d3Zhdi84Z3I4STZZN1dobWJFbjgweDdOdGl4U1d5RG5mY2dVRS9GWHptL0Nt?= =?utf-8?B?Rk5YYmlJaWE0Mkw3OGpDM1BiME5HYzIyOCtCb0JMSmZ5aHpLcUJXQzZKK0Zu?= =?utf-8?B?eXBjdkxrVUNtZEUvOHBuZlhPYk05eWJzSDZyMjBhbzVzSDRSdXh3UnE2Qk1l?= =?utf-8?B?RTA0dTc0SXd4Zis5WlNjaTl2aUNmZ01zRjBWeU9kQ1p4eC9MTUNnT1ExZG9F?= =?utf-8?B?VFNpQ2RGdCtQYmttWlFwWWtWWXkzMVNPRXh2eHVvcExpaFdBVTFxQ01wdVVE?= =?utf-8?B?NksrV0xBcDZsUTVkanhpMUJUS1pRTndpT3hoS09XTHBkMUkwRjNhZjZobTdH?= =?utf-8?B?U0hjSS9CdTM3TGN1RThOZ3ZRU2RodWlNWHZmakRVekRJNENsRUoxWDdZa1c5?= =?utf-8?B?ZnRpSnNpVmtteld0SndaOG8zTmRtMkg4QlE3cjRoaHRvcnZuM09OWVdhQ2dV?= =?utf-8?B?MjhZeHMwc0FLNlNidURTTFNabmZndnBkSUUreHlubjBXcDI0ckhrb3hySTgz?= =?utf-8?B?anhpZTFhT2s3anBWRW1oN3BKbk52ck1haXR4YjdMY3RWUm5OWTROeGE3Rnl2?= =?utf-8?B?T2ZQRVRKRGZqR3pyME44d054S0dDaHZLeWRNdktzRFFGcUZIa0dvT3M1YmR0?= =?utf-8?B?YmZaYmVNYkE4U1hIeGYxRGFFYmprYkV6UUJZMlI1Y2RwRGJyN2FHNnMyRE9O?= =?utf-8?B?aUFDb0dPb3MwR0VHcmZOKzBFeG5pekYxUmRWZWNVRWJOYkZMNUZWSEFyblF1?= =?utf-8?B?T2ZQSnRQUFBkSFBlWmhUUW8vSElSN09Db2d5WDhTMWMwTjNtNmhSU1NDRjA4?= =?utf-8?Q?Tq1tlDHcGxJGhQodDAkQQE0YU5zcSAr3g+M1iliOD?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2538; 6:fKri65RJ7+id86V9FR/wGZbSnDdVCjK4YnXtzUY2dqZLlMoEjnPclcN6BdnDCWCwKm9gqhxZ2uoVIBc4O2052cJmRqw+2pA+zETczYzJD0rngiNxlnNw5lf3HUS9ThtwCEJ18fFGsfrzKr+IYksUAIo9jbAVP5xbChdKxneDKaawCZ+EKaR0Ezm1GCF1lRqjzGJi07ch8U80nOgRjhq7qo6Jch2S/sweU4F0zVLlsyiS5P4wbig4aR9nd7zk3PF61Jv3A1/bmzjSLQisrlSkTXt4s+VzBNtQ2mb262suIjdch3qRxE1pg/lcHlffkigHvXK7DilI5N1VmmDH3fm1Iw==; 5:hiiyNts8U7UgSneGmTWkA0AfVMDVGyUVCESYPb8wjGKCoPKV2gJrDwXSw1qvpMv9FlgWp23y/5PnalLuJLopN1UPu7KcokFr+BTCar6AcVaBaX88x6FCkPzS1QLnmvyHIsIpF70hvTRaWZNe+t/PLQ==; 24:qW7vHKMeQCtQXFW6vbh7qrHzXYODyIWZPcHDDIymOCmr4IdZP9tGnzgnafR9trL1xiXrM0dMhNiG4zq6f+kQ+Mwstul5k6Hx+Iz3ZQgscgI=; 7:9DVCjoQ14Qmazk4hjbHjfx41A3oBvsc3DRnX26Ac6B8openudvQ+uLLunD1O6vUGnNTj4J3iAxliJcHEW8yOSgU6HSuiC7CX641NiuxRqdcsPstH1VLTnHTsbgzjBGk4Xtbs2mNc9xbGV6l2WHctkGf/YNktWiqhZMjg9XWaVpmM/XXS4AJI8eoET1Hu1aUrMERb3RTeCbwWEMWoU5nlEktuYoBMGrC9NaXk8eUdHmA7cLj02xK2C/NH+Pf5xoSNTtgVIgYTXSyZkE/IcZ1GkQrzh+Q7p9/nzBWAEN0Qr5Z25f6YNEBXV8TKsLZ2vJUP SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2016 13:26:08.5430 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB2538 Subject: [FFmpeg-devel] [PATCH v3 07/25] avformat/mov: mov_read_tkhd stores alternate group to AV_PKT_DATA_TRACK_ALTERNATE_GROUP 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 is done only if the option read_alternate_group is set as to not change the behavior when copying tracks. FFmpeg automatically assigns track groups (when no AV_PKT_DATA_TRACK_ALTERNATE_GROUP side data is not available) by the track indices, so if the track indices would be changed, reusing the original alternate group from the track would likely by unwanted, because the reassignment of alternate group would be skipped. Signed-off-by: Erkki Seppälä Signed-off-by: OZOPlayer --- libavformat/isom.h | 1 + libavformat/mov.c | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/libavformat/isom.h b/libavformat/isom.h index 609b7b7..7b521d8 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -242,6 +242,7 @@ typedef struct MOVContext { uint8_t *decryption_key; int decryption_key_len; int enable_drefs; + int read_alternate_group; } MOVContext; int ff_mp4_read_descr_len(AVIOContext *pb); diff --git a/libavformat/mov.c b/libavformat/mov.c index ff4c91c..82450e9 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -3539,6 +3539,7 @@ static int mov_read_tkhd(MOVContext *c, AVIOContext *pb, MOVAtom atom) MOVStreamContext *sc; int version; int flags; + int alternate_group; if (c->fc->nb_streams < 1) return 0; @@ -3565,7 +3566,7 @@ static int mov_read_tkhd(MOVContext *c, AVIOContext *pb, MOVAtom atom) avio_rb32(pb); /* reserved */ avio_rb16(pb); /* layer */ - avio_rb16(pb); /* alternate group */ + alternate_group = avio_rb16(pb); avio_rb16(pb); /* volume */ avio_rb16(pb); /* reserved */ @@ -3630,6 +3631,17 @@ static int mov_read_tkhd(MOVContext *c, AVIOContext *pb, MOVAtom atom) disp_transform[0] / disp_transform[1], INT_MAX); } + + if (c->read_alternate_group) { + int *alternate_group_side = + (int*) av_stream_new_side_data(st, AV_PKT_DATA_TRACK_ALTERNATE_GROUP, + sizeof(int)); + if (!alternate_group_side) + return AVERROR(ENOMEM); + + *alternate_group_side = alternate_group; + } + return 0; } @@ -5682,6 +5694,8 @@ static const AVOption mov_options[] = { { "decryption_key", "The media decryption key (hex)", OFFSET(decryption_key), AV_OPT_TYPE_BINARY, .flags = AV_OPT_FLAG_DECODING_PARAM }, { "enable_drefs", "Enable external track support.", OFFSET(enable_drefs), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, FLAGS }, + {"read_alternate_group", "", OFFSET(read_alternate_group), AV_OPT_TYPE_BOOL, {.i64 = 0}, + 0, 1, FLAGS}, { NULL }, };