#include "libavcodec/opt.h"
#include "os_support.h"
#include "avformat.h"
+#if CONFIG_NETWORK
+#include "network.h"
+#endif
#if LIBAVFORMAT_VERSION_MAJOR >= 53
/** @name Logging context. */
URLContext *uc;
int err;
+#if CONFIG_NETWORK
+ if (!ff_network_init())
+ return AVERROR(EIO);
+#endif
uc = av_mallocz(sizeof(URLContext) + strlen(filename) + 1);
if (!uc) {
err = AVERROR(ENOMEM);
err = up->url_open(uc, filename, flags);
if (err < 0) {
av_free(uc);
- *puc = NULL;
- return err;
+ goto fail;
}
//We must be careful here as url_seek() could be slow, for example for http
return 0;
fail:
*puc = NULL;
+#if CONFIG_NETWORK
+ ff_network_close();
+#endif
return err;
}
if (!h->prot->url_seek)
return AVERROR(EPIPE);
- ret = h->prot->url_seek(h, pos, whence);
+ ret = h->prot->url_seek(h, pos, whence & ~AVSEEK_FORCE);
return ret;
}
if (h->prot->url_close)
ret = h->prot->url_close(h);
+#if CONFIG_NETWORK
+ ff_network_close();
+#endif
av_free(h);
return ret;
}