[FFmpeg-devel] [PATCH] avformat: Rename IPFS to IPFS gateway

Nicolas George george at nsup.org
Fri Dec 9 17:45:27 EET 2022


Derek Buitenhuis (12022-12-09):
> It is a URL rewriter for IPFS gateways, not an actual implementation of
> IPFS, and naming it as such was both incorrect and misleading.
> 
> Signed-off-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
> ---
> As was discussed at the developer meeting last week, presented here for comments.
> 

> Personally I think libavformat is no place for URL rewriters pretending to be
> protocols, and think that URLs should be rewritten at the layer above avformat
> (i.e. nuke this entirely), but I figure this is less likely to get me abusive
> hate emails again to my personal mail - or at least fewer.

I rather agree.

> ---
>  Changelog                 |  2 +-
>  configure                 |  4 ++--
>  libavformat/Makefile      |  4 ++--
>  libavformat/ipfsgateway.c | 34 +++++++++++++++++-----------------
>  libavformat/protocols.c   |  4 ++--
>  5 files changed, 24 insertions(+), 24 deletions(-)
> 
> diff --git a/Changelog b/Changelog
> index af2dd65f8f..1e9e862406 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -30,7 +30,7 @@ version <next>:
>  
>  
>  version 5.1:
> -- add ipfs/ipns protocol support
> +- add ipfs/ipns gateway support
>  - dialogue enhance audio filter
>  - dropped obsolete XvMC hwaccel
>  - pcm-bluray encoder
> diff --git a/configure b/configure
> index f4eedfc207..af78d79716 100755
> --- a/configure
> +++ b/configure
> @@ -3597,8 +3597,8 @@ udp_protocol_select="network"
>  udplite_protocol_select="network"
>  unix_protocol_deps="sys_un_h"
>  unix_protocol_select="network"
> -ipfs_protocol_select="https_protocol"
> -ipns_protocol_select="https_protocol"
> +ipfs_gateway_protocol_select="https_protocol"
> +ipns_gateway_protocol_select="https_protocol"
>  
>  # external library protocols
>  libamqp_protocol_deps="librabbitmq"
> diff --git a/libavformat/Makefile b/libavformat/Makefile
> index d7f198bf39..2699409e43 100644
> --- a/libavformat/Makefile
> +++ b/libavformat/Makefile
> @@ -672,8 +672,8 @@ OBJS-$(CONFIG_SRTP_PROTOCOL)             += srtpproto.o srtp.o
>  OBJS-$(CONFIG_SUBFILE_PROTOCOL)          += subfile.o
>  OBJS-$(CONFIG_TEE_PROTOCOL)              += teeproto.o tee_common.o
>  OBJS-$(CONFIG_TCP_PROTOCOL)              += tcp.o
> -OBJS-$(CONFIG_IPFS_PROTOCOL)             += ipfsgateway.o
> -OBJS-$(CONFIG_IPNS_PROTOCOL)             += ipfsgateway.o
> +OBJS-$(CONFIG_IPFS_GATEWAY_PROTOCOL)     += ipfsgateway.o
> +OBJS-$(CONFIG_IPNS_GATEWAY_PROTOCOL)     += ipfsgateway.o
>  TLS-OBJS-$(CONFIG_GNUTLS)                += tls_gnutls.o
>  TLS-OBJS-$(CONFIG_LIBTLS)                += tls_libtls.o
>  TLS-OBJS-$(CONFIG_MBEDTLS)               += tls_mbedtls.o
> diff --git a/libavformat/ipfsgateway.c b/libavformat/ipfsgateway.c
> index ce69d9055a..336a2603db 100644
> --- a/libavformat/ipfsgateway.c
> +++ b/libavformat/ipfsgateway.c
> @@ -304,19 +304,19 @@ err:
>      return ret;
>  }
>  

> -static int ipfs_read(URLContext *h, unsigned char *buf, int size)
> +static int ipfs_gateway_read(URLContext *h, unsigned char *buf, int size)

There is no need to rename local symbols.

>  {
>      IPFSGatewayContext *c = h->priv_data;
>      return ffurl_read(c->inner, buf, size);
>  }
>  
> -static int64_t ipfs_seek(URLContext *h, int64_t pos, int whence)
> +static int64_t ipfs_gateway_seek(URLContext *h, int64_t pos, int whence)
>  {
>      IPFSGatewayContext *c = h->priv_data;
>      return ffurl_seek(c->inner, pos, whence);
>  }
>  
> -static int ipfs_close(URLContext *h)
> +static int ipfs_gateway_close(URLContext *h)
>  {
>      IPFSGatewayContext *c = h->priv_data;
>      return ffurl_closep(&c->inner);
> @@ -329,29 +329,29 @@ static const AVOption options[] = {
>      {NULL},
>  };
>  
> -static const AVClass ipfs_context_class = {
> -    .class_name     = "IPFS",
> +static const AVClass ipfs_gateway_context_class = {
> +    .class_name     = "IPFS Gateway",
>      .item_name      = av_default_item_name,
>      .option         = options,
>      .version        = LIBAVUTIL_VERSION_INT,
>  };
>  
> -const URLProtocol ff_ipfs_protocol = {
> -    .name               = "ipfs",

> +const URLProtocol ff_ipfs_gateway_protocol = {
> +    .name               = "ipfs_gateway",

It is a bit of a mouthful. Maybe "ipfsgw"?

>      .url_open2          = translate_ipfs_to_http,
> -    .url_read           = ipfs_read,
> -    .url_seek           = ipfs_seek,
> -    .url_close          = ipfs_close,
> +    .url_read           = ipfs_gateway_read,
> +    .url_seek           = ipfs_gateway_seek,
> +    .url_close          = ipfs_gateway_close,
>      .priv_data_size     = sizeof(IPFSGatewayContext),
> -    .priv_data_class    = &ipfs_context_class,
> +    .priv_data_class    = &ipfs_gateway_context_class,
>  };
>  
> -const URLProtocol ff_ipns_protocol = {
> -    .name               = "ipns",
> +const URLProtocol ff_ipns_gateway_protocol = {
> +    .name               = "ipns_gateway",
>      .url_open2          = translate_ipfs_to_http,
> -    .url_read           = ipfs_read,
> -    .url_seek           = ipfs_seek,
> -    .url_close          = ipfs_close,
> +    .url_read           = ipfs_gateway_read,
> +    .url_seek           = ipfs_gateway_seek,
> +    .url_close          = ipfs_gateway_close,
>      .priv_data_size     = sizeof(IPFSGatewayContext),
> -    .priv_data_class    = &ipfs_context_class,
> +    .priv_data_class    = &ipfs_gateway_context_class,
>  };
> diff --git a/libavformat/protocols.c b/libavformat/protocols.c
> index 8b7d1b940f..d3a7d4310b 100644
> --- a/libavformat/protocols.c
> +++ b/libavformat/protocols.c
> @@ -72,8 +72,8 @@ extern const URLProtocol ff_libsrt_protocol;
>  extern const URLProtocol ff_libssh_protocol;
>  extern const URLProtocol ff_libsmbclient_protocol;
>  extern const URLProtocol ff_libzmq_protocol;
> -extern const URLProtocol ff_ipfs_protocol;
> -extern const URLProtocol ff_ipns_protocol;
> +extern const URLProtocol ff_ipfs_gateway_protocol;
> +extern const URLProtocol ff_ipns_gateway_protocol;
>  
>  #include "libavformat/protocol_list.c"
>  

Regards,

-- 
  Nicolas George


More information about the ffmpeg-devel mailing list