avformat/mov: add support for tile HEIF still images

Export each tile as its own stream, and the grid information as a Stream Group
of type TILE_GRID.
This also enables exporting other stream items like thumbnails, which may be
present in non tiled HEIF images too. For those, the primary stream will be
tagged with the default disposition.

Based on a patch by Swaraj Hota

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2024-01-22 14:35:55 -03:00
parent 25a10677d1
commit 41e349c24a
7 changed files with 484 additions and 49 deletions

View file

@ -119,6 +119,14 @@ void ff_remove_stream(AVFormatContext *s, AVStream *st)
ff_free_stream(&s->streams[ --s->nb_streams ]);
}
void ff_remove_stream_group(AVFormatContext *s, AVStreamGroup *stg)
{
av_assert0(s->nb_stream_groups > 0);
av_assert0(s->stream_groups[ s->nb_stream_groups - 1 ] == stg);
ff_free_stream_group(&s->stream_groups[ --s->nb_stream_groups ]);
}
/* XXX: suppress the packet queue */
void ff_flush_packet_queue(AVFormatContext *s)
{