summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2023-08-09 18:12:56 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2023-09-07 00:28:27 +0200
commit007c22ce09db678a9d64705ba49dcdf058cd7d4d (patch)
tree317d5c16b31e277622fe3e4e259ad57b6a128288
parent05ae0ccad93011ca6378342706040947f31ca39f (diff)
avformat/matroskadec: Move reading color space to a better place
Namely to a place after the AVStream has already been created, so that it can be directly attached to it. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavformat/matroskadec.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 854b225c9e..21a0a1ecd5 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -2817,7 +2817,6 @@ static int matroska_parse_tracks(AVFormatContext *s)
MatroskaTrackEncoding *encodings = encodings_list->elem;
AVCodecParameters *par;
int extradata_offset = 0;
- uint32_t fourcc = 0;
AVStream *st;
FFStream *sti;
char* key_id_base64 = NULL;
@@ -2867,8 +2866,6 @@ static int matroska_parse_tracks(AVFormatContext *s)
track->video.display_width = track->video.pixel_width;
if (track->video.display_height == -1)
track->video.display_height = track->video.pixel_height;
- if (track->video.color_space.size == 4)
- fourcc = AV_RL32(track->video.color_space.data);
} else if (track->type == MATROSKA_TRACK_TYPE_AUDIO) {
if (!track->audio.out_samplerate)
track->audio.out_samplerate = track->audio.samplerate;
@@ -2955,7 +2952,6 @@ static int matroska_parse_tracks(AVFormatContext *s)
par = st->codecpar;
par->codec_id = codec_id;
- par->codec_tag = fourcc;
if (track->flag_default)
st->disposition |= AV_DISPOSITION_DEFAULT;
@@ -3003,6 +2999,9 @@ static int matroska_parse_tracks(AVFormatContext *s)
if (ret == SKIP_TRACK)
continue;
} else if (track->type == MATROSKA_TRACK_TYPE_VIDEO) {
+ if (track->video.color_space.size == 4)
+ par->codec_tag = AV_RL32(track->video.color_space.data);
+
ret = mkv_parse_video_codec(track, par, matroska,
&extradata_offset);
if (ret < 0)