Ronald, Thanks! Created a PR at https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20438
- Drew On Wed, Sep 3, 2025 at 8:31 AM Ronald S. Bultje <[email protected]> wrote: > Hi Drew, > > I believe you create an account (if you don't already have one), fork the > main FFmpeg repo (so you get a copy into your own personal account), push > the patch into a branch on your personal repo, and submit a PR to merge > that personal branch back into the main FFmpeg repo. It's similar to gitlab > or github, if that helps. If emails feels a bit tardish, you can ask for > help on IRC if you're not sure about any of these steps. > > Thanks! > Ronald > > On Tue, Sep 2, 2025 at 3:49 PM Drew Dunne <[email protected]> wrote: > >> Sure, I can submit it there. Is there documentation on how to submit a >> patch there? Do I just submit it as a pull request? >> >> On Tue, Aug 26, 2025 at 2:33 PM Ronald S. Bultje <[email protected]> >> wrote: >> >>> Hi Drew, >>> >>> Thanks for the bug report! >>> >>> On Mon, Aug 25, 2025 at 10:50 AM Drew Dunne via ffmpeg-devel < >>> [email protected]> wrote: >>> >>>> A solid color image of 8-bit YUV: Y=157, U=164, V=98. >>>> >>>> Specify the input as: >>>> >>>> Input range: MPEG >>>> In color matrix: BT470BG >>>> In color primaries: BT470M >>>> In color transfer characteristics: Gamma 28 >>>> >>>> Output as: >>>> Out color range: JPEG >>>> Out color matrix: BT.709 >>>> Out color primaries: BT.709 >>>> Out color transfer characteristics: BT.709 >>>> >>>> During the calculation you get: >>>> >>>> Input YUV: y=157, u=164, v-98 >>>> Post-yuv2rgb BT.470BG: r=0.456055, g=0.684152, >>>> b=0.928606 >>>> Post-apply gamma28 linear LUT: r=0.110979, g=0.345494, >>>> b=0.812709 >>>> Post-color rotation BT.470M to BT.709: r=-0.04161, g=0.384626, >>>> b=0.852400 >>>> Post-apply Rec.709 delinear LUT: r=-0.16382, g=0.615932, >>>> b=0.923793 >>>> Post-rgb2yuv Rec.709 matrix: y=120, u=190, v=25 >>>> >>>> Where with this change, the delinear LUT output would be clamped to 0, >>>> so the result would be: >>>> r=0.000000, g=0.612390, b=0.918807 and a final output of >>>> y=129, u=185, v=46 >>> >>> >>> So for those of us playing along, a repro looks like this: >>> >>> $ hexdump /tmp/in.yuv >>> 0000000 9d9d 9d9d 62a4 >>> $ git diff >>> diff --git a/libavfilter/vf_colorspace.c b/libavfilter/vf_colorspace.c >>> index e1f4725f635..512eb620fcf 100644 >>> --- a/libavfilter/vf_colorspace.c >>> +++ b/libavfilter/vf_colorspace.c >>> @@ -348,11 +348,20 @@ static int convert(AVFilterContext *ctx, void >>> *data, int job_nr, int n_jobs) >>> */ >>> s->yuv2rgb(rgb, s->rgb_stride, in_data, td->in_linesize, w, h, >>> s->yuv2rgb_coeffs, s->yuv_offset[0]); >>> + printf("post-yuv2rgb - R: %d, G: %d, B: %d\n", >>> + rgb[0][0], rgb[1][0], rgb[2][0]); >>> if (!s->rgb2rgb_passthrough) { >>> apply_lut(rgb, s->rgb_stride, w, h, s->lin_lut); >>> - if (!s->lrgb2lrgb_passthrough) >>> + printf("post-linearize - R: %d, G: %d, B: %d\n", >>> + rgb[0][0], rgb[1][0], rgb[2][0]); >>> + if (!s->lrgb2lrgb_passthrough) { >>> s->dsp.multiply3x3(rgb, s->rgb_stride, w, h, >>> s->lrgb2lrgb_coeffs); >>> + printf("post-rgb2rgb - R: %d, G: %d, B: %d\n", >>> + rgb[0][0], rgb[1][0], rgb[2][0]); >>> + } >>> apply_lut(rgb, s->rgb_stride, w, h, s->delin_lut); >>> + printf("post-delinearize - R: %d, G: %d, B: %d\n", >>> + rgb[0][0], rgb[1][0], rgb[2][0]); >>> } >>> if (s->dither == DITHER_FSB) { >>> s->rgb2yuv_fsb(out_data, td->out_linesize, rgb, >>> s->rgb_stride, w, h, >>> $ make -j4 && ./ffmpeg -s 2x2 -pix_fmt yuv420p -f rawvideo -c:v rawvideo >>> -i /tmp/in.yuv -vf >>> colorspace=ispace=bt470bg:iprimaries=bt470m:itrc=gamma28:irange=mpeg:range=jpeg:all=bt709 >>> -y /tmp/out.yuv >>> [..] >>> post-yuv2rgb - R: 13076, G: 19616, B: 26625 >>> post-linearize - R: 3182, G: 9906, B: 23302 >>> post-rgb2rgb - R: -1193, G: 11028, B: 24440 >>> post-delinearize - R: -4697, G: 17660, B: 26487 >>> >>> Patch looks OK. Drew, would it be possible to submit the patch at >>> code.ffmpeg.org so I can merge it using our new system? >>> >>> Thanks, >>> Ronald >>> >> >> >> -- >> Drew Dunne >> [email protected] >> >> -- Drew Dunne [email protected] _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
