summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/demuxers/demux_mpeg_block.c9
-rw-r--r--src/input/input_dvd.c3
-rw-r--r--src/input/input_file.c3
-rw-r--r--src/input/input_stdin_fifo.c3
-rw-r--r--src/input/input_vcd.c3
-rw-r--r--src/xine-engine/buffer.h5
6 files changed, 20 insertions, 6 deletions
diff --git a/src/demuxers/demux_mpeg_block.c b/src/demuxers/demux_mpeg_block.c
index 49e430622..1a983e00b 100644
--- a/src/demuxers/demux_mpeg_block.c
+++ b/src/demuxers/demux_mpeg_block.c
@@ -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: demux_mpeg_block.c,v 1.40 2001/09/07 21:26:12 guenter Exp $
+ * $Id: demux_mpeg_block.c,v 1.41 2001/09/08 00:44:40 guenter Exp $
*
* demultiplexer for mpeg 1/2 program streams
*
@@ -82,6 +82,13 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m
buf = this->input->read_block (this->input, this->video_fifo, this->blocksize);
+ /* If this is not a block for the demuxer, pass it
+ * straight through. */
+ if(buf->type != BUF_DEMUX_BLOCK) {
+ this->video_fifo->put (this->video_fifo, buf);
+ return;
+ }
+
if (buf==NULL) {
char *next_mrl;
diff --git a/src/input/input_dvd.c b/src/input/input_dvd.c
index c37cead51..8883f3516 100644
--- a/src/input/input_dvd.c
+++ b/src/input/input_dvd.c
@@ -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: input_dvd.c,v 1.20 2001/09/01 22:47:59 guenter Exp $
+ * $Id: input_dvd.c,v 1.21 2001/09/08 00:44:40 guenter Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -264,6 +264,7 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
if ((buf->size = read (this->raw_fd, buf->mem, DVD_VIDEO_LB_LEN)) > 0) {
this->file_lbcur++;
this->file_size_left -= DVD_VIDEO_LB_LEN;
+ buf->type = BUF_DEMUX_BLOCK;
return buf;
} else
fprintf (stderr, "read error in input_dvd plugin\n");
diff --git a/src/input/input_file.c b/src/input/input_file.c
index 0db3d1b33..86eb0fd4a 100644
--- a/src/input/input_file.c
+++ b/src/input/input_file.c
@@ -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: input_file.c,v 1.21 2001/09/06 18:38:12 jkeil Exp $
+ * $Id: input_file.c,v 1.22 2001/09/08 00:44:40 guenter Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -287,6 +287,7 @@ static buf_element_t *file_plugin_read_block (input_plugin_t *this_gen, fifo_buf
buf_element_t *buf = fifo->buffer_pool_alloc (fifo);
buf->content = buf->mem;
+ buf->type = BUF_DEMUX_BLOCK;
total_bytes = 0;
while (total_bytes < todo) {
diff --git a/src/input/input_stdin_fifo.c b/src/input/input_stdin_fifo.c
index 5a47c870b..5969d28bb 100644
--- a/src/input/input_stdin_fifo.c
+++ b/src/input/input_stdin_fifo.c
@@ -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: input_stdin_fifo.c,v 1.11 2001/08/17 16:15:36 f1rmb Exp $
+ * $Id: input_stdin_fifo.c,v 1.12 2001/09/08 00:44:40 guenter Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -141,6 +141,7 @@ static buf_element_t *stdin_plugin_read_block (input_plugin_t *this_gen, fifo_bu
buf_element_t *buf = fifo->buffer_pool_alloc (fifo);
buf->content = buf->mem;
+ buf->type = BUF_DEMUX_BLOCK;
total_bytes = 0;
while (total_bytes < todo) {
diff --git a/src/input/input_vcd.c b/src/input/input_vcd.c
index 74919ce67..9dd39ff0a 100644
--- a/src/input/input_vcd.c
+++ b/src/input/input_vcd.c
@@ -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: input_vcd.c,v 1.21 2001/09/05 16:02:29 guenter Exp $
+ * $Id: input_vcd.c,v 1.22 2001/09/08 00:44:40 guenter Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -568,6 +568,7 @@ static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
buf = fifo->buffer_pool_alloc (fifo);
buf->content = buf->mem;
+ buf->type = BUF_DEMUX_BLOCK;
memcpy (buf->mem, data.data, VCDSECTORSIZE); /* FIXME */
return buf;
}
diff --git a/src/xine-engine/buffer.h b/src/xine-engine/buffer.h
index 938c3e339..74ebe3dfd 100644
--- a/src/xine-engine/buffer.h
+++ b/src/xine-engine/buffer.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: buffer.h,v 1.9 2001/09/06 15:23:46 joachim_koenig Exp $
+ * $Id: buffer.h,v 1.10 2001/09/08 00:44:41 guenter Exp $
*
*
* contents:
@@ -99,6 +99,9 @@ extern "C" {
#define BUF_SPU_CLUT 0x04000000
#define BUF_SPU_PACKAGE 0x04010000
+/* demuxer block types: */
+
+#define BUF_DEMUX_BLOCK 0x05000000
typedef struct buf_element_s buf_element_t;
struct buf_element_s {