From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id C8DE7422DF for ; Fri, 17 Dec 2021 10:25:01 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D988B68A830; Fri, 17 Dec 2021 12:24:58 +0200 (EET) Received: from out203-205-251-53.mail.qq.com (out203-205-251-53.mail.qq.com [203.205.251.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 250AF68A2B2 for ; Fri, 17 Dec 2021 12:24:50 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1639736685; bh=GiVdHfCXcvjALhL/3N4G1xIy29G3xirrLB4DRUjlfQc=; h=From:To:Cc:Subject:Date; b=xrRggkBX/6wDJ65SHbe1gkSaWZB8lL4KNqe00wir6EXcMcc6lrHVCHkjbgy0ZKy6X r3fKBTrHZ7YNzTTmy7XTBqa6mDyRpy6SyAgUzrTuS7M4K3vUZx3XyB2YtRJEW6pEqy iwPt2tAsfewAZAPSsuTTBK8/jtFGi63o2tTwmFEQ= Received: from ZHILIZHAO-MB2.tencent.com ([113.108.77.58]) by newxmesmtplogicsvrszc11.qq.com (NewEsmtp) with SMTP id 60919CC0; Fri, 17 Dec 2021 18:24:09 +0800 X-QQ-mid: xmsmtpt1639736649tywqsk7wg Message-ID: X-QQ-XMAILINFO: OGCswexgy68R0pHFqsEvWCrbQctzrks9/JzuKxwN21Fn3rNe+W2qkIezlR1VRJ gfQaYd3SaRDJ/8zOLBBkFnvvf2GRyg83mdh0bNK61y0CzxVqZ7037nHoXEjUIosatqxnSnkvHDPw WV+vv/r/QBYpnxfY/7CfqKsPnHhqmS/zTBU47pTTcKwRmQ1Vvd6fMcGhIBYu7GnZODLH3mGQjuHn DrJqBlgBHTKRYxYh7SV8pIuZf3S8cubomrPd9eFv1D/anyds5rTYwWemTznpGkrpLd36H9Wyh5Eb 7LrbQpAylsx4ewUp8o0RIxvyWfM8prfUVG+YRdV2DifZ5gVWStc5uA2iE0XAwz/MaEoeGGdY3L5D a3MQMaBn9UXnpGJeZI9zY3MdulrGghOoWHydzMNYsh+e3DrXwHNMajZgtptK7B4CIlL2GbFE/MvU +v0qc77H+ENooHsdK1I/E5wR8VieyP1Ygu9bVk6HNeclC/XigPSDDrqNn50JBswZfu6FkzS4rTeM Gyh2nvOv6xPJnGZSDKFZdXJEIgpkogEGJfTJmJ5FPzQZcde3oB7CU2OzT3+oIIwOI5azEOZ7LWOk aXBu2MFMrsIqKBZFQUBbwrSmv+I7IO1CSPhmQhok/fVJjGsP459ufZV7DIoI0igLSs/OTRg/7691 hF5rz8yZRCoImd9u0iKJc3izNb0cIC5DLaB6knx3HGQyuPNVh7E8DCADPGlekY7i7Mg1ZH7K4wYg PkyZkiN8yLNGZvBuKkKpKtRYyYex+8HRBZSnG9h7uuMGXPn7KSI6AoCRa3nUKbij2QbtBe2Q4QRR 1ApbjOWCkRnIoCQexNY0IabvOp8QkMoEmnBmmwpg+BVUjs6y+f1Ay1FxSkm9EE2gYVvZb2rzs48g == From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 17 Dec 2021 18:24:10 +0800 X-OQ-MSGID: <20211217102410.3570-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/movenc: fix assert failure in get_cluster_duration() 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: Zhao Zhili Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: When editlist is disabled, the workaournd method of shift dts to zero and increase the first sample duration doesn't work if the timestamp is larger than mp4 spec restriction (e.g., sample_delta in stts entry). Further more, it triggers get_cluster_duration() assert failure. This patch will drop large offsets between multiple tracks. --- libavformat/movenc.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 0f912dd012..dd92c0f26d 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -5917,7 +5917,18 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) * to signal the difference in starting time without an edit list. * Thus move the timestamp for this first sample to 0, increasing * its duration instead. */ - trk->cluster[trk->entry].dts = trk->start_dts = 0; + if (pkt->dts < INT32_MAX) { + trk->cluster[trk->entry].dts = trk->start_dts = 0; + } else { + /* Impossible to write a sample duration >= UINT32_MAX. + * Use INT32_MAX as a tight restriction. + */ + trk->start_dts = pkt->dts; + av_log(s, AV_LOG_WARNING, + "Track %d starts with a nonzero dts %" PRId64 + " which will be shifted to zero\n", + pkt->stream_index, pkt->dts); + } } if (trk->start_dts == AV_NOPTS_VALUE) { trk->start_dts = pkt->dts; -- 2.31.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".