http://stare.cz/~hans/.tmp/opencore-amr-0.1.2.tar.gz

This is a port of opencore-amr, which is an implementation
of the Adaptive Multi Rate speech codec that seems to be
used by many modern mobile devices (such as my android).
(This is my first new port - please be gentle.)

The main motivation is to have AMR support in SoX
(which will be the next step if this goes in).
Neither libsndfile nor libaudiofile support AMR.

Tested on amd64 and i386.

Issues:

(1)
It comes with the Apache License 2.0; I am not sure
what that means for the PERMIT_* variables; I asked
upstream, but someone here surely knows.

(2)
With USE_LIBTOOL=Yes, the build fails in a strange way (see below).
Without USE_LIBTOOL, everything goes fine. But I don't know enough
about libtool to spot the exact problem (see my guess below, though).

        Comments?

                Jan


# make
===>  Configuring for opencore-amr-0.1.2
configure: WARNING: unrecognized options: --disable-silent-rules
configure: loading site script /usr/ports/infrastructure/db/config.site
checking for a BSD-compatible install... /usr/bin/install -c -o root -g bin
[configures fine]

===>  Building for opencore-amr-0.1.2
Making all in amrnb
[builds fine, until]

c++ -shared -fPIC -DPIC -o .libs/libopencore-amrnb.so.0.2 -I../oscl 
-I../opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/src 
-I../opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include 
-I../opencore/codecs_v2/audio/gsm_amr/amr_nb/dec/include 
-I../opencore/codecs_v2/audio/gsm_amr/common/dec/include 
-I../opencore/codecs_v2/audio/gsm_amr/amr_nb/enc/src -x c -std=c99 -O2 -pipe 
.libs/wrapper.o .libs/agc.o .libs/amrdecode.o .libs/a_refl.o .libs/b_cn_cod.o 
.libs/bgnscd.o .libs/c_g_aver.o .libs/d1035pf.o .libs/d2_11pf.o .libs/d2_9pf.o 
.libs/d3_14pf.o .libs/d4_17pf.o .libs/d8_31pf.o .libs/dec_amr.o 
.libs/dec_gain.o .libs/dec_input_format_tab.o .libs/dec_lag3.o .libs/dec_lag6.o 
.libs/d_gain_c.o .libs/d_gain_p.o .libs/d_plsf_3.o .libs/d_plsf_5.o 
.libs/d_plsf.o .libs/dtx_dec.o .libs/ec_gains.o .libs/ex_ctrl.o 
.libs/if2_to_ets.o .libs/int_lsf.o .libs/lsp_avg.o .libs/ph_disp.o 
.libs/post_pro.o .libs/preemph.o .libs/pstfilt.o .libs/qgain475_tab.o 
.libs/sp_dec.o .libs/wmf_to_ets.o .libs/amrencode.o .libs/autocorr.o 
.libs/c1035pf.o .libs/c2_11pf.o .libs/c2_9pf.o .libs/c3_14pf.o .libs/c4_17pf.o 
.libs/c8_31pf.o .libs/calc_cor.o .libs/calc_en.o .libs/cbsearch.o 
.libs/cl_ltp.o .libs/cod_amr.o .libs/convolve.o .libs/cor_h.o .libs/cor_h_x2.o 
.libs/cor_h_x.o .libs/corrwght_tab.o .libs/div_32.o .libs/dtx_enc.o 
.libs/enc_lag3.o .libs/enc_lag6.o .libs/enc_output_format_tab.o 
.libs/ets_to_if2.o .libs/ets_to_wmf.o .libs/g_adapt.o .libs/gain_q.o 
.libs/g_code.o .libs/g_pitch.o .libs/hp_max.o .libs/inter_36.o 
.libs/inter_36_tab.o .libs/l_abs.o .libs/lag_wind.o .libs/lag_wind_tab.o 
.libs/l_comp.o .libs/levinson.o .libs/l_extract.o .libs/lflg_upd.o 
.libs/l_negate.o .libs/lpc.o .libs/ol_ltp.o .libs/pitch_fr.o .libs/pitch_ol.o 
.libs/p_ol_wgh.o .libs/pre_big.o .libs/pre_proc.o .libs/prm2bits.o 
.libs/qgain475.o .libs/qgain795.o .libs/q_gain_c.o .libs/q_gain_p.o 
.libs/qua_gain.o .libs/s10_8pf.o .libs/set_sign.o .libs/sid_sync.o 
.libs/sp_enc.o .libs/spreproc.o .libs/spstproc.o .libs/ton_stab.o .libs/vad1.o 
.libs/add.o .libs/az_lsp.o .libs/bitno_tab.o .libs/bitreorder_tab.o 
.libs/bytesused.o .libs/c2_9pf_tab.o .libs/div_s.o .libs/extract_h.o 
.libs/extract_l.o .libs/gains_tbl.o .libs/gc_pred.o .libs/get_const_tbls.o 
.libs/gmed_n.o .libs/gray_tbl.o .libs/grid_tbl.o .libs/int_lpc.o 
.libs/inv_sqrt.o .libs/inv_sqrt_tbl.o .libs/l_deposit_h.o .libs/l_deposit_l.o 
.libs/log2.o .libs/log2_norm.o .libs/log2_tbl.o .libs/lsfwt.o .libs/l_shr_r.o 
.libs/lsp_az.o .libs/lsp.o .libs/lsp_lsf.o .libs/lsp_lsf_tbl.o .libs/lsp_tab.o 
.libs/mult_r.o .libs/negate.o .libs/norm_l.o .libs/norm_s.o 
.libs/overflow_tbl.o .libs/ph_disp_tab.o .libs/pow2.o .libs/pow2_tbl.o 
.libs/pred_lt.o .libs/q_plsf_3.o .libs/q_plsf_3_tbl.o .libs/q_plsf_5.o 
.libs/q_plsf_5_tbl.o .libs/q_plsf.o .libs/qua_gain_tbl.o .libs/reorder.o 
.libs/residu.o .libs/round.o .libs/set_zero.o .libs/shr.o .libs/shr_r.o 
.libs/sqrt_l.o .libs/sqrt_l_tbl.o .libs/sub.o .libs/syn_filt.o .libs/weight_a.o 
.libs/window_tab.o -L.libs -lm
.libs/wrapper.o:1: error: stray '\177' in program
.libs/wrapper.o:1: error: stray '\2' in program
.libs/wrapper.o:1: error: stray '\1' in program
.libs/wrapper.o:1: error: stray '\1' in program

- and similarly for every *.o file entioned in the above line;
there seems to be an error message for almost every char on
almost evry 'line' of these files.

.libs/agc.o:1: error: stray '\177' in program
.libs/agc.o:1: error: stray '\2' in program
.libs/agc.o:1: error: stray '\1' in program
.libs/agc.o:1: error: stray '\1' in program

... etc ...

.libs/window_tab.o:54: error: stray '\340' in program
.libs/window_tab.o:54: error: stray '\1' in program
.libs/window_tab.o:54:1326: warning: null character(s) ignored
.libs/window_tab.o:54:1347: warning: null character(s) ignored
.libs/window_tab.o:54:1361: warning: null character(s) ignored
.libs/window_tab.o:54:1375: warning: null character(s) ignored
.libs/window_tab.o:54:1388: warning: null character(s) ignored
.libs/window_tab.o:54:1389: warning: no newline at end of file

Without USE_LIBTOOL, it builds fine; the line above then becomes

libtool: link: c++ -shared  -fPIC -DPIC   .libs/wrapper.o .libs/agc.o 
.libs/amrdecode.o .libs/a_refl.o .libs/b_cn_cod.o .libs/bgnscd.o 
.libs/c_g_aver.o .libs/d1035pf.o .libs/d2_11pf.o .libs/d2_9pf.o .libs/d3_14pf.o 
.libs/d4_17pf.o .libs/d8_31pf.o .libs/dec_amr.o .libs/dec_gain.o 
.libs/dec_input_format_tab.o .libs/dec_lag3.o .libs/dec_lag6.o .libs/d_gain_c.o 
.libs/d_gain_p.o .libs/d_plsf_3.o .libs/d_plsf_5.o .libs/d_plsf.o 
.libs/dtx_dec.o .libs/ec_gains.o .libs/ex_ctrl.o .libs/if2_to_ets.o 
.libs/int_lsf.o .libs/lsp_avg.o .libs/ph_disp.o .libs/post_pro.o 
.libs/preemph.o .libs/pstfilt.o .libs/qgain475_tab.o .libs/sp_dec.o 
.libs/wmf_to_ets.o .libs/amrencode.o .libs/autocorr.o .libs/c1035pf.o 
.libs/c2_11pf.o .libs/c2_9pf.o .libs/c3_14pf.o .libs/c4_17pf.o .libs/c8_31pf.o 
.libs/calc_cor.o .libs/calc_en.o .libs/cbsearch.o .libs/cl_ltp.o 
.libs/cod_amr.o .libs/convolve.o .libs/cor_h.o .libs/cor_h_x2.o .libs/cor_h_x.o 
.libs/corrwght_tab.o .libs/div_32.o .libs/dtx_enc.o .libs/enc_lag3.o 
.libs/enc_lag6.o .libs/enc_output_format_tab.o .libs/ets_to_if2.o 
.libs/ets_to_wmf.o .libs/g_adapt.o .libs/gain_q.o .libs/g_code.o 
.libs/g_pitch.o .libs/hp_max.o .libs/inter_36.o .libs/inter_36_tab.o 
.libs/l_abs.o .libs/lag_wind.o .libs/lag_wind_tab.o .libs/l_comp.o 
.libs/levinson.o .libs/l_extract.o .libs/lflg_upd.o .libs/l_negate.o 
.libs/lpc.o .libs/ol_ltp.o .libs/pitch_fr.o .libs/pitch_ol.o .libs/p_ol_wgh.o 
.libs/pre_big.o .libs/pre_proc.o .libs/prm2bits.o .libs/qgain475.o 
.libs/qgain795.o .libs/q_gain_c.o .libs/q_gain_p.o .libs/qua_gain.o 
.libs/s10_8pf.o .libs/set_sign.o .libs/sid_sync.o .libs/sp_enc.o 
.libs/spreproc.o .libs/spstproc.o .libs/ton_stab.o .libs/vad1.o .libs/add.o 
.libs/az_lsp.o .libs/bitno_tab.o .libs/bitreorder_tab.o .libs/bytesused.o 
.libs/c2_9pf_tab.o .libs/div_s.o .libs/extract_h.o .libs/extract_l.o 
.libs/gains_tbl.o .libs/gc_pred.o .libs/get_const_tbls.o .libs/gmed_n.o 
.libs/gray_tbl.o .libs/grid_tbl.o .libs/int_lpc.o .libs/inv_sqrt.o 
.libs/inv_sqrt_tbl.o .libs/l_deposit_h.o .libs/l_deposit_l.o .libs/log2.o 
.libs/log2_norm.o .libs/log2_tbl.o .libs/lsfwt.o .libs/l_shr_r.o .libs/lsp_az.o 
.libs/lsp.o .libs/lsp_lsf.o .libs/lsp_lsf_tbl.o .libs/lsp_tab.o .libs/mult_r.o 
.libs/negate.o .libs/norm_l.o .libs/norm_s.o .libs/overflow_tbl.o 
.libs/ph_disp_tab.o .libs/pow2.o .libs/pow2_tbl.o .libs/pred_lt.o 
.libs/q_plsf_3.o .libs/q_plsf_3_tbl.o .libs/q_plsf_5.o .libs/q_plsf_5_tbl.o 
.libs/q_plsf.o .libs/qua_gain_tbl.o .libs/reorder.o .libs/residu.o 
.libs/round.o .libs/set_zero.o .libs/shr.o .libs/shr_r.o .libs/sqrt_l.o 
.libs/sqrt_l_tbl.o .libs/sub.o .libs/syn_filt.o .libs/weight_a.o 
.libs/window_tab.o   -lm     -o .libs/libopencore-amrnb.so.0.2

The difference seems to be this:

It starts with 'libtool: link: ..." (this is *without* USE_LIBTOOL)
'-o .libs/libopencore-amrnb.so.0.2' comes last
It drops all the -I's and -L./libs
It drops '-O2 -pipe'
It drops '-x c -std=c99' - which I think was the problem,
 given the error messages above: the *.o files are indeed
 not C files, they are simply ELF object files produced by the previous
 runs of 'cc -c'. Why does USE_LIBTOOL put the '-x c' there?

Reply via email to