From patchwork Tue May 21 09:02:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Timo Rothenpieler X-Patchwork-Id: 35128 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp5096671pzb; Tue, 21 May 2024 02:03:48 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXOs5SIreiY/JopJMqpPI0ZnF58HQT4Z56m7T3COUGaWQiWiy+RPr9rJiLzPd7rn6DYFYLHWuwsfe0jhWvn+VGCIRAO8aXjRBPudw== X-Google-Smtp-Source: AGHT+IE6o0+U/lzpEm8GKwgEfn8SBSJwCCE5Akd8QRIScLdMHW0EDoiU6GRU26uNy4SJy+LmbJFC X-Received: by 2002:a17:906:bc90:b0:a59:c52b:9939 with SMTP id a640c23a62f3a-a5a2d57acd4mr2063917066b.32.1716282228202; Tue, 21 May 2024 02:03:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1716282228; cv=none; d=google.com; s=arc-20160816; b=GX+3On7SyzEMZGy9/wYLyfw2LPB57M7U4HPIwGN+8+11HatE05va27wSRSvihG3At1 nmn8FHjDUGxH6sO6UF1eaef7OnwnC73XMiwFbIzLE9NQjpC6BIZYKQJJBvEwTSSa8iEE CZsjByCMH4eX/5W+yCMCWZQMgm4/mrlxbvmnk2jvwJP3CIBUR+4vtshaJb5D3Q0hdrbY ty9LZBxWCwbvHpOmsPODbKL1JqEMetO8qhhEPSg114XGL4IiE2o8m6XA1WtJddD4xTXJ 50ZukhgBTx9qR1IbSYSijRBbdu4b6+LIX50xPGraGlg6MqBgOsXCmSKHWuN/DEnhQqbz SY1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc: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=BluAtpaHDPDBXURrx3NRFdU+P30jb/BaT8la9q1Ae04=; fh=LnlYe9qYwgML7nWWXqAumr7YCmPjjpEPjQf6GasgJC0=; b=vhWof7W9iTiRSKEkywESIlatMu4VwUybBWJypHmcAlNGHD+wA3THaVWkEAp33mCZRf obp52BFQSbqY2n+H7081i//bsT9IEH3PmR1S8aQVUslbyxNrEGpu4sUV3BVK9nhDx3H8 WD9V1e+9a83MGoI11EjcZGjrOfUVNXJYSofz8q7vzN5kIuURw2aA2Y1fR0nBu7e4hA6Z aGXDyFgeQxx2mb9x2tMAyuuuCZu3WKVbi/4XCr//ltH170w5E6+5qHAAOzto70gT1wl6 EUDDXw2xQ3ye0zadKyfVXK/RN6k5Np7nLActOGALSGCwWoNXIApFjJ7+QxIy20TxYIEF PFCA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rothenpieler.org header.s=mail header.b=QxP9NGzc; 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=NONE dis=NONE) header.from=rothenpieler.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a5a1794607dsi1443796866b.114.2024.05.21.02.03.47; Tue, 21 May 2024 02:03:48 -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=@rothenpieler.org header.s=mail header.b=QxP9NGzc; 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=NONE dis=NONE) header.from=rothenpieler.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DA19568D334; Tue, 21 May 2024 12:03:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from btbn.de (btbn.de [144.76.60.213]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7A17768AD99 for ; Tue, 21 May 2024 12:03:37 +0300 (EEST) Received: from [authenticated] by btbn.de (Postfix) with ESMTPSA id D335927FFD993; Tue, 21 May 2024 11:03:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rothenpieler.org; s=mail; t=1716282216; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lt++Ul6NyM0a/rkaIg9s86QpwoopD1nGhykJKvjM6ek=; b=QxP9NGzcOyZuaqLIr3HWmHzLHhs1HUPNPk3J8ENMum/JJmYRNiUYuES5tSQIHy6IVr/pna 0XN0FXB6myf/k2tw48XhS/E3UNnt+zc+NcA2gDq5kttGhkrcVilQz1eKT2CMT4642AZJga ViAAvBQ/vof8vz01JqDKz+I2had6ahuhS8RmXnzhlCdbPrif+6N8FBGxMeW81DCJzkFFRc qrThZso2PsHmZn5XiihODh8lS4O1RNkXCzQKBuwzwj9clKQOs1EWOQxAbE2K0EpArWK6yQ xuXUqtx4opwLpoucKguIwYMbrS8HaXXkxHB39UnJakRHg34t0zCp0gziT6xM8w== From: Timo Rothenpieler To: ffmpeg-devel@ffmpeg.org Date: Tue, 21 May 2024 11:02:09 +0200 Message-ID: <20240521090316.782-1-timo@rothenpieler.org> X-Mailer: git-send-email 2.43.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [RFC 00/13] flvdec/flvenc: add support for enhanced rtmp codecs and multitrack/multichannel 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 Cc: Timo Rothenpieler Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: k6BVPVMQao5U This is based on the preliminary spec for enhanced rtmp v2: https://veovera.org/docs/enhanced/enhanced-rtmp-v2 The spec is not final, and can still undergo breaking changes, hence this set is purely for comments and review, and not ready to be merged until the final v2 spec is published. There are no samples out in the wild yet, so testing interoperability with other software has not happened yet either. Specially the two other multitrack modes, where multiple tracks are in the same packet, have not been tested at all, since no software can write such files. The set can also be found on GitHub, where ignoring whitespaces makes specially the last patch a lot more readable: https://github.com/BtbN/FFmpeg/tree/enhanced-flv Dennis Sädtler via ffmpeg-devel (2): avformat/flvenc: Implement support for multi-track video avformat/flvdec: Add support for demuxing multi-track FLV Timo Rothenpieler (11): avformat/flvenc: add enhanced audio codecs avformat/flvenc: remove !size check for audio packets avformat/flvdec: add enhanced audio codecs avformat/flvenc: refactor fourcc writing avformat/flvenc: write enhanced rtmp multichannel info for audio with more than two channels avformat/flvdec: parse enhanced rtmp multichannel info avformat/flvenc: add support for writing multi track audio avformat/flvdec: add support for reading multi track audio avformat/rtmpproto: add more enhanced rtmp codecs avformat/flvdec: stop shadowing local variables avformat/flvdec: support all multi-track modes libavformat/flv.h | 21 ++ libavformat/flvdec.c | 654 +++++++++++++++++++++++++++------------- libavformat/flvenc.c | 443 +++++++++++++++++++++------ libavformat/rtmpproto.c | 11 +- 4 files changed, 819 insertions(+), 310 deletions(-)