[FFmpeg-devel] [PATCH v2 07/13] avpriv_find_start_code(): constify pointer parameters

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sat Feb 5 07:49:39 EET 2022


Scott Theisen:
> Have the compiler enforce not changing the addresses these parameters point to.
> 
> No functional change.
> ---
>  libavcodec/internal.h | 6 +++---
>  libavcodec/utils.c    | 4 ++--
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/libavcodec/internal.h b/libavcodec/internal.h
> index 94c41aef0b..dadd8d4a10 100644
> --- a/libavcodec/internal.h
> +++ b/libavcodec/internal.h
> @@ -313,7 +313,7 @@ static av_always_inline int avpriv_start_code_is_valid(uint32_t start_code) {
>   * @param[in] end   A pointer to the past-the-end memory address for the buffer
>   *                  given by @p p.  <b>@p p</b> must be ≤ <b>@p end</b>.
>   *
> - * @param[in,out] start_code A reference to a mutable @c uint32_t.<br>
> + * @param[in,out] start_code A constant pointer (reference) to a mutable @c uint32_t.<br>

There are no references in C.

>   *          As input: For no history preset to <b>@c ~0 </b>, otherwise preset to the last
>   *                    returned start code to enable detecting start codes across
>   *                    buffer boundaries.<br>
> @@ -325,8 +325,8 @@ static av_always_inline int avpriv_start_code_is_valid(uint32_t start_code) {
>   *         if no start code was found.
>   */
>  const uint8_t *avpriv_find_start_code(const uint8_t *p,
> -                                      const uint8_t *end,
> -                                      uint32_t *start_code);
> +                                      const uint8_t * const end,
> +                                      uint32_t * const start_code);
>  
>  int avpriv_codec_get_cap_skip_frame_fill_param(const AVCodec *codec);
>  
> diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> index 80ccde023f..cf92d29f67 100644
> --- a/libavcodec/utils.c
> +++ b/libavcodec/utils.c
> @@ -941,8 +941,8 @@ void ff_thread_report_progress2(AVCodecContext *avctx, int field, int thread, in
>  #endif
>  
>  const uint8_t *avpriv_find_start_code(const uint8_t *av_restrict p,
> -                                      const uint8_t *end,
> -                                      uint32_t *av_restrict start_code)
> +                                      const uint8_t * const end,
> +                                      uint32_t * const av_restrict start_code)
>  {
>      av_assert0(p <= end);
>      if (p >= end)

Documenting restrictions on the callee that are irrelevant to the caller
in a public header seems weird.

- Andreas


More information about the ffmpeg-devel mailing list