From patchwork Sun May 17 07:24:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 19721 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 A7873449CD1 for ; Sun, 17 May 2020 10:52:41 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 81C63680B6C; Sun, 17 May 2020 10:52:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f196.google.com (mail-oi1-f196.google.com [209.85.167.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 865F66804D5 for ; Sun, 17 May 2020 10:52:34 +0300 (EEST) Received: by mail-oi1-f196.google.com with SMTP id s198so6299841oie.6 for ; Sun, 17 May 2020 00:52:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=ME7IUSqnmAr7j/HFXVy4q34QZtYUQxCBJ0sxZwClQbg=; b=lw2E58M8imG9Ckih8QELNvcr/NRCKP6l6HNSn1l49l//Gt5bGGe8yCigIfcjqB7ySO L7WrD8ECL3/omXJ6trLY5P82Xl7GMexWlY9Ee8b+JRbXky6qoSvZNiHRBYAMHgvX6gSo ENmZbiLN7L3IjNuRCUQAeiK1kIWf0G/iKwH/JOvw5cBkhwMWumZaOLoF05XsqGcqsrYx 4SLATTvkjODOXXmO6BeMZQGOq5hms+0g5OmlvdApFIFAAmL2dEkUNYjlv0DS11wm0ZlH XvH5iLgZGqy5mEwxuiyc20zb4bC3U2I5qpaHK2LMvKROspF58Js4Ord0kuNyiMjV8RdS FAVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ME7IUSqnmAr7j/HFXVy4q34QZtYUQxCBJ0sxZwClQbg=; b=EHaYiRlpa/e1HpKke6X4upqRl+UhrzOfYh6ZWFykRl/KIVIeVKdmjE7TcdDY/e7eNP EnKQxIDd+J7S2oE8Cwo1jEl2k81/Nf7TTJrGP3B89XNM1rPWlwIwmsy5gGL300P06STl LtBzvsMB2NQznjdHOEPiAOo5TBpcBCC0QqXDU65F62AJkLOCqqvNspZkJuJnbBXxKdgC SlQdkUwE+6DAnKR8Oi0aIZkjAvVrB3neuzrwSJmk1nT+hF0Qas8Ek4s23JlT5jEm5ZdK mm2SmoAqx1lMDxpr9Hk7ans86AcX+SR6VNiDqhr29hEhi4MfyBUWsi1s638A6EmbfHxI L0VA== X-Gm-Message-State: AOAM5331hojejsbE3htWCwkhxcGvAJMLRthYgLXU9EhOcdeytjVxfUcv lrVSeAxcqirOPZ/BsqGsOu05it5N X-Google-Smtp-Source: ABdhPJyWGNyl3Ju+kUPNbUgkxv+GV3VXG6vrFRlwyIdSAVzj3uaND5Fxsv0zQQH4IwYCml7/xdF9iA== X-Received: by 2002:a17:90a:7e4:: with SMTP id m91mr12599560pjm.155.1589700301875; Sun, 17 May 2020 00:25:01 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id w186sm5840740pff.83.2020.05.17.00.24.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 May 2020 00:25:00 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 17 May 2020 15:24:44 +0800 Message-Id: <1589700286-4129-1-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 Subject: [FFmpeg-devel] [PATCH 1/3] lavc/aac_ac3_parser: improve the raw AAC file bit rate calculation 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao Now we just use one ADTS raw frame to calculate the bit rate, it's lead to a larger error when get the duration from bit rate, the improvement cumulate Nth ADTS frames to get the average bit rate. e,g used the command get the duration like: ffprobe -show_entries format=duration -i fate-suite/aac/foo.aac before this improvement dump the duration=2.173935 after this improvement dump the duration=1.979267 in fact, the real duration can be get by command like: ffmpeg -i fate-suite/aac/foo.aac -f null /dev/null with time=00:00:01.97 Also update the fate-adtstoasc_ticket3715. Signed-off-by: Jun Zhao --- libavcodec/aac_ac3_parser.c | 9 +++++++-- libavcodec/aac_ac3_parser.h | 2 ++ tests/ref/fate/adtstoasc_ticket3715 | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c index 54e4598..0746798 100644 --- a/libavcodec/aac_ac3_parser.c +++ b/libavcodec/aac_ac3_parser.c @@ -97,8 +97,13 @@ get_next: avctx->audio_service_type = s->service_type; } - if (avctx->codec_id != AV_CODEC_ID_EAC3) - avctx->bit_rate = s->bit_rate; + /* Calculate the average bit rate */ + s->frame_number++; + if (avctx->codec_id != AV_CODEC_ID_EAC3) { + avctx->bit_rate = + (s->last_bit_rate * (s->frame_number -1) + s->bit_rate)/s->frame_number; + s->last_bit_rate = avctx->bit_rate; + } } return i; diff --git a/libavcodec/aac_ac3_parser.h b/libavcodec/aac_ac3_parser.h index c2506a5..b04041f 100644 --- a/libavcodec/aac_ac3_parser.h +++ b/libavcodec/aac_ac3_parser.h @@ -55,6 +55,8 @@ typedef struct AACAC3ParseContext { uint64_t state; int need_next_header; + int frame_number; + int last_bit_rate; enum AVCodecID codec_id; } AACAC3ParseContext; diff --git a/tests/ref/fate/adtstoasc_ticket3715 b/tests/ref/fate/adtstoasc_ticket3715 index 49fa3eb..3b473ee 100644 --- a/tests/ref/fate/adtstoasc_ticket3715 +++ b/tests/ref/fate/adtstoasc_ticket3715 @@ -1,4 +1,4 @@ -4110be924e21846d0e174fac679b062e *tests/data/fate/adtstoasc_ticket3715.mov +3e63cbb6bb6ec756d79fab2632fef305 *tests/data/fate/adtstoasc_ticket3715.mov 33324 tests/data/fate/adtstoasc_ticket3715.mov #extradata 0: 2, 0x00340022 #tb 0: 1/44100 From patchwork Sun May 17 07:24:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 19719 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 A673344A90F for ; Sun, 17 May 2020 10:30:37 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 85BFB687EC0; Sun, 17 May 2020 10:30:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A107C680BD1 for ; Sun, 17 May 2020 10:30:30 +0300 (EEST) Received: by mail-pg1-f195.google.com with SMTP id u5so3178203pgn.5 for ; Sun, 17 May 2020 00:30:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=VZBe8+vlIONyekIW1e1XJHwlL85dN/zYmzTLny8TrQs=; b=R2skFSPqP7lF3j6KDsP0s58XO0Xxsmj4++3XvmkkqVY3o/hXw61KYgeNMeU8QJx224 V2x46Xtu/Z7deCP7Bjxq0pZs5r/fdPAArhfAImw+9fpa16YQko0YuIO1AcwI5jRPTKuJ a8z4O52RG/I6tboy1emmv+JdWMqVKgDkcHW1mkZlvxv85tmYI7wenWdoFP+A3PCrnAUc af7Rae7muKAIbGuNpxDM3xw8BfQYeLGXjXraJI2cSHwgLLY4iO6oq4piBw2928gLtf8h TaZQudhaC0/KO/qQidUQtxUA6I3L31SeCETiNclXv74RGi7M7cnCathdZn3cHoR9Yyi2 0bYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VZBe8+vlIONyekIW1e1XJHwlL85dN/zYmzTLny8TrQs=; b=C625SNIJj6/HguqUi+qw8G6Hmk5uGKdom4M8RaxA0SCQJOjylo2nqnE88V+Wv1DASh xX5iKN5YweabV7JHBiosuW/4B5WbyanEv4G42pJMZQZYCSmxiNVLZgb9OV5odnsJ1INx 2nolLwDVnM6iJBMZk5Pqlc8A7TgPhnu0n029vCSEGTWjRAxmOdKeTvsUzg1DEzN40DsE hw7VKigxPMrdbDkqx5BnghWMZymJ7s688WNATJi7dp4I1ym4uQw//9hIpT0F3eM0XS4j I9vd/FgqVcbMdz0qU0vGPfWV9FbIg/8gAOQ6CpOBeADM8JtF6ro5hwtIg3E8JD76LdEo 216w== X-Gm-Message-State: AOAM530DJwtcAeoPLrdDzzbLK8vyWAK1YwNBlt+UpLoG7arFgPnRnRC2 hwWiV+BmInIlQ7IchvAnqLWcW7Ur X-Google-Smtp-Source: ABdhPJwcY93V7eqJoRVR2StKRTt3tlugHk/CPh8ku8VXmMw44XdxFt/qPjGFyzUEi6hIAYMwSJHYHw== X-Received: by 2002:a65:5a8b:: with SMTP id c11mr10173364pgt.215.1589700304853; Sun, 17 May 2020 00:25:04 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id w186sm5840740pff.83.2020.05.17.00.25.02 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 May 2020 00:25:04 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 17 May 2020 15:24:45 +0800 Message-Id: <1589700286-4129-2-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1589700286-4129-1-git-send-email-mypopydev@gmail.com> References: <1589700286-4129-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/3] lavf/utils: fix start_time dump when the value is AV_NOPTS_VALUE 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao The command: ffprobe -show_format -i ../fate-suite/aac/foo.aac -loglevel 99 will dump the trace message as follow when start_time is AV_NOPTS_VALUE [aac @ 0x55bf8e1f3dc0] stream 0: start_time: -326791809695.818 duration: 2.174 [aac @ 0x55bf8e1f3dc0] format: start_time: -9223372036854.775 duration: 2.174 bitrate=120 kb/s after this fix, will dump the start_time with "N/A". Signed-off-by: Jun Zhao --- libavformat/utils.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index e6158d8..d7fdd72 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2983,11 +2983,24 @@ static void estimate_timings(AVFormatContext *ic, int64_t old_offset) AVStream av_unused *st; for (i = 0; i < ic->nb_streams; i++) { st = ic->streams[i]; - if (st->time_base.den) + if (st->time_base.den) { + if (st->start_time == AV_NOPTS_VALUE) + av_log(ic, AV_LOG_TRACE, "stream %d: start_time: N/A duration: %0.3f\n", i, + (double) st->duration * av_q2d(st->time_base)); + else av_log(ic, AV_LOG_TRACE, "stream %d: start_time: %0.3f duration: %0.3f\n", i, (double) st->start_time * av_q2d(st->time_base), (double) st->duration * av_q2d(st->time_base)); + } } + + if (ic->start_time == AV_NOPTS_VALUE) + av_log(ic, AV_LOG_TRACE, + "format: start_time: N/A duration: %0.3f (estimate from %s) bitrate=%"PRId64" kb/s\n", + (double) ic->duration / AV_TIME_BASE, + duration_estimate_name(ic->duration_estimation_method), + (int64_t)ic->bit_rate / 1000); + else av_log(ic, AV_LOG_TRACE, "format: start_time: %0.3f duration: %0.3f (estimate from %s) bitrate=%"PRId64" kb/s\n", (double) ic->start_time / AV_TIME_BASE, From patchwork Sun May 17 07:24:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 19720 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 1523D44A468 for ; Sun, 17 May 2020 10:32:49 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DFDC4687F31; Sun, 17 May 2020 10:32:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 65135687F21 for ; Sun, 17 May 2020 10:32:42 +0300 (EEST) Received: by mail-pg1-f196.google.com with SMTP id f6so3187328pgm.1 for ; Sun, 17 May 2020 00:32:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=CjDzDRLmKXnp4K/mA02aA4yRsWiN+qBKgTo1HPRbjpI=; b=R6QsLasR6SwFLNl8umKJNi2Pn3NblDL+jNz2uCJWx0DlD/KjpfUMZVLbFFp7r1SmTy gZDMY42BCRiEoK9OMlscLoEM4+ruQJTi65Yc7dpnXe9kWE8HsqHAllzc9058WkaaonNz YFOXC9B2xU2U6n1/FyzkyxFzJyjT14wM9IecaBE5s5L4WeAlPtDXcO20fiWacR3zfXDc RyHifIskpw1sCzdTnpXQCo6kBK5d8ui+hlTGBO8bHZeuWlam3dsExNE0aLtyKKamMbSd yDKWPPsu0c/dom+5KYUM6402NQ2MggaxpIEnU6gjSekhO+P5GiM6sOdBxJrQGXkKrqpx Kp/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=CjDzDRLmKXnp4K/mA02aA4yRsWiN+qBKgTo1HPRbjpI=; b=bsIB0jWNjjdS9/h9TmOf6kwEonvTEqdSj3s7W4ML/XWhnNwJQOgH1nOO1NrJAg3RDo xhyfX3ck7CBQl/x9Kfy3ygOIiriSVALkicgsk8GTGblDsO3bE7l9DjFxyWVBQfUc0lWk Hh8zZnZXDb52RflW/sqwMzK+KmJX+RnY7O995Vsg6aL1ud///g3OdtJJ2ciAWd4asmNG 9EgV1CFSpyUcf+baoIuTBWRs5kZVeORyeyCPVhj7GGlXqpRoHJTGyyjv8OWK9+F3m7Lw Upr4o8iuA0bQwnXJ/SgXaLrt9Hs5tZ8CELLFHKo+IY682ex5NrG6JJQaXgF1N2707LZL Eu/Q== X-Gm-Message-State: AOAM530ZcI7Y/I6MyFWBhWDfmEX32ZPxzR1Mxt/l7U85t4e/Vi2L0gtJ i2677UgdEF53DDsXGPZvrOHaaPC7 X-Google-Smtp-Source: ABdhPJzqns6XwBGdU/L76uRb0dfQFLj3veFcODOrLjYifB+ReIj/x5T2dOxLFrUhrBlhgxy7t7pHpg== X-Received: by 2002:a62:3287:: with SMTP id y129mr11797373pfy.167.1589700307903; Sun, 17 May 2020 00:25:07 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id w186sm5840740pff.83.2020.05.17.00.25.05 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 May 2020 00:25:07 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 17 May 2020 15:24:46 +0800 Message-Id: <1589700286-4129-3-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1589700286-4129-1-git-send-email-mypopydev@gmail.com> References: <1589700286-4129-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 3/3] lavf/utils: Reindent after previous commit 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao Reindent after previous commit. Signed-off-by: Jun Zhao --- libavformat/utils.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index d7fdd72..1798f70 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2988,9 +2988,9 @@ static void estimate_timings(AVFormatContext *ic, int64_t old_offset) av_log(ic, AV_LOG_TRACE, "stream %d: start_time: N/A duration: %0.3f\n", i, (double) st->duration * av_q2d(st->time_base)); else - av_log(ic, AV_LOG_TRACE, "stream %d: start_time: %0.3f duration: %0.3f\n", i, - (double) st->start_time * av_q2d(st->time_base), - (double) st->duration * av_q2d(st->time_base)); + av_log(ic, AV_LOG_TRACE, "stream %d: start_time: %0.3f duration: %0.3f\n", i, + (double) st->start_time * av_q2d(st->time_base), + (double) st->duration * av_q2d(st->time_base)); } } @@ -3001,12 +3001,12 @@ static void estimate_timings(AVFormatContext *ic, int64_t old_offset) duration_estimate_name(ic->duration_estimation_method), (int64_t)ic->bit_rate / 1000); else - av_log(ic, AV_LOG_TRACE, - "format: start_time: %0.3f duration: %0.3f (estimate from %s) bitrate=%"PRId64" kb/s\n", - (double) ic->start_time / AV_TIME_BASE, - (double) ic->duration / AV_TIME_BASE, - duration_estimate_name(ic->duration_estimation_method), - (int64_t)ic->bit_rate / 1000); + av_log(ic, AV_LOG_TRACE, + "format: start_time: %0.3f duration: %0.3f (estimate from %s) bitrate=%"PRId64" kb/s\n", + (double) ic->start_time / AV_TIME_BASE, + (double) ic->duration / AV_TIME_BASE, + duration_estimate_name(ic->duration_estimation_method), + (int64_t)ic->bit_rate / 1000); } }