libgpac
Documentation of the core library of GPAC
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Modules
AVC and HEVC ISOBMFF tools

Manipulation AVC and HEVC tracks in ISOBMFF. More...

+ Collaboration diagram for AVC and HEVC ISOBMFF tools:

Enumerations

enum  GF_LHVCExtractoreMode { GF_LHVC_EXTRACTORS_ON , GF_LHVC_EXTRACTORS_OFF , GF_LHVC_EXTRACTORS_OFF_FORCE_INBAND }
 

Functions

GF_Err gf_media_change_pl (GF_ISOFile *isom_file, u32 trackNumber, u32 profile, u32 compat, u32 level)
 GPAC_DISABLE_AV_PARSERS. More...
 
GF_Err gf_media_nal_rewrite_samples (GF_ISOFile *isom_file, u32 trackNumber, u32 new_size_in_bits)
 
GF_Err gf_media_split_svc (GF_ISOFile *isom_file, u32 trackNumber, Bool splitAll)
 
GF_Err gf_media_merge_svc (GF_ISOFile *isom_file, u32 trackNumber, Bool mergeAll)
 
GF_Err gf_media_split_lhvc (GF_ISOFile *isom_file, u32 trackNumber, Bool for_temporal_sublayers, Bool splitAll, GF_LHVCExtractoreMode extractor_mode)
 
GF_Err gf_media_split_hevc_tiles (GF_ISOFile *isom_file, u32 signal_only)
 
GF_Err gf_media_filter_hevc (GF_ISOFile *isom_file, u32 trackNumber, u8 max_temporal_id_plus_one, u8 max_layer_id_plus_one)
 

Detailed Description

This section documents functions for manipulating AVC and HEVC tracks in ISOBMFF.

Enumeration Type Documentation

◆ GF_LHVCExtractoreMode

LHVC extractor mode

Enumerator
GF_LHVC_EXTRACTORS_ON 

use extractors

GF_LHVC_EXTRACTORS_OFF 

don't use extractors and keep base track inband/outofband param set signaling

GF_LHVC_EXTRACTORS_OFF_FORCE_INBAND 

don't use extractors and force inband signaling in enhancement layer

Function Documentation

◆ gf_media_change_pl()

GF_Err gf_media_change_pl ( GF_ISOFile *  isom_file,
u32  trackNumber,
u32  profile,
u32  compat,
u32  level 
)

Changes the profile (if not 0) and level (if not 0) indication of the media - only AVC/H264 supported for now

Parameters
isom_filethe target ISOBMF file
trackNumberthe target track
profilethe new profile to set
compatprofile compatibility flag for H264
levelthe new level to set
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_media_nal_rewrite_samples()

GF_Err gf_media_nal_rewrite_samples ( GF_ISOFile *  isom_file,
u32  trackNumber,
u32  new_size_in_bits 
)

Rewrite NAL-based samples (AVC/HEVC/...) samples if nalu size_length has to be changed

Parameters
isom_filethe target ISOBMF file
trackNumberthe target track
new_size_in_bitsnew size in bits of the NALU length field in the track, for all samples description of the track
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_media_split_svc()

GF_Err gf_media_split_svc ( GF_ISOFile *  isom_file,
u32  trackNumber,
Bool  splitAll 
)

Split SVC layers

Parameters
isom_filethe target ISOBMF file
trackNumberthe target track
splitAllif set each layers will be in a single track, otherwise all non-base layers will be in the same track
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_media_merge_svc()

GF_Err gf_media_merge_svc ( GF_ISOFile *  isom_file,
u32  trackNumber,
Bool  mergeAll 
)

Merge SVC layers

Parameters
isom_filethe target ISOBMF file
trackNumberthe target track
mergeAllif set all layers will be merged a single track, otherwise all non-base layers will be merged in the same track
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_media_split_lhvc()

GF_Err gf_media_split_lhvc ( GF_ISOFile *  isom_file,
u32  trackNumber,
Bool  for_temporal_sublayers,
Bool  splitAll,
GF_LHVCExtractoreMode  extractor_mode 
)

Split L-HEVC layers

Parameters
isom_filethe target ISOBMF file
trackNumberthe target track
for_temporal_sublayersif set only temporal sublayers are split, otherwise layers are split
splitAllif set each layers will be in a single track, otherwise all non-base layers will be in the same track
extractor_modeextractor mode
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_media_split_hevc_tiles()

GF_Err gf_media_split_hevc_tiles ( GF_ISOFile *  isom_file,
u32  signal_only 
)

Split HEVC tiles into different tracks

Parameters
isom_filethe target ISOBMF file
signal_onlyif set to 1 or 2, inserts tile description and NAL->tile mapping but does not create separate tracks. If 2, NAL->tile mapping uses RLE
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_media_filter_hevc()

GF_Err gf_media_filter_hevc ( GF_ISOFile *  isom_file,
u32  trackNumber,
u8  max_temporal_id_plus_one,
u8  max_layer_id_plus_one 
)

Filter HEVC/L-HEVC NALUs by temporal IDs and layer IDs, removing all NALUs above the desired levels.

Parameters
isom_filethe target ISOBMF file
trackNumberthe target track
max_temporal_id_plus_onemax temporal ID plus 1 of all NALUs to be removed.
max_layer_id_plus_onemax layer ID plus 1 of all NALUs to be removed.
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function: