avcodec/mpeg12dec: Don't initialize inter tables for IPU

IPU is intra-only.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2024-04-22 01:44:52 +02:00
parent dceb73a22d
commit 183a67580b
1 changed files with 2 additions and 14 deletions

View File

@ -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;
}