diff options
author | Andrey Utkin <andrey.utkin@corp.bluecherry.net> | 2014-10-18 00:24:00 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-10-20 04:31:46 +0200 |
commit | 9d86ce783bf468e83c7d84240739baffd800d114 (patch) | |
tree | 2d384608bede225e725a246be537632ac38dc273 | |
parent | d4e62ebae7f47d7ad5479ec5f71f903f988dd19c (diff) | |
download | ffmpeg-9d86ce783bf468e83c7d84240739baffd800d114.tar.gz |
avformat/http: Introduce ff_http_averror()
int ff_http_averror(int status_code, int default_averror)
This helper function returns AVERROR_ value from 3-digit HTTP status
code.
Second argument, default_averror, is used if no specific AVERROR_ is
available. It is introduced because in different places of code
different return codes are used - -1, AVERROR(EIO), AVERROR_INVALIDDATA.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/http.c | 17 | ||||
-rw-r--r-- | libavformat/http.h | 2 |
2 files changed, 19 insertions, 0 deletions
diff --git a/libavformat/http.c b/libavformat/http.c index 018d25c9d7..1958a1b4d5 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -272,6 +272,23 @@ int ff_http_do_new_request(URLContext *h, const char *uri) return ret; } +int ff_http_averror(int status_code, int default_averror) +{ + switch (status_code) { + case 400: return AVERROR_HTTP_BAD_REQUEST; + case 401: return AVERROR_HTTP_UNAUTHORIZED; + case 403: return AVERROR_HTTP_FORBIDDEN; + case 404: return AVERROR_HTTP_NOT_FOUND; + default: break; + } + if (status_code >= 400 && status_code <= 499) + return AVERROR_HTTP_OTHER_4XX; + else if (status_code >= 500) + return AVERROR_HTTP_SERVER_ERROR; + else + return default_averror; +} + static int http_open(URLContext *h, const char *uri, int flags, AVDictionary **options) { diff --git a/libavformat/http.h b/libavformat/http.h index be8ae7f460..7d02713e31 100644 --- a/libavformat/http.h +++ b/libavformat/http.h @@ -47,4 +47,6 @@ void ff_http_init_auth_state(URLContext *dest, const URLContext *src); */ int ff_http_do_new_request(URLContext *h, const char *uri); +int ff_http_averror(int status_code, int default_averror); + #endif /* AVFORMAT_HTTP_H */ |