[FFmpeg-devel] [PATCH 5/5] lavf/avio: remove support for proto, , opt, val, , syntax.
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Thu Jul 29 16:54:34 EEST 2021
- Previous message (by thread): [FFmpeg-devel] [PATCH 5/5] lavf/avio: remove support for proto, , opt, val, , syntax.
- Next message (by thread): [FFmpeg-devel] [PATCH 5/5] lavf/avio: remove support for proto, , opt, val, , syntax.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Nicolas George:
> It was only still supported for subfile and only used by dvd2concat.
>
The latter statement is not true: This is public API; anyone can have
used it for any purpose. Your 2/5 adds a replacement for using it with
dvd2concat, but there are other usages, too; e.g. concatenating several
subfile files (each with its own start and end) with the concat protocol
won't be possible any more with this patch.
> Signed-off-by: Nicolas George <george at nsup.org>
> ---
> libavformat/avio.c | 34 +---------------------------------
> libavformat/dashdec.c | 2 +-
> libavformat/hls.c | 2 +-
> 3 files changed, 3 insertions(+), 35 deletions(-)
>
> diff --git a/libavformat/avio.c b/libavformat/avio.c
> index 4846bbd8c6..1ce290737a 100644
> --- a/libavformat/avio.c
> +++ b/libavformat/avio.c
> @@ -111,39 +111,8 @@ static int url_alloc_for_protocol(URLContext **puc, const URLProtocol *up,
> goto fail;
> }
> if (up->priv_data_class) {
> - char *start;
> *(const AVClass **)uc->priv_data = up->priv_data_class;
> av_opt_set_defaults(uc->priv_data);
> - if (av_strstart(uc->filename, up->name, (const char**)&start) && *start == ',') {
> - int ret= 0;
> - char *p= start;
> - char sep= *++p;
> - char *key, *val;
> - p++;
> -
> - if (strcmp(up->name, "subfile"))
> - ret = AVERROR(EINVAL);
> -
> - while(ret >= 0 && (key= strchr(p, sep)) && p<key && (val = strchr(key+1, sep))){
> - *val= *key= 0;
> - if (strcmp(p, "start") && strcmp(p, "end")) {
> - ret = AVERROR_OPTION_NOT_FOUND;
> - } else
> - ret= av_opt_set(uc->priv_data, p, key+1, 0);
> - if (ret == AVERROR_OPTION_NOT_FOUND)
> - av_log(uc, AV_LOG_ERROR, "Key '%s' not found.\n", p);
> - *val= *key= sep;
> - p= val+1;
> - }
> - if(ret<0 || p!=key){
> - av_log(uc, AV_LOG_ERROR, "Error parsing options string %s\n", start);
> - av_freep(&uc->priv_data);
> - av_freep(&uc);
> - err = AVERROR(EINVAL);
> - goto fail;
> - }
> - memmove(start, key+1, strlen(key));
> - }
> }
> }
> if (int_cb)
> @@ -255,8 +224,7 @@ static const struct URLProtocol *url_find_protocol(const char *filename)
> size_t proto_len = strspn(filename, URL_SCHEME_CHARS);
> int i;
>
> - if (filename[proto_len] != ':' &&
> - (strncmp(filename, "subfile,", 8) || !strchr(filename + proto_len + 1, ':')) ||
> + if (filename[proto_len] != ':' ||
> is_dos_path(filename))
> strcpy(proto_str, "file");
> else
> diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
> index 11966f905c..1d186802b3 100644
> --- a/libavformat/dashdec.c
> +++ b/libavformat/dashdec.c
> @@ -435,7 +435,7 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url,
> ;
> else if (av_strstart(url, "crypto", NULL) && !strncmp(proto_name, url + 7, strlen(proto_name)) && url[7 + strlen(proto_name)] == ':')
> ;
> - else if (strcmp(proto_name, "file") || !strncmp(url, "file,", 5))
> + else if (strcmp(proto_name, "file"))
> return AVERROR_INVALIDDATA;
>
> av_freep(pb);
> diff --git a/libavformat/hls.c b/libavformat/hls.c
> index 3c1b80f60c..e4d24b6fe0 100644
> --- a/libavformat/hls.c
> +++ b/libavformat/hls.c
> @@ -667,7 +667,7 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url,
> ;
> else if (av_strstart(url, "data", NULL) && !strncmp(proto_name, url + 5, strlen(proto_name)) && url[5 + strlen(proto_name)] == ':')
> ;
> - else if (strcmp(proto_name, "file") || !strncmp(url, "file,", 5))
> + else if (strcmp(proto_name, "file"))
> return AVERROR_INVALIDDATA;
>
> av_dict_copy(&tmp, *opts, 0);
>
- Previous message (by thread): [FFmpeg-devel] [PATCH 5/5] lavf/avio: remove support for proto, , opt, val, , syntax.
- Next message (by thread): [FFmpeg-devel] [PATCH 5/5] lavf/avio: remove support for proto, , opt, val, , syntax.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the ffmpeg-devel
mailing list