1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
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
..
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
celp_filters_mips.c
celp_math_mips.c
compute_antialias_fixed.h
compute_antialias_float.h
constants.c
constants.h
fmtconvert_mips.c
h263dsp_init_mips.c
h263dsp_mips.h
h263dsp_msa.c
h264_deblock_msa.c
h264chroma_init_mips.c
h264chroma_mips.h
h264chroma_mmi.c
h264chroma_msa.c
h264dsp_init_mips.c
h264dsp_mips.h
h264dsp_mmi.c
h264dsp_msa.c
h264idct_msa.c
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
hevc_lpf_sao_msa.c
hevc_macros_msa.h
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
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
hevcpred_msa.c
hpeldsp_init_mips.c
hpeldsp_mips.h
hpeldsp_mmi.c
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
Makefile avcodec/mips/aaccoder_mips: Remove MIPS-specific aaccoder 2024-03-18 01:49:38 +01: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
mpegaudiodsp_mips_fixed.c
mpegaudiodsp_mips_float.c
mpegvideo_init_mips.c
mpegvideo_mips.h
mpegvideo_mmi.c
mpegvideo_msa.c
mpegvideoencdsp_init_mips.c
mpegvideoencdsp_msa.c
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
simple_idct_msa.c
vc1dsp_init_mips.c
vc1dsp_mips.h
vc1dsp_mmi.c
vc1dsp_msa.c
videodsp_init.c
vp3dsp_idct_mmi.c
vp3dsp_idct_msa.c
vp3dsp_init_mips.c
vp3dsp_mips.h
vp8_idct_msa.c
vp8_lpf_msa.c
vp8_mc_msa.c
vp8dsp_init_mips.c
vp8dsp_mips.h
vp8dsp_mmi.c
vp9_idct_msa.c
vp9_intra_msa.c
vp9_lpf_msa.c
vp9_mc_mmi.c
vp9_mc_msa.c
vp9dsp_init_mips.c
vp9dsp_mips.h
wmv2dsp_init_mips.c
wmv2dsp_mips.h
wmv2dsp_mmi.c
xvid_idct_mmi.c
xvididct_init_mips.c
xvididct_mips.h