- wc->block_parsed = 1;
- pkt->pts = wc->soff;
- av_add_index_entry(s->streams[0], wc->pos, pkt->pts, 0, 0, AVINDEX_KEYFRAME);
+ wc->block_parsed = 1;
+ pkt->pts = wc->soff;
+ block_samples = AV_RN32(wc->extra);
+ if (block_samples > INT32_MAX)
+ av_log(s, AV_LOG_WARNING,
+ "Too many samples in block: %"PRIu32"\n", block_samples);
+ else
+ pkt->duration = block_samples;
+
+ av_add_index_entry(s->streams[0], pos, pkt->pts, 0, 0, AVINDEX_KEYFRAME);