@@ -3198,9 +3198,9 @@ static int64_t mpegts_get_dts(AVFormatContext *s, int stream_index,
ret = av_read_frame(s, &pkt);
if (ret < 0)
return AV_NOPTS_VALUE;
- if (pkt.dts != AV_NOPTS_VALUE && pkt.pos >= 0) {
+ if (pkt.dts != AV_NOPTS_VALUE && pkt.pos >= 0 && (pkt.flags & AV_PKT_FLAG_KEY)) {
ff_reduce_index(s, pkt.stream_index);
- av_add_index_entry(s->streams[pkt.stream_index], pkt.pos, pkt.dts, 0, 0, AVINDEX_KEYFRAME /* FIXME keyframe? */);
+ av_add_index_entry(s->streams[pkt.stream_index], pkt.pos, pkt.dts, 0, 0, AVINDEX_KEYFRAME);
if (pkt.stream_index == stream_index && pkt.pos >= *ppos) {
int64_t dts = pkt.dts;
*ppos = pkt.pos;