From patchwork Tue Nov 2 10:47:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maksym Veremeyenko X-Patchwork-Id: 31274 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5e:a610:0:0:0:0:0 with SMTP id q16csp3830719ioi; Tue, 2 Nov 2021 03:48:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwrCkpxrrj17xQtEZyOjjSdkza5yYucisFxQi9QBHmLe3MZ+lRKuYgbCU19Ueh68KrsLzIv X-Received: by 2002:a17:906:3d32:: with SMTP id l18mr45697484ejf.393.1635850090621; Tue, 02 Nov 2021 03:48:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635850090; cv=none; d=google.com; s=arc-20160816; b=s2R1+0TKVh1FKHhFE96fGyzAoTo8p+5iRXC49WTNmUs9zy422chS/aLwqlfbVzcJVX VmQEL5vfwrG58dpyhxDpIjQpeDKDRWYjkdUzIY8LwxIZ/ztXEWtxZ0UhbHjW09sD4dwO N1tY/dsi7+zOipAyIZyidDCt70rBDIsyhz0EOEtTkuJ+ezolO9kbmi0teLxbdgQVTOvB dF8hBjP8g19wlwiGjHVmJIFIfRsq3PT7i+iCcNsL9+Co83rCxcRQt0urHzc98eI4Hmpa e1VuYKO03GaL5zSZh+ny89k/+QEPi4abrSoRu9IxdU193rpxIYoChDnpn9ZCugt6hv0b +jjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to:from :content-language:user-agent:mime-version:date:message-id :delivered-to; bh=MjEHcaRHKbWZ0TJJVTnfTaxxj/skAPn6ZS9UkMzdRp4=; b=i4eF4loG6jKF3oXTSznSC07i/nT0KDMQ3CjY4BrcSf2zG9oDfYITTR4z/nfeU2LI/V aYz+ppkDnQL30E7GyQAz2shSzP1sZ1FWf8VtVEEZE6SeLvgbhPRSpeuu/YsV+tX8t1Wn oeY0uvIsMGvY7y/CMYR8NAg1JzBIpHQjmRwIN55xeCLK5kkJ1eRXYWCbRn7HBZcuLOjH 8JdapGYo5pdBlrvR+0yzm87V39c5rqiz5G/xFp11ORaKV2uv3aqspORiaCOh+9S0IFcK rj3hxT9koQ38m3uZk5sGdeOlWblirwCw9vwgo0iXoU0fUJXUIcxQuOmnbcQOwWlKkalv G4kA== 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 k9si26937450edv.565.2021.11.02.03.48.09; Tue, 02 Nov 2021 03:48:10 -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; 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 76054689CDF; Tue, 2 Nov 2021 12:48:05 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from kazbek.m1stereo.tv (unknown [91.244.124.37]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BECF5689A4E for ; Tue, 2 Nov 2021 12:47:58 +0200 (EET) Received: from [10.1.5.65] (dev-3.internal.m1stereo.tv [10.1.5.65]) by kazbek.m1stereo.tv (8.14.4/8.14.4) with ESMTP id 1A2AlvfR017451 for ; Tue, 2 Nov 2021 12:47:57 +0200 Message-ID: <4b9b1e3d-3d4e-a353-d037-b9d924c808d6@m1stereo.tv> Date: Tue, 2 Nov 2021 12:47:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Content-Language: en-US From: Maksym Veremeyenko To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] Fix first_pcr initial update 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: jQxJ8Q8+mQWw One of latest commit https://source.ffmpeg.org/?p=ffmpeg.git;a=commitdiff;h=6f36eb0da71d22aadf8f056f0966bd86656ea57e claim it fixes endless loop on package generation if muxrate specified and copyts used. But actually it does not work properly if *-mpegts_copyts 1* specified: ffmpeg -y -copyts -i loewe.ts -c:v libx264 -x264opts nal-hrd=cbr:force-cfr=1 -b:v 3500k -minrate 3500k -maxrate 3500k -bufsize 1000k -c:a mp2 -f mpegts -mpegts_copyts 1 -muxrate 4500k -vframes 1000 test.ts ffmpeg generate huge file until it reach zero-based pcr value equal to first dts. attached patch fix it. diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index 35c835c..32786be 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -1693,17 +1693,17 @@ static int mpegts_write_packet_internal(AVFormatContext *s, AVPacket *pkt) stream_id = side_data[0]; if (ts->copyts < 1) { - if (!ts->first_dts_checked && dts != AV_NOPTS_VALUE) { - ts->first_pcr += dts * 300; - ts->first_dts_checked = 1; - } - if (pts != AV_NOPTS_VALUE) pts += delay; if (dts != AV_NOPTS_VALUE) dts += delay; } + if (!ts->first_dts_checked && dts != AV_NOPTS_VALUE) { + ts->first_pcr += dts * 300; + ts->first_dts_checked = 1; + } + if (!ts_st->first_timestamp_checked && (pts == AV_NOPTS_VALUE || dts == AV_NOPTS_VALUE)) { av_log(s, AV_LOG_ERROR, "first pts and dts value must be set\n"); return AVERROR_INVALIDDATA;