diff options
author | Thibaut Mattern <tmattern@users.sourceforge.net> | 2004-03-03 00:39:15 +0000 |
---|---|---|
committer | Thibaut Mattern <tmattern@users.sourceforge.net> | 2004-03-03 00:39:15 +0000 |
commit | e611df44909c030631e1a7ae08791751d651254d (patch) | |
tree | b643f19c9c818ba8ea6c284afa42b857501bf064 | |
parent | 36010d30e11d7342dba622bf2561ba118f6e1ba7 (diff) | |
download | xine-lib-e611df44909c030631e1a7ae08791751d651254d.tar.gz xine-lib-e611df44909c030631e1a7ae08791751d651254d.tar.bz2 |
An id3 parsing error is not a reason to not play the mp3 stream.
Should fix some bugs reported on irc and sf bugreport system.
CVS patchset: 6207
CVS date: 2004/03/03 00:39:15
-rw-r--r-- | src/demuxers/demux_mpgaudio.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/demuxers/demux_mpgaudio.c b/src/demuxers/demux_mpgaudio.c index 6eabc3fff..daa87a7dc 100644 --- a/src/demuxers/demux_mpgaudio.c +++ b/src/demuxers/demux_mpgaudio.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_mpgaudio.c,v 1.133 2004/03/01 21:03:19 tmattern Exp $ + * $Id: demux_mpgaudio.c,v 1.134 2004/03/03 00:39:15 tmattern Exp $ * * demultiplexer for mpeg audio (i.e. mp3) streams * @@ -529,17 +529,23 @@ static int demux_mpgaudio_next (demux_mpgaudio_t *this, int decoder_flags) { xprintf(this->stream->xine, XINE_VERBOSITY_LOG, "demux_mpgaudio: ID3V2.2 tag\n"); if (!id3v22_parse_tag(this->input, this->stream, header_buf)) { - return 0; + xprintf(this->stream->xine, XINE_VERBOSITY_LOG, + "demux_mpgaudio: ID3V2.2 tag parsing error\n"); + bytes = 1; /* resync */ + } else { + bytes = 4; } - bytes = 4; } else if ((BE_32(header_buf)) == ID3V23_TAG) { xprintf(this->stream->xine, XINE_VERBOSITY_LOG, "demux_mpgaudio: ID3V2.3 tag\n"); if (!id3v23_parse_tag(this->input, this->stream, header_buf)) { - return 0; + xprintf(this->stream->xine, XINE_VERBOSITY_LOG, + "demux_mpgaudio: ID3V2.3 tag parsing error\n"); + bytes = 1; /* resync */ + } else { + bytes = 4; } - bytes = 4; } else if ((BE_32(header_buf)) == ID3V24_TAG) { xprintf(this->stream->xine, XINE_VERBOSITY_LOG, |