---
libavutil/samplefmt.c | 9 +++++----
libavutil/samplefmt.h | 3 ++-
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/libavutil/samplefmt.c b/libavutil/samplefmt.c
index 389f726..8361bcf 100644
--- a/libavutil/samplefmt.c
+++ b/libavutil/samplefmt.c
@@ -105,7 +105,8 @@ int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt)
return sample_fmt_info[sample_fmt].planar;
}
-int av_samples_get_buffer_size(int *linesize, int nb_channels, int nb_samples,
+int av_samples_get_buffer_size(int *linesize, unsigned nb_channels,
+ unsigned nb_samples,
enum AVSampleFormat sample_fmt, int align)
{
int line_size;
@@ -113,7 +114,7 @@ int av_samples_get_buffer_size(int *linesize, int
nb_channels, int nb_samples,
int planar = av_sample_fmt_is_planar(sample_fmt);
/* validate parameter ranges */
- if (!sample_size || nb_samples <= 0 || nb_channels <= 0)
+ if (!sample_size || nb_samples == 0 || nb_channels == 0)
return AVERROR(EINVAL);
/* auto-select alignment if not specified */
@@ -123,8 +124,8 @@ int av_samples_get_buffer_size(int *linesize, int
nb_channels, int nb_samples,
}
/* check for integer overflow */
- if (nb_channels > INT_MAX / align ||
- (int64_t)nb_channels * nb_samples > (INT_MAX - (align * nb_channels))
/ sample_size)
+ if (nb_channels > UINT_MAX / align ||
+ (uint64_t)nb_channels * nb_samples > (UINT_MAX - (align *
nb_channels)) / sample_size)
return AVERROR(EINVAL);
line_size = planar ? FFALIGN(nb_samples * sample_size,
align) :
diff --git a/libavutil/samplefmt.h b/libavutil/samplefmt.h
index 33cbded..10ae1df 100644
--- a/libavutil/samplefmt.h
+++ b/libavutil/samplefmt.h
@@ -138,7 +138,8 @@ int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt);
* @param align buffer size alignment (0 = default, 1 = no alignment)
* @return required buffer size, or negative error code on failure
*/
-int av_samples_get_buffer_size(int *linesize, int nb_channels, int nb_samples,
+int av_samples_get_buffer_size(int *linesize, unsigned nb_channels,
+ unsigned nb_samples,
enum AVSampleFormat sample_fmt, int align);
/**
--
1.8.5.3
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel