libgpac
Documentation of the core library of GPAC
dmx_vobsub.c File Reference
#include <gpac/filters.h>
#include <gpac/constants.h>
#include <gpac/thread.h>
#include <gpac/list.h>
#include <gpac/bitstream.h>
#include <gpac/internal/vobsub.h>
+ Include dependency graph for dmx_vobsub.c:

Data Structures

struct  GF_VOBSubDmxCtx
 

Macros

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

Functions

GF_Err vobsubdmx_configure_pid (GF_Filter *filter, GF_FilterPid *pid, Bool is_remove)
 
static Bool vobsubdmx_process_event (GF_Filter *filter, const GF_FilterEvent *evt)
 
GF_Err vobsubdmx_parse_idx (GF_Filter *filter, GF_VOBSubDmxCtx *ctx)
 
static GF_Err vobsubdmx_send_stream (GF_VOBSubDmxCtx *ctx, GF_FilterPid *pid)
 
GF_Err vobsubdmx_process (GF_Filter *filter)
 
static void vobsubdmx_finalize (GF_Filter *filter)
 
static const char * vobsubdmx_probe_data (const u8 *data, u32 size, GF_FilterProbeScore *score)
 
const GF_FilterRegister * vobsubdmx_register (GF_FilterSession *session)
 

Variables

static const GF_FilterArgs GF_VOBSubDmxArgs []
 
static const GF_FilterCapability VOBSubDmxCaps []
 
GF_FilterRegister VOBSubDmxRegister
 

Data Structure Documentation

◆ GF_VOBSubDmxCtx

struct GF_VOBSubDmxCtx
+ Collaboration diagram for GF_VOBSubDmxCtx:
Data Fields
Bool blankframe
Bool keepempty
GF_FilterPid * idx_pid
GF_FilterPid * sub_pid
GF_Filter * sub_filter
GF_List * opids
Bool first
u32 idx_file_crc
FILE * mdia
Double start_range
u64 first_dts
u32 nb_playing
GF_Fraction64 duration
Bool in_seek
Bool initial_play_done
Bool idx_parsed
u32 timescale
vobsub_file * vobsub

Macro Definition Documentation

◆ OFFS

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

Function Documentation

◆ vobsubdmx_configure_pid()

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

◆ vobsubdmx_process_event()

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

◆ vobsubdmx_parse_idx()

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

◆ vobsubdmx_send_stream()

static GF_Err vobsubdmx_send_stream ( GF_VOBSubDmxCtx ctx,
GF_FilterPid *  pid 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vobsubdmx_process()

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

◆ vobsubdmx_finalize()

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

◆ vobsubdmx_probe_data()

static const char* vobsubdmx_probe_data ( const u8 data,
u32  size,
GF_FilterProbeScore score 
)
static

◆ vobsubdmx_register()

const GF_FilterRegister* vobsubdmx_register ( GF_FilterSession *  session)

Variable Documentation

◆ GF_VOBSubDmxArgs

const GF_FilterArgs GF_VOBSubDmxArgs[]
static
Initial value:
=
{
{ OFFS(blankframe), "force inserting a blank frame if first subpic is not at 0", GF_PROP_BOOL, "true", NULL, GF_FS_ARG_HINT_ADVANCED},
{ OFFS(keepempty), "declare VobSub tracks with no frames", GF_PROP_BOOL, "false", NULL, GF_FS_ARG_HINT_ADVANCED},
{0}
}
#define OFFS(_n)
Definition: dmx_vobsub.c:446
@ GF_FS_ARG_HINT_ADVANCED
Definition: filters.h:2102
@ GF_PROP_BOOL
Definition: filters.h:858

◆ VOBSubDmxCaps

const GF_FilterCapability VOBSubDmxCaps[]
static
Initial value:
=
{
}
@ GF_CODECID_SUBPIC
Definition: constants.h:570
@ GF_STREAM_TEXT
Definition: constants.h:82
@ GF_STREAM_FILE
Definition: constants.h:104
#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_INPUT
Definition: filters.h:2220
@ GF_PROP_PID_CODECID
Definition: filters.h:1116
@ GF_PROP_PID_STREAM_TYPE
Definition: filters.h:1112
@ GF_PROP_PID_FILE_EXT
Definition: filters.h:1190
@ GF_PROP_PID_MIME
Definition: filters.h:1189

◆ VOBSubDmxRegister

GF_FilterRegister VOBSubDmxRegister
Initial value:
= {
.name = "vobsubdmx",
.private_size = sizeof(GF_VOBSubDmxCtx),
.max_extra_pids = 1,
.finalize = vobsubdmx_finalize,
.configure_pid = vobsubdmx_configure_pid,
.process = vobsubdmx_process,
.probe_data = vobsubdmx_probe_data,
.process_event = vobsubdmx_process_event,
.hint_class_type = GF_FS_CLASS_DEMULTIPLEXER
}
static void vobsubdmx_finalize(GF_Filter *filter)
Definition: dmx_vobsub.c:430
static const char * vobsubdmx_probe_data(const u8 *data, u32 size, GF_FilterProbeScore *score)
Definition: dmx_vobsub.c:437
static const GF_FilterCapability VOBSubDmxCaps[]
Definition: dmx_vobsub.c:455
static Bool vobsubdmx_process_event(GF_Filter *filter, const GF_FilterEvent *evt)
Definition: dmx_vobsub.c:145
GF_Err vobsubdmx_configure_pid(GF_Filter *filter, GF_FilterPid *pid, Bool is_remove)
Definition: dmx_vobsub.c:66
static const GF_FilterArgs GF_VOBSubDmxArgs[]
Definition: dmx_vobsub.c:447
GF_Err vobsubdmx_process(GF_Filter *filter)
Definition: dmx_vobsub.c:362
Definition: dmx_vobsub.c:38
#define SETCAPS(__struct)
Definition: filters.h:2364
@ GF_FS_REG_USE_SYNC_READ
Definition: filters.h:2424
@ GF_FS_CLASS_DEMULTIPLEXER
Definition: filters.h:2461
attribute Array args
Definition: jsf.idl:24