avformat/mov: don't return the latest stream when an item stream is expected

Otherwise, things like ICC profiles as read from the colr box meant for an item
with no stream (like a grid) may end up being added to the wrong stream.

Signed-off-by: James Almer <jamrial@gmail.com>
pull/153/merge
James Almer 2 months ago
parent 6057cd8aee
commit 04182b5549
  1. 6
      libavformat/mov.c

@ -188,6 +188,10 @@ static int mov_read_mac_string(MOVContext *c, AVIOContext *pb, int len,
return p - dst; return p - dst;
} }
/**
* Get the current stream in the parsing process. This can either be the
* latest stream added to the context, or the stream referenced by an item.
*/
static AVStream *get_curr_st(MOVContext *c) static AVStream *get_curr_st(MOVContext *c)
{ {
AVStream *st = NULL; AVStream *st = NULL;
@ -206,7 +210,7 @@ static AVStream *get_curr_st(MOVContext *c)
st = item->st; st = item->st;
break; break;
} }
if (!st) if (!st && c->cur_item_id == -1)
st = c->fc->streams[c->fc->nb_streams-1]; st = c->fc->streams[c->fc->nb_streams-1];
return st; return st;

Loading…
Cancel
Save