diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-06-30 17:57:35 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-07-25 23:32:08 +0200 |
commit | 6265b155bc6dfa9d327273b060af767cc391a3f1 (patch) | |
tree | a14720d5fb21722d2531ad6b50e6071e982bd1b5 /libavcodec/mips/hevcpred_msa.c | |
parent | 13b3e84a4fc9cf2ecfeaa7a9ed148eda496419a6 (diff) | |
download | ffmpeg-6265b155bc6dfa9d327273b060af767cc391a3f1.tar.gz |
avcodec/hevcpred: Pass HEVCLocalContext when slice-threading
The HEVC decoder has both HEVCContext and HEVCLocalContext
structures. The latter is supposed to be the structure
containing the per-slicethread state.
Yet that is not how it is handled in practice: Each HEVCLocalContext
has a unique HEVCContext allocated for it and each of these
coincides except in exactly one field: The corresponding
HEVCLocalContext. This makes it possible to pass the HEVCContext
everywhere where logically a HEVCLocalContext should be used.
This commit stops doing this for lavc/hevcpred as well as
the corresponding mips code; the latter is untested.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec/mips/hevcpred_msa.c')
-rw-r--r-- | libavcodec/mips/hevcpred_msa.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/mips/hevcpred_msa.c b/libavcodec/mips/hevcpred_msa.c index f53276d34e..b056ee986b 100644 --- a/libavcodec/mips/hevcpred_msa.c +++ b/libavcodec/mips/hevcpred_msa.c @@ -1903,10 +1903,10 @@ void ff_pred_intra_pred_angular_3_msa(uint8_t *dst, } } -void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx) +void ff_intra_pred_8_16x16_msa(HEVCLocalContext *lc, int x0, int y0, int c_idx) { v16u8 vec0; - HEVCLocalContext *lc = s->HEVClc; + const HEVCContext *const s = lc->parent; int i; int hshift = s->ps.sps->hshift[c_idx]; int vshift = s->ps.sps->vshift[c_idx]; @@ -2416,14 +2416,14 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx) } } -void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx) +void ff_intra_pred_8_32x32_msa(HEVCLocalContext *lc, int x0, int y0, int c_idx) { v16u8 vec0, vec1; v8i16 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; v8i16 res0, res1, res2, res3; v8i16 mul_val0 = { 63, 62, 61, 60, 59, 58, 57, 56 }; v8i16 mul_val1 = { 1, 2, 3, 4, 5, 6, 7, 8 }; - HEVCLocalContext *lc = s->HEVClc; + const HEVCContext *const s = lc->parent; int i; int hshift = s->ps.sps->hshift[c_idx]; int vshift = s->ps.sps->vshift[c_idx]; |