diff options
| author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-05-20 16:58:02 +0000 |
|---|---|---|
| committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-05-20 16:58:02 +0000 |
| commit | f21031711ce3524cc9480fedf3e6103df831ed28 (patch) | |
| tree | 4f7319be85b0b5a41a4ec2ee66dc9ee8b98a1d6e /src/demuxers/demux_avi.c | |
| parent | f3efa8fc811f73b65a9c36ff33582a9f0900359d (diff) | |
| download | xine-lib-f21031711ce3524cc9480fedf3e6103df831ed28.tar.gz xine-lib-f21031711ce3524cc9480fedf3e6103df831ed28.tar.bz2 | |
- check for keyframes past start_pos
- fix qt demux loop deadlock
CVS patchset: 1913
CVS date: 2002/05/20 16:58:02
Diffstat (limited to 'src/demuxers/demux_avi.c')
| -rw-r--r-- | src/demuxers/demux_avi.c | 12 |
1 files changed, 5 insertions, 7 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; } |
