libgpac
Documentation of the core library of GPAC
media_object.c File Reference
#include <gpac/internal/compositor_dev.h>
#include <gpac/internal/scenegraph_dev.h>
#include <gpac/nodes_x3d.h>
#include <gpac/nodes_svg.h>
#include <gpac/network.h>
+ Include dependency graph for media_object.c:

Macros

#define UPDATE_CAP(_code, _field)
 

Functions

static GF_MediaObject * get_sync_reference (GF_Scene *scene, XMLRI *iri, u32 o_type, GF_Node *orig_ref, Bool *post_pone)
 
GF_EXPORT GF_MediaObject * gf_mo_register (GF_Node *node, MFURL *url, Bool lock_timelines, Bool force_new_res)
 
GF_EXPORT void gf_mo_unregister (GF_Node *node, GF_MediaObject *mo)
 
GF_MediaObject * gf_mo_new ()
 
void compositor_get_srdmap_size (const GF_PropertyValue *srd_map, u32 *width, u32 *height, u32 *min_x, u32 *min_y)
 
GF_EXPORT Bool gf_mo_get_visual_info_ex (GF_MediaObject *mo, u32 *width, u32 *height, u32 *stride, u32 *pixel_ar, u32 *pixelFormat, Bool *is_flipped, Bool for_texture)
 
Bool gf_mo_get_visual_info (GF_MediaObject *mo, u32 *width, u32 *height, u32 *stride, u32 *pixel_ar, u32 *pixelFormat, Bool *is_flipped)
 
GF_EXPORT void gf_mo_get_nb_views (GF_MediaObject *mo, u32 *nb_views)
 
GF_EXPORT Bool gf_mo_get_audio_info (GF_MediaObject *mo, u32 *sample_rate, u32 *bits_per_sample, u32 *num_channels, u64 *channel_config, Bool *forced_layout)
 
void gf_mo_update_caps_ex (GF_MediaObject *mo, Bool check_unchanged)
 
void gf_mo_update_caps (GF_MediaObject *mo)
 
static u32 convert_ts_to_ms (GF_MediaObject *mo, u64 ts, u32 timescale, Bool *discard)
 
static void check_temi (GF_MediaObject *mo)
 
GF_EXPORT u8gf_mo_fetch_data (GF_MediaObject *mo, GF_MOFetchMode resync, u32 upload_time_ms, Bool *eos, u32 *timestamp, u32 *size, s32 *ms_until_pres, s32 *ms_until_next, GF_FilterFrameInterface **outFrame, u32 *planar_size)
 
GF_EXPORT void gf_mo_release_data (GF_MediaObject *mo, u32 nb_bytes, s32 drop_mode)
 
GF_EXPORT void gf_mo_get_object_time (GF_MediaObject *mo, u32 *obj_time)
 
GF_EXPORT void gf_mo_play (GF_MediaObject *mo, Double clipBegin, Double clipEnd, Bool can_loop)
 
GF_EXPORT void gf_mo_stop (GF_MediaObject **_mo)
 
GF_EXPORT void gf_mo_restart (GF_MediaObject *mo)
 
u32 gf_mo_get_od_id (MFURL *url)
 
Bool gf_mo_is_same_url (GF_MediaObject *obj, MFURL *an_url, Bool *keep_fragment, u32 obj_hint_type)
 
GF_EXPORT Bool gf_mo_url_changed (GF_MediaObject *mo, MFURL *url)
 
GF_EXPORT void gf_mo_pause (GF_MediaObject *mo)
 
GF_EXPORT void gf_mo_resume (GF_MediaObject *mo)
 
GF_EXPORT void gf_mo_set_speed (GF_MediaObject *mo, Fixed speed)
 
GF_EXPORT Fixed gf_mo_get_current_speed (GF_MediaObject *mo)
 
GF_EXPORT u32 gf_mo_get_min_frame_dur (GF_MediaObject *mo)
 
GF_EXPORT u32 gf_mo_map_timestamp_to_sys_clock (GF_MediaObject *mo, u32 ts)
 
Bool gf_mo_is_buffering (GF_MediaObject *mo)
 
GF_EXPORT Fixed gf_mo_get_speed (GF_MediaObject *mo, Fixed in_speed)
 
GF_EXPORT Bool gf_mo_get_loop (GF_MediaObject *mo, Bool in_loop)
 
GF_EXPORT Double gf_mo_get_duration (GF_MediaObject *mo)
 
GF_EXPORT Bool gf_mo_should_deactivate (GF_MediaObject *mo)
 
GF_EXPORT Bool gf_mo_is_muted (GF_MediaObject *mo)
 
GF_EXPORT Bool gf_mo_is_started (GF_MediaObject *mo)
 
GF_EXPORT Bool gf_mo_is_done (GF_MediaObject *mo)
 
GF_EXPORT void gf_mo_adjust_clock (GF_MediaObject *mo, s32 ms_drift)
 
GF_EXPORT void gf_mo_set_flag (GF_MediaObject *mo, GF_MOUserFlags flag, Bool set_on)
 
GF_EXPORT u32 gf_mo_has_audio (GF_MediaObject *mo)
 
GF_EXPORT GF_SceneGraph * gf_mo_get_scenegraph (GF_MediaObject *mo)
 
GF_EXPORT GF_DOMEventTargetgf_mo_event_target_add_node (GF_MediaObject *mo, GF_Node *n)
 
GF_Err gf_mo_event_target_remove_by_index (GF_MediaObject *mo, u32 i)
 
GF_Nodegf_mo_event_target_enum_node (GF_MediaObject *mo, u32 *i)
 
s32 gf_mo_event_target_find_by_node (GF_MediaObject *mo, GF_Node *node)
 
GF_EXPORT GF_Err gf_mo_event_target_remove_by_node (GF_MediaObject *mo, GF_Node *node)
 
GF_EXPORT GF_Nodegf_event_target_get_node (GF_DOMEventTarget *target)
 
GF_EXPORT GF_DOMEventTargetgf_mo_event_target_get (GF_MediaObject *mo, u32 i)
 
void gf_mo_event_target_reset (GF_MediaObject *mo)
 
u32 gf_mo_event_target_count (GF_MediaObject *mo)
 
void gf_mo_del (GF_MediaObject *mo)
 
Bool gf_mo_get_srd_info (GF_MediaObject *mo, GF_MediaObjectVRInfo *vr_info)
 
void gf_mo_hint_quality_degradation (GF_MediaObject *mo, u32 quality_degradation)
 
void gf_mo_hint_visible_rect (GF_MediaObject *mo, u32 min_x, u32 max_x, u32 min_y, u32 max_y)
 
void gf_mo_hint_gaze (GF_MediaObject *mo, u32 gaze_x, u32 gaze_y)
 

Macro Definition Documentation

◆ UPDATE_CAP

#define UPDATE_CAP (   _code,
  _field 
)
Value:
v = gf_filter_pid_get_property(mo->odm->pid, _code);\
if (v) {\
if (mo->_field != v->value.uint) changed=GF_TRUE;\
mo->_field = v->value.uint;\
} else if (mo->_field) {\
changed=GF_TRUE;\
mo->_field=0;\
}\
const GF_PropertyValue * gf_filter_pid_get_property(GF_FilterPid *PID, u32 prop_4cc)
Definition: filter_pid.c:6188
@ GF_TRUE
Definition: setup.h:474

Function Documentation

◆ get_sync_reference()

static GF_MediaObject* get_sync_reference ( GF_Scene *  scene,
XMLRI iri,
u32  o_type,
GF_Node orig_ref,
Bool post_pone 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_mo_new()

GF_MediaObject* gf_mo_new ( )
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_get_srdmap_size()

void compositor_get_srdmap_size ( const GF_PropertyValue *  srd_map,
u32 width,
u32 height,
u32 min_x,
u32 min_y 
)
+ Here is the caller graph for this function:

◆ gf_mo_update_caps_ex()

void gf_mo_update_caps_ex ( GF_MediaObject *  mo,
Bool  check_unchanged 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_mo_update_caps()

void gf_mo_update_caps ( GF_MediaObject *  mo)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ convert_ts_to_ms()

static u32 convert_ts_to_ms ( GF_MediaObject *  mo,
u64  ts,
u32  timescale,
Bool discard 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ check_temi()

static void check_temi ( GF_MediaObject *  mo)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_mo_get_od_id()

u32 gf_mo_get_od_id ( MFURL url)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_mo_is_same_url()

Bool gf_mo_is_same_url ( GF_MediaObject *  obj,
MFURL an_url,
Bool keep_fragment,
u32  obj_hint_type 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function: