diff options
author | James Stembridge <jstembridge@users.sourceforge.net> | 2004-03-10 22:46:17 +0000 |
---|---|---|
committer | James Stembridge <jstembridge@users.sourceforge.net> | 2004-03-10 22:46:17 +0000 |
commit | edab3101267300b22b84900c0e30dbf100f32ea9 (patch) | |
tree | c0e877df334e94eca9223f116b25d5b6f7e22cfa /src/demuxers/demux_yuv_frames.c | |
parent | 47d841a93998622f35ccd7827ad3df0e634a5640 (diff) | |
download | xine-lib-edab3101267300b22b84900c0e30dbf100f32ea9.tar.gz xine-lib-edab3101267300b22b84900c0e30dbf100f32ea9.tar.bz2 |
Send headers so that the standard yuv and lpcm decoders can be used
CVS patchset: 6239
CVS date: 2004/03/10 22:46:17
Diffstat (limited to 'src/demuxers/demux_yuv_frames.c')
-rw-r--r-- | src/demuxers/demux_yuv_frames.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/demuxers/demux_yuv_frames.c b/src/demuxers/demux_yuv_frames.c index 5f4bbc565..42e3ec160 100644 --- a/src/demuxers/demux_yuv_frames.c +++ b/src/demuxers/demux_yuv_frames.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003 the xine project + * Copyright (C) 2003-2004 the xine project * Copyright (C) 2003 Jeroen Asselman <j.asselman@itsec-ps.nl> * * This file is part of xine, a free video player. @@ -20,7 +20,7 @@ */ /* - * $Id: demux_yuv_frames.c,v 1.14 2004/01/12 17:35:15 miguelfreitas Exp $ + * $Id: demux_yuv_frames.c,v 1.15 2004/03/10 22:46:18 jstembridge Exp $ * * dummy demultiplexer for raw yuv frames (delivered by v4l) */ @@ -87,11 +87,12 @@ static int switch_buf(demux_yuv_frames_t *this , buf_element_t *buf){ this->last_pts = buf->pts; switch (buf->type) { - case BUF_VIDEO_YUV_FRAMES: + case BUF_VIDEO_I420: + case BUF_VIDEO_YUY2: this->video_fifo->put(this->video_fifo, buf); result = 1; /* 1, we still should read audio */ break; - case BUF_AUDIO_RAWPCM: + case BUF_AUDIO_LPCM_LE: if (!_x_stream_info_get(this->stream, XINE_STREAM_INFO_HAS_VIDEO)) _x_demux_control_newpts(this->stream, buf->pts, 0); this->audio_fifo->put(this->audio_fifo, buf); @@ -120,10 +121,23 @@ static int demux_yuv_frames_send_chunk (demux_plugin_t *this_gen){ static void demux_yuv_frames_send_headers (demux_plugin_t *this_gen){ demux_yuv_frames_t *this = (demux_yuv_frames_t *) this_gen; + buf_element_t *buf; this->video_fifo = this->stream->video_fifo; this->audio_fifo = this->stream->audio_fifo; + if(_x_stream_info_get(this->stream, XINE_STREAM_INFO_HAS_AUDIO)) { + buf = this->input->read_block(this->input, this->audio_fifo, 0); + + this->audio_fifo->put(this->audio_fifo, buf); + } + + if(_x_stream_info_get(this->stream, XINE_STREAM_INFO_HAS_VIDEO)) { + buf = this->input->read_block(this->input, this->video_fifo, 0); + + this->video_fifo->put(this->video_fifo, buf); + } + this->status = DEMUX_OK; } |