Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH 2/4] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO
Date: Wed, 2 Nov 2022 01:38:49 +0100
Message-ID: <GV1P250MB0737FEA6533F0F6440D4906D8F399@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <ee742933fdd96f9d229d169cae87c6aacf1241a3.1667325395.git.amy@amyspark.me>

L. E. Segovia:
> Continuation of e42aaaf92a4b0c88d60acc12df64c81d0887c26f
> 
> Signed-off-by: L. E. Segovia <amy@amyspark.me>
> ---
>  fftools/ffprobe.c       | 22 ++++++++++++++++++----
>  fftools/opt_common.c    | 18 +++++++++++++++++-
>  libavformat/rtmpproto.c | 24 ++++++++++++++++++------
>  3 files changed, 53 insertions(+), 11 deletions(-)
> 
> diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
> index 9b7e82fd8c..c16c68ee92 100644
> --- a/fftools/ffprobe.c
> +++ b/fftools/ffprobe.c
> @@ -3519,8 +3519,7 @@ static void ffprobe_show_program_version(WriterContext *w)
>  }
>  
>  #define SHOW_LIB_VERSION(libname, LIBNAME)                              \
> -    do {                                                                \
> -        if (CONFIG_##LIBNAME) {                                         \
> +        {                                                               \
>              unsigned int version = libname##_version();                 \
>              writer_print_section_header(w, SECTION_ID_LIBRARY_VERSION); \
>              print_str("name",    "lib" #libname);                       \
> @@ -3530,20 +3529,35 @@ static void ffprobe_show_program_version(WriterContext *w)
>              print_int("version", version);                              \
>              print_str("ident",   LIB##LIBNAME##_IDENT);                 \
>              writer_print_section_footer(w);                             \
> -        }                                                               \
> -    } while (0)
> +        }
>  
>  static void ffprobe_show_library_versions(WriterContext *w)
>  {
>      writer_print_section_header(w, SECTION_ID_LIBRARY_VERSIONS);
> +#if CONFIG_AVUTIL
>      SHOW_LIB_VERSION(avutil,     AVUTIL);
> +#endif
> +#if CONFIG_AVCODEC
>      SHOW_LIB_VERSION(avcodec,    AVCODEC);
> +#endif
> +#if CONFIG_AVFORMAT
>      SHOW_LIB_VERSION(avformat,   AVFORMAT);
> +#endif
> +#if CONFIG_AVDEVICE
>      SHOW_LIB_VERSION(avdevice,   AVDEVICE);
> +#endif
> +#if CONFIG_AVFILTER
>      SHOW_LIB_VERSION(avfilter,   AVFILTER);
> +#endif
> +#if CONFIG_SWSCALE
>      SHOW_LIB_VERSION(swscale,    SWSCALE);
> +#endif
> +#if CONFIG_SWRESAMPLE
>      SHOW_LIB_VERSION(swresample, SWRESAMPLE);
> +#endif
> +#if CONFIG_POSTPROC
>      SHOW_LIB_VERSION(postproc,   POSTPROC);
> +#endif

1. Several of these checks are unnecessary, as ffprobe has hard
dependencies on avcodec and avformat (and therefore also on avutil).
2. Anyway, a better approach would be to modify the macro along the
lines of PCM_DECODER in libavcodec/pcm.c, so that
SHOW_LIB_VERSION(postproc, POSTPROC) expands to
SHOW_LIB_VERSION_1(postproc, POSTPROC) if CONFIG_POSTPROC is 1 and
SHOW_LIB_VERSION_0(postproc, POSTPROC) if CONFIG_POSTPROC is 0 (you may
presume CONFIG_POSTPROC to be defined and to be either 0 or 1).
SHOW_LIB_VERSION_1 would expand to what the current SHOW_LIB_VERSION
expands to (minus the "if (CONFIG_ ##LIBNAME)" check) and
SHOW_LIB_VERSION_0 would expand to nothing/a null statement or so.

The same approach could be used below.

>      writer_print_section_footer(w);
>  }
>  
> diff --git a/fftools/opt_common.c b/fftools/opt_common.c
> index 8a06df82df..243eb4e3a1 100644
> --- a/fftools/opt_common.c
> +++ b/fftools/opt_common.c
> @@ -154,7 +154,7 @@ static int warned_cfg = 0;
>  #define SHOW_COPYRIGHT 8
>  
>  #define PRINT_LIB_INFO(libname, LIBNAME, flags, level)                  \
> -    if (CONFIG_##LIBNAME) {                                             \
> +    {                                                                   \
>          const char *indent = flags & INDENT? "  " : "";                 \
>          if (flags & SHOW_VERSION) {                                     \
>              unsigned int version = libname##_version();                 \
> @@ -184,14 +184,30 @@ static int warned_cfg = 0;
>  
>  static void print_all_libs_info(int flags, int level)
>  {
> +#if CONFIG_AVUTIL
>      PRINT_LIB_INFO(avutil,     AVUTIL,     flags, level);
> +#endif
> +#if CONFIG_AVCODEC
>      PRINT_LIB_INFO(avcodec,    AVCODEC,    flags, level);
> +#endif
> +#if CONFIG_AVFORMAT
>      PRINT_LIB_INFO(avformat,   AVFORMAT,   flags, level);
> +#endif
> +#if CONFIG_AVDEVICE
>      PRINT_LIB_INFO(avdevice,   AVDEVICE,   flags, level);
> +#endif
> +#if CONFIG_AVFILTER
>      PRINT_LIB_INFO(avfilter,   AVFILTER,   flags, level);
> +#endif
> +#if CONFIG_SWSCALE
>      PRINT_LIB_INFO(swscale,    SWSCALE,    flags, level);
> +#endif
> +#if CONFIG_SWRESAMPLE
>      PRINT_LIB_INFO(swresample, SWRESAMPLE, flags, level);
> +#endif
> +#if CONFIG_POSTPROC
>      PRINT_LIB_INFO(postproc,   POSTPROC,   flags, level);
> +#endif
>  }
>  
>  static void print_program_info(int flags, int level)
> diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
> index f0ef223f05..6d84fcf34f 100644
> --- a/libavformat/rtmpproto.c
> +++ b/libavformat/rtmpproto.c
> @@ -1222,7 +1222,8 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
>      for (i = 9; i <= RTMP_HANDSHAKE_PACKET_SIZE; i++)
>          tosend[i] = av_lfg_get(&rnd) >> 24;
>  
> -    if (CONFIG_FFRTMPCRYPT_PROTOCOL && rt->encrypted) {
> +#if CONFIG_FFRTMPCRYPT_PROTOCOL
> +    if (rt->encrypted) {
>          /* When the client wants to use RTMPE, we have to change the command
>           * byte to 0x06 which means to use encrypted data and we have to set
>           * the flash version to at least 9.0.115.0. */
> @@ -1237,6 +1238,7 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
>          if ((ret = ff_rtmpe_gen_pub_key(rt->stream, tosend + 1)) < 0)
>              return ret;
>      }
> +#endif
>  
>      client_pos = rtmp_handshake_imprint_with_digest(tosend + 1, rt->encrypted);
>      if (client_pos < 0)
> @@ -1300,7 +1302,8 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
>          if (ret < 0)
>              return ret;
>  
> -        if (CONFIG_FFRTMPCRYPT_PROTOCOL && rt->encrypted) {
> +#if CONFIG_FFRTMPCRYPT_PROTOCOL
> +        if (rt->encrypted) {
>              /* Compute the shared secret key sent by the server and initialize
>               * the RC4 encryption. */
>              if ((ret = ff_rtmpe_compute_secret_key(rt->stream, serverdata + 1,
> @@ -1310,6 +1313,7 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
>              /* Encrypt the signature received by the server. */
>              ff_rtmpe_encrypt_sig(rt->stream, signature, digest, serverdata[0]);
>          }
> +#endif
>  
>          if (memcmp(signature, clientdata + RTMP_HANDSHAKE_PACKET_SIZE - 32, 32)) {
>              av_log(s, AV_LOG_ERROR, "Signature mismatch\n");
> @@ -1330,25 +1334,30 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
>          if (ret < 0)
>              return ret;
>  
> -        if (CONFIG_FFRTMPCRYPT_PROTOCOL && rt->encrypted) {
> +#if CONFIG_FFRTMPCRYPT_PROTOCOL
> +        if (rt->encrypted) {
>              /* Encrypt the signature to be send to the server. */
>              ff_rtmpe_encrypt_sig(rt->stream, tosend +
>                                   RTMP_HANDSHAKE_PACKET_SIZE - 32, digest,
>                                   serverdata[0]);
>          }
> +#endif
>  
>          // write reply back to the server
>          if ((ret = ffurl_write(rt->stream, tosend,
>                                 RTMP_HANDSHAKE_PACKET_SIZE)) < 0)
>              return ret;
>  
> -        if (CONFIG_FFRTMPCRYPT_PROTOCOL && rt->encrypted) {
> +#if CONFIG_FFRTMPCRYPT_PROTOCOL
> +        if (rt->encrypted) {
>              /* Set RC4 keys for encryption and update the keystreams. */
>              if ((ret = ff_rtmpe_update_keystream(rt->stream)) < 0)
>                  return ret;
>          }
> +#endif
>      } else {
> -        if (CONFIG_FFRTMPCRYPT_PROTOCOL && rt->encrypted) {
> +#if CONFIG_FFRTMPCRYPT_PROTOCOL
> +        if (rt->encrypted) {
>              /* Compute the shared secret key sent by the server and initialize
>               * the RC4 encryption. */
>              if ((ret = ff_rtmpe_compute_secret_key(rt->stream, serverdata + 1,
> @@ -1361,16 +1370,19 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
>                                       serverdata[0]);
>              }
>          }
> +#endif
>  
>          if ((ret = ffurl_write(rt->stream, serverdata + 1,
>                                 RTMP_HANDSHAKE_PACKET_SIZE)) < 0)
>              return ret;
>  
> -        if (CONFIG_FFRTMPCRYPT_PROTOCOL && rt->encrypted) {
> +#if CONFIG_FFRTMPCRYPT_PROTOCOL
> +        if (rt->encrypted) {
>              /* Set RC4 keys for encryption and update the keystreams. */
>              if ((ret = ff_rtmpe_update_keystream(rt->stream)) < 0)
>                  return ret;
>          }
> +#endif
>      }
>  
>      return 0;

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  reply	other threads:[~2022-11-02  0:38 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-01 21:59 [FFmpeg-devel] [PATCH 0/4] Fix FFmpeg compilation without DCE L. E. Segovia
2022-11-01 21:59 ` [FFmpeg-devel] [PATCH 1/4] all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2 L. E. Segovia
2022-11-01 22:28   ` Andreas Rheinhardt
2022-11-03 12:55     ` L. E. Segovia
2022-11-03 14:19       ` Andreas Rheinhardt
2022-11-03 21:59   ` Carl Eugen Hoyos
2022-11-01 21:59 ` [FFmpeg-devel] [PATCH 2/4] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO L. E. Segovia
2022-11-02  0:38   ` Andreas Rheinhardt [this message]
2022-11-01 21:59 ` [FFmpeg-devel] [PATCH 3/4] all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM L. E. Segovia
2022-11-02  0:42   ` Andreas Rheinhardt
2022-11-01 21:59 ` [FFmpeg-devel] [PATCH 4/4] all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM L. E. Segovia
2022-11-02  0:26   ` Andreas Rheinhardt
2022-11-02  1:08 ` [FFmpeg-devel] [PATCH 0/4] Fix FFmpeg compilation without DCE Andreas Rheinhardt
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 0/5] " L. E. Segovia
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 1/5] all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2 L. E. Segovia
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 2/5] avcodec/x86/hevcdsp_init: Fix indentation after the ARCH_FOO changes L. E. Segovia
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 3/5] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO L. E. Segovia
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 4/5] all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM L. E. Segovia
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 5/5] all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM L. E. Segovia
2022-11-03 15:55   ` Lynne
2022-11-14  9:01     ` L. E. Segovia
2022-11-03 16:36 ` [FFmpeg-devel] [PATCH v3 0/5] Fix FFmpeg compilation without DCE L. E. Segovia
2022-11-03 16:36   ` [FFmpeg-devel] [PATCH v3 1/5] all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2 L. E. Segovia
2022-11-03 16:36   ` [FFmpeg-devel] [PATCH v3 2/5] avcodec/x86/hevcdsp_init: Fix indentation after the ARCH_FOO changes L. E. Segovia
2022-11-03 16:36   ` [FFmpeg-devel] [PATCH v3 3/5] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO L. E. Segovia
2022-11-03 16:36   ` [FFmpeg-devel] [PATCH v3 4/5] all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM L. E. Segovia
2022-11-03 16:36   ` [FFmpeg-devel] [PATCH v3 5/5] all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM L. E. Segovia
2022-11-07 14:48   ` [FFmpeg-devel] [PATCH v3 0/5] Fix FFmpeg compilation without DCE L. E. Segovia
2022-11-17 22:45     ` L. E. Segovia
2022-11-26 19:17     ` L. E. Segovia
2022-11-27 15:51       ` Carl Eugen Hoyos
2022-11-27 16:29         ` Soft Works
2022-11-27 16:46           ` Carl Eugen Hoyos
2022-11-27 17:16             ` Soft Works
2022-11-27 17:45               ` Carl Eugen Hoyos
2022-11-27 19:23                 ` Soft Works
2022-11-27 17:50               ` Hendrik Leppkes
2022-11-27 18:28                 ` Soft Works
2023-07-28  1:37   ` [FFmpeg-devel] [PATCH v4 0/4] Fix MSVC build without optimizations L. E. Segovia
2023-07-28 10:40     ` Reimar Döffinger
2023-07-28 10:48       ` Reimar Döffinger
2023-07-28 10:55         ` Nicolas George
2023-07-28 13:21           ` Matt Oliver
2023-07-29 18:57             ` L. E. Segovia
2023-07-29 19:07     ` [FFmpeg-devel] [PATCH v5 " L. E. Segovia
     [not found]     ` <cover.1690657578.git.amy@amyspark.me>
2023-07-29 19:07       ` [FFmpeg-devel] [PATCH v5 1/4] all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2 L. E. Segovia
2023-07-31 18:28         ` Michael Niedermayer
2023-07-29 19:07       ` [FFmpeg-devel] [PATCH v5 2/4] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO L. E. Segovia
2023-07-29 19:07       ` [FFmpeg-devel] [PATCH v5 3/4] all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM L. E. Segovia
2023-07-29 19:08       ` [FFmpeg-devel] [PATCH v5 4/4] all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM L. E. Segovia
     [not found]   ` <cover.1690508131.git.amy@amyspark.me>
2023-07-28  1:37     ` [FFmpeg-devel] [PATCH v4 1/4] all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2 L. E. Segovia
2023-07-28  1:38     ` [FFmpeg-devel] [PATCH v4 2/4] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO L. E. Segovia
2023-07-28  1:38     ` [FFmpeg-devel] [PATCH v4 3/4] all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM L. E. Segovia
2023-07-28  1:38     ` [FFmpeg-devel] [PATCH v4 4/4] all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM L. E. Segovia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=GV1P250MB0737FEA6533F0F6440D4906D8F399@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM \
    --to=andreas.rheinhardt@outlook.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git