FFmpeg  4.0
Data Structures | Functions
encryption_info.h File Reference
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  AVSubsampleEncryptionInfo
 This file is part of FFmpeg. More...
 
struct  AVEncryptionInfo
 This describes encryption info for a packet. More...
 
struct  AVEncryptionInitInfo
 This describes info used to initialize an encryption key system. More...
 

Functions

AVEncryptionInfoav_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. More...
 
AVEncryptionInfoav_encryption_info_clone (const AVEncryptionInfo *info)
 Allocates an AVEncryptionInfo structure with a copy of the given data. More...
 
void av_encryption_info_free (AVEncryptionInfo *info)
 Frees the given encryption info object. More...
 
AVEncryptionInfoav_encryption_info_get_side_data (const uint8_t *side_data, size_t side_data_size)
 Creates a copy of the AVEncryptionInfo that is contained in the given side data. More...
 
uint8_tav_encryption_info_add_side_data (const AVEncryptionInfo *info, size_t *side_data_size)
 Allocates and initializes side data that holds a copy of the given encryption info. More...
 
AVEncryptionInitInfoav_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. More...
 
void av_encryption_init_info_free (AVEncryptionInitInfo *info)
 Frees the given encryption init info object. More...
 
AVEncryptionInitInfoav_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. More...
 
uint8_tav_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. More...
 

Function Documentation

◆ av_encryption_info_alloc()

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.

This will allocate pointers for the key ID, IV, and subsample entries, set the size members, and zero-initialize the rest.

Parameters
subsample_countThe number of subsamples.
key_id_sizeThe number of bytes in the key ID, should be 16.
key_id_sizeThe number of bytes in the IV, should be 16.
Returns
The new AVEncryptionInfo structure, or NULL on error.

Definition at line 39 of file encryption_info.c.

Referenced by av_encryption_info_clone(), and av_encryption_info_get_side_data().

◆ av_encryption_info_clone()

AVEncryptionInfo* av_encryption_info_clone ( const AVEncryptionInfo info)

Allocates an AVEncryptionInfo structure with a copy of the given data.

Returns
The new AVEncryptionInfo structure, or NULL on error.

Definition at line 63 of file encryption_info.c.

◆ av_encryption_info_free()

void av_encryption_info_free ( AVEncryptionInfo info)

Frees the given encryption info object.

This MUST NOT be used to free the side-data data pointer, that should use normal side-data methods.

Definition at line 80 of file encryption_info.c.

Referenced by av_encryption_info_alloc().

◆ av_encryption_info_get_side_data()

AVEncryptionInfo* av_encryption_info_get_side_data ( const uint8_t side_data,
size_t  side_data_size 
)

Creates a copy of the AVEncryptionInfo that is contained in the given side data.

The resulting object should be passed to av_encryption_info_free() when done.

Returns
The new AVEncryptionInfo structure, or NULL on error.

Definition at line 90 of file encryption_info.c.

◆ av_encryption_info_add_side_data()

uint8_t* av_encryption_info_add_side_data ( const AVEncryptionInfo info,
size_t *  side_data_size 
)

Allocates and initializes side data that holds a copy of the given encryption info.

The resulting pointer should be either freed using av_free or given to av_packet_add_side_data().

Returns
The new side-data pointer, or NULL.

Definition at line 125 of file encryption_info.c.

◆ av_encryption_init_info_alloc()

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.

This will allocate pointers and set all the fields.

Returns
The new AVEncryptionInitInfo structure, or NULL on error.

Definition at line 173 of file encryption_info.c.

Referenced by av_encryption_init_info_get_side_data().

◆ av_encryption_init_info_free()

void av_encryption_init_info_free ( AVEncryptionInitInfo info)

Frees the given encryption init info object.

This MUST NOT be used to free the side-data data pointer, that should use normal side-data methods.

Definition at line 211 of file encryption_info.c.

Referenced by av_encryption_init_info_alloc().

◆ av_encryption_init_info_get_side_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.

The resulting object should be passed to av_encryption_init_info_free() when done.

Returns
The new AVEncryptionInitInfo structure, or NULL on error.

Definition at line 225 of file encryption_info.c.

◆ av_encryption_init_info_add_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.

The resulting pointer should be either freed using av_free or given to av_packet_add_side_data().

Returns
The new side-data pointer, or NULL.

Definition at line 258 of file encryption_info.c.