X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fthirdparty%2Fsrc%2Fffmpeg-4.4.patch5;fp=cinelerra-5.1%2Fthirdparty%2Fsrc%2Fffmpeg-4.4.patch5;h=32e7fe11b3fb99ee271ab858b7f2f0757fb2a7ca;hp=0000000000000000000000000000000000000000;hb=b7045bda288a03559422862284a9cf411b63c072;hpb=ed0d23fa63102c890bfd22e30abb1a0a40b4390b diff --git a/cinelerra-5.1/thirdparty/src/ffmpeg-4.4.patch5 b/cinelerra-5.1/thirdparty/src/ffmpeg-4.4.patch5 new file mode 100644 index 00000000..32e7fe11 --- /dev/null +++ b/cinelerra-5.1/thirdparty/src/ffmpeg-4.4.patch5 @@ -0,0 +1,30 @@ +diff --git a/libavfilter/formats.c b/libavfilter/formats.c +index de4315369d..f430908343 100644 +--- a/libavfilter/formats.c ++++ b/libavfilter/formats.c +@@ -107,11 +107,13 @@ AVFilterFormats *ff_merge_formats(AVFilterFormats *a, AVFilterFormats *b, + possibly causing a lossy conversion elsewhere in the graph. + To avoid that, pretend that there are no common formats to force the + insertion of a conversion filter. */ +- if (type == AVMEDIA_TYPE_VIDEO) +- for (i = 0; i < a->nb_formats; i++) ++ if (type == AVMEDIA_TYPE_VIDEO) { ++ for (i = 0; i < a->nb_formats; i++) { ++ const AVPixFmtDescriptor *adesc = av_pix_fmt_desc_get(a->formats[i]); ++ if( !adesc ) continue; + for (j = 0; j < b->nb_formats; j++) { +- const AVPixFmtDescriptor *adesc = av_pix_fmt_desc_get(a->formats[i]); + const AVPixFmtDescriptor *bdesc = av_pix_fmt_desc_get(b->formats[j]); ++ if( !bdesc ) continue; + alpha2 |= adesc->flags & bdesc->flags & AV_PIX_FMT_FLAG_ALPHA; + chroma2|= adesc->nb_components > 1 && bdesc->nb_components > 1; + if (a->formats[i] == b->formats[j]) { +@@ -119,6 +121,8 @@ AVFilterFormats *ff_merge_formats(AVFilterFormats *a, AVFilterFormats *b, + chroma1|= adesc->nb_components > 1; + } + } ++ } ++ } + + // If chroma or alpha can be lost through merging then do not merge + if (alpha2 > alpha1 || chroma2 > chroma1)