FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
hash.h File Reference
#include <stdint.h>

Go to the source code of this file.

Macros

#define AV_HASH_MAX_SIZE   64
 Maximum value that av_hash_get_size will currently return.
 

Functions

int av_hash_alloc (struct AVHashContext **ctx, const char *name)
 Allocate a hash context for the algorithm specified by name.
 
const char * av_hash_names (int i)
 Get the names of available hash algorithms.
 
const char * av_hash_get_name (const struct AVHashContext *ctx)
 Get the name of the algorithm corresponding to the given hash context.
 
int av_hash_get_size (const struct AVHashContext *ctx)
 Get the size of the resulting hash value in bytes.
 
void av_hash_init (struct AVHashContext *ctx)
 Initialize or reset a hash context.
 
void av_hash_update (struct AVHashContext *ctx, const uint8_t *src, int len)
 Update a hash context with additional data.
 
void av_hash_final (struct AVHashContext *ctx, uint8_t *dst)
 Finalize a hash context and compute the actual hash value.
 
void av_hash_freep (struct AVHashContext **ctx)
 Free hash context.
 

Macro Definition Documentation

#define AV_HASH_MAX_SIZE   64

Maximum value that av_hash_get_size will currently return.

You can use this if you absolutely want or need to use static allocation and are fine with not supporting hashes newly added to libavutil without recompilation. Note that you still need to check against av_hash_get_size, adding new hashes with larger sizes will not be considered an ABI change and should not cause your code to overflow a buffer.

Definition at line 61 of file hash.h.

Referenced by md5_finish().

Function Documentation

int av_hash_alloc ( struct AVHashContext **  ctx,
const char *  name 
)

Allocate a hash context for the algorithm specified by name.

Returns
>= 0 for success, a negative error code for failure
Note
The context is not initialized, you must call av_hash_init().

Definition at line 99 of file hash.c.

Referenced by main().

const char* av_hash_names ( int  i)

Get the names of available hash algorithms.

This function can be used to enumerate the algorithms.

Parameters
iindex of the hash algorithm, starting from 0
Returns
a pointer to a static string or NULL if i is out of range

Definition at line 83 of file hash.c.

Referenced by usage().

const char* av_hash_get_name ( const struct AVHashContext ctx)

Get the name of the algorithm corresponding to the given hash context.

int av_hash_get_size ( const struct AVHashContext ctx)

Get the size of the resulting hash value in bytes.

The pointer passed to av_hash_final have space for at least this many bytes.

void av_hash_init ( struct AVHashContext ctx)

Initialize or reset a hash context.

Definition at line 136 of file hash.c.

Referenced by check().

void av_hash_update ( struct AVHashContext ctx,
const uint8_t src,
int  len 
)

Update a hash context with additional data.

Definition at line 157 of file hash.c.

Referenced by check().

void av_hash_final ( struct AVHashContext ctx,
uint8_t dst 
)

Finalize a hash context and compute the actual hash value.

Definition at line 178 of file hash.c.

Referenced by finish(), and md5_finish().

void av_hash_freep ( struct AVHashContext **  ctx)

Free hash context.

Definition at line 199 of file hash.c.

Referenced by main().