[FFmpeg-devel] [PATCH 2/2] avio: do not export avpriv_io_{move, delete}

James Almer jamrial at gmail.com
Fri Jan 10 15:33:06 EET 2020


On 1/10/2020 8:21 AM, Anton Khirnov wrote:
> They are private and not used by anything outside of lavf. There is no
> reason for them to be exported.
> ---
>  libavformat/avio.c    |  4 ++--
>  libavformat/avio.h    | 19 -------------------
>  libavformat/dashenc.c | 10 +++++-----
>  libavformat/url.h     | 20 ++++++++++++++++++++
>  4 files changed, 27 insertions(+), 26 deletions(-)
> 
> diff --git a/libavformat/avio.c b/libavformat/avio.c
> index 2dd2312296..3e390fe719 100644
> --- a/libavformat/avio.c
> +++ b/libavformat/avio.c
> @@ -494,7 +494,7 @@ int avio_check(const char *url, int flags)
>      return ret;
>  }
>  
> -int avpriv_io_move(const char *url_src, const char *url_dst)
> +int ffurl_move(const char *url_src, const char *url_dst)
>  {
>      URLContext *h_src, *h_dst;
>      int ret = ffurl_alloc(&h_src, url_src, AVIO_FLAG_READ_WRITE, NULL);
> @@ -516,7 +516,7 @@ int avpriv_io_move(const char *url_src, const char *url_dst)
>      return ret;
>  }
>  
> -int avpriv_io_delete(const char *url)
> +int ffurl_delete(const char *url)
>  {
>      URLContext *h;
>      int ret = ffurl_alloc(&h, url, AVIO_FLAG_WRITE, NULL);
> diff --git a/libavformat/avio.h b/libavformat/avio.h
> index 9141642e75..34c5957791 100644
> --- a/libavformat/avio.h
> +++ b/libavformat/avio.h
> @@ -374,25 +374,6 @@ const char *avio_find_protocol_name(const char *url);
>   */
>  int avio_check(const char *url, int flags);
>  
> -/**
> - * Move or rename a resource.
> - *
> - * @note url_src and url_dst should share the same protocol and authority.
> - *
> - * @param url_src url to resource to be moved
> - * @param url_dst new url to resource if the operation succeeded
> - * @return >=0 on success or negative on error.
> - */
> -int avpriv_io_move(const char *url_src, const char *url_dst);
> -
> -/**
> - * Delete a resource.
> - *
> - * @param url resource to be deleted.
> - * @return >=0 on success or negative on error.
> - */
> -int avpriv_io_delete(const char *url);

No, unfortunately and despite the name, these are public. Or rather,
exposed in a public header when they were not meant to be public,
afaics, so what we can do instead is schedule them for removal in the
next bump and not bother with a two year deprecation period. We've done
it before for other avpriv_ functions mistakenly exposed in public headers.

For that matter, it's about time we do a major bump. I'm willing to help
doing the required work to properly remove deprecated stuff that i'm
sure can't be deleted as is.

> -
>  /**
>   * Open directory for reading.
>   *
> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> index b84736881f..46041337c2 100644
> --- a/libavformat/dashenc.c
> +++ b/libavformat/dashenc.c
> @@ -540,7 +540,7 @@ static void write_hls_media_playlist(OutputStream *os, AVFormatContext *s,
>      dashenc_io_close(s, &c->m3u8_out, temp_filename_hls);
>  
>      if (use_rename)
> -        if (avpriv_io_move(temp_filename_hls, filename_hls) < 0) {
> +        if (ffurl_move(temp_filename_hls, filename_hls) < 0) {
>              av_log(os->ctx, AV_LOG_WARNING, "renaming file %s to %s failed\n\n", temp_filename_hls, filename_hls);
>          }
>  }
> @@ -1037,7 +1037,7 @@ static int write_manifest(AVFormatContext *s, int final)
>      dashenc_io_close(s, &c->mpd_out, temp_filename);
>  
>      if (use_rename) {
> -        if ((ret = avpriv_io_move(temp_filename, s->url)) < 0)
> +        if ((ret = ffurl_move(temp_filename, s->url)) < 0)
>              return ret;
>      }
>  
> @@ -1119,7 +1119,7 @@ static int write_manifest(AVFormatContext *s, int final)
>          }
>          dashenc_io_close(s, &c->m3u8_out, temp_filename);
>          if (use_rename)
> -            if ((ret = avpriv_io_move(temp_filename, filename_hls)) < 0)
> +            if ((ret = ffurl_move(temp_filename, filename_hls)) < 0)
>                  return ret;
>          c->master_playlist_created = 1;
>      }
> @@ -1507,7 +1507,7 @@ static void dashenc_delete_file(AVFormatContext *s, char *filename) {
>          av_dict_free(&http_opts);
>          ff_format_io_close(s, &out);
>      } else {
> -        int res = avpriv_io_delete(filename);
> +        int res = ffurl_delete(filename);
>          if (res < 0) {
>              char errbuf[AV_ERROR_MAX_STRING_SIZE];
>              av_strerror(res, errbuf, sizeof(errbuf));
> @@ -1619,7 +1619,7 @@ static int dash_flush(AVFormatContext *s, int final, int stream)
>              dashenc_io_close(s, &os->out, os->temp_path);
>  
>              if (use_rename) {
> -                ret = avpriv_io_move(os->temp_path, os->full_path);
> +                ret = ffurl_move(os->temp_path, os->full_path);
>                  if (ret < 0)
>                      break;
>              }
> diff --git a/libavformat/url.h b/libavformat/url.h
> index 4750bfff82..98ac6e3ccd 100644
> --- a/libavformat/url.h
> +++ b/libavformat/url.h
> @@ -340,4 +340,24 @@ const AVClass *ff_urlcontext_child_class_next(const AVClass *prev);
>  const URLProtocol **ffurl_get_protocols(const char *whitelist,
>                                          const char *blacklist);
>  
> +/**
> + * Move or rename a resource.
> + *
> + * @note url_src and url_dst should share the same protocol and authority.
> + *
> + * @param url_src url to resource to be moved
> + * @param url_dst new url to resource if the operation succeeded
> + * @return >=0 on success or negative on error.
> + */
> +int ffurl_move(const char *url_src, const char *url_dst);
> +
> +/**
> + * Delete a resource.
> + *
> + * @param url resource to be deleted.
> + * @return >=0 on success or negative on error.
> + */
> +int ffurl_delete(const char *url);
> +
> +
>  #endif /* AVFORMAT_URL_H */
> 



More information about the ffmpeg-devel mailing list