[FFmpeg-devel] [PATCH v2 1/3] avfilter/vf_colorbalance: Fix for the wrong step value for 16bit format

Paul B Mahol onemda at gmail.com
Wed Nov 13 13:48:29 EET 2019


Also step is later divided by 2.

On 11/13/19, lance.lmwang at gmail.com <lance.lmwang at gmail.com> wrote:
> From: Limin Wang <lance.lmwang at gmail.com>
>
> Please try to reproduce with below command:
> ./ffplay -vf format=rgba64,colorbalance=rm=.2  ../fate-suite/mpeg2/t.mpg
>
> Without the patch, the step is 8 if you check it by gdb or print out.
>
> Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> ---
>  libavfilter/vf_colorbalance.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libavfilter/vf_colorbalance.c b/libavfilter/vf_colorbalance.c
> index eb870ac2ad..3fd1426696 100644
> --- a/libavfilter/vf_colorbalance.c
> +++ b/libavfilter/vf_colorbalance.c
> @@ -303,6 +303,7 @@ static int config_output(AVFilterLink *outlink)
>      ColorBalanceContext *s = ctx->priv;
>      const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(outlink->format);
>      const int depth = desc->comp[0].depth;
> +    const int is16bit = depth > 8;
>      const int max = 1 << depth;
>      const int planar = av_pix_fmt_count_planes(outlink->format) > 1;
>
> @@ -319,7 +320,7 @@ static int config_output(AVFilterLink *outlink)
>      }
>
>      ff_fill_rgba_map(s->rgba_map, outlink->format);
> -    s->step = av_get_padded_bits_per_pixel(desc) >> 3;
> +    s->step = av_get_padded_bits_per_pixel(desc) >> (3 + is16bit);
>
>      return 0;
>  }
> --
> 2.21.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list