{
int inSamples = rest;
- if (inSamples + context->bufferedSamples > context->context->frame_size)
- inSamples = context->context->frame_size - context->bufferedSamples;
+ if ((inSamples < 0) || (context->bufferedSamples > (UINT32)(INT_MAX - inSamples)))
+ return FALSE;
+
+ if (inSamples + (int)context->bufferedSamples > context->context->frame_size)
+ inSamples = context->context->frame_size - (int)context->bufferedSamples;
rc = av_samples_copy(context->buffered->extended_data, context->resampled->extended_data,
- context->bufferedSamples, copied, inSamples,
+ (int)context->bufferedSamples, copied, inSamples,
context->context->channels, context->context->sample_fmt);
rest -= inSamples;
copied += inSamples;
- context->bufferedSamples += inSamples;
+ context->bufferedSamples += (UINT32)inSamples;
- if (context->context->frame_size <= context->bufferedSamples)
+ if (context->context->frame_size <= (int)context->bufferedSamples)
{
/* Encode in desired format. */
if (!ffmpeg_encode_frame(context->context, context->buffered,
if (!h264 || !h264->subsystem)
return FALSE;
+ if ((h264->width > INT_MAX) || (h264->height > INT_MAX))
+ return FALSE;
+
sys = (H264_CONTEXT_LIBAVCODEC*)h264->pSystemData;
recreate = !sys->codecEncoder || !sys->codecEncoderContext;
if (sys->codecEncoderContext)
{
- if ((sys->codecEncoderContext->width != h264->width) ||
- (sys->codecEncoderContext->height != h264->height))
+ if ((sys->codecEncoderContext->width != (int)h264->width) ||
+ (sys->codecEncoderContext->height != (int)h264->height))
recreate = TRUE;
}