From patchwork Wed Dec 13 19:30:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 45120 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp4501504pzf; Wed, 13 Dec 2023 11:31:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IElPvw+rvYDtqZhrX8Vy55KOpCv+CMewPR/1DkjGeyAjrUrT+jqRQMO6QwZ2W2bKDUQX4A1 X-Received: by 2002:a17:907:6d1d:b0:a1e:eecd:6f88 with SMTP id sa29-20020a1709076d1d00b00a1eeecd6f88mr5425857ejc.77.1702495882097; Wed, 13 Dec 2023 11:31:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702495882; cv=none; d=google.com; s=arc-20160816; b=ULwZ/jzC6//FtP2X5tjVKGyVrvl6OD2zeN6hPjKzKruzoCrDmnHwisWlo27zB98B15 UPCA9HEfanITaqhhgIVSd5bMW/TRgMSCPNfBqGTqOUA760xeMHBAtveCE7LsE1/G78by o2fuHeH2xakGcAgJuZWolY4+a4aUS9IWT/MyN2m9hM5ClSKMQ/vgkn3A+Mrn+2nGoHYi sSAd2ziy41GSeS95eLr1LNnroEVRMBsYxoqTXXDel47UB00CrfVLN/ydW2Bbx/YadSMY 0/ii6QaX+nhHlS1LLSQB5HjfowkSiLNMxoo1elO4Kz/uimkZ11CPNHa2dY4dzmtr10A8 rvYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:delivered-to; bh=g9/OJtS0JfDrxihmT3Dwl5ZVPJ/zcP+X0aD16ZssEDA=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=tmSG1eq+R+/uU+dEJ2337L7jn1XeNXB+plqPGbRmQTGefIBtfZH0lqWPRwDILkxmVn /G4kxKs5Sby5gz16IYSaUBvWVv7mEWfUConDIQSTE1qFbspP+1oCIj908KZT2DopNJ8g eNkIJgQD2YOGr166R0qk6Owz06kiTeFtF3jvT/MgSinckkxPf0INgn7CB2VyxSz7kfdr I26MWuIm5opxXgDhGDSs8oKOrGeqjVx1Z206ngJ7VWrZofOw69trO4/7euDqOiuF8Kqo +VplnTcBNtLbh0JGfL7yrr4TOFUu8ldo1e362dL5mwuRRq5x/tQ9W4dg947VekowOx1J 263w== ARC-Authentication-Results: i=1; mx.google.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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f10-20020a170906138a00b00a1cc640cc0asi5361243ejc.982.2023.12.13.11.31.21; Wed, 13 Dec 2023 11:31:22 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4012968D0FE; Wed, 13 Dec 2023 21:30:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9B12968CDD1 for ; Wed, 13 Dec 2023 21:30:28 +0200 (EET) Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id 4F9141CAE for ; Wed, 13 Dec 2023 20:30:24 +0100 (CET) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id tqeh76wZODRS for ; Wed, 13 Dec 2023 20:30:24 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id 7BD771CAF for ; Wed, 13 Dec 2023 20:30:21 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 921B23A07D5 for ; Wed, 13 Dec 2023 20:30:14 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Wed, 13 Dec 2023 20:30:07 +0100 Message-ID: <20231213193007.17471-12-anton@khirnov.net> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231213193007.17471-1-anton@khirnov.net> References: <20231213193007.17471-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 12/12] fftools/ffmpeg_sched: track dts+duration as last_dts 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: wdCoRpYvL1R7 This should be slightly (probably negligibly) more accurate for scheduling, but mainly it improves the final reported time. Reported-by: Paul B Mahol --- fftools/ffmpeg_sched.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fftools/ffmpeg_sched.c b/fftools/ffmpeg_sched.c index b1c7db776e..263b0094ca 100644 --- a/fftools/ffmpeg_sched.c +++ b/fftools/ffmpeg_sched.c @@ -192,7 +192,7 @@ typedef struct SchMuxStream { //////////////////////////////////////////////////////////// // The following are protected by Scheduler.schedule_lock // - /* dts of the last packet sent to this stream + /* dts+duration of the last packet sent to this stream in AV_TIME_BASE_Q */ int64_t last_dts; // this stream no longer accepts input @@ -1619,8 +1619,8 @@ static int send_to_mux(Scheduler *sch, SchMux *mux, unsigned stream_idx, AVPacket *pkt) { SchMuxStream *ms = &mux->streams[stream_idx]; - int64_t dts = (pkt && pkt->dts != AV_NOPTS_VALUE) ? - av_rescale_q(pkt->dts, pkt->time_base, AV_TIME_BASE_Q) : + int64_t dts = (pkt && pkt->dts != AV_NOPTS_VALUE) ? + av_rescale_q(pkt->dts + pkt->duration, pkt->time_base, AV_TIME_BASE_Q) : AV_NOPTS_VALUE; // queue the packet if the muxer cannot be started yet