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

Data Structures

struct  OGGInfo
 
struct  GF_OGGStream
 
struct  GF_OGGDmxCtx
 

Macros

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

Functions

void oggdmx_signal_eos (GF_OGGDmxCtx *ctx)
 
static GF_OGGStreamoggdmx_find_stream_for_page (GF_OGGDmxCtx *ctx, ogg_page *oggpage)
 
static void oggdmx_get_stream_info (ogg_packet *oggpacket, OGGInfo *info)
 
static void oggdmx_declare_pid (GF_Filter *filter, GF_OGGDmxCtx *ctx, GF_OGGStream *st)
 
static GF_Err oggdmx_new_stream (GF_Filter *filter, GF_OGGDmxCtx *ctx, ogg_page *oggpage)
 
GF_Err oggdmx_configure_pid (GF_Filter *filter, GF_FilterPid *pid, Bool is_remove)
 
static void oggdmx_check_dur (GF_Filter *filter, GF_OGGDmxCtx *ctx)
 
static Bool oggdmx_process_event (GF_Filter *filter, const GF_FilterEvent *evt)
 
static void oggdmx_parse_picture (GF_Filter *filter, GF_OGGStream *st, u8 *data_b64)
 
static void oggdmx_parse_tags (GF_Filter *filter, GF_OGGStream *st, u8 *data, u32 size)
 
GF_Err oggdmx_process (GF_Filter *filter)
 
static GF_Err oggdmx_initialize (GF_Filter *filter)
 
static void oggdmx_finalize (GF_Filter *filter)
 
static const char * oggdmx_probe_data (const u8 *data, u32 size, GF_FilterProbeScore *score)
 
const GF_FilterRegister * oggdmx_register (GF_FilterSession *session)
 

Variables

static const GF_FilterCapability OGGDmxCaps []
 
static const GF_FilterArgs OGGDmxArgs []
 
GF_FilterRegister OGGDmxRegister
 

Data Structure Documentation

◆ OGGInfo

struct OGGInfo
+ Collaboration diagram for OGGInfo:
Data Fields
u32 streamType
u32 num_init_headers
u32 sample_rate
u32 bitrate
u32 nb_chan
u32 width
u32 height
GF_Fraction sar
u32 theora_kgs
GF_Fraction frame_rate
u32 type

◆ GF_OGGStream

struct GF_OGGStream
+ Collaboration diagram for GF_OGGStream:
Data Fields
GF_FilterPid * opid
ogg_stream_state os
u32 serial_no
GF_BitStream * dsi_bs
OGGInfo info
Bool got_headers
u32 parse_headers
Bool eos_detected
u32 recomputed_ts
GF_VorbisParser * vorbis_parser
GF_OpusConfig * opus_cfg

◆ GF_OGGDmxCtx

struct GF_OGGDmxCtx
+ Collaboration diagram for GF_OGGDmxCtx:
Data Fields
Double index
Bool expart
GF_FilterPid * ipid
u64 file_pos
u64 file_size
u32 global_rate
GF_Fraction64 duration
Double start_range
Bool seek_file
u32 nb_playing
Bool is_file
Bool initial_play_done
Bool file_loaded
GF_List * streams
ogg_sync_state oy
GF_FilterPid * art_opid
Bool is_dash

Macro Definition Documentation

◆ OFFS

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

Function Documentation

◆ oggdmx_signal_eos()

void oggdmx_signal_eos ( GF_OGGDmxCtx ctx)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ oggdmx_find_stream_for_page()

static GF_OGGStream* oggdmx_find_stream_for_page ( GF_OGGDmxCtx ctx,
ogg_page oggpage 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ oggdmx_get_stream_info()

static void oggdmx_get_stream_info ( ogg_packet oggpacket,
OGGInfo info 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ oggdmx_declare_pid()

static void oggdmx_declare_pid ( GF_Filter *  filter,
GF_OGGDmxCtx ctx,
GF_OGGStream st 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ oggdmx_new_stream()

static GF_Err oggdmx_new_stream ( GF_Filter *  filter,
GF_OGGDmxCtx ctx,
ogg_page oggpage 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ oggdmx_configure_pid()

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

◆ oggdmx_check_dur()

static void oggdmx_check_dur ( GF_Filter *  filter,
GF_OGGDmxCtx ctx 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ oggdmx_process_event()

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

◆ oggdmx_parse_picture()

static void oggdmx_parse_picture ( GF_Filter *  filter,
GF_OGGStream st,
u8 data_b64 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ oggdmx_parse_tags()

static void oggdmx_parse_tags ( GF_Filter *  filter,
GF_OGGStream st,
u8 data,
u32  size 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ oggdmx_process()

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

◆ oggdmx_initialize()

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

◆ oggdmx_finalize()

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

◆ oggdmx_probe_data()

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

◆ oggdmx_register()

const GF_FilterRegister* oggdmx_register ( GF_FilterSession *  session)

Variable Documentation

◆ OGGDmxCaps

const GF_FilterCapability OGGDmxCaps[]
static
Initial value:
=
{
CAP_STRING(GF_CAPS_INPUT, GF_PROP_PID_FILE_EXT, "oga|spx|ogg|ogv|oggm|opus"),
CAP_STRING(GF_CAPS_INPUT, GF_PROP_PID_MIME, "audio/ogg|audio/x-ogg|audio/x-vorbis+ogg|application/ogg|application/x-ogg|video/ogg|video/x-ogg|video/x-ogm+ogg"),
{0},
}
@ GF_CODECID_OPUS
Definition: constants.h:568
@ GF_CODECID_VORBIS
Definition: constants.h:562
@ GF_CODECID_SPEEX
Definition: constants.h:566
@ GF_CODECID_THEORA
Definition: constants.h:560
@ GF_CODECID_FLAC
Definition: constants.h:564
@ GF_STREAM_AUDIO
Definition: constants.h:66
@ 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_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

◆ OGGDmxArgs

const GF_FilterArgs OGGDmxArgs[]
static
Initial value:
=
{
{ OFFS(index), "indexing window length (not implemented), use 0 to disable stream probing for duration), ", GF_PROP_DOUBLE, "1.0", NULL, 0},
{ OFFS(expart), "expose pictures as a dedicated video PID", GF_PROP_BOOL, "false", NULL, 0},
{0}
}
#define OFFS(_n)
Definition: dmx_ogg.c:971
@ GF_PROP_BOOL
Definition: filters.h:858
@ GF_PROP_DOUBLE
Definition: filters.h:866

◆ OGGDmxRegister

GF_FilterRegister OGGDmxRegister
Initial value:
= {
.name = "oggdmx",
.private_size = sizeof(GF_OGGDmxCtx),
.initialize = oggdmx_initialize,
.finalize = oggdmx_finalize,
.configure_pid = oggdmx_configure_pid,
.process = oggdmx_process,
.process_event = oggdmx_process_event,
.probe_data = oggdmx_probe_data,
.hint_class_type = GF_FS_CLASS_DEMULTIPLEXER,
}
GF_Err oggdmx_configure_pid(GF_Filter *filter, GF_FilterPid *pid, Bool is_remove)
Definition: dmx_ogg.c:355
static void oggdmx_finalize(GF_Filter *filter)
Definition: dmx_ogg.c:925
static const GF_FilterCapability OGGDmxCaps[]
Definition: dmx_ogg.c:953
static Bool oggdmx_process_event(GF_Filter *filter, const GF_FilterEvent *evt)
Definition: dmx_ogg.c:509
static GF_Err oggdmx_initialize(GF_Filter *filter)
Definition: dmx_ogg.c:917
static const char * oggdmx_probe_data(const u8 *data, u32 size, GF_FilterProbeScore *score)
Definition: dmx_ogg.c:943
GF_Err oggdmx_process(GF_Filter *filter)
Definition: dmx_ogg.c:721
static const GF_FilterArgs OGGDmxArgs[]
Definition: dmx_ogg.c:972
Definition: dmx_ogg.c:78
#define SETCAPS(__struct)
Definition: filters.h:2364
@ GF_FS_REG_DYNAMIC_PIDS
Definition: filters.h:2403
@ GF_FS_CLASS_DEMULTIPLEXER
Definition: filters.h:2461
attribute Array args
Definition: jsf.idl:24