From patchwork Fri Jun 17 13:04:37 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: 34749 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a22:b0:84:42e0:ad30 with SMTP id cj34csp120165pzb; Fri, 17 Jun 2022 06:05:05 -0700 (PDT) X-Google-Smtp-Source: AGRyM1srbYdm7H73wUh2+bA693ZQNj7nGsqymAiEWmMg/hlMEK61FkvsYKqDsWS6nrZ+vhpdX+Y2 X-Received: by 2002:a17:906:e098:b0:711:d05c:89c5 with SMTP id gh24-20020a170906e09800b00711d05c89c5mr9304579ejb.470.1655471105347; Fri, 17 Jun 2022 06:05:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655471105; cv=none; d=google.com; s=arc-20160816; b=CSbqKwSl1PaPZj1eznEM5ddPHXQPQK/T6zEYrGuPA40MdjwRJwTM6xS1M5H/qDdUcw ihE6R5OcZHgQWV4oBBrQjMQlGdcow2z/VVh+rLzPIBRnFDQLLsVgrnUjx78VXszwzzPT CiTtn2H4ihpmVHeta0PVfmJm39egXULfZwf8Z71/uXFbAcvRZVcYIOL+j5KmHlDgJqYk zv5TKaXFgYTteuO8BpO8s79tp5OU1qYl0HqzpeTFeZuqLS2rDkzrOF/4OMGfby3blDy1 s0RljnfcbvwQKIbUItgQdYjeepYxwamiVMaGGLnhofFXVwjG0Z0NKGAeJx6IHGtjtt1p mc1g== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=F/hWfK647RgFH7iSGpPX4/MbiA4veutdJl5V7wntOrc=; b=V5WdbMq3rt8KNYcCBkTG9WzTXt28gD7jyiyWGjT9/q9BCaDN22b6rns0pA1sbcUp1v 98WMNYQajN++ScCLHudORHOk2FNe/gaYF3fFypRNQFS+7WdGGrtXHHAAJ6QlIq7XwOAd /VhbrYVj6+9einHNQ7SopcJ+YP/oh5UEUsp6MpvmLfOXpAiDOCrA4ZTctxBU0g1TdDyU PpjpbxfZZW8TwCBtCfJY8obQisNxHP+N/ETmocgZE5YZqCrHnAOVhCDlLyiHzxd9+3Vv H99+CywTohl2I3zGrbp27bAgJfNvusDtnqRocyNODhFG1zlmu8STxHPiS4v92YBLqGcg A68w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=mLJ6fxgu; 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 dk12-20020a0564021d8c00b0043567edac44si298392edb.185.2022.06.17.06.05.03; Fri, 17 Jun 2022 06:05:05 -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=mLJ6fxgu; 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 287C468B8B6; Fri, 17 Jun 2022 16:04:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3481868B610 for ; Fri, 17 Jun 2022 16:04:51 +0300 (EEST) Received: by mail-lf1-f51.google.com with SMTP id c2so6897673lfk.0 for ; Fri, 17 Jun 2022 06:04:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=8ZAVubc17/s4EHtBBgcylLLLL+ivgOw8uUXfOsFPAfc=; b=mLJ6fxguKsL5SA1gy6GF1xnikc3Fx7/zNeyfiURjlk6hgBHGYAkXitahDKEEonVMFI xcWvwQGTNOgH2reEBE1erVEw4x3eIWMSOJ7sjViRPEAAtaEMWBJfuKFmkVhaG1OXLsKa +N+/yOoq4QKkKvs2vxOiYl/VB5dExxc9mDwyEEwWrlPX9AjQHKCNEJ41t3xnPqJc8+iS t/N/YgIYgnk4UaczPiamsq2sZ++6qIAu5a+08n8YPKdX4MX9UyBBxWjUDn1wr0XdvmPa LTbVvR1GeOTSIT2FWjylyjC0+pupwfiJFpWc/yCJtTi8ihmrE8gJ/44QLtAK25bHmQ/v fx4w== 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:mime-version :content-transfer-encoding; bh=8ZAVubc17/s4EHtBBgcylLLLL+ivgOw8uUXfOsFPAfc=; b=MyafVTZ0TMM2IZKAK1A5aioHSLvTMPH3mTZFNe30zjkA0xO0jokAt6ZatIBrhtoul/ jOci0hU+DEHjnFRZ/yUmMe8HXixIq+dUpD7RmN+L1Re6lTTb4fN7NtodQWT10BihSgbr bFnXjB0TS9Si1LXGHuU6DhENUJsp8OypDTs+ISFPJU/eXCbw4L/4zTktoW3e0i9MzqN4 XLXGkfyA/0ne2teJWeH+u30s8Lu8iKjm5zJT84QSkUWFrjqgRhSuRCjgKI2fUQAlAjU+ qcM4gMnoqgNrUYjVep2aCl47saDfrGyysR1X7pOOXTPvKUIdp01amIKcTK+BttDhhWHm JVHw== X-Gm-Message-State: AJIora+TnAkbXTblj7uRtiyEZd9mO2ZcUjewVvP0UV8g7L17zzVUwZkw 0pmX4P8+Fm8KeM/dEuubmG6sUZdtM9Y= X-Received: by 2002:a19:f819:0:b0:47f:1330:93d2 with SMTP id a25-20020a19f819000000b0047f133093d2mr5917999lff.604.1655471090146; Fri, 17 Jun 2022 06:04:50 -0700 (PDT) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id k20-20020a192d14000000b00477a287438csm638487lfj.2.2022.06.17.06.04.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jun 2022 06:04:49 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 17 Jun 2022 16:04:37 +0300 Message-Id: <20220617130443.188377-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 0/6 v2] avformat/movenc: normalize on AC-3 parser usage 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: 8E5YVS6nUpTi The simplified parsing currently in `mov_write_ac3_tag` trusts the content of the packets a bit too much (the AC-3 parser returns all data fed to it, including any possible data before the start code), while the existing E-AC-3 logic does proper header validation by utilizing the (E-)AC-3 parser. Thus, normalize on AC-3 parser usage for both AC-3 and E-AC-3. Difference to v1: * Instead of expanding the avpriv parser interface, make the bit rate table available to libavformat as well as libavcodec. This also theoretically allows the calculation based on data rate, thus allowing the correct bit rate to be signaled with bsids 9 and 10, which have their effective bit rate and sample rate values divided by 2 and 4 respectively. Jan Jan Ekström (6): avcodec: make AC-3 bit rate table available in a separate header {configure,avformat/movenc}: enable AC-3 parser for movenc avformat/movenc: enable handle_eac3 to handle AC-3 tracks avformat/movenc: move eac3_info definition so that it can be used for AC-3 avformat/movenc: utilize existing AC-3 parsing workflow for AC-3 avformat/movenc: handle OOM situations when parsing AC-3 headers configure | 2 +- libavcodec/Makefile | 8 ++- libavcodec/ac3_bitrate_tab.c | 22 +++++++ libavcodec/ac3_bitrate_tab.h | 33 ++++++++++ libavcodec/ac3tab.c | 6 -- libavformat/Makefile | 1 + libavformat/ac3_bitrate_tab.c | 22 +++++++ libavformat/movenc.c | 121 ++++++++++++++++++---------------- 8 files changed, 148 insertions(+), 67 deletions(-) create mode 100644 libavcodec/ac3_bitrate_tab.c create mode 100644 libavcodec/ac3_bitrate_tab.h create mode 100644 libavformat/ac3_bitrate_tab.c