]> git.sesse.net Git - vlc/blobdiff - modules/demux/asf/asf.c
Remove I64F., not needed anymore
[vlc] / modules / demux / asf / asf.c
index 199dfc415253e8d5da6a31d70290fd73fa477565..41d442fed00c1b2e48f1d7201d6a828da5077bf1 100644 (file)
@@ -53,7 +53,7 @@ vlc_module_begin();
     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();
@@ -94,7 +94,7 @@ struct demux_sys_t
     int64_t             i_data_begin;
     int64_t             i_data_end;
 
-    vlc_bool_t          b_index;
+    bool          b_index;
     vlc_meta_t          *meta;
 };
 
@@ -151,9 +151,12 @@ static int Demux( demux_t *p_demux )
 
         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 )
@@ -171,7 +174,7 @@ static int Demux( demux_t *p_demux )
                 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;
                 }
@@ -276,7 +279,7 @@ static int Control( demux_t *p_demux, int i_query, va_list 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 );
@@ -290,7 +293,7 @@ static int Control( demux_t *p_demux, int i_query, va_list 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 );
@@ -307,7 +310,7 @@ static int Control( demux_t *p_demux, int i_query, va_list 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 );
@@ -319,7 +322,7 @@ static int Control( demux_t *p_demux, int i_query, va_list 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 );
@@ -439,7 +442,8 @@ static int DemuxPacket( demux_t *p_demux )
     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 )
     {
@@ -520,7 +524,8 @@ static int DemuxPacket( demux_t *p_demux )
         }
         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 )
@@ -623,8 +628,13 @@ static int DemuxPacket( demux_t *p_demux )
 
     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 )
         {
@@ -633,14 +643,6 @@ static int DemuxPacket( demux_t *p_demux )
         }
     }
 
-    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:
@@ -661,11 +663,11 @@ 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;
@@ -716,7 +718,7 @@ static int DemuxInit( demux_t *p_demux )
     {
         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,
@@ -795,7 +797,7 @@ static int DemuxInit( demux_t *p_demux )
             {
                 /* 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 +
@@ -877,7 +879,7 @@ static int DemuxInit( demux_t *p_demux )
                 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 &&