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 6030040DE9 for ; Fri, 31 Dec 2021 11:36:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1F39868B00F; Fri, 31 Dec 2021 13:36:25 +0200 (EET) 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 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: --- 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 -- 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".