shithub: openh264

Download patch

ref: 81ac3d2a9b8f4b2a213909e9a264ee9dae784beb
parent: 464244ccbe355c07fbcda488992e1d9bd505433a
author: Martin Storsjö <[email protected]>
date: Fri Aug 15 05:50:05 EDT 2014

Fix building svc_motion_estimation.S for android

The .align directive takes an argument in number of bits, i.e. the
actual alignment is 2^n. Previously building with binutils failed,
since 16 isn't a valid parameter to .align, the maximum is 15.

Thus, this makes the code try to align to 16 bytes, instead of aligning
to 65536 bytes.

This fixes building for android.

This also clears up the same mistake in the aarch64 code, even though
that one built just fine.

--- a/codec/common/arm64/mc_aarch64_neon.S
+++ b/codec/common/arm64/mc_aarch64_neon.S
@@ -33,7 +33,7 @@
 #ifdef HAVE_NEON_AARCH64
 .text
 #include "arm_arch64_common_macro.S"
-.align 16
+.align 4
 filter_para: .short 0, 1, -5, 20, 0, 0, 0, 0
 
 #ifdef __APPLE__
--- a/codec/decoder/core/arm64/intra_pred_aarch64_neon.S
+++ b/codec/decoder/core/arm64/intra_pred_aarch64_neon.S
@@ -308,7 +308,7 @@
 .endr
 WELS_ASM_AARCH64_FUNC_END
 
-.align 16
+.align 4
 intra_1_to_4: .short 17*1, 17*2, 17*3, 17*4, 17*1, 17*2, 17*3, 17*4
 intra_m3_to_p4: .short -3, -2, -1, 0, 1, 2, 3, 4
 
@@ -457,7 +457,7 @@
 WELS_ASM_AARCH64_FUNC_END
 
 
-.align 16
+.align 4
 intra_1_to_8: .short 5, 10, 15, 20, 25, 30, 35, 40
 intra_m7_to_p8: .short -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8
 
--- a/codec/encoder/core/arm/svc_motion_estimation.S
+++ b/codec/encoder/core/arm/svc_motion_estimation.S
@@ -292,7 +292,7 @@
     ldmia sp!, {r4-r7}
 WELS_ASM_FUNC_END
 
-.align 16
+.align 4
 mv_x_inc_x4: .short 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00
 mv_y_inc_x4: .short 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00
 mx_x_offset_x4: .short 0x00, 0x04, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x00
--- a/codec/encoder/core/arm64/intra_pred_aarch64_neon.S
+++ b/codec/encoder/core/arm64/intra_pred_aarch64_neon.S
@@ -294,7 +294,7 @@
 .endr
 WELS_ASM_AARCH64_FUNC_END
 
-.align 16
+.align 4
 intra_1_to_4: .short 17*1, 17*2, 17*3, 17*4, 17*1, 17*2, 17*3, 17*4
 intra_m3_to_p4: .short -3, -2, -1, 0, 1, 2, 3, 4
 
@@ -437,7 +437,7 @@
 WELS_ASM_AARCH64_FUNC_END
 
 
-.align 16
+.align 4
 intra_1_to_8: .short 5, 10, 15, 20, 25, 30, 35, 40
 intra_m7_to_p8: .short -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8
 
--- a/codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S
+++ b/codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S
@@ -271,7 +271,7 @@
 _hash_assign_end:
 WELS_ASM_AARCH64_FUNC_END
 
-.align 16
+.align 4
 mv_x_inc_x4: .short 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00
 mv_y_inc_x4: .short 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00
 mx_x_offset_x4: .short 0x00, 0x04, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x00