summaryrefslogtreecommitdiff
path: root/src/xine-engine/xine_internal.h
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2003-11-15 14:54:30 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2003-11-15 14:54:30 +0000
commit1ace1c3f18fb48bab32a2ee5b69ae6e3bce12850 (patch)
tree21c51a97dcc8659809d2c8df9f5ce363bddadb2d /src/xine-engine/xine_internal.h
parent443d766f9506dfcc19de9c8fc224a61a0922f722 (diff)
downloadxine-lib-1ace1c3f18fb48bab32a2ee5b69ae6e3bce12850.tar.gz
xine-lib-1ace1c3f18fb48bab32a2ee5b69ae6e3bce12850.tar.bz2
start xine_stream_t separation (public/private).
(we should finish this before rc3.) - stream_info and meta_info variables are private now. obs: everything must be recompiled due xine_stream_t changes CVS patchset: 5733 CVS date: 2003/11/15 14:54:30
Diffstat (limited to 'src/xine-engine/xine_internal.h')
-rw-r--r--src/xine-engine/xine_internal.h124
1 files changed, 64 insertions, 60 deletions
diff --git a/src/xine-engine/xine_internal.h b/src/xine-engine/xine_internal.h
index 6379b51b0..98cd7d4db 100644
--- a/src/xine-engine/xine_internal.h
+++ b/src/xine-engine/xine_internal.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: xine_internal.h,v 1.145 2003/11/11 18:45:02 f1rmb Exp $
+ * $Id: xine_internal.h,v 1.146 2003/11/15 14:54:31 miguelfreitas Exp $
*
*/
@@ -30,11 +30,6 @@ extern "C" {
#include <inttypes.h>
-#ifndef EXTRA_INFO
-#define EXTRA_INFO
-typedef struct extra_info_s extra_info_t;
-#endif
-
/*
* include public part of xine header
*/
@@ -120,26 +115,6 @@ struct xine_s {
};
/*
- * extra_info_t is used to pass information from input or demuxer plugins
- * to output frames (past decoder). new data must be added after the existing
- * fields for backward compatibility.
- */
-
-struct extra_info_s {
-
- off_t input_pos; /* remember where this buf came from in the input source */
- off_t input_length; /* remember the length of the input source */
- int input_time;/* time offset in miliseconds from beginning of stream */
- uint32_t frame_number; /* number of current frame if known */
-
- int seek_count; /* internal engine use */
- int64_t vpts; /* set on output layers only */
-
- int invalid; /* do not use this extra info to update anything */
- int total_time; /* duration in miliseconds of the stream */
-};
-
-/*
* xine event queue
*/
@@ -158,35 +133,70 @@ struct xine_event_queue_s {
*/
struct xine_stream_s {
-
+
+ /* reference to xine context */
xine_t *xine;
- int status;
-
+ /* metronom instance used by current stream */
+ metronom_t *metronom;
+
+ /* demuxers use input_plugin to read data */
input_plugin_t *input_plugin;
- input_class_t *eject_class;
+
+ /* current content detection method, see METHOD_BY_xxx */
int content_detection_method;
- demux_plugin_t *demux_plugin;
-
- metronom_t *metronom;
+ /* used by video decoders */
xine_video_port_t *video_out;
- vo_driver_t *video_driver;
+
+ /* demuxers send data to video decoders using this fifo */
fifo_buffer_t *video_fifo;
+
+ /* used by audio decoders */
+ xine_audio_port_t *audio_out;
+
+ /* demuxers send data to audio decoders using this fifo */
+ fifo_buffer_t *audio_fifo;
+
+ /* input_dvd uses this one. is it possible to add helper functions instead? */
+ spu_decoder_t *spu_decoder_plugin;
+
+ /* may we change osd api to make this private? */
+ osd_renderer_t *osd_renderer;
+
+ /* dxr3 use this one, should be possible to fix to use the port instead */
+ vo_driver_t *video_driver;
+
+ /* michael will move this one to metronom i think */
+ int64_t metronom_prebuffer;
+
+ /* spudec uses this one. (should be checked) */
+ xine_stream_t *master;
+
+ /* these definitely should be made private! */
+ int audio_channel_auto;
+ int spu_decoder_streamtype;
+ int spu_channel_user;
+ int spu_channel_auto;
+ int spu_channel_letterbox;
+ int spu_channel;
+ int demux_action_pending;
+
+#ifdef XINE_ENGINE_INTERNAL
+ /* these are private variables, plugins must not access them */
+
+ int status;
+
+ input_class_t *eject_class;
+ demux_plugin_t *demux_plugin;
+
+/* vo_driver_t *video_driver;*/
pthread_t video_thread;
video_decoder_t *video_decoder_plugin;
int video_decoder_streamtype;
extra_info_t *video_decoder_extra_info;
int video_channel;
- xine_audio_port_t *audio_out;
- fifo_buffer_t *audio_fifo;
- /* FIXME: the next member appears to be unused. Should it be removed? */
-#if 0
- lrb_t *audio_temp;
-#else
- void *audio_temp;
-#endif
pthread_t audio_thread;
audio_decoder_t *audio_decoder_plugin;
int audio_decoder_streamtype;
@@ -199,36 +209,28 @@ struct xine_stream_s {
>=0 => respect the user's choice
*/
int audio_channel_user;
- int audio_channel_auto;
+/* int audio_channel_auto; */
- /* FIXME: remove these two members on the next structure cleanup,
- * they are unused */
- void *spu_out;
- pthread_t spu_thread;
-
- spu_decoder_t *spu_decoder_plugin;
- int spu_decoder_streamtype;
+/* spu_decoder_t *spu_decoder_plugin; */
+/* int spu_decoder_streamtype; */
uint32_t spu_track_map[50];
int spu_track_map_entries;
- int spu_channel_user;
- int spu_channel_auto;
- int spu_channel_letterbox;
+/* int spu_channel_user; */
+/* int spu_channel_auto; */
+/* int spu_channel_letterbox; */
int spu_channel_pan_scan;
- int spu_channel;
+/* int spu_channel; */
/* lock for public xine player functions */
pthread_mutex_t frontend_lock;
- pthread_mutex_t osd_lock;
- osd_renderer_t *osd_renderer;
-
/* stream meta information */
int stream_info[XINE_STREAM_INFO_MAX];
char *meta_info [XINE_STREAM_INFO_MAX];
/* master/slave streams */
- xine_stream_t *master;
+/* xine_stream_t *master; */
xine_stream_t *slave;
/* seeking slowdown */
@@ -252,7 +254,7 @@ struct xine_stream_s {
pthread_t demux_thread;
int demux_thread_running;
pthread_mutex_t demux_lock;
- int demux_action_pending;
+/* int demux_action_pending; */
extra_info_t *current_extra_info;
pthread_mutex_t current_extra_info_lock;
@@ -274,8 +276,8 @@ struct xine_stream_s {
pthread_cond_t next_video_port_wired;
pthread_cond_t next_audio_port_wired;
- int64_t metronom_prebuffer;
broadcaster_t *broadcaster;
+#endif
};
@@ -339,6 +341,8 @@ int _x_demux_check_extension (char *mrl, char *extensions);
off_t _x_read_abort (xine_stream_t *stream, int fd, char *buf, off_t todo);
+int _x_action_pending (xine_stream_t *stream);
+
/*
* plugin_loader functions
*