Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBurt P <pburt0@gmail.com>2016-09-04 17:28:39 +0300
committerBurt P <pburt0@gmail.com>2016-09-07 18:53:41 +0300
commit91be2ad756d658acc24fec5bc46c1775158d28b0 (patch)
tree74cf462f39989e4989c60d1d6636403aafeca5e4 /libavfilter/af_hdcd.c
parent5e553cab68ea7d4937ea8fb2993f5006fccbddcf (diff)
af_hdcd: fix possible integer overflow
Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'libavfilter/af_hdcd.c')
-rw-r--r--libavfilter/af_hdcd.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c
index cde234022b..6bc408cbe3 100644
--- a/libavfilter/af_hdcd.c
+++ b/libavfilter/af_hdcd.c
@@ -1004,16 +1004,15 @@ AVFILTER_DEFINE_CLASS(hdcd);
static void hdcd_reset(hdcd_state *state, unsigned rate, unsigned cdt_ms)
{
int i;
+ uint64_t sustain_reset = (uint64_t)cdt_ms * rate / 1000;
state->window = 0;
state->readahead = 32;
state->arg = 0;
state->control = 0;
-
state->running_gain = 0;
-
+ state->sustain_reset = sustain_reset;
state->sustain = 0;
- state->sustain_reset = cdt_ms*rate/1000;
state->code_counterA = 0;
state->code_counterA_almost = 0;
@@ -1789,8 +1788,8 @@ static av_cold int init(AVFilterContext *ctx)
hdcd_reset(&s->state[c], 44100, s->cdt_ms);
}
- av_log(ctx, AV_LOG_VERBOSE, "CDT period: %dms (%d samples @44100Hz)\n",
- s->cdt_ms, s->cdt_ms*44100/1000 );
+ av_log(ctx, AV_LOG_VERBOSE, "CDT period: %dms (%u samples @44100Hz)\n",
+ s->cdt_ms, s->state[0].sustain_reset );
av_log(ctx, AV_LOG_VERBOSE, "Process mode: %s\n",
(s->process_stereo) ? "process stereo channels together" : "process each channel separately");
av_log(ctx, AV_LOG_VERBOSE, "Force PE: %s\n",