Mercurial > hg > pmhd
annotate ffmpeg/tests/base64.c @ 13:844d341cf643 tip
Back up before ISMIR
author | Yading Song <yading.song@eecs.qmul.ac.uk> |
---|---|
date | Thu, 31 Oct 2013 13:17:06 +0000 |
parents | f445c3017523 |
children |
rev | line source |
---|---|
yading@11 | 1 /* |
yading@11 | 2 * This file is part of FFmpeg. |
yading@11 | 3 * |
yading@11 | 4 * FFmpeg is free software; you can redistribute it and/or |
yading@11 | 5 * modify it under the terms of the GNU Lesser General Public |
yading@11 | 6 * License as published by the Free Software Foundation; either |
yading@11 | 7 * version 2.1 of the License, or (at your option) any later version. |
yading@11 | 8 * |
yading@11 | 9 * FFmpeg is distributed in the hope that it will be useful, |
yading@11 | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
yading@11 | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
yading@11 | 12 * Lesser General Public License for more details. |
yading@11 | 13 * |
yading@11 | 14 * You should have received a copy of the GNU Lesser General Public |
yading@11 | 15 * License along with FFmpeg; if not, write to the Free Software |
yading@11 | 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
yading@11 | 17 */ |
yading@11 | 18 |
yading@11 | 19 /* |
yading@11 | 20 * Based on libavutil/base64.c |
yading@11 | 21 */ |
yading@11 | 22 |
yading@11 | 23 #include <stdio.h> |
yading@11 | 24 |
yading@11 | 25 int main(void) |
yading@11 | 26 { |
yading@11 | 27 static const char b64[] = |
yading@11 | 28 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; |
yading@11 | 29 unsigned i_bits = 0; |
yading@11 | 30 int i_shift = 0; |
yading@11 | 31 int out_len = 0; |
yading@11 | 32 int in; |
yading@11 | 33 |
yading@11 | 34 #define putb64() \ |
yading@11 | 35 do { \ |
yading@11 | 36 putchar(b64[(i_bits << 6 >> i_shift) & 0x3f]); \ |
yading@11 | 37 out_len++; \ |
yading@11 | 38 i_shift -= 6; \ |
yading@11 | 39 } while (0) |
yading@11 | 40 |
yading@11 | 41 while ((in = getchar()) != EOF) { |
yading@11 | 42 i_bits = (i_bits << 8) + in; |
yading@11 | 43 i_shift += 8; |
yading@11 | 44 while (i_shift > 6) |
yading@11 | 45 putb64(); |
yading@11 | 46 } |
yading@11 | 47 while (i_shift > 0) |
yading@11 | 48 putb64(); |
yading@11 | 49 while (out_len++ & 3) |
yading@11 | 50 putchar('='); |
yading@11 | 51 putchar('\n'); |
yading@11 | 52 |
yading@11 | 53 return 0; |
yading@11 | 54 } |