| @@ -2743,16 +2743,18 @@ static int64_t mpegts_get_dts(AVFormatContext *s, int stream_index, | |||||
| ret = av_read_frame(s, &pkt); | ret = av_read_frame(s, &pkt); | ||||
| if (ret < 0) | if (ret < 0) | ||||
| return AV_NOPTS_VALUE; | return AV_NOPTS_VALUE; | ||||
| av_packet_unref(&pkt); | |||||
| if (pkt.dts != AV_NOPTS_VALUE && pkt.pos >= 0) { | if (pkt.dts != AV_NOPTS_VALUE && pkt.pos >= 0) { | ||||
| ff_reduce_index(s, pkt.stream_index); | 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 /* FIXME keyframe? */); | ||||
| if (pkt.stream_index == stream_index && pkt.pos >= *ppos) { | if (pkt.stream_index == stream_index && pkt.pos >= *ppos) { | ||||
| int64_t dts = pkt.dts; | |||||
| *ppos = pkt.pos; | *ppos = pkt.pos; | ||||
| return pkt.dts; | |||||
| av_packet_unref(&pkt); | |||||
| return dts; | |||||
| } | } | ||||
| } | } | ||||
| pos = pkt.pos; | pos = pkt.pos; | ||||
| av_packet_unref(&pkt); | |||||
| } | } | ||||
| return AV_NOPTS_VALUE; | return AV_NOPTS_VALUE; | ||||