Commit fc5fab9a87 for ffmpeg
commit fc5fab9a87553b26aa49791d27e660818d5dde1c
Author: James Almer <jamrial@gmail.com>
Date: Mon Oct 5 18:04:42 2026 -0300
avformat/mov: stop using deprecated AVStreamGroup fields
Signed-off-by: James Almer <jamrial@gmail.com>
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 85e28f45f8..07521a138d 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -1070,8 +1070,8 @@ static int mov_read_iacb(MOVContext *c, AVIOContext *pb, MOVAtom atom)
}
av_assert0(audio_element);
- for (int l = 0; l < audio_element->nb_streams; l++) {
- ret = avformat_stream_group_add_stream(stg, audio_element->streams[l]);
+ for (int l = 0; l < audio_element->nb_entries; l++) {
+ ret = avformat_stream_group_add_stream(stg, audio_element->entries[l]->stream);
if (ret < 0 && ret != AVERROR(EEXIST))
goto fail;
}
@@ -5508,10 +5508,10 @@ static int mov_update_iamf_streams(MOVContext *c, const AVStream *st)
stg = c->fc->stream_groups[j];
av_assert0(stg);
- for (int j = 0; j < stg->nb_streams; j++) {
+ for (int j = 0; j < stg->nb_entries; j++) {
const FFStream *sti = cffstream(st);
- AVStream *out = stg->streams[j];
- FFStream *out_sti = ffstream(stg->streams[j]);
+ AVStream *out = stg->entries[j]->stream;
+ FFStream *out_sti = ffstream(stg->entries[j]->stream);
out->codecpar->bit_rate = 0;
@@ -11234,7 +11234,7 @@ static int mov_parse_tiles(AVFormatContext *s)
}
grid->tile_item_list[j] = item;
- grid->tile_idx_list[j] = stg->nb_streams;
+ grid->tile_idx_list[j] = stg->nb_entries;
err = avformat_stream_group_add_stream(stg, st);
if (err < 0) {
@@ -11242,10 +11242,10 @@ static int mov_parse_tiles(AVFormatContext *s)
if (err != AVERROR(EEXIST))
return err;
- for (l = 0; l < stg->nb_streams; l++)
- if (stg->streams[l]->index == st->index)
+ for (l = 0; l < stg->nb_entries; l++)
+ if (stg->entries[l]->stream->index == st->index)
break;
- av_assert0(l < stg->nb_streams);
+ av_assert0(l < stg->nb_entries);
grid->tile_idx_list[j] = l;
}
@@ -11288,8 +11288,8 @@ static int mov_parse_tiles(AVFormatContext *s)
av_assert0(ref);
switch(ref->type) {
case MKTAG('E','x','i','f'):
- err = mov_parse_exif_item(s, &tile_grid->coded_side_data,
- &tile_grid->nb_coded_side_data, ref);
+ err = mov_parse_exif_item(s, &stg->coded_side_data,
+ &stg->nb_coded_side_data, ref);
if (err < 0 && (s->error_recognition & AV_EF_EXPLODE))
return err;
break;
@@ -11300,16 +11300,16 @@ static int mov_parse_tiles(AVFormatContext *s)
/* rotation */
if (grid->item->rotation || grid->item->hflip || grid->item->vflip) {
- err = set_display_matrix_from_item(&tile_grid->coded_side_data,
- &tile_grid->nb_coded_side_data, grid->item);
+ err = set_display_matrix_from_item(&stg->coded_side_data,
+ &stg->nb_coded_side_data, grid->item);
if (err < 0)
return err;
}
/* ICC profile */
if (grid->item->icc_profile_size) {
- err = set_icc_profile_from_item(&tile_grid->coded_side_data,
- &tile_grid->nb_coded_side_data, grid->item);
+ err = set_icc_profile_from_item(&stg->coded_side_data,
+ &stg->nb_coded_side_data, grid->item);
if (err < 0)
return err;
}
@@ -11442,7 +11442,7 @@ static int mov_parse_tmcd_streams(AVFormatContext *s)
}
}
- if (!stg->nb_streams) {
+ if (!stg->nb_entries) {
ff_remove_stream_group(s, stg);
continue;
}
@@ -11451,7 +11451,7 @@ static int mov_parse_tmcd_streams(AVFormatContext *s)
if (err < 0)
return err;
- stg->params.tref->metadata_index = stg->nb_streams - 1;
+ stg->params.tref->metadata_index = stg->nb_entries - 1;
}
export_orphan_timecode(s);
@@ -11518,7 +11518,7 @@ static int mov_parse_cdsc_and_rndr_streams(AVFormatContext *s)
if (err < 0)
return err;
- stg->params.tref->metadata_index = stg->nb_streams - 1;
+ stg->params.tref->metadata_index = stg->nb_entries - 1;
}
}
@@ -11573,7 +11573,7 @@ static int mov_parse_lcevc_streams(AVFormatContext *s)
if (err < 0)
return err;
- stg->params.layered_video->el_index = stg->nb_streams - 1;
+ stg->params.layered_video->el_index = stg->nb_entries - 1;
}
return 0;
@@ -11644,7 +11644,7 @@ static int mov_parse_dovi_streams(AVFormatContext *s)
if (err < 0)
return err;
- stg->params.layered_video->el_index = stg->nb_streams - 1;
+ stg->params.layered_video->el_index = stg->nb_entries - 1;
stg->params.layered_video->width = st_base->codecpar->width;
stg->params.layered_video->height = st_base->codecpar->height;
}
@@ -11667,8 +11667,8 @@ static void fix_stream_ids(AVFormatContext *s)
AVStreamGroup *stg = s->stream_groups[i];
if (stg->type != AV_STREAM_GROUP_PARAMS_IAMF_AUDIO_ELEMENT)
continue;
- for (int j = 0; j < stg->nb_streams; j++) {
- AVStream *st = stg->streams[j];
+ for (int j = 0; j < stg->nb_entries; j++) {
+ AVStream *st = stg->entries[j]->stream;
lowest_iamf_id = FFMIN(lowest_iamf_id, st->id);
}
}
@@ -11681,8 +11681,8 @@ static void fix_stream_ids(AVFormatContext *s)
AVStreamGroup *stg = s->stream_groups[i];
if (stg->type != AV_STREAM_GROUP_PARAMS_IAMF_AUDIO_ELEMENT)
continue;
- for (int j = 0; j < stg->nb_streams; j++) {
- AVStream *st = stg->streams[j];
+ for (int j = 0; j < stg->nb_entries; j++) {
+ AVStream *st = stg->entries[j]->stream;
MOVStreamContext *sc = st->priv_data;
st->id += highest_id;
sc->iamf_stream_offset = highest_id;