libgpac
Documentation of the core library of GPAC
Loading...
Searching...
No Matches
rewrite_nalu.c File Reference
#include <gpac/filters.h>
#include <gpac/constants.h>
#include <gpac/bitstream.h>
#include <gpac/internal/media_dev.h>

Data Structures

struct  GF_NALUMxCtx
 

Macros

#define OFFS(_n)   #_n, offsetof(GF_NALUMxCtx, _n)
 

Enumerations

enum  { UFNAL_AVC , UFNAL_HEVC , UFNAL_VVC }
 

Functions

static void nalumx_write_ps_list (GF_NALUMxCtx *ctx, GF_BitStream *bs, GF_List *list, Bool for_non_rap)
 
static GF_List * nalumx_get_hevc_ps (GF_HEVCConfig *cfg, u8 type)
 
static GF_List * nalumx_get_vvc_ps (GF_VVCConfig *cfg, u8 type)
 
static GF_Err nalumx_make_inband_header (GF_NALUMxCtx *ctx, char *dsi, u32 dsi_len, char *dsi_enh, u32 dsi_enh_len, Bool for_non_rap)
 
GF_Err nalumx_configure_pid (GF_Filter *filter, GF_FilterPid *pid, Bool is_remove)
 
static Bool nalumx_is_nal_skip (GF_NALUMxCtx *ctx, u8 *data, u32 pos, Bool *has_nal_delim, u32 *out_temporal_id, u32 *out_layer_id, u8 *avc_hdr)
 
GF_Err nalumx_process (GF_Filter *filter)
 
static void nalumx_finalize (GF_Filter *filter)
 
const GF_FilterRegister * nalumx_register (GF_FilterSession *session)
 

Variables

static const GF_FilterCapability NALUMxCaps []
 
static const GF_FilterArgs NALUMxArgs []
 
GF_FilterRegister NALUMxRegister
 

Data Structure Documentation

◆ GF_NALUMxCtx

struct GF_NALUMxCtx
Data Fields
Bool rcfg
Bool delim
Bool pps_inband
u32 extract
GF_FilterPid * ipid
GF_FilterPid * opid
u32 vtype
u32 nal_hdr_size
u32 crc
u32 crc_enh
u8 * dsi
u8 * dsi_non_rap
u32 dsi_size
u32 dsi_non_rap_size
GF_BitStream * bs_w
GF_BitStream * bs_r
u32 nb_nalu
u32 nb_nalu_in_hdr
u32 nb_nalu_in_hdr_non_rap
u32 width
u32 height

Macro Definition Documentation

◆ OFFS

#define OFFS (   _n)    #_n, offsetof(GF_NALUMxCtx, _n)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
UFNAL_AVC 
UFNAL_HEVC 
UFNAL_VVC 

Function Documentation

◆ nalumx_write_ps_list()

static void nalumx_write_ps_list ( GF_NALUMxCtx ctx,
GF_BitStream *  bs,
GF_List *  list,
Bool  for_non_rap 
)
static

◆ nalumx_get_hevc_ps()

static GF_List * nalumx_get_hevc_ps ( GF_HEVCConfig cfg,
u8  type 
)
static

◆ nalumx_get_vvc_ps()

static GF_List * nalumx_get_vvc_ps ( GF_VVCConfig cfg,
u8  type 
)
static

◆ nalumx_make_inband_header()

static GF_Err nalumx_make_inband_header ( GF_NALUMxCtx ctx,
char *  dsi,
u32  dsi_len,
char *  dsi_enh,
u32  dsi_enh_len,
Bool  for_non_rap 
)
static

◆ nalumx_configure_pid()

GF_Err nalumx_configure_pid ( GF_Filter *  filter,
GF_FilterPid *  pid,
Bool  is_remove 
)

◆ nalumx_is_nal_skip()

static Bool nalumx_is_nal_skip ( GF_NALUMxCtx ctx,
u8 data,
u32  pos,
Bool has_nal_delim,
u32 out_temporal_id,
u32 out_layer_id,
u8 avc_hdr 
)
static

◆ nalumx_process()

GF_Err nalumx_process ( GF_Filter *  filter)

◆ nalumx_finalize()

static void nalumx_finalize ( GF_Filter *  filter)
static

◆ nalumx_register()

const GF_FilterRegister * nalumx_register ( GF_FilterSession *  session)

Variable Documentation

◆ NALUMxCaps

const GF_FilterCapability NALUMxCaps[]
static

◆ NALUMxArgs

const GF_FilterArgs NALUMxArgs[]
static
Initial value:
=
{
{ OFFS(rcfg), "force repeating decoder config at each I-frame", GF_PROP_BOOL, "true", NULL, 0},
{ OFFS(extract), "layer extraction mode\n"
"- all: extracts all layers\n"
"- base: extract base layer only\n"
"- layer: extract non-base layer(s) only", GF_PROP_UINT, "all", "all|base|layer", GF_FS_ARG_HINT_ADVANCED},
{ OFFS(delim), "insert AU Delimiter NAL", GF_PROP_BOOL, "true", NULL, GF_FS_ARG_HINT_ADVANCED},
{ OFFS(pps_inband), "inject PPS at each non SAP frame, ignored if rcfg is not set", GF_PROP_BOOL, "false", NULL, 0},
{0}
}
@ GF_FS_ARG_HINT_ADVANCED
Definition filters.h:1887
@ GF_PROP_BOOL
Definition filters.h:767
@ GF_PROP_UINT
Definition filters.h:761
#define OFFS(_n)
Definition rewrite_nalu.c:616

◆ NALUMxRegister

GF_FilterRegister NALUMxRegister
Initial value:
= {
.name = "ufnalu",
.private_size = sizeof(GF_NALUMxCtx),
.finalize = nalumx_finalize,
.configure_pid = nalumx_configure_pid,
.process = nalumx_process
}
#define SETCAPS(__struct)
Definition filters.h:2144
attribute Array args
Definition jsf.idl:24
GF_Err nalumx_configure_pid(GF_Filter *filter, GF_FilterPid *pid, Bool is_remove)
Definition rewrite_nalu.c:189
static const GF_FilterArgs NALUMxArgs[]
Definition rewrite_nalu.c:617
static void nalumx_finalize(GF_Filter *filter)
Definition rewrite_nalu.c:564
static const GF_FilterCapability NALUMxCaps[]
Definition rewrite_nalu.c:573
GF_Err nalumx_process(GF_Filter *filter)
Definition rewrite_nalu.c:333
Definition rewrite_nalu.c:39