Commit 37312a8b authored by Laurent Aimar's avatar Laurent Aimar

* avi : don't resynch on key frame for audio stream.

parent 7e1d4d17
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* avi.c : AVI file Stream input module for vlc * avi.c : AVI file Stream input module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: avi.c,v 1.49 2003/05/26 14:59:37 hartman Exp $ * $Id: avi.c,v 1.50 2003/06/24 00:50:52 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -1725,38 +1725,41 @@ static int AVI_StreamSeek( input_thread_t *p_input, ...@@ -1725,38 +1725,41 @@ static int AVI_StreamSeek( input_thread_t *p_input,
return VLC_EGENERIC; return VLC_EGENERIC;
} }
/* search key frame */
msg_Dbg( p_input, msg_Dbg( p_input,
"old:"I64Fd" %s new "I64Fd, "old:"I64Fd" %s new "I64Fd,
i_oldpts, i_oldpts,
i_oldpts > i_date ? ">" : "<", i_oldpts > i_date ? ">" : "<",
i_date ); i_date );
if( i_date < i_oldpts ) if( p_stream->i_cat == VIDEO_ES )
{ {
while( p_stream->i_idxposc > 0 && /* search key frame */
!( p_stream->p_index[p_stream->i_idxposc].i_flags & if( i_date < i_oldpts )
AVIIF_KEYFRAME ) )
{ {
if( AVI_SetStreamChunk( p_input, while( p_stream->i_idxposc > 0 &&
i_stream, !( p_stream->p_index[p_stream->i_idxposc].i_flags &
p_stream->i_idxposc - 1 ) ) AVIIF_KEYFRAME ) )
{ {
return VLC_EGENERIC; if( AVI_SetStreamChunk( p_input,
i_stream,
p_stream->i_idxposc - 1 ) )
{
return VLC_EGENERIC;
}
} }
} }
} else
else
{
while( p_stream->i_idxposc < p_stream->i_idxnb &&
!( p_stream->p_index[p_stream->i_idxposc].i_flags &
AVIIF_KEYFRAME ) )
{ {
if( AVI_SetStreamChunk( p_input, while( p_stream->i_idxposc < p_stream->i_idxnb &&
i_stream, !( p_stream->p_index[p_stream->i_idxposc].i_flags &
p_stream->i_idxposc + 1 ) ) AVIIF_KEYFRAME ) )
{ {
return VLC_EGENERIC; if( AVI_SetStreamChunk( p_input,
i_stream,
p_stream->i_idxposc + 1 ) )
{
return VLC_EGENERIC;
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment