# include "config.h"
#endif
-#include <vlc/vlc.h>
+#include <vlc_common.h>
+#include <vlc_plugin.h>
#include <vlc_demux.h>
#include <vlc_interface.h>
static int Open ( vlc_object_t * );
static void Close( vlc_object_t * );
-static int pi_index[] = {0,1,2};
+static const int pi_index[] = {0,1,2};
-static const char *ppsz_indexes[] = { N_("Ask"), N_("Always fix"),
+static const char *const ppsz_indexes[] = { N_("Ask"), N_("Always fix"),
N_("Never fix") };
vlc_module_begin();
set_shortname( "AVI" );
- set_description( _("AVI demuxer") );
+ set_description( N_("AVI demuxer") );
set_capability( "demux", 212 );
set_category( CAT_INPUT );
set_subcategory( SUBCAT_INPUT_DEMUX );
{
avi_track_t *tk = malloc( sizeof( avi_track_t ) );
if( !tk )
- {
- msg_Err( p_demux, "Out of memory" );
goto error;
- }
avi_chunk_list_t *p_strl = AVI_ChunkFind( p_hdrl, AVIFOURCC_strl, i );
avi_chunk_strh_t *p_strh = AVI_ChunkFind( p_strl, AVIFOURCC_strh, 0 );
__MIN( p_vids->p_bih->biSize - sizeof( BITMAPINFOHEADER ),
p_vids->i_chunk_size - sizeof(BITMAPINFOHEADER) );
fmt.p_extra = &p_vids->p_bih[1];
- msg_Dbg( p_demux, "stream[%d] video(%4.4s) %dx%d %dbpp %ffps",
+ msg_Dbg( p_demux, "stream[%d] video(%4.4s) %"PRIu32"x%"PRIu32" %dbpp %ffps",
i, (char*)&p_vids->p_bih->biCompression,
- p_vids->p_bih->biWidth,
- p_vids->p_bih->biHeight,
+ (uint32_t)p_vids->p_bih->biWidth,
+ (uint32_t)p_vids->p_bih->biHeight,
p_vids->p_bih->biBitCount,
(float)tk->i_rate/(float)tk->i_scale );
(mtime_t)1000000 )
{
msg_Warn( p_demux, "broken or missing index, 'seek' will be "
- "axproximative or will have strange behaviour" );
+ "approximative or will exhibit strange behavior" );
if( i_do_index == 0 && !b_index )
{
+ if( !p_sys->b_seekable ) {
+ b_index = true;
+ goto aviindex;
+ }
int i_create;
i_create = intf_UserYesNo( p_demux, _("AVI Index") ,
_( "This AVI file is broken. Seeking will not "
* affect the reading speed too much. */
if( !(++i_loop_count % 1024) )
{
- if( p_demux->b_die ) return -1;
+ if( !vlc_object_alive (p_demux) ) return -1;
msleep( 10000 );
if( !(i_loop_count % (1024 * 10)) )
demux_sys_t *p_sys = p_demux->p_sys;
unsigned int i_stream;
- msg_Dbg( p_demux, "seek requested: "I64Fd" seconds %d%%",
+ msg_Dbg( p_demux, "seek requested: %"PRId64" seconds %d%%",
i_date / 1000000, i_percent );
if( p_sys->b_seekable )
i_date = AVI_GetPTS( p_stream );
/* TODO better support for i_samplesize != 0 */
- msg_Dbg( p_demux, "estimate date "I64Fd, i_date );
+ msg_Dbg( p_demux, "estimate date %"PRId64, i_date );
}
/* */
AVI_TrackSeek( p_demux, i_stream, i_date );
}
p_sys->i_time = i_date;
- msg_Dbg( p_demux, "seek: "I64Fd" seconds", p_sys->i_time /1000000 );
+ msg_Dbg( p_demux, "seek: %"PRId64" seconds", p_sys->i_time /1000000 );
return VLC_SUCCESS;
}
else
for( ;; )
{
- if( p_demux->b_die ) return VLC_EGENERIC;
+ if( !vlc_object_alive (p_demux) ) return VLC_EGENERIC;
if( AVI_PacketGetHeader( p_demux, &avi_pk ) )
{
* affect the reading speed too much. */
if( !(++i_loop_count % 1024) )
{
- if( p_demux->b_die ) return VLC_EGENERIC;
+ if( !vlc_object_alive (p_demux) ) return VLC_EGENERIC;
msleep( 10000 );
if( !(i_loop_count % (1024 * 10)) )
}
msg_Dbg( p_demux,
- "old:"I64Fd" %s new "I64Fd,
+ "old:%"PRId64" %s new %"PRId64,
i_oldpts,
i_oldpts > i_date ? ">" : "<",
i_date );
* this code is called only on broken files). */
if( !(++i_count % 1024) )
{
- if( p_demux->b_die ) return VLC_EGENERIC;
+ if( !vlc_object_alive (p_demux) ) return VLC_EGENERIC;
msleep( 10000 );
if( !(i_count % (1024 * 10)) )
{
avi_packet_t pk;
- if( p_demux->b_die )
+ if( !vlc_object_alive (p_demux) )
{
return;
}
i_length /= (mtime_t)1000000; /* in seconds */
msg_Dbg( p_demux,
- "stream[%d] length:"I64Fd" (based on index)",
+ "stream[%d] length:%"PRId64" (based on index)",
i,
i_length );
i_maxlength = __MAX( i_maxlength, i_length );