1
0
Fork 0
FFmpeg/libavcodec/mips
Andreas Rheinhardt f1b08b8a65 avcodec/mips/aaccoder_mips: Remove MIPS-specific aaccoder
ff_aac_coder_init_mips() modifies a static const structure of
function pointers. This will crash if the binary uses relro
and is a data race in any case.

Furthermore it points to a maintainability issue: The
AACCoefficientsEncoder structures have been constified
in commit fd9212f2ed,
a Libav commit merged in 318778de9e.
Libav did not have the MIPS-specific AAC code and so this was
fine for them; yet FFmpeg had them, but this was not recognized.

Commit 75a099fc73 points to another
maintainability issue: Contrary to ordinary DSP code, this code
here is way more complex and needs to be constantly kept in sync
with the ordinary code which it mimicks and replaces. Said commit
is the only commit actually changing aaccoder.c in the last few
years and the same change has not been performed for the MIPS
clone; before that, it even happened several times that the mips
code was broken due to changes of the generic code (see commits
97437bd17a and
de262d018d or
860dbe0275 or
933309a6ca or
b65ffa316e). This might even lead
to scenarios where someone changing non-dsp aacenc code would
have to modify mips inline asm in order to keep them in sync.
This is obviously a significant burden (if the AAC encoder were
actively developed).

Finally, the code does not even compile here due to errors like
"Error: float register should be even, was 1".

Reviewed-by: Lynne <dev@lynne.ee>
Reviewed-by: Jean-Baptiste Kempf <jb@videolan.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-03-18 01:49:38 +01:00
..
Makefile avcodec/mips/aaccoder_mips: Remove MIPS-specific aaccoder 2024-03-18 01:49:38 +01:00
aacdec_mips.c avcodec/aacdec: Rename AACContext to AACDecContext 2024-02-27 00:11:21 +01:00
aacdec_mips.h avocdec/aac: Move decoder-only stuff to new header aacdec.h 2024-02-27 00:11:21 +01:00
aacpsdsp_mips.c
aacpsy_mips.h
aacsbr_mips.c avcodec/sbr: Remove unused AACDecContext* parameter from sbr_lf_gen_mips 2024-02-27 00:11:21 +01:00
aacsbr_mips.h avocdec/aac: Move decoder-only stuff to new header aacdec.h 2024-02-27 00:11:21 +01:00
ac3dsp_mips.c mips/ac3dsp_mips: add missing stddef.h header include 2023-11-25 21:51:04 -03:00
acelp_filters_mips.c
acelp_vectors_mips.c
amrwbdec_mips.c
amrwbdec_mips.h
blockdsp_init_mips.c
blockdsp_mips.h
blockdsp_mmi.c
blockdsp_msa.c
cabac.h mips: fix build fail on MIPS R6 2023-03-26 01:46:39 +01:00
celp_filters_mips.c
celp_math_mips.c
compute_antialias_fixed.h mips: fix build fail on MIPS R6 2023-03-26 01:46:39 +01:00
compute_antialias_float.h
constants.c
constants.h avcodec/mips/constants: Include intfloat.h in constants.h 2021-08-05 19:00:53 +02:00
fmtconvert_mips.c avcodec/fmtconvert: Remove unused AVCodecContext parameter 2022-09-21 20:26:40 +02:00
h263dsp_init_mips.c
h263dsp_mips.h avcodec/mpegvideoencdsp: Allow pointers to const where possible 2022-07-31 03:32:40 +02:00
h263dsp_msa.c
h264_deblock_msa.c
h264chroma_init_mips.c
h264chroma_mips.h avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
h264chroma_mmi.c avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
h264chroma_msa.c avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
h264dsp_init_mips.c
h264dsp_mips.h avcodec/h264dsp, h264idct: Fix lengths of array parameters 2021-08-08 17:44:57 +02:00
h264dsp_mmi.c avcodec/h264dsp, h264idct: Fix lengths of array parameters 2021-08-08 17:44:57 +02:00
h264dsp_msa.c
h264idct_msa.c avcodec/h264dsp, h264idct: Fix lengths of array parameters 2021-08-08 17:44:57 +02:00
h264pred_init_mips.c
h264pred_mips.h
h264pred_mmi.c
h264pred_msa.c
h264qpel_init_mips.c
h264qpel_mmi.c
h264qpel_msa.c
hevc_idct_msa.c avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevc_lpf_sao_msa.c avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevc_macros_msa.h lavc/mips: Fix hevc decoding bugs on MIPS paltform. 2022-09-16 21:30:57 +02:00
hevc_mc_bi_msa.c avcodec/hevcdsp: Offset ff_hevc_.pel_filters to simplify addressing 2024-02-13 20:25:49 -03:00
hevc_mc_biw_msa.c avcodec/hevcdsp: Offset ff_hevc_.pel_filters to simplify addressing 2024-02-13 20:25:49 -03:00
hevc_mc_uni_msa.c avcodec/hevcdsp: Offset ff_hevc_.pel_filters to simplify addressing 2024-02-13 20:25:49 -03:00
hevc_mc_uniw_msa.c avcodec/hevcdsp: Offset ff_hevc_.pel_filters to simplify addressing 2024-02-13 20:25:49 -03:00
hevcdsp_init_mips.c
hevcdsp_mips.h avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevcdsp_mmi.c avcodec/hevcdsp: Offset ff_hevc_.pel_filters to simplify addressing 2024-02-13 20:25:49 -03:00
hevcdsp_msa.c avcodec/hevcdsp: Offset ff_hevc_.pel_filters to simplify addressing 2024-02-13 20:25:49 -03:00
hevcpred_init_mips.c
hevcpred_mips.h avcodec/hevcpred: Pass HEVCLocalContext when slice-threading 2022-07-25 23:32:08 +02:00
hevcpred_msa.c avcodec/hevcpred: Pass HEVCLocalContext when slice-threading 2022-07-25 23:32:08 +02:00
hpeldsp_init_mips.c
hpeldsp_mips.h
hpeldsp_mmi.c avcodec/mips: Use MMI marcos to replace Loongson3 instructions 2021-07-28 23:31:48 +02:00
hpeldsp_msa.c
idctdsp_init_mips.c
idctdsp_mips.h configure: Remove av_restrict 2024-03-15 12:51:15 +01:00
idctdsp_mmi.c configure: Remove av_restrict 2024-03-15 12:51:15 +01:00
idctdsp_msa.c configure: Remove av_restrict 2024-03-15 12:51:15 +01:00
iirfilter_mips.c
lsp_mips.h avcodec/lsp: Make ff_lsp2polyf() static 2022-09-29 00:05:32 +02:00
mathops.h
me_cmp_init_mips.c
me_cmp_mips.h configure: Remove av_restrict 2024-03-15 12:51:15 +01:00
me_cmp_msa.c lavc/mips: Fix bugs in me_cmp_msa.c file. 2022-09-16 21:30:57 +02:00
mpegaudiodsp_mips_fixed.c Remove unnecessary libavutil/(avutil|common|internal).h inclusions 2022-02-24 12:56:49 +01:00
mpegaudiodsp_mips_float.c Remove unnecessary libavutil/(avutil|common|internal).h inclusions 2022-02-24 12:56:49 +01:00
mpegvideo_init_mips.c
mpegvideo_mips.h
mpegvideo_mmi.c
mpegvideo_msa.c
mpegvideoencdsp_init_mips.c
mpegvideoencdsp_msa.c avcodec/mpegvideoencdsp: Allow pointers to const where possible 2022-07-31 03:32:40 +02:00
pixblockdsp_init_mips.c
pixblockdsp_mips.h configure: Remove av_restrict 2024-03-15 12:51:15 +01:00
pixblockdsp_mmi.c configure: Remove av_restrict 2024-03-15 12:51:15 +01:00
pixblockdsp_msa.c configure: Remove av_restrict 2024-03-15 12:51:15 +01:00
qpeldsp_init_mips.c
qpeldsp_mips.h
qpeldsp_msa.c
sbrdsp_mips.c
simple_idct_mmi.c avcodec/mips: Use MMI marcos to replace Loongson3 instructions 2021-07-28 23:31:48 +02:00
simple_idct_msa.c
vc1dsp_init_mips.c
vc1dsp_mips.h avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
vc1dsp_mmi.c avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
vc1dsp_msa.c
videodsp_init.c avcodec/videodsp: Constify buf in VideoDSPContext.prefetch 2022-07-31 03:14:34 +02:00
vp3dsp_idct_mmi.c avcodec/mips: Use MMI marcos to replace Loongson3 instructions 2021-07-28 23:31:48 +02:00
vp3dsp_idct_msa.c
vp3dsp_init_mips.c
vp3dsp_mips.h
vp8_idct_msa.c
vp8_lpf_msa.c
vp8_mc_msa.c avcodec/vp8dsp: Constify src in vp8_mc_func 2022-09-11 20:57:51 +02:00
vp8dsp_init_mips.c
vp8dsp_mips.h avcodec/vp8dsp: Constify src in vp8_mc_func 2022-09-11 20:57:51 +02:00
vp8dsp_mmi.c avcodec/mips: Use MMI marcos to replace Loongson3 instructions 2021-07-28 23:31:48 +02:00
vp9_idct_msa.c
vp9_intra_msa.c
vp9_lpf_msa.c
vp9_mc_mmi.c avcodec/mips: Use MMI marcos to replace Loongson3 instructions 2021-07-28 23:31:48 +02:00
vp9_mc_msa.c
vp9dsp_init_mips.c
vp9dsp_mips.h avcodec/mips: Fix checkheaders 2022-02-21 13:10:10 +01:00
wmv2dsp_init_mips.c
wmv2dsp_mips.h
wmv2dsp_mmi.c
xvid_idct_mmi.c
xvididct_init_mips.c
xvididct_mips.h