Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: James Almer <jamrial@gmail.com>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH 2/4 v6] avformat: add a Tile Grid stream group type
Date: Wed, 31 Jan 2024 15:21:20 -0300
Message-ID: <7f7d8c22-da5b-4647-8935-ddc6e37685e4@gmail.com> (raw)
In-Reply-To: <AS8P250MB0744E8F671193C9CDAA9A1C28F7C2@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM>

On 1/31/2024 3:08 PM, Andreas Rheinhardt wrote:
> James Almer:
>> This will be used to support tiled image formats like HEIF.
>>
>> Signed-off-by: James Almer<jamrial@gmail.com>
>> ---
>>   libavformat/avformat.c |   5 +++
>>   libavformat/avformat.h | 100 +++++++++++++++++++++++++++++++++++++++++
>>   libavformat/dump.c     |  29 ++++++++++++
>>   libavformat/options.c  |  32 +++++++++++++
>>   4 files changed, 166 insertions(+)
>>
>> diff --git a/libavformat/avformat.c b/libavformat/avformat.c
>> index 8e8c6fbe55..32ef440207 100644
>> --- a/libavformat/avformat.c
>> +++ b/libavformat/avformat.c
>> @@ -100,6 +100,11 @@ void ff_free_stream_group(AVStreamGroup **pstg)
>>           av_iamf_mix_presentation_free(&stg->params.iamf_mix_presentation);
>>           break;
>>       }
>> +    case AV_STREAM_GROUP_PARAMS_TILE_GRID:
>> +        av_opt_free(stg->params.tile_grid);
>> +        av_freep(&stg->params.tile_grid->offsets);
>> +        av_freep(&stg->params.tile_grid);
>> +        break;
>>       default:
>>           break;
>>       }
>> diff --git a/libavformat/avformat.h b/libavformat/avformat.h
>> index 5d0fe82250..6577f13ef1 100644
>> --- a/libavformat/avformat.h
>> +++ b/libavformat/avformat.h
>> @@ -1018,10 +1018,109 @@ typedef struct AVStream {
>>       int pts_wrap_bits;
>>   } AVStream;
>>   
>> +/**
>> + * AVStreamGroupTileGrid holds information on how to combine several
>> + * independent images on a single grid for presentation. None of the tiles may
>> + * overlap inside the grid.
>> + *
>> + * The following is an example of a simple grid with 3 rows and 4 columns:
>> + *
>> + * +---+---+---+---+
>> + * | 0 | 1 | 2 | 3 |
>> + * +---+---+---+---+
>> + * | 4 | 5 | 6 | 7 |
>> + * +---+---+---+---+
>> + * | 8 | 9 |10 |11 |
>> + * +---+---+---+---+
>> + *
>> + * Assuming all tiles have a dimension of 512x512, the
>> + * @ref AVStreamGroupTileGrid.offsets "offset" of the topleft pixel of
>> + * the first @ref AVStreamGroup.streams "stream" in the group is "0,0", the
>> + * @ref AVStreamGroupTileGrid.offsets "offset" of the topleft pixel of
>> + * the second @ref AVStreamGroup.streams "stream" in the group is "512,0", the
>> + * @ref AVStreamGroupTileGrid.offsets "offset" of the topleft pixel of
>> + * the fifth @ref AVStreamGroup.streams "stream" in the group is "0,512", the
>> + * @ref AVStreamGroupTileGrid.offsets "offset", of the topleft pixel of
>> + * the sixth @ref AVStreamGroup.streams "stream" in the group is "512,512",
>> + * etc.
>> + *
>> + * sizeof(AVStreamGroupTileGrid) is not a part of the ABI. No new fields may be
>> + * added to this struct without a major version bump.
> This is inconsistent. I think you mean that sizeof is part of the ABI.

No? It's not a part of the ABI because AVStreamGroupTileGrid must not be 
ever used on stack, or allocated by anything other than AVStreamGroup.
That way we can add fields to it without waiting for a major bump.
_______________________________________________
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".

  reply	other threads:[~2024-01-31 18:21 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-31 17:47 [FFmpeg-devel] [PATCH 1/4 v3] avformat/mov: ignore item boxes for animated heif James Almer
2024-01-31 17:47 ` [FFmpeg-devel] [PATCH 2/4 v6] avformat: add a Tile Grid stream group type James Almer
2024-01-31 18:08   ` Andreas Rheinhardt
2024-01-31 18:21     ` James Almer [this message]
2024-01-31 18:33       ` Andreas Rheinhardt
2024-01-31 18:33         ` James Almer
2024-01-31 17:47 ` [FFmpeg-devel] [PATCH 3/4 v4] avformat/mov: add support for tiled HEIF still images James Almer
2024-01-31 17:47 ` [FFmpeg-devel] [PATCH 4/4 v3] fate/mov: test remuxing all stream heif items James Almer
2024-01-31 18:06 ` [FFmpeg-devel] [PATCH 1/4 v3] avformat/mov: ignore item boxes for animated heif Andreas Rheinhardt
2024-01-31 18:12   ` James Almer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7f7d8c22-da5b-4647-8935-ddc6e37685e4@gmail.com \
    --to=jamrial@gmail.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git