Mercurial > libavformat.hg
comparison matroskadec.c @ 5251:75a5bf71fad3 libavformat
matroskadec: don't overwrite extradata already read by ff_get_wav_header()
author | aurel |
---|---|
date | Thu, 01 Oct 2009 21:14:46 +0000 |
parents | 4b736fd7d0fd |
children | ae691877fdea |
comparison
equal
deleted
inserted
replaced
5250:4b736fd7d0fd | 5251:75a5bf71fad3 |
---|---|
1349 | 1349 |
1350 if (track->default_duration) | 1350 if (track->default_duration) |
1351 av_reduce(&st->codec->time_base.num, &st->codec->time_base.den, | 1351 av_reduce(&st->codec->time_base.num, &st->codec->time_base.den, |
1352 track->default_duration, 1000000000, 30000); | 1352 track->default_duration, 1000000000, 30000); |
1353 | 1353 |
1354 if (!st->codec->extradata) { | |
1354 if(extradata){ | 1355 if(extradata){ |
1355 st->codec->extradata = extradata; | 1356 st->codec->extradata = extradata; |
1356 st->codec->extradata_size = extradata_size; | 1357 st->codec->extradata_size = extradata_size; |
1357 } else if(track->codec_priv.data && track->codec_priv.size > 0){ | 1358 } else if(track->codec_priv.data && track->codec_priv.size > 0){ |
1358 st->codec->extradata = av_mallocz(track->codec_priv.size + | 1359 st->codec->extradata = av_mallocz(track->codec_priv.size + |
1361 return AVERROR(ENOMEM); | 1362 return AVERROR(ENOMEM); |
1362 st->codec->extradata_size = track->codec_priv.size; | 1363 st->codec->extradata_size = track->codec_priv.size; |
1363 memcpy(st->codec->extradata, | 1364 memcpy(st->codec->extradata, |
1364 track->codec_priv.data + extradata_offset, | 1365 track->codec_priv.data + extradata_offset, |
1365 track->codec_priv.size); | 1366 track->codec_priv.size); |
1367 } | |
1366 } | 1368 } |
1367 | 1369 |
1368 if (track->type == MATROSKA_TRACK_TYPE_VIDEO) { | 1370 if (track->type == MATROSKA_TRACK_TYPE_VIDEO) { |
1369 st->codec->codec_type = CODEC_TYPE_VIDEO; | 1371 st->codec->codec_type = CODEC_TYPE_VIDEO; |
1370 st->codec->codec_tag = track->video.fourcc; | 1372 st->codec->codec_tag = track->video.fourcc; |