FFmpeg
Data Structures | Macros | Typedefs | Functions
cbs_lcevc.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "cbs_h2645.h"
#include "cbs_sei.h"
#include "lcevc.h"

Go to the source code of this file.

Data Structures

struct  LCEVCRawNALUnitHeader
 
struct  LCEVCRawSequenceConfig
 
struct  LCEVCRawGlobalConfig
 
struct  LCEVCRawPictureConfig
 
struct  LCEVCRawEncodedData
 
struct  LCEVCRawVUI
 
struct  LCEVCRawSEI
 
struct  LCEVCRawAdditionalInfo
 
struct  LCEVCRawFiller
 
struct  LCEVCRawProcessBlock
 
struct  LCEVCRawProcessBlockList
 
struct  LCEVCRawNAL
 
struct  LCEVCProcessBlockState
 
struct  LCEVCProcessBlockTypeDescriptor
 
struct  CodedBitstreamLCEVCContext
 

Macros

#define LCEVC_PROCESS_BLOCK_TYPE_END   { .payload_type = -1 }
 

Typedefs

typedef int(* LCEVCRawProcessBlockReadFunction) (CodedBitstreamContext *ctx, struct GetBitContext *rw, void *current, LCEVCProcessBlockState *state, int nal_unit_type)
 
typedef int(* LCEVCRawProcessBlockWriteFunction) (CodedBitstreamContext *ctx, struct PutBitContext *rw, void *current, LCEVCProcessBlockState *state, int nal_unit_type)
 

Functions

const LCEVCProcessBlockTypeDescriptorff_cbs_lcevc_process_block_find_type (CodedBitstreamContext *ctx, int payload_type)
 Find the type descriptor for the given payload type. More...
 
int ff_cbs_lcevc_alloc_process_block_payload (LCEVCRawProcessBlock *block, const LCEVCProcessBlockTypeDescriptor *desc)
 Allocate a new payload for the given Process Block. More...
 
int ff_cbs_lcevc_list_add (LCEVCRawProcessBlockList *list, int position)
 Allocate a new empty Process Block in a block list at a given position. More...
 
void ff_cbs_lcevc_free_process_block_list (LCEVCRawProcessBlockList *list)
 Free all Process Block in a block list. More...
 
int ff_cbs_lcevc_add_process_block (CodedBitstreamContext *ctx, CodedBitstreamFragment *au, int position, uint32_t payload_type, void *payload_data, void *payload_ref)
 Add a process block to an access unit. More...
 
int ff_cbs_lcevc_find_process_block (CodedBitstreamContext *ctx, CodedBitstreamFragment *au, uint32_t payload_type, LCEVCRawProcessBlock **block)
 Iterate over blocks with the given payload type in an access unit. More...
 
void ff_cbs_lcevc_delete_process_block_type (CodedBitstreamContext *ctx, CodedBitstreamFragment *au, uint32_t payload_type)
 Delete all blocks with the given payload type from an access unit. More...
 

Macro Definition Documentation

◆ LCEVC_PROCESS_BLOCK_TYPE_END

#define LCEVC_PROCESS_BLOCK_TYPE_END   { .payload_type = -1 }

Definition at line 235 of file cbs_lcevc.h.

Typedef Documentation

◆ LCEVCRawProcessBlockReadFunction

typedef int(* LCEVCRawProcessBlockReadFunction) (CodedBitstreamContext *ctx, struct GetBitContext *rw, void *current, LCEVCProcessBlockState *state, int nal_unit_type)

Definition at line 211 of file cbs_lcevc.h.

◆ LCEVCRawProcessBlockWriteFunction

typedef int(* LCEVCRawProcessBlockWriteFunction) (CodedBitstreamContext *ctx, struct PutBitContext *rw, void *current, LCEVCProcessBlockState *state, int nal_unit_type)

Definition at line 217 of file cbs_lcevc.h.

Function Documentation

◆ ff_cbs_lcevc_process_block_find_type()

const LCEVCProcessBlockTypeDescriptor* ff_cbs_lcevc_process_block_find_type ( CodedBitstreamContext ctx,
int  payload_type 
)

Find the type descriptor for the given payload type.

Returns NULL if the payload type is not known.

Definition at line 808 of file cbs_lcevc.c.

Referenced by ff_cbs_lcevc_add_process_block(), and process_block().

◆ ff_cbs_lcevc_alloc_process_block_payload()

int ff_cbs_lcevc_alloc_process_block_payload ( LCEVCRawProcessBlock block,
const LCEVCProcessBlockTypeDescriptor desc 
)

Allocate a new payload for the given Process Block.

Definition at line 525 of file cbs_lcevc.c.

Referenced by process_block().

◆ ff_cbs_lcevc_list_add()

int ff_cbs_lcevc_list_add ( LCEVCRawProcessBlockList list,
int  position 
)

Allocate a new empty Process Block in a block list at a given position.

Definition at line 552 of file cbs_lcevc.c.

Referenced by ff_cbs_lcevc_add_process_block(), and process_block_list().

◆ ff_cbs_lcevc_free_process_block_list()

void ff_cbs_lcevc_free_process_block_list ( LCEVCRawProcessBlockList list)

Free all Process Block in a block list.

Definition at line 591 of file cbs_lcevc.c.

Referenced by cbs_lcevc_free_nal().

◆ ff_cbs_lcevc_add_process_block()

int ff_cbs_lcevc_add_process_block ( CodedBitstreamContext ctx,
CodedBitstreamFragment au,
int  position,
uint32_t  payload_type,
void *  payload_data,
void *  payload_ref 
)

Add a process block to an access unit.

An existing NAL unit of type IDR or NON_IDR are required.

If set, payload_ref must be a RefStruct reference backing payload_data. This function creates a new reference to payload_ref in this case. If payload_ref is NULL, the new message will not be reference counted.

Definition at line 613 of file cbs_lcevc.c.

Referenced by lcevc_metadata_handle_vui().

◆ ff_cbs_lcevc_find_process_block()

int ff_cbs_lcevc_find_process_block ( CodedBitstreamContext ctx,
CodedBitstreamFragment au,
uint32_t  payload_type,
LCEVCRawProcessBlock **  block 
)

Iterate over blocks with the given payload type in an access unit.

Set block to NULL in the first call. Returns 0 while more blocks are available, AVERROR(ENOENT) when all blocks have been found.

Definition at line 665 of file cbs_lcevc.c.

Referenced by lcevc_metadata_handle_vui().

◆ ff_cbs_lcevc_delete_process_block_type()

void ff_cbs_lcevc_delete_process_block_type ( CodedBitstreamContext ctx,
CodedBitstreamFragment au,
uint32_t  payload_type 
)

Delete all blocks with the given payload type from an access unit.

Definition at line 717 of file cbs_lcevc.c.

Referenced by lcevc_metadata_update_fragment().