summaryrefslogtreecommitdiff
path: root/libavfilter/vsrc_ddagrab.c
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 /libavfilter/vsrc_ddagrab.c
parent5e7eaabb42071ac7890daeeba53badfc53845137 (diff)
downloadffmpeg-611f8435341bf928e8b129a16657be5792571780.tar.gz
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.
Diffstat (limited to 'libavfilter/vsrc_ddagrab.c')
-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)