lib/crypto/MD5: add option to use libavutil instead of libgcrypt
This commit is contained in:
parent
433e18b247
commit
5c550e8b33
@ -28,20 +28,38 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MD5.hxx"
|
#include "MD5.hxx"
|
||||||
|
#include "util/HexFormat.hxx"
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_LIBAVUTIL
|
||||||
|
extern "C" {
|
||||||
|
#include <libavutil/md5.h>
|
||||||
|
}
|
||||||
|
#else
|
||||||
#include "lib/gcrypt/MD5.hxx"
|
#include "lib/gcrypt/MD5.hxx"
|
||||||
#include "lib/gcrypt/Init.hxx"
|
#include "lib/gcrypt/Init.hxx"
|
||||||
#include "util/HexFormat.hxx"
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
GlobalInitMD5() noexcept
|
GlobalInitMD5() noexcept
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_LIBAVUTIL
|
||||||
|
/* no initialization necessary */
|
||||||
|
#else
|
||||||
Gcrypt::Init();
|
Gcrypt::Init();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
std::array<uint8_t, 16>
|
std::array<uint8_t, 16>
|
||||||
MD5(ConstBuffer<void> input) noexcept
|
MD5(ConstBuffer<void> input) noexcept
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_LIBAVUTIL
|
||||||
|
std::array<uint8_t, 16> result;
|
||||||
|
av_md5_sum(&result.front(), (const uint8_t *)input.data, input.size);
|
||||||
|
return result;
|
||||||
|
#else
|
||||||
return Gcrypt::MD5(input);
|
return Gcrypt::MD5(input);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuffer<33>
|
StringBuffer<33>
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
if gcrypt_dep.found()
|
if libavutil_dep.found() or gcrypt_dep.found()
|
||||||
crypto_md5 = static_library(
|
crypto_md5 = static_library(
|
||||||
'crypto_md5',
|
'crypto_md5',
|
||||||
'MD5.cxx',
|
'MD5.cxx',
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
|
libavutil_dep,
|
||||||
gcrypt_dep,
|
gcrypt_dep,
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
libavformat_dep = dependency('libavformat', version: '>= 57.40', required: get_option('ffmpeg'))
|
libavformat_dep = dependency('libavformat', version: '>= 57.40', required: get_option('ffmpeg'))
|
||||||
libavcodec_dep = dependency('libavcodec', version: '>= 57.48', required: get_option('ffmpeg'))
|
libavcodec_dep = dependency('libavcodec', version: '>= 57.48', required: get_option('ffmpeg'))
|
||||||
libavutil_dep = dependency('libavutil', version: '>= 55.27', required: get_option('ffmpeg'))
|
libavutil_dep = dependency('libavutil', version: '>= 55.27', required: get_option('ffmpeg'))
|
||||||
|
conf.set('HAVE_LIBAVUTIL', libavutil_dep.found())
|
||||||
|
|
||||||
enable_ffmpeg = libavformat_dep.found() and libavcodec_dep.found() and libavutil_dep.found()
|
enable_ffmpeg = libavformat_dep.found() and libavcodec_dep.found() and libavutil_dep.found()
|
||||||
conf.set('ENABLE_FFMPEG', enable_ffmpeg)
|
conf.set('ENABLE_FFMPEG', enable_ffmpeg)
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
if libavutil_dep.found()
|
||||||
|
# if we have FFmpeg, we can use its MD5 implementation and we don't
|
||||||
|
# need libgcrypt
|
||||||
|
gcrypt_dep = dependency('', required: false)
|
||||||
|
subdir_done()
|
||||||
|
endif
|
||||||
|
|
||||||
# Since version 0.49.0 Meson has native libgcrypt dependency support, which has
|
# Since version 0.49.0 Meson has native libgcrypt dependency support, which has
|
||||||
# the advantage over find_library() as it uses libgcrypt-config to query the
|
# the advantage over find_library() as it uses libgcrypt-config to query the
|
||||||
# required linker flags.
|
# required linker flags.
|
||||||
|
Loading…
Reference in New Issue
Block a user