Commit cedc46ea authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

AVI: add an automatic decision choice for AVI index

Propose a choice to automatically rebuild the index when broken...
parent c901035a
......@@ -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;
}
}
}
......
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