diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-07-05 20:54:37 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-07-05 20:54:37 +0000 |
commit | 52ae732957764b953b3b2491afda4376ce595c43 (patch) | |
tree | 9d227674f6c3467f1a9ae60bce88ab29a37265f8 /src/demuxers | |
parent | d84e2d680f143bfe1fbbf987f5a9bdd5318284ed (diff) | |
download | xine-lib-52ae732957764b953b3b2491afda4376ce595c43.tar.gz xine-lib-52ae732957764b953b3b2491afda4376ce595c43.tar.bz2 |
- win32 bugfixes
- asf bugfixes
- ffmpeg supporting ms iso mpeg4
- softsync fix by Bill Fink
CVS patchset: 2216
CVS date: 2002/07/05 20:54:37
Diffstat (limited to 'src/demuxers')
-rw-r--r-- | src/demuxers/demux_asf.c | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/src/demuxers/demux_asf.c b/src/demuxers/demux_asf.c index ea4ff3f66..0714fa090 100644 --- a/src/demuxers/demux_asf.c +++ b/src/demuxers/demux_asf.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_asf.c,v 1.48 2002/07/05 17:31:59 mroi Exp $ + * $Id: demux_asf.c,v 1.49 2002/07/05 20:54:37 miguelfreitas Exp $ * * demultiplexer for asf streams * @@ -54,7 +54,7 @@ #define DEFRAG_BUFSIZE 65536 -#define VALID_ENDS "asf,wmv" +#define VALID_ENDS "asf,wmv,wma" typedef struct { int num; @@ -95,10 +95,10 @@ typedef struct demux_asf_s { int num_audio_streams; int num_video_streams; - uint16_t wavex[128]; + uint16_t wavex[1024]; int wavex_size; - uint16_t bih[128]; + uint16_t bih[1024]; int bih_size; char title[512]; @@ -517,21 +517,28 @@ static int asf_read_header (demux_asf_t *this) { asf_send_audio_header (this, stream_id); #ifdef LOG - printf ("found a_stream id=%d \n", stream_id); + printf ("demux_asf: found a_stream id=%d \n", stream_id); #endif } else { + int i; + get_le32(this); /* width */ get_le32(this); /* height */ get_byte(this); - this->bih_size = get_le16(this); /* size */ - - this->input->read (this->input, (uint8_t *) this->bih, this->bih_size); - xine_bmiheader_le2me( (xine_bmiheader *) this->bih ); + + i = get_le16(this); /* size */ + if( i > 0 && i < sizeof(this->bih) ) { + this->bih_size = i; + this->input->read (this->input, (uint8_t *) this->bih, this->bih_size); + xine_bmiheader_le2me( (xine_bmiheader *) this->bih ); - asf_send_video_header (this, stream_id); + asf_send_video_header (this, stream_id); + } + else + printf ("demux_asf: invalid bih_size received (%d), v_stream ignored.\n", i ); #ifdef LOG - printf ("found v_stream id=%d \n", stream_id); + printf ("demux_asf: found v_stream id=%d \n", stream_id); #endif } pos2 = this->input->get_current_pos (this->input); |