diff mbox

[FFmpeg-devel] lavfi/colorspace: Add namespace prefix to global functions

Message ID e257dc22-15bf-121a-8621-7eebb44765af@jkqxz.net
State Accepted
Commit 46fb150a81abed256dbe779809bcbe57f1ba9434
Headers show

Commit Message

Mark Thompson June 25, 2018, 9:02 p.m. UTC
---
On 25/06/18 02:34, Song, Ruiling wrote:
>> -----Original Message-----
>> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf Of
>> Mark Thompson
>> Sent: Monday, June 25, 2018 2:26 AM
>> To: ffmpeg-devel@ffmpeg.org
>> Subject: [FFmpeg-devel] [PATCH 1/5] lavfi/colorspace: Add namespace prefix to
>> global functions
>>
>> ---
>>  libavfilter/colorspace.c        | 13 +++++++------
>>  libavfilter/colorspace.h        | 10 ++++++----
>>  libavfilter/vf_colorspace.c     | 22 +++++++++++-----------
>>  libavfilter/vf_tonemap_opencl.c |  8 ++++----
>>  4 files changed, 28 insertions(+), 25 deletions(-)
>>
>> ...
>> --- a/libavfilter/colorspace.h
>> +++ b/libavfilter/colorspace.h
>> @@ -34,8 +34,10 @@ struct WhitepointCoefficients {
>>      double xw, yw;
>>  };
>>
>> -void invert_matrix3x3(const double in[3][3], double out[3][3]);
>> -void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3]);
>> -void fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
>> -                        const struct WhitepointCoefficients *wp, double rgb2xyz[3][3]);
>> +void ff_invert_matrix3x3(const double in[3][3], double out[3][3]);
>> +void ff_mul3x3(double dst[3][3],
>> +               const double src1[3][3], const double src2[3][3]);
>> +void ff_fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
>> +                           const struct WhitepointCoefficients *wp,
>> +                           double rgb2xyz[3][3]);
> I am basically ok with the patch. But I am not sure whether below function names would be more applicable as now they are under 'ff_' prefix.
> ff_matrix_inverse_3x3()
> ff_matrix_mul_3x3()

Yeah, those names would probably be better.

How about this?

- Mark


 libavfilter/colorspace.c        | 13 +++++++------
 libavfilter/colorspace.h        | 10 ++++++----
 libavfilter/vf_colorspace.c     | 22 +++++++++++-----------
 libavfilter/vf_tonemap_opencl.c |  8 ++++----
 4 files changed, 28 insertions(+), 25 deletions(-)

Comments

Ruiling Song June 26, 2018, 12:50 a.m. UTC | #1
> -----Original Message-----

> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf Of

> Mark Thompson

> Sent: Tuesday, June 26, 2018 5:02 AM

> To: ffmpeg-devel@ffmpeg.org

> Subject: [FFmpeg-devel] [PATCH] lavfi/colorspace: Add namespace prefix to

> global functions

> 

> ---

> On 25/06/18 02:34, Song, Ruiling wrote:

> >> -----Original Message-----

> >> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf

> Of

> >> Mark Thompson

> >> Sent: Monday, June 25, 2018 2:26 AM

> >> To: ffmpeg-devel@ffmpeg.org

> >> Subject: [FFmpeg-devel] [PATCH 1/5] lavfi/colorspace: Add namespace prefix

> to

> >> global functions

> >>

> >> ---

> >>  libavfilter/colorspace.c        | 13 +++++++------

> >>  libavfilter/colorspace.h        | 10 ++++++----

> >>  libavfilter/vf_colorspace.c     | 22 +++++++++++-----------

> >>  libavfilter/vf_tonemap_opencl.c |  8 ++++----

> >>  4 files changed, 28 insertions(+), 25 deletions(-)

> >>

> >> ...

> >> --- a/libavfilter/colorspace.h

> >> +++ b/libavfilter/colorspace.h

> >> @@ -34,8 +34,10 @@ struct WhitepointCoefficients {

> >>      double xw, yw;

> >>  };

> >>

> >> -void invert_matrix3x3(const double in[3][3], double out[3][3]);

> >> -void mul3x3(double dst[3][3], const double src1[3][3], const double

> src2[3][3]);

> >> -void fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,

> >> -                        const struct WhitepointCoefficients *wp, double rgb2xyz[3][3]);

> >> +void ff_invert_matrix3x3(const double in[3][3], double out[3][3]);

> >> +void ff_mul3x3(double dst[3][3],

> >> +               const double src1[3][3], const double src2[3][3]);

> >> +void ff_fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,

> >> +                           const struct WhitepointCoefficients *wp,

> >> +                           double rgb2xyz[3][3]);

> > I am basically ok with the patch. But I am not sure whether below function

> names would be more applicable as now they are under 'ff_' prefix.

> > ff_matrix_inverse_3x3()

> > ff_matrix_mul_3x3()

> 

> Yeah, those names would probably be better.

> 

> How about this?

This version LGTM!

Ruiling

> 

> - Mark

> 

> 

>  libavfilter/colorspace.c        | 13 +++++++------

>  libavfilter/colorspace.h        | 10 ++++++----

>  libavfilter/vf_colorspace.c     | 22 +++++++++++-----------

>  libavfilter/vf_tonemap_opencl.c |  8 ++++----

>  4 files changed, 28 insertions(+), 25 deletions(-)

> 

> diff --git a/libavfilter/colorspace.c b/libavfilter/colorspace.c

> index 7fd7bdf0d9..45da1dd124 100644

> --- a/libavfilter/colorspace.c

> +++ b/libavfilter/colorspace.c

> @@ -20,7 +20,7 @@

>  #include "colorspace.h"

> 

> 

> -void invert_matrix3x3(const double in[3][3], double out[3][3])

> +void ff_matrix_invert_3x3(const double in[3][3], double out[3][3])

>  {

>      double m00 = in[0][0], m01 = in[0][1], m02 = in[0][2],

>             m10 = in[1][0], m11 = in[1][1], m12 = in[1][2],

> @@ -47,7 +47,8 @@ void invert_matrix3x3(const double in[3][3], double

> out[3][3])

>      }

>  }

> 

> -void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])

> +void ff_matrix_mul_3x3(double dst[3][3],

> +               const double src1[3][3], const double src2[3][3])

>  {

>      int m, n;

> 

> @@ -60,9 +61,9 @@ void mul3x3(double dst[3][3], const double src1[3][3],

> const double src2[3][3])

>  /*

>   * see e.g.

> http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html

>   */

> -void fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,

> -                        const struct WhitepointCoefficients *wp,

> -                        double rgb2xyz[3][3])

> +void ff_fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,

> +                           const struct WhitepointCoefficients *wp,

> +                           double rgb2xyz[3][3])

>  {

>      double i[3][3], sr, sg, sb, zw;

> 

> @@ -73,7 +74,7 @@ void fill_rgb2xyz_table(const struct PrimaryCoefficients

> *coeffs,

>      rgb2xyz[2][0] = (1.0 - coeffs->xr - coeffs->yr) / coeffs->yr;

>      rgb2xyz[2][1] = (1.0 - coeffs->xg - coeffs->yg) / coeffs->yg;

>      rgb2xyz[2][2] = (1.0 - coeffs->xb - coeffs->yb) / coeffs->yb;

> -    invert_matrix3x3(rgb2xyz, i);

> +    ff_matrix_invert_3x3(rgb2xyz, i);

>      zw = 1.0 - wp->xw - wp->yw;

>      sr = i[0][0] * wp->xw + i[0][1] * wp->yw + i[0][2] * zw;

>      sg = i[1][0] * wp->xw + i[1][1] * wp->yw + i[1][2] * zw;

> diff --git a/libavfilter/colorspace.h b/libavfilter/colorspace.h

> index d330917bd3..9d45ee2366 100644

> --- a/libavfilter/colorspace.h

> +++ b/libavfilter/colorspace.h

> @@ -34,8 +34,10 @@ struct WhitepointCoefficients {

>      double xw, yw;

>  };

> 

> -void invert_matrix3x3(const double in[3][3], double out[3][3]);

> -void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3]);

> -void fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,

> -                        const struct WhitepointCoefficients *wp, double rgb2xyz[3][3]);

> +void ff_matrix_invert_3x3(const double in[3][3], double out[3][3]);

> +void ff_matrix_mul_3x3(double dst[3][3],

> +               const double src1[3][3], const double src2[3][3]);

> +void ff_fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,

> +                           const struct WhitepointCoefficients *wp,

> +                           double rgb2xyz[3][3]);

>  #endif

> diff --git a/libavfilter/vf_colorspace.c b/libavfilter/vf_colorspace.c

> index b593215daa..56621d15e2 100644

> --- a/libavfilter/vf_colorspace.c

> +++ b/libavfilter/vf_colorspace.c

> @@ -371,7 +371,7 @@ static void fill_whitepoint_conv_table(double out[3][3],

> enum WhitepointAdaptati

>      double mai[3][3], fac[3][3], tmp[3][3];

>      double rs, gs, bs, rd, gd, bd;

> 

> -    invert_matrix3x3(ma, mai);

> +    ff_matrix_invert_3x3(ma, mai);

>      rs = ma[0][0] * wp_src->xw + ma[0][1] * wp_src->yw + ma[0][2] * zw_src;

>      gs = ma[1][0] * wp_src->xw + ma[1][1] * wp_src->yw + ma[1][2] * zw_src;

>      bs = ma[2][0] * wp_src->xw + ma[2][1] * wp_src->yw + ma[2][2] * zw_src;

> @@ -382,8 +382,8 @@ static void fill_whitepoint_conv_table(double out[3][3],

> enum WhitepointAdaptati

>      fac[1][1] = gd / gs;

>      fac[2][2] = bd / bs;

>      fac[0][1] = fac[0][2] = fac[1][0] = fac[1][2] = fac[2][0] = fac[2][1] = 0.0;

> -    mul3x3(tmp, ma, fac);

> -    mul3x3(out, tmp, mai);

> +    ff_matrix_mul_3x3(tmp, ma, fac);

> +    ff_matrix_mul_3x3(out, tmp, mai);

>  }

> 

>  static void apply_lut(int16_t *buf[3], ptrdiff_t stride,

> @@ -588,19 +588,19 @@ static int create_filtergraph(AVFilterContext *ctx,

> 

>              wp_out = &whitepoint_coefficients[s->out_primaries->wp];

>              wp_in = &whitepoint_coefficients[s->in_primaries->wp];

> -            fill_rgb2xyz_table(&s->out_primaries->coeff, wp_out, rgb2xyz);

> -            invert_matrix3x3(rgb2xyz, xyz2rgb);

> -            fill_rgb2xyz_table(&s->in_primaries->coeff, wp_in, rgb2xyz);

> +            ff_fill_rgb2xyz_table(&s->out_primaries->coeff, wp_out, rgb2xyz);

> +            ff_matrix_invert_3x3(rgb2xyz, xyz2rgb);

> +            ff_fill_rgb2xyz_table(&s->in_primaries->coeff, wp_in, rgb2xyz);

>              if (s->out_primaries->wp != s->in_primaries->wp &&

>                  s->wp_adapt != WP_ADAPT_IDENTITY) {

>                  double wpconv[3][3], tmp[3][3];

> 

>                  fill_whitepoint_conv_table(wpconv, s->wp_adapt, s->in_primaries->wp,

>                                             s->out_primaries->wp);

> -                mul3x3(tmp, rgb2xyz, wpconv);

> -                mul3x3(rgb2rgb, tmp, xyz2rgb);

> +                ff_matrix_mul_3x3(tmp, rgb2xyz, wpconv);

> +                ff_matrix_mul_3x3(rgb2rgb, tmp, xyz2rgb);

>              } else {

> -                mul3x3(rgb2rgb, rgb2xyz, xyz2rgb);

> +                ff_matrix_mul_3x3(rgb2rgb, rgb2xyz, xyz2rgb);

>              }

>              for (m = 0; m < 3; m++)

>                  for (n = 0; n < 3; n++) {

> @@ -725,7 +725,7 @@ static int create_filtergraph(AVFilterContext *ctx,

>              for (n = 0; n < 8; n++)

>                  s->yuv_offset[0][n] = off;

>              fill_rgb2yuv_table(s->in_lumacoef, rgb2yuv);

> -            invert_matrix3x3(rgb2yuv, yuv2rgb);

> +            ff_matrix_invert_3x3(rgb2yuv, yuv2rgb);

>              bits = 1 << (in_desc->comp[0].depth - 1);

>              for (n = 0; n < 3; n++) {

>                  for (in_rng = s->in_y_rng, m = 0; m < 3; m++, in_rng = s->in_uv_rng) {

> @@ -781,7 +781,7 @@ static int create_filtergraph(AVFilterContext *ctx,

>              double yuv2yuv[3][3];

>              int in_rng, out_rng;

> 

> -            mul3x3(yuv2yuv, yuv2rgb, rgb2yuv);

> +            ff_matrix_mul_3x3(yuv2yuv, yuv2rgb, rgb2yuv);

>              for (out_rng = s->out_y_rng, m = 0; m < 3; m++, out_rng = s->out_uv_rng)

> {

>                  for (in_rng = s->in_y_rng, n = 0; n < 3; n++, in_rng = s->in_uv_rng) {

>                      s->yuv2yuv_coeffs[m][n][0] =

> diff --git a/libavfilter/vf_tonemap_opencl.c b/libavfilter/vf_tonemap_opencl.c

> index 6063456d28..36c7fbe774 100644

> --- a/libavfilter/vf_tonemap_opencl.c

> +++ b/libavfilter/vf_tonemap_opencl.c

> @@ -124,10 +124,10 @@ static void get_rgb2rgb_matrix(enum

> AVColorPrimaries in, enum AVColorPrimaries o

>                                 double rgb2rgb[3][3]) {

>      double rgb2xyz[3][3], xyz2rgb[3][3];

> 

> -    fill_rgb2xyz_table(&primaries_table[out], &whitepoint_table[out], rgb2xyz);

> -    invert_matrix3x3(rgb2xyz, xyz2rgb);

> -    fill_rgb2xyz_table(&primaries_table[in], &whitepoint_table[in], rgb2xyz);

> -    mul3x3(rgb2rgb, rgb2xyz, xyz2rgb);

> +    ff_fill_rgb2xyz_table(&primaries_table[out], &whitepoint_table[out],

> rgb2xyz);

> +    ff_matrix_invert_3x3(rgb2xyz, xyz2rgb);

> +    ff_fill_rgb2xyz_table(&primaries_table[in], &whitepoint_table[in], rgb2xyz);

> +    ff_matrix_mul_3x3(rgb2rgb, rgb2xyz, xyz2rgb);

>  }

> 

>  #define OPENCL_SOURCE_NB 3

> --

> 2.18.0

> _______________________________________________

> ffmpeg-devel mailing list

> ffmpeg-devel@ffmpeg.org

> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Mark Thompson June 28, 2018, 3:36 p.m. UTC | #2
On 26/06/18 01:50, Song, Ruiling wrote:
>> -----Original Message-----
>> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf Of
>> Mark Thompson
>> Sent: Tuesday, June 26, 2018 5:02 AM
>> To: ffmpeg-devel@ffmpeg.org
>> Subject: [FFmpeg-devel] [PATCH] lavfi/colorspace: Add namespace prefix to
>> global functions
>>
>> ---
>> On 25/06/18 02:34, Song, Ruiling wrote:
>>>> -----Original Message-----
>>>> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf
>> Of
>>>> Mark Thompson
>>>> Sent: Monday, June 25, 2018 2:26 AM
>>>> To: ffmpeg-devel@ffmpeg.org
>>>> Subject: [FFmpeg-devel] [PATCH 1/5] lavfi/colorspace: Add namespace prefix
>> to
>>>> global functions
>>>>
>>>> ---
>>>>  libavfilter/colorspace.c        | 13 +++++++------
>>>>  libavfilter/colorspace.h        | 10 ++++++----
>>>>  libavfilter/vf_colorspace.c     | 22 +++++++++++-----------
>>>>  libavfilter/vf_tonemap_opencl.c |  8 ++++----
>>>>  4 files changed, 28 insertions(+), 25 deletions(-)
>>>>
>>>> ...
>>>> --- a/libavfilter/colorspace.h
>>>> +++ b/libavfilter/colorspace.h
>>>> @@ -34,8 +34,10 @@ struct WhitepointCoefficients {
>>>>      double xw, yw;
>>>>  };
>>>>
>>>> -void invert_matrix3x3(const double in[3][3], double out[3][3]);
>>>> -void mul3x3(double dst[3][3], const double src1[3][3], const double
>> src2[3][3]);
>>>> -void fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
>>>> -                        const struct WhitepointCoefficients *wp, double rgb2xyz[3][3]);
>>>> +void ff_invert_matrix3x3(const double in[3][3], double out[3][3]);
>>>> +void ff_mul3x3(double dst[3][3],
>>>> +               const double src1[3][3], const double src2[3][3]);
>>>> +void ff_fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
>>>> +                           const struct WhitepointCoefficients *wp,
>>>> +                           double rgb2xyz[3][3]);
>>> I am basically ok with the patch. But I am not sure whether below function
>> names would be more applicable as now they are under 'ff_' prefix.
>>> ff_matrix_inverse_3x3()
>>> ff_matrix_mul_3x3()
>>
>> Yeah, those names would probably be better.
>>
>> How about this?
> This version LGTM!

Applied.

Thanks,

- Mark
diff mbox

Patch

diff --git a/libavfilter/colorspace.c b/libavfilter/colorspace.c
index 7fd7bdf0d9..45da1dd124 100644
--- a/libavfilter/colorspace.c
+++ b/libavfilter/colorspace.c
@@ -20,7 +20,7 @@ 
 #include "colorspace.h"
 
 
-void invert_matrix3x3(const double in[3][3], double out[3][3])
+void ff_matrix_invert_3x3(const double in[3][3], double out[3][3])
 {
     double m00 = in[0][0], m01 = in[0][1], m02 = in[0][2],
            m10 = in[1][0], m11 = in[1][1], m12 = in[1][2],
@@ -47,7 +47,8 @@  void invert_matrix3x3(const double in[3][3], double out[3][3])
     }
 }
 
-void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
+void ff_matrix_mul_3x3(double dst[3][3],
+               const double src1[3][3], const double src2[3][3])
 {
     int m, n;
 
@@ -60,9 +61,9 @@  void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
 /*
  * see e.g. http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
  */
-void fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
-                        const struct WhitepointCoefficients *wp,
-                        double rgb2xyz[3][3])
+void ff_fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
+                           const struct WhitepointCoefficients *wp,
+                           double rgb2xyz[3][3])
 {
     double i[3][3], sr, sg, sb, zw;
 
@@ -73,7 +74,7 @@  void fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
     rgb2xyz[2][0] = (1.0 - coeffs->xr - coeffs->yr) / coeffs->yr;
     rgb2xyz[2][1] = (1.0 - coeffs->xg - coeffs->yg) / coeffs->yg;
     rgb2xyz[2][2] = (1.0 - coeffs->xb - coeffs->yb) / coeffs->yb;
-    invert_matrix3x3(rgb2xyz, i);
+    ff_matrix_invert_3x3(rgb2xyz, i);
     zw = 1.0 - wp->xw - wp->yw;
     sr = i[0][0] * wp->xw + i[0][1] * wp->yw + i[0][2] * zw;
     sg = i[1][0] * wp->xw + i[1][1] * wp->yw + i[1][2] * zw;
diff --git a/libavfilter/colorspace.h b/libavfilter/colorspace.h
index d330917bd3..9d45ee2366 100644
--- a/libavfilter/colorspace.h
+++ b/libavfilter/colorspace.h
@@ -34,8 +34,10 @@  struct WhitepointCoefficients {
     double xw, yw;
 };
 
-void invert_matrix3x3(const double in[3][3], double out[3][3]);
-void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3]);
-void fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
-                        const struct WhitepointCoefficients *wp, double rgb2xyz[3][3]);
+void ff_matrix_invert_3x3(const double in[3][3], double out[3][3]);
+void ff_matrix_mul_3x3(double dst[3][3],
+               const double src1[3][3], const double src2[3][3]);
+void ff_fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
+                           const struct WhitepointCoefficients *wp,
+                           double rgb2xyz[3][3]);
 #endif
diff --git a/libavfilter/vf_colorspace.c b/libavfilter/vf_colorspace.c
index b593215daa..56621d15e2 100644
--- a/libavfilter/vf_colorspace.c
+++ b/libavfilter/vf_colorspace.c
@@ -371,7 +371,7 @@  static void fill_whitepoint_conv_table(double out[3][3], enum WhitepointAdaptati
     double mai[3][3], fac[3][3], tmp[3][3];
     double rs, gs, bs, rd, gd, bd;
 
-    invert_matrix3x3(ma, mai);
+    ff_matrix_invert_3x3(ma, mai);
     rs = ma[0][0] * wp_src->xw + ma[0][1] * wp_src->yw + ma[0][2] * zw_src;
     gs = ma[1][0] * wp_src->xw + ma[1][1] * wp_src->yw + ma[1][2] * zw_src;
     bs = ma[2][0] * wp_src->xw + ma[2][1] * wp_src->yw + ma[2][2] * zw_src;
@@ -382,8 +382,8 @@  static void fill_whitepoint_conv_table(double out[3][3], enum WhitepointAdaptati
     fac[1][1] = gd / gs;
     fac[2][2] = bd / bs;
     fac[0][1] = fac[0][2] = fac[1][0] = fac[1][2] = fac[2][0] = fac[2][1] = 0.0;
-    mul3x3(tmp, ma, fac);
-    mul3x3(out, tmp, mai);
+    ff_matrix_mul_3x3(tmp, ma, fac);
+    ff_matrix_mul_3x3(out, tmp, mai);
 }
 
 static void apply_lut(int16_t *buf[3], ptrdiff_t stride,
@@ -588,19 +588,19 @@  static int create_filtergraph(AVFilterContext *ctx,
 
             wp_out = &whitepoint_coefficients[s->out_primaries->wp];
             wp_in = &whitepoint_coefficients[s->in_primaries->wp];
-            fill_rgb2xyz_table(&s->out_primaries->coeff, wp_out, rgb2xyz);
-            invert_matrix3x3(rgb2xyz, xyz2rgb);
-            fill_rgb2xyz_table(&s->in_primaries->coeff, wp_in, rgb2xyz);
+            ff_fill_rgb2xyz_table(&s->out_primaries->coeff, wp_out, rgb2xyz);
+            ff_matrix_invert_3x3(rgb2xyz, xyz2rgb);
+            ff_fill_rgb2xyz_table(&s->in_primaries->coeff, wp_in, rgb2xyz);
             if (s->out_primaries->wp != s->in_primaries->wp &&
                 s->wp_adapt != WP_ADAPT_IDENTITY) {
                 double wpconv[3][3], tmp[3][3];
 
                 fill_whitepoint_conv_table(wpconv, s->wp_adapt, s->in_primaries->wp,
                                            s->out_primaries->wp);
-                mul3x3(tmp, rgb2xyz, wpconv);
-                mul3x3(rgb2rgb, tmp, xyz2rgb);
+                ff_matrix_mul_3x3(tmp, rgb2xyz, wpconv);
+                ff_matrix_mul_3x3(rgb2rgb, tmp, xyz2rgb);
             } else {
-                mul3x3(rgb2rgb, rgb2xyz, xyz2rgb);
+                ff_matrix_mul_3x3(rgb2rgb, rgb2xyz, xyz2rgb);
             }
             for (m = 0; m < 3; m++)
                 for (n = 0; n < 3; n++) {
@@ -725,7 +725,7 @@  static int create_filtergraph(AVFilterContext *ctx,
             for (n = 0; n < 8; n++)
                 s->yuv_offset[0][n] = off;
             fill_rgb2yuv_table(s->in_lumacoef, rgb2yuv);
-            invert_matrix3x3(rgb2yuv, yuv2rgb);
+            ff_matrix_invert_3x3(rgb2yuv, yuv2rgb);
             bits = 1 << (in_desc->comp[0].depth - 1);
             for (n = 0; n < 3; n++) {
                 for (in_rng = s->in_y_rng, m = 0; m < 3; m++, in_rng = s->in_uv_rng) {
@@ -781,7 +781,7 @@  static int create_filtergraph(AVFilterContext *ctx,
             double yuv2yuv[3][3];
             int in_rng, out_rng;
 
-            mul3x3(yuv2yuv, yuv2rgb, rgb2yuv);
+            ff_matrix_mul_3x3(yuv2yuv, yuv2rgb, rgb2yuv);
             for (out_rng = s->out_y_rng, m = 0; m < 3; m++, out_rng = s->out_uv_rng) {
                 for (in_rng = s->in_y_rng, n = 0; n < 3; n++, in_rng = s->in_uv_rng) {
                     s->yuv2yuv_coeffs[m][n][0] =
diff --git a/libavfilter/vf_tonemap_opencl.c b/libavfilter/vf_tonemap_opencl.c
index 6063456d28..36c7fbe774 100644
--- a/libavfilter/vf_tonemap_opencl.c
+++ b/libavfilter/vf_tonemap_opencl.c
@@ -124,10 +124,10 @@  static void get_rgb2rgb_matrix(enum AVColorPrimaries in, enum AVColorPrimaries o
                                double rgb2rgb[3][3]) {
     double rgb2xyz[3][3], xyz2rgb[3][3];
 
-    fill_rgb2xyz_table(&primaries_table[out], &whitepoint_table[out], rgb2xyz);
-    invert_matrix3x3(rgb2xyz, xyz2rgb);
-    fill_rgb2xyz_table(&primaries_table[in], &whitepoint_table[in], rgb2xyz);
-    mul3x3(rgb2rgb, rgb2xyz, xyz2rgb);
+    ff_fill_rgb2xyz_table(&primaries_table[out], &whitepoint_table[out], rgb2xyz);
+    ff_matrix_invert_3x3(rgb2xyz, xyz2rgb);
+    ff_fill_rgb2xyz_table(&primaries_table[in], &whitepoint_table[in], rgb2xyz);
+    ff_matrix_mul_3x3(rgb2rgb, rgb2xyz, xyz2rgb);
 }
 
 #define OPENCL_SOURCE_NB 3