avfilter: Error out from avfilter_merge_formats() when there are duplicates

instead of trying to continue.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2011-11-23 14:14:01 +01:00
parent 4d874fc2b1
commit 248bb81ebc

View File

@ -57,8 +57,13 @@ AVFilterFormats *avfilter_merge_formats(AVFilterFormats *a, AVFilterFormats *b)
for (i = 0; i < a->format_count; i++)
for (j = 0; j < b->format_count; j++)
if (a->formats[i] == b->formats[j]){
if(k >= FFMIN(a->format_count, b->format_count)){
av_log(0, AV_LOG_ERROR, "Duplicate formats in avfilter_merge_formats() detected\n");
av_free(ret->formats);
av_free(ret);
return NULL;
}
ret->formats[k++] = a->formats[i];
break;
}
ret->format_count = k;