From aedffc0b220bd47d2a4f5bd3ca751e4e51c500c7 Mon Sep 17 00:00:00 2001 From: James Almer Date: Thu, 12 Dec 2019 09:32:07 -0300 Subject: [PATCH] avcodec/mlp_parser: mark sync frames as key frames Signed-off-by: James Almer --- libavcodec/mlp_parser.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/mlp_parser.c b/libavcodec/mlp_parser.c index b5d3ff7226..5d2ddc5a70 100644 --- a/libavcodec/mlp_parser.c +++ b/libavcodec/mlp_parser.c @@ -61,6 +61,8 @@ static int mlp_parse(AVCodecParserContext *s, int ret; int i, p = 0; + s->key_frame = 0; + *poutbuf_size = 0; if (buf_size == 0) return 0; @@ -136,6 +138,8 @@ static int mlp_parse(AVCodecParserContext *s, * access unit header and all the 2- or 4-byte substream headers. */ // Only check when this isn't a sync frame - syncs have a checksum. + s->key_frame = 0; + parity_bits = 0; for (i = -1; i < mp->num_substreams; i++) { parity_bits ^= buf[p++]; @@ -159,6 +163,8 @@ static int mlp_parse(AVCodecParserContext *s, if (ff_mlp_read_major_sync(avctx, &mh, &gb) < 0) goto lost_sync; + s->key_frame = 1; + avctx->bits_per_raw_sample = mh.group1_bits; if (avctx->bits_per_raw_sample > 16) avctx->sample_fmt = AV_SAMPLE_FMT_S32;