1 LOCAL_PATH := $(call my-dir) 2 3 include $(CLEAR_VARS) 4 5 LOCAL_ARM_MODE := arm 6 7 LOCAL_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 36 LOCAL_C_INCLUDES := $(LOCAL_PATH)/./inc \ 37 frameworks/av/media/libstagefright/include \ 38 frameworks/native/include/media/openmax \ 39 40 MY_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 48 MY_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 58 MY_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 ifeq ($(TARGET_ARCH),arm) 88 ifeq ($(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 97 endif 98 endif 99 100 LOCAL_SHARED_LIBRARIES := \ 101 libstagefright libstagefright_omx libstagefright_foundation libutils liblog \ 102 103 LOCAL_MODULE := libstagefright_soft_h264dec 104 105 LOCAL_MODULE_TAGS := optional 106 107 include $(BUILD_SHARED_LIBRARY) 108 109 ##################################################################### 110 # test utility: decoder 111 ##################################################################### 112 ## 113 ## Test application 114 ## 115 include $(CLEAR_VARS) 116 117 LOCAL_SRC_FILES := ./source/DecTestBench.c 118 119 LOCAL_C_INCLUDES := $(LOCAL_PATH)/inc 120 121 LOCAL_SHARED_LIBRARIES := libstagefright_soft_h264dec 122 123 LOCAL_MODULE_TAGS := optional 124 125 LOCAL_MODULE := decoder 126 127 include $(BUILD_EXECUTABLE) 128