FFmpeg
Loading...
Searching...
No Matches
cbs_bsf.h File Reference
#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "bsf.h"
#include "codec_id.h"
#include "cbs.h"
#include "packet.h"

Go to the source code of this file.

Data Structures

struct  CBSBSFType
 
struct  CBSBSFContext
 

Macros

#define BSF_ELEMENT_OPTIONS_PIR(name, help, field, opt_flags)
 
#define BSF_ELEMENT_OPTIONS_PIRE(name, help, field, opt_flags)
 

Enumerations

enum  { BSF_ELEMENT_PASS , BSF_ELEMENT_INSERT , BSF_ELEMENT_REMOVE , BSF_ELEMENT_EXTRACT }
 

Functions

int ff_cbs_bsf_generic_init (AVBSFContext *bsf, const CBSBSFType *type)
 Initialise generic CBS BSF setup.
 
void ff_cbs_bsf_generic_close (AVBSFContext *bsf)
 Close a generic CBS BSF instance.
 
int ff_cbs_bsf_generic_filter (AVBSFContext *bsf, AVPacket *pkt)
 Filter operation for CBS BSF.
 

Variables

enum AVCodecID ff_cbs_all_codec_ids []
 Table of all supported codec IDs.
 

Macro Definition Documentation

◆ BSF_ELEMENT_OPTIONS_PIR

#define BSF_ELEMENT_OPTIONS_PIR ( name,
help,
field,
opt_flags )
Value:
{ .i64 = BSF_ELEMENT_PASS }, \
BSF_ELEMENT_PASS, BSF_ELEMENT_REMOVE, opt_flags, .unit = name }, \
{ "pass", NULL, 0, AV_OPT_TYPE_CONST, \
{ .i64 = BSF_ELEMENT_PASS }, .flags = opt_flags, .unit = name }, \
{ "insert", NULL, 0, AV_OPT_TYPE_CONST, \
{ .i64 = BSF_ELEMENT_INSERT }, .flags = opt_flags, .unit = name }, \
{ "remove", NULL, 0, AV_OPT_TYPE_CONST, \
{ .i64 = BSF_ELEMENT_REMOVE }, .flags = opt_flags, .unit = name }
@ BSF_ELEMENT_REMOVE
Definition cbs_bsf.h:113
@ BSF_ELEMENT_INSERT
Definition cbs_bsf.h:111
@ BSF_ELEMENT_PASS
Definition cbs_bsf.h:106
#define NULL
Definition coverity.c:32
static void help(void)
Definition dct.c:457
#define OFFSET(x)
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.
Definition opt.h:298
@ AV_OPT_TYPE_INT
Underlying C type is int.
Definition opt.h:258
const char * name
Definition qsvenc.c:142

Definition at line 119 of file cbs_bsf.h.

◆ BSF_ELEMENT_OPTIONS_PIRE

#define BSF_ELEMENT_OPTIONS_PIRE ( name,
help,
field,
opt_flags )
Value:
{ .i64 = BSF_ELEMENT_PASS }, \
BSF_ELEMENT_PASS, BSF_ELEMENT_EXTRACT, opt_flags, .unit = name }, \
{ "pass", NULL, 0, AV_OPT_TYPE_CONST, \
{ .i64 = BSF_ELEMENT_PASS }, .flags = opt_flags, .unit = name }, \
{ "insert", NULL, 0, AV_OPT_TYPE_CONST, \
{ .i64 = BSF_ELEMENT_INSERT }, .flags = opt_flags, .unit = name }, \
{ "remove", NULL, 0, AV_OPT_TYPE_CONST, \
{ .i64 = BSF_ELEMENT_REMOVE }, .flags = opt_flags, .unit = name }, \
{ "extract", NULL, 0, AV_OPT_TYPE_CONST, \
{ .i64 = BSF_ELEMENT_EXTRACT }, .flags = opt_flags, .unit = name } \
@ BSF_ELEMENT_EXTRACT
Definition cbs_bsf.h:116

Definition at line 130 of file cbs_bsf.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
BSF_ELEMENT_PASS 
BSF_ELEMENT_INSERT 
BSF_ELEMENT_REMOVE 
BSF_ELEMENT_EXTRACT 

Definition at line 104 of file cbs_bsf.h.

Function Documentation

◆ ff_cbs_bsf_generic_init()

int ff_cbs_bsf_generic_init ( AVBSFContext * bsf,
const CBSBSFType * type )

Initialise generic CBS BSF setup.

Creates the input and output CBS instances, and applies the filter to the extradata on the input codecpar if any is present.

Since it calls the update_fragment() function immediately to deal with extradata, this should be called after any codec-specific setup is done (probably at the end of the FFBitStreamFilter.init function).

Definition at line 146 of file cbs_bsf.c.

Referenced by apv_metadata_init(), av1_metadata_init(), dovi_rpu_init(), h264_metadata_init(), h264_redundant_pps_init(), h265_metadata_init(), h266_metadata_init(), lcevc_metadata_init(), mpeg2_metadata_init(), and vp9_metadata_init().

◆ ff_cbs_bsf_generic_close()

void ff_cbs_bsf_generic_close ( AVBSFContext * bsf)

Close a generic CBS BSF instance.

If no other deinitialisation is required then this function can be used directly as FFBitStreamFilter.close.

Definition at line 191 of file cbs_bsf.c.

Referenced by dovi_rpu_close().

◆ ff_cbs_bsf_generic_filter()

int ff_cbs_bsf_generic_filter ( AVBSFContext * bsf,
AVPacket * pkt )

Filter operation for CBS BSF.

Reads the input packet into a CBS fragment, calls update_fragment() on it, then writes the result to an output packet. If the input packet has AV_PKT_DATA_NEW_EXTRADATA side-data associated with it then it does the same thing to that new extradata to form the output side-data first.

If the BSF does not do anything else then this function can be used directly as FFBitStreamFilter.filter.

Definition at line 97 of file cbs_bsf.c.

Variable Documentation

◆ ff_cbs_all_codec_ids

enum AVCodecID ff_cbs_all_codec_ids[]
extern

Table of all supported codec IDs.

Terminated by AV_CODEC_ID_NONE.

Definition at line 25 of file cbs_bsf.c.