ref: ba93922b65693ef44bcee2b7570876e3afd74424
dir: /opus/
diff a8e6a77c5fe0c37aa6788f939f24f8cd22ae2652 uncommitted --- a/celt/stack_alloc.h +++ b/celt/stack_alloc.h @@ -140,7 +140,7 @@ #else -#define ALIGN(stack, size) ((stack) += ((size) - (long)(stack)) & ((size) - 1)) +#define ALIGN(stack, size) ((stack) += ((size) - (_intptr_t)(stack)) & ((size) - 1)) #define PUSH(stack, size, type) (ALIGN((stack),sizeof(type)/sizeof(char)),(stack)+=(size)*(sizeof(type)/sizeof(char)),(type*)((stack)-(size)*(sizeof(type)/sizeof(char)))) #if 0 /* Set this to 1 to instrument pseudostack usage */ #define RESTORE_STACK (printf("%ld %s:%d\n", global_stack-scratch_ptr, __FILE__, __LINE__),global_stack = _saved_stack) --- /tmp/fuckyoutoo +++ mkfile @@ -0,0 +1,187 @@ +APE=/sys/src/ape +<$APE/config + +LIB=/$objtype/lib/ape/libopus.a + +OFILES=\ +# silk \ + CNG.$O \ + code_signs.$O \ + init_decoder.$O \ + decode_core.$O \ + decode_frame.$O \ + decode_parameters.$O \ + decode_indices.$O \ + decode_pulses.$O \ + decoder_set_fs.$O \ + dec_API.$O \ + enc_API.$O \ + encode_indices.$O \ + encode_pulses.$O \ + gain_quant.$O \ + interpolate.$O \ + LP_variable_cutoff.$O \ + NLSF_decode.$O \ + NSQ.$O \ + NSQ_del_dec.$O \ + PLC.$O \ + shell_coder.$O \ + tables_gain.$O \ + tables_LTP.$O \ + tables_NLSF_CB_NB_MB.$O \ + tables_NLSF_CB_WB.$O \ + tables_other.$O \ + tables_pitch_lag.$O \ + tables_pulses_per_block.$O \ + VAD.$O \ + control_audio_bandwidth.$O \ + quant_LTP_gains.$O \ + VQ_WMat_EC.$O \ + HP_variable_cutoff.$O \ + NLSF_encode.$O \ + NLSF_VQ.$O \ + NLSF_unpack.$O \ + NLSF_del_dec_quant.$O \ + process_NLSFs.$O \ + stereo_LR_to_MS.$O \ + stereo_MS_to_LR.$O \ + check_control_input.$O \ + control_SNR.$O \ + init_encoder.$O \ + control_codec.$O \ + A2NLSF.$O \ + ana_filt_bank_1.$O \ + biquad_alt.$O \ + bwexpander_32.$O \ + bwexpander.$O \ + debug.$O \ + decode_pitch.$O \ + inner_prod_aligned.$O \ + lin2log.$O \ + log2lin.$O \ + LPC_analysis_filter.$O \ + LPC_inv_pred_gain.$O \ + table_LSF_cos.$O \ + NLSF2A.$O \ + NLSF_stabilize.$O \ + NLSF_VQ_weights_laroia.$O \ + pitch_est_tables.$O \ + resampler.$O \ + resampler_down2_3.$O \ + resampler_down2.$O \ + resampler_private_AR2.$O \ + resampler_private_down_FIR.$O \ + resampler_private_IIR_FIR.$O \ + resampler_private_up2_HQ.$O \ + resampler_rom.$O \ + sigm_Q15.$O \ + sort.$O \ + sum_sqr_shift.$O \ + stereo_decode_pred.$O \ + stereo_encode_pred.$O \ + stereo_find_predictor.$O \ + stereo_quant_pred.$O \ + LPC_fit.$O \ +# silk/float \ + apply_sine_window_FLP.$O \ + corrMatrix_FLP.$O \ + encode_frame_FLP.$O \ + find_LPC_FLP.$O \ + find_LTP_FLP.$O \ + find_pitch_lags_FLP.$O \ + find_pred_coefs_FLP.$O \ + LPC_analysis_filter_FLP.$O \ + LTP_analysis_filter_FLP.$O \ + LTP_scale_ctrl_FLP.$O \ + noise_shape_analysis_FLP.$O \ + process_gains_FLP.$O \ + regularize_correlations_FLP.$O \ + residual_energy_FLP.$O \ + warped_autocorrelation_FLP.$O \ + wrappers_FLP.$O \ + autocorrelation_FLP.$O \ + burg_modified_FLP.$O \ + bwexpander_FLP.$O \ + energy_FLP.$O \ + inner_product_FLP.$O \ + k2a_FLP.$O \ + LPC_inv_pred_gain_FLP.$O \ + pitch_analysis_core_FLP.$O \ + scale_copy_vector_FLP.$O \ + scale_vector_FLP.$O \ + schur_FLP.$O \ + sort_FLP.$O \ +# celt \ + bands.$O \ + celt.$O \ + celt_encoder.$O \ + celt_decoder.$O \ + cwrs.$O \ + entcode.$O \ + entdec.$O \ + entenc.$O \ + kiss_fft.$O \ + laplace.$O \ + mathops.$O \ + mdct.$O \ + modes.$O \ + pitch.$O \ + celt_lpc.$O \ + quant_bands.$O \ + rate.$O \ + vq.$O \ +# src \ + analysis.$O \ + mlp.$O \ + mlp_data.$O \ + opus.$O \ + opus_decoder.$O \ + opus_encoder.$O \ + opus_multistream.$O \ + opus_multistream_encoder.$O \ + opus_multistream_decoder.$O \ + repacketizer.$O \ + opus_projection_encoder.$O \ + opus_projection_decoder.$O \ + mapping_matrix.$O + +HFILES=\ + /sys/include/ape/opus/opus.h \ + /sys/include/ape/opus/opus_custom.h \ + /sys/include/ape/opus/opus_defines.h \ + /sys/include/ape/opus/opus_multistream.h \ + /sys/include/ape/opus/opus_projection.h \ + /sys/include/ape/opus/opus_types.h \ + +UPDATE=\ + mkfile\ + $HFILES\ + ${OFILES:%.$O=%.c}\ + +</sys/src/cmd/mksyslib + +CFLAGS=$CFLAGS -c -Iinclude -Isilk -Isilk/fixed -Isilk/float -Icelt \ + -DPACKAGE_VERSION="$VERSION" \ + -DOPUS_BUILD \ + -DCUSTOM_MODES \ + -DNONTHREADSAFE_PSEUDOSTACK \ + -DHAVE_STDINT_H + +%.$O: silk/%.c + $CC $CFLAGS silk/$stem.c + +%.$O: silk/fixed/%.c + $CC $CFLAGS silk/fixed/$stem.c + +%.$O: silk/float/%.c + $CC $CFLAGS silk/float/$stem.c + +%.$O: celt/%.c + $CC $CFLAGS celt/$stem.c + +%.$O: src/%.c + $CC $CFLAGS src/$stem.c + +$HFILES: + mkdir -p /sys/include/ape/opus + dircp include /sys/include/ape/opus --- a/silk/LPC_inv_pred_gain.c +++ b/silk/LPC_inv_pred_gain.c @@ -45,7 +45,7 @@ ) { opus_int k, n, mult2Q; - opus_int32 invGain_Q30, rc_Q31, rc_mult1_Q30, rc_mult2, tmp1, tmp2; + opus_int32 invGain_Q30, rc_Q31, rc_mult1_Q30, rc_mult2, tmp1, tmp2, tmp3; invGain_Q30 = SILK_FIX_CONST( 1, 30 ); for( k = order - 1; k > 0; k-- ) { @@ -80,14 +80,14 @@ opus_int64 tmp64; tmp1 = A_QA[ n ]; tmp2 = A_QA[ k - n - 1 ]; - tmp64 = silk_RSHIFT_ROUND64( silk_SMULL( silk_SUB_SAT32(tmp1, - MUL32_FRAC_Q( tmp2, rc_Q31, 31 ) ), rc_mult2 ), mult2Q); + tmp3 = silk_SUB_SAT32(tmp1, MUL32_FRAC_Q( tmp2, rc_Q31, 31 ) ); + tmp64 = silk_RSHIFT_ROUND64( silk_SMULL(tmp3, rc_mult2 ), mult2Q); if( tmp64 > silk_int32_MAX || tmp64 < silk_int32_MIN ) { return 0; } A_QA[ n ] = ( opus_int32 )tmp64; - tmp64 = silk_RSHIFT_ROUND64( silk_SMULL( silk_SUB_SAT32(tmp2, - MUL32_FRAC_Q( tmp1, rc_Q31, 31 ) ), rc_mult2), mult2Q); + tmp3 = silk_SUB_SAT32(tmp2, MUL32_FRAC_Q( tmp1, rc_Q31, 31 ) ); + tmp64 = silk_RSHIFT_ROUND64( silk_SMULL(tmp3, rc_mult2), mult2Q); if( tmp64 > silk_int32_MAX || tmp64 < silk_int32_MIN ) { return 0; }