[FFmpeg-cvslog] avcodec/h264_parser: heuristically detect non marked keyframes

Michael Niedermayer git at videolan.org
Sat Oct 26 15:57:04 CEST 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Oct 26 15:46:43 2013 +0200| [e0b2bdd37a019360117528dc08e8d16e8d83c08b] | committer: Michael Niedermayer

avcodec/h264_parser: heuristically detect non marked keyframes

Fixes Ticket3083

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e0b2bdd37a019360117528dc08e8d16e8d83c08b
---

 libavcodec/h264_parser.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
index 4e29f5c..0c426dd 100644
--- a/libavcodec/h264_parser.c
+++ b/libavcodec/h264_parser.c
@@ -309,6 +309,9 @@ static inline int parse_nal_units(AVCodecParserContext *s,
             h->sps       = *h->sps_buffers[h->pps.sps_id];
             h->frame_num = get_bits(&h->gb, h->sps.log2_max_frame_num);
 
+            if(h->sps.ref_frame_count <= 1 && h->pps.ref_count[0] <= 1 && s->pict_type == AV_PICTURE_TYPE_I)
+                s->key_frame = 1;
+
             avctx->profile = ff_h264_get_profile(&h->sps);
             avctx->level   = h->sps.level_idc;
 



More information about the ffmpeg-cvslog mailing list