[automerger] Decoder: Signal IVD_RES_CHANGED error for change in crop params am: fdbbd60bfe am: 2c56677a61 am: 5f668de48b am: 80f7bce01d am: 4ec0aaf69b am: fea57ee069 am: a28e5a297c
am: 0cbc12f971

Change-Id: I4dc4129a18c12be075c7168f1de7a6cf549048c4
diff --git a/Android.bp b/Android.bp
index 2f90c31..d74fb76 100644
--- a/Android.bp
+++ b/Android.bp
@@ -9,6 +9,11 @@
 
         "-O3",
         "-DANDROID",
+        "-Wall",
+        "-Werror",
+        // common/x86/ihevc_sao_ssse3_intr.c: implicit conversion from
+        // 'int' to 'char' changes value from 128 to -128
+        "-Wno-error=constant-conversion",
     ],
 
     export_include_dirs: [
@@ -192,7 +197,7 @@
 
             instruction_set: "arm",
 
-            armv7_a_neon: {
+            neon: {
                 srcs: [
                     "decoder/arm/ihevcd_function_selector_a9q.c",
                     "common/arm/ihevc_intra_ref_substitution_a9q.c",
@@ -383,4 +388,12 @@
             ],
         },
     },
+
+    sanitize: {
+        cfi: true,
+        diag: {
+            cfi: true,
+        },
+        blacklist: "cfi_blacklist.txt",
+    },
 }
diff --git a/cfi_blacklist.txt b/cfi_blacklist.txt
new file mode 100644
index 0000000..4193e81
--- /dev/null
+++ b/cfi_blacklist.txt
@@ -0,0 +1,459 @@
+# CFI blacklist for external/libhevc
+
+# assembly functions where CFI has issues
+fun:ihevc_intra_pred_chroma_horz_av8
+fun:ihevc_intra_pred_luma_dc_av8
+fun:ihevc_inter_pred_luma_vert_w16inp_w16out_av8
+fun:ihevc_weighted_pred_bi_av8
+fun:ihevc_intra_pred_chroma_ver_av8
+fun:gi1_table_edge_idx
+fun:ihevc_sao_edge_offset_class1_av8
+fun:ihevc_intra_pred_luma_mode_18_34_av8
+fun:ihevc_intra_pred_luma_planar_av8
+fun:ihevc_inter_pred_chroma_horz_av8
+fun:ihevc_inter_pred_luma_vert_av8
+fun:ihevc_itrans_recon_16x16_av8
+fun:ihevc_itrans_recon_4x4_av8
+fun:ihevc_intra_pred_chroma_dc_av8
+fun:ihevc_itrans_recon_8x8_av8
+fun:gi1_table_edge_idx
+fun:ihevc_sao_edge_offset_class0_chroma_av8
+fun:gi1_table_edge_idx
+fun:ihevc_sao_edge_offset_class0_av8
+fun:gu1_table_band_idx
+fun:ihevc_sao_band_offset_chroma_av8
+fun:ihevc_intra_pred_chroma_mode_18_34_av8
+fun:gi1_table_edge_idx
+fun:ihevc_sao_edge_offset_class3_chroma_av8
+fun:ihevc_intra_pred_luma_mode_27_to_33_av8
+fun:ihevc_pad_left_luma_av8
+fun:ihevc_pad_left_chroma_av8
+fun:ihevc_pad_right_luma_av8
+fun:ihevc_pad_right_chroma_av8
+fun:ihevc_intra_pred_luma_mode_3_to_9_av8
+fun:ihevc_intra_pred_chroma_mode_11_to_17_av8
+fun:ihevc_intra_pred_luma_mode_19_to_25_av8
+fun:ihevc_inter_pred_chroma_vert_av8
+fun:ihevc_inter_pred_luma_vert_w16out_av8
+fun:ihevc_intra_pred_chroma_planar_av8
+fun:ihevc_inter_pred_chroma_vert_w16out_av8
+fun:ihevc_intra_pred_luma_horz_av8
+fun:ihevc_intra_pred_chroma_mode2_av8
+fun:ihevc_inter_pred_chroma_copy_w16out_av8
+fun:ihevc_intra_pred_chroma_mode_3_to_9_av8
+fun:ihevc_inter_pred_chroma_horz_w16out_av8
+fun:ihevc_intra_pred_chroma_mode_19_to_25_av8
+fun:gu1_table_band_idx
+fun:ihevc_sao_band_offset_luma_av8
+fun:ihevc_inter_pred_chroma_vert_w16inp_w16out_av8
+fun:ihevc_intra_pred_luma_mode_11_to_17_av8
+fun:ihevc_intra_pred_chroma_mode_27_to_33_av8
+fun:ihevc_inter_pred_chroma_vert_w16inp_av8
+fun:ihevc_inter_pred_luma_copy_w16out_av8
+fun:ihevc_deblk_luma_vert_av8
+fun:ihevc_itrans_recon_32x32_av8
+fun:ihevc_inter_pred_luma_horz_av8
+fun:ihevc_weighted_pred_bi_default_av8
+fun:ihevc_inter_pred_luma_vert_w16inp_av8
+fun:ihevc_inter_pred_luma_copy_av8
+fun:ihevc_intra_pred_luma_mode2_av8
+fun:ihevc_weighted_pred_uni_av8
+fun:ihevc_inter_pred_chroma_copy_av8
+fun:gi1_table_edge_idx
+fun:ihevc_sao_edge_offset_class2_chroma_av8
+fun:ihevc_deblk_luma_horz_av8
+fun:ihevc_itrans_recon_4x4_ttype1_av8
+fun:gi1_table_edge_idx
+fun:ihevc_sao_edge_offset_class3_av8
+fun:gi1_table_edge_idx
+fun:ihevc_sao_edge_offset_class1_chroma_av8
+fun:ihevc_deblk_chroma_vert_av8
+fun:ihevc_intra_pred_luma_ver_av8
+fun:ihevc_deblk_chroma_horz_av8
+fun:ihevc_inter_pred_luma_horz_w16out_av8
+fun:gi1_table_edge_idx
+fun:ihevc_sao_edge_offset_class2_av8
+fun:ihevc_intra_pred_chroma_horz_a9q
+fun:ihevc_intra_pred_luma_dc_a9q
+fun:ihevc_inter_pred_luma_vert_w16inp_w16out_a9q
+fun:ihevc_weighted_pred_bi_a9q
+fun:ihevc_intra_pred_chroma_ver_a9q
+fun:ihevc_sao_edge_offset_class1_a9q
+fun:ihevc_intra_pred_luma_mode_18_34_a9q
+fun:ihevc_intra_pred_luma_planar_a9q
+fun:ihevc_inter_pred_chroma_horz_a9q
+fun:ihevc_inter_pred_luma_vert_a9q
+fun:ihevc_inter_pred_luma_vert_w16out_a9q
+fun:ihevc_itrans_recon_16x16_a9q
+fun:ihevc_itrans_recon_4x4_a9q
+fun:ihevc_intra_pred_chroma_dc_a9q
+fun:ihevc_itrans_recon_8x8_a9q
+fun:ihevc_sao_edge_offset_class0_chroma_a9q
+fun:ihevc_sao_edge_offset_class0_a9q
+fun:ihevc_sao_band_offset_chroma_a9q
+fun:ihevc_intra_pred_chroma_mode_18_34_a9q
+fun:ihevc_sao_edge_offset_class3_chroma_a9q
+fun:ihevc_intra_pred_luma_mode_27_to_33_a9q
+fun:ihevc_pad_left_luma_a9q
+fun:ihevc_pad_left_chroma_a9q
+fun:ihevc_pad_right_luma_a9q
+fun:ihevc_pad_right_chroma_a9q
+fun:ihevc_intra_pred_luma_mode_3_to_9_a9q
+fun:ihevc_intra_pred_chroma_mode_11_to_17_a9q
+fun:ihevc_intra_pred_luma_mode_19_to_25_a9q
+fun:ihevc_inter_pred_chroma_vert_a9q
+fun:ihevc_intra_pred_chroma_planar_a9q
+fun:ihevc_inter_pred_chroma_vert_w16out_a9q
+fun:ihevc_intra_pred_luma_horz_a9q
+fun:ihevc_intra_pred_chroma_mode2_a9q
+fun:ihevc_inter_pred_chroma_copy_w16out_a9q
+fun:ihevc_intra_pred_chroma_mode_3_to_9_a9q
+fun:ihevc_inter_pred_chroma_horz_w16out_a9q
+fun:ihevc_intra_pred_chroma_mode_19_to_25_a9q
+fun:ihevc_sao_band_offset_luma_a9q
+fun:ihevc_inter_pred_chroma_vert_w16inp_w16out_a9q
+fun:ihevc_intra_pred_luma_mode_11_to_17_a9q
+fun:ihevc_intra_pred_chroma_mode_27_to_33_a9q
+fun:ihevc_inter_pred_chroma_vert_w16inp_a9q
+fun:ihevc_inter_pred_luma_copy_w16out_a9q
+fun:ihevc_deblk_luma_vert_a9q
+fun:ihevc_itrans_recon_32x32_a9q
+fun:ihevc_inter_pred_luma_horz_a9q
+fun:ihevc_weighted_pred_bi_default_a9q
+fun:ihevc_inter_pred_luma_vert_w16inp_a9q
+fun:ihevc_inter_pred_luma_copy_a9q
+fun:ihevc_intra_pred_luma_mode2_a9q
+fun:ihevc_weighted_pred_uni_a9q
+fun:ihevc_inter_pred_chroma_copy_a9q
+fun:ihevc_sao_edge_offset_class2_chroma_a9q
+fun:ihevc_deblk_luma_horz_a9q
+fun:ihevc_itrans_recon_4x4_ttype1_a9q
+fun:ihevc_sao_edge_offset_class3_a9q
+fun:ihevc_sao_edge_offset_class1_chroma_a9q
+fun:ihevc_deblk_chroma_vert_a9q
+fun:ihevc_intra_pred_luma_ver_a9q
+fun:ihevc_deblk_chroma_horz_a9q
+fun:ihevc_inter_pred_luma_horz_w16out_a9q
+fun:ihevc_sao_edge_offset_class2_a9q
+fun:ihevcd_itrans_recon_dc_luma_av8
+fun:ihevcd_itrans_recon_dc_chroma_av8
+fun:ihevcd_fmt_conv_420sp_to_420p_av8
+fun:ihevcd_itrans_recon_dc_luma_a9q
+fun:ihevcd_itrans_recon_dc_chroma_a9q
+fun:ihevcd_fmt_conv_420sp_to_420p_a9q
+
+fun:ihevc_buf_mgr_add
+fun:ihevc_buf_mgr_check_free
+fun:ihevc_buf_mgr_get_buf
+fun:ihevc_buf_mgr_get_next_free
+fun:ihevc_buf_mgr_init
+fun:ihevc_buf_mgr_release
+fun:ihevc_buf_mgr_set_status
+fun:ihevc_chroma_itrans_recon_16x16
+fun:ihevc_chroma_itrans_recon_4x4
+fun:ihevc_chroma_itrans_recon_8x8
+fun:ihevc_chroma_recon_16x16
+fun:ihevc_chroma_recon_4x4
+fun:ihevc_chroma_recon_8x8
+fun:ihevcd_allocate_dynamic_bufs
+fun:ihevcd_allocate_static_bufs
+fun:ihevcd_bits_flush
+fun:ihevcd_bits_flush_to_byte_boundary
+fun:ihevcd_bits_get
+fun:ihevcd_bits_init
+fun:ihevcd_bits_num_bits_remaining
+fun:ihevcd_bits_nxt
+fun:ihevcd_bits_seek
+fun:ihevcd_cabac_decode_bin
+fun:ihevcd_cabac_decode_bins_tunary
+fun:ihevcd_cabac_decode_bypass_bin
+fun:ihevcd_cabac_decode_bypass_bins
+fun:ihevcd_cabac_decode_bypass_bins_egk
+fun:ihevcd_cabac_decode_bypass_bins_tunary
+fun:ihevcd_cabac_decode_terminate
+fun:ihevcd_cabac_init
+fun:ihevcd_cabac_reset
+fun:ihevcd_calc_poc
+fun:ihevcd_check_out_buf_size
+fun:ihevcd_collocated_mvp
+fun:ihevcd_copy_pps
+fun:ihevcd_copy_slice_hdr
+fun:ihevcd_copy_sps
+fun:ihevcd_ctb_avail_update
+fun:ihevcd_ctb_boundary_strength_islice
+fun:ihevcd_ctb_boundary_strength_pbslice
+fun:ihevcd_ctb_pos_update
+fun:ihevcd_ctl
+fun:ihevcd_cxa_api_function
+fun:ihevcd_deblk_ctb
+fun:ihevcd_decode
+fun:ihevc_deblk_chroma_horz
+fun:ihevc_deblk_chroma_horz_ssse3
+fun:ihevc_deblk_chroma_vert
+fun:ihevc_deblk_chroma_vert_ssse3
+fun:ihevc_deblk_luma_horz
+fun:ihevc_deblk_luma_horz_ssse3
+fun:ihevc_deblk_luma_vert
+fun:ihevc_deblk_luma_vert_ssse3
+fun:ihevcd_fill_outargs
+fun:ihevcd_fmt_conv_420sp_to_420p
+fun:ihevcd_fmt_conv_420sp_to_420p_ssse3
+fun:ihevcd_fmt_conv_420sp_to_420sp
+fun:ihevcd_fmt_conv_420sp_to_rgb565
+fun:ihevcd_fmt_conv_420sp_to_rgba8888
+fun:ihevcd_fmt_conv
+fun:ihevcd_free_dynamic_bufs
+fun:ihevcd_free_static_bufs
+fun:ihevcd_get_buf_info
+fun:ihevcd_get_frame_dimensions
+fun:ihevcd_get_intra_nbr_flag
+fun:ihevcd_get_mv_ctb
+fun:ihevcd_get_pic_mv_bank_size
+fun:ihevcd_get_status
+fun:ihevcd_get_tile_pos
+fun:ihevcd_get_total_pic_buf_size
+fun:ihevcd_get_tu_data_size
+fun:ihevcd_get_version
+fun:ihevcd_get_vui_params
+fun:ihevcd_init_arch
+fun:ihevcd_init
+fun:ihevcd_init_function_ptr
+fun:ihevcd_init_function_ptr_generic
+fun:ihevcd_init_function_ptr_sse42
+fun:ihevcd_init_function_ptr_ssse3
+fun:ihevcd_init_proc_ctxt
+fun:ihevcd_inter_pred_ctb
+fun:ihevcd_intra_pred_mode_prediction
+fun:ihevcd_iquant_itrans_recon_ctb
+fun:ihevc_disp_mgr_add
+fun:ihevc_disp_mgr_get
+fun:ihevc_disp_mgr_init
+fun:ihevcd_itrans_recon_dc_chroma
+fun:ihevcd_itrans_recon_dc_chroma_sse42
+fun:ihevcd_itrans_recon_dc_chroma_ssse3
+fun:ihevcd_itrans_recon_dc_luma
+fun:ihevcd_itrans_recon_dc_luma_sse42
+fun:ihevcd_itrans_recon_dc_luma_ssse3
+fun:ihevcd_jobq_ctxt_size
+fun:ihevcd_jobq_deinit
+fun:ihevcd_jobq_dequeue
+fun:ihevcd_jobq_init
+fun:ihevcd_jobq_queue
+fun:ihevcd_jobq_reset
+fun:ihevcd_jobq_terminate
+fun:ihevcd_mv_buf_mgr_add_bufs
+fun:ihevcd_mv_merge
+fun:ihevcd_mv_mgr_get_poc
+fun:ihevcd_mv_pred
+fun:ihevcd_nal_remv_emuln_bytes
+fun:ihevcd_nal_search_start_code
+fun:ihevcd_nal_unit
+fun:ihevcd_parse_buffering_period_sei
+fun:ihevcd_parse_coding_quadtree
+fun:ihevcd_parse_coding_unit
+fun:ihevcd_parse_coding_unit_intra
+fun:ihevcd_parse_mastering_disp_params_sei
+fun:ihevcd_parse_mvd
+fun:ihevcd_parse_pic_init
+fun:ihevcd_parse_pic_timing_sei
+fun:ihevcd_parse_pps
+fun:ihevcd_parse_prediction_unit
+fun:ihevcd_parse_pred_wt_ofst
+fun:ihevcd_parse_pu_mvp
+fun:ihevcd_parse_residual_coding
+fun:ihevcd_parse_sao
+fun:ihevcd_parse_sei
+fun:ihevcd_parse_sei_payload
+fun:ihevcd_parse_slice_data
+fun:ihevcd_parse_slice_header
+fun:ihevcd_parse_sps
+fun:ihevcd_parse_time_code_sei
+fun:ihevcd_parse_transform_tree
+fun:ihevc_dpb_mgr_del_ref
+fun:ihevc_dpb_mgr_get_ref_by_nearest_poc
+fun:ihevc_dpb_mgr_get_ref_by_poc
+fun:ihevc_dpb_mgr_get_ref_by_poc_lsb
+fun:ihevc_dpb_mgr_init
+fun:ihevc_dpb_mgr_insert_ref
+fun:ihevcd_pic_buf_mgr_add_bufs
+fun:ihevcd_process
+fun:ihevcd_process_thread
+fun:ihevcd_proc_map_check
+fun:ihevcd_pu_boundary_strength
+fun:ihevcd_ref_list
+fun:ihevcd_ref_pic_list_modification
+fun:ihevcd_sao_shift_ctb
+fun:ihevcd_scale_collocated_mv
+fun:ihevcd_scaling_list_data
+fun:ihevcd_set_ctb_skip
+fun:ihevcd_set_display_frame
+fun:ihevcd_sev
+fun:ihevcd_short_term_ref_pic_set
+fun:ihevcd_uev
+fun:ihevcd_unpack_coeffs
+fun:ihevcd_update_ctb_tu_cnt
+fun:ihevcd_update_function_ptr
+fun:ihevc_inter_pred_chroma_copy
+fun:ihevc_inter_pred_chroma_copy_sse42
+fun:ihevc_inter_pred_chroma_copy_ssse3
+fun:ihevc_inter_pred_chroma_copy_w16out
+fun:ihevc_inter_pred_chroma_copy_w16out_sse42
+fun:ihevc_inter_pred_chroma_copy_w16out_ssse3
+fun:ihevc_inter_pred_chroma_horz
+fun:ihevc_inter_pred_chroma_horz_ssse3
+fun:ihevc_inter_pred_chroma_horz_w16out
+fun:ihevc_inter_pred_chroma_horz_w16out_ssse3
+fun:ihevc_inter_pred_chroma_vert
+fun:ihevc_inter_pred_chroma_vert_ssse3
+fun:ihevc_inter_pred_chroma_vert_w16inp
+fun:ihevc_inter_pred_chroma_vert_w16inp_ssse3
+fun:ihevc_inter_pred_chroma_vert_w16inp_w16out
+fun:ihevc_inter_pred_chroma_vert_w16inp_w16out_ssse3
+fun:ihevc_inter_pred_chroma_vert_w16out
+fun:ihevc_inter_pred_chroma_vert_w16out_ssse3
+fun:ihevc_inter_pred_luma_copy
+fun:ihevc_inter_pred_luma_copy_ssse3
+fun:ihevc_inter_pred_luma_copy_w16out
+fun:ihevc_inter_pred_luma_copy_w16out_sse42
+fun:ihevc_inter_pred_luma_copy_w16out_ssse3
+fun:ihevc_inter_pred_luma_horz
+fun:ihevc_inter_pred_luma_horz_ssse3
+fun:ihevc_inter_pred_luma_horz_w16out
+fun:ihevc_inter_pred_luma_horz_w16out_ssse3
+fun:ihevc_inter_pred_luma_vert
+fun:ihevc_inter_pred_luma_vert_ssse3
+fun:ihevc_inter_pred_luma_vert_w16inp
+fun:ihevc_inter_pred_luma_vert_w16inp_ssse3
+fun:ihevc_inter_pred_luma_vert_w16inp_w16out
+fun:ihevc_inter_pred_luma_vert_w16inp_w16out_ssse3
+fun:ihevc_inter_pred_luma_vert_w16out
+fun:ihevc_inter_pred_luma_vert_w16out_ssse3
+fun:ihevc_intra_pred_chroma_dc
+fun:ihevc_intra_pred_chroma_dc_sse42
+fun:ihevc_intra_pred_chroma_dc_ssse3
+fun:ihevc_intra_pred_chroma_horz
+fun:ihevc_intra_pred_chroma_horz_ssse3
+fun:ihevc_intra_pred_chroma_mode_11_to_17
+fun:ihevc_intra_pred_chroma_mode_11_to_17_ssse3
+fun:ihevc_intra_pred_chroma_mode_18_34
+fun:ihevc_intra_pred_chroma_mode_18_34_ssse3
+fun:ihevc_intra_pred_chroma_mode_19_to_25
+fun:ihevc_intra_pred_chroma_mode_19_to_25_ssse3
+fun:ihevc_intra_pred_chroma_mode_27_to_33
+fun:ihevc_intra_pred_chroma_mode_27_to_33_ssse3
+fun:ihevc_intra_pred_chroma_mode2
+fun:ihevc_intra_pred_chroma_mode2_ssse3
+fun:ihevc_intra_pred_chroma_mode_3_to_9
+fun:ihevc_intra_pred_chroma_mode_3_to_9_ssse3
+fun:ihevc_intra_pred_chroma_planar
+fun:ihevc_intra_pred_chroma_planar_sse42
+fun:ihevc_intra_pred_chroma_planar_ssse3
+fun:ihevc_intra_pred_chroma_ref_substitution
+fun:ihevc_intra_pred_chroma_ver
+fun:ihevc_intra_pred_chroma_ver_ssse3
+fun:ihevc_intra_pred_luma_dc
+fun:ihevc_intra_pred_luma_dc_sse42
+fun:ihevc_intra_pred_luma_dc_ssse3
+fun:ihevc_intra_pred_luma_horz
+fun:ihevc_intra_pred_luma_horz_sse42
+fun:ihevc_intra_pred_luma_horz_ssse3
+fun:ihevc_intra_pred_luma_mode_11_to_17
+fun:ihevc_intra_pred_luma_mode_11_to_17_sse42
+fun:ihevc_intra_pred_luma_mode_11_to_17_ssse3
+fun:ihevc_intra_pred_luma_mode_18_34
+fun:ihevc_intra_pred_luma_mode_18_34_ssse3
+fun:ihevc_intra_pred_luma_mode_19_to_25
+fun:ihevc_intra_pred_luma_mode_19_to_25_sse42
+fun:ihevc_intra_pred_luma_mode_19_to_25_ssse3
+fun:ihevc_intra_pred_luma_mode_27_to_33
+fun:ihevc_intra_pred_luma_mode_27_to_33_sse42
+fun:ihevc_intra_pred_luma_mode_27_to_33_ssse3
+fun:ihevc_intra_pred_luma_mode2
+fun:ihevc_intra_pred_luma_mode2_ssse3
+fun:ihevc_intra_pred_luma_mode_3_to_9
+fun:ihevc_intra_pred_luma_mode_3_to_9_sse42
+fun:ihevc_intra_pred_luma_mode_3_to_9_ssse3
+fun:ihevc_intra_pred_luma_planar
+fun:ihevc_intra_pred_luma_planar_ssse3
+fun:ihevc_intra_pred_luma_ref_subst_all_avlble
+fun:ihevc_intra_pred_luma_ref_substitution
+fun:ihevc_intra_pred_luma_ver
+fun:ihevc_intra_pred_luma_ver_sse42
+fun:ihevc_intra_pred_luma_ver_ssse3
+fun:ihevc_intra_pred_ref_filtering
+fun:ihevc_intra_pred_ref_filtering_sse42
+fun:ihevc_intra_pred_ref_filtering_ssse3
+fun:ihevc_itrans_16x16
+fun:ihevc_itrans_32x32
+fun:ihevc_itrans_4x4
+fun:ihevc_itrans_4x4_ttype1
+fun:ihevc_itrans_8x8
+fun:ihevc_itrans_recon_16x16
+fun:ihevc_itrans_recon_16x16_ssse3
+fun:ihevc_itrans_recon_32x32
+fun:ihevc_itrans_recon_32x32_sse42
+fun:ihevc_itrans_recon_32x32_ssse3
+fun:ihevc_itrans_recon_4x4
+fun:ihevc_itrans_recon_4x4_sse42
+fun:ihevc_itrans_recon_4x4_ssse3
+fun:ihevc_itrans_recon_4x4_ttype1
+fun:ihevc_itrans_recon_4x4_ttype1_sse42
+fun:ihevc_itrans_recon_4x4_ttype1_ssse3
+fun:ihevc_itrans_recon_8x8
+fun:ihevc_itrans_recon_8x8_sse42
+fun:ihevc_itrans_recon_8x8_ssse3
+fun:ihevc_memcpy
+fun:ihevc_memcpy_mul_8
+fun:ihevc_memset_16bit
+fun:ihevc_memset_16bit_mul_8
+fun:ihevc_memset
+fun:ihevc_memset_mul_8
+fun:ihevc_pad_bottom
+fun:ihevc_pad_left_chroma
+fun:ihevc_pad_left_luma
+fun:ihevc_pad_right_chroma
+fun:ihevc_pad_right_luma
+fun:ihevc_pad_top
+fun:ihevc_recon_16x16
+fun:ihevc_recon_32x32
+fun:ihevc_recon_4x4
+fun:ihevc_recon_4x4_ttype1
+fun:ihevc_recon_8x8
+fun:ihevc_sao_band_offset_chroma
+fun:ihevc_sao_band_offset_chroma_ssse3
+fun:ihevc_sao_band_offset_luma
+fun:ihevc_sao_band_offset_luma_ssse3
+fun:ihevc_sao_edge_offset_class0
+fun:ihevc_sao_edge_offset_class0_chroma
+fun:ihevc_sao_edge_offset_class0_chroma_ssse3
+fun:ihevc_sao_edge_offset_class0_ssse3
+fun:ihevc_sao_edge_offset_class1
+fun:ihevc_sao_edge_offset_class1_chroma
+fun:ihevc_sao_edge_offset_class1_chroma_ssse3
+fun:ihevc_sao_edge_offset_class1_ssse3
+fun:ihevc_sao_edge_offset_class2
+fun:ihevc_sao_edge_offset_class2_chroma
+fun:ihevc_sao_edge_offset_class2_chroma_ssse3
+fun:ihevc_sao_edge_offset_class2_ssse3
+fun:ihevc_sao_edge_offset_class3
+fun:ihevc_sao_edge_offset_class3_chroma
+fun:ihevc_sao_edge_offset_class3_chroma_ssse3
+fun:ihevc_sao_edge_offset_class3_ssse3
+fun:ihevc_weighted_pred_bi
+fun:ihevc_weighted_pred_bi_default
+fun:ihevc_weighted_pred_bi_default_sse42
+fun:ihevc_weighted_pred_bi_default_ssse3
+fun:ihevc_weighted_pred_bi_sse42
+fun:ihevc_weighted_pred_bi_ssse3
+fun:ihevc_weighted_pred_chroma_bi
+fun:ihevc_weighted_pred_chroma_bi_default
+fun:ihevc_weighted_pred_chroma_bi_default_ssse3
+fun:ihevc_weighted_pred_chroma_bi_sse42
+fun:ihevc_weighted_pred_chroma_bi_ssse3
+fun:ihevc_weighted_pred_chroma_uni
+fun:ihevc_weighted_pred_chroma_uni_sse42
+fun:ihevc_weighted_pred_chroma_uni_ssse3
+fun:ihevc_weighted_pred_uni
+fun:ihevc_weighted_pred_uni_sse42
+fun:ihevc_weighted_pred_uni_ssse3
+
diff --git a/test/decoder.mk b/test/decoder.mk
index 6c64ac3..6b343a0 100644
--- a/test/decoder.mk
+++ b/test/decoder.mk
@@ -5,7 +5,9 @@
 LOCAL_MODULE    := hevcdec
 LOCAL_MODULE_TAGS := optional
 
-LOCAL_CFLAGS := -DPROFILE_ENABLE -DARM  -fPIC -DMD5_DISABLE
+LOCAL_CFLAGS := \
+    -DPROFILE_ENABLE -DARM  -fPIC -DMD5_DISABLE \
+    -Wall -Werror
 LOCAL_C_INCLUDES += $(LOCAL_PATH)/../decoder $(LOCAL_PATH)/../common $(LOCAL_PATH)/
 LOCAL_SRC_FILES := decoder/main.c
 LOCAL_STATIC_LIBRARIES := libhevcdec