summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Rothenpieler <timo@rothenpieler.org>2022-08-06 20:06:50 +0200
committerTimo Rothenpieler <timo@rothenpieler.org>2022-08-06 22:23:07 +0200
commit611f8435341bf928e8b129a16657be5792571780 (patch)
tree29cfffdfccea25c069f12d31e5167dfb77441369
parent5e7eaabb42071ac7890daeeba53badfc53845137 (diff)
avfilter/vsrc_ddagrab: set sRGB color information on output frames
According to MSDN, all integer pixel formats contains sRGB compliant pixel data, so set the color information on our output frames accordingly.
-rw-r--r--libavfilter/vsrc_ddagrab.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libavfilter/vsrc_ddagrab.c b/libavfilter/vsrc_ddagrab.c
index 5300d46fc1..ce36716281 100644
--- a/libavfilter/vsrc_ddagrab.c
+++ b/libavfilter/vsrc_ddagrab.c
@@ -983,6 +983,18 @@ static int ddagrab_request_frame(AVFilterLink *outlink)
frame->sample_aspect_ratio = (AVRational){1, 1};
+ if (desc.Format == DXGI_FORMAT_B8G8R8A8_UNORM ||
+ desc.Format == DXGI_FORMAT_R10G10B10A2_UNORM) {
+ // According to MSDN, all integer formats contain sRGB image data
+ frame->color_range = AVCOL_RANGE_JPEG;
+ frame->color_primaries = AVCOL_PRI_BT709;
+ frame->color_trc = AVCOL_TRC_IEC61966_2_1;
+ frame->colorspace = AVCOL_SPC_RGB;
+ } else {
+ ret = AVERROR_BUG;
+ goto fail;
+ }
+
av_frame_unref(dda->last_frame);
ret = av_frame_ref(dda->last_frame, frame);
if (ret < 0)