summaryrefslogtreecommitdiff
path: root/src/xine-engine/metronom.h
diff options
context:
space:
mode:
authorEduard Hasenleithner <ehasenle@users.sourceforge.net>2001-08-07 16:00:10 +0000
committerEduard Hasenleithner <ehasenle@users.sourceforge.net>2001-08-07 16:00:10 +0000
commitac888501be071c7e3a2210d15fa04afe3220b5e7 (patch)
tree4fa7230a06b0eb76e9a3bf537d8885f3000b5687 /src/xine-engine/metronom.h
parent27178f3a86648323c015dd67e97033b40e9d9e07 (diff)
downloadxine-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.h32
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