summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/demuxers/demux_avi.c12
-rw-r--r--src/demuxers/demux_qt.c6
2 files changed, 9 insertions, 9 deletions
diff --git a/src/demuxers/demux_avi.c b/src/demuxers/demux_avi.c
index 93a871618..053a6d891 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.86 2002/05/20 03:15:45 miguelfreitas Exp $
+ * $Id: demux_avi.c,v 1.87 2002/05/20 16:58:02 miguelfreitas Exp $
*
* demultiplexer for avi streams
*
@@ -351,14 +351,12 @@ static long audio_pos_stopper(demux_avi_t *this, void *data)
static long start_pos_stopper(demux_avi_t *this, void *data)
{
off_t start_pos = *(off_t *)data;
+ long maxframe = this->avi->video_idx.video_frames - 1;
- if (this->avi->video_idx.video_frames > 0) {
- long maxframe = this->avi->video_idx.video_frames - 1;
- video_index_entry_t *vie =
- &(this->avi->video_idx.vindex[maxframe]);
- if ( vie->pos >= start_pos ) {
+ while( maxframe >= 0 && this->avi->video_idx.vindex[maxframe].pos >= start_pos ) {
+ if ( this->avi->video_idx.vindex[maxframe].flags & AVIIF_KEYFRAME )
return 1;
- }
+ maxframe--;
}
return -1;
}
diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c
index d7a354c90..46e2dce82 100644
--- a/src/demuxers/demux_qt.c
+++ b/src/demuxers/demux_qt.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_qt.c,v 1.30 2002/05/16 21:45:10 f1rmb Exp $
+ * $Id: demux_qt.c,v 1.31 2002/05/20 16:58:02 miguelfreitas Exp $
*
* demultiplexer for mpeg-4 system (aka quicktime) streams, based on:
*
@@ -3790,8 +3790,10 @@ static void *demux_qt_loop (void *this_gen) {
/* main demuxer loop */
while(this->status == DEMUX_OK) {
- if (idx >= this->num_index_entries)
+ if (idx >= this->num_index_entries) {
+ this->status = DEMUX_FINISHED;
break;
+ }
is_audio = (this->index[idx].type & BUF_MAJOR_MASK) == BUF_AUDIO_BASE;