29static const uint8_t
test_iv[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18};
36 if (!
a || !
b ||
a->scheme !=
b->scheme ||
a->crypt_byte_block !=
b->crypt_byte_block ||
37 a->skip_byte_block !=
b->skip_byte_block ||
a->key_id_size !=
b->key_id_size ||
38 a->iv_size !=
b->iv_size ||
a->subsample_count !=
b->subsample_count)
41 if (memcmp(
a->key_id,
b->key_id,
a->key_id_size) != 0 ||
42 memcmp(
a->iv,
b->iv,
a->iv_size) != 0 ||
43 memcmp(
a->subsamples,
b->subsamples,
a->subsample_count *
sizeof(
a->subsamples[0])))
50 if (!
a || !
b ||
a->system_id_size !=
b->system_id_size ||
51 a->num_key_ids !=
b->num_key_ids ||
a->key_id_size !=
b->key_id_size ||
52 a->data_size !=
b->data_size)
55 if (memcmp(
a->system_id,
b->system_id,
a->system_id_size) != 0 ||
56 memcmp(
a->data,
b->data,
a->data_size) != 0)
59 for (uint32_t
i = 0;
i <
a->num_key_ids;
i++) {
60 if (memcmp(
a->key_ids[
i],
b->key_ids[
i],
a->key_id_size) != 0)
64 if (
a->next ||
b->next) {
65 if (!
a->next || !
b->next)
78 size_t side_data_size;
145 size_t side_data_size;
simple assert() macros that are a bit more flexible than ISO C assert().
#define av_assert0(cond)
assert() equivalent, that is always enabled.
#define i(width, name, range_min, range_max)
AVEncryptionInfo * av_encryption_info_alloc(uint32_t subsample_count, uint32_t key_id_size, uint32_t iv_size)
Allocates an AVEncryptionInfo structure and sub-pointers to hold the given number of subsamples.
AVEncryptionInfo * av_encryption_info_get_side_data(const uint8_t *buffer, size_t size)
Creates a copy of the AVEncryptionInfo that is contained in the given side data.
AVEncryptionInfo * av_encryption_info_clone(const AVEncryptionInfo *info)
Allocates an AVEncryptionInfo structure with a copy of the given data.
AVEncryptionInitInfo * av_encryption_init_info_get_side_data(const uint8_t *side_data, size_t side_data_size)
Creates a copy of the AVEncryptionInitInfo that is contained in the given side data.
uint8_t * av_encryption_init_info_add_side_data(const AVEncryptionInitInfo *info, size_t *side_data_size)
Allocates and initializes side data that holds a copy of the given encryption init info.
uint8_t * av_encryption_info_add_side_data(const AVEncryptionInfo *info, size_t *size)
Allocates and initializes side data that holds a copy of the given encryption info.
AVEncryptionInitInfo * av_encryption_init_info_alloc(uint32_t system_id_size, uint32_t num_key_ids, uint32_t key_id_size, uint32_t data_size)
Allocates an AVEncryptionInitInfo structure and sub-pointers to hold the given sizes.
void av_encryption_init_info_free(AVEncryptionInitInfo *info)
Frees the given encryption init info object.
void av_encryption_info_free(AVEncryptionInfo *info)
Frees the given encryption info object.
Memory handling functions.
This describes encryption info for a packet.
uint32_t skip_byte_block
Only used for pattern encryption.
uint8_t * iv
The initialization vector.
uint32_t crypt_byte_block
Only used for pattern encryption.
uint8_t * key_id
The ID of the key used to encrypt the packet.
AVSubsampleEncryptionInfo * subsamples
An array of subsample encryption info specifying how parts of the sample are encrypted.
uint32_t scheme
The fourcc encryption scheme, in big-endian byte order.
This describes info used to initialize an encryption key system.
uint8_t * data
Key-system specific initialization data.
struct AVEncryptionInitInfo * next
An optional pointer to the next initialization info in the list.
uint8_t ** key_ids
An array of key IDs this initialization data is for.
uint8_t * system_id
A unique identifier for the key system this is for, can be NULL if it is not known.
uint32_t key_id_size
The number of bytes in each key ID.
uint32_t num_key_ids
The number of key IDs.
This file is part of FFmpeg.
static const uint8_t test_data[]
static const AVSubsampleEncryptionInfo test_subsamples[]
static int compare_encryption_info(const AVEncryptionInfo *a, const AVEncryptionInfo *b)
static AVEncryptionInitInfo * create_init_info(void)
static const size_t test_subsample_count
static const uint8_t test_key_id_2[]
static void run_encryption_init_info_test(void)
static const uint8_t test_iv[]
static const uint8_t test_key_id[]
static int compare_encryption_init_info(const AVEncryptionInitInfo *a, const AVEncryptionInitInfo *b)
static void run_encryption_info_test(void)
static const uint8_t test_system_id[]
static void copy(const float *p1, float *p2, const int length)