]> git.sesse.net Git - vlc/blobdiff - include/vlc_es_out.h
Use var_Inherit* instead of var_CreateGet*.
[vlc] / include / vlc_es_out.h
index 4739b41a104478a17e22f40c54f77525188ff236..57fc5c003ad3d319f75c6dcbae650c1f45e50d28 100644 (file)
@@ -65,10 +65,10 @@ enum es_out_query_e
 
     /* Allow preroll of data (data with dts/pts < i_pts for all ES will be decoded but not displayed */
     ES_OUT_SET_NEXT_DISPLAY_TIME,       /* arg1=int64_t i_pts(microsecond) */
-    /* Set meta data for group (dynamic) */
-    ES_OUT_SET_GROUP_META,  /* arg1=int i_group arg2=vlc_meta_t */
-    /* Set epg for group (dynamic) */
-    ES_OUT_SET_GROUP_EPG,   /* arg1=int i_group arg2=vlc_epg_t */
+    /* Set meta data for group (dynamic) (The vlc_meta_t is not modified nor released) */
+    ES_OUT_SET_GROUP_META,  /* arg1=int i_group arg2=const vlc_meta_t */
+    /* Set epg for group (dynamic) (The vlc_epg_t is not modified nor released) */
+    ES_OUT_SET_GROUP_EPG,   /* arg1=int i_group arg2=const vlc_epg_t */
     /* */
     ES_OUT_DEL_GROUP,       /* arg1=int i_group */
 
@@ -82,6 +82,13 @@ enum es_out_query_e
      * XXX You SHALL call ES_OUT_RESET_PCR before any other es_out_Control/Send calls. */
     ES_OUT_GET_EMPTY,       /* arg1=bool*   res=cannot fail */
 
+    /* Set global meta data (The vlc_meta_t is not modified nor released) */
+    ES_OUT_SET_META, /* arg1=const vlc_meta_t * */
+
+    /* PCR system clock manipulation for external clock synchronization */
+    ES_OUT_GET_PCR_SYSTEM, /* arg1=mtime_t *, arg2=mtime_t * res=can fail */
+    ES_OUT_MODIFY_PCR_SYSTEM, /* arg1=int is_absolute, arg2=mtime_t, res=can fail */
+
     /* First value usable for private control */
     ES_OUT_PRIVATE_START = 0x10000,
 };
@@ -94,8 +101,6 @@ struct es_out_t
     int          (*pf_control)( es_out_t *, int i_query, va_list );
     void         (*pf_destroy)( es_out_t * );
 
-    bool         b_sout;
-
     es_out_sys_t    *p_sys;
 };
 
@@ -137,6 +142,20 @@ static inline void es_out_Delete( es_out_t *p_out )
     p_out->pf_destroy( p_out );
 }
 
+static inline int es_out_ControlSetMeta( es_out_t *out, const vlc_meta_t *p_meta )
+{
+    return es_out_Control( out, ES_OUT_SET_META, p_meta );
+}
+
+static inline int es_out_ControlGetPcrSystem( es_out_t *out, mtime_t *pi_system, mtime_t *pi_delay )
+{
+    return es_out_Control( out, ES_OUT_GET_PCR_SYSTEM, pi_system, pi_delay );
+}
+static inline int es_out_ControlModifyPcrSystem( es_out_t *out, bool b_absolute, mtime_t i_system )
+{
+    return es_out_Control( out, ES_OUT_MODIFY_PCR_SYSTEM, b_absolute, i_system );
+}
+
 /**
  * @}
  */