Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a031b4b authored by Jakub Pawlowski's avatar Jakub Pawlowski
Browse files

Add Fuzzing for Bluetooth LC3 Encoder

Test: run liblc3codec_encoder_fuzzer liblc3codec_decoder_fuzzer
Tag: #feature
Bug: 150670922
Change-Id: Ib97ca8936d97be622b55bf516357eeef38d3dd33
parent 65526e45
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -52,3 +52,27 @@ cc_library_static {
        "TestSupport",
    ],
}

cc_fuzz {
  name: "liblc3codec_encoder_fuzzer",

  srcs: [
    "fuzzer/liblc3codec_encoder_fuzzer.cpp",
  ],

  static_libs: [
    "liblc3codec",
  ],
}

cc_fuzz {
  name: "liblc3codec_decoder_fuzzer",

  srcs: [
    "fuzzer/liblc3codec_decoder_fuzzer.cpp",
  ],

  static_libs: [
    "liblc3codec",
  ],
}
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ namespace Lc3Dec {
class LongTermPostfilter {
 public:
  LongTermPostfilter(const Lc3Config& lc3Config_, uint16_t nbits);
  virtual ~LongTermPostfilter();
  ~LongTermPostfilter();

  void registerDatapoints(DatapointContainer* datapoints);

+9 −7
Original line number Diff line number Diff line
@@ -63,15 +63,17 @@ BandwidthDetector::BandwidthDetector(const Lc3Config& lc3Config_)
    : lc3Config(lc3Config_),
      N_bw(calc_N_bw(lc3Config.Fs_ind)),
      nbits_bw(nbits_bw_table[calc_N_bw(lc3Config.Fs_ind)]),
      P_bw(0),
      I_bw_start((lc3Config.N_ms == Lc3Config::FrameDuration::d10ms)
      P_bw(0) {
  if (N_bw != 0) {
    I_bw_start = (lc3Config.N_ms == Lc3Config::FrameDuration::d10ms)
                     ? I_bw_start_table[N_bw - 1]
                     : I_bw_start_table_7p5ms[N_bw - 1]),
      I_bw_stop((lc3Config.N_ms == Lc3Config::FrameDuration::d10ms)
                     : I_bw_start_table_7p5ms[N_bw - 1];
    I_bw_stop = (lc3Config.N_ms == Lc3Config::FrameDuration::d10ms)
                    ? I_bw_stop_table[N_bw - 1]
                    : I_bw_stop_table_7p5ms[N_bw - 1]),
      L((lc3Config.N_ms == Lc3Config::FrameDuration::d10ms) ? L_10ms
                                                            : L_7p5ms) {}
                    : I_bw_stop_table_7p5ms[N_bw - 1];
  }
  L = (lc3Config.N_ms == Lc3Config::FrameDuration::d10ms) ? L_10ms : L_7p5ms;
}

BandwidthDetector::~BandwidthDetector() {}

+1 −1
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ void SpectralNoiseShaping::run(const double* const X, const double* E_B,
    E_B_patched[i * 2 + 0] = E_B[i];
    E_B_patched[i * 2 + 1] = E_B[i];
  }
  for (uint8_t i = 0; i < lc3Config.N_b; i++) {
  for (uint8_t i = 0; i < lc3Config.N_b - n2; i++) {
    E_B_patched[2 * n2 + i] = E_B[n2 + i];
  }

+2 −1
Original line number Diff line number Diff line
@@ -58,7 +58,8 @@ void DatapointContainer::log(const char* label, const void* pData,
    vStream << std::right << std::setw(2) << std::setfill('0') << std::hex
            << static_cast<int>(pByteData[byteNr]);
  }
  LOG(INFO) << label << "[" << sizeInBytes << "]:" << vStream.str();
  // TODO: uncomment for testing
  //  LOG(INFO) << label << "[" << sizeInBytes << "]:" << vStream.str();
}

uint16_t DatapointContainer::getDatapointSize(const char* label) { return 0; }
Loading