diff options
author | Ryan Martell <rdm4@martellventures.com> | 2006-10-29 11:53:07 +0000 |
---|---|---|
committer | Guillaume Poirier <gpoirier@mplayerhq.hu> | 2006-10-29 11:53:07 +0000 |
commit | a7c6aa73fe5cbcc16c28a22da3a9bc29e2471e3a (patch) | |
tree | b352a06ca89705078a785d1c80f41aee0319cb90 | |
parent | d0deedcb07adf60f23fa54d0ed7dcf7ca29ea833 (diff) | |
download | ffmpeg-a7c6aa73fe5cbcc16c28a22da3a9bc29e2471e3a.tar.gz |
switch to common base64 routines in lavf
Patch by Ryan Martell % rdm4 A martellventures P com %
Original thread:
Date: Oct 29, 2006 2:45 AM
Subject: Re: [Ffmpeg-devel] [PATCH] Base64 code
Originally committed as revision 6832 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavformat/http.c | 38 |
1 files changed, 2 insertions, 36 deletions
diff --git a/libavformat/http.c b/libavformat/http.c index c9944fba4f..34dd5031a1 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -30,6 +30,7 @@ #endif #include <netdb.h> +#include "base64.h" /* XXX: POST protocol is not completly implemented because ffmpeg use only a subset of it */ @@ -51,7 +52,6 @@ typedef struct { static int http_connect(URLContext *h, const char *path, const char *hoststr, const char *auth); static int http_write(URLContext *h, uint8_t *buf, int size); -static char *b64_encode(const unsigned char *src ); /* return non zero if error */ @@ -189,7 +189,7 @@ static int http_connect(URLContext *h, const char *path, const char *hoststr, /* send http header */ post = h->flags & URL_WRONLY; - auth_b64 = b64_encode(auth); + auth_b64 = av_base64_encode((uint8_t *)auth, strlen(auth)); snprintf(s->buffer, sizeof(s->buffer), "%s %s HTTP/1.0\r\n" "User-Agent: %s\r\n" @@ -287,37 +287,3 @@ URLProtocol http_protocol = { NULL, /* seek */ http_close, }; - -/***************************************************************************** - * b64_encode: stolen from VLC's http.c - * simplified by michael - *****************************************************************************/ - -static char *b64_encode( const unsigned char *src ) -{ - static const char b64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - unsigned int len= strlen(src); - char *ret, *dst; - unsigned i_bits = 0; - unsigned i_shift = 0; - - if(len < UINT_MAX/4){ - ret=dst= av_malloc( len * 4 / 3 + 12 ); - }else - return NULL; - - while(*src){ - i_bits = (i_bits << 8) + *src++; - i_shift += 8; - - do{ - *dst++ = b64[(i_bits << 6 >> i_shift) & 0x3f]; - i_shift -= 6; - }while( i_shift > 6 || (*src == 0 && i_shift>0)); - } - *dst++ = '='; - *dst = '\0'; - - return ret; -} - |