summaryrefslogtreecommitdiff
path: root/libavcodec/arm
diff options
context:
space:
mode:
authorJ. Dekker <jdek@itanimul.li>2021-10-16 19:35:51 +0200
committerJ. Dekker <jdek@itanimul.li>2022-01-04 14:31:32 +0100
commit22b7c37275c611b5417722d8941844028aed7f25 (patch)
tree0aa62546f390cab86ed9e1fd59e5a9df8e9234ee /libavcodec/arm
parentb189550137155a622f88df6e64e72c2cca660854 (diff)
lavc/arm: dont assign hevc_qpel functions for non-multiple of 8 widths
The assembly is written assuming that the width is a multiple of 8. However the real issue is the functions were errorneously assigned to the 2, 4, 6 & 12 widths. This behaviour never broke the decoder as samples which trigger the functions for these widths have not been found in the wild. This relies on the mappings in ff_hevc_pel_weight[]. Signed-off-by: J. Dekker <jdek@itanimul.li>
Diffstat (limited to 'libavcodec/arm')
-rw-r--r--libavcodec/arm/hevcdsp_init_neon.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavcodec/arm/hevcdsp_init_neon.c b/libavcodec/arm/hevcdsp_init_neon.c
index 201a088dac..112edb5edd 100644
--- a/libavcodec/arm/hevcdsp_init_neon.c
+++ b/libavcodec/arm/hevcdsp_init_neon.c
@@ -270,7 +270,8 @@ av_cold void ff_hevc_dsp_init_neon(HEVCDSPContext *c, const int bit_depth)
put_hevc_qpel_uw_neon[3][1] = ff_hevc_put_qpel_uw_h1v3_neon_8;
put_hevc_qpel_uw_neon[3][2] = ff_hevc_put_qpel_uw_h2v3_neon_8;
put_hevc_qpel_uw_neon[3][3] = ff_hevc_put_qpel_uw_h3v3_neon_8;
- for (x = 0; x < 10; x++) {
+ for (x = 3; x < 10; x++) {
+ if (x == 4) continue;
c->put_hevc_qpel[x][1][0] = ff_hevc_put_qpel_neon_wrapper;
c->put_hevc_qpel[x][0][1] = ff_hevc_put_qpel_neon_wrapper;
c->put_hevc_qpel[x][1][1] = ff_hevc_put_qpel_neon_wrapper;