X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavutil%2Fbase64.h;h=4750cf5c724aeea26a3940fb8ba9ffe6264507df;hb=305d3d9f1f7f0bdc18744f376a0ff5b012e4e6cf;hp=5552e30fe2b90aeb4ad9d8d9eaa9e1e90e356ce1;hpb=5118bd441d47fc56d465110cd409afbcca70e3a2;p=ffmpeg diff --git a/libavutil/base64.h b/libavutil/base64.h index 5552e30fe2b..4750cf5c724 100644 --- a/libavutil/base64.h +++ b/libavutil/base64.h @@ -1,20 +1,20 @@ /* * Copyright (c) 2006 Ryan Martell. (rdm4@martellventures.com) * - * This file is part of FFmpeg. + * This file is part of Libav. * - * FFmpeg is free software; you can redistribute it and/or + * Libav is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * - * FFmpeg is distributed in the hope that it will be useful, + * Libav is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software + * License along with Libav; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -24,16 +24,42 @@ #include /** - * Decodes Base64. - * Parameter order is the same as strncpy(). + * @defgroup lavu_base64 Base64 + * @ingroup lavu_crypto + * @{ */ -int av_base64_decode(uint8_t * out, const char *in, int out_size); + + +/** + * Decode a base64-encoded string. + * + * @param out buffer for decoded data + * @param in null-terminated input string + * @param out_size size in bytes of the out buffer, must be at + * least 3/4 of the length of in + * @return number of bytes written, or a negative value in case of + * invalid input + */ +int av_base64_decode(uint8_t *out, const char *in, int out_size); /** - * Encodes Base64. - * @param src data, not a string - * @param buf output string + * Encode data to base64 and null-terminate. + * + * @param out buffer for encoded data + * @param out_size size in bytes of the output buffer, must be at + * least AV_BASE64_SIZE(in_size) + * @param in_size size in bytes of the 'in' buffer + * @return 'out' or NULL in case of error */ char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size); +/** + * Calculate the output size needed to base64-encode x bytes. + */ +#define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) + + /** + * @} + */ + #endif /* AVUTIL_BASE64_H */