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

Macros

#define SFURL_RESET(__url)
 
#define USE_TEXTURES   0
 

Functions

GF_EXPORT Double gf_scene_get_time (void *_is)
 
void gf_storage_save (M_Storage *storage)
 
static void inline_on_media_event (GF_Scene *scene, u32 type)
 
void gf_scene_message_ex (GF_Scene *scene, const char *service, const char *message, GF_Err error, Bool no_filtering)
 
void gf_scene_message (GF_Scene *scene, const char *service, const char *message, GF_Err error)
 
char * gf_scene_resolve_xlink (GF_Node *node, char *the_url)
 
static Bool gf_scene_script_action (void *opaque, GF_JSAPIActionType type, GF_Node *n, GF_JSAPIParam *param)
 
Bool gf_scene_is_root (GF_Scene *scene)
 
GF_Scene * gf_scene_get_root_scene (GF_Scene *scene)
 
GF_EXPORT GF_Scene * gf_scene_new (GF_Compositor *compositor, GF_Scene *parentScene)
 
static void gf_scene_reset_urls (GF_Scene *scene)
 
GF_EXPORT void gf_scene_del (GF_Scene *scene)
 
GF_EXPORT GF_ObjectManager * gf_scene_find_odm (GF_Scene *scene, u16 OD_ID)
 
GF_EXPORT void gf_scene_disconnect (GF_Scene *scene, Bool for_shutdown)
 
static void gf_scene_insert_object (GF_Scene *scene, GF_MediaObject *mo, Bool lock_timelines, GF_MediaObject *sync_ref, Bool keep_fragment, GF_Scene *original_parent_scene, Bool for_addon)
 
static void gf_scene_reinsert_object (GF_Scene *scene, GF_MediaObject *mo)
 
void gf_scene_remove_object (GF_Scene *scene, GF_ObjectManager *odm, u32 for_shutdown)
 
void gf_scene_buffering_info (GF_Scene *scene, Bool rebuffer_done)
 
void gf_scene_notify_event (GF_Scene *scene, u32 event_type, GF_Node *n, void *_event, GF_Err code, Bool no_queuing)
 
GF_EXPORT void gf_scene_attach_to_compositor (GF_Scene *scene)
 
static GF_MediaObject * IS_CheckExistingObject (GF_Scene *scene, MFURL *urls, u32 type)
 
static GFINLINE Bool is_match_obj_type (u32 type, u32 hint_type)
 
GF_EXPORT GF_MediaObject * gf_scene_get_media_object_ex (GF_Scene *scene, MFURL *url, u32 obj_type_hint, Bool lock_timelines, GF_MediaObject *sync_ref, Bool force_new_if_not_attached, GF_Node *node, GF_Scene *parent_scene_addon)
 
GF_MediaObject * gf_scene_get_media_object (GF_Scene *scene, MFURL *url, u32 obj_type_hint, Bool lock_timelines)
 
static void gf_scene_get_video_size (GF_MediaObject *mo, u32 *w, u32 *h)
 
GF_EXPORT void gf_scene_setup_object (GF_Scene *scene, GF_ObjectManager *odm)
 
GF_EXPORT void gf_scene_set_duration (GF_Scene *scene)
 
GF_EXPORT void gf_scene_set_timeshift_depth (GF_Scene *scene)
 
GF_MediaObject * gf_scene_find_object (GF_Scene *scene, u16 ODID, char *url)
 
GF_EXPORT void gf_scene_register_extra_graph (GF_Scene *scene, GF_SceneGraph *extra_scene, Bool do_remove)
 
void gf_scene_force_size_to_video (GF_Scene *scene, GF_MediaObject *mo)
 
static void IS_UpdateVideoPos (GF_Scene *scene)
 
static GF_Nodeis_create_node (GF_SceneGraph *sg, u32 tag, const char *def_name)
 
static Bool is_odm_url (SFURL *url, GF_ObjectManager *odm)
 
static void set_media_url (GF_Scene *scene, SFURL *media_url, GF_Node *node, MFURL *node_url, u32 type)
 
static void scene_video_mouse_move (void *param, GF_FieldInfo *field)
 
static GF_Nodeload_vr_proto_node (GF_SceneGraph *sg, const char *name, const char *def_name)
 
void transform2d_set_untransform (GF_Node *node)
 
static void create_movie (GF_Scene *scene, GF_Node *root, const char *tr_name, const char *texture_name, const char *name_geo, Bool is_untransform)
 
void gf_scene_regenerate (GF_Scene *scene)
 
void gf_scene_toggle_addons (GF_Scene *scene, Bool show_addons)
 
static Bool check_odm_deactivate (SFURL *url, GF_ObjectManager *odm, GF_Node *n)
 
static void odm_deactivate (GF_Node *n)
 
static void odm_activate (SFURL *url, GF_Node *n)
 
GF_EXPORT void gf_scene_set_service_id (GF_Scene *scene, u32 service_id)
 
GF_EXPORT void gf_scene_select_object (GF_Scene *scene, GF_ObjectManager *odm)
 
void gf_scene_select_main_addon (GF_Scene *scene, GF_ObjectManager *odm, Bool set_on, u64 absolute_clock_time)
 
GF_EXPORT void gf_scene_set_addon_layout_info (GF_Scene *scene, u32 position, u32 size_factor)
 
GF_EXPORT void gf_scene_resume_live (GF_Scene *subscene)
 
void gf_scene_restart_dynamic (GF_Scene *scene, s64 from_time, Bool restart_only, Bool disable_addon_check)
 
GF_EXPORT void gf_scene_force_size (GF_Scene *scene, u32 width, u32 height)
 
GF_EXPORT Bool gf_scene_process_anchor (GF_Node *caller, GF_Event *evt)
 
GF_EXPORT GF_Compositor * gf_sc_get_compositor (GF_Node *node)
 
const char * gf_scene_get_fragment_uri (GF_Node *node)
 
void gf_scene_set_fragment_uri (GF_Node *node, const char *uri)
 
GF_Nodegf_scene_get_subscene_root (GF_Node *node)
 
Bool gf_scene_check_clocks (GF_SceneNamespace *ns, GF_Scene *scene, Bool check_buffering)
 
const char * gf_scene_get_service_url (GF_SceneGraph *sg)
 
Bool gf_scene_is_over (GF_SceneGraph *sg)
 
GF_SceneGraph * gf_scene_enum_extra_scene (GF_SceneGraph *sg, u32 *i)
 
Bool gf_scene_is_dynamic_scene (GF_SceneGraph *sg)
 
void gf_scene_generate_views (GF_Scene *scene, char *url, char *parent_path)
 
void gf_scene_generate_mosaic (GF_Scene *scene, char *url, char *parent_path)
 
void gf_scene_reset_addon (GF_AddonMedia *addon, Bool disconnect)
 
void gf_scene_reset_addons (GF_Scene *scene)
 
static void load_associated_media (GF_Scene *scene, GF_AddonMedia *addon)
 
GF_EXPORT void gf_scene_register_associated_media (GF_Scene *scene, GF_AssociatedContentLocation *addon_info)
 
void gf_scene_notify_associated_media_timeline (GF_Scene *scene, GF_AssociatedContentTiming *addon_time)
 
Bool gf_scene_check_addon_restart (GF_AddonMedia *addon, u64 cts, u64 dts)
 
Double gf_scene_adjust_time_for_addon (GF_AddonMedia *addon, Double clock_time, u8 *timestamp_based)
 
s64 gf_scene_adjust_timestamp_for_addon (GF_AddonMedia *addon, u64 orig_ts)
 
GF_EXPORT void gf_scene_switch_quality (GF_Scene *scene, Bool up)
 

Macro Definition Documentation

◆ SFURL_RESET

#define SFURL_RESET (   __url)
Value:
if (__url.url) gf_free(__url.url);\
memset(&__url, 0, sizeof(SFURL));
void gf_free(void *ptr)
Definition: alloc.c:163
Definition: scenegraph_vrml.h:158

◆ USE_TEXTURES

#define USE_TEXTURES   0

Function Documentation

◆ gf_scene_get_time()

GF_EXPORT Double gf_scene_get_time ( void *  _is)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_storage_save()

void gf_storage_save ( M_Storage *  storage)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ inline_on_media_event()

static void inline_on_media_event ( GF_Scene *  scene,
u32  type 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_message_ex()

void gf_scene_message_ex ( GF_Scene *  scene,
const char *  service,
const char *  message,
GF_Err  error,
Bool  no_filtering 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_message()

void gf_scene_message ( GF_Scene *  scene,
const char *  service,
const char *  message,
GF_Err  error 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_resolve_xlink()

char* gf_scene_resolve_xlink ( GF_Node node,
char *  the_url 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_script_action()

static Bool gf_scene_script_action ( void *  opaque,
GF_JSAPIActionType  type,
GF_Node n,
GF_JSAPIParam param 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_is_root()

Bool gf_scene_is_root ( GF_Scene *  scene)
+ Here is the caller graph for this function:

◆ gf_scene_get_root_scene()

GF_Scene* gf_scene_get_root_scene ( GF_Scene *  scene)
+ Here is the caller graph for this function:

◆ gf_scene_new()

GF_EXPORT GF_Scene* gf_scene_new ( GF_Compositor *  compositor,
GF_Scene *  parentScene 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_reset_urls()

static void gf_scene_reset_urls ( GF_Scene *  scene)
static
+ Here is the caller graph for this function:

◆ gf_scene_del()

GF_EXPORT void gf_scene_del ( GF_Scene *  scene)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_find_odm()

GF_EXPORT GF_ObjectManager* gf_scene_find_odm ( GF_Scene *  scene,
u16  OD_ID 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_disconnect()

GF_EXPORT void gf_scene_disconnect ( GF_Scene *  scene,
Bool  for_shutdown 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_insert_object()

static void gf_scene_insert_object ( GF_Scene *  scene,
GF_MediaObject *  mo,
Bool  lock_timelines,
GF_MediaObject *  sync_ref,
Bool  keep_fragment,
GF_Scene *  original_parent_scene,
Bool  for_addon 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_reinsert_object()

static void gf_scene_reinsert_object ( GF_Scene *  scene,
GF_MediaObject *  mo 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_remove_object()

void gf_scene_remove_object ( GF_Scene *  scene,
GF_ObjectManager *  odm,
u32  for_shutdown 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_buffering_info()

void gf_scene_buffering_info ( GF_Scene *  scene,
Bool  rebuffer_done 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_notify_event()

void gf_scene_notify_event ( GF_Scene *  scene,
u32  event_type,
GF_Node n,
void *  _event,
GF_Err  code,
Bool  no_queuing 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_attach_to_compositor()

GF_EXPORT void gf_scene_attach_to_compositor ( GF_Scene *  scene)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IS_CheckExistingObject()

static GF_MediaObject* IS_CheckExistingObject ( GF_Scene *  scene,
MFURL urls,
u32  type 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ is_match_obj_type()

static GFINLINE Bool is_match_obj_type ( u32  type,
u32  hint_type 
)
static
+ Here is the caller graph for this function:

◆ gf_scene_get_media_object_ex()

GF_EXPORT GF_MediaObject* gf_scene_get_media_object_ex ( GF_Scene *  scene,
MFURL url,
u32  obj_type_hint,
Bool  lock_timelines,
GF_MediaObject *  sync_ref,
Bool  force_new_if_not_attached,
GF_Node node,
GF_Scene *  parent_scene_addon 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_get_media_object()

GF_MediaObject* gf_scene_get_media_object ( GF_Scene *  scene,
MFURL url,
u32  obj_type_hint,
Bool  lock_timelines 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_get_video_size()

static void gf_scene_get_video_size ( GF_MediaObject *  mo,
u32 w,
u32 h 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_setup_object()

GF_EXPORT void gf_scene_setup_object ( GF_Scene *  scene,
GF_ObjectManager *  odm 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_set_duration()

GF_EXPORT void gf_scene_set_duration ( GF_Scene *  scene)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_set_timeshift_depth()

GF_EXPORT void gf_scene_set_timeshift_depth ( GF_Scene *  scene)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_find_object()

GF_MediaObject* gf_scene_find_object ( GF_Scene *  scene,
u16  ODID,
char *  url 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_register_extra_graph()

GF_EXPORT void gf_scene_register_extra_graph ( GF_Scene *  scene,
GF_SceneGraph *  extra_scene,
Bool  do_remove 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_force_size_to_video()

void gf_scene_force_size_to_video ( GF_Scene *  scene,
GF_MediaObject *  mo 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IS_UpdateVideoPos()

static void IS_UpdateVideoPos ( GF_Scene *  scene)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ is_create_node()

static GF_Node* is_create_node ( GF_SceneGraph *  sg,
u32  tag,
const char *  def_name 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ is_odm_url()

static Bool is_odm_url ( SFURL url,
GF_ObjectManager *  odm 
)
static
+ Here is the caller graph for this function:

◆ set_media_url()

static void set_media_url ( GF_Scene *  scene,
SFURL media_url,
GF_Node node,
MFURL node_url,
u32  type 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ scene_video_mouse_move()

static void scene_video_mouse_move ( void *  param,
GF_FieldInfo field 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ load_vr_proto_node()

static GF_Node* load_vr_proto_node ( GF_SceneGraph *  sg,
const char *  name,
const char *  def_name 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ transform2d_set_untransform()

void transform2d_set_untransform ( GF_Node node)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ create_movie()

static void create_movie ( GF_Scene *  scene,
GF_Node root,
const char *  tr_name,
const char *  texture_name,
const char *  name_geo,
Bool  is_untransform 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_regenerate()

void gf_scene_regenerate ( GF_Scene *  scene)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_toggle_addons()

void gf_scene_toggle_addons ( GF_Scene *  scene,
Bool  show_addons 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ check_odm_deactivate()

static Bool check_odm_deactivate ( SFURL url,
GF_ObjectManager *  odm,
GF_Node n 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ odm_deactivate()

static void odm_deactivate ( GF_Node n)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ odm_activate()

static void odm_activate ( SFURL url,
GF_Node n 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_set_service_id()

GF_EXPORT void gf_scene_set_service_id ( GF_Scene *  scene,
u32  service_id 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_select_object()

GF_EXPORT void gf_scene_select_object ( GF_Scene *  scene,
GF_ObjectManager *  odm 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_select_main_addon()

void gf_scene_select_main_addon ( GF_Scene *  scene,
GF_ObjectManager *  odm,
Bool  set_on,
u64  absolute_clock_time 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_set_addon_layout_info()

GF_EXPORT void gf_scene_set_addon_layout_info ( GF_Scene *  scene,
u32  position,
u32  size_factor 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_resume_live()

GF_EXPORT void gf_scene_resume_live ( GF_Scene *  subscene)
+ Here is the call graph for this function:

◆ gf_scene_restart_dynamic()

void gf_scene_restart_dynamic ( GF_Scene *  scene,
s64  from_time,
Bool  restart_only,
Bool  disable_addon_check 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_force_size()

GF_EXPORT void gf_scene_force_size ( GF_Scene *  scene,
u32  width,
u32  height 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_process_anchor()

GF_EXPORT Bool gf_scene_process_anchor ( GF_Node caller,
GF_Event evt 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_get_fragment_uri()

const char* gf_scene_get_fragment_uri ( GF_Node node)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_set_fragment_uri()

void gf_scene_set_fragment_uri ( GF_Node node,
const char *  uri 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_get_subscene_root()

GF_Node* gf_scene_get_subscene_root ( GF_Node node)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_check_clocks()

Bool gf_scene_check_clocks ( GF_SceneNamespace ns,
GF_Scene *  scene,
Bool  check_buffering 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_get_service_url()

const char* gf_scene_get_service_url ( GF_SceneGraph *  sg)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_is_over()

Bool gf_scene_is_over ( GF_SceneGraph *  sg)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_enum_extra_scene()

GF_SceneGraph* gf_scene_enum_extra_scene ( GF_SceneGraph *  sg,
u32 i 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_is_dynamic_scene()

Bool gf_scene_is_dynamic_scene ( GF_SceneGraph *  sg)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_generate_views()

void gf_scene_generate_views ( GF_Scene *  scene,
char *  url,
char *  parent_path 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_generate_mosaic()

void gf_scene_generate_mosaic ( GF_Scene *  scene,
char *  url,
char *  parent_path 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_reset_addon()

void gf_scene_reset_addon ( GF_AddonMedia *  addon,
Bool  disconnect 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_reset_addons()

void gf_scene_reset_addons ( GF_Scene *  scene)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ load_associated_media()

static void load_associated_media ( GF_Scene *  scene,
GF_AddonMedia *  addon 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_register_associated_media()

GF_EXPORT void gf_scene_register_associated_media ( GF_Scene *  scene,
GF_AssociatedContentLocation addon_info 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_notify_associated_media_timeline()

void gf_scene_notify_associated_media_timeline ( GF_Scene *  scene,
GF_AssociatedContentTiming addon_time 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_scene_check_addon_restart()

Bool gf_scene_check_addon_restart ( GF_AddonMedia *  addon,
u64  cts,
u64  dts 
)
+ Here is the call graph for this function:

◆ gf_scene_adjust_time_for_addon()

Double gf_scene_adjust_time_for_addon ( GF_AddonMedia *  addon,
Double  clock_time,
u8 timestamp_based 
)
+ Here is the caller graph for this function:

◆ gf_scene_adjust_timestamp_for_addon()

s64 gf_scene_adjust_timestamp_for_addon ( GF_AddonMedia *  addon,
u64  orig_ts 
)
+ Here is the caller graph for this function:

◆ gf_scene_switch_quality()

GF_EXPORT void gf_scene_switch_quality ( GF_Scene *  scene,
Bool  up 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function: