1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

lavfi/silencedetect: use av_ts2timestr() macro.

This commit is contained in:
Clément Bœsch 2012-02-15 00:21:14 +01:00
parent 94bc672489
commit d3b06399ff

View File

@ -24,6 +24,7 @@
*/ */
#include "libavutil/opt.h" #include "libavutil/opt.h"
#include "libavutil/timestamp.h"
#include "avfilter.h" #include "avfilter.h"
typedef struct { typedef struct {
@ -32,7 +33,7 @@ typedef struct {
double noise; ///< noise amplitude ratio double noise; ///< noise amplitude ratio
int duration; ///< minimum duration of silence until notification int duration; ///< minimum duration of silence until notification
int64_t nb_null_samples; ///< current number of continuous zero samples int64_t nb_null_samples; ///< current number of continuous zero samples
double start; ///< if silence is detected, this value contains the time of the first zero sample int64_t start; ///< if silence is detected, this value contains the time of the first zero sample
int last_sample_rate; ///< last sample rate to check for sample rate changes int last_sample_rate; ///< last sample rate to check for sample rate changes
} SilenceDetectContext; } SilenceDetectContext;
@ -106,18 +107,17 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
if (!silence->start) { if (!silence->start) {
silence->nb_null_samples++; silence->nb_null_samples++;
if (silence->nb_null_samples >= nb_samples_notify) { if (silence->nb_null_samples >= nb_samples_notify) {
silence->start = insamples->pts * av_q2d(inlink->time_base) - silence->duration; silence->start = insamples->pts - silence->duration / av_q2d(inlink->time_base);
av_log(silence, AV_LOG_INFO, av_log(silence, AV_LOG_INFO,
"silence_start: %f\n", silence->start); "silence_start: %s\n", av_ts2timestr(silence->start, &inlink->time_base));
} }
} }
} else { } else {
if (silence->start) { if (silence->start)
double end = insamples->pts * av_q2d(inlink->time_base);
av_log(silence, AV_LOG_INFO, av_log(silence, AV_LOG_INFO,
"silence_end: %f | silence_duration: %f\n", "silence_end: %s | silence_duration: %s\n",
end, end - silence->start); av_ts2timestr(insamples->pts, &inlink->time_base),
} av_ts2timestr(insamples->pts - silence->start, &inlink->time_base));
silence->nb_null_samples = silence->start = 0; silence->nb_null_samples = silence->start = 0;
} }
} }