On Fri, Sep 17, 2021 at 12:45 AM Paul B Mahol <one...@gmail.com> wrote:
> I doubt this is correct, something is fishy here. > The issue is that you are assigning a value of type zimg_color_family_e to a variable of type AVColorRange. typedef enum zimg_pixel_range_e { ZIMG_RANGE_INTERNAL = -1, /**< Not part of the API. */ ZIMG_RANGE_LIMITED = 0, /**< Studio (TV) legal range, 16-235 in 8 bits. */ ZIMG_RANGE_FULL = 1 /**< Full (PC) dynamic range, 0-255 in 8 bits. */ } zimg_pixel_range_e; enum AVColorRange { AVCOL_RANGE_UNSPECIFIED = 0, AVCOL_RANGE_MPEG = 1, AVCOL_RANGE_JPEG = 2, AVCOL_RANGE_NB ///< Not part of ABI }; As you can see, (int)ZIMG_RANGE_FULL is not the same as (int)AVCOL_RANGE_JPEG. And you've apparently had run into this once before, 6 years ago: $ git annotate libavfilter/vf_zscale.c | grep 'color_range' | grep out b5cf307d (Paul B Mahol 2016-09-02 16:03:58 +0200 580) || s->out_range != out->color_range 416e35e5 (Paul B Mahol 2015-09-21 15:34:15 +0200 620) out->color_range = (int)s->dst_format.pixel_range + 1; 416e35e5 (Paul B Mahol 2015-09-21 15:34:15 +0200 640) s->out_range = out->color_range; 416e35e5 (Paul B Mahol 2015-09-21 15:34:15 +0200 679) out->color_range = (int)s->dst_format.pixel_range; I hope this clears your doubt. Thank you, Pavel. > > On Fri, Sep 17, 2021 at 4:17 AM Pavel Koshevoy <pkoshe...@gmail.com> > wrote: > >> This filter chain was supposed to convert from narrow range >> to full range yuv444p, but didn't: >> >> buffer=width=1280:height=720:pix_fmt=yuv444p:frame_rate=25/1:\ >> time_base=1/25:sar=1/1,zscale=min=709:rin=limited:pin=709:\ >> tin=709:t=linear,format=gbrpf32le,zscale=tin=linear:p=709:m=709:\ >> r=full:t=709,format=pix_fmts=yuv444p,buffersink >> --- >> libavfilter/vf_zscale.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/libavfilter/vf_zscale.c b/libavfilter/vf_zscale.c >> index dfea00f9eb..06a025e6e6 100644 >> --- a/libavfilter/vf_zscale.c >> +++ b/libavfilter/vf_zscale.c >> @@ -676,7 +676,7 @@ static int filter_frame(AVFilterLink *link, AVFrame >> *in) >> out->color_primaries = (int)s->dst_format.color_primaries; >> >> if (s->range != -1) >> - out->color_range = (int)s->dst_format.pixel_range; >> + out->color_range = (int)s->dst_format.pixel_range + 1; >> >> if (s->trc != -1) >> out->color_trc = (int)s->dst_format.transfer_characteristics; >> -- >> 2.26.2 >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". >> > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".