|
|
|
@ -2407,7 +2407,7 @@ static int mov_read_stsc(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
|
|
|
|
|
entries = avio_rb32(pb); |
|
|
|
|
|
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "track[%i].stsc.entries = %i\n", c->fc->nb_streams-1, entries); |
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "track[%u].stsc.entries = %u\n", c->fc->nb_streams - 1, entries); |
|
|
|
|
|
|
|
|
|
if (!entries) |
|
|
|
|
return 0; |
|
|
|
@ -2498,7 +2498,7 @@ static int mov_read_stss(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
|
|
|
|
|
entries = avio_rb32(pb); |
|
|
|
|
|
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "keyframe_count = %d\n", entries); |
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "keyframe_count = %u\n", entries); |
|
|
|
|
|
|
|
|
|
if (!entries) |
|
|
|
|
{ |
|
|
|
@ -2559,14 +2559,14 @@ static int mov_read_stsz(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
} |
|
|
|
|
entries = avio_rb32(pb); |
|
|
|
|
|
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "sample_size = %d sample_count = %d\n", sc->sample_size, entries); |
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "sample_size = %u sample_count = %u\n", sc->sample_size, entries); |
|
|
|
|
|
|
|
|
|
sc->sample_count = entries; |
|
|
|
|
if (sample_size) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
if (field_size != 4 && field_size != 8 && field_size != 16 && field_size != 32) { |
|
|
|
|
av_log(c->fc, AV_LOG_ERROR, "Invalid sample field size %d\n", field_size); |
|
|
|
|
av_log(c->fc, AV_LOG_ERROR, "Invalid sample field size %u\n", field_size); |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -2631,7 +2631,7 @@ static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
avio_rb24(pb); /* flags */ |
|
|
|
|
entries = avio_rb32(pb); |
|
|
|
|
|
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "track[%i].stts.entries = %i\n", |
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "track[%u].stts.entries = %u\n", |
|
|
|
|
c->fc->nb_streams-1, entries); |
|
|
|
|
|
|
|
|
|
if (sc->stts_data) |
|
|
|
@ -2710,7 +2710,7 @@ static int mov_read_ctts(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
avio_rb24(pb); /* flags */ |
|
|
|
|
entries = avio_rb32(pb); |
|
|
|
|
|
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "track[%i].ctts.entries = %i\n", c->fc->nb_streams-1, entries); |
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "track[%u].ctts.entries = %u\n", c->fc->nb_streams - 1, entries); |
|
|
|
|
|
|
|
|
|
if (!entries) |
|
|
|
|
return 0; |
|
|
|
@ -3425,8 +3425,8 @@ static void mov_build_index(MOVContext *mov, AVStream *st) |
|
|
|
|
e->size = sample_size; |
|
|
|
|
e->min_distance = distance; |
|
|
|
|
e->flags = keyframe ? AVINDEX_KEYFRAME : 0; |
|
|
|
|
av_log(mov->fc, AV_LOG_TRACE, "AVIndex stream %d, sample %d, offset %"PRIx64", dts %"PRId64", " |
|
|
|
|
"size %d, distance %d, keyframe %d\n", st->index, current_sample, |
|
|
|
|
av_log(mov->fc, AV_LOG_TRACE, "AVIndex stream %d, sample %u, offset %"PRIx64", dts %"PRId64", " |
|
|
|
|
"size %u, distance %u, keyframe %d\n", st->index, current_sample, |
|
|
|
|
current_offset, current_dts, sample_size, distance, keyframe); |
|
|
|
|
if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO && st->nb_index_entries < 100) |
|
|
|
|
ff_rfps_add_frame(mov->fc, st, current_dts); |
|
|
|
@ -3496,7 +3496,7 @@ static void mov_build_index(MOVContext *mov, AVStream *st) |
|
|
|
|
total += chunk_count * count; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
av_log(mov->fc, AV_LOG_TRACE, "chunk count %d\n", total); |
|
|
|
|
av_log(mov->fc, AV_LOG_TRACE, "chunk count %u\n", total); |
|
|
|
|
if (total >= UINT_MAX / sizeof(*st->index_entries) - st->nb_index_entries) |
|
|
|
|
return; |
|
|
|
|
if (av_reallocp_array(&st->index_entries, |
|
|
|
@ -3541,7 +3541,7 @@ static void mov_build_index(MOVContext *mov, AVStream *st) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (st->nb_index_entries >= total) { |
|
|
|
|
av_log(mov->fc, AV_LOG_ERROR, "wrong chunk count %d\n", total); |
|
|
|
|
av_log(mov->fc, AV_LOG_ERROR, "wrong chunk count %u\n", total); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if (size > 0x3FFFFFFF) { |
|
|
|
@ -3554,9 +3554,9 @@ static void mov_build_index(MOVContext *mov, AVStream *st) |
|
|
|
|
e->size = size; |
|
|
|
|
e->min_distance = 0; |
|
|
|
|
e->flags = AVINDEX_KEYFRAME; |
|
|
|
|
av_log(mov->fc, AV_LOG_TRACE, "AVIndex stream %d, chunk %d, offset %"PRIx64", dts %"PRId64", " |
|
|
|
|
"size %d, duration %d\n", st->index, i, current_offset, current_dts, |
|
|
|
|
size, samples); |
|
|
|
|
av_log(mov->fc, AV_LOG_TRACE, "AVIndex stream %d, chunk %u, offset %"PRIx64", dts %"PRId64", " |
|
|
|
|
"size %u, duration %u\n", st->index, i, current_offset, current_dts, |
|
|
|
|
size, samples); |
|
|
|
|
|
|
|
|
|
current_offset += size; |
|
|
|
|
current_dts += samples; |
|
|
|
@ -4183,7 +4183,7 @@ static int mov_read_tfdt(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!st) { |
|
|
|
|
av_log(c->fc, AV_LOG_ERROR, "could not find corresponding track id %d\n", frag->track_id); |
|
|
|
|
av_log(c->fc, AV_LOG_ERROR, "could not find corresponding track id %u\n", frag->track_id); |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
} |
|
|
|
|
sc = st->priv_data; |
|
|
|
@ -4218,7 +4218,7 @@ static int mov_read_trun(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!st) { |
|
|
|
|
av_log(c->fc, AV_LOG_ERROR, "could not find corresponding track id %d\n", frag->track_id); |
|
|
|
|
av_log(c->fc, AV_LOG_ERROR, "could not find corresponding track id %u\n", frag->track_id); |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
} |
|
|
|
|
sc = st->priv_data; |
|
|
|
@ -4227,7 +4227,7 @@ static int mov_read_trun(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
avio_r8(pb); /* version */ |
|
|
|
|
flags = avio_rb24(pb); |
|
|
|
|
entries = avio_rb32(pb); |
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "flags 0x%x entries %d\n", flags, entries); |
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "flags 0x%x entries %u\n", flags, entries); |
|
|
|
|
|
|
|
|
|
/* Always assume the presence of composition time offsets.
|
|
|
|
|
* Without this assumption, for instance, we cannot deal with a track in fragmented movies that meet the following. |
|
|
|
@ -4307,8 +4307,8 @@ static int mov_read_trun(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
if (err < 0) { |
|
|
|
|
av_log(c->fc, AV_LOG_ERROR, "Failed to add index entry\n"); |
|
|
|
|
} |
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "AVIndex stream %d, sample %d, offset %"PRIx64", dts %"PRId64", " |
|
|
|
|
"size %d, distance %d, keyframe %d\n", st->index, sc->sample_count+i, |
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "AVIndex stream %d, sample %u, offset %"PRIx64", dts %"PRId64", " |
|
|
|
|
"size %u, distance %d, keyframe %d\n", st->index, sc->sample_count+i, |
|
|
|
|
offset, dts, sample_size, distance, keyframe); |
|
|
|
|
distance++; |
|
|
|
|
dts += sample_duration; |
|
|
|
@ -4547,7 +4547,7 @@ static int mov_read_elst(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
if (!sc->elst_data) |
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
|
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "track[%i].edit_count = %i\n", c->fc->nb_streams-1, edit_count); |
|
|
|
|
av_log(c->fc, AV_LOG_TRACE, "track[%u].edit_count = %i\n", c->fc->nb_streams - 1, edit_count); |
|
|
|
|
for (i = 0; i < edit_count && !pb->eof_reached; i++) { |
|
|
|
|
MOVElst *e = &sc->elst_data[i]; |
|
|
|
|
|
|
|
|
|