+typedef struct {
+ int64_t last_scr; /* unadjusted SCR from most recent pack */
+ int64_t last_pts; /* last pts we saw */
+ int scr_changes; /* number of SCR discontinuities */
+ int dts_drops; /* number of drops because DTS too far from SCR */
+} hb_psdemux_t;
+
+typedef int (*hb_muxer_t)(hb_buffer_t *, hb_list_t *, hb_psdemux_t*);
+
+int hb_demux_ps( hb_buffer_t * ps_buf, hb_list_t * es_list, hb_psdemux_t * );
+int hb_demux_ss( hb_buffer_t * ps_buf, hb_list_t * es_list, hb_psdemux_t * );
+int hb_demux_null( hb_buffer_t * ps_buf, hb_list_t * es_list, hb_psdemux_t * );
+
+extern const hb_muxer_t hb_demux[];
+
+/***********************************************************************
+ * decmetadata.c
+ **********************************************************************/
+extern void decmetadata( hb_title_t *title );
+
+/***********************************************************************
+ * batch.c
+ **********************************************************************/
+typedef struct hb_batch_s hb_batch_t;
+
+hb_batch_t * hb_batch_init( char * path );
+void hb_batch_close( hb_batch_t ** _d );
+int hb_batch_title_count( hb_batch_t * d );
+hb_title_t * hb_batch_title_scan( hb_batch_t * d, int t );