author | shuanglong.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) |
commit | 84eba74c2367a0d189c5ed5dfdc95e7be0d24696 (patch) | |
tree | 7ad6e4ede9b467e5cd3bb83e82e2122eb1adcfd3 | |
parent | 3dccd3e066b597dfb668aa8e41672b288a8d648f (diff) | |
download | ffmpeg-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
-rw-r--r-- | libavcodec/h264_parser.c | 3 |
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, |