summaryrefslogtreecommitdiff
authorshuanglong.wang <shuanglong.wang@amlogic.com>2017-09-19 06:06:20 (GMT)
committer shuanglong.wang <shuanglong.wang@amlogic.com>2017-09-19 06:07:27 (GMT)
commit84eba74c2367a0d189c5ed5dfdc95e7be0d24696 (patch)
tree7ad6e4ede9b467e5cd3bb83e82e2122eb1adcfd3
parent3dccd3e066b597dfb668aa8e41672b288a8d648f (diff)
downloadffmpeg-84eba74c2367a0d189c5ed5dfdc95e7be0d24696.zip
ffmpeg-84eba74c2367a0d189c5ed5dfdc95e7be0d24696.tar.gz
ffmpeg-84eba74c2367a0d189c5ed5dfdc95e7be0d24696.tar.bz2
external/ffmpeg: set key_frame flag for h264 I frame [1/1]
PD# 150429 set key_frame flags for h264 I frame, not only IDR frame, because IDR may be less,find key frame may be drop too many frames when seek. Change-Id: Ib8e1599c394d37ac8091af064c70c722a79b0b94
Diffstat
-rw-r--r--libavcodec/h264_parser.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
index aed0793..a96adb7 100644
--- a/libavcodec/h264_parser.c
+++ b/libavcodec/h264_parser.c
@@ -347,6 +347,9 @@ static inline int parse_nal_units(AVCodecParserContext *s,
/* key frame, since recovery_frame_cnt is set */
s->key_frame = 1;
}
+ /* set key_frame for I frame*/
+ if (s->pict_type == AV_PICTURE_TYPE_I)
+ s->key_frame = 1;
pps_id = get_ue_golomb(&nal.gb);
if (pps_id >= MAX_PPS_COUNT) {
av_log(avctx, AV_LOG_ERROR,