diff mbox

[FFmpeg-devel] avcodec/mlp_parser: mark sync frames as key frames

Message ID 20191212123539.499-1-jamrial@gmail.com
State Accepted
Commit aedffc0b220bd47d2a4f5bd3ca751e4e51c500c7
Headers show

Commit Message

James Almer Dec. 12, 2019, 12:35 p.m. UTC
Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavcodec/mlp_parser.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox

Patch

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;