mirror of https://git.ffmpeg.org/ffmpeg.git
hevc: fix key_frame as an IRAP
it was always 1 before with ISOBMFF(cherry picked from commit fb1402b1ec78d80acd6ced76bf78d65560965c4c) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
93cade4825
commit
e2760de605
|
@ -373,7 +373,7 @@ static int hls_slice_header(HEVCContext *s)
|
||||||
ff_hevc_clear_refs(s);
|
ff_hevc_clear_refs(s);
|
||||||
}
|
}
|
||||||
sh->no_output_of_prior_pics_flag = 0;
|
sh->no_output_of_prior_pics_flag = 0;
|
||||||
if (s->nal_unit_type >= 16 && s->nal_unit_type <= 23)
|
if (IS_IRAP(s))
|
||||||
sh->no_output_of_prior_pics_flag = get_bits1(gb);
|
sh->no_output_of_prior_pics_flag = get_bits1(gb);
|
||||||
if (s->nal_unit_type == NAL_CRA_NUT && s->last_eos == 1)
|
if (s->nal_unit_type == NAL_CRA_NUT && s->last_eos == 1)
|
||||||
sh->no_output_of_prior_pics_flag = 1;
|
sh->no_output_of_prior_pics_flag = 1;
|
||||||
|
@ -2862,6 +2862,7 @@ static int hevc_decode_frame(AVCodecContext *avctx, void *data, int *got_output,
|
||||||
s->is_md5 = 0;
|
s->is_md5 = 0;
|
||||||
|
|
||||||
if (s->is_decoded) {
|
if (s->is_decoded) {
|
||||||
|
s->ref->frame->key_frame = IS_IRAP(s);
|
||||||
av_log(avctx, AV_LOG_DEBUG, "Decoded frame with POC %d.\n", s->poc);
|
av_log(avctx, AV_LOG_DEBUG, "Decoded frame with POC %d.\n", s->poc);
|
||||||
s->is_decoded = 0;
|
s->is_decoded = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,7 +169,7 @@ static inline int parse_nal_units(AVCodecParserContext *s, AVCodecContext *avctx
|
||||||
s->picture_structure = h->picture_struct;
|
s->picture_structure = h->picture_struct;
|
||||||
s->field_order = h->picture_struct;
|
s->field_order = h->picture_struct;
|
||||||
|
|
||||||
if (h->nal_unit_type >= 16 && h->nal_unit_type <= 23) {
|
if (IS_IRAP(h)) {
|
||||||
s->key_frame = 1;
|
s->key_frame = 1;
|
||||||
sh->no_output_of_prior_pics_flag = get_bits1(gb);
|
sh->no_output_of_prior_pics_flag = get_bits1(gb);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue