[FFmpeg-devel] [PATCH v4 01/13] swscale: rename SwsContext to SwsInternal

Michael Niedermayer michael at niedermayer.cc
Tue Oct 29 13:10:56 EET 2024


On Thu, Oct 24, 2024 at 12:25:11PM +0200, Niklas Haas wrote:
> From: Niklas Haas <git at haasn.dev>
> 
> And preserve the public SwsContext as separate name. The motivation here
> is that I want to turn SwsContext into a public struct, while keeping the
> internal implementation hidden. Additionally, I also want to be able to
> use multiple internal implementations, e.g. for GPU devices.
> 
> This commit does not include any functional changes. For the most part, it is
> a simple rename. The only complications arise from the public facing API
> functions, which preserve their current type (and hence require an additional
> unwrapping step internally), and the checkasm test framework, which directly
> accesses SwsInternal.
> 
> For consistency, the affected functions that need to maintain a distionction
> have generally been changed to refer to the SwsContext as *sws, and the
> SwsInternal as *c.
> 
> In an upcoming commit, I will provide a backing definition for the public
> SwsContext, and update `sws_internal()` to dereference the internal struct
> instead of merely casting it.
> 
> Sponsored-by: Sovereign Tech Fund
> Signed-off-by: Niklas Haas <git at haasn.dev>
> ---
>  libswscale/aarch64/hscale.S                   |  10 +-
>  libswscale/aarch64/swscale.c                  |  18 +--
>  libswscale/aarch64/swscale_unscaled.c         |  14 +-
>  libswscale/alphablend.c                       |   2 +-
>  libswscale/arm/swscale.c                      |   4 +-
>  libswscale/arm/swscale_unscaled.c             |  14 +-
>  libswscale/gamma.c                            |   3 +-
>  libswscale/hscale.c                           |  10 +-
>  libswscale/hscale_fast_bilinear.c             |   4 +-
>  libswscale/input.c                            |   2 +-
>  libswscale/loongarch/input_lasx.c             |   2 +-
>  libswscale/loongarch/input_lsx.c              |   2 +-
>  libswscale/loongarch/output_lasx.c            |  22 +--
>  libswscale/loongarch/output_lsx.c             |  22 +--
>  libswscale/loongarch/swscale.S                |   8 +-
>  libswscale/loongarch/swscale_init_loongarch.c |   6 +-
>  libswscale/loongarch/swscale_lasx.c           |   8 +-
>  libswscale/loongarch/swscale_loongarch.h      |  52 +++----
>  libswscale/loongarch/swscale_lsx.c            |   4 +-
>  libswscale/loongarch/yuv2rgb_lasx.c           |   4 +-
>  libswscale/loongarch/yuv2rgb_lsx.c            |   4 +-
>  libswscale/options.c                          |   2 +-
>  libswscale/output.c                           | 110 +++++++--------
>  libswscale/ppc/swscale_altivec.c              |   2 +-
>  libswscale/ppc/swscale_ppc_template.c         |   2 +-
>  libswscale/ppc/swscale_vsx.c                  |  38 +++---
>  libswscale/ppc/yuv2rgb_altivec.c              |  14 +-
>  libswscale/ppc/yuv2rgb_altivec.h              |   2 +-
>  libswscale/ppc/yuv2yuv_altivec.c              |   6 +-
>  libswscale/riscv/swscale.c                    |   4 +-
>  libswscale/slice.c                            |   6 +-
>  libswscale/swscale.c                          | 104 ++++++++------
>  libswscale/swscale_internal.h                 | 128 +++++++++---------
>  libswscale/swscale_unscaled.c                 |  72 +++++-----
>  libswscale/tests/floatimg_cmp.c               |   2 +-
>  libswscale/tests/swscale.c                    |   6 +-
>  libswscale/utils.c                            | 117 ++++++++--------
>  libswscale/vscale.c                           |  14 +-
>  libswscale/x86/hscale_fast_bilinear_simd.c    |   4 +-
>  libswscale/x86/output.asm                     |  18 +--
>  libswscale/x86/scale.asm                      |   2 +-
>  libswscale/x86/scale_avx2.asm                 |   2 +-
>  libswscale/x86/swscale.c                      |  14 +-
>  libswscale/x86/swscale_template.c             |  44 +++---
>  libswscale/x86/w64xmmtest.c                   |   2 +-
>  libswscale/x86/yuv2rgb.c                      |  20 +--
>  libswscale/yuv2rgb.c                          |   6 +-
>  tests/checkasm/sw_gbrp.c                      |  80 ++++++-----
>  tests/checkasm/sw_range_convert.c             |  44 +++---
>  tests/checkasm/sw_rgb.c                       |  22 +--
>  tests/checkasm/sw_scale.c                     |  66 +++++----
>  tests/checkasm/sw_yuv2rgb.c                   |  20 +--
>  tests/checkasm/sw_yuv2yuv.c                   |  20 +--
>  53 files changed, 630 insertions(+), 578 deletions(-)

Sorry for not reviewing this in the last 5 days but it seems
master and this dont like each other

just confirming which branch is the correct one to review
is it swscale4 or swscale5 ro some other ?

thx

Falling back to patching base and 3-way merge...
Auto-merging tests/checkasm/sw_scale.c
CONFLICT (content): Merge conflict in tests/checkasm/sw_scale.c
Auto-merging tests/checkasm/sw_range_convert.c
CONFLICT (content): Merge conflict in tests/checkasm/sw_range_convert.c
Auto-merging tests/checkasm/sw_gbrp.c
Auto-merging libswscale/x86/swscale.c
Auto-merging libswscale/utils.c
Auto-merging libswscale/swscale_internal.h
CONFLICT (content): Merge conflict in libswscale/swscale_internal.h
Auto-merging libswscale/swscale.c
Auto-merging libswscale/riscv/swscale.c
CONFLICT (content): Merge conflict in libswscale/riscv/swscale.c
Auto-merging libswscale/output.c
CONFLICT (content): Merge conflict in libswscale/output.c
Auto-merging libswscale/loongarch/swscale_init_loongarch.c
Auto-merging libswscale/input.c
Auto-merging libswscale/aarch64/swscale.c
error: Failed to merge in the changes.
Patch failed at 0001 swscale: rename SwsContext to SwsInternal
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config advice.mergeConflict false"


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Take away the freedom of one citizen and you will be jailed, take away
the freedom of all citizens and you will be congratulated by your peers
in Parliament.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20241029/ca6ca615/attachment.sig>


More information about the ffmpeg-devel mailing list