[FFmpeg-cvslog] avformat/http: Introduce ff_http_averror()
Andrey Utkin
git at videolan.org
Mon Oct 20 04:32:14 CEST 2014
ffmpeg | branch: master | Andrey Utkin <andrey.utkin at corp.bluecherry.net> | Sat Oct 18 00:24:00 2014 +0400| [9d86ce783bf468e83c7d84240739baffd800d114] | committer: Michael Niedermayer
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 at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9d86ce783bf468e83c7d84240739baffd800d114
---
libavformat/http.c | 17 +++++++++++++++++
libavformat/http.h | 2 ++
2 files changed, 19 insertions(+)
diff --git a/libavformat/http.c b/libavformat/http.c
index 018d25c..1958a1b 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 be8ae7f..7d02713 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 */
More information about the ffmpeg-cvslog
mailing list