[FFmpeg-devel] [PATCH] avformat/mpegts: Only add keyframe index entries for keyframe packets

fumoboy007 at me.com fumoboy007 at me.com
Sat Aug 31 13:06:52 EEST 2019


From: fumoboy007 <fumoboy007 at me.com>

Signed-off-by: fumoboy007 <fumoboy007 at me.com>
---
 libavformat/mpegts.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 47d8d5f877..a35ea65875 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -3201,8 +3201,11 @@ static int64_t mpegts_get_dts(AVFormatContext *s, int stream_index,
         if (ret < 0)
             return AV_NOPTS_VALUE;
         if (pkt.dts != AV_NOPTS_VALUE && pkt.pos >= 0) {
+            int is_keyframe = (pkt.flags & AV_PKT_FLAG_KEY) != 0;
+
             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, is_keyframe ? AVINDEX_KEYFRAME : 0);
+
             if (pkt.stream_index == stream_index && pkt.pos >= *ppos) {
                 int64_t dts = pkt.dts;
                 *ppos = pkt.pos;
-- 
2.21.0



More information about the ffmpeg-devel mailing list