From patchwork Tue Dec 15 17:13:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Gaullier X-Patchwork-Id: 24574 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 1E752449E7A for ; Tue, 15 Dec 2020 19:13:33 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E4D92689ADA; Tue, 15 Dec 2020 19:13:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from srv-infra-1.infra.inf.glb.tvvideoms.com (unknown [213.205.126.156]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6F364687F13 for ; Tue, 15 Dec 2020 19:13:27 +0200 (EET) Received: from cji.paris (unknown [172.16.3.159]) by srv-infra-1.infra.inf.glb.tvvideoms.com (Postfix) with ESMTP id 7F01620353; Tue, 15 Dec 2020 17:13:25 +0000 (UTC) From: Nicolas Gaullier To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Dec 2020 18:13:24 +0100 Message-Id: <20201215171324.99-1-nicolas.gaullier@cji.paris> X-Mailer: git-send-email 2.27.0.windows.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/dolby_e: set constant frame_size 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: Nicolas Gaullier Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Fixes pts generation. Setting frame_size in dolby_e_init() or get_audio_frame_duration() can result in a bad duration value for the first packet if dolby_e is muxed in a container having a different sample_rate (ex: container @48KHz, DolbyE @44.8KHz). Maybe adding a parser to dolby_e would fix the issue and makes it possible to set frame_size at decoder init which seems the best place. --- libavcodec/dolby_e.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/dolby_e.c b/libavcodec/dolby_e.c index 429612ec08..b0e6d6aee3 100644 --- a/libavcodec/dolby_e.c +++ b/libavcodec/dolby_e.c @@ -577,6 +577,7 @@ static int filter_frame(DBEContext *s, AVFrame *frame) reorder = ch_reorder_n; frame->nb_samples = FRAME_SAMPLES; + s->avctx->frame_size = FRAME_SAMPLES; if ((ret = ff_get_buffer(s->avctx, frame, 0)) < 0) return ret;