dsputil: Drop ff_check_alignment() function
The function is supposed to confirm that the compiler provided enough alignment, but in practice it is only run in certain code paths and insufficient alignment problems are restricted to legacy compilers.
This commit is contained in:
parent
49676eb730
commit
9103185bd1
@ -29,7 +29,6 @@
|
||||
|
||||
#include "libavutil/attributes.h"
|
||||
#include "libavutil/imgutils.h"
|
||||
#include "libavutil/internal.h"
|
||||
#include "avcodec.h"
|
||||
#include "copy_block.h"
|
||||
#include "dct.h"
|
||||
@ -2417,30 +2416,8 @@ av_cold void ff_dsputil_static_init(void)
|
||||
}
|
||||
}
|
||||
|
||||
int ff_check_alignment(void){
|
||||
static int did_fail=0;
|
||||
LOCAL_ALIGNED_16(int, aligned, [4]);
|
||||
|
||||
if((intptr_t)aligned & 15){
|
||||
if(!did_fail){
|
||||
#if HAVE_MMX || HAVE_ALTIVEC
|
||||
av_log(NULL, AV_LOG_ERROR,
|
||||
"Compiler did not align stack variables. Libavcodec has been miscompiled\n"
|
||||
"and may be very slow or crash. This is not a bug in libavcodec,\n"
|
||||
"but in the compiler. You may try recompiling using gcc >= 4.2.\n"
|
||||
"Do not report crashes to Libav developers.\n");
|
||||
#endif
|
||||
did_fail=1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
av_cold void ff_dsputil_init(DSPContext* c, AVCodecContext *avctx)
|
||||
{
|
||||
ff_check_alignment();
|
||||
|
||||
#if CONFIG_ENCODERS
|
||||
if (avctx->bits_per_raw_sample == 10) {
|
||||
c->fdct = ff_jpeg_fdct_islow_10;
|
||||
|
@ -293,8 +293,6 @@ typedef struct DSPContext {
|
||||
void ff_dsputil_static_init(void);
|
||||
void ff_dsputil_init(DSPContext* p, AVCodecContext *avctx);
|
||||
|
||||
int ff_check_alignment(void);
|
||||
|
||||
void ff_set_cmp(DSPContext* c, me_cmp_func *cmp, int type);
|
||||
|
||||
void ff_dsputil_init_arm(DSPContext* c, AVCodecContext *avctx);
|
||||
|
@ -2357,8 +2357,6 @@ static int pre_estimate_motion_thread(AVCodecContext *c, void *arg){
|
||||
static int estimate_motion_thread(AVCodecContext *c, void *arg){
|
||||
MpegEncContext *s= *(void**)arg;
|
||||
|
||||
ff_check_alignment();
|
||||
|
||||
s->me.dia_size= s->avctx->dia_size;
|
||||
s->first_slice_line=1;
|
||||
for(s->mb_y= s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) {
|
||||
@ -2385,8 +2383,6 @@ static int mb_var_thread(AVCodecContext *c, void *arg){
|
||||
MpegEncContext *s= *(void**)arg;
|
||||
int mb_x, mb_y;
|
||||
|
||||
ff_check_alignment();
|
||||
|
||||
for(mb_y=s->start_mb_y; mb_y < s->end_mb_y; mb_y++) {
|
||||
for(mb_x=0; mb_x < s->mb_width; mb_x++) {
|
||||
int xx = mb_x * 16;
|
||||
@ -2477,8 +2473,6 @@ static int encode_thread(AVCodecContext *c, void *arg){
|
||||
uint8_t bit_buf_tex[2][MAX_MB_BYTES];
|
||||
PutBitContext pb[2], pb2[2], tex_pb[2];
|
||||
|
||||
ff_check_alignment();
|
||||
|
||||
for(i=0; i<2; i++){
|
||||
init_put_bits(&pb [i], bit_buf [i], MAX_MB_BYTES);
|
||||
init_put_bits(&pb2 [i], bit_buf2 [i], MAX_MB_BYTES);
|
||||
|
Loading…
x
Reference in New Issue
Block a user