avfilter/buffersrc: promote unspecified color metadata

Currently, this only affects untagged RGB/XYZ/Gray, which get forced to
their corresponding metadata before entering the filter graph. The main
justification for this change, however, is the planned ability to add
automatic promotion of unspecified yuv to mpeg range yuv.

Notably, this change will never allow accidentally cross-promoting
unspecified to jpeg or to a specific YUV matrix, since that is still
bound by the constraints of YUV range negotiation as set up by
query_formats.
release/7.0
Niklas Haas 10 months ago
parent 99d33cc661
commit 2303bf3232
  1. 5
      libavfilter/buffersrc.c
  2. 4
      tests/ref/fate/rgb24-mkv

@ -291,6 +291,11 @@ FF_DISABLE_DEPRECATION_WARNINGS
FF_ENABLE_DEPRECATION_WARNINGS
#endif
if (copy->colorspace == AVCOL_SPC_UNSPECIFIED)
copy->colorspace = ctx->outputs[0]->colorspace;
if (copy->color_range == AVCOL_RANGE_UNSPECIFIED)
copy->color_range = ctx->outputs[0]->color_range;
ret = ff_filter_frame(ctx->outputs[0], copy);
if (ret < 0)
return ret;

@ -1,5 +1,5 @@
e181dc84058c3584598333dabd110123 *tests/data/fate/rgb24-mkv.matroska
58225 tests/data/fate/rgb24-mkv.matroska
7d767e8238c674ecfa80458cb281c09e *tests/data/fate/rgb24-mkv.matroska
58236 tests/data/fate/rgb24-mkv.matroska
#tb 0: 1/10
#media_type 0: video
#codec_id 0: rawvideo

Loading…
Cancel
Save