set_category( CAT_INPUT );
set_subcategory( SUBCAT_INPUT_DEMUX );
set_description( _("ASF v1.0 demuxer") );
- set_capability( "demux2", 200 );
+ set_capability( "demux", 200 );
set_callbacks( Open, Close );
add_shortcut( "asf" );
vlc_module_end();
int64_t i_data_begin;
int64_t i_data_end;
- vlc_bool_t b_index;
+ bool b_index;
vlc_meta_t *meta;
};
if( p_demux->b_die )
break;
+#if 0
+ /* FIXME: returns EOF too early for some mms streams */
if( p_sys->i_data_end >= 0 &&
stream_Tell( p_demux->s ) >= p_sys->i_data_end )
return 0; /* EOF */
+#endif
/* Check if we have concatenated files */
if( stream_Peek( p_demux->s, &p_peek, 16 ) == 16 )
if( DemuxInit( p_demux ) )
{
msg_Err( p_demux, "failed to load the new header" );
- intf_UserFatal( p_demux, VLC_FALSE, _("Could not demux ASF stream"),
+ intf_UserFatal( p_demux, false, _("Could not demux ASF stream"),
_("VLC failed to load the ASF header.") );
return 0;
}
}
else
{
- return demux2_vaControlHelper( p_demux->s, p_sys->i_data_begin,
+ return demux_vaControlHelper( p_demux->s, p_sys->i_data_begin,
p_sys->i_data_end, p_sys->i_bitrate,
p_sys->p_fp->i_min_data_packet_size,
i_query, args );
*pf = p_sys->i_time / (double)p_sys->i_length;
return VLC_SUCCESS;
}
- return demux2_vaControlHelper( p_demux->s, p_sys->i_data_begin,
+ return demux_vaControlHelper( p_demux->s, p_sys->i_data_begin,
p_sys->i_data_end, p_sys->i_bitrate,
p_sys->p_fp->i_min_data_packet_size,
i_query, args );
}
else
{
- return demux2_vaControlHelper( p_demux->s, p_sys->i_data_begin,
+ return demux_vaControlHelper( p_demux->s, p_sys->i_data_begin,
p_sys->i_data_end, p_sys->i_bitrate,
p_sys->p_fp->i_min_data_packet_size,
i_query, args );
return VLC_SUCCESS;
default:
- return demux2_vaControlHelper( p_demux->s, p_sys->i_data_begin,
+ return demux_vaControlHelper( p_demux->s, p_sys->i_data_begin,
p_sys->i_data_end, p_sys->i_bitrate,
p_sys->p_fp->i_min_data_packet_size,
i_query, args );
i_packet_send_time = GetDWLE( p_peek + i_skip ); i_skip += 4;
i_packet_duration = GetWLE( p_peek + i_skip ); i_skip += 2;
- i_packet_size_left = i_packet_length - i_packet_padding_length;
+ /* FIXME I have to do that for some file, I don't known why */
+ i_packet_size_left = i_data_packet_min /*i_packet_length*/ ;
if( b_packet_multiple_payload )
{
}
else
{
- i_payload_data_length = i_packet_length - i_skip;
+ i_payload_data_length = i_packet_length -
+ i_packet_padding_length - i_skip;
}
if( i_payload_data_length < 0 || i_payload_data_length > i_packet_size_left )
if( i_packet_size_left > 0 )
{
- msg_Warn( p_demux, "Didn't read %d bytes in the packet",
- i_packet_size_left );
+ if( i_packet_size_left > i_packet_padding_length )
+ msg_Warn( p_demux, "Didn't read %d bytes in the packet",
+ i_packet_size_left - i_packet_padding_length );
+ else if( i_packet_size_left < i_packet_padding_length )
+ msg_Warn( p_demux, "Read %d too much bytes in the packet",
+ i_packet_padding_length - i_packet_size_left );
+
if( stream_Read( p_demux->s, NULL, i_packet_size_left )
< i_packet_size_left )
{
}
}
- if( i_packet_padding_length > 0 )
- if( stream_Read( p_demux->s, NULL, i_packet_padding_length )
- < i_packet_padding_length )
- {
- msg_Err( p_demux, "cannot skip padding data, EOF ?" );
- return 0;
- }
-
return 1;
loop_error_recovery:
static int DemuxInit( demux_t *p_demux )
{
demux_sys_t *p_sys = p_demux->p_sys;
- vlc_bool_t b_seekable;
+ bool b_seekable;
unsigned int i_stream, i;
asf_object_content_description_t *p_cd;
asf_object_index_t *p_index;
- vlc_bool_t b_index;
+ bool b_index;
/* init context */
p_sys->i_time = -1;
{
asf_track_t *tk;
asf_object_stream_properties_t *p_sp;
- vlc_bool_t b_access_selected;
+ bool b_access_selected;
p_sp = ASF_FindObject( p_sys->p_root->p_hdr,
&asf_object_stream_properties_guid,
{
/* DVR-MS special ASF */
fmt.i_codec = VLC_FOURCC( 'm','p','g','2' ) ;
- fmt.b_packetized = VLC_FALSE;
+ fmt.b_packetized = false;
}
if( p_sp->i_type_specific_data_length > 11 +
fmt.i_bitrate = GetDWLE( &p_data[8] ) * 8;
fmt.audio.i_blockalign = GetWLE( &p_data[12] );
fmt.audio.i_bitspersample = GetWLE( &p_data[14] );
- fmt.b_packetized = VLC_TRUE;
+ fmt.b_packetized = true;
if( p_sp->i_type_specific_data_length > sizeof( WAVEFORMATEX ) &&
i_format != WAVE_FORMAT_MPEGLAYER3 &&