From patchwork Tue Sep 6 16:26:59 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 452 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.134 with SMTP id o128csp674139vsd; Tue, 6 Sep 2016 09:27:24 -0700 (PDT) X-Received: by 10.28.230.3 with SMTP id d3mr22524171wmh.114.1473179244155; Tue, 06 Sep 2016 09:27:24 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dw15si31604106wjb.134.2016.09.06.09.27.20; Tue, 06 Sep 2016 09:27:24 -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 0939B6806C6; Tue, 6 Sep 2016 19:27:09 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net [217.70.183.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C43AA689FCA for ; Tue, 6 Sep 2016 19:27:02 +0300 (EEST) Received: from mfilter49-d.gandi.net (mfilter49-d.gandi.net [217.70.178.180]) by relay2-d.mail.gandi.net (Postfix) with ESMTP id B4746C5A53 for ; Tue, 6 Sep 2016 18:27:11 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at mfilter49-d.gandi.net Received: from relay2-d.mail.gandi.net ([IPv6:::ffff:217.70.183.194]) by mfilter49-d.gandi.net (mfilter49-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id BT8Hua1UdYCk for ; Tue, 6 Sep 2016 18:27:10 +0200 (CEST) X-Originating-IP: 213.47.41.20 Received: from localhost (213-47-41-20.cable.dynamic.surfer.at [213.47.41.20]) (Authenticated sender: michael@niedermayer.cc) by relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 01E69C5A50 for ; Tue, 6 Sep 2016 18:27:09 +0200 (CEST) Date: Tue, 6 Sep 2016 18:26:59 +0200 From: Michael Niedermayer To: FFmpeg development discussions and patches Message-ID: <20160906162659.GR4692@nb4> References: <20160905144152.27460-1-u@pkh.me> <20160905154125.GD4692@nb4> <18951cbf-4621-ee49-8bc2-af6160554e3f@gmail.com> <20160906025706.GG4692@nb4> <20160906121835.GL4692@nb4> <20160906122112.GM4692@nb4> <20160906151030.GN4692@nb4> MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Subject: Re: [FFmpeg-devel] [PATCH] ffmpeg: drop format specific stream copy heuristics 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" On Tue, Sep 06, 2016 at 05:45:46PM +0200, Hendrik Leppkes wrote: > On Tue, Sep 6, 2016 at 5:10 PM, Michael Niedermayer > wrote: > > On Tue, Sep 06, 2016 at 02:39:11PM +0200, Hendrik Leppkes wrote: > >> On Tue, Sep 6, 2016 at 2:21 PM, Michael Niedermayer > >> wrote: > >> > On Tue, Sep 06, 2016 at 02:18:35PM +0200, Michael Niedermayer wrote: > >> >> On Tue, Sep 06, 2016 at 04:57:06AM +0200, Michael Niedermayer wrote: > >> >> > On Mon, Sep 05, 2016 at 10:04:35PM -0300, James Almer wrote: > >> >> > > On 9/5/2016 12:41 PM, Michael Niedermayer wrote: > >> >> > > > On Mon, Sep 05, 2016 at 04:41:52PM +0200, Clément Bœsch wrote: > >> >> > > >> From: Clément Bœsch > >> >> > > >> > >> >> > > >> These adjusted codec fields do not seem to be in use anymore and prevent > >> >> > > >> the convert of ffmpeg*.c to codecpar. > >> >> > > > > >> >> > > > ./ffmpeg -i ~/tickets/4914/xdcam8mp2-1s_small.ts -c:v copy out.mxf > >> >> > > > fails, no output anymore > >> >> > > > > >> >> > > > ./ffmpeg -i matrixbench_mpeg2.mpg -c:v copy -t 1 test.avi > >> >> > > > the output now has 600fps > >> >> > > > >> >> > > Even with this code in place the resulting stream in the avi is reported > >> >> > > as 100 fps. > >> >> > > >> >> > that seems to be a regression since > >> >> > 6f69f7a8bf6a0d013985578df2ef42ee6b1c7994 > >> >> > > >> >> > IIRC the intended timebase is 1/50 for this kind of content > >> >> > (allowing the support of interlaced and field duplicated content to > >> >> > appear later) > >> >> > > >> >> > > >> >> > > And with or without the code, the resulting files play the > >> >> > > same with the players i tried. > >> >> > > >> >> > Higher framerates / finer timebases need noticably more space to > >> >> > be stored in avi, thats not the case for other formats and thats > >> >> > one reason why avi is treated as a special case. > >> >> > > >> >> > ill try to look tomorrow why its 100fps since the previous > >> >> > codecpar patches. Though 100fps is not nearly as bad as 600fps > >> >> > 600 has ~6 times the overhead > >> >> > >> >> This regression is caused by ticks_per_frame beiing incorrect > >> >> > >> >> Ill send a patch to fix this > >> > > >> > patch attached > >> > > >> > >> We don't have time_base in codecpar, so why do we need ticks per frame in it? > > > > We need both in some form probably > > For this regression ticks_per_frame ATM is enough. > > For time_base theres code to copy/access it bypassing codecpar > > > > The way it seems to be currently is that there are fields which > > are needed and either they are > > in codecpar or > > theres some tricks to access them from code sheduled to be removed > > (which will work only as long as the code isnt removed) > > or things just dont work. > > > > > >> > >> Which time_base does it modify the interpretation of? The field should > >> be bundled with that, then. > > > > the AVCodecContext one, ticks_per_frame is already in AVCodecContext > > the AVCodecContext ticks_per_frame though is not exported after codecpar > > while the codec timebase still is just not vissibly through codecpar > > > > Maybe that part should be fixed then, wherever we export that to > AVCodecContext, also set its ticks_per_frame properly? > It just feels bad to export a property here that standing alone > doesn't mean anything. > > So fix the export of ticks_per_frame for AVCodecContext, and if later > on we decide we really do need time_base in AVCodecParameters, and > can't fix whatever needs it differently, we can then include both in > there. attached [...] From ae128325081392610475b62d0c20165e0cb9536f Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 6 Sep 2016 18:10:41 +0200 Subject: [PATCH] avformat: Export ticks_per_frame in st->codec Suggested-by: Hendrik Leppkes Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 4 +++- tests/ref/fate/copy-trac4914 | 4 ++-- tests/ref/fate/copy-trac4914-avi | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 7d23c4a..76cbff4 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3825,8 +3825,10 @@ FF_DISABLE_DEPRECATION_WARNINGS st->codec->height = st->internal->avctx->height; } - if (st->codec->codec_tag != MKTAG('t','m','c','d')) + if (st->codec->codec_tag != MKTAG('t','m','c','d')) { st->codec->time_base = st->internal->avctx->time_base; + st->codec->ticks_per_frame = st->internal->avctx->ticks_per_frame; + } st->codec->framerate = st->avg_frame_rate; if (st->internal->avctx->subtitle_header) { diff --git a/tests/ref/fate/copy-trac4914 b/tests/ref/fate/copy-trac4914 index 9301c86..c977f30 100644 --- a/tests/ref/fate/copy-trac4914 +++ b/tests/ref/fate/copy-trac4914 @@ -1,2 +1,2 @@ -84316a64b609052d9974891686fbf607 *tests/data/fate/copy-trac4914.mxf -566329 tests/data/fate/copy-trac4914.mxf +8868ae16d99ed03916e9dc7105285471 *tests/data/fate/copy-trac4914.mxf +560697 tests/data/fate/copy-trac4914.mxf diff --git a/tests/ref/fate/copy-trac4914-avi b/tests/ref/fate/copy-trac4914-avi index e23affc..0ee6675 100644 --- a/tests/ref/fate/copy-trac4914-avi +++ b/tests/ref/fate/copy-trac4914-avi @@ -1,2 +1,2 @@ -e948f10c90f526ae2c0cf234e1f54128 *tests/data/fate/copy-trac4914-avi.avi -480886 tests/data/fate/copy-trac4914-avi.avi +26e4202638bc384b82d2b5eb4d33a5f0 *tests/data/fate/copy-trac4914-avi.avi +479494 tests/data/fate/copy-trac4914-avi.avi -- 2.9.3