World of Might and Magic
0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
|
An abstraction layer for all hash functions supported by libavutil. Подробнее...
Файлы | |
файл | hash.h |
Функции | |
int | av_hash_alloc (struct AVHashContext **ctx, const char *name) |
const char * | av_hash_names (int i) |
const char * | av_hash_get_name (const struct AVHashContext *ctx) |
int | av_hash_get_size (const struct AVHashContext *ctx) |
void | av_hash_init (struct AVHashContext *ctx) |
void | av_hash_update (struct AVHashContext *ctx, const uint8_t *src, int len) |
void | av_hash_update (struct AVHashContext *ctx, const uint8_t *src, size_t len) |
void | av_hash_final (struct AVHashContext *ctx, uint8_t *dst) |
void | av_hash_final_bin (struct AVHashContext *ctx, uint8_t *dst, int size) |
void | av_hash_final_hex (struct AVHashContext *ctx, uint8_t *dst, int size) |
void | av_hash_final_b64 (struct AVHashContext *ctx, uint8_t *dst, int size) |
void | av_hash_freep (struct AVHashContext **ctx) |
An abstraction layer for all hash functions supported by libavutil.
If your application needs to support a wide range of different hash functions, then the Generic Hashing API is for you. It provides a generic, reusable API for all hash functions implemented in libavutil. If you just need to use one particular hash function, use the individual hash directly.
A basic template for using the Generic Hashing API follows:
If the CRC32 hash is selected, the AV_CRC_32_IEEE polynomial will be used.
If the Murmur3 hash is selected, the default seed will be used. See Murmur3 for more information.
int av_hash_alloc | ( | struct AVHashContext ** | ctx, |
const char * | name | ||
) |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Allocate a hash context for the algorithm specified by name.
const char* av_hash_names | ( | int | i | ) |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Get the names of available hash algorithms.
This function can be used to enumerate the algorithms.
[in] | i | Index of the hash algorithm, starting from 0 |
NULL
if i
is out of range const char* av_hash_get_name | ( | const struct AVHashContext * | ctx | ) |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Get the name of the algorithm corresponding to the given hash context.
int av_hash_get_size | ( | const struct AVHashContext * | ctx | ) |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Get the size of the resulting hash value in bytes.
The maximum value this function will currently return is available as macro #AV_HASH_MAX_SIZE.
[in] | ctx | Hash context |
void av_hash_init | ( | struct AVHashContext * | ctx | ) |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Initialize or reset a hash context.
[in,out] | ctx | Hash context |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Update a hash context with additional data.
[in,out] | ctx | Hash context |
[in] | src | Data to be added to the hash context |
[in] | len | Size of the additional data |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Finalize a hash context and compute the actual hash value.
The minimum size of dst
buffer is given by av_hash_get_size() or #AV_HASH_MAX_SIZE. The use of the latter macro is discouraged.
It is not safe to update or finalize a hash context again, if it has already been finalized.
[in,out] | ctx | Hash context |
[out] | dst | Where the final hash value will be stored |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Finalize a hash context and store the actual hash value in a buffer.
It is not safe to update or finalize a hash context again, if it has already been finalized.
If size
is smaller than the hash size (given by av_hash_get_size()), the hash is truncated; if size is larger, the buffer is padded with 0.
[in,out] | ctx | Hash context |
[out] | dst | Where the final hash value will be stored |
[in] | size | Number of bytes to write to dst |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Finalize a hash context and store the hexadecimal representation of the actual hash value as a string.
It is not safe to update or finalize a hash context again, if it has already been finalized.
The string is always 0-terminated.
If size
is smaller than 2 * hash_size + 1
, where hash_size
is the value returned by av_hash_get_size(), the string will be truncated.
[in,out] | ctx | Hash context |
[out] | dst | Where the string will be stored |
[in] | size | Maximum number of bytes to write to dst |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Finalize a hash context and store the Base64 representation of the actual hash value as a string.
It is not safe to update or finalize a hash context again, if it has already been finalized.
The string is always 0-terminated.
If size
is smaller than AV_BASE64_SIZE(hash_size), where hash_size
is the value returned by av_hash_get_size(), the string will be truncated.
[in,out] | ctx | Hash context |
[out] | dst | Where the final hash value will be stored |
[in] | size | Maximum number of bytes to write to dst |
void av_hash_freep | ( | struct AVHashContext ** | ctx | ) |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/hash.h>
Free hash context and set hash context pointer to NULL
.
[in,out] | ctx | Pointer to hash context |