From patchwork Sun Jan 16 23:03:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33631 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp2273992iog; Sun, 16 Jan 2022 15:07:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJyl8eI5+TBHBFaLeze4wCaRuEhtozgggud8kmnvJjvUugJQnrK+zS4RrqmTwlBuWQMOxN8c X-Received: by 2002:a05:6402:8c6:: with SMTP id d6mr9484388edz.316.1642374437074; Sun, 16 Jan 2022 15:07:17 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gn40si6217569ejc.205.2022.01.16.15.07.16; Sun, 16 Jan 2022 15:07:17 -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; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=ugYCk4y0; arc=fail (body hash mismatch); 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=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9A6D568AFB1; Mon, 17 Jan 2022 01:05:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074032.outbound.protection.outlook.com [40.92.74.32]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 14D2668AFA8 for ; Mon, 17 Jan 2022 01:05:28 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TiJuA3kBihB4KWv6Rqei2V3GfoOqUIEfZ+eMylCLpgCc/N/zaExQgeg4lEaDv0kKZ4V19nownfHwqYkagT/TEgQrl0HuWlUBV9m2oL5By9ssY6o28oxR84kb/tJLsVE6uSkAnFSUJgmB6G/X7txiM7Pv0uuL+KPchX/uSAuF0M+XuHT5FRRMiYMuB1YTOujgOtJuOaA0YFLy2mZ60ilSQiPgbAFxMhgbSjkZA1/msigNWSDn4vEJGvLK9S4C9BdaUcvYO2MVfTh9Fs03o54FOVKJBEiypTuEcULDKWlPDhfymVsDNEh/+sGuBgqisECdVUHAWC7t/GNjXIMmpseVHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HAXPOxSXyo7fBO/37e792j42DBbyr0mNHTIbzPnLGnM=; b=LO2R6yXqbZOg3DxjrJewf5Nupy9yIr66/zvDwSeKOcygt49WInfL7qx2xSvO0J9ySTxsQgH0xqx0Sf7eGslYh4rXY5W0e5+mdvRlyU2weKnsBq0Hqg8NmG41MA66khTseidQicvQiP54HNa417kJyduu4Dxptv4yPuwE1X/dbFAJezoNV64dp4/aN1O1RQoZ5xHJKeC7Q4qKI2tHrdOQDGBYdSGGapBcEVP4fMEweAzk1SU2RSr57dAhjAd02Glv0Lsf8Hiu3nSOzmFj7DYkKbQ13kxKKovcWykdIzpWZCXjgcAu7os2dwKyz2Fa6+1pZgQeR+VxZHCkfcAQYKelBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HAXPOxSXyo7fBO/37e792j42DBbyr0mNHTIbzPnLGnM=; b=ugYCk4y072zj48I3xENndgxd1GwXewBeDx7UeDWcqz5ZzELmZ5nmUQuk+Dnfywpzkh6ZLjjpwKDjC9YFyXUkoxFZQ8tXtbSH3kdGPA1oxse0OTDwTgqXj9Fi10jN5L+jJFsYjSmAj65hEVK/PuHnBEU8zuwvG5RudPECvDGrbkfsLZwE0K6LHSNo1OwZEkQULlNwqMErS9j9ldyTYGN6sCM5e4bNbYWYQaSK2aJM7c1GxRoT8Rhsrb+tgB49JOtBvhiLyatDBcNhbGhWiQcdyEmG+J0qEaJ7LTUr8cU9IYS/RFwWZUZwIDC9530SUIQrhS1FbjYa4ZITpslrrRkWNA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by VI1PR0301MB2560.eurprd03.prod.outlook.com (2603:10a6:800:68::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.11; Sun, 16 Jan 2022 23:05:27 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4888.013; Sun, 16 Jan 2022 23:05:27 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 17 Jan 2022 00:03:59 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [7UNGhNHFP4kYoT8IlqtKSs6KcfBCMMH8] X-ClientProxiedBy: AM0PR10CA0070.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::23) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220116230405.194506-18-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b41b9fc4-7671-4e68-8f54-08d9d944af42 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiQ2WpFcKeHQajRkhOqduPns91W7IGbbnn244NMHxr+3h/ASTMRzawjjHjmktYTuejikSmGuNvhLWDL/LtKUFEXXrgCg+EXgW8NLtq78TQpDSiCQt3ZbijScYD0B/9OnILOlEeZIflqXidDdRestmQvETU3zP3Wi+2sIuG7yAX6D3/xBJeguTmeIP3bpWNEapelOKs8yqFahTF042uveMqZZsWxXsMqJ3Gi4vS6XNwhjDrEgEsl/dd16O1iqHbcUptk29k8q9ywoenoKAOugRy4mPJTOxsyVxme6vPOXKC8gQcVypRi6MrIAeSZqyhX1aAPMVdM4rSa1KAMkI7I+K4wWUsf2xAoAESUeHSlbAXbJpuoBEHFHENzcmprzLqJMTiKS0Tw4Z8XqBmcIGuxHnnp6KRBe1VLTnupY3pfkKnj1NwkRBRKR+LkjVEJ6DxJgokOJrfh/gogXnBtcwV2JB3yms9NWPDrot0FIZ/rnxE1ORjQ79NHOLv6naEJVNX6CKGX7Pa9P7ImbvOLULIy6ubl0h9PgGi1u0e+tO8K4tF2ev7Gp2ZNEkoN9gp5iH3EUrVDU//jQIX7S3Q63We7F7cO3I7FU93vf2bx3zhqOAkmn2ThivRxGBORwM3/AGfTz3CITq6w7UwKVu+e1FSUKrJZ8FnyyRzPBRu5Frj8X3uPEF6aTbD+3dVqgMIaenn3aao+qXw8Tw5NW1TLoS4jWUWsAKE/GwfZDKIpUr0m7Rc8iewOXsn1CSqM+zMFXzjjtbUM= X-MS-TrafficTypeDiagnostic: VI1PR0301MB2560:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qrQj+dgtrxqs+qBhB+tHRrjGSGyc3+ccXQr5HW7kIMUSkymONoiYB1LYkvRV8foR9Voxl1ikiA0DIBEgHR7BVPo5dBvvR9tLvCRC/bvJ8edemK0DaQjZ/8cD8rgAruWGMXuRROo564zax+OyGmro9GM84DgZyjQpZO6amwAgTzYbpDvXJwxvaF7sfD+eqAbAEjT14U+zdU/P0ZoERF/H3AbUoR4VFOkEiud2W7ouzhnQjTWTr2gOW4dq3WuxXFIU0vshLwfNMVo+0F5IDejCz5qfm177MhJys87Ddb+a6kmGGqkIoshq3WRTC7B13k1gQSOM7foxXOCGHEvI4FIODWpL2DZCb7qzpJZ9inKXLBB07AWZBCiCXoPr2qDxjYeIleUFPieiMVhJjl4E3KjHpk+eRCQvZwh/BTXkO5OQ9P5gl3UTOi8/123bMI+m8X3IohQlGn72vEVtmklswFW4y2piO3IB3YlW4AjbWwy4ijkaXmxABBO2Y4zo6usUni4CweDeMhxedldXJpbYZpjC48atjrTQr6TNuaGFLC88ztBcLsMLHumR4a3qH/HV/bWleFqnSsnUwtRka6iV5p5zkw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gvH2fW4Qq3P/O0csPfRr5YVE6EkAVYqeLu4Zn+ZuBiEmydU39xikmm3qEebtsLDPTARc4hZ0hKDiX+hM3gZ5hVflC8QnQRHpBGeIWJqXzIZgW2a/WWNvwdHD3+VlzYVVc00TQL6D+05sEi+6E8+AYxc6eqaxWz6U1tRvwOf1VPKq1ehViQ148x8qgyDqy7IbO3jt23I8dJsu3SBXL8tuJDgJxAdW9AJnRWJt7WgBRONlRgi1tCtL4BPdEGrNboY3mOk5e0YmKwITFIObKwzrhyiocLfK2zaCBaIDYhGgxD67YXlw4DtQjb9DNnGCaRPquqWSXN1DyMDwlFgYOkz7dl/7vT73g9g7TPxAl3o3kRUphQPorXls42V43mo7qHsr1OewYX33Hn+TmvkbfKHn7UdxDYyfGkfM+SD1XVrzXs5R6YtRxtU6I1lWobDE58fnnUT6liMIOkN8xCdY2n8Pm8do5lXacFeIa8ThojlrjZpeQd5jgty08y3e3na0agrPBZ51tpok2FNU/JQVcN6nryDoZ6aZ9f2ciEo9tpxmsxemoiQCtBBPEPoEGpchkoiENbzDQGqOtqot+N+CTxkiOCv2MB5mQG3gLyijzrfM3xgDty1pK4tZ9J+gi6lNDqKNUEcXtloWzye1SoDHMExzcaT5HjsVyqoLZEYe0YhatGD8D+EfZTQNSFA4QQFfVebfDNzatHj7bs4XTblhhdLuF9PcegAID2O7pwXCldejoL0+tC107LzlzTlanHpZTlWHsijooATe8aYrcepm11ScWJNT2sJ49NPsdwfW5saGb7Uftt6E0Ka1zUFzkqwpHopJKKay5b3cPcYWEp//wH4CAIkXejAIHDcBJpKQDNpmdHSECdchmc9vZ5mVKjV5cGBWE6WaskBCwSWtv6Is91QzuQouxM+ljjZStEtxytZhpYcwgrjvSkX4ygNV62PmP995C7OFyZQG/8zRF+PTJ6Qb+w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b41b9fc4-7671-4e68-8f54-08d9d944af42 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2022 23:05:27.2888 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0301MB2560 Subject: [FFmpeg-devel] [PATCH 19/25] avformat/matroskaenc: Pass more parameters explicitly to mkv_write_block 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 1/ejJKc+e4AR This e.g. stops recalculating ts again. Also pass the AVFormatContext as pointer to void as it is only used for logging. Signed-off-by: Andreas Rheinhardt --- libavformat/matroskaenc.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 4e921e3d6d..be1b3711e4 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -2417,27 +2417,23 @@ static int mkv_reformat_av1(MatroskaMuxContext *mkv, AVIOContext *pb, return 0; } -static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, - const AVPacket *pkt, int keyframe, uint64_t duration) +static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, + AVIOContext *pb, const AVCodecParameters *par, + mkv_track *track, const AVPacket *pkt, + int keyframe, int64_t ts, uint64_t duration) { - MatroskaMuxContext *mkv = s->priv_data; - AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; - mkv_track *track = &mkv->tracks[pkt->stream_index]; uint8_t *data = NULL, *side_data = NULL; size_t side_data_size; int err = 0, offset = 0, size = pkt->size; - int64_t ts = track->write_dts ? pkt->dts : pkt->pts; uint64_t additional_id; uint32_t blockid = MATROSKA_ID_SIMPLEBLOCK; int64_t discard_padding = 0; unsigned track_number = track->track_num; ebml_master block_group, block_additions, block_more; - ts += track->ts_offset; - /* The following string is identical to the one in mkv_write_vtt_blocks * so that only one copy needs to exist in binaries. */ - av_log(s, AV_LOG_DEBUG, + av_log(logctx, AV_LOG_DEBUG, "Writing block of size %d with pts %" PRId64 ", dts %" PRId64 ", " "duration %" PRId64 " at relative offset %" PRId64 " in cluster " "at offset %" PRId64 ". TrackNumber %u, keyframe %d\n", @@ -2450,7 +2446,7 @@ static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, data = pkt->data; if (err < 0) { - av_log(s, AV_LOG_ERROR, "Error when reformatting data of " + av_log(logctx, AV_LOG_ERROR, "Error when reformatting data of " "a packet from stream %d.\n", pkt->stream_index); return err; } @@ -2741,7 +2737,8 @@ static int mkv_write_packet_internal(AVFormatContext *s, const AVPacket *pkt) relative_packet_pos = avio_tell(pb); if (par->codec_id != AV_CODEC_ID_WEBVTT) { - ret = mkv_write_block(s, pb, pkt, keyframe, write_duration); + ret = mkv_write_block(s, mkv, pb, par, track, pkt, + keyframe, ts, write_duration); if (ret < 0) return ret; if (keyframe && IS_SEEKABLE(s->pb, mkv) &&