diff options
author | Eduard Hasenleithner <ehasenle@users.sourceforge.net> | 2001-08-07 16:00:10 +0000 |
---|---|---|
committer | Eduard Hasenleithner <ehasenle@users.sourceforge.net> | 2001-08-07 16:00:10 +0000 |
commit | ac888501be071c7e3a2210d15fa04afe3220b5e7 (patch) | |
tree | 4fa7230a06b0eb76e9a3bf537d8885f3000b5687 /src/xine-engine/metronom.h | |
parent | 27178f3a86648323c015dd67e97033b40e9d9e07 (diff) | |
download | xine-lib-ac888501be071c7e3a2210d15fa04afe3220b5e7.tar.gz xine-lib-ac888501be071c7e3a2210d15fa04afe3220b5e7.tar.bz2 |
Added new System Clock Reference providers architecture.
CVS patchset: 398
CVS date: 2001/08/07 16:00:10
Diffstat (limited to 'src/xine-engine/metronom.h')
-rw-r--r-- | src/xine-engine/metronom.h | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/src/xine-engine/metronom.h b/src/xine-engine/metronom.h index 1709a85c1..ef432c9ea 100644 --- a/src/xine-engine/metronom.h +++ b/src/xine-engine/metronom.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: metronom.h,v 1.8 2001/07/18 21:38:17 f1rmb Exp $ + * $Id: metronom.h,v 1.9 2001/08/07 16:00:10 ehasenle Exp $ * * metronom: general pts => virtual calculation/assoc * @@ -40,6 +40,7 @@ extern "C" { #include <pthread.h> typedef struct metronom_s metronom_t ; +typedef struct scr_plugin_s scr_plugin_t; struct metronom_s { @@ -155,6 +156,12 @@ struct metronom_s { void (*adjust_clock) (metronom_t *this, uint32_t desired_pts); /* + * (un)register a System Clock Reference provider at the metronom + */ + int (*register_scr) (metronom_t *this, scr_plugin_t *scr); + void (*unregister_scr) (metronom_t *this, scr_plugin_t *scr); + + /* * metronom internal stuff */ @@ -180,9 +187,9 @@ struct metronom_s { int32_t av_offset; - struct timeval start_time; - uint32_t start_pts, last_pts; - int stopped ; + scr_plugin_t* scr_master; + scr_plugin_t** scr_list; + pthread_t sync_thread; pthread_mutex_t lock; @@ -200,6 +207,23 @@ struct metronom_s { metronom_t *metronom_init (int have_audio); +struct scr_plugin_s +{ + int interface_version; + + int (*get_priority) (scr_plugin_t *this); + + void (*set_speed) (scr_plugin_t *this, float pts_ps); + + void (*adjust) (scr_plugin_t *this, uint32_t vpts); + + void (*start) (scr_plugin_t *this, uint32_t start_vpts); + + uint32_t (*get_current) (scr_plugin_t *this); + + metronom_t *metronom; +}; + #ifdef __cplusplus } #endif |