From patchwork Thu Jun 23 07:24:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 36386 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a22:b0:84:42e0:ad30 with SMTP id cj34csp3301412pzb; Thu, 23 Jun 2022 00:24:59 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uHbqNtmD9oL26jzvEYjSK1dJokjfVDqZ+1/M0oks2aL2f2TLi4IwblqTtOxKPlX34QJemO X-Received: by 2002:a05:6402:350e:b0:42f:b2c1:9393 with SMTP id b14-20020a056402350e00b0042fb2c19393mr8927072edd.11.1655969099422; Thu, 23 Jun 2022 00:24:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655969099; cv=none; d=google.com; s=arc-20160816; b=Zg8m0oTxdGCnDEBH4+O+ooYE0+4cbEFMdm2EvWQO1IDpsIb8KkdGYugZ6wSA7S/x53 9/weTxXzo/qs7lPCjgm8qMqx2yHIsNNygCpVJPWsPGpPzC77OMCRDkbwOB3FCtl2kI1C 8PMqavqmWLFXLnTiQmdIwiCZIYzQU7hounKKg0ljLk1Bdvf1qQRHwWqcOa6FX3VCLIdl dZftECKEBft94k2G8+XseeyfCJ+joaAx2tOMlyseRNtGf0U7xt0wRtHC6Ygv+2GWAqMx RHcYA20Ztsus5VO0FAs4u4i6Hws4Xgsxjg2XoYturWsyjiFGl94Gh+to3C7DJ1/Y8l8D S1Lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=DBxIfFrtMbD/40wDCTL1kKWESrpdpWbA8tJGW4Q8XP4=; b=iXkFVfhtOSP34S0H1U4z+QPow753lFxWiL+pCwk3cUJVASzD2el05dtBmU+aXd4TZt SeqD9cR4+LkMTmNcWlR1QM8S4VsdodwQHyGRfyIRFrYcVxn696hTzvN0hOhtnRCHksvA iGazsX3xIu0ET5ux7/BbVglcMJ4w7wYrDQXEyKG2pYU3471QP4zwkZbWxE1yvim0nG5A G/DBY+EiWaLNvQCUq3/XOvqaryuD/7r86fLk2M4GbVX5ZcCzhqsD5tBOOulh2vj0BJl1 u9VGT5qo2vOTabdgRkgyZzq24qo5e9z6jcCLaNo/FIEYui7NRU/6ik7PhzF/8EFYZBXg V0Ng== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="M7WfH/4g"; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id d4-20020a1709067a0400b0070bf25f1732si2369283ejo.155.2022.06.23.00.24.58; Thu, 23 Jun 2022 00:24:59 -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; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="M7WfH/4g"; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0815D68B735; Thu, 23 Jun 2022 10:24:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f49.google.com (mail-lf1-f49.google.com [209.85.167.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BDB5D68B610 for ; Thu, 23 Jun 2022 10:24:17 +0300 (EEST) Received: by mail-lf1-f49.google.com with SMTP id c4so31773845lfj.12 for ; Thu, 23 Jun 2022 00:24:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=fcbExe8cG1I3ThLOlhh3fKmilCQtn9xvoksEk+gUrp4=; b=M7WfH/4gRT5qXNyu+bm9s2Kvobn9VsTdNDndXImSBtBEMrfoC2k6/tWRONn25URD3l VBYsCmdaIpUkMRGJzMEbQ8xLtIJH72xdCf2pypfDTwJXVIW0YRDOw9i2pBzckN/GpS6U 2eRKMnRydSRsO5qct4YnqDDQpeu0wSD8np5gnmexsXiD8htBxiu4BxFuh1xZ/ClCQftU /QuWusuI7GjRd7eYnryzLPELl7oFxO0oYfVtVLo1sXPD42Np4u4YcaVq896N7ZqqM//y tVLIfAX5yOprwPerKyRYoEAwz0Q+a1yUynsVPzLFlTPQyBOlt+kXXf8VAgLAQ/j8O7ju 1piQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=fcbExe8cG1I3ThLOlhh3fKmilCQtn9xvoksEk+gUrp4=; b=4kOg8RxQ3eoObnYTONOIq1V35FqrMIeF6Cd1/cvP0xnYrnHU1RVwQUV6ftKPros7XO oQsTPu4VmF56Ik8NmaM2Uq17IqBbw0PoWaJSBCrDybR3L3JGdRKr9/UAfj6E2KYH53bk 7wtCOjW9upbZKKWUTGcBVQ8rlngayvZloGbqOqpzvQaGnjhqy7PGRGhlBjmEw8jjKHvx 1dlv6xGNWEgreMHVKugVnOQ4X1irm8wKv3gYylPyNnJoONNLXiZ7sg5IeTw6Fzrf7lFB PhBdcGkDQCk7dcQtLSgAyKrtDNMmwdLq01iAVbH6Qp3PCjaxyhNr2EhdUvzgzA5xO74b Yn3w== X-Gm-Message-State: AJIora8N1d4YyDFs7XlyNm6MM5bobiOi+Bq1NAkDa++kFIcHFtXWAKV8 3Msax+Y+esOvfDTmHr82DRU7pebt+0M= X-Received: by 2002:a05:6512:304d:b0:47f:79a8:294b with SMTP id b13-20020a056512304d00b0047f79a8294bmr4723215lfb.484.1655969057050; Thu, 23 Jun 2022 00:24:17 -0700 (PDT) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id a15-20020a056512200f00b0047f8ec3ca4esm732843lfb.87.2022.06.23.00.24.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jun 2022 00:24:16 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Jun 2022 10:24:04 +0300 Message-Id: <20220623072408.38977-4-jeebjp@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220623072408.38977-1-jeebjp@gmail.com> References: <20220623072408.38977-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4 3/7] avformat/movenc: enable handle_eac3 to handle AC-3 tracks 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: HXY3qXvjsfvW From: Jan Ekström Add the AC-3 frame type, as well as early exit from additional packet parsing in case of AC-3, as only a single packet is required to get the required information. Signed-off-by: Jan Ekström --- libavformat/movenc.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 87cd066c95..c24b11cf5f 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -443,7 +443,8 @@ static int handle_eac3(MOVMuxContext *mov, AVPacket *pkt, MOVTrack *track) /* this should always be the case, given that our AC-3 parser * concatenates dependent frames to their independent parent */ - if (hdr->frame_type == EAC3_FRAME_TYPE_INDEPENDENT) { + if (hdr->frame_type == EAC3_FRAME_TYPE_INDEPENDENT || + hdr->frame_type == EAC3_FRAME_TYPE_AC3_CONVERT) { /* substream ids must be incremental */ if (hdr->substreamid > info->num_ind_sub + 1) { ret = AVERROR(EINVAL); @@ -475,6 +476,14 @@ static int handle_eac3(MOVMuxContext *mov, AVPacket *pkt, MOVTrack *track) info->substream[hdr->substreamid].acmod = hdr->channel_mode; info->substream[hdr->substreamid].lfeon = hdr->lfe_on; + if (track->par->codec_id == AV_CODEC_ID_AC3) { + // with AC-3 we only require the information of a single packet, + // so we can finish as soon as the basic values of the bit stream + // have been set to the track's informational structure. + info->ec3_done = 1; + goto concatenate; + } + /* Parse dependent substream(s), if any */ if (pkt->size != hdr->frame_size) { int cumul_size = hdr->frame_size;