ARM: fail build if hardcoded struct offsets are wrong
Originally committed as revision 23427 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
							parent
							
								
									83b7076131
								
							
						
					
					
						commit
						a76eec3b78
					
				
							
								
								
									
										39
									
								
								libavcodec/arm/asm-offsets.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								libavcodec/arm/asm-offsets.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2010 Mans Rullgard
 | 
			
		||||
 *
 | 
			
		||||
 * This file is part of FFmpeg.
 | 
			
		||||
 *
 | 
			
		||||
 * FFmpeg is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
 * License as published by the Free Software Foundation; either
 | 
			
		||||
 * version 2.1 of the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * FFmpeg is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * Lesser General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
 * License along with FFmpeg; if not, write to the Free Software
 | 
			
		||||
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef AVCODEC_ARM_ASM_OFFSETS_H
 | 
			
		||||
#define AVCODEC_ARM_ASM_OFFSETS_H
 | 
			
		||||
 | 
			
		||||
#ifndef __ASSEMBLER__
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
#define CHK_OFFS(s, m, o) struct check_##o {    \
 | 
			
		||||
        int x_##o[offsetof(s, m) == o? 1: -1];  \
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* MpegEncContext */
 | 
			
		||||
#define Y_DC_SCALE               0xa54
 | 
			
		||||
#define C_DC_SCALE               0xa58
 | 
			
		||||
#define AC_PRED                  0xa80
 | 
			
		||||
#define BLOCK_LAST_INDEX         0x2278
 | 
			
		||||
#define INTER_SCANTAB_RASTER_END 0x2478
 | 
			
		||||
#define H263_AIC                 0x2728
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@ -22,6 +22,14 @@
 | 
			
		||||
#include "libavcodec/dsputil.h"
 | 
			
		||||
#include "libavcodec/mpegvideo.h"
 | 
			
		||||
#include "mpegvideo_arm.h"
 | 
			
		||||
#include "asm-offsets.h"
 | 
			
		||||
 | 
			
		||||
CHK_OFFS(MpegEncContext, y_dc_scale,       Y_DC_SCALE);
 | 
			
		||||
CHK_OFFS(MpegEncContext, c_dc_scale,       C_DC_SCALE);
 | 
			
		||||
CHK_OFFS(MpegEncContext, ac_pred,          AC_PRED);
 | 
			
		||||
CHK_OFFS(MpegEncContext, block_last_index, BLOCK_LAST_INDEX);
 | 
			
		||||
CHK_OFFS(MpegEncContext, inter_scantable.raster_end, INTER_SCANTAB_RASTER_END);
 | 
			
		||||
CHK_OFFS(MpegEncContext, h263_aic,         H263_AIC);
 | 
			
		||||
 | 
			
		||||
void ff_dct_unquantize_h263_inter_neon(MpegEncContext *s, DCTELEM *block,
 | 
			
		||||
                                       int n, int qscale);
 | 
			
		||||
 | 
			
		||||
@ -19,13 +19,7 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "asm.S"
 | 
			
		||||
 | 
			
		||||
#define Y_DC_SCALE               0xa54
 | 
			
		||||
#define C_DC_SCALE               0xa58
 | 
			
		||||
#define AC_PRED                  0xa80
 | 
			
		||||
#define BLOCK_LAST_INDEX         0x2278
 | 
			
		||||
#define INTER_SCANTAB_RASTER_END 0x2478
 | 
			
		||||
#define H263_AIC                 0x2728
 | 
			
		||||
#include "asm-offsets.h"
 | 
			
		||||
 | 
			
		||||
function ff_dct_unquantize_h263_inter_neon, export=1
 | 
			
		||||
        add             r0,  r0,  #0x2200
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user