Message ID | 20240318081246.3649869-1-haihao.xiang@intel.com |
---|---|
State | Accepted |
Commit | 3172a6722e945bd31c3a71d510471103680a3459 |
Headers | show |
Series | [FFmpeg-devel,1/3] lavfi/tonemap_vaapi: By default use bt709 for output frame | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On Ma, 2024-03-18 at 16:12 +0800, Xiang, Haihao wrote: > From: Haihao Xiang <haihao.xiang@intel.com> > > By default don't use the color properties from input frame as output > frame properties when performing HDR to SDR conversion > > Signed-off-by: Haihao Xiang <haihao.xiang@intel.com> > --- > doc/filters.texi | 4 ++-- > libavfilter/vf_tonemap_vaapi.c | 7 +++++-- > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/doc/filters.texi b/doc/filters.texi > index 913365671d..2cb84c1476 100644 > --- a/doc/filters.texi > +++ b/doc/filters.texi > @@ -27839,7 +27839,7 @@ Default is nv12. > @item primaries, p > Set the output color primaries. > > -Default is same as input. > +Default is bt709. > > @item transfer, t > Set the output transfer characteristics. > @@ -27849,7 +27849,7 @@ Default is bt709. > @item matrix, m > Set the output colorspace matrix. > > -Default is same as input. > +Default is bt709. > > @end table > > diff --git a/libavfilter/vf_tonemap_vaapi.c b/libavfilter/vf_tonemap_vaapi.c > index 0b767202d2..a21f565e3a 100644 > --- a/libavfilter/vf_tonemap_vaapi.c > +++ b/libavfilter/vf_tonemap_vaapi.c > @@ -278,13 +278,16 @@ static int tonemap_vaapi_filter_frame(AVFilterLink > *inlink, AVFrame *input_frame > if (err < 0) > goto fail; > > + /* Use BT709 by default for HDR to SDR output frame */ > + output_frame->color_primaries = AVCOL_PRI_BT709; > + output_frame->color_trc = AVCOL_TRC_BT709; > + output_frame->colorspace = AVCOL_SPC_BT709; > + > if (ctx->color_primaries != AVCOL_PRI_UNSPECIFIED) > output_frame->color_primaries = ctx->color_primaries; > > if (ctx->color_transfer != AVCOL_TRC_UNSPECIFIED) > output_frame->color_trc = ctx->color_transfer; > - else > - output_frame->color_trc = AVCOL_TRC_BT709; > > if (ctx->color_matrix != AVCOL_SPC_UNSPECIFIED) > output_frame->colorspace = ctx->color_matrix; Will apply, Thanks Haihao
diff --git a/doc/filters.texi b/doc/filters.texi index 913365671d..2cb84c1476 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -27839,7 +27839,7 @@ Default is nv12. @item primaries, p Set the output color primaries. -Default is same as input. +Default is bt709. @item transfer, t Set the output transfer characteristics. @@ -27849,7 +27849,7 @@ Default is bt709. @item matrix, m Set the output colorspace matrix. -Default is same as input. +Default is bt709. @end table diff --git a/libavfilter/vf_tonemap_vaapi.c b/libavfilter/vf_tonemap_vaapi.c index 0b767202d2..a21f565e3a 100644 --- a/libavfilter/vf_tonemap_vaapi.c +++ b/libavfilter/vf_tonemap_vaapi.c @@ -278,13 +278,16 @@ static int tonemap_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame if (err < 0) goto fail; + /* Use BT709 by default for HDR to SDR output frame */ + output_frame->color_primaries = AVCOL_PRI_BT709; + output_frame->color_trc = AVCOL_TRC_BT709; + output_frame->colorspace = AVCOL_SPC_BT709; + if (ctx->color_primaries != AVCOL_PRI_UNSPECIFIED) output_frame->color_primaries = ctx->color_primaries; if (ctx->color_transfer != AVCOL_TRC_UNSPECIFIED) output_frame->color_trc = ctx->color_transfer; - else - output_frame->color_trc = AVCOL_TRC_BT709; if (ctx->color_matrix != AVCOL_SPC_UNSPECIFIED) output_frame->colorspace = ctx->color_matrix;