mbox series

[FFmpeg-devel,v3,0/5] Fix FFmpeg compilation without DCE

Message ID cover.1667489638.git.amy@amyspark.me
Headers show
Series Fix FFmpeg compilation without DCE | expand

Message

L. E. Segovia Nov. 3, 2022, 4:36 p.m. UTC
Hi all,

This new version is intended to make Patchwork log the set correctly.
(My apologies there, I'm not used to send patches through the command line.)

v3 changes (same as v2):

- Split indentation fixes for hevcdsp_init into its own commit
- Fixed spurious indentation in vf_ssim_init
- Implemented the macro approach for expanding the CONFIG_FOO checks in fftools
- Added the missing HAVE_X86ASM check in vc1dsp_init
- Added a missing HAVE_INLINE_ASM check in hpeldsp_init (see below)
- Fixed the HAVE_X86ASM check wrongly covering the INLINE_FOO clause in hpeldsp_init
- Removed the duplicate HAVE_X86ASM check in me_cmp_init
- Inlined the HAVE_X86ASM and ARCH_X86_64 checks in mlpdsp_init and vf_convolution_init 

L. E. Segovia (5):
  all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2
  avcodec/x86/hevcdsp_init: Fix indentation after the ARCH_FOO changes
  all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO
  all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM
  all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM

 fftools/ffprobe.c                          |  16 +-
 fftools/opt_common.c                       |  12 +-
 libavcodec/x86/aacencdsp_init.c            |   2 +
 libavcodec/x86/aacpsdsp_init.c             |   2 +
 libavcodec/x86/ac3dsp_init.c               |   4 +
 libavcodec/x86/audiodsp_init.c             |   2 +
 libavcodec/x86/bswapdsp_init.c             |   2 +
 libavcodec/x86/cavsdsp.c                   |   2 +
 libavcodec/x86/celt_pvq_init.c             |   2 +
 libavcodec/x86/cfhddsp_init.c              |   2 +
 libavcodec/x86/cfhdencdsp_init.c           |   2 +
 libavcodec/x86/dcadsp_init.c               |   2 +
 libavcodec/x86/dct_init.c                  |   2 +
 libavcodec/x86/dnxhdenc_init.c             |   2 +
 libavcodec/x86/exrdsp_init.c               |   2 +
 libavcodec/x86/fdctdsp_init.c              |   2 +
 libavcodec/x86/fft_init.c                  |   2 +
 libavcodec/x86/flacdsp_init.c              |   8 +-
 libavcodec/x86/g722dsp_init.c              |   2 +
 libavcodec/x86/h263dsp_init.c              |   2 +
 libavcodec/x86/h264_intrapred_init.c       |   2 +
 libavcodec/x86/h264chroma_init.c           |   2 +
 libavcodec/x86/hevcdsp_init.c              | 549 +++++++++++----------
 libavcodec/x86/hpeldsp_init.c              |   4 +
 libavcodec/x86/hpeldsp_vp3_init.c          |   2 +
 libavcodec/x86/huffyuvdsp_init.c           |   2 +
 libavcodec/x86/huffyuvencdsp_init.c        |   2 +
 libavcodec/x86/idctdsp_init.c              |  11 +-
 libavcodec/x86/jpeg2000dsp_init.c          |   2 +
 libavcodec/x86/lossless_videodsp_init.c    |   2 +
 libavcodec/x86/lossless_videoencdsp_init.c |   2 +
 libavcodec/x86/mdct15_init.c               |   2 +
 libavcodec/x86/me_cmp_init.c               |   2 +
 libavcodec/x86/mlpdsp_init.c               |   6 +-
 libavcodec/x86/mpegvideoencdsp_init.c      |   2 +
 libavcodec/x86/opusdsp_init.c              |   2 +
 libavcodec/x86/pixblockdsp_init.c          |   2 +
 libavcodec/x86/pngdsp_init.c               |   2 +
 libavcodec/x86/proresdsp_init.c            |   2 +
 libavcodec/x86/rv34dsp_init.c              |   2 +
 libavcodec/x86/sbcdsp_init.c               |   2 +
 libavcodec/x86/sbrdsp_init.c               |   2 +
 libavcodec/x86/svq1enc_init.c              |   2 +
 libavcodec/x86/utvideodsp_init.c           |   2 +
 libavcodec/x86/v210enc_init.c              |   2 +
 libavcodec/x86/vc1dsp_init.c               |   6 +-
 libavcodec/x86/vorbisdsp_init.c            |   2 +
 libavcodec/x86/vp3dsp_init.c               |   2 +
 libavcodec/x86/vp6dsp_init.c               |   2 +
 libavfilter/x86/af_afir_init.c             |   2 +
 libavfilter/x86/af_anlmdn_init.c           |   2 +
 libavfilter/x86/af_volume_init.c           |   2 +
 libavfilter/x86/avf_showcqt_init.c         |   2 +
 libavfilter/x86/colorspacedsp_init.c       |   6 +-
 libavfilter/x86/vf_atadenoise_init.c       |   8 +-
 libavfilter/x86/vf_blend_init.c            |   2 +
 libavfilter/x86/vf_bwdif_init.c            |   2 +
 libavfilter/x86/vf_convolution_init.c      |   2 +-
 libavfilter/x86/vf_framerate_init.c        |   2 +
 libavfilter/x86/vf_fspp_init.c             |   2 +
 libavfilter/x86/vf_gblur_init.c            |   2 +
 libavfilter/x86/vf_hflip_init.c            |   2 +
 libavfilter/x86/vf_limiter_init.c          |   2 +
 libavfilter/x86/vf_maskedclamp_init.c      |   2 +
 libavfilter/x86/vf_maskedmerge_init.c      |   2 +
 libavfilter/x86/vf_overlay_init.c          |   2 +
 libavfilter/x86/vf_pp7_init.c              |   2 +
 libavfilter/x86/vf_psnr_init.c             |   2 +
 libavfilter/x86/vf_removegrain_init.c      |   2 +
 libavfilter/x86/vf_ssim_init.c             |   6 +-
 libavfilter/x86/vf_stereo3d_init.c         |   2 +
 libavfilter/x86/vf_threshold_init.c        |   2 +
 libavfilter/x86/vf_tinterlace_init.c       |   2 +
 libavfilter/x86/vf_transpose_init.c        |   2 +
 libavfilter/x86/vf_v360_init.c             |   2 +
 libavfilter/x86/vf_w3fdif_init.c           |   6 +-
 libavfilter/x86/vf_yadif_init.c            |   2 +
 libavformat/rtmpproto.c                    |  24 +-
 libavutil/x86/fixed_dsp_init.c             |   2 +
 libavutil/x86/float_dsp_init.c             |   2 +
 libavutil/x86/imgutils_init.c              |   2 +
 libavutil/x86/lls_init.c                   |   2 +
 libavutil/x86/pixelutils_init.c            |   2 +
 libswresample/x86/audio_convert_init.c     |   2 +
 libswresample/x86/resample_init.c          |   6 +
 libswscale/x86/rgb2rgb.c                   |   2 +
 libswscale/x86/swscale.c                   |   2 +
 87 files changed, 517 insertions(+), 299 deletions(-)

Comments

L. E. Segovia Nov. 7, 2022, 2:48 p.m. UTC | #1
Ping for review.

amyspark

On 03/11/2022 13:36, L. E. Segovia wrote:
> Hi all,
> 
> This new version is intended to make Patchwork log the set correctly.
> (My apologies there, I'm not used to send patches through the command line.)
> 
> v3 changes (same as v2):
> 
> - Split indentation fixes for hevcdsp_init into its own commit
> - Fixed spurious indentation in vf_ssim_init
> - Implemented the macro approach for expanding the CONFIG_FOO checks in fftools
> - Added the missing HAVE_X86ASM check in vc1dsp_init
> - Added a missing HAVE_INLINE_ASM check in hpeldsp_init (see below)
> - Fixed the HAVE_X86ASM check wrongly covering the INLINE_FOO clause in hpeldsp_init
> - Removed the duplicate HAVE_X86ASM check in me_cmp_init
> - Inlined the HAVE_X86ASM and ARCH_X86_64 checks in mlpdsp_init and vf_convolution_init 
> 
> L. E. Segovia (5):
>   all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2
>   avcodec/x86/hevcdsp_init: Fix indentation after the ARCH_FOO changes
>   all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO
>   all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM
>   all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM
> 
>  fftools/ffprobe.c                          |  16 +-
>  fftools/opt_common.c                       |  12 +-
>  libavcodec/x86/aacencdsp_init.c            |   2 +
>  libavcodec/x86/aacpsdsp_init.c             |   2 +
>  libavcodec/x86/ac3dsp_init.c               |   4 +
>  libavcodec/x86/audiodsp_init.c             |   2 +
>  libavcodec/x86/bswapdsp_init.c             |   2 +
>  libavcodec/x86/cavsdsp.c                   |   2 +
>  libavcodec/x86/celt_pvq_init.c             |   2 +
>  libavcodec/x86/cfhddsp_init.c              |   2 +
>  libavcodec/x86/cfhdencdsp_init.c           |   2 +
>  libavcodec/x86/dcadsp_init.c               |   2 +
>  libavcodec/x86/dct_init.c                  |   2 +
>  libavcodec/x86/dnxhdenc_init.c             |   2 +
>  libavcodec/x86/exrdsp_init.c               |   2 +
>  libavcodec/x86/fdctdsp_init.c              |   2 +
>  libavcodec/x86/fft_init.c                  |   2 +
>  libavcodec/x86/flacdsp_init.c              |   8 +-
>  libavcodec/x86/g722dsp_init.c              |   2 +
>  libavcodec/x86/h263dsp_init.c              |   2 +
>  libavcodec/x86/h264_intrapred_init.c       |   2 +
>  libavcodec/x86/h264chroma_init.c           |   2 +
>  libavcodec/x86/hevcdsp_init.c              | 549 +++++++++++----------
>  libavcodec/x86/hpeldsp_init.c              |   4 +
>  libavcodec/x86/hpeldsp_vp3_init.c          |   2 +
>  libavcodec/x86/huffyuvdsp_init.c           |   2 +
>  libavcodec/x86/huffyuvencdsp_init.c        |   2 +
>  libavcodec/x86/idctdsp_init.c              |  11 +-
>  libavcodec/x86/jpeg2000dsp_init.c          |   2 +
>  libavcodec/x86/lossless_videodsp_init.c    |   2 +
>  libavcodec/x86/lossless_videoencdsp_init.c |   2 +
>  libavcodec/x86/mdct15_init.c               |   2 +
>  libavcodec/x86/me_cmp_init.c               |   2 +
>  libavcodec/x86/mlpdsp_init.c               |   6 +-
>  libavcodec/x86/mpegvideoencdsp_init.c      |   2 +
>  libavcodec/x86/opusdsp_init.c              |   2 +
>  libavcodec/x86/pixblockdsp_init.c          |   2 +
>  libavcodec/x86/pngdsp_init.c               |   2 +
>  libavcodec/x86/proresdsp_init.c            |   2 +
>  libavcodec/x86/rv34dsp_init.c              |   2 +
>  libavcodec/x86/sbcdsp_init.c               |   2 +
>  libavcodec/x86/sbrdsp_init.c               |   2 +
>  libavcodec/x86/svq1enc_init.c              |   2 +
>  libavcodec/x86/utvideodsp_init.c           |   2 +
>  libavcodec/x86/v210enc_init.c              |   2 +
>  libavcodec/x86/vc1dsp_init.c               |   6 +-
>  libavcodec/x86/vorbisdsp_init.c            |   2 +
>  libavcodec/x86/vp3dsp_init.c               |   2 +
>  libavcodec/x86/vp6dsp_init.c               |   2 +
>  libavfilter/x86/af_afir_init.c             |   2 +
>  libavfilter/x86/af_anlmdn_init.c           |   2 +
>  libavfilter/x86/af_volume_init.c           |   2 +
>  libavfilter/x86/avf_showcqt_init.c         |   2 +
>  libavfilter/x86/colorspacedsp_init.c       |   6 +-
>  libavfilter/x86/vf_atadenoise_init.c       |   8 +-
>  libavfilter/x86/vf_blend_init.c            |   2 +
>  libavfilter/x86/vf_bwdif_init.c            |   2 +
>  libavfilter/x86/vf_convolution_init.c      |   2 +-
>  libavfilter/x86/vf_framerate_init.c        |   2 +
>  libavfilter/x86/vf_fspp_init.c             |   2 +
>  libavfilter/x86/vf_gblur_init.c            |   2 +
>  libavfilter/x86/vf_hflip_init.c            |   2 +
>  libavfilter/x86/vf_limiter_init.c          |   2 +
>  libavfilter/x86/vf_maskedclamp_init.c      |   2 +
>  libavfilter/x86/vf_maskedmerge_init.c      |   2 +
>  libavfilter/x86/vf_overlay_init.c          |   2 +
>  libavfilter/x86/vf_pp7_init.c              |   2 +
>  libavfilter/x86/vf_psnr_init.c             |   2 +
>  libavfilter/x86/vf_removegrain_init.c      |   2 +
>  libavfilter/x86/vf_ssim_init.c             |   6 +-
>  libavfilter/x86/vf_stereo3d_init.c         |   2 +
>  libavfilter/x86/vf_threshold_init.c        |   2 +
>  libavfilter/x86/vf_tinterlace_init.c       |   2 +
>  libavfilter/x86/vf_transpose_init.c        |   2 +
>  libavfilter/x86/vf_v360_init.c             |   2 +
>  libavfilter/x86/vf_w3fdif_init.c           |   6 +-
>  libavfilter/x86/vf_yadif_init.c            |   2 +
>  libavformat/rtmpproto.c                    |  24 +-
>  libavutil/x86/fixed_dsp_init.c             |   2 +
>  libavutil/x86/float_dsp_init.c             |   2 +
>  libavutil/x86/imgutils_init.c              |   2 +
>  libavutil/x86/lls_init.c                   |   2 +
>  libavutil/x86/pixelutils_init.c            |   2 +
>  libswresample/x86/audio_convert_init.c     |   2 +
>  libswresample/x86/resample_init.c          |   6 +
>  libswscale/x86/rgb2rgb.c                   |   2 +
>  libswscale/x86/swscale.c                   |   2 +
>  87 files changed, 517 insertions(+), 299 deletions(-)
>
L. E. Segovia Nov. 17, 2022, 10:45 p.m. UTC | #2
Renewing ping. CC Andreas and Lynne since they were interested previously.

amyspark

On 07/11/2022 11:48, L. E. Segovia wrote:
> Ping for review.
> 
> amyspark
> 
> On 03/11/2022 13:36, L. E. Segovia wrote:
>> Hi all,
>>
>> This new version is intended to make Patchwork log the set correctly.
>> (My apologies there, I'm not used to send patches through the command line.)
>>
>> v3 changes (same as v2):
>>
>> - Split indentation fixes for hevcdsp_init into its own commit
>> - Fixed spurious indentation in vf_ssim_init
>> - Implemented the macro approach for expanding the CONFIG_FOO checks in fftools
>> - Added the missing HAVE_X86ASM check in vc1dsp_init
>> - Added a missing HAVE_INLINE_ASM check in hpeldsp_init (see below)
>> - Fixed the HAVE_X86ASM check wrongly covering the INLINE_FOO clause in hpeldsp_init
>> - Removed the duplicate HAVE_X86ASM check in me_cmp_init
>> - Inlined the HAVE_X86ASM and ARCH_X86_64 checks in mlpdsp_init and vf_convolution_init 
>>
>> L. E. Segovia (5):
>>   all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2
>>   avcodec/x86/hevcdsp_init: Fix indentation after the ARCH_FOO changes
>>   all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO
>>   all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM
>>   all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM
>>
>>  fftools/ffprobe.c                          |  16 +-
>>  fftools/opt_common.c                       |  12 +-
>>  libavcodec/x86/aacencdsp_init.c            |   2 +
>>  libavcodec/x86/aacpsdsp_init.c             |   2 +
>>  libavcodec/x86/ac3dsp_init.c               |   4 +
>>  libavcodec/x86/audiodsp_init.c             |   2 +
>>  libavcodec/x86/bswapdsp_init.c             |   2 +
>>  libavcodec/x86/cavsdsp.c                   |   2 +
>>  libavcodec/x86/celt_pvq_init.c             |   2 +
>>  libavcodec/x86/cfhddsp_init.c              |   2 +
>>  libavcodec/x86/cfhdencdsp_init.c           |   2 +
>>  libavcodec/x86/dcadsp_init.c               |   2 +
>>  libavcodec/x86/dct_init.c                  |   2 +
>>  libavcodec/x86/dnxhdenc_init.c             |   2 +
>>  libavcodec/x86/exrdsp_init.c               |   2 +
>>  libavcodec/x86/fdctdsp_init.c              |   2 +
>>  libavcodec/x86/fft_init.c                  |   2 +
>>  libavcodec/x86/flacdsp_init.c              |   8 +-
>>  libavcodec/x86/g722dsp_init.c              |   2 +
>>  libavcodec/x86/h263dsp_init.c              |   2 +
>>  libavcodec/x86/h264_intrapred_init.c       |   2 +
>>  libavcodec/x86/h264chroma_init.c           |   2 +
>>  libavcodec/x86/hevcdsp_init.c              | 549 +++++++++++----------
>>  libavcodec/x86/hpeldsp_init.c              |   4 +
>>  libavcodec/x86/hpeldsp_vp3_init.c          |   2 +
>>  libavcodec/x86/huffyuvdsp_init.c           |   2 +
>>  libavcodec/x86/huffyuvencdsp_init.c        |   2 +
>>  libavcodec/x86/idctdsp_init.c              |  11 +-
>>  libavcodec/x86/jpeg2000dsp_init.c          |   2 +
>>  libavcodec/x86/lossless_videodsp_init.c    |   2 +
>>  libavcodec/x86/lossless_videoencdsp_init.c |   2 +
>>  libavcodec/x86/mdct15_init.c               |   2 +
>>  libavcodec/x86/me_cmp_init.c               |   2 +
>>  libavcodec/x86/mlpdsp_init.c               |   6 +-
>>  libavcodec/x86/mpegvideoencdsp_init.c      |   2 +
>>  libavcodec/x86/opusdsp_init.c              |   2 +
>>  libavcodec/x86/pixblockdsp_init.c          |   2 +
>>  libavcodec/x86/pngdsp_init.c               |   2 +
>>  libavcodec/x86/proresdsp_init.c            |   2 +
>>  libavcodec/x86/rv34dsp_init.c              |   2 +
>>  libavcodec/x86/sbcdsp_init.c               |   2 +
>>  libavcodec/x86/sbrdsp_init.c               |   2 +
>>  libavcodec/x86/svq1enc_init.c              |   2 +
>>  libavcodec/x86/utvideodsp_init.c           |   2 +
>>  libavcodec/x86/v210enc_init.c              |   2 +
>>  libavcodec/x86/vc1dsp_init.c               |   6 +-
>>  libavcodec/x86/vorbisdsp_init.c            |   2 +
>>  libavcodec/x86/vp3dsp_init.c               |   2 +
>>  libavcodec/x86/vp6dsp_init.c               |   2 +
>>  libavfilter/x86/af_afir_init.c             |   2 +
>>  libavfilter/x86/af_anlmdn_init.c           |   2 +
>>  libavfilter/x86/af_volume_init.c           |   2 +
>>  libavfilter/x86/avf_showcqt_init.c         |   2 +
>>  libavfilter/x86/colorspacedsp_init.c       |   6 +-
>>  libavfilter/x86/vf_atadenoise_init.c       |   8 +-
>>  libavfilter/x86/vf_blend_init.c            |   2 +
>>  libavfilter/x86/vf_bwdif_init.c            |   2 +
>>  libavfilter/x86/vf_convolution_init.c      |   2 +-
>>  libavfilter/x86/vf_framerate_init.c        |   2 +
>>  libavfilter/x86/vf_fspp_init.c             |   2 +
>>  libavfilter/x86/vf_gblur_init.c            |   2 +
>>  libavfilter/x86/vf_hflip_init.c            |   2 +
>>  libavfilter/x86/vf_limiter_init.c          |   2 +
>>  libavfilter/x86/vf_maskedclamp_init.c      |   2 +
>>  libavfilter/x86/vf_maskedmerge_init.c      |   2 +
>>  libavfilter/x86/vf_overlay_init.c          |   2 +
>>  libavfilter/x86/vf_pp7_init.c              |   2 +
>>  libavfilter/x86/vf_psnr_init.c             |   2 +
>>  libavfilter/x86/vf_removegrain_init.c      |   2 +
>>  libavfilter/x86/vf_ssim_init.c             |   6 +-
>>  libavfilter/x86/vf_stereo3d_init.c         |   2 +
>>  libavfilter/x86/vf_threshold_init.c        |   2 +
>>  libavfilter/x86/vf_tinterlace_init.c       |   2 +
>>  libavfilter/x86/vf_transpose_init.c        |   2 +
>>  libavfilter/x86/vf_v360_init.c             |   2 +
>>  libavfilter/x86/vf_w3fdif_init.c           |   6 +-
>>  libavfilter/x86/vf_yadif_init.c            |   2 +
>>  libavformat/rtmpproto.c                    |  24 +-
>>  libavutil/x86/fixed_dsp_init.c             |   2 +
>>  libavutil/x86/float_dsp_init.c             |   2 +
>>  libavutil/x86/imgutils_init.c              |   2 +
>>  libavutil/x86/lls_init.c                   |   2 +
>>  libavutil/x86/pixelutils_init.c            |   2 +
>>  libswresample/x86/audio_convert_init.c     |   2 +
>>  libswresample/x86/resample_init.c          |   6 +
>>  libswscale/x86/rgb2rgb.c                   |   2 +
>>  libswscale/x86/swscale.c                   |   2 +
>>  87 files changed, 517 insertions(+), 299 deletions(-)
>>
>
L. E. Segovia Nov. 26, 2022, 7:17 p.m. UTC | #3
Hi again,

Pinging again for review. I've asked for clarification about how should
the EXTERNAL_<arch> checks be dealt with, but I've not received any
response here.

Best,

amyspark

On 07/11/2022 11:48, L. E. Segovia wrote:
> Ping for review.
> 
> amyspark
> 
> On 03/11/2022 13:36, L. E. Segovia wrote:
>> Hi all,
>>
>> This new version is intended to make Patchwork log the set correctly.
>> (My apologies there, I'm not used to send patches through the command line.)
>>
>> v3 changes (same as v2):
>>
>> - Split indentation fixes for hevcdsp_init into its own commit
>> - Fixed spurious indentation in vf_ssim_init
>> - Implemented the macro approach for expanding the CONFIG_FOO checks in fftools
>> - Added the missing HAVE_X86ASM check in vc1dsp_init
>> - Added a missing HAVE_INLINE_ASM check in hpeldsp_init (see below)
>> - Fixed the HAVE_X86ASM check wrongly covering the INLINE_FOO clause in hpeldsp_init
>> - Removed the duplicate HAVE_X86ASM check in me_cmp_init
>> - Inlined the HAVE_X86ASM and ARCH_X86_64 checks in mlpdsp_init and vf_convolution_init 
>>
>> L. E. Segovia (5):
>>   all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2
>>   avcodec/x86/hevcdsp_init: Fix indentation after the ARCH_FOO changes
>>   all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO
>>   all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM
>>   all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM
>>
>>  fftools/ffprobe.c                          |  16 +-
>>  fftools/opt_common.c                       |  12 +-
>>  libavcodec/x86/aacencdsp_init.c            |   2 +
>>  libavcodec/x86/aacpsdsp_init.c             |   2 +
>>  libavcodec/x86/ac3dsp_init.c               |   4 +
>>  libavcodec/x86/audiodsp_init.c             |   2 +
>>  libavcodec/x86/bswapdsp_init.c             |   2 +
>>  libavcodec/x86/cavsdsp.c                   |   2 +
>>  libavcodec/x86/celt_pvq_init.c             |   2 +
>>  libavcodec/x86/cfhddsp_init.c              |   2 +
>>  libavcodec/x86/cfhdencdsp_init.c           |   2 +
>>  libavcodec/x86/dcadsp_init.c               |   2 +
>>  libavcodec/x86/dct_init.c                  |   2 +
>>  libavcodec/x86/dnxhdenc_init.c             |   2 +
>>  libavcodec/x86/exrdsp_init.c               |   2 +
>>  libavcodec/x86/fdctdsp_init.c              |   2 +
>>  libavcodec/x86/fft_init.c                  |   2 +
>>  libavcodec/x86/flacdsp_init.c              |   8 +-
>>  libavcodec/x86/g722dsp_init.c              |   2 +
>>  libavcodec/x86/h263dsp_init.c              |   2 +
>>  libavcodec/x86/h264_intrapred_init.c       |   2 +
>>  libavcodec/x86/h264chroma_init.c           |   2 +
>>  libavcodec/x86/hevcdsp_init.c              | 549 +++++++++++----------
>>  libavcodec/x86/hpeldsp_init.c              |   4 +
>>  libavcodec/x86/hpeldsp_vp3_init.c          |   2 +
>>  libavcodec/x86/huffyuvdsp_init.c           |   2 +
>>  libavcodec/x86/huffyuvencdsp_init.c        |   2 +
>>  libavcodec/x86/idctdsp_init.c              |  11 +-
>>  libavcodec/x86/jpeg2000dsp_init.c          |   2 +
>>  libavcodec/x86/lossless_videodsp_init.c    |   2 +
>>  libavcodec/x86/lossless_videoencdsp_init.c |   2 +
>>  libavcodec/x86/mdct15_init.c               |   2 +
>>  libavcodec/x86/me_cmp_init.c               |   2 +
>>  libavcodec/x86/mlpdsp_init.c               |   6 +-
>>  libavcodec/x86/mpegvideoencdsp_init.c      |   2 +
>>  libavcodec/x86/opusdsp_init.c              |   2 +
>>  libavcodec/x86/pixblockdsp_init.c          |   2 +
>>  libavcodec/x86/pngdsp_init.c               |   2 +
>>  libavcodec/x86/proresdsp_init.c            |   2 +
>>  libavcodec/x86/rv34dsp_init.c              |   2 +
>>  libavcodec/x86/sbcdsp_init.c               |   2 +
>>  libavcodec/x86/sbrdsp_init.c               |   2 +
>>  libavcodec/x86/svq1enc_init.c              |   2 +
>>  libavcodec/x86/utvideodsp_init.c           |   2 +
>>  libavcodec/x86/v210enc_init.c              |   2 +
>>  libavcodec/x86/vc1dsp_init.c               |   6 +-
>>  libavcodec/x86/vorbisdsp_init.c            |   2 +
>>  libavcodec/x86/vp3dsp_init.c               |   2 +
>>  libavcodec/x86/vp6dsp_init.c               |   2 +
>>  libavfilter/x86/af_afir_init.c             |   2 +
>>  libavfilter/x86/af_anlmdn_init.c           |   2 +
>>  libavfilter/x86/af_volume_init.c           |   2 +
>>  libavfilter/x86/avf_showcqt_init.c         |   2 +
>>  libavfilter/x86/colorspacedsp_init.c       |   6 +-
>>  libavfilter/x86/vf_atadenoise_init.c       |   8 +-
>>  libavfilter/x86/vf_blend_init.c            |   2 +
>>  libavfilter/x86/vf_bwdif_init.c            |   2 +
>>  libavfilter/x86/vf_convolution_init.c      |   2 +-
>>  libavfilter/x86/vf_framerate_init.c        |   2 +
>>  libavfilter/x86/vf_fspp_init.c             |   2 +
>>  libavfilter/x86/vf_gblur_init.c            |   2 +
>>  libavfilter/x86/vf_hflip_init.c            |   2 +
>>  libavfilter/x86/vf_limiter_init.c          |   2 +
>>  libavfilter/x86/vf_maskedclamp_init.c      |   2 +
>>  libavfilter/x86/vf_maskedmerge_init.c      |   2 +
>>  libavfilter/x86/vf_overlay_init.c          |   2 +
>>  libavfilter/x86/vf_pp7_init.c              |   2 +
>>  libavfilter/x86/vf_psnr_init.c             |   2 +
>>  libavfilter/x86/vf_removegrain_init.c      |   2 +
>>  libavfilter/x86/vf_ssim_init.c             |   6 +-
>>  libavfilter/x86/vf_stereo3d_init.c         |   2 +
>>  libavfilter/x86/vf_threshold_init.c        |   2 +
>>  libavfilter/x86/vf_tinterlace_init.c       |   2 +
>>  libavfilter/x86/vf_transpose_init.c        |   2 +
>>  libavfilter/x86/vf_v360_init.c             |   2 +
>>  libavfilter/x86/vf_w3fdif_init.c           |   6 +-
>>  libavfilter/x86/vf_yadif_init.c            |   2 +
>>  libavformat/rtmpproto.c                    |  24 +-
>>  libavutil/x86/fixed_dsp_init.c             |   2 +
>>  libavutil/x86/float_dsp_init.c             |   2 +
>>  libavutil/x86/imgutils_init.c              |   2 +
>>  libavutil/x86/lls_init.c                   |   2 +
>>  libavutil/x86/pixelutils_init.c            |   2 +
>>  libswresample/x86/audio_convert_init.c     |   2 +
>>  libswresample/x86/resample_init.c          |   6 +
>>  libswscale/x86/rgb2rgb.c                   |   2 +
>>  libswscale/x86/swscale.c                   |   2 +
>>  87 files changed, 517 insertions(+), 299 deletions(-)
>>
>
Carl Eugen Hoyos Nov. 27, 2022, 3:51 p.m. UTC | #4
Am Sa., 26. Nov. 2022 um 20:17 Uhr schrieb L. E. Segovia <amy@amyspark.me>:
>
> Hi again,
>
> Pinging again for review. I've asked for clarification about how should
> the EXTERNAL_<arch> checks be dealt with, but I've not received any
> response here.

As said before:
I regularly compile with MSVC without this patch set and I believe
the patch set makes our code less readable and harder to maintain.

Carl Eugen
Soft Works Nov. 27, 2022, 4:29 p.m. UTC | #5
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Carl Eugen Hoyos
> Sent: Sunday, November 27, 2022 4:52 PM
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH v3 0/5] Fix FFmpeg compilation
> without DCE
> 
> Am Sa., 26. Nov. 2022 um 20:17 Uhr schrieb L. E. Segovia
> <amy@amyspark.me>:
> >
> > Hi again,
> >
> > Pinging again for review. I've asked for clarification about how
> should
> > the EXTERNAL_<arch> checks be dealt with, but I've not received any
> > response here.
> 
> As said before:
> I regularly compile with MSVC without this patch set and I believe
> the patch set makes our code less readable and harder to maintain.
> 
> Carl Eugen
> _______________________________________________

IMO, relying on DCE makes the code less accessible and understandable,
than having explicit declarations that are clearly indicating which
code is included under which conditions.

How do you set this up when you are compiling with MSVC?

Best,
softworkz
Carl Eugen Hoyos Nov. 27, 2022, 4:46 p.m. UTC | #6
Am So., 27. Nov. 2022 um 17:29 Uhr schrieb Soft Works <softworkz@hotmail.com>:

> How do you set this up when you are compiling with MSVC?

My configure line to compile with MSVC is:
$ src/configure --enable-gpl --toolchain=msvc --host-os=win32

But maybe I misunderstand your question?

Carl Eugen
Soft Works Nov. 27, 2022, 5:16 p.m. UTC | #7
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Carl Eugen Hoyos
> Sent: Sunday, November 27, 2022 5:47 PM
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH v3 0/5] Fix FFmpeg compilation
> without DCE
> 
> Am So., 27. Nov. 2022 um 17:29 Uhr schrieb Soft Works
> <softworkz@hotmail.com>:
> 
> > How do you set this up when you are compiling with MSVC?
> 
> My configure line to compile with MSVC is:
> $ src/configure --enable-gpl --toolchain=msvc --host-os=win32
> 
> But maybe I misunderstand your question?

What I meant is the environment. Are you running this from 
an MSYS shell? Or WSL? 

And does running configure output VS project files, so that
you can compile inside VS (I think this existed at some 
earlier time at least, but I was under the impression that
it's broken)..?

Thanks,
softworkz
Carl Eugen Hoyos Nov. 27, 2022, 5:45 p.m. UTC | #8
Am So., 27. Nov. 2022 um 18:16 Uhr schrieb Soft Works <softworkz@hotmail.com>:
>
>
>
> > -----Original Message-----
> > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> > Carl Eugen Hoyos
> > Sent: Sunday, November 27, 2022 5:47 PM
> > To: FFmpeg development discussions and patches <ffmpeg-
> > devel@ffmpeg.org>
> > Subject: Re: [FFmpeg-devel] [PATCH v3 0/5] Fix FFmpeg compilation
> > without DCE

Please consider fixing your mail client.

> > Am So., 27. Nov. 2022 um 17:29 Uhr schrieb Soft Works
> > <softworkz@hotmail.com>:
> >
> > > How do you set this up when you are compiling with MSVC?
> >
> > My configure line to compile with MSVC is:
> > $ src/configure --enable-gpl --toolchain=msvc --host-os=win32
> >
> > But maybe I misunderstand your question?
>
> What I meant is the environment. Are you running this from
> an MSYS shell? Or WSL?

WSL
From what I remember, running configure in MSYS literally
took ages, I don't know if this has improved.

> And does running configure output VS project files

I don't think so.

> so that you can compile inside VS (I think this
> existed at some earlier time at least, but I was
> under the impression that it's broken)..?

Which commit changed behaviour in this respect?

Thank you, Carl Eugen
Hendrik Leppkes Nov. 27, 2022, 5:50 p.m. UTC | #9
>
> And does running configure output VS project files, so that
> you can compile inside VS (I think this existed at some
> earlier time at least, but I was under the impression that
> it's broken)..?
>

This was never a feature, and likely never will be. We have our own
build system and its the only supported one.
The compiler is the same regardless, the msvc compiler.

- Hendrik
Soft Works Nov. 27, 2022, 6:28 p.m. UTC | #10
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Hendrik Leppkes
> Sent: Sunday, November 27, 2022 6:51 PM
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH v3 0/5] Fix FFmpeg compilation
> without DCE
> 
> >
> > And does running configure output VS project files, so that
> > you can compile inside VS (I think this existed at some
> > earlier time at least, but I was under the impression that
> > it's broken)..?
> >
> 
> This was never a feature, and likely never will be. We have our own
> build system and its the only supported one.
> The compiler is the same regardless, the msvc compiler.

Then I have probably mixed this up with some tool or 
script who did that. I remember it was supposed to create
VS project files in a subfolder named Build (not ffbuild).
(and it was many years ago)

Thanks,
softworkz
Soft Works Nov. 27, 2022, 7:23 p.m. UTC | #11
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Carl Eugen Hoyos
> Sent: Sunday, November 27, 2022 6:45 PM
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH v3 0/5] Fix FFmpeg compilation
> without DCE
> 
> Am So., 27. Nov. 2022 um 18:16 Uhr schrieb Soft Works
> <softworkz@hotmail.com>:
> >
> >
> >
> > > -----Original Message-----
> > > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> > > Carl Eugen Hoyos
> > > Sent: Sunday, November 27, 2022 5:47 PM
> > > To: FFmpeg development discussions and patches <ffmpeg-
> > > devel@ffmpeg.org>
> > > Subject: Re: [FFmpeg-devel] [PATCH v3 0/5] Fix FFmpeg compilation
> > > without DCE
> 
> Please consider fixing your mail client.

What did it do wrong?


> > > Am So., 27. Nov. 2022 um 17:29 Uhr schrieb Soft Works
> > > <softworkz@hotmail.com>:
> > >
> > > > How do you set this up when you are compiling with MSVC?
> > >
> > > My configure line to compile with MSVC is:
> > > $ src/configure --enable-gpl --toolchain=msvc --host-os=win32
> > >
> > > But maybe I misunderstand your question?
> >

> From what I remember, running configure in MSYS literally
> took ages, I don't know if this has improved.

Nope. It's still as horribly long as it was, even with everything
update to latest..

> > What I meant is the environment. Are you running this from
> > an MSYS shell? Or WSL?
> 
> WSL

Ah alright. Probably a better choice when all you need is the scripting
environment.


> > And does running configure output VS project files
> 
> I don't think so.

Sorry, I must have confused this with some external script or
something.
 

I was asking because when it's about msvc, I'm used to picture
someone would be using VS as an IDE. So, yes, the plain msvc
compiler doesn't have a problem with DCE. The problem is when
creating projects to compile and work with the code in the 
VS IDE. And what VS does is pre-parsing the code in the 
background while you're working on it, so you don't really 
need to compile as you see errors and warning while you 
write them. As there's no actual linking being done, this
procedure cannot "simulate" the DCE process and it can only
assume that those symbols that DCE would eliminate are 
missing symbols. The result is that you cannot work in the
IDE because it is full of errors due to this.

Likely, this is also the use case of the submitter of 
this patch.
I'm using VS as well, not for final compilation but 
for writing and debugging as this allows me to work in the
way I want to work. Currently, I'm using Matt Oliver's
VS project generator, which does a really good job in working
around these problems by creating empty definitions for
all these loose ends that are missing (as long as a final
compilation hasn't determined that they aren't actually 
needed.

But this does also have drawbacks: when changes are made
in the ffmpeg base, those definitions may not match
anymore and the projects need to be re-generated (which 
is painful). And the same applies when switching branches,
so I usually have multiple sets of VS project/solutions,
but these still get outdated and I need to re-create 
again.

For these reasons, I would very much welcome when this
situation could be improved. And not only for those but
I also had a situation at some time where I wasted a lot
of time and got quite desperate on something that turned
out to be caused by the code relying on DCE - which wasn't
clear to me in that situation. When you know about it,
then you can live with it, but when not, then it just 
adds to the experience for those who are new to ffmpeg.

Also, I'm not sure whether that is a reasonable use case
for DCE, that it allows you to spare writing a few 
conditionals in the code.

Anyway, I would find it nice if the code would not
rely on DCE anymore.

Best wishes,
softworkz