FFmpeg  4.0
Data Structures | Macros | Functions
movenccenc.h File Reference
#include "libavutil/aes_ctr.h"
#include "avformat.h"
#include "avio.h"

Go to the source code of this file.

Data Structures

struct  MOVMuxCencContext
 

Macros

#define CENC_KID_SIZE   (16)
 

Functions

int ff_mov_cenc_init (MOVMuxCencContext *ctx, uint8_t *encryption_key, int use_subsamples, int bitexact)
 Initialize a CENC context. More...
 
void ff_mov_cenc_free (MOVMuxCencContext *ctx)
 Free a CENC context. More...
 
int ff_mov_cenc_write_packet (MOVMuxCencContext *ctx, AVIOContext *pb, const uint8_t *buf_in, int size)
 Write a fully encrypted packet. More...
 
int ff_mov_cenc_avc_parse_nal_units (MOVMuxCencContext *ctx, AVIOContext *pb, const uint8_t *buf_in, int size)
 Parse AVC NAL units from annex B format, the nal size and type are written in the clear while the body is encrypted. More...
 
int ff_mov_cenc_avc_write_nal_units (AVFormatContext *s, MOVMuxCencContext *ctx, int nal_length_size, AVIOContext *pb, const uint8_t *buf_in, int size)
 Write AVC NAL units that are in MP4 format, the nal size and type are written in the clear while the body is encrypted. More...
 
void ff_mov_cenc_write_stbl_atoms (MOVMuxCencContext *ctx, AVIOContext *pb)
 Write the cenc atoms that should reside inside stbl. More...
 
int ff_mov_cenc_write_sinf_tag (struct MOVTrack *track, AVIOContext *pb, uint8_t *kid)
 Write the sinf atom, contained inside stsd. More...
 

Macro Definition Documentation

◆ CENC_KID_SIZE

#define CENC_KID_SIZE   (16)

Definition at line 29 of file movenccenc.h.

Referenced by mov_cenc_write_schi_tag(), and mov_init().

Function Documentation

◆ ff_mov_cenc_init()

int ff_mov_cenc_init ( MOVMuxCencContext ctx,
uint8_t encryption_key,
int  use_subsamples,
int  bitexact 
)

Initialize a CENC context.

Parameters
keyencryption key, must have a length of AES_CTR_KEY_SIZE
use_subsampleswhen enabled parts of a packet can be encrypted, otherwise the whole packet is encrypted

Definition at line 388 of file movenccenc.c.

Referenced by mov_init().

◆ ff_mov_cenc_free()

void ff_mov_cenc_free ( MOVMuxCencContext ctx)

Free a CENC context.

Definition at line 412 of file movenccenc.c.

Referenced by mov_free().

◆ ff_mov_cenc_write_packet()

int ff_mov_cenc_write_packet ( MOVMuxCencContext ctx,
AVIOContext pb,
const uint8_t buf_in,
int  size 
)

Write a fully encrypted packet.

Definition at line 167 of file movenccenc.c.

Referenced by ff_mov_write_packet().

◆ ff_mov_cenc_avc_parse_nal_units()

int ff_mov_cenc_avc_parse_nal_units ( MOVMuxCencContext ctx,
AVIOContext pb,
const uint8_t buf_in,
int  size 
)

Parse AVC NAL units from annex B format, the nal size and type are written in the clear while the body is encrypted.

Definition at line 192 of file movenccenc.c.

Referenced by ff_mov_write_packet().

◆ ff_mov_cenc_avc_write_nal_units()

int ff_mov_cenc_avc_write_nal_units ( AVFormatContext s,
MOVMuxCencContext ctx,
int  nal_length_size,
AVIOContext pb,
const uint8_t buf_in,
int  size 
)

Write AVC NAL units that are in MP4 format, the nal size and type are written in the clear while the body is encrypted.

Definition at line 232 of file movenccenc.c.

Referenced by ff_mov_write_packet().

◆ ff_mov_cenc_write_stbl_atoms()

void ff_mov_cenc_write_stbl_atoms ( MOVMuxCencContext ctx,
AVIOContext pb 
)

Write the cenc atoms that should reside inside stbl.

Definition at line 339 of file movenccenc.c.

Referenced by mov_write_stbl_tag().

◆ ff_mov_cenc_write_sinf_tag()

int ff_mov_cenc_write_sinf_tag ( struct MOVTrack track,
AVIOContext pb,
uint8_t kid 
)

Write the sinf atom, contained inside stsd.

Definition at line 364 of file movenccenc.c.

Referenced by mov_write_audio_tag(), and mov_write_video_tag().