[Ffmpeg-devel] [PATCH] Base64 code

Michael Niedermayer michaelni
Sat Oct 28 01:11:53 CEST 2006


Hi

On Fri, Oct 27, 2006 at 05:07:21PM -0500, Ryan Martell wrote:
[...]
> >what about
> >
> >static uint8_t map2[80] = {
> >                      0x3e, 0xff, 0xff, 0xff, 0x3f,
> >    0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b,
> >    0x3c, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
> >    0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
> >    0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
> >    0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,
> >    0x17, 0x18, 0x19, 0xff, 0xff, 0xff, 0xff, 0xff,
> >    0xff, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
> >    0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
> >    0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
> >    0x31, 0x32, 0x33
> >};
> >
> >int av_b64_decode(uint8_t * out, const char *in, int out_length){
> >    int i, v;
> >    uint8_t *dst = out;
> >
> >    v = 0;
> >    for (i = 0; in[i] && in[i] != '='; i++) {
> >        unsigned int ndx= in[i]-43;
> >        if (ndx > 79U || map2[ndx] == 0xff)
> >            return -1;
> >        v = (v << 6) + map2[ndx];
> >        if (i & 3) {
> >            if (dst - out < out_length) {
> >                *dst++ = v >> (6 - 2 * (i & 3));
> >            }
> >        }
> >    }
> >
> >    return (dst - out);
> >}
> smaller static code blocks are better.  Done. (although I let the  
> compiler count for me on the >79U part: sizeof(map2)/sizeof(map2[0])).

patch looks ok

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is




More information about the ffmpeg-devel mailing list