From patchwork Fri Dec 31 11:36:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 32963 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp13890840iog; Fri, 31 Dec 2021 03:36:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJw+6MtoSEI12Lu6lFiNH0s2d73stKLS4mSMd2ovsdqlFYJz0jz1tdBzQP0sULQBGRbII3X2 X-Received: by 2002:a50:9d48:: with SMTP id j8mr34949134edk.192.1640950599574; Fri, 31 Dec 2021 03:36:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640950599; cv=none; d=google.com; s=arc-20160816; b=CO3jKtB9+GuGko7aMkSV6G4mcAJscOIVspm5NfLZskaf5wvPlQwNYWyCg1VQXQ7grG hEUuNbcxuwMU1Y9rZwICMvGOyJWbemOyIUUXrSer6yrkjPLb84PcNK/7h+hPn9WZoANN z5bU+qCvhtnJg3cEde3y1by2M2jrL/8WQluWQY9nJOiBrk5UFZ5IEWoVgBdY2dGPmjHN r6nQdYz45LR8mVq6zZxNKwXhBLrR9rPwljlcVC9Knn1smojbM0Hf7lw8n18t3seWnTwu hnM4OW7C+WzVfNOVNGZIhS5XnSSqd4/SG3PFSlljr6JsPMwKQsWRlVfdsfXv0yrd4g8e IUIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=G+p2MTkxSF/KUb3HFZJRKMrzJ4sxYUFOTJjRVydyOr8=; b=MnHkIwDCvIfhWE3vTF8qdK90ngA7PAfnts3azS/No6aMQb9SsuSgrz1yXJCrhk3ON+ CYj1ZGE+hWkVrmY4zH35Wa83kmOuVkdtOF59osQxycDpzNCxVTMOtAw+ffV1mb2TjH2A 18Bj7Np/xg3SF5IegbZlojD7ZGrY95RCzO2z6qtcgWccPo7EoRtL20OCTV+taWY+/UA9 CWOJBl6lAtRFeH7Rm3qxpqw8Oz3OwGUVt1DcmwLT1ugZWqWQUq9gG60zarkuKvzmax06 c+zV9qE2eZvL2Row8OSkxPR6+zjKdO+KFJ3QfmSLYXnRMN6Djm8g0cf0mrAyxjFr8mm0 CZDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=A12De5YD; 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=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gn22si15028034ejc.845.2021.12.31.03.36.39; Fri, 31 Dec 2021 03:36:39 -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=@foxmail.com header.s=s201512 header.b=A12De5YD; 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=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5F10768B012; Fri, 31 Dec 2021 13:36:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-27.mail.qq.com (out203-205-251-27.mail.qq.com [203.205.251.27]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 306D368AFAA for ; Fri, 31 Dec 2021 13:36:14 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1640950571; bh=ttNiJALYmnX83gSR6vaqmzhI4CHuI9pKcT8TzSkK0cA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=A12De5YDuzMLBBJTB+YqSgqWzuAiBYE2p9em6U+zHdo6NA5z9BsufO+xA6pCEAZqO Qhs/sCdeMHfryz3AOH4p/nUnVek42+pIfDXHwn3+yxdkVr4sjbbD+mlX1xczfyOd8k VRPfS2DgY01WaX2z6vo6wma28VTwyAI3qsw8iaZ0= Received: from ZHILIZHAO-MB2.tencent.com ([113.108.77.69]) by newxmesmtplogicsvrsza5.qq.com (NewEsmtp) with SMTP id 9089FEB7; Fri, 31 Dec 2021 19:36:08 +0800 X-QQ-mid: xmsmtpt1640950570thxhwynb7 Message-ID: X-QQ-XMAILINFO: NDRjUSQj2Mff24k5zUIN9p9yJItpgnOASIK1i0p3R1H1N6tvlVlZo1v8Eh+1RM 9dsp3ucfAn2nt3GpUTOX+puzRxlv74Lk+pz9PAeD6hiDmqBJzyocq8BtEppQeqOug18EUrnpvLqb M2i7wqQqC66PAKyDPgGVNVCe1bB8Gm5YIabY7qz1Y6tPOLk+Ls3QQvcjOHfYqRgqmdr/rD7M/qoR nDFz2xuyvN7wDJaZ/ugONC6WyCSbpaaOyQDacMxoqv7IKgDKc+wl8tQyPsdKuIe4yRpIlgaKqyED Z90S9HJrVXamjt51UqiXJ9jLX916cEp4TpI3zthT/wdjPhFVPknR0Hie2+jRUYc6JRFBo0S3TnKf vU5L64BfzNyB2mfbZzHgx8JpxUYbRJ5u5g7+8U4pJ0GRwwPa2FGEB8mqobvOE75YAGGaLORSOcfv 84jPxp62PWAjWp68VMUt1+YCmi/R75ZTlehojHEjp72bpunX/osZe8I7BVStarYRfWX2NWdqjkrs gklO0wWmhQriO4YgaSI1USvXQnr2ENam3l1Sg2Ctsvr9careQdajtwQPjzN6rht/JLzE1EIwnMN+ 1uDy7vjPWdIBoKXOf7ED6qqVocYpgF45fFl3NCkzJJl+HsGh7Wd2V5P7n5ZmJkArxulFlpDjdbZj OL+NSrXLMnNnFsceJCjqGHj/px9QfYVlB2s+56HJup44R2IKffAh1YJtQKcX77LHesa/pjKvanYJ a3PSahyc45/t+dZlFr9vF2qevfkYTBhtmw0pqUdJ1r/ujthQxnrMYPQkqkv4dllMi+zGgMXulsRC 2+Z775y+Wj85uFMp/zuHiCcFcIB0pICs1JuEpj2xPE8GmOkYlJlz/umLW/APiTCNZDI05EC3SLzg == From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 31 Dec 2021 19:36:10 +0800 X-OQ-MSGID: <20211231113610.85358-4-quinkblack@foxmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211231113610.85358-1-quinkblack@foxmail.com> References: <20211231113610.85358-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 4/4] avformat/tests/movenc: test dealing with abnormal timestamp 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: hTXuXge+bpmp --- libavformat/tests/movenc.c | 30 +++++++++++++++++++++++++++++- tests/ref/fate/movenc | 14 ++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/libavformat/tests/movenc.c b/libavformat/tests/movenc.c index 2af72f11c7..79de20ee75 100644 --- a/libavformat/tests/movenc.c +++ b/libavformat/tests/movenc.c @@ -248,11 +248,14 @@ static void init(int bf, int audio_preroll) static void mux_frames(int n, int c) { int end_frames = frames + n; + int has_audio = 0; while (1) { uint8_t pktdata[8] = { 0 }; av_packet_unref(pkt); - if (av_compare_ts(audio_dts, audio_st->time_base, video_dts, video_st->time_base) < 0) { + if (av_compare_ts(audio_dts, audio_st->time_base, video_dts, video_st->time_base) < 0 || + (frames == end_frames && !has_audio)) { + has_audio = 1; pkt->dts = pkt->pts = audio_dts; pkt->stream_index = 1; pkt->duration = audio_duration; @@ -787,6 +790,31 @@ int main(int argc, char **argv) finish(); close_out(); + // Abnormal difference of timestamp between two streams. + do_interleave = 1; + init_out("streams-timestamp-offset"); + av_dict_set(&opts, "movflags", "frag_keyframe+empty_moov", 0); + av_dict_set(&opts, "frag_duration", "650000", 0); + init_fps(0, 0, 30); + audio_dts = INT_MAX - audio_duration / 2; + mux_gops(1); + finish(); + close_out(); + do_interleave = 0; + + // Abnormal timestamp jump. + do_interleave = 1; + init_out("streams-timestamp-jump"); + av_dict_set(&opts, "movflags", "frag_keyframe+empty_moov", 0); + av_dict_set(&opts, "frag_duration", "650000", 0); + init_fps(0, 0, 30); + mux_gops(1); + audio_dts = (int64_t)(INT_MAX) * 3 / 2; + mux_gops(1); + finish(); + close_out(); + do_interleave = 0; + av_free(md5); av_packet_free(&pkt); diff --git a/tests/ref/fate/movenc b/tests/ref/fate/movenc index 81ea75f372..a5614f49a7 100644 --- a/tests/ref/fate/movenc +++ b/tests/ref/fate/movenc @@ -151,3 +151,17 @@ write_data len 900, time 0, type sync atom moof write_data len 908, time 1000000, type sync atom moof write_data len 148, time nopts, type trailer atom - 3be575022e446855bca1e45b7942cc0c 3115 empty-moov-neg-cts +write_data len 36, time nopts, type header atom ftyp +write_data len 1123, time nopts, type header atom - +write_data len 280, time 0, type sync atom moof +write_data len 288, time 666667, type boundary atom moof +write_data len 129, time nopts, type trailer atom - +60d2f9877f29bd154b0047dfbca8e36a 1856 streams-timestamp-offset +write_data len 36, time nopts, type header atom ftyp +write_data len 1123, time nopts, type header atom - +write_data len 588, time 0, type sync atom moof +write_data len 472, time 666667, type boundary atom moof +write_data len 280, time 1000000, type sync atom moof +write_data len 288, time 1666667, type boundary atom moof +write_data len 205, time nopts, type trailer atom - +15951eb265243ad827446117f3a24099 2992 streams-timestamp-jump