From patchwork Sat Oct 7 16:24:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34996 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4e24:b0:15d:8365:d4b8 with SMTP id gk36csp510120pzb; Sat, 7 Oct 2023 09:25:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE+/y4NIugSGyK0kyp2UEsCT+c4uVX5XwRnv1cPJA2u9yBDsecqAXJd1s85oVpRwcqFwvTV X-Received: by 2002:a05:6402:354:b0:530:c34b:8277 with SMTP id r20-20020a056402035400b00530c34b8277mr8610426edw.6.1696695912481; Sat, 07 Oct 2023 09:25:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696695912; cv=none; d=google.com; s=arc-20160816; b=blycKM0Nz1Ok3OTY6fObbrWS/m1GegfYFaBdN2YFHa1cMvvUJYV0Tv5Iro1emdJQo8 U3nK3V4Yi5Zo+UNGjs8ilpoyCidWKOn3ebOQjpRuKyigbDrE5ArXa/+3UhYIXvK/eS9R aUAFIkBX25BkYQKEE5lHQ6VW1J+QdPsbU0QQxLyNhEUw5Iq/bEd8MbZ34YOwrd+7PItv 7mupra4OVcIwVg6EIEDeRavLisFEUn0IO/zWbxbHMpv0Z3E8kddGSPqrerKz0DIQ+AKU w5oZcbXyuh15abNipFQrKHdg5FR1zMVKhzRwC/EsR6oLoOsYsc0r3NYmukyLyGOAcctq LHiw== 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=VH3P0Y7osGtM4uGWVSzXrYOW8ItyOt+To9p6krVepGw=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=LdQ84UfXMwEp/ZPMEZhSoC+ioUxR0BzyGydYtOAudcav8iCzNLyGmDJ31zYdd3ztoD lvpGWDarZ9sgyP5rQxwy7qCOgftJ9eaNXfXCryQc1PFu4v+i8pSUr8SbSEdJmONamoTx ZtCqyk4rURhCvA67GEABGkFUa53BuVvga2u/4y7trmdHPK0fOFt/mSx8lWRd/cOH63Pu aURUTd0ypkhPIOYCZrCfXWzK7pldmSTqMrhc+5TPbT/3EleyyVQPZCnASO1gsyYroyqB JcQRJaMBzQpRyfNvn/zrotkrblU/axtR5RU/dDixZY+dF82e8vOn5QKz2z/g/3aqe/oY wYaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=A6T55lr2; 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 y16-20020aa7c250000000b00538f46f91a4si2755227edo.577.2023.10.07.09.25.11; Sat, 07 Oct 2023 09:25:12 -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=20230601 header.b=A6T55lr2; 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 F3CFF68CA62; Sat, 7 Oct 2023 19:25:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A293868C9E2 for ; Sat, 7 Oct 2023 19:25:00 +0300 (EEST) Received: by mail-oi1-f178.google.com with SMTP id 5614622812f47-3af608eb34bso2094378b6e.1 for ; Sat, 07 Oct 2023 09:25:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696695898; x=1697300698; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=XZqHXMwQbzqh55aDsx4al0aQ80eXDXXJsbSyCbEWwzc=; b=A6T55lr2bSxGUJulMnHlWe2FeL7MWYbLwIl7JHf9TDZxzLQrqmla71Z13q2XWI8UZF aF2BBDY/LWqUTpmeCtAVbmXWryP/f14yBpUy1uYjXRalKns5GSbWlhUAn4Ckjp3Y9wj3 OOZd0KEbAbGjBcge6CQkSMULcroiQfMYDwrMRNqeM7X7dHWHtlWYMRFc9gYn4taknPeS JKqKnzR+gnnyG+oDi9j1fB13VhAEx8PXaEPyNqKYf/I1944683BnVpr3Sszo8jbz8XcF cq3LB5+6tGUmCwoMyrXW1r/I24/zcOXW72jNT+JEZ8WT4lq4w0WK8Qy1k0cBfws12mI0 J9dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696695898; x=1697300698; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XZqHXMwQbzqh55aDsx4al0aQ80eXDXXJsbSyCbEWwzc=; b=fZwDVEh9rzWotnbU+dv4XEzfuUVYd576HIdkqzClejCymkh/ujdchsdtR89UmAxvGn 5NSnJQ1XSzxLtJRElcVpzfvA4yqDF5nFBsLa4RrldgOxQktWhnUXtgh8aLNVXRsiKCu/ XN9+VoZp+ctUumHsW8YivhcgJYdwmKb7b6+F+HM6oc6+UUxEtT2lBfZ5B5hK0Ie+Y8Dh YjYtmwxE3+TfHSF/FFzMP9pJg+a71YPMz0wUUt086QjGeUFPgcoJ2Q0yip4A+ERE/EWB QWkdtx0llp88IxvNqHq06qup2TplOQj9zFKYrBn/OjkGvszlqeWrSWGsiGGfHG8ainhB 9uIA== X-Gm-Message-State: AOJu0Yw2fDi+sRO7m9HkYlg9lDM4HpIsiXwtOYWoJU2omOkY1HRWYlXw tR7j4x/OHqDBhnW49On3IpMAqFIm260= X-Received: by 2002:a05:6358:9042:b0:142:efb8:5295 with SMTP id f2-20020a056358904200b00142efb85295mr13391184rwf.19.1696695898072; Sat, 07 Oct 2023 09:24:58 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id 30-20020a17090a191e00b002792b7182dcsm7883180pjg.49.2023.10.07.09.24.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Oct 2023 09:24:57 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 7 Oct 2023 13:24:56 -0300 Message-ID: <20231007162503.1057-1-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 0/7] Container level frame cropping parameters 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: fpmimTYKyNKP This is a simple set to add support to stream wide, container level cropping parameters, as featured in formats like Matroska and ISOBMFF. It's needed for things like AV1 streams generated by certain hardware encoders that produce dimension aligned output, and unlike H26x, can't export cropping info within the bitstream. In this set i add the packet side data type, mux and demux support to Matroska, and handling code to ffmpeg and ffplay. Missing is support for clap boxes in ISOBMFF, and exporting the relevant side data from encoders like AMF. It's a rebased and updated version to the set i sent a month ago. James Almer (7): avcodec/packet: add a decoded frame cropping side data type avformat/dump: print Frame Cropping side data info avformat/matroskadec: export cropping values avformat/avformat: add a flag to signal muxers that support storing cropping values avformat/matroskaenc: support writing cropping values fftools/ffmpeg: support applying container level cropping fftools/ffplay: support applying container level cropping fftools/ffmpeg.h | 3 ++ fftools/ffmpeg_demux.c | 6 ++++ fftools/ffmpeg_enc.c | 24 ++++++++-------- fftools/ffmpeg_filter.c | 23 +++++++++++++++ fftools/ffmpeg_opt.c | 3 ++ fftools/ffplay.c | 26 +++++++++++++++++ libavcodec/packet.h | 14 ++++++++++ libavformat/avformat.h | 1 + libavformat/dump.c | 21 ++++++++++++++ libavformat/matroskadec.c | 53 ++++++++++++++++++++++++++++------- libavformat/matroskaenc.c | 59 ++++++++++++++++++++++++++++++--------- libavformat/mux.c | 8 ++++++ 12 files changed, 207 insertions(+), 34 deletions(-)