From 34c805c0fe5ce8ce2ab8530192e103e471c5f0fe Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Thu, 25 Feb 2021 21:42:02 +0100 Subject: avcodec/imx: use ff_reget_buffer() Also flush internal stuff upon seeking. This codec is not intra only. --- libavformat/imx.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'libavformat/imx.c') diff --git a/libavformat/imx.c b/libavformat/imx.c index 1c7f5be0a4..c7778a91ab 100644 --- a/libavformat/imx.c +++ b/libavformat/imx.c @@ -31,6 +31,7 @@ typedef struct SimbiosisIMXDemuxContext { uint8_t pal[AVPALETTE_SIZE]; int pal_changed; + int64_t first_video_packet_pos; } SimbiosisIMXDemuxContext; static int simbiosis_imx_probe(const AVProbeData *p) @@ -107,6 +108,8 @@ retry: break; case 0xAA97: idx = 0; + if (!imx->first_video_packet_pos) + imx->first_video_packet_pos = pos; break; case 0xAA98: for (int i = 0; i < chunk_size / 3; i++) { @@ -137,6 +140,9 @@ retry: return AVERROR(ENOMEM); memcpy(pal, imx->pal, AVPALETTE_SIZE); imx->pal_changed = 0; + if (pos <= imx->first_video_packet_pos) + pkt->flags |= AV_PKT_FLAG_KEY; + } else if (idx == 1) { pkt->flags |= AV_PKT_FLAG_KEY; } -- cgit v1.2.3