blob: 772fd60fcc095894f068ed3a5545a9efc8693045 [file] [log] [blame]
James Dong0c1bc742011-05-31 18:53:46 -07001LOCAL_PATH := $(call my-dir)
2
3include $(CLEAR_VARS)
4
5LOCAL_ARM_MODE := arm
6
7LOCAL_SRC_FILES := \
8 ./source/h264bsd_transform.c \
9 ./source/h264bsd_util.c \
10 ./source/h264bsd_byte_stream.c \
11 ./source/h264bsd_seq_param_set.c \
12 ./source/h264bsd_pic_param_set.c \
13 ./source/h264bsd_slice_header.c \
14 ./source/h264bsd_slice_data.c \
15 ./source/h264bsd_macroblock_layer.c \
16 ./source/h264bsd_stream.c \
17 ./source/h264bsd_vlc.c \
18 ./source/h264bsd_cavlc.c \
19 ./source/h264bsd_nal_unit.c \
20 ./source/h264bsd_neighbour.c \
21 ./source/h264bsd_storage.c \
22 ./source/h264bsd_slice_group_map.c \
23 ./source/h264bsd_intra_prediction.c \
24 ./source/h264bsd_inter_prediction.c \
25 ./source/h264bsd_reconstruct.c \
26 ./source/h264bsd_dpb.c \
27 ./source/h264bsd_image.c \
28 ./source/h264bsd_deblocking.c \
29 ./source/h264bsd_conceal.c \
30 ./source/h264bsd_vui.c \
31 ./source/h264bsd_pic_order_cnt.c \
32 ./source/h264bsd_decoder.c \
33 ./source/H264SwDecApi.c \
34 SoftAVC.cpp \
35
36LOCAL_C_INCLUDES := $(LOCAL_PATH)/./inc \
James Dong559bf282012-03-28 10:29:14 -070037 frameworks/av/media/libstagefright/include \
James Dong6c6b4d02012-03-12 14:37:53 -070038 frameworks/native/include/media/openmax \
James Dong0c1bc742011-05-31 18:53:46 -070039
40MY_ASM := \
41 ./source/arm_neon_asm_gcc/h264bsdWriteMacroblock.S \
42 ./source/arm_neon_asm_gcc/h264bsdClearMbLayer.S \
43 ./source/arm_neon_asm_gcc/h264bsdFillRow7.S \
44 ./source/arm_neon_asm_gcc/h264bsdCountLeadingZeros.S \
45 ./source/arm_neon_asm_gcc/h264bsdFlushBits.S
46
47
48MY_OMXDL_C_SRC := \
49 ./omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_DeblockChroma_I.c \
50 ./omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_DeblockLuma_I.c \
51 ./omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_InterpolateChroma.c \
52 ./omxdl/arm_neon/vc/m4p10/src/armVCM4P10_CAVLCTables.c \
53 ./omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_DecodeChromaDcCoeffsToPairCAVLC.c \
54 ./omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_DecodeCoeffsToPairCAVLC.c \
55 ./omxdl/arm_neon/src/armCOMM_Bitstream.c \
56 ./omxdl/arm_neon/src/armCOMM.c
57
58MY_OMXDL_ASM_SRC := \
59 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DeblockingChroma_unsafe_s.S \
60 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DeblockingLuma_unsafe_s.S \
61 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_Interpolate_Chroma_s.S \
62 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_Align_unsafe_s.S \
63 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_Copy_unsafe_s.S \
64 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_DiagCopy_unsafe_s.S \
65 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe_s.S \
66 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe_s.S \
67 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe_s.S \
68 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe_s.S \
69 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_FilterDeblockingChroma_HorEdge_I_s.S \
70 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_FilterDeblockingChroma_VerEdge_I_s.S \
71 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_FilterDeblockingLuma_HorEdge_I_s.S \
72 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_FilterDeblockingLuma_VerEdge_I_s.S \
73 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_InterpolateLuma_s.S \
74 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_Average_4x_Align_unsafe_s.S \
75 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DecodeCoeffsToPair_s.S \
76 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DequantTables_s.S \
77 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_QuantTables_s.S \
78 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_TransformResidual4x4_s.S \
79 ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_UnpackBlock4x4_s.S \
80 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantLumaDCFromPair_s.S \
81 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_16x16_s.S \
82 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_4x4_s.S \
83 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntraChroma_8x8_s.S \
84 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_DequantTransformResidualFromPairAndAdd_s.S \
85 ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantChromaDCFromPair_s.S \
86
87
88ifeq ($(ARCH_ARM_HAVE_NEON),true)
89 LOCAL_ARM_NEON := true
90# LOCAL_CFLAGS := -std=c99 -D._NEON -D._OMXDL
91 LOCAL_CFLAGS := -DH264DEC_NEON -DH264DEC_OMXDL
92 LOCAL_SRC_FILES += $(MY_ASM) $(MY_OMXDL_C_SRC) $(MY_OMXDL_ASM_SRC)
93 LOCAL_C_INCLUDES += $(LOCAL_PATH)/./source/arm_neon_asm_gcc
94 LOCAL_C_INCLUDES += $(LOCAL_PATH)/./omxdl/arm_neon/api \
95 $(LOCAL_PATH)/./omxdl/arm_neon/vc/api \
96 $(LOCAL_PATH)/./omxdl/arm_neon/vc/m4p10/api
97endif
98
99LOCAL_SHARED_LIBRARIES := \
100 libstagefright libstagefright_omx libstagefright_foundation libutils \
101
102LOCAL_MODULE := libstagefright_soft_h264dec
103
104LOCAL_MODULE_TAGS := optional
105
106include $(BUILD_SHARED_LIBRARY)
107
108#####################################################################
109# test utility: decoder
110#####################################################################
111##
112## Test application
113##
114include $(CLEAR_VARS)
115
116LOCAL_SRC_FILES := ./source/DecTestBench.c
117
118LOCAL_C_INCLUDES := $(LOCAL_PATH)/inc
119
120LOCAL_SHARED_LIBRARIES := libstagefright_soft_h264dec
121
122LOCAL_MODULE_TAGS := debug
123
124LOCAL_MODULE := decoder
125
126include $(BUILD_EXECUTABLE)
127