Fixes Ticket3141 Signed-off-by: Michael Niedermayer <michae...@gmx.at> --- libavcodec/h264.c | 1 + libavcodec/h264.h | 1 + libavcodec/h264_ps.c | 3 +++ 3 files changed, 5 insertions(+)
diff --git a/libavcodec/h264.c b/libavcodec/h264.c index f40449e..46ae1cc 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1978,6 +1978,7 @@ static const AVProfile profiles[] = { static const AVOption h264_options[] = { {"is_avc", "is avc", offsetof(H264Context, is_avc), FF_OPT_TYPE_INT, {.i64 = 0}, 0, 1, 0}, {"nal_length_size", "nal_length_size", offsetof(H264Context, nal_length_size), FF_OPT_TYPE_INT, {.i64 = 0}, 0, 4, 0}, + {"ref_frame_count", "ref_frame_count", offsetof(H264Context, ref_frame_count_export), FF_OPT_TYPE_INT, {.i64 = 0}, 0, 16, 0}, {NULL} }; diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 74c1bbf..43a04b0 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -566,6 +566,7 @@ typedef struct H264Context { int is_avc; ///< this flag is != 0 if codec is avc1 int nal_length_size; ///< Number of bytes used for nal length (1, 2 or 4) int got_first; ///< this flag is != 0 if we've parsed a frame + int ref_frame_count_export; int bit_depth_luma; ///< luma bit depth from sps to detect changes int chroma_format_idc; ///< chroma format from sps to detect changes diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c index 4070490..26b705a 100644 --- a/libavcodec/h264_ps.c +++ b/libavcodec/h264_ps.c @@ -550,6 +550,9 @@ int ff_h264_decode_seq_parameter_set(H264Context *h) av_free(h->sps_buffers[sps_id]); h->sps_buffers[sps_id] = sps; + if (!h->ref_frame_count_export) + h->ref_frame_count_export = sps->ref_frame_count; + return 0; fail: -- 1.7.9.5 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel