X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fhevc_parser.c;h=84f19b485c6c6e1164c1f64e980ffd6c578745ee;hb=b8a0be93528187721a2414f66abbc252a258afa3;hp=b444b9995507058fa1d3eeea105a00146be5bad7;hpb=409e684e79b6ee0c511292326f09b13fe230e58e;p=ffmpeg diff --git a/libavcodec/hevc_parser.c b/libavcodec/hevc_parser.c index b444b999550..84f19b485c6 100644 --- a/libavcodec/hevc_parser.c +++ b/libavcodec/hevc_parser.c @@ -202,6 +202,9 @@ static int parse_nal_units(AVCodecParserContext *s, const uint8_t *buf, H2645NAL *nal = &ctx->pkt.nals[i]; GetBitContext *gb = &nal->gb; + if (nal->nuh_layer_id > 0) + continue; + switch (nal->type) { case HEVC_NAL_VPS: ff_hevc_decode_nal_vps(gb, avctx, ps); @@ -232,6 +235,11 @@ static int parse_nal_units(AVCodecParserContext *s, const uint8_t *buf, case HEVC_NAL_RADL_R: case HEVC_NAL_RASL_N: case HEVC_NAL_RASL_R: + if (ctx->sei.picture_timing.picture_struct == HEVC_SEI_PIC_STRUCT_FRAME_DOUBLING) { + s->repeat_pict = 1; + } else if (ctx->sei.picture_timing.picture_struct == HEVC_SEI_PIC_STRUCT_FRAME_TRIPLING) { + s->repeat_pict = 2; + } ret = hevc_parse_slice_header(s, nal, avctx); if (ret) return ret;