[vlc-commits] AVI: add an automatic decision choice for AVI index
Jean-Baptiste Kempf
git at videolan.org
Wed Jan 11 15:45:18 CET 2012
vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Tue Jan 10 18:48:39 2012 +0100| [cedc46eab06be1694030a2981247d4abc5708ebb] | committer: Jean-Baptiste Kempf
AVI: add an automatic decision choice for AVI index
Propose a choice to automatically rebuild the index when broken...
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=cedc46eab06be1694030a2981247d4abc5708ebb
---
modules/demux/avi/avi.c | 48 ++++++++++++++++++++++++++++------------------
1 files changed, 29 insertions(+), 19 deletions(-)
diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 106bc43..5e86df8 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -59,11 +59,12 @@
static int Open ( vlc_object_t * );
static void Close( vlc_object_t * );
-static const int pi_index[] = {0,1,2};
+static const int pi_index[] = {0,1,2,3};
static const char *const ppsz_indexes[] = { N_("Ask for action"),
N_("Always fix"),
- N_("Never fix") };
+ N_("Never fix"),
+ N_("Fix when necessary")};
vlc_module_begin ()
set_shortname( "AVI" )
@@ -666,29 +667,38 @@ aviindex:
msg_Warn( p_demux, "broken or missing index, 'seek' will be "
"approximative or will exhibit strange behavior" );
- if( i_do_index == 0 && !b_index )
+ if( (i_do_index == 0 || i_do_index == 3) && !b_index )
{
if( !p_sys->b_seekable ) {
b_index = true;
goto aviindex;
}
- switch( dialog_Question( p_demux, _("Broken or missing AVI Index") ,
- _( "Because this AVI file index is broken or missing, "
- "seeking will not work correctly.\n"
- "VLC won't repair your file but can temporary fix this "
- "problem by building an index in memory.\n"
- "This step might take a long time on a large file.\n"
- "What do you want to do?" ),
- _( "Build index then play" ), _( "Play as is" ), _( "Do not play") ) )
+ if( i_do_index == 0 )
{
- case 1:
- b_index = true;
- msg_Dbg( p_demux, "Fixing AVI index" );
- goto aviindex;
- case 3:
- /* Kill input */
- vlc_object_kill( p_demux->p_parent );
- goto error;
+ switch( dialog_Question( p_demux, _("Broken or missing AVI Index") ,
+ _( "Because this AVI file index is broken or missing, "
+ "seeking will not work correctly.\n"
+ "VLC won't repair your file but can temporary fix this "
+ "problem by building an index in memory.\n"
+ "This step might take a long time on a large file.\n"
+ "What do you want to do?" ),
+ _( "Build index then play" ), _( "Play as is" ), _( "Do not play") ) )
+ {
+ case 1:
+ b_index = true;
+ msg_Dbg( p_demux, "Fixing AVI index" );
+ goto aviindex;
+ case 3:
+ /* Kill input */
+ vlc_object_kill( p_demux->p_parent );
+ goto error;
+ }
+ }
+ else
+ {
+ b_index = true;
+ msg_Dbg( p_demux, "Fixing AVI index" );
+ goto aviindex;
}
}
}
More information about the vlc-commits
mailing list