[Ffmpeg-cvslog] r6832 - trunk/libavformat/http.c

gpoirier subversion
Sun Oct 29 12:53:08 CET 2006


Author: gpoirier
Date: Sun Oct 29 12:53:07 2006
New Revision: 6832

Modified:
   trunk/libavformat/http.c

Log:
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


Modified: trunk/libavformat/http.c
==============================================================================
--- trunk/libavformat/http.c	(original)
+++ trunk/libavformat/http.c	Sun Oct 29 12:53:07 2006
@@ -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 @@
 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 @@
     /* 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 @@
     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;
-}
-




More information about the ffmpeg-cvslog mailing list