[vlc-devel] [PATCH] AVI: add an automatic decision choice for AVI index
Jean-Baptiste Kempf
jb at videolan.org
Tue Jan 10 18:51:33 CET 2012
Propose a choice to automatically rebuild the index when broken...
---
modules/demux/avi/avi.c | 46 ++++++++++++++++++++++++++++------------------
1 files changed, 28 insertions(+), 18 deletions(-)
diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 106bc43..e83c962 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -63,7 +63,8 @@ static const int pi_index[] = {0,1,2};
static const char *const ppsz_indexes[] = { N_("Ask for action"),
N_("Always fix"),
- N_("Never fix") };
+ N_("Never fix"),
+ N_("Automatically fix")};
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;
}
}
}
--
1.7.8.3
More information about the vlc-devel
mailing list