static int Open ( vlc_object_t * );
static void Close ( vlc_object_t * );
-vlc_module_begin();
- set_description( N_("NullSoft demuxer" ) );
- set_capability( "demux", 10 );
- set_category( CAT_INPUT );
- set_subcategory( SUBCAT_INPUT_DEMUX );
- set_callbacks( Open, Close );
- add_shortcut( "nsv" );
-vlc_module_end();
+vlc_module_begin ()
+ set_description( N_("NullSoft demuxer" ) )
+ set_capability( "demux", 10 )
+ set_category( CAT_INPUT )
+ set_subcategory( SUBCAT_INPUT_DEMUX )
+ set_callbacks( Open, Close )
+ add_shortcut( "nsv" )
+vlc_module_end ()
/*****************************************************************************
* Local prototypes
es_format_Init( &p_sys->fmt_sub, SPU_ES, 0 );
p_sys->p_sub = NULL;
- p_sys->i_pcr = 1;
+ p_sys->i_pcr = 0;
p_sys->i_time = 0;
p_sys->i_pcr_inc = 0;
}
/* Set PCR */
- es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
+ es_out_Control( p_demux->out, ES_OUT_SET_PCR, VLC_TS_0 + p_sys->i_pcr );
/* Read video */
i_size = ( header[0] >> 4 ) | ( header[1] << 4 ) | ( header[2] << 12 );
}
/* Skip the first part (it is the language name) */
- p_frame->i_pts = p_sys->i_pcr;
- p_frame->i_dts = p_sys->i_pcr + 4000000; /* 4s */
+ p_frame->i_pts = VLC_TS_0 + p_sys->i_pcr;
+ p_frame->i_dts = VLC_TS_0 + p_sys->i_pcr + 4000000; /* 4s */
es_out_Send( p_demux->out, p_sys->p_sub, p_frame );
}
/* msg_Dbg( p_demux, "frame video size=%d", i_size ); */
if( i_size > 0 && ( p_frame = stream_Block( p_demux->s, i_size ) ) )
{
- p_frame->i_dts = p_sys->i_pcr;
+ p_frame->i_dts = VLC_TS_0 + p_sys->i_pcr;
es_out_Send( p_demux->out, p_sys->p_video, p_frame );
}
}
if( ( p_frame = stream_Block( p_demux->s, i_size ) ) )
{
p_frame->i_dts =
- p_frame->i_pts = p_sys->i_pcr;
+ p_frame->i_pts = VLC_TS_0 + p_sys->i_pcr;
es_out_Send( p_demux->out, p_sys->p_audio, p_frame );
}
}
i64 = stream_Size( p_demux->s );
if( i64 > 0 )
{
- *pf = (double)stream_Tell( p_demux->s ) / (double)i64;
+ double current = stream_Tell( p_demux->s );
+ *pf = current / (double)i64;
}
else
{
return stream_Read( p_demux->s, NULL, i_size ) == i_size ? VLC_SUCCESS : VLC_EGENERIC;
}
/*****************************************************************************
- * ReadNSVf:
+ * ReadNSVs:
*****************************************************************************/
static int ReadNSVs( demux_t *p_demux )
{
switch( ( fcc = VLC_FOURCC( header[4], header[5], header[6], header[7] ) ) )
{
case VLC_FOURCC( 'V', 'P', '3', ' ' ):
+ case VLC_FOURCC( 'V', 'P', '3', '0' ):
+ fcc = VLC_FOURCC( 'V', 'P', '3', '0' );
+ break;
+
case VLC_FOURCC( 'V', 'P', '3', '1' ):
fcc = VLC_FOURCC( 'V', 'P', '3', '1' );
break;
+
+ case VLC_FOURCC( 'V', 'P', '5', ' ' ):
+ case VLC_FOURCC( 'V', 'P', '5', '0' ):
+ fcc = VLC_FOURCC( 'V', 'P', '5', '0' );
+ break;
case VLC_FOURCC( 'V', 'P', '6', '0' ):
case VLC_FOURCC( 'V', 'P', '6', '1' ):
case VLC_FOURCC( 'V', 'P', '6', '2' ):
case VLC_FOURCC( 'A', 'A', 'C', 'P' ):
fcc = VLC_FOURCC( 'm', 'p', '4', 'a' );
break;
+ case VLC_FOURCC( 'S', 'P', 'X', ' ' ):
+ fcc = VLC_FOURCC( 's', 'p', 'x', ' ' );
+ break;
case VLC_FOURCC( 'N', 'O', 'N', 'E' ):
break;
default: