libgpac
Documentation of the core library of GPAC
dmx_ghi.c File Reference
#include <gpac/filters.h>
#include <gpac/constants.h>
#include <gpac/list.h>
#include <gpac/mpd.h>
#include <gpac/bitstream.h>
#include <gpac/base_coding.h>
#include <gpac/network.h>
+ Include dependency graph for dmx_ghi.c:

Data Structures

struct  GHISegInfo
 
struct  GHIStream
 
struct  GHIDmxCtx
 

Macros

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

Enumerations

enum  {
  GHI_GM_NONE =0 , GHI_GM_ALL , GHI_GM_MAIN , GHI_GM_CHILD ,
  GHI_GM_INIT
}
 

Functions

static void set_opids_props (GHIDmxCtx *ctx, GHIStream *st)
 
static void ghi_dmx_send_seg_times (GHIDmxCtx *ctx, GHIStream *st, GF_FilterPid *opid)
 
GF_Err ghi_dmx_configure_pid (GF_Filter *filter, GF_FilterPid *pid, Bool is_remove)
 
static Bool ghi_dmx_process_event (GF_Filter *filter, const GF_FilterEvent *evt)
 
static Bool ghi_dmx_on_filter_setup_error (GF_Filter *failed_filter, void *udta, GF_Err err)
 
static void ghi_dmx_declare_opid_xml (GF_Filter *filter, GHIDmxCtx *ctx, GHIStream *st)
 
static void ghi_dmx_declare_opid_bin (GF_Filter *filter, GHIDmxCtx *ctx, GHIStream *st, GF_BitStream *bs)
 
static void ghi_dmx_unmark_muxed (GHIDmxCtx *ctx)
 
static Bool ghi_dmx_check_mux (GHIDmxCtx *ctx, GHIStream *st)
 
void ghi_dmx_parse_seg (GHIDmxCtx *ctx, GF_BitStream *bs, GHIStream *st, s32 num_seg)
 
GF_Err ghi_dmx_init_bin (GF_Filter *filter, GHIDmxCtx *ctx, GF_BitStream *bs)
 
GF_Err ghi_dmx_init_xml (GF_Filter *filter, GHIDmxCtx *ctx, const u8 *data)
 
GF_Err ghi_dmx_init (GF_Filter *filter, GHIDmxCtx *ctx)
 
GF_Err ghi_dmx_process (GF_Filter *filter)
 
GF_Err ghi_dmx_initialize (GF_Filter *filter)
 
void ghi_dmx_finalize (GF_Filter *filter)
 
static const char * ghi_dmx_probe_data (const u8 *data, u32 data_size, GF_FilterProbeScore *score)
 
const GF_FilterRegister * ghidmx_register (GF_FilterSession *session)
 

Variables

static const GF_FilterArgs GHIDmxArgs []
 
static const GF_FilterCapability GHIDmxCaps []
 
GF_FilterRegister GHIDXDmxRegister
 

Data Structure Documentation

◆ GHISegInfo

struct GHISegInfo
Data Fields
u64 first_tfdt
u64 first_pck_seq
u64 seg_duration
u64 frag_start_offset
u64 frag_tfdt
u32 split_first
u32 split_last

◆ GHIStream

struct GHIStream
+ Collaboration diagram for GHIStream:
Data Fields
GF_FilterPid * ipid
GF_List * opids
GHISegInfo seg_info
u32 nb_pck
Bool first_sent
u32 starts_with_sap
u32 seg_num
Bool inactive
Bool empty_seg
u32 active_mux_base_plus_one
GF_PropStringList mux_dst
GF_List * segs_xml
GF_List * x_children
u32 bitrate
u32 delay
Bool use_offsets
GF_List * segs_bin
GF_Filter * filter_src
char * rep_id
char * res_url
char * check_res_url
u32 track_id
u32 pid_timescale
u32 mpd_timescale
u32 sample_duration
u32 first_frag_start_offset
s32 first_cts_offset
u32 props_size
u32 props_offset
u32 rep_flags
u32 nb_segs

◆ GHIDmxCtx

struct GHIDmxCtx
+ Collaboration diagram for GHIDmxCtx:
Data Fields
u32 gm
Bool force
GF_PropStringList mux
char * rep
char * out
u32 sn
GF_FilterPid * ipid
Bool init
GF_List * streams
u32 segment_duration
u64 max_segment_duration
u64 media_presentation_duration
u64 period_duration
char * segment_template
u64 min_ts_plus_one
u32 min_ts_timescale
u64 min_offset_plus_one
u64 max_end_start_offset_plus_one

Macro Definition Documentation

◆ OFFS

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

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
GHI_GM_NONE 
GHI_GM_ALL 
GHI_GM_MAIN 
GHI_GM_CHILD 
GHI_GM_INIT 

Function Documentation

◆ set_opids_props()

static void set_opids_props ( GHIDmxCtx ctx,
GHIStream st 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_send_seg_times()

static void ghi_dmx_send_seg_times ( GHIDmxCtx ctx,
GHIStream st,
GF_FilterPid *  opid 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_configure_pid()

GF_Err ghi_dmx_configure_pid ( GF_Filter *  filter,
GF_FilterPid *  pid,
Bool  is_remove 
)
+ Here is the call graph for this function:

◆ ghi_dmx_process_event()

static Bool ghi_dmx_process_event ( GF_Filter *  filter,
const GF_FilterEvent *  evt 
)
static
+ Here is the call graph for this function:

◆ ghi_dmx_on_filter_setup_error()

static Bool ghi_dmx_on_filter_setup_error ( GF_Filter *  failed_filter,
void *  udta,
GF_Err  err 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_declare_opid_xml()

static void ghi_dmx_declare_opid_xml ( GF_Filter *  filter,
GHIDmxCtx ctx,
GHIStream st 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_declare_opid_bin()

static void ghi_dmx_declare_opid_bin ( GF_Filter *  filter,
GHIDmxCtx ctx,
GHIStream st,
GF_BitStream *  bs 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_unmark_muxed()

static void ghi_dmx_unmark_muxed ( GHIDmxCtx ctx)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_check_mux()

static Bool ghi_dmx_check_mux ( GHIDmxCtx ctx,
GHIStream st 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_parse_seg()

void ghi_dmx_parse_seg ( GHIDmxCtx ctx,
GF_BitStream *  bs,
GHIStream st,
s32  num_seg 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_init_bin()

GF_Err ghi_dmx_init_bin ( GF_Filter *  filter,
GHIDmxCtx ctx,
GF_BitStream *  bs 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_init_xml()

GF_Err ghi_dmx_init_xml ( GF_Filter *  filter,
GHIDmxCtx ctx,
const u8 data 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_init()

GF_Err ghi_dmx_init ( GF_Filter *  filter,
GHIDmxCtx ctx 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ghi_dmx_process()

GF_Err ghi_dmx_process ( GF_Filter *  filter)
+ Here is the call graph for this function:

◆ ghi_dmx_initialize()

GF_Err ghi_dmx_initialize ( GF_Filter *  filter)
+ Here is the call graph for this function:

◆ ghi_dmx_finalize()

void ghi_dmx_finalize ( GF_Filter *  filter)
+ Here is the call graph for this function:

◆ ghi_dmx_probe_data()

static const char* ghi_dmx_probe_data ( const u8 data,
u32  data_size,
GF_FilterProbeScore score 
)
static

◆ ghidmx_register()

const GF_FilterRegister* ghidmx_register ( GF_FilterSession *  session)

Variable Documentation

◆ GHIDmxArgs

const GF_FilterArgs GHIDmxArgs[]
static
Initial value:
=
{
{ OFFS(gm), "manifest generation mode\n"
"- none: no manifest generation (implied if sn is not 0)\n"
"- all: generate all manifests and init segments\n"
"- main: generate main manifest (MPD or master M3U8)\n"
"- child: generate child playlist for HLS\n"
"- init: generate init segment", GF_PROP_UINT, "main", "none|all|main|child|init", GF_FS_ARG_HINT_EXPERT},
{ OFFS(force), "force loading sources in manifest generation for debug", GF_PROP_BOOL, "false", NULL, GF_FS_ARG_HINT_EXPERT},
{ OFFS(rep), "representation to generate", GF_PROP_STRING, NULL, NULL, GF_FS_ARG_HINT_EXPERT},
{ OFFS(sn), "segment number to generate, 0 means init segment", GF_PROP_UINT, NULL, NULL, GF_FS_ARG_HINT_EXPERT},
{ OFFS(mux), "representation to mux - cf filter help", GF_PROP_STRING_LIST, NULL, NULL, GF_FS_ARG_HINT_EXPERT},
{ OFFS(out), "output filename to generate", GF_PROP_STRING, NULL, NULL, GF_FS_ARG_HINT_EXPERT},
{0}
}
#define gm
Definition: dlmalloc.c:2509
#define OFFS(_n)
Definition: dmx_ghi.c:1258
@ GF_FS_ARG_HINT_EXPERT
Definition: filters.h:2104
@ GF_PROP_BOOL
Definition: filters.h:858
@ GF_PROP_STRING
Definition: filters.h:876
@ GF_PROP_STRING_LIST
Definition: filters.h:895
@ GF_PROP_UINT
Definition: filters.h:852

◆ GHIDmxCaps

const GF_FilterCapability GHIDmxCaps[]
static
Initial value:
=
{
CAP_STRING(GF_CAPS_INPUT, GF_PROP_PID_MIME, "application/x-gpac-ghix|application/x-gpac-ghi"),
{0},
}
@ GF_CODECID_RAW
Definition: constants.h:600
@ GF_STREAM_TEXT
Definition: constants.h:82
@ GF_STREAM_AUDIO
Definition: constants.h:66
@ GF_STREAM_ENCRYPTED
Definition: constants.h:102
@ GF_STREAM_FILE
Definition: constants.h:104
@ GF_STREAM_VISUAL
Definition: constants.h:64
#define GF_CAPS_OUTPUT
Definition: filters.h:2232
#define CAP_UINT(_f, _a, _b)
Definition: filters.h:2172
#define CAP_STRING(_f, _a, _b)
Definition: filters.h:2194
#define GF_CAPS_OUTPUT_EXCLUDED
Definition: filters.h:2236
#define GF_CAPS_INPUT
Definition: filters.h:2220
@ GF_CAPFLAG_IN_BUNDLE
Definition: filters.h:2202
@ GF_CAPFLAG_EXCLUDED
Definition: filters.h:2208
@ GF_CAPFLAG_LOADED_FILTER
Definition: filters.h:2210
@ GF_CAPFLAG_INPUT
Definition: filters.h:2204
@ GF_PROP_PID_CODECID
Definition: filters.h:1116
@ GF_PROP_PID_STREAM_TYPE
Definition: filters.h:1112
@ GF_PROP_PID_UNFRAMED
Definition: filters.h:1118
@ GF_PROP_PID_FILE_EXT
Definition: filters.h:1190
@ GF_PROP_PID_MIME
Definition: filters.h:1189
@ GF_TRUE
Definition: setup.h:474

◆ GHIDXDmxRegister

GF_FilterRegister GHIDXDmxRegister