From patchwork Thu Apr 26 05:04:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dixit, Vishwanath" X-Patchwork-Id: 8653 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:155:0:0:0:0:0 with SMTP id c82-v6csp1506269jad; Wed, 25 Apr 2018 22:04:29 -0700 (PDT) X-Google-Smtp-Source: AIpwx49of2L1EQ+fnNa4e4N3FH3Uc1Sp15I8Oo8QuahhGZekDfaJHlQeAxldtx5tYPKdzUWau35l X-Received: by 2002:adf:c328:: with SMTP id n37-v6mr25880079wrf.91.1524719069578; Wed, 25 Apr 2018 22:04:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524719069; cv=none; d=google.com; s=arc-20160816; b=peF1nqktPwdkRDXpmbaTVW+WuMc+bF+d6sYWunUskJ3UikNvSzCq8Gz6QlvrM8Kf5E s9y98Mz1B6AaUTJsgDjG0et2jjIHZuMIJ5dLvTrwnRfj1yyT3PWHnyb0U3JSft6SZ0JI Rq3sehDPyXZ55SuUbAP39QBiTdkKVaOVRXceR13CyNG5hCta93qYE12IYx5zeZtwDL8H /nIh1dD1GHO4eoIafzdOSUUsakGjoSj1s/W6G3poj3n/Kx8ZQsnHkgPBIqx0RjqTGqKs 1VovqISKpfw6pD3BTN+iKQSMMfs+6htO9iqYk9tOX7YjP7yZIlS/14+MJB79X2NOhwpX Q//A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:feedback-id:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to :arc-authentication-results; bh=iToliPl2RD7slYMlSkJSS2RNXelrug8JLgX8j+759K0=; b=RTRVCHtDAJeQAUItZvwb6O6rYuFMwGSi6HXKp3kgU2M3mOp0mUyA/C695FsJp6iqPF jWYls4YYDQLGOUue/pfmezmxdpUA7/LXTPMF1VOlifd9Nrbt9q9OQGy0vsMZm2+0y8nn fn8RiPYaLzkiEkA5C8vLdhrYs51nPrRpfGNaKf8i0VCnfoGKDAy43pv2I/Qf4AL2voWD HbT5zlldlAfc9OHn3BxgnGdv0pvxvOFwD1c8uIyD6VLvrDGZRNrx5PNB8EFJtUI9Xjyv rh3OH5++6M73aJxOs/FQcOky/fuFLzTfW1/In27RozLJI5lZIkhG1q+m2Vr6eeFHlfCN +sYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@smtpservice.net header.s=m78bu0.a1-4.dyn header.b=FvjCHbsB; 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=QUARANTINE sp=NONE dis=NONE) header.from=akamai.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 30-v6si2085376wrd.224.2018.04.25.22.04.29; Wed, 25 Apr 2018 22:04:29 -0700 (PDT) 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=@smtpservice.net header.s=m78bu0.a1-4.dyn header.b=FvjCHbsB; 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=QUARANTINE sp=NONE dis=NONE) header.from=akamai.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2AC0E689EEF; Thu, 26 Apr 2018 08:03:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from a1i318.smtp2go.com (a1i318.smtp2go.com [43.228.185.62]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0B4EF680C09 for ; Thu, 26 Apr 2018 08:03:42 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=m78bu0.a1-4.dyn; x=1524719957; h=Feedback-ID: X-Smtpcorp-Track:Message-Id:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe; bh=DEmxhHW56RKH0mHSzX3semZyycnFX6Aw2wWAZFWQ6Y4=; b=FvjCHbsB 1LOet+AscNKM35JINSxfCEGjtnAyFxU9iGWMwZ7C4hwCOYae2k8cpIqkH41OJVHrObGozV0GWDeQe RgiPWvZHLr6yUpD2cxEDVIMxhwo7z+8XDZ+gkJyZ9uq2HJf4/n1MTqHa+QSeufflx8EjsStcAJvqq tqvrrbaKi/Ut5LKIDGOCYeIHUC1Biye+D/6AOsZeJUHkxlZWm4TEsWEixXmlXI4/V2viRzupH+v7z E8NbR8j4dZ+cyv3N1ygRygsphtV/XOS3NsHSyll4HySIKerTzr/LydA5noqcEc4zIXWx3sS4kuQHP TAYOxFst0yT9Nu1lD3aYjPGmjQ==; From: vdixit@akamai.com To: ffmpeg-devel@ffmpeg.org Date: Thu, 26 Apr 2018 10:34:00 +0530 Message-Id: <1524719040-30542-2-git-send-email-vdixit@akamai.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1524719040-30542-1-git-send-email-vdixit@akamai.com> References: <1524719040-30542-1-git-send-email-vdixit@akamai.com> X-Smtpcorp-Track: 1fUZ4iRyIOye2W.4R3JiTtyK Feedback-ID: 337386m:337386asVRLGB:337386sJeVVnH6Hs:SMTPCORP X-Report-Abuse: Please forward a copy of this message, including all headers, to Subject: [FFmpeg-devel] [PATCH 2/2] ffmpeg: handling copyts use case in progress report computation X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Vishwanath Dixit MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Vishwanath Dixit Progress report computation functionality was assuming the first PTS value to be zero, but, when 'copyts' is enalbed, the first PTS can be any big number. This was eventually causing display of weird statistics during execution of an ffmpeg command. To overcome this issue, the actual first PTS value has to be considered. --- fftools/ffmpeg.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index d9bb78a..9b71525 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -1646,7 +1646,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti int frame_number, vid, i; double bitrate; double speed; - int64_t pts = INT64_MIN + 1; + int64_t pts = INT64_MIN + 1, first_pts = INT64_MAX; static int64_t last_time = -1; static int qp_histogram[52]; int hours, mins, secs, us; @@ -1744,6 +1744,11 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti } vid = 1; } + + /* Find the first written PTS among all the output streams */ + first_pts = FFMIN(first_pts, av_rescale_q(ost->first_pts, + ost->enc_ctx->time_base, + AV_TIME_BASE_Q)); /* compute min output value */ if (av_stream_get_end_pts(ost->st) != AV_NOPTS_VALUE) pts = FFMAX(pts, av_rescale_q(av_stream_get_end_pts(ost->st), @@ -1752,6 +1757,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti nb_frames_drop += ost->last_dropped; } + pts -= first_pts; secs = FFABS(pts) / AV_TIME_BASE; us = FFABS(pts) % AV_TIME_BASE; mins = secs / 60;