10c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_PATH := $(call my-dir) 20c1bc742181ded4930842b46e9507372f0b1b963James Dong 30c1bc742181ded4930842b46e9507372f0b1b963James Donginclude $(CLEAR_VARS) 40c1bc742181ded4930842b46e9507372f0b1b963James Dong 50c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_ARM_MODE := arm 60c1bc742181ded4930842b46e9507372f0b1b963James Dong 70c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_SRC_FILES := \ 80c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_transform.c \ 90c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_util.c \ 100c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_byte_stream.c \ 110c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_seq_param_set.c \ 120c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_pic_param_set.c \ 130c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_slice_header.c \ 140c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_slice_data.c \ 150c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_macroblock_layer.c \ 160c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_stream.c \ 170c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_vlc.c \ 180c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_cavlc.c \ 190c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_nal_unit.c \ 200c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_neighbour.c \ 210c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_storage.c \ 220c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_slice_group_map.c \ 230c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_intra_prediction.c \ 240c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_inter_prediction.c \ 250c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_reconstruct.c \ 260c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_dpb.c \ 270c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_image.c \ 280c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_deblocking.c \ 290c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_conceal.c \ 300c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_vui.c \ 310c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_pic_order_cnt.c \ 320c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/h264bsd_decoder.c \ 330c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/H264SwDecApi.c \ 340c1bc742181ded4930842b46e9507372f0b1b963James Dong SoftAVC.cpp \ 350c1bc742181ded4930842b46e9507372f0b1b963James Dong 360c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_C_INCLUDES := $(LOCAL_PATH)/./inc \ 37559bf2836f5da25b75bfb229fec0d20d540ee426James Dong frameworks/av/media/libstagefright/include \ 386c6b4d0d2b98a7ceee8b697daaf611f8df3254fbJames Dong frameworks/native/include/media/openmax \ 390c1bc742181ded4930842b46e9507372f0b1b963James Dong 400c1bc742181ded4930842b46e9507372f0b1b963James DongMY_ASM := \ 410c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/arm_neon_asm_gcc/h264bsdWriteMacroblock.S \ 420c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/arm_neon_asm_gcc/h264bsdClearMbLayer.S \ 430c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/arm_neon_asm_gcc/h264bsdFillRow7.S \ 440c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/arm_neon_asm_gcc/h264bsdCountLeadingZeros.S \ 450c1bc742181ded4930842b46e9507372f0b1b963James Dong ./source/arm_neon_asm_gcc/h264bsdFlushBits.S 460c1bc742181ded4930842b46e9507372f0b1b963James Dong 470c1bc742181ded4930842b46e9507372f0b1b963James Dong 480c1bc742181ded4930842b46e9507372f0b1b963James DongMY_OMXDL_C_SRC := \ 490c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_DeblockChroma_I.c \ 500c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_DeblockLuma_I.c \ 510c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_InterpolateChroma.c \ 520c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src/armVCM4P10_CAVLCTables.c \ 530c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_DecodeChromaDcCoeffsToPairCAVLC.c \ 540c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src/omxVCM4P10_DecodeCoeffsToPairCAVLC.c \ 550c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/src/armCOMM_Bitstream.c \ 560c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/src/armCOMM.c 570c1bc742181ded4930842b46e9507372f0b1b963James Dong 580c1bc742181ded4930842b46e9507372f0b1b963James DongMY_OMXDL_ASM_SRC := \ 590c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DeblockingChroma_unsafe_s.S \ 600c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DeblockingLuma_unsafe_s.S \ 610c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_Interpolate_Chroma_s.S \ 620c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_Align_unsafe_s.S \ 630c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_Copy_unsafe_s.S \ 640c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_DiagCopy_unsafe_s.S \ 650c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe_s.S \ 660c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe_s.S \ 670c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe_s.S \ 680c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe_s.S \ 690c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_FilterDeblockingChroma_HorEdge_I_s.S \ 700c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_FilterDeblockingChroma_VerEdge_I_s.S \ 710c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_FilterDeblockingLuma_HorEdge_I_s.S \ 720c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_FilterDeblockingLuma_VerEdge_I_s.S \ 730c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_InterpolateLuma_s.S \ 740c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_Average_4x_Align_unsafe_s.S \ 750c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DecodeCoeffsToPair_s.S \ 760c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DequantTables_s.S \ 770c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_QuantTables_s.S \ 780c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_TransformResidual4x4_s.S \ 790c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_UnpackBlock4x4_s.S \ 800c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantLumaDCFromPair_s.S \ 810c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_16x16_s.S \ 820c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_4x4_s.S \ 830c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntraChroma_8x8_s.S \ 840c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_DequantTransformResidualFromPairAndAdd_s.S \ 850c1bc742181ded4930842b46e9507372f0b1b963James Dong ./omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantChromaDCFromPair_s.S \ 860c1bc742181ded4930842b46e9507372f0b1b963James Dong 87db46c2f8ff4b305a217adbbd406a61d10ae71db7Ashok Bhatifeq ($(TARGET_ARCH),arm) 88db46c2f8ff4b305a217adbbd406a61d10ae71db7Ashok Bhat ifeq ($(ARCH_ARM_HAVE_NEON),true) 890c1bc742181ded4930842b46e9507372f0b1b963James Dong LOCAL_ARM_NEON := true 900c1bc742181ded4930842b46e9507372f0b1b963James Dong# LOCAL_CFLAGS := -std=c99 -D._NEON -D._OMXDL 910c1bc742181ded4930842b46e9507372f0b1b963James Dong LOCAL_CFLAGS := -DH264DEC_NEON -DH264DEC_OMXDL 920c1bc742181ded4930842b46e9507372f0b1b963James Dong LOCAL_SRC_FILES += $(MY_ASM) $(MY_OMXDL_C_SRC) $(MY_OMXDL_ASM_SRC) 930c1bc742181ded4930842b46e9507372f0b1b963James Dong LOCAL_C_INCLUDES += $(LOCAL_PATH)/./source/arm_neon_asm_gcc 940c1bc742181ded4930842b46e9507372f0b1b963James Dong LOCAL_C_INCLUDES += $(LOCAL_PATH)/./omxdl/arm_neon/api \ 950c1bc742181ded4930842b46e9507372f0b1b963James Dong $(LOCAL_PATH)/./omxdl/arm_neon/vc/api \ 960c1bc742181ded4930842b46e9507372f0b1b963James Dong $(LOCAL_PATH)/./omxdl/arm_neon/vc/m4p10/api 97db46c2f8ff4b305a217adbbd406a61d10ae71db7Ashok Bhat endif 980c1bc742181ded4930842b46e9507372f0b1b963James Dongendif 990c1bc742181ded4930842b46e9507372f0b1b963James Dong 1000c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_SHARED_LIBRARIES := \ 101da0dc0af0effe9fbfb3ce3187c8472fca2baf3c6Ying Wang libstagefright libstagefright_omx libstagefright_foundation libutils liblog \ 1020c1bc742181ded4930842b46e9507372f0b1b963James Dong 1030c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_MODULE := libstagefright_soft_h264dec 1040c1bc742181ded4930842b46e9507372f0b1b963James Dong 1050c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_MODULE_TAGS := optional 1060c1bc742181ded4930842b46e9507372f0b1b963James Dong 1070c1bc742181ded4930842b46e9507372f0b1b963James Donginclude $(BUILD_SHARED_LIBRARY) 1080c1bc742181ded4930842b46e9507372f0b1b963James Dong 1090c1bc742181ded4930842b46e9507372f0b1b963James Dong##################################################################### 1100c1bc742181ded4930842b46e9507372f0b1b963James Dong# test utility: decoder 1110c1bc742181ded4930842b46e9507372f0b1b963James Dong##################################################################### 1120c1bc742181ded4930842b46e9507372f0b1b963James Dong## 1130c1bc742181ded4930842b46e9507372f0b1b963James Dong## Test application 1140c1bc742181ded4930842b46e9507372f0b1b963James Dong## 1150c1bc742181ded4930842b46e9507372f0b1b963James Donginclude $(CLEAR_VARS) 1160c1bc742181ded4930842b46e9507372f0b1b963James Dong 1170c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_SRC_FILES := ./source/DecTestBench.c 1180c1bc742181ded4930842b46e9507372f0b1b963James Dong 1190c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_C_INCLUDES := $(LOCAL_PATH)/inc 1200c1bc742181ded4930842b46e9507372f0b1b963James Dong 1210c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_SHARED_LIBRARIES := libstagefright_soft_h264dec 1220c1bc742181ded4930842b46e9507372f0b1b963James Dong 1230e6858d6aea12fc585a8c7d217c1271878655081Dan MorrillLOCAL_MODULE_TAGS := optional 1240c1bc742181ded4930842b46e9507372f0b1b963James Dong 1250c1bc742181ded4930842b46e9507372f0b1b963James DongLOCAL_MODULE := decoder 1260c1bc742181ded4930842b46e9507372f0b1b963James Dong 1270c1bc742181ded4930842b46e9507372f0b1b963James Donginclude $(BUILD_EXECUTABLE) 128