From patchwork Wed May 12 13:02:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Danny Wu X-Patchwork-Id: 27723 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp5016455iof; Wed, 12 May 2021 06:33:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzEUWCHewnnI43Ee+vSlfbqNG1aDD7GTdGnYyGxn0ebICBm0N8rLbnuhGCv3o6YYD3cEJAZ X-Received: by 2002:a17:906:c9cf:: with SMTP id hk15mr4613924ejb.445.1620826408927; Wed, 12 May 2021 06:33:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620826408; cv=none; d=google.com; s=arc-20160816; b=dOZa4cNQQzNtwM6v4tYAJPRZPrcJmHEEVyz2jyjwqYtIF9Hu6dlYXK2nZE+snOeBH9 LotrGSEXWcq9xNiW+RLwwGo7WtZrUDwZdK4HtqRwt/dWol6mGpBNkOkfojgz4dV68MAD XJq+5owmUaXi+3OzhJdMnkpXTRiFxkfMp/RRhmAFAGTvMeeoV/kPsJAt57P82PAJIu24 GNdNns3LzTCq1qom2hG9jWnIrRAqLFBh4FVVmk0AAxtWZtpXLpMY6suqjYYsspdfwi1g NePOZO6AfIwtVldPTD/wG2ZWjjv8U9HHlkSkeGY+6DXZD43C4gnlWRWPzFeanLitddkD rlUA== 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:to:message-id:date:from:mime-version :dkim-signature:delivered-to; bh=l5hm/M6ExmRZM/gtdbquYBANqjFej0t0aCnbwLk0+Ic=; b=g6jrYrAQBwf27Zx0k7W+aoHGcYuuRH1BawPBdS4UAFHsjcrN22fgNeELBITd+1NDWd 2jv6dG54t7ZQ8yeKl7SIc2R2L42yDT3EV1e3A7WMFsRnhcHU/OFJsj6cgQVfTwOjVgIu Lxsk8PXlyT4N6tceA8ahj410Iozs7vLSjbWbYWWx8ytfLgwZonKP3bswfEDBMl/krZkT o7z1T17OWRrP/rtwSx0yxvkZyghs0/MGzw20Lyr8NInGBdHHEMsYPirugPk1sLyWwPEo xBglqJ0nww0IQNfHHhsE9qip52BLVcCbyhyX0HLMY5hQI91WhoeeqUGJtmSxiOIqcnkd KiLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@glados-cc.20150623.gappssmtp.com header.s=20150623 header.b=PUyuwhsV; 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 jx7si14670ejc.55.2021.05.12.06.33.28; Wed, 12 May 2021 06:33:28 -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=@glados-cc.20150623.gappssmtp.com header.s=20150623 header.b=PUyuwhsV; 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 B3CFA680C0A; Wed, 12 May 2021 16:33:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yb1-f182.google.com (mail-yb1-f182.google.com [209.85.219.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3444F68078F for ; Wed, 12 May 2021 16:33:19 +0300 (EEST) Received: by mail-yb1-f182.google.com with SMTP id 15so30772438ybc.0 for ; Wed, 12 May 2021 06:33:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=glados-cc.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=vyeIfluh0NmzAdFxSyljU7V/ON7INOE8hv9alTb4W98=; b=PUyuwhsVtGDXxcC3lYS0CVhF/aKXs2FbXRAplU+QMLQBHbSKp0UXAODiEMIslWTYWd bDFFfwxDFWYVUsqM29M3pmB7UPJ/HEi0Xw6BSnxvm4V63erez/lEffV7qDmQ5uRHKD0E w/ibL/PGZMYSqOw/IVRRxafhHF1Zh/2q0MZ57252NFqc0mLYjJv9vsBhVPiRYczIbCj2 G+3/X/rIpC8Yx/ueJLug8RlUkqDdavPnW8qvimEkh8RV5HSVYD76yVCvZEOF5N2GOqo/ 6xiSk0/vheWcqzsExEEJrzW0egIjZ/eat91GPdb1rOU8P/p2c8yqEmtgUXsYKeUxgUgX z3dQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=vyeIfluh0NmzAdFxSyljU7V/ON7INOE8hv9alTb4W98=; b=AscNH8iTmCOKhohX0voJlcxF/qri+4oNooU3FbGfBio09M/pnLYvZEz6BDjhWKtY8L tG4cWK3nfQi407Tvjo3qCQB/DHzKD2Y4XfbLCruBDmpUGSZnQ2u62oPk+OuXjhnSv/h/ /C/QDDxA+Q4n9ywlC8YdBvt5+URcpW7SuHNY0v2OP6NtDGwjfDxLB/6CPCxj4QK6oQej FXd+bHFIgEMqmbKMQAum7bNL7NrgeaEQmL9aGNJs2mYQGJIFlICDycpr+FyfRKDCNlEE VhnL36rAZ+EQRzIlQkkkuiaeFeYZumtsJHFgbUvEnDmgHAVaR2Wc6LX/9QUiRP+XE5Dr D6jg== X-Gm-Message-State: AOAM530msxpXmTUS7kazG7burmj8HvzXRmsJznz09jJsGcjbTX87wzEy y+3pVa3046K6tDVHu1zZU+T1/Oa9NCLaKjhjFqb0TlQI+IjH3YpASCU= X-Received: by 2002:a25:e0d2:: with SMTP id x201mr33994593ybg.352.1620824535307; Wed, 12 May 2021 06:02:15 -0700 (PDT) MIME-Version: 1.0 From: Danny Wu Date: Wed, 12 May 2021 23:02:03 +1000 Message-ID: To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] fftools/ffmpeg: Restore DTS correction for VP9 copies 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: NYB09xVzqIKj Fixes ticket 9086. Since early 2021, some of YouTube's VP9 encodes have non-monotonous DTS. This makes ffmpeg fatally fail when trying to copy or encode the V9 video. ffmpeg already includes functionality to correct this, however it was disabled without explanation for VP9 stream copies in 2e6636aa87303d37b112e79f093ca39500f92364 This patch restores the DTS correction logic, and allows ffmpeg to correctly encode (invalid) videos produced by youtube.com. I have verified that frames are NOT being cut (so it does not re-introduce 4313). --- fftools/ffmpeg.c | 1 - 1 file changed, 1 deletion(-) ost->last_mux_dts != AV_NOPTS_VALUE) { int64_t max = ost->last_mux_dts + !(s->oformat->flags & AVFMT_TS_NONSTRICT); if (pkt->dts < max) { diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 3ad11452da..67deb7762f 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -823,7 +823,6 @@ static void write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost, int u } if ((st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO || st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO || st->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE) && pkt->dts != AV_NOPTS_VALUE && - !(st->codecpar->codec_id == AV_CODEC_ID_VP9 && ost->stream_copy) &&