diff --git a/libavfilter/asrc_abuffer.c b/libavfilter/asrc_abuffer.c index cfa5f67486..4a0f08e538 100644 --- a/libavfilter/asrc_abuffer.c +++ b/libavfilter/asrc_abuffer.c @@ -125,9 +125,9 @@ static inline void log_input_change(void *ctx, AVFilterLink *link, AVFilterBuffe -1, ref->audio->channel_layout); av_log(ctx, AV_LOG_INFO, "Audio input format changed: " - "%s:%s:%"PRId64" -> %s:%s:%u, normalizing\n", + "%s:%s:%d -> %s:%s:%d, normalizing\n", av_get_sample_fmt_name(link->format), - old_layout_str, link->sample_rate, + old_layout_str, (int)link->sample_rate, av_get_sample_fmt_name(ref->format), new_layout_str, ref->audio->sample_rate); } diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 348015086b..78e91c8bf9 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -374,8 +374,8 @@ static void ff_dlog_link(void *ctx, AVFilterLink *link, int end) av_get_channel_layout_string(buf, sizeof(buf), -1, link->channel_layout); av_dlog(ctx, - "link[%p r:%"PRId64" cl:%s fmt:%-16s %-16s->%-16s]%s", - link, link->sample_rate, buf, + "link[%p r:%d cl:%s fmt:%-16s %-16s->%-16s]%s", + link, (int)link->sample_rate, buf, av_get_sample_fmt_name(link->format), link->src ? link->src->filter->name : "", link->dst ? link->dst->filter->name : "", diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index 51f1a6b1e0..f92035ff7b 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -106,7 +106,7 @@ typedef struct AVFilterBuffer { typedef struct AVFilterBufferRefAudioProps { int64_t channel_layout; ///< channel layout of audio buffer int nb_samples; ///< number of audio samples per channel - uint32_t sample_rate; ///< audio buffer sample rate + int sample_rate; ///< audio buffer sample rate int planar; ///< audio buffer - planar or packed } AVFilterBufferRefAudioProps; @@ -623,7 +623,11 @@ struct AVFilterLink { AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio /* These parameters apply only to audio */ int64_t channel_layout; ///< channel layout of current buffer (see libavutil/audioconvert.h) +#if LIBAVFILTER_VERSION_MAJOR < 3 int64_t sample_rate; ///< samples per second +#else + int sample_rate; ///< samples per second +#endif int planar; ///< agreed upon packing mode of audio buffers. true if planar. int format; ///< agreed upon media format diff --git a/libavfilter/formats.c b/libavfilter/formats.c index 1959a0efcf..ef58665a17 100644 --- a/libavfilter/formats.c +++ b/libavfilter/formats.c @@ -266,11 +266,11 @@ int ff_parse_sample_format(int *ret, const char *arg, void *log_ctx) return 0; } -int ff_parse_sample_rate(unsigned *ret, const char *arg, void *log_ctx) +int ff_parse_sample_rate(int *ret, const char *arg, void *log_ctx) { char *tail; double srate = av_strtod(arg, &tail); - if (*tail || srate < 1 || (int)srate != srate) { + if (*tail || srate < 1 || (int)srate != srate || srate > INT_MAX) { av_log(log_ctx, AV_LOG_ERROR, "Invalid sample rate '%s'\n", arg); return AVERROR(EINVAL); } diff --git a/libavfilter/internal.h b/libavfilter/internal.h index bb9d0e576a..6173681067 100644 --- a/libavfilter/internal.h +++ b/libavfilter/internal.h @@ -88,7 +88,7 @@ int ff_parse_pixel_format(enum PixelFormat *ret, const char *arg, void *log_ctx) * @param log_ctx log context * @return 0 in case of success, a negative AVERROR code on error */ -int ff_parse_sample_rate(unsigned *ret, const char *arg, void *log_ctx); +int ff_parse_sample_rate(int *ret, const char *arg, void *log_ctx); /** * Parse a sample format name or a corresponding integer representation.