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;