[FFmpeg-devel] [PATCH 1/2] avfilter/transform: Stop exporting internal functions

James Almer jamrial at gmail.com
Wed Feb 24 16:48:56 EET 2021


On 2/24/2021 11:22 AM, Andreas Rheinhardt wrote:
> avfilter_transform, avfilter_(add|sub|mult)_matrix are not part of the
> public API (transform.h is not a public header), yet they are currently
> exported because of their name. This commit changes this:
> avfilter_transform is renamed to ff_affine_transform; the other
> functions are just removed as they have never been used at all.

The symbols are exported and have been in four releases so far for this 
soname. If we plan on making a 4.4 release before the bump, it may be a 
good idea if we keep the symbols around for the sake of not affecting 
the ABI, so I'm inclined towards just wrapping them in a 
LIBAVFILTER_VERSION_MAJOR < 8 check like we do when we remove avpriv ones.

> 
> Found-by: Anton Khirnov <anton at khirnov.net>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
>   libavfilter/transform.c  | 23 +----------------------
>   libavfilter/transform.h  | 29 +----------------------------
>   libavfilter/vf_deshake.c |  5 +++--
>   3 files changed, 5 insertions(+), 52 deletions(-)
> 
> diff --git a/libavfilter/transform.c b/libavfilter/transform.c
> index f4f9e0a47d..1f91436f73 100644
> --- a/libavfilter/transform.c
> +++ b/libavfilter/transform.c
> @@ -122,28 +122,7 @@ void ff_get_matrix(
>       matrix[8] = 1;
>   }
>   
> -void avfilter_add_matrix(const float *m1, const float *m2, float *result)
> -{
> -    int i;
> -    for (i = 0; i < 9; i++)
> -        result[i] = m1[i] + m2[i];
> -}
> -
> -void avfilter_sub_matrix(const float *m1, const float *m2, float *result)
> -{
> -    int i;
> -    for (i = 0; i < 9; i++)
> -        result[i] = m1[i] - m2[i];
> -}
> -
> -void avfilter_mul_matrix(const float *m1, float scalar, float *result)
> -{
> -    int i;
> -    for (i = 0; i < 9; i++)
> -        result[i] = m1[i] * scalar;
> -}
> -
> -int avfilter_transform(const uint8_t *src, uint8_t *dst,
> +int ff_affine_transform(const uint8_t *src, uint8_t *dst,
>                           int src_stride, int dst_stride,
>                           int width, int height, const float *matrix,
>                           enum InterpolateMethod interpolate,
> diff --git a/libavfilter/transform.h b/libavfilter/transform.h
> index 9b0c19ceca..0344f9c228 100644
> --- a/libavfilter/transform.h
> +++ b/libavfilter/transform.h
> @@ -83,33 +83,6 @@ void ff_get_matrix(
>       float *matrix
>   );
>   
> -/**
> - * Add two matrices together. result = m1 + m2.
> - *
> - * @param m1     9-item transformation matrix
> - * @param m2     9-item transformation matrix
> - * @param result 9-item transformation matrix
> - */
> -void avfilter_add_matrix(const float *m1, const float *m2, float *result);
> -
> -/**
> - * Subtract one matrix from another. result = m1 - m2.
> - *
> - * @param m1     9-item transformation matrix
> - * @param m2     9-item transformation matrix
> - * @param result 9-item transformation matrix
> - */
> -void avfilter_sub_matrix(const float *m1, const float *m2, float *result);
> -
> -/**
> - * Multiply a matrix by a scalar value. result = m1 * scalar.
> - *
> - * @param m1     9-item transformation matrix
> - * @param scalar a number
> - * @param result 9-item transformation matrix
> - */
> -void avfilter_mul_matrix(const float *m1, float scalar, float *result);
> -
>   /**
>    * Do an affine transformation with the given interpolation method. This
>    * multiplies each vector [x,y,1] by the matrix and then interpolates to
> @@ -126,7 +99,7 @@ void avfilter_mul_matrix(const float *m1, float scalar, float *result);
>    * @param fill        edge fill method
>    * @return negative on error
>    */
> -int avfilter_transform(const uint8_t *src, uint8_t *dst,
> +int ff_affine_transform(const uint8_t *src, uint8_t *dst,
>                           int src_stride, int dst_stride,
>                           int width, int height, const float *matrix,
>                           enum InterpolateMethod interpolate,
> diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c
> index 28a541b94a..8771399351 100644
> --- a/libavfilter/vf_deshake.c
> +++ b/libavfilter/vf_deshake.c
> @@ -330,8 +330,9 @@ static int deshake_transform_c(AVFilterContext *ctx,
>   
>       for (i = 0; i < 3; i++) {
>           // Transform the luma and chroma planes
> -        ret = avfilter_transform(in->data[i], out->data[i], in->linesize[i], out->linesize[i],
> -                                 plane_w[i], plane_h[i], matrixs[i], interpolate, fill);
> +        ret = ff_affine_transform(in->data[i], out->data[i], in->linesize[i],
> +                                  out->linesize[i], plane_w[i], plane_h[i],
> +                                  matrixs[i], interpolate, fill);
>           if (ret < 0)
>               return ret;
>       }
> 



More information about the ffmpeg-devel mailing list