summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Hopf <mat@mshopf.de>2002-01-17 14:32:08 +0000
committerMatthias Hopf <mat@mshopf.de>2002-01-17 14:32:08 +0000
commit0163638556cf96af853d15fc269b948d64c1d4bb (patch)
treef561b09ab6fd1b3e394da9decbcec840a381eaec /src
parent31a5e090cc969b76b2e9b0430c705a42df57d6a6 (diff)
downloadxine-lib-0163638556cf96af853d15fc269b948d64c1d4bb.tar.gz
xine-lib-0163638556cf96af853d15fc269b948d64c1d4bb.tar.bz2
Allow playing of AVIs with broken/incomplete indices by using the available
index reconstruction. CVS patchset: 1418 CVS date: 2002/01/17 14:32:08
Diffstat (limited to 'src')
-rw-r--r--src/demuxers/demux_avi.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/demuxers/demux_avi.c b/src/demuxers/demux_avi.c
index 536829871..44223baec 100644
--- a/src/demuxers/demux_avi.c
+++ b/src/demuxers/demux_avi.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_avi.c,v 1.60 2002/01/02 18:16:07 jkeil Exp $
+ * $Id: demux_avi.c,v 1.61 2002/01/17 14:32:08 mshopf Exp $
*
* demultiplexer for avi streams
*
@@ -346,7 +346,13 @@ static avi_t *AVI_init(demux_avi_t *this) {
ERR_EXIT(AVI_ERR_NO_MEM);
if (this->input->read(this->input, (char *)AVI->idx, n) != n )
- ERR_EXIT(AVI_ERR_READ);
+ {
+ LOG_MSG(this->xine, _("demux_avi: avi index is broken\n"));
+ free (AVI->idx); /* Index is broken, reconstruct */
+ AVI->idx = NULL;
+ AVI->n_idx = AVI->max_idx = 0;
+ break; /* EOF */
+ }
} else
this->input->seek(this->input, n, SEEK_CUR);