Reference: ffmpeg/libavfilter/af_silencedetect.c
Fetched from: https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/libavfilter/af_silencedetect.c
sha256: 22b9d81e13270e3ee9249a21df80b9334b0281e09b4d67b5e41b10d78b7cee21

Lines that define the detection semantics:

  87|             if (s->nb_null_samples[channel] >= nb_samples_notify) {
  88|                 s->start[channel] = insamples->pts + av_rescale_q(current_sample / s->channels + 1 - nb_samples_notify * s->independent_channels / s->channels,
 128|     const type noise = s->noise;                                                 \
 132|         update(ctx, insamples, *p < noise && *p > -noise, i,                     \
 143|     const type noise = s->noise;                                                 \
 149|             update(ctx, insamples, p[i] < noise && p[i] > -noise,                \
 173|     s->duration = av_rescale(s->duration, inlink->sample_rate, AV_TIME_BASE);
 189|         s->noise *= INT32_MAX;
 193|         s->noise *= INT16_MAX;
 197|     case AV_SAMPLE_FMT_FLTP: s->silencedetect = silencedetect_fltp; break;
 199|         s->noise *= INT32_MAX;
 203|         s->noise *= INT16_MAX;
 220|     const int64_t nb_samples_notify = s->duration * (s->mono ? 1 : nb_channels);
