aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-04-22 01:44:52 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-06-12 11:43:30 +0200
commit183a67580b61fd83dd0d70ea57e31d6681392e5a (patch)
tree1842a9c6fda8de7bd12373e0848b8ad69e3d5558
parentdceb73a22d4346bdc34d9bd186a70ddf1964a6a0 (diff)
downloadffmpeg-183a67580b61fd83dd0d70ea57e31d6681392e5a.tar.gz
avcodec/mpeg12dec: Don't initialize inter tables for IPU
IPU is intra-only. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavcodec/mpeg12dec.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index 4e2a78c32d..b5605cb93d 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -2751,13 +2751,8 @@ static int ipu_decode_frame(AVCodecContext *avctx, AVFrame *frame,
m->intra_vlc_format = !!(s->flags & 0x20);
m->alternate_scan = !!(s->flags & 0x10);
- if (s->flags & 0x10) {
- ff_init_scantable(m->idsp.idct_permutation, &m->inter_scantable, ff_alternate_vertical_scan);
- ff_init_scantable(m->idsp.idct_permutation, &m->intra_scantable, ff_alternate_vertical_scan);
- } else {
- ff_init_scantable(m->idsp.idct_permutation, &m->inter_scantable, ff_zigzag_direct);
- ff_init_scantable(m->idsp.idct_permutation, &m->intra_scantable, ff_zigzag_direct);
- }
+ ff_init_scantable(m->idsp.idct_permutation, &m->intra_scantable,
+ s->flags & 0x10 ? ff_alternate_vertical_scan : ff_zigzag_direct);
m->last_dc[0] = m->last_dc[1] = m->last_dc[2] = 1 << (7 + (s->flags & 3));
m->qscale = 1;
@@ -2844,13 +2839,6 @@ static av_cold int ipu_decode_init(AVCodecContext *avctx)
m->chroma_intra_matrix[j] = v;
}
- for (int i = 0; i < 64; i++) {
- int j = m->idsp.idct_permutation[i];
- int v = ff_mpeg1_default_non_intra_matrix[i];
- m->inter_matrix[j] = v;
- m->chroma_inter_matrix[j] = v;
- }
-
return 0;
}