xiph / xiph/opus

compute_activation_c never implemented

Open
#489 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
3.3k
Forks
808
PR merge metrics
No merged PRs in 30d

Description

There is https://github.com/xiph/opus/blob/3da9f7a6db1c05c3996cb363a9d1931a978bf1be/dnn/nnet.h#L133 in the header, but I can't seem to find the implementation of it anywhere.

compilation without SSE/AVX/NEON also fails for me at linking this function.

> com.android.ide.common.process.ProcessException: ninja: Entering directory `/home/user/src/freerdp/client/Android/Studio/freeRDPCore/.cxx/Debug/38e5t665/armeabi-v7a'
  [1/34] Completed 'openssl'
  [2/34] Performing update step for 'openh264'
  -- Already at requested tag: v2.6.0
  [3/34] Performing patch step for 'openh264'
  Applied patch to 'build/platform-android.mk' cleanly.
  Applied patch to 'Makefile' cleanly.
  [4/34] Performing build step for 'opus'
  FAILED: opus-prefix/src/opus-stamp/opus-build /home/user/src/freerdp/client/Android/Studio/freeRDPCore/.cxx/Debug/38e5t665/armeabi-v7a/opus-prefix/src/opus-stamp/opus-build 
  cd /home/user/src/freerdp/client/Android/Studio/freeRDPCore/.cxx/Debug/38e5t665/armeabi-v7a/opus-prefix/src/opus-build && /opt/Android/Sdk/cmake/4.1.2/bin/cmake --build . && /opt/Android/Sdk/cmake/4.1.2/bin/cmake -E touch /home/user/src/freerdp/client/Android/Studio/freeRDPCore/.cxx/Debug/38e5t665/armeabi-v7a/opus-prefix/src/opus-stamp/opus-build
  [1/1] Linking C shared library libopus.so
  FAILED: libopus.so 
  : && /opt/Android/Sdk/ndk/29.0.13113456/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi29 --sysroot=/opt/Android/Sdk/ndk/29.0.13113456/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security  -fno-limit-debug-info  -shared -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments  -Xlinker --dependency-file=CMakeFiles/opus.dir/link.d -Wl,-soname,libopus.so -o libopus.so CMakeFiles/opus.dir/src/opus.c.o CMakeFiles/opus.dir/src/opus_decoder.c.o CMakeFiles/opus.dir/src/opus_encoder.c.o CMakeFiles/opus.dir/src/extensions.c.o CMakeFiles/opus.dir/src/opus_multistream.c.o CMakeFiles/opus.dir/src/opus_multistream_encoder.c.o CMakeFiles/opus.dir/src/opus_multistream_decoder.c.o CMakeFiles/opus.dir/src/repacketizer.c.o CMakeFiles/opus.dir/src/opus_projection_encoder.c.o CMakeFiles/opus.dir/src/opus_projection_decoder.c.o CMakeFiles/opus.dir/src/mapping_matrix.c.o CMakeFiles/opus.dir/src/analysis.c.o CMakeFiles/opus.dir/src/mlp.c.o CMakeFiles/opus.dir/src/mlp_data.c.o CMakeFiles/opus.dir/silk/CNG.c.o CMakeFiles/opus.dir/silk/code_signs.c.o CMakeFiles/opus.dir/silk/init_decoder.c.o CMakeFiles/opus.dir/silk/decode_core.c.o CMakeFiles/opus.dir/silk/decode_frame.c.o CMakeFiles/opus.dir/silk/decode_parameters.c.o CMakeFiles/opus.dir/silk/decode_indices.c.o CMakeFiles/opus.dir/silk/decode_pulses.c.o CMakeFiles/opus.dir/silk/decoder_set_fs.c.o CMakeFiles/opus.dir/silk/dec_API.c.o CMakeFiles/opus.dir/silk/enc_API.c.o CMakeFiles/opus.dir/silk/encode_indices.c.o CMakeFiles/opus.dir/silk/encode_pulses.c.o CMakeFiles/opus.dir/silk/gain_quant.c.o CMakeFiles/opus.dir/silk/interpolate.c.o CMakeFiles/opus.dir/silk/LP_variable_cutoff.c.o CMakeFiles/opus.dir/silk/NLSF_decode.c.o CMakeFiles/opus.dir/silk/NSQ.c.o CMakeFiles/opus.dir/silk/NSQ_del_dec.c.o CMakeFiles/opus.dir/silk/PLC.c.o CMakeFiles/opus.dir/silk/shell_coder.c.o CMakeFiles/opus.dir/silk/tables_gain.c.o CMakeFiles/opus.dir/silk/tables_LTP.c.o CMakeFiles/opus.dir/silk/tables_NLSF_CB_NB_MB.c.o CMakeFiles/opus.dir/silk/tables_NLSF_CB_WB.c.o CMakeFiles/opus.dir/silk/tables_other.c.o CMakeFiles/opus.dir/silk/tables_pitch_lag.c.o CMakeFiles/opus.dir/silk/tables_pulses_per_block.c.o CMakeFiles/opus.dir/silk/VAD.c.o CMakeFiles/opus.dir/silk/control_audio_bandwidth.c.o CMakeFiles/opus.dir/silk/quant_LTP_gains.c.o CMakeFiles/opus.dir/silk/VQ_WMat_EC.c.o CMakeFiles/opus.dir/silk/HP_variable_cutoff.c.o CMakeFiles/opus.dir/silk/NLSF_encode.c.o CMakeFiles/opus.dir/silk/NLSF_VQ.c.o CMakeFiles/opus.dir/silk/NLSF_unpack.c.o CMakeFiles/opus.dir/silk/NLSF_del_dec_quant.c.o CMakeFiles/opus.dir/silk/process_NLSFs.c.o CMakeFiles/opus.dir/silk/stereo_LR_to_MS.c.o CMakeFiles/opus.dir/silk/stereo_MS_to_LR.c.o CMakeFiles/opus.dir/silk/check_control_input.c.o CMakeFiles/opus.dir/silk/control_SNR.c.o CMakeFiles/opus.dir/silk/init_encoder.c.o CMakeFiles/opus.dir/silk/control_codec.c.o CMakeFiles/opus.dir/silk/A2NLSF.c.o CMakeFiles/opus.dir/silk/ana_filt_bank_1.c.o CMakeFiles/opus.dir/silk/biquad_alt.c.o CMakeFiles/opus.dir/silk/bwexpander_32.c.o CMakeFiles/opus.dir/silk/bwexpander.c.o CMakeFiles/opus.dir/silk/debug.c.o CMakeFiles/opus.dir/silk/decode_pitch.c.o CMakeFiles/opus.dir/silk/inner_prod_aligned.c.o CMakeFiles/opus.dir/silk/lin2log.c.o CMakeFiles/opus.dir/silk/log2lin.c.o CMakeFiles/opus.dir/silk/LPC_analysis_filter.c.o CMakeFiles/opus.dir/silk/LPC_inv_pred_gain.c.o CMakeFiles/opus.dir/silk/table_LSF_cos.c.o CMakeFiles/opus.dir/silk/NLSF2A.c.o CMakeFiles/opus.dir/silk/NLSF_stabilize.c.o CMakeFiles/opus.dir/silk/NLSF_VQ_weights_laroia.c.o CMakeFiles/opus.dir/silk/pitch_est_tables.c.o CMakeFiles/opus.dir/silk/resampler.c.o CMakeFiles/opus.dir/silk/resampler_down2_3.c.o CMakeFiles/opus.dir/silk/resampler_down2.c.o CMakeFiles/opus.dir/silk/resampler_private_AR2.c.o CMakeFiles/opus.dir/silk/resampler_private_down_FIR.c.o CMakeFiles/opus.dir/silk/resampler_private_IIR_FIR.c.o CMakeFiles/opus.dir/silk/resampler_private_up2_HQ.c.o CMakeFiles/opus.dir/silk/resampler_rom.c.o CMakeFiles/opus.dir/silk/sigm_Q15.c.o CMakeFiles/opus.dir/silk/sort.c.o CMakeFiles/opus.dir/silk/sum_sqr_shift.c.o CMakeFiles/opus.dir/silk/stereo_decode_pred.c.o CMakeFiles/opus.dir/silk/stereo_encode_pred.c.o CMakeFiles/opus.dir/silk/stereo_find_predictor.c.o CMakeFiles/opus.dir/silk/stereo_quant_pred.c.o CMakeFiles/opus.dir/silk/LPC_fit.c.o CMakeFiles/opus.dir/celt/bands.c.o CMakeFiles/opus.dir/celt/celt.c.o CMakeFiles/opus.dir/celt/celt_encoder.c.o CMakeFiles/opus.dir/celt/celt_decoder.c.o CMakeFiles/opus.dir/celt/cwrs.c.o CMakeFiles/opus.dir/celt/entcode.c.o CMakeFiles/opus.dir/celt/entdec.c.o CMakeFiles/opus.dir/celt/entenc.c.o CMakeFiles/opus.dir/celt/kiss_fft.c.o CMakeFiles/opus.dir/celt/laplace.c.o CMakeFiles/opus.dir/celt/mathops.c.o CMakeFiles/opus.dir/celt/mdct.c.o CMakeFiles/opus.dir/celt/modes.c.o CMakeFiles/opus.dir/celt/pitch.c.o CMakeFiles/opus.dir/celt/celt_lpc.c.o CMakeFiles/opus.dir/celt/quant_bands.c.o CMakeFiles/opus.dir/celt/rate.c.o CMakeFiles/opus.dir/celt/vq.c.o CMakeFiles/opus.dir/silk/float/apply_sine_window_FLP.c.o CMakeFiles/opus.dir/silk/float/corrMatrix_FLP.c.o CMakeFiles/opus.dir/silk/float/encode_frame_FLP.c.o CMakeFiles/opus.dir/silk/float/find_LPC_FLP.c.o CMakeFiles/opus.dir/silk/float/find_LTP_FLP.c.o CMakeFiles/opus.dir/silk/float/find_pitch_lags_FLP.c.o CMakeFiles/opus.dir/silk/float/find_pred_coefs_FLP.c.o CMakeFiles/opus.dir/silk/float/LPC_analysis_filter_FLP.c.o CMakeFiles/opus.dir/silk/float/LTP_analysis_filter_FLP.c.o CMakeFiles/opus.dir/silk/float/LTP_scale_ctrl_FLP.c.o CMakeFiles/opus.dir/silk/float/noise_shape_analysis_FLP.c.o CMakeFiles/opus.dir/silk/float/process_gains_FLP.c.o CMakeFiles/opus.dir/silk/float/regularize_correlations_FLP.c.o CMakeFiles/opus.dir/silk/float/residual_energy_FLP.c.o CMakeFiles/opus.dir/silk/float/warped_autocorrelation_FLP.c.o CMakeFiles/opus.dir/silk/float/wrappers_FLP.c.o CMakeFiles/opus.dir/silk/float/autocorrelation_FLP.c.o CMakeFiles/opus.dir/silk/float/burg_modified_FLP.c.o CMakeFiles/opus.dir/silk/float/bwexpander_FLP.c.o CMakeFiles/opus.dir/silk/float/energy_FLP.c.o CMakeFiles/opus.dir/silk/float/inner_product_FLP.c.o CMakeFiles/opus.dir/silk/float/k2a_FLP.c.o CMakeFiles/opus.dir/silk/float/LPC_inv_pred_gain_FLP.c.o CMakeFiles/opus.dir/silk/float/pitch_analysis_core_FLP.c.o CMakeFiles/opus.dir/silk/float/scale_copy_vector_FLP.c.o CMakeFiles/opus.dir/silk/float/scale_vector_FLP.c.o CMakeFiles/opus.dir/silk/float/schur_FLP.c.o CMakeFiles/opus.dir/silk/float/sort_FLP.c.o CMakeFiles/opus.dir/celt/arm/armcpu.c.o CMakeFiles/opus.dir/celt/arm/arm_celt_map.c.o CMakeFiles/opus.dir/silk/arm/arm_silk_map.c.o CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o CMakeFiles/opus.dir/celt/arm/celt_neon_intr.c.o CMakeFiles/opus.dir/celt/arm/pitch_neon_intr.c.o CMakeFiles/opus.dir/silk/arm/biquad_alt_neon_intr.c.o CMakeFiles/opus.dir/silk/arm/LPC_inv_pred_gain_neon_intr.c.o CMakeFiles/opus.dir/silk/arm/NSQ_del_dec_neon_intr.c.o CMakeFiles/opus.dir/silk/arm/NSQ_neon.c.o  -lm  -latomic -lm && :
  ld.lld: error: undefined symbol: compute_activation_c
  >>> referenced by arm_dnn_map.c:55 (/home/user/src/freerdp/client/Android/Studio/freeRDPCore/src/main/cpp/external/opus/dnn/arm/arm_dnn_map.c:55)
  >>>               CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o:(DNN_COMPUTE_ACTIVATION_IMPL)
  >>> referenced by arm_dnn_map.c:55 (/home/user/src/freerdp/client/Android/Studio/freeRDPCore/src/main/cpp/external/opus/dnn/arm/arm_dnn_map.c:55)
  >>>               CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o:(DNN_COMPUTE_ACTIVATION_IMPL)
  >>> referenced by arm_dnn_map.c:55 (/home/user/src/freerdp/client/Android/Studio/freeRDPCore/src/main/cpp/external/opus/dnn/arm/arm_dnn_map.c:55)
  >>>               CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o:(DNN_COMPUTE_ACTIVATION_IMPL)
  
  ld.lld: error: undefined symbol: compute_activation_neon
  >>> referenced by arm_dnn_map.c:55 (/home/user/src/freerdp/client/Android/Studio/freeRDPCore/src/main/cpp/external/opus/dnn/arm/arm_dnn_map.c:55)
  >>>               CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o:(DNN_COMPUTE_ACTIVATION_IMPL)
  >>> referenced by arm_dnn_map.c:55 (/home/user/src/freerdp/client/Android/Studio/freeRDPCore/src/main/cpp/external/opus/dnn/arm/arm_dnn_map.c:55)
  >>>               CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o:(DNN_COMPUTE_ACTIVATION_IMPL)
  
  ld.lld: error: undefined symbol: compute_conv2d_c
  >>> referenced by arm_dnn_map.c:68 (/home/user/src/freerdp/client/Android/Studio/freeRDPCore/src/main/cpp/external/opus/dnn/arm/arm_dnn_map.c:68)
  >>>               CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o:(DNN_COMPUTE_CONV2D_IMPL)
  >>> referenced by arm_dnn_map.c:68 (/home/user/src/freerdp/client/Android/Studio/freeRDPCore/src/main/cpp/external/opus/dnn/arm/arm_dnn_map.c:68)
  >>>               CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o:(DNN_COMPUTE_CONV2D_IMPL)
  >>> referenced by arm_dnn_map.c:68 (/home/user/src/freerdp/client/Android/Studio/freeRDPCore/src/main/cpp/external/opus/dnn/arm/arm_dnn_map.c:68)
  >>>               CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o:(DNN_COMPUTE_CONV2D_IMPL)
  
  ld.lld: error: undefined symbol: compute_conv2d_neon
  >>> referenced by arm_dnn_map.c:68 (/home/user/src/freerdp/client/Android/Studio/freeRDPCore/src/main/cpp/external/opus/dnn/arm/arm_dnn_map.c:68)
  >>>               CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o:(DNN_COMPUTE_CONV2D_IMPL)
  >>> referenced by arm_dnn_map.c:68 (/home/user/src/freerdp/client/Android/Studio/freeRDPCore/src/main/cpp/external/opus/dnn/arm/arm_dnn_map.c:68)
  >>>               CMakeFiles/opus.dir/dnn/arm/arm_dnn_map.c.o:(DNN_COMPUTE_CONV2D_IMPL)
  clang: error: linker command failed with exit code 1 (use -v to see invocation)
  ninja: build stopped: subcommand failed.
  [5/34] Performing configure step for 'openh264'
  ninja: build stopped: subcommand failed.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the compute_activation_c declaration in dnn/nnet.h and the dispatch references in dnn/arm/arm_dnn_map.c. Reproduce a build without SSE, AVX, and NEON, then trace which implementations are included in that configuration. Done means the affected configuration links successfully without undefined DNN symbols.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
audio-video-rtc
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.