From patchwork Wed Jun 5 21:13:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tomas Hulata X-Patchwork-Id: 13423 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id B34A04495E0 for ; Thu, 6 Jun 2019 00:21:03 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9336068A129; Thu, 6 Jun 2019 00:21:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 004A368A129 for ; Thu, 6 Jun 2019 00:20:56 +0300 (EEST) Received: by mail-wm1-f68.google.com with SMTP id v19so294984wmj.5 for ; Wed, 05 Jun 2019 14:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netbox-cz.20150623.gappssmtp.com; s=20150623; h=to:from:subject:message-id:date:user-agent:mime-version; bh=EoiYQ9jBCj9tzleTIt0HDYP6y0bBImmNIP2qsrzrzTo=; b=B6qemC9SPRNDFTK4krRgsQLVbPf19IiF/Y6o9gSIuj733AxBW50O03qZ8av2dj/hEm hOlyaDlKyyffHpDHcItszvvz/zbe+Q6do9hcLU1N1o0jnnjhcZyBFUVvCmBczb05HGs4 hu2ySsXFKoaQ+ol7T9mjP1RjCrB9KqXiT9ESQ+qfaXb4avGJbCrmQQmDELQaPvjKj5Zp GCAX/rHqOAw1YWpjUyf/ENooJOw1lKoKrUewyUlYqm59FvQee/CY9H0fJSGuhV8QfFRz di8iaZw5etJ1yTLan+WN594CNd7/qRAkVCeCpRI7R7kU+GYpE5pMlxJL6eSNx+l4MoUp li2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version; bh=EoiYQ9jBCj9tzleTIt0HDYP6y0bBImmNIP2qsrzrzTo=; b=DTWh+FCRfdFVoqfJ2F1Oy7N4JurySe+n8mipSREoBxcW8ffVi9824W7QszY1FMb11b yJT8TL+odfSdKhAHAbtVom7YlcFXMfrVWBbN0hBuVSD7I9iSUXAW8ZM1s2760FompSbh WyVsJXpJ1cPUYHD7Evv3XRQvXvq8mz4mXQy/Qd/5BvWZMTVWVHAmZ+wMgKQwE8D03UuH IqDPfUqPerljqO0hnahE4f4AGNCostgtxaXu0SAkP1G9xs03i9gQw284aQt/1U3NI31P gfflUCIRXTanazoDWartf80cG4TLsNhA6H6fah9OVDpkIbWaxBk5Fc64qnPsGd2yHH/J 7qFg== X-Gm-Message-State: APjAAAX3oDLmQlLxZD7vl7KiGJLWSGo0cwjBi+ZB8Uc0YsDqB1Krk/t4 KQ6IPbWu4Xnn4LYzqzUmGa0HZKqMBLU= X-Google-Smtp-Source: APXvYqz64yftTs130JMiK9ct+tUrXHTUODl6N+kiiTs5ufsXYAclL8jPKuGjUi3mdQJADSCNb1WMgA== X-Received: by 2002:a7b:c5cd:: with SMTP id n13mr5368801wmk.67.1559769202750; Wed, 05 Jun 2019 14:13:22 -0700 (PDT) Received: from [192.168.2.104] ([95.82.135.180]) by smtp.gmail.com with ESMTPSA id q21sm14591wmq.13.2019.06.05.14.13.21 for (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128); Wed, 05 Jun 2019 14:13:21 -0700 (PDT) To: ffmpeg-devel@ffmpeg.org From: Tomas Hulata Message-ID: <222fb2aa-bbab-8d28-14f0-9570ebc62b5b@netbox.cz> Date: Wed, 5 Jun 2019 23:13:20 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] mpegts pat and sdt period should respect user options 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" When mux_rate (CBR) is defined, pat/sdt period setting is now respected. In case of VBR, leave it as it was. ---  libavformat/mpegtsenc.c | 12 ++++++++++--  1 file changed, 10 insertions(+), 2 deletions(-)      // output a PCR as soon as possible diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index fc0ea225c6..5ad1f813e0 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -999,10 +999,18 @@ static int mpegts_init(AVFormatContext *s)      ts->last_sdt_ts = AV_NOPTS_VALUE;      // The user specified a period, use only it      if (ts->pat_period < INT_MAX/2) { -        ts->pat_packet_period = INT_MAX; +        if (ts->mux_rate > 1) +            ts->pat_packet_period = (int64_t)ts->mux_rate * ts->pat_period / +                                    (TS_PACKET_SIZE * 8); +        else +            ts->pat_packet_period = INT_MAX;      }      if (ts->sdt_period < INT_MAX/2) { -        ts->sdt_packet_period = INT_MAX; +        if (ts->mux_rate > 1) +            ts->sdt_packet_period = (int64_t)ts->mux_rate * ts->sdt_period / +                                    (TS_PACKET_SIZE * 8); +        else +            ts->sdt_packet_period = INT_MAX;      }