From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 13492488C4 for ; Sun, 21 Jan 2024 18:38:57 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5063268CF0F; Sun, 21 Jan 2024 20:38:54 +0200 (EET) Received: from mail-oo1-f49.google.com (mail-oo1-f49.google.com [209.85.161.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2C3C768CA64 for ; Sun, 21 Jan 2024 20:38:48 +0200 (EET) Received: by mail-oo1-f49.google.com with SMTP id 006d021491bc7-595b208a050so1604902eaf.0 for ; Sun, 21 Jan 2024 10:38:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705862325; x=1706467125; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=WcFWtDIq3zvhiUiC+Zr62nRdkje1XDkHi/7kFift3MQ=; b=JT49HYpLicmuiMZ5aOmaMWrgKrZmsiAoppwuieX1WvVVTVSdqyAlN2749HnkiaZeiL aio1Sq6Z/iS5Tp83TXDWjF9U1OKxCNivKmWjmh8YtmuLtA/IxcPrJh0Fj5aQYPi0pYC9 mHgbUkO9h+KjC5VFkUiQpZn3t7ID6VBNvK98XYdQegQRUNMkYs4BP4DRDAeu/W8Pk9oV kMfuQj1oI2/4wyTHjXgjywxZ+5hO9sHrVaBPPY/HwbUK9b7AfNX7hSlwJqXGwVtjCwKy jYHFbgA5bdWUiFncad6MplXLqyeoj8rLLJEdDUzoZ0hLkHtsdY6I6dXT/X5G4wua3rng pGYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705862325; x=1706467125; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=WcFWtDIq3zvhiUiC+Zr62nRdkje1XDkHi/7kFift3MQ=; b=s9+wMWbtNEJrUgX85IcmzGXFHgg0cvNv5R9o64rNMIONImPUgWgn/r91YG6iOH0dAj bMy4CKGLbKN+CcuaXFZa1Cf9rIctYJuVo9ip+qxs6xTtYPJJN4lao0ThA/AtUL25Dk7K Vt7hymYFsHLy4uDky5pcJOPekx2J54LgejelaeTrqqZvohfYNjDjvXGGZXDI2t4mHMV3 JWn0f5hRRvuZ3M3IoEHRCVFtx8sspP4ly8pyzCkjhXxAHkQzCu5R1jKMh/PwKPeWIDpM IqvOGypJNXujXk00g5ZUsjF7GFXTsrwzkB5XwbEz+DU9c/qjqBeua64dfH4NE10tt6zX yT5w== X-Gm-Message-State: AOJu0YzstYhswJPEZ/xXP6icNJ3ukNhTqC+uBCLI2MNa8jy/at6Nsg9t vzd5aZudTwXTh6wuU+AM/44PZA8dCzt7vTHhJqVzoCZjnhUE0fLyMI1IX12R X-Google-Smtp-Source: AGHT+IHdLtiosSfL8SHGoc7p7MBUyeGsiUVOuiKOzfYoxel7DHWv/eP2cn+eWJJIR+6Dgn+Yb8N2Lg== X-Received: by 2002:a05:6358:e4a0:b0:176:411b:88b1 with SMTP id by32-20020a056358e4a000b00176411b88b1mr1402792rwb.46.1705862325391; Sun, 21 Jan 2024 10:38:45 -0800 (PST) Received: from [192.168.0.18] (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id o7-20020a1709026b0700b001d494f3d9d4sm5995688plk.220.2024.01.21.10.38.44 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 21 Jan 2024 10:38:45 -0800 (PST) Message-ID: <071553d8-cde6-4c48-8633-e7fcc01a6b7a@gmail.com> Date: Sun, 21 Jan 2024 15:38:50 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240120220407.64141-1-jamrial@gmail.com> <170581842075.8914.15090755160718905890@lain.khirnov.net> <170585816018.8914.1005492749396712320@lain.khirnov.net> <5cabd1bb-f454-4e5c-8950-b2217fba5231@gmail.com> <170586174894.8914.16513575461875087750@lain.khirnov.net> From: James Almer Autocrypt: addr=jamrial@gmail.com; keydata= xsBNBFjZtqABCADLW+vdEoZaJZDsIO6geYFTOcn1unsEHefj9zn+3oTHlDFFzO47mzHsSfbK 9JE2xpOJEVnC8FAF5Sayi/pVwV+mtQUV3n5dgVeVBYF9GUQwOGFCpK8X54RRqhkgknbunOEE 0CtgAJgmpFmmmHgq02GvEspx1h/rh4apqwQR6QX4Favb+x9+i9ytVpwVcBX94vo2toyP7h/K BWfadQmb8ltgE1kshfg+SQs/H5bTV5Z1DuEASf02ZL/1qYB/sdTgWPLv9XMUHHsRFmMY8TMx wJSkP+Af3AiYQPJYz1B1D4tt98T/NoiVdin10zATakPjV8hXaobuRmxgakkUASXudydDABEB AAHNH0phbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT7CwJIEEwEIADwCGwMGCwkIBwMC BhUIAgkKCwQWAgMBAh4BAheAFiEEd1EujP2UoWlX5pp6FGMBrXN2WeAFAmJoLUUCGQEACgkQ FGMBrXN2WeAFVQf9GtGhniRs1PzNUOgJktCnv6j4BbLieaIPYPEFXKDHOgjqQE2zVMYXnoXl Jam928ii902a8OY06r9ywn/R8ApD1/3NY/v64O71CY9scz5XyH2au8wIZ6HwFy3/f7sqjdGD uctY8Qs7rjT7NkoC5lmgMu2v2k03dGtM9AAf5AK5gU+H0EUw7vmKKiXzUqt5kvBuf4CEwXvH AQT1SMJ52rIlDWB7FQFyZeUbOAK2IgY/KNedfK6nsgd/eQVnlofPd2XoddE7kP6iys7jJefw DD3g3rZyDTq7in5dyk5glaNpWZpbHGBs+9SCYLnfQ8XvWqPFOD+gj0plamKANgOvavKTxM7A TQRY2bagAQgA69YtILj8kYxmqPr/M8+MXT7wVoOWVW9lvSmPquCELaDy/NIS7D06VC5EuE/6 JlJXZMTn37NLlyWhzwOgXuXw5w2tyoQQBuvqGiXJijuXwXH7HKdzrc6rpYtAqt5w05hzNrFS KrS0izG64VpWrfproy3BsL+8TBm9brLhhNPynVRqVukbbGzlATTzNQGZ14TTi2/dL6DkMQnM qn4jX9UEe4GdGQBP50bUJSSmeiIkyNLWA+znuN2PZEz930ZwNrF9GtDVw7mzcmpCZ7spldE2 tutbpy9D1bIqxyqBrYDSezyzL2adR1qgHyOTMCHg2AYNkrIQHrSyJxKTpZ1/hqOp8wARAQAB wsBfBBgBAgAJBQJY2bagAhsMAAoJEBRjAa1zdlnghekH/0Yb0iYJ74oID2f/Fj+AJKS2ekQF P2xOr8lpGzgp/+yWUvPtqbX0A33anBJdYwxaAC0NataX3tfZ+oJkzXqfmqhIHMPYHdZesJA2 Bk9hU/33mDl5s5U66/z0uelWzwKVHoQ2O6or4+qF3HJFSJLCe9uvWJ3zXf9F342Ftj73sfx+ 3xkw/IXsN1RqbYqDlzpoEQ99SIEfY/8Jjwnd3sIPfqkuyeaYfe6GJDqKawdCEP1oRRlbXEAp TJgYz8r3nPhGv9cdHNDCk44ISbsqVuxIEnLqi4fTPZaGupiQhT+srl268TTAp2TQW7+6Ce/b NPQorMquzS/LZoyALpmsYi/miMc= In-Reply-To: <170586174894.8914.16513575461875087750@lain.khirnov.net> Subject: Re: [FFmpeg-devel] [PATCH 1/2 v2] avutil: add a Tile Grid API 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 1/21/2024 3:29 PM, Anton Khirnov wrote: > Quoting James Almer (2024-01-21 18:47:43) >> On 1/21/2024 2:29 PM, Anton Khirnov wrote: >>> Honestly this whole new API strikes me as massively overthinking it. All >>> you should need to describe an arbitrary partition of an image into >>> sub-rectangles is an array of (x, y, width, height). Instead you're >>> proposing a new public header, struct, three functions, multiple "tile >>> types", and if I'm not mistaken it still cannot describe an arbitrary >>> partitioning. Plus it's in libavutil for some reason, even though >>> libavformat seems to be the only intended user. >>> >>> Is all this complexity really warranted? >> >> 1. It needs to be usable as a Stream Group type, so a struct is >> required. Said struct needs an allocator unless we want to have its size >> be part of the ABI. I can remove the free function, but then the caller >> needs to manually free any internal data. > > If the struct lives in lavf and is always allocated as a part of > AVStreamGroup then you don't need a public constructor/destructor and > can still extend the struct. Yes, but that would be the case if it's only meant to be allocated by AVStreamGroup and nothing else. > >> 2. We need tile dimensions (Width and height) plus row and column count, >> which give you the final size of the grid, then offsets x and y to get >> the actual image within the grid meant for presentation. >> 3. I want to support uniform tiles as well as variable tile dimensions, >> hence multiple tile types. The latter currently has no use case, but >> eventually might. I can if you prefer not include said type at first, >> but i want to keep the union in place so it and other extensions can be >> added. >> 4. It's in lavu because its meant to be generic. It can also be used to >> transport tiling and cropping information as stream and packet side >> data, which can't depend on something defined in lavf. > > When would you have tiling information associated with a specific > stream? Can't think of an example for tiling, but i can for cropping. If you insist on not reusing this for non-HEIF cropping usage in mp4/matroska, then ok, I'll move it to lavf. > >> And what do you mean with not supporting describing arbitrary >> partitioning? Isn't that what variable tile dimensions achieve? > > IIUC your tiling scheme still assumes that the partitioning is by rows > and columns. A completely generic partitioning could be irregular. A new tile type that doesn't define rows and columns can be added if needed. But the current variable tile type can support things like grids of two rows and two columns where the second row is effectively a single tile, simply by setting the second tile in said row as having a width of 0. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".