| @@ -108,17 +108,17 @@ AVFilterFormats *ff_merge_formats(AVFilterFormats *a, AVFilterFormats *b, | |||||
| To avoid that, pretend that there are no common formats to force the | To avoid that, pretend that there are no common formats to force the | ||||
| insertion of a conversion filter. */ | insertion of a conversion filter. */ | ||||
| if (type == AVMEDIA_TYPE_VIDEO) | if (type == AVMEDIA_TYPE_VIDEO) | ||||
| for (i = 0; i < a->format_count; i++) | |||||
| for (j = 0; j < b->format_count; j++) { | |||||
| const AVPixFmtDescriptor *adesc = av_pix_fmt_desc_get(a->formats[i]); | |||||
| const AVPixFmtDescriptor *bdesc = av_pix_fmt_desc_get(b->formats[j]); | |||||
| alpha2 |= adesc->flags & bdesc->flags & PIX_FMT_ALPHA; | |||||
| chroma2|= adesc->nb_components > 1 && bdesc->nb_components > 1; | |||||
| if (a->formats[i] == b->formats[j]) { | |||||
| alpha1 |= adesc->flags & PIX_FMT_ALPHA; | |||||
| chroma1|= adesc->nb_components > 1; | |||||
| for (i = 0; i < a->format_count; i++) | |||||
| for (j = 0; j < b->format_count; j++) { | |||||
| const AVPixFmtDescriptor *adesc = av_pix_fmt_desc_get(a->formats[i]); | |||||
| const AVPixFmtDescriptor *bdesc = av_pix_fmt_desc_get(b->formats[j]); | |||||
| alpha2 |= adesc->flags & bdesc->flags & PIX_FMT_ALPHA; | |||||
| chroma2|= adesc->nb_components > 1 && bdesc->nb_components > 1; | |||||
| if (a->formats[i] == b->formats[j]) { | |||||
| alpha1 |= adesc->flags & PIX_FMT_ALPHA; | |||||
| chroma1|= adesc->nb_components > 1; | |||||
| } | |||||
| } | } | ||||
| } | |||||
| // If chroma or alpha can be lost through merging then do not merge | // If chroma or alpha can be lost through merging then do not merge | ||||
| if (alpha2 > alpha1 || chroma2 > chroma1) | if (alpha2 > alpha1 || chroma2 > chroma1) | ||||