#include "libavutil/attributes.h"
#include "libavutil/imgutils.h"
-#include "libavutil/internal.h"
#include "avcodec.h"
#include "copy_block.h"
#include "dct.h"
}
}
-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;
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);
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++) {
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;
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);