Merge commit '53151723e377b9c43f876e20d7f27a17993256c8'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 28 Oct 2013 11:17:57 +0000 (12:17 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 28 Oct 2013 11:17:57 +0000 (12:17 +0100)
* commit '53151723e377b9c43f876e20d7f27a17993256c8':
  avio: K&R formatting cosmetics

Conflicts:
libavformat/avio.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavformat/avio.c

@@@ -143,38 -135,9 +145,38 @@@ static int url_alloc_for_protocol(URLCo
      uc->max_packet_size = 0; /* default: stream file */
      if (up->priv_data_size) {
          uc->priv_data = av_mallocz(up->priv_data_size);
 +        if (!uc->priv_data) {
 +            err = AVERROR(ENOMEM);
 +            goto fail;
 +        }
          if (up->priv_data_class) {
-             *(const AVClass**)uc->priv_data = up->priv_data_class;
 +            int proto_len= strlen(up->name);
 +            char *start = strchr(uc->filename, ',');
+             *(const AVClass **)uc->priv_data = up->priv_data_class;
              av_opt_set_defaults(uc->priv_data);
 +            if(!strncmp(up->name, uc->filename, proto_len) && uc->filename + proto_len == start){
 +                int ret= 0;
 +                char *p= start;
 +                char sep= *++p;
 +                char *key, *val;
 +                p++;
 +                while(ret >= 0 && (key= strchr(p, sep)) && p<key && (val = strchr(key+1, sep))){
 +                    *val= *key= 0;
 +                    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)
  
      *puc = uc;
      return 0;
 fail:
+ fail:
      *puc = NULL;
 +    if (uc)
 +        av_freep(&uc->priv_data);
 +    av_freep(&uc);
  #if CONFIG_NETWORK
      if (up->flags & URL_PROTOCOL_FLAG_NETWORK)
          ff_network_close();
@@@ -222,34 -185,24 +227,35 @@@ int ffurl_alloc(URLContext **puc, cons
      char proto_str[128], proto_nested[128], *ptr;
      size_t proto_len = strspn(filename, URL_SCHEME_CHARS);
  
 -    if (filename[proto_len] != ':' || is_dos_path(filename))
 +    if (!first_protocol) {
 +        av_log(NULL, AV_LOG_WARNING, "No URL Protocols are registered. "
 +                                     "Missing call to av_register_all()?\n");
 +    }
 +
 +    if (filename[proto_len] != ':' &&
 +        (filename[proto_len] != ',' || !strchr(filename + proto_len + 1, ':')) ||
 +        is_dos_path(filename))
          strcpy(proto_str, "file");
      else
-         av_strlcpy(proto_str, filename, FFMIN(proto_len+1, sizeof(proto_str)));
+         av_strlcpy(proto_str, filename,
+                    FFMIN(proto_len + 1, sizeof(proto_str)));
  
 +    if ((ptr = strchr(proto_str, ',')))
 +        *ptr = '\0';
      av_strlcpy(proto_nested, proto_str, sizeof(proto_nested));
      if ((ptr = strchr(proto_nested, '+')))
          *ptr = '\0';
  
      while (up = ffurl_protocol_next(up)) {
          if (!strcmp(proto_str, up->name))
-             return url_alloc_for_protocol (puc, up, filename, flags, int_cb);
+             return url_alloc_for_protocol(puc, up, filename, flags, int_cb);
          if (up->flags & URL_PROTOCOL_FLAG_NESTED_SCHEME &&
              !strcmp(proto_nested, up->name))
-             return url_alloc_for_protocol (puc, up, filename, flags, int_cb);
+             return url_alloc_for_protocol(puc, up, filename, flags, int_cb);
      }
      *puc = NULL;
 +    if (!strcmp("https", proto_str))
 +        av_log(NULL, AV_LOG_WARNING, "https protocol not found, recompile with openssl or gnutls enabled.\n");
      return AVERROR_PROTOCOL_NOT_FOUND;
  }
  
@@@ -280,9 -235,7 +289,9 @@@ static inline int retry_transfer_wrappe
  
      len = 0;
      while (len < size_min) {
-         ret = transfer_func(h, buf+len, size-len);
 +        if (ff_check_interrupt(&h->interrupt_callback))
 +            return AVERROR_EXIT;
+         ret = transfer_func(h, buf + len, size - len);
          if (ret == AVERROR(EINTR))
              continue;
          if (h->flags & AVIO_FLAG_NONBLOCK)
          } else if (ret < 1)
              return (ret < 0 && ret != AVERROR_EOF) ? ret : len;
          if (ret)
-            fast_retries = FFMAX(fast_retries, 2);
+             fast_retries = FFMAX(fast_retries, 2);
          len += ret;
 -        if (ff_check_interrupt(&h->interrupt_callback))
 -            return AVERROR_EXIT;
      }
      return len;
  }
@@@ -344,11 -292,11 +353,12 @@@ int64_t ffurl_seek(URLContext *h, int64
      return ret;
  }
  
 -int ffurl_close(URLContext *h)
 +int ffurl_closep(URLContext **hh)
  {
 +    URLContext *h= *hh;
      int ret = 0;
-     if (!h) return 0; /* can happen when ffurl_open fails */
+     if (!h)
+         return 0;     /* can happen when ffurl_open fails */
  
      if (h->is_connected && h->prot->url_close)
          ret = h->prot->url_close(h);