Manipulation AVC and HEVC tracks in ISOBMFF.
More...
|
GF_Err | gf_media_change_pl (GF_ISOFile *isom_file, u32 trackNumber, u32 profile, u32 compat, u32 level) |
|
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) |
|
This section documents functions for manipulating AVC and HEVC tracks in ISOBMFF.
◆ 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
|
◆ gf_media_change_pl()
Changes the profile (if not 0) and level (if not 0) indication of the media - only AVC/H264 supported for now
- Parameters
-
isom_file | the target ISOBMF file |
trackNumber | the target track |
profile | the new profile to set |
compat | profile compatibility flag for H264 |
level | the new level to set |
- Returns
- error if any
◆ gf_media_nal_rewrite_samples()
Rewrite NAL-based samples (AVC/HEVC/...) samples if nalu size_length has to be changed
- Parameters
-
isom_file | the target ISOBMF file |
trackNumber | the target track |
new_size_in_bits | new size in bits of the NALU length field in the track, for all samples description of the track |
- Returns
- error if any
◆ gf_media_split_svc()
Split SVC layers
- Parameters
-
isom_file | the target ISOBMF file |
trackNumber | the target track |
splitAll | if set each layers will be in a single track, otherwise all non-base layers will be in the same track |
- Returns
- error if any
◆ gf_media_merge_svc()
Merge SVC layers
- Parameters
-
isom_file | the target ISOBMF file |
trackNumber | the target track |
mergeAll | if 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
◆ gf_media_split_lhvc()
Split L-HEVC layers
- Parameters
-
isom_file | the target ISOBMF file |
trackNumber | the target track |
for_temporal_sublayers | if set only temporal sublayers are split, otherwise layers are split |
splitAll | if set each layers will be in a single track, otherwise all non-base layers will be in the same track |
extractor_mode | extractor mode |
- Returns
- error if any
◆ gf_media_split_hevc_tiles()
Split HEVC tiles into different tracks
- Parameters
-
isom_file | the target ISOBMF file |
signal_only | if 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
◆ 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_file | the target ISOBMF file |
trackNumber | the target track |
max_temporal_id_plus_one | max temporal ID plus 1 of all NALUs to be removed. |
max_layer_id_plus_one | max layer ID plus 1 of all NALUs to be removed. |
- Returns
- error if any