Commit 6cd56a27 authored by Laurent Aimar's avatar Laurent Aimar

asf/* : Convert all u* into uint*_t

         Fix playing of some live asf, seek improvement (at least for me ;)
but it's more some "kludge" with vlc clock than true fixes ...

 I will never understand how vlc clock works ....
parent 3d6b672b
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* asf.c : ASFv01 file input module for vlc * asf.c : ASFv01 file input module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: asf.c,v 1.4 2002/11/10 16:31:20 fenrir Exp $ * $Id: asf.c,v 1.5 2002/11/14 16:17:47 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -51,11 +51,11 @@ vlc_module_begin(); ...@@ -51,11 +51,11 @@ vlc_module_begin();
add_shortcut( "asf" ); add_shortcut( "asf" );
vlc_module_end(); vlc_module_end();
static u16 GetWLE( u8 *p_buff ) static uint16_t GetWLE( uint8_t *p_buff )
{ {
return( (p_buff[0]) + ( p_buff[1] <<8 ) ); return( (p_buff[0]) + ( p_buff[1] <<8 ) );
} }
static u32 GetDWLE( u8 *p_buff ) static uint32_t GetDWLE( uint8_t *p_buff )
{ {
return( p_buff[0] + ( p_buff[1] <<8 ) + return( p_buff[0] + ( p_buff[1] <<8 ) +
( p_buff[2] <<16 ) + ( p_buff[3] <<24 ) ); ( p_buff[2] <<16 ) + ( p_buff[3] <<24 ) );
...@@ -67,7 +67,7 @@ static u32 GetDWLE( u8 *p_buff ) ...@@ -67,7 +67,7 @@ static u32 GetDWLE( u8 *p_buff )
static int Activate( vlc_object_t * p_this ) static int Activate( vlc_object_t * p_this )
{ {
input_thread_t *p_input = (input_thread_t *)p_this; input_thread_t *p_input = (input_thread_t *)p_this;
u8 *p_peek; uint8_t *p_peek;
guid_t guid; guid_t guid;
demux_sys_t *p_demux; demux_sys_t *p_demux;
...@@ -103,6 +103,7 @@ static int Activate( vlc_object_t * p_this ) ...@@ -103,6 +103,7 @@ static int Activate( vlc_object_t * p_this )
return( -1 ); return( -1 );
} }
memset( p_demux, 0, sizeof( demux_sys_t ) ); memset( p_demux, 0, sizeof( demux_sys_t ) );
p_demux->i_first_pts = -1;
/* Now load all object ( except raw data ) */ /* Now load all object ( except raw data ) */
if( !ASF_ReadObjectRoot( p_input, &p_demux->root, p_input->stream.b_seekable ) ) if( !ASF_ReadObjectRoot( p_input, &p_demux->root, p_input->stream.b_seekable ) )
...@@ -284,7 +285,10 @@ static int Activate( vlc_object_t * p_this ) ...@@ -284,7 +285,10 @@ static int Activate( vlc_object_t * p_this )
p_stream->p_es->i_cat = p_stream->i_cat; p_stream->p_es->i_cat = p_stream->i_cat;
vlc_mutex_lock( &p_input->stream.stream_lock ); vlc_mutex_lock( &p_input->stream.stream_lock );
if( p_stream->p_es->i_fourcc != VLC_FOURCC( 'u','n','d','f' ) )
{
input_SelectES( p_input, p_stream->p_es ); input_SelectES( p_input, p_stream->p_es );
}
vlc_mutex_unlock( &p_input->stream.stream_lock ); vlc_mutex_unlock( &p_input->stream.stream_lock );
} }
...@@ -331,7 +335,7 @@ static int Demux( input_thread_t *p_input ) ...@@ -331,7 +335,7 @@ static int Demux( input_thread_t *p_input )
if( p_input->stream.p_selected_program->i_synchro_state == SYNCHRO_REINIT ) if( p_input->stream.p_selected_program->i_synchro_state == SYNCHRO_REINIT )
{ {
off_t i_offset; off_t i_offset;
msleep( DEFAULT_PTS_DELAY );
i_offset = ASF_TellAbsolute( p_input ) - p_demux->i_data_begin; i_offset = ASF_TellAbsolute( p_input ) - p_demux->i_data_begin;
if( i_offset < 0 ) if( i_offset < 0 )
...@@ -352,21 +356,13 @@ static int Demux( input_thread_t *p_input ) ...@@ -352,21 +356,13 @@ static int Demux( input_thread_t *p_input )
} }
#undef p_stream #undef p_stream
} }
} }
/* first wait for the good time to read a packet */
input_ClockManageRef( p_input,
p_input->stream.p_selected_program,
p_demux->i_pcr );
/* update pcr XXX in mpeg scale so in 90000 unit/s */
p_demux->i_pcr = p_demux->i_time * 9 / 100;
for( i = 0; i < 10; i++ ) // parse 10 packets for( i = 0; i < 10; i++ ) // parse 10 packets
{ {
int i_data_packet_min = p_demux->p_fp->i_min_data_packet_size; int i_data_packet_min = p_demux->p_fp->i_min_data_packet_size;
u8 *p_peek; uint8_t *p_peek;
int i_skip; int i_skip;
int i_packet_size_left; int i_packet_size_left;
...@@ -378,8 +374,8 @@ static int Demux( input_thread_t *p_input ) ...@@ -378,8 +374,8 @@ static int Demux( input_thread_t *p_input )
int i_packet_sequence; int i_packet_sequence;
int i_packet_padding_length; int i_packet_padding_length;
u32 i_packet_send_time; uint32_t i_packet_send_time;
u16 i_packet_duration; uint16_t i_packet_duration;
int i_payload; int i_payload;
int i_payload_count; int i_payload_count;
int i_payload_length_type; int i_payload_length_type;
...@@ -482,7 +478,7 @@ static int Demux( input_thread_t *p_input ) ...@@ -482,7 +478,7 @@ static int Demux( input_thread_t *p_input )
else if( i_replicated_data_length == 1 ) else if( i_replicated_data_length == 1 )
{ {
msg_Warn( p_input, "found compressed payload" ); msg_Dbg( p_input, "found compressed payload" );
i_pts = (mtime_t)i_tmp * 1000; i_pts = (mtime_t)i_tmp * 1000;
i_pts_delta = (mtime_t)p_peek[i_skip] * 1000; i_skip++; i_pts_delta = (mtime_t)p_peek[i_skip] * 1000; i_skip++;
...@@ -498,15 +494,14 @@ static int Demux( input_thread_t *p_input ) ...@@ -498,15 +494,14 @@ static int Demux( input_thread_t *p_input )
} }
i_pts = __MAX( i_pts - p_demux->p_fp->i_preroll * 1000, 0 ); i_pts = __MAX( i_pts - p_demux->p_fp->i_preroll * 1000, 0 );
if( b_packet_multiple_payload ) if( b_packet_multiple_payload )
{ {
GETVALUE2b( i_payload_length_type, i_payload_data_length, 0 ); GETVALUE2b( i_payload_length_type, i_payload_data_length, 0 );
} }
else else
{ {
msg_Warn( p_input, "single payload" ); i_payload_data_length = i_packet_length -
i_payload_data_length = i_packet_length - i_packet_padding_length - i_skip; i_packet_padding_length - i_skip;
} }
#if 0 #if 0
...@@ -523,7 +518,8 @@ static int Demux( input_thread_t *p_input ) ...@@ -523,7 +518,8 @@ static int Demux( input_thread_t *p_input )
if( !( p_stream = p_demux->stream[i_stream_number] ) ) if( !( p_stream = p_demux->stream[i_stream_number] ) )
{ {
msg_Warn( p_input, "undeclared stream[Id 0x%x]", i_stream_number ); msg_Warn( p_input,
"undeclared stream[Id 0x%x]", i_stream_number );
i_skip += i_payload_data_length; i_skip += i_payload_data_length;
continue; // over payload continue; // over payload
} }
...@@ -565,14 +561,21 @@ static int Demux( input_thread_t *p_input ) ...@@ -565,14 +561,21 @@ static int Demux( input_thread_t *p_input )
if( !p_stream->p_pes ) // add a new PES if( !p_stream->p_pes ) // add a new PES
{ {
p_stream->i_time = ( (mtime_t)i_pts + i_payload * (mtime_t)i_pts_delta ); p_stream->i_time =
( (mtime_t)i_pts + i_payload * (mtime_t)i_pts_delta );
if( p_demux->i_first_pts == -1 )
{
p_demux->i_first_pts = p_stream->i_time;
}
p_stream->i_time -= p_demux->i_first_pts;
p_stream->p_pes = input_NewPES( p_input->p_method_data ); p_stream->p_pes = input_NewPES( p_input->p_method_data );
p_stream->p_pes->i_dts = p_stream->p_pes->i_dts =
p_stream->p_pes->i_pts = p_stream->p_pes->i_pts =
input_ClockGetTS( p_input, input_ClockGetTS( p_input,
p_input->stream.p_selected_program, p_input->stream.p_selected_program,
p_stream->i_time * 9 / 100 ); ( p_stream->i_time+DEFAULT_PTS_DELAY) * 9 /100 );
p_stream->p_pes->p_next = NULL; p_stream->p_pes->p_next = NULL;
p_stream->p_pes->i_nb_data = 0; p_stream->p_pes->i_nb_data = 0;
...@@ -635,17 +638,36 @@ loop_error_recovery: ...@@ -635,17 +638,36 @@ loop_error_recovery:
ASF_SkipBytes( p_input, i_data_packet_min ); ASF_SkipBytes( p_input, i_data_packet_min );
} // loop over packet } // loop over packet
p_demux->i_time = 0; p_demux->i_time = -1;
for( i = 0; i < 128 ; i++ ) for( i = 0; i < 128 ; i++ )
{ {
#define p_stream p_demux->stream[i] #define p_stream p_demux->stream[i]
if( p_stream && p_stream->p_es && p_stream->p_es->p_decoder_fifo ) if( p_stream && p_stream->p_es && p_stream->p_es->p_decoder_fifo )
{ {
p_demux->i_time = __MAX( p_demux->i_time, p_stream->i_time ); if( p_demux->i_time < 0 )
{
p_demux->i_time = p_stream->i_time;
}
else
{
p_demux->i_time = __MIN( p_demux->i_time, p_stream->i_time );
}
} }
#undef p_stream #undef p_stream
} }
if( p_demux->i_time >= 0 )
{
/* update pcr XXX in mpeg scale so in 90000 unit/s */
p_demux->i_pcr =( __MAX( p_demux->i_time /*- DEFAULT_PTS_DELAY*/, 0 ) ) * 9 / 100;
/* first wait for the good time to read next packets */
input_ClockManageRef( p_input,
p_input->stream.p_selected_program,
p_demux->i_pcr );
}
return( 1 ); return( 1 );
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* asf.h : ASFv01 file input module for vlc * asf.h : ASFv01 file input module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: asf.h,v 1.1 2002/10/20 17:22:33 fenrir Exp $ * $Id: asf.h,v 1.2 2002/11/14 16:17:47 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -34,6 +34,7 @@ typedef struct asf_stream_s ...@@ -34,6 +34,7 @@ typedef struct asf_stream_s
struct demux_sys_t struct demux_sys_t
{ {
mtime_t i_first_pts;
mtime_t i_pcr; // 1/90000 s mtime_t i_pcr; // 1/90000 s
mtime_t i_time; // µs mtime_t i_time; // µs
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* libasf.c : * libasf.c :
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: libasf.c,v 1.5 2002/11/10 16:31:20 fenrir Exp $ * $Id: libasf.c,v 1.6 2002/11/14 16:17:47 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -44,23 +44,24 @@ ...@@ -44,23 +44,24 @@
(guid).v4[4],(guid).v4[5],(guid).v4[6],(guid).v4[7] (guid).v4[4],(guid).v4[5],(guid).v4[6],(guid).v4[7]
/* Some functions to manipulate memory */ /* Some functions to manipulate memory */
static u16 GetWLE( u8 *p_buff ) static uint16_t GetWLE( uint8_t *p_buff )
{ {
return( (p_buff[0]) + ( p_buff[1] <<8 ) ); return( (p_buff[0]) + ( p_buff[1] <<8 ) );
} }
static u32 GetDWLE( u8 *p_buff ) static uint32_t GetDWLE( uint8_t *p_buff )
{ {
return( p_buff[0] + ( p_buff[1] <<8 ) + return( p_buff[0] + ( p_buff[1] <<8 ) +
( p_buff[2] <<16 ) + ( p_buff[3] <<24 ) ); ( p_buff[2] <<16 ) + ( p_buff[3] <<24 ) );
} }
static u64 GetQWLE( u8 *p_buff ) static uint64_t GetQWLE( uint8_t *p_buff )
{ {
return( ( (u64)GetDWLE( p_buff ) )|( (u64)GetDWLE( p_buff + 4 ) << 32) ); return( ( (uint64_t)GetDWLE( p_buff ) )|
( (uint64_t)GetDWLE( p_buff + 4 ) << 32) );
} }
void GetGUID( guid_t *p_guid, u8 *p_data ) void GetGUID( guid_t *p_guid, uint8_t *p_data )
{ {
p_guid->v1 = GetDWLE( p_data ); p_guid->v1 = GetDWLE( p_data );
p_guid->v2 = GetWLE( p_data + 4); p_guid->v2 = GetWLE( p_data + 4);
...@@ -125,7 +126,7 @@ int ASF_SeekAbsolute( input_thread_t *p_input, ...@@ -125,7 +126,7 @@ int ASF_SeekAbsolute( input_thread_t *p_input,
} }
else if( i_pos > i_filepos ) else if( i_pos > i_filepos )
{ {
u64 i_size = i_pos - i_filepos; uint64_t i_size = i_pos - i_filepos;
do do
{ {
data_packet_t *p_data; data_packet_t *p_data;
...@@ -152,7 +153,7 @@ int ASF_SeekAbsolute( input_thread_t *p_input, ...@@ -152,7 +153,7 @@ int ASF_SeekAbsolute( input_thread_t *p_input,
} }
/* return 1 if success, 0 if fail */ /* return 1 if success, 0 if fail */
int ASF_ReadData( input_thread_t *p_input, u8 *p_buff, int i_size ) int ASF_ReadData( input_thread_t *p_input, uint8_t *p_buff, int i_size )
{ {
data_packet_t *p_data; data_packet_t *p_data;
...@@ -193,7 +194,7 @@ int ASF_ReadObjectCommon( input_thread_t *p_input, ...@@ -193,7 +194,7 @@ int ASF_ReadObjectCommon( input_thread_t *p_input,
asf_object_t *p_obj ) asf_object_t *p_obj )
{ {
asf_object_common_t *p_common = (asf_object_common_t*)p_obj; asf_object_common_t *p_common = (asf_object_common_t*)p_obj;
u8 *p_peek; uint8_t *p_peek;
if( input_Peek( p_input, &p_peek, 24 ) < 24 ) if( input_Peek( p_input, &p_peek, 24 ) < 24 )
{ {
...@@ -268,7 +269,7 @@ int ASF_ReadObject_Header( input_thread_t *p_input, ...@@ -268,7 +269,7 @@ int ASF_ReadObject_Header( input_thread_t *p_input,
asf_object_header_t *p_hdr = (asf_object_header_t*)p_obj; asf_object_header_t *p_hdr = (asf_object_header_t*)p_obj;
asf_object_t *p_subobj; asf_object_t *p_subobj;
int i_peek; int i_peek;
u8 *p_peek; uint8_t *p_peek;
if( ( i_peek = input_Peek( p_input, &p_peek, 30 ) ) < 30 ) if( ( i_peek = input_Peek( p_input, &p_peek, 30 ) ) < 30 )
{ {
...@@ -309,7 +310,7 @@ int ASF_ReadObject_Data( input_thread_t *p_input, ...@@ -309,7 +310,7 @@ int ASF_ReadObject_Data( input_thread_t *p_input,
{ {
asf_object_data_t *p_data = (asf_object_data_t*)p_obj; asf_object_data_t *p_data = (asf_object_data_t*)p_obj;
int i_peek; int i_peek;
u8 *p_peek; uint8_t *p_peek;
if( ( i_peek = input_Peek( p_input, &p_peek, 50 ) ) < 50 ) if( ( i_peek = input_Peek( p_input, &p_peek, 50 ) ) < 50 )
{ {
...@@ -334,7 +335,7 @@ int ASF_ReadObject_Index( input_thread_t *p_input, ...@@ -334,7 +335,7 @@ int ASF_ReadObject_Index( input_thread_t *p_input,
{ {
asf_object_index_t *p_index = (asf_object_index_t*)p_obj; asf_object_index_t *p_index = (asf_object_index_t*)p_obj;
int i_peek; int i_peek;
u8 *p_peek; uint8_t *p_peek;
if( ( i_peek = input_Peek( p_input, &p_peek, 56 ) ) < 56 ) if( ( i_peek = input_Peek( p_input, &p_peek, 56 ) ) < 56 )
{ {
...@@ -370,7 +371,7 @@ int ASF_ReadObject_file_properties( input_thread_t *p_input, ...@@ -370,7 +371,7 @@ int ASF_ReadObject_file_properties( input_thread_t *p_input,
{ {
asf_object_file_properties_t *p_fp = (asf_object_file_properties_t*)p_obj; asf_object_file_properties_t *p_fp = (asf_object_file_properties_t*)p_obj;
int i_peek; int i_peek;
u8 *p_peek; uint8_t *p_peek;
if( ( i_peek = input_Peek( p_input, &p_peek, 92) ) < 92 ) if( ( i_peek = input_Peek( p_input, &p_peek, 92) ) < 92 )
{ {
...@@ -415,7 +416,7 @@ int ASF_ReadObject_header_extention( input_thread_t *p_input, ...@@ -415,7 +416,7 @@ int ASF_ReadObject_header_extention( input_thread_t *p_input,
{ {
asf_object_header_extention_t *p_he = (asf_object_header_extention_t*)p_obj; asf_object_header_extention_t *p_he = (asf_object_header_extention_t*)p_obj;
int i_peek; int i_peek;
u8 *p_peek; uint8_t *p_peek;
if( ( i_peek = input_Peek( p_input, &p_peek, p_he->i_object_size ) ) < 46) if( ( i_peek = input_Peek( p_input, &p_peek, p_he->i_object_size ) ) < 46)
{ {
...@@ -458,7 +459,7 @@ int ASF_ReadObject_stream_properties( input_thread_t *p_input, ...@@ -458,7 +459,7 @@ int ASF_ReadObject_stream_properties( input_thread_t *p_input,
asf_object_stream_properties_t *p_sp = asf_object_stream_properties_t *p_sp =
(asf_object_stream_properties_t*)p_obj; (asf_object_stream_properties_t*)p_obj;
int i_peek; int i_peek;
u8 *p_peek; uint8_t *p_peek;
if( ( i_peek = input_Peek( p_input, &p_peek, p_sp->i_object_size ) ) < 74 ) if( ( i_peek = input_Peek( p_input, &p_peek, p_sp->i_object_size ) ) < 74 )
{ {
...@@ -529,7 +530,7 @@ int ASF_ReadObject_codec_list( input_thread_t *p_input, ...@@ -529,7 +530,7 @@ int ASF_ReadObject_codec_list( input_thread_t *p_input,
{ {
asf_object_codec_list_t *p_cl = (asf_object_codec_list_t*)p_obj; asf_object_codec_list_t *p_cl = (asf_object_codec_list_t*)p_obj;
int i_peek; int i_peek;
u8 *p_peek, *p_data; uint8_t *p_peek, *p_data;
int i_codec; int i_codec;
...@@ -638,9 +639,10 @@ void ASF_FreeObject_codec_list( input_thread_t *p_input, ...@@ -638,9 +639,10 @@ void ASF_FreeObject_codec_list( input_thread_t *p_input,
int ASF_ReadObject_content_description( input_thread_t *p_input, int ASF_ReadObject_content_description( input_thread_t *p_input,
asf_object_t *p_obj ) asf_object_t *p_obj )
{ {
asf_object_content_description_t *p_cd = (asf_object_content_description_t*)p_obj; asf_object_content_description_t *p_cd =
(asf_object_content_description_t*)p_obj;
int i_peek; int i_peek;
u8 *p_peek, *p_data; uint8_t *p_peek, *p_data;
int i_len; int i_len;
int i_title; int i_title;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* libasf.h : * libasf.h :
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: libasf.h,v 1.3 2002/11/05 10:07:56 gbazin Exp $ * $Id: libasf.h,v 1.4 2002/11/14 16:17:47 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -27,10 +27,10 @@ ...@@ -27,10 +27,10 @@
*****************************************************************************/ *****************************************************************************/
typedef struct guid_s typedef struct guid_s
{ {
u32 v1; /* le */ uint32_t v1; /* le */
u16 v2; /* le */ uint16_t v2; /* le */
u16 v3; /* le */ uint16_t v3; /* le */
u8 v4[8]; uint8_t v4[8];
} guid_t; } guid_t;
#define ASF_OBJECT_TYPE_NULL 0x0000 #define ASF_OBJECT_TYPE_NULL 0x0000
...@@ -189,8 +189,8 @@ typedef struct asf_object_common_s ...@@ -189,8 +189,8 @@ typedef struct asf_object_common_s
typedef struct asf_index_entry_s typedef struct asf_index_entry_s
{ {
u32 i_packet_number; uint32_t i_packet_number;
u16 i_packet_count; uint16_t i_packet_count;
} asf_index_entry_t; } asf_index_entry_t;
...@@ -202,9 +202,9 @@ typedef struct asf_index_entry_s ...@@ -202,9 +202,9 @@ typedef struct asf_index_entry_s
typedef struct asf_object_header_s typedef struct asf_object_header_s
{ {
ASF_OBJECT_COMMON ASF_OBJECT_COMMON
u32 i_sub_object_count; uint32_t i_sub_object_count;
u8 i_reserved1; /* 0x01, but could be safely ignored */ uint8_t i_reserved1; /* 0x01, but could be safely ignored */
u8 i_reserved2; /* 0x02, if not must failed to source the contain */ uint8_t i_reserved2; /* 0x02, if not must failed to source the contain */
} asf_object_header_t; } asf_object_header_t;
...@@ -212,8 +212,8 @@ typedef struct asf_object_data_s ...@@ -212,8 +212,8 @@ typedef struct asf_object_data_s
{ {
ASF_OBJECT_COMMON ASF_OBJECT_COMMON
guid_t i_file_id; guid_t i_file_id;
u64 i_total_data_packets; uint64_t i_total_data_packets;
u16 i_reserved; uint16_t i_reserved;
} asf_object_data_t; } asf_object_data_t;
...@@ -222,9 +222,9 @@ typedef struct asf_object_index_s ...@@ -222,9 +222,9 @@ typedef struct asf_object_index_s
{ {
ASF_OBJECT_COMMON ASF_OBJECT_COMMON
guid_t i_file_id; guid_t i_file_id;
u64 i_index_entry_time_interval; uint64_t i_index_entry_time_interval;
u32 i_max_packet_count; uint32_t i_max_packet_count;
u32 i_index_entry_count; uint32_t i_index_entry_count;
asf_index_entry_t *index_entry; asf_index_entry_t *index_entry;
...@@ -251,16 +251,16 @@ typedef struct asf_object_file_properties_s ...@@ -251,16 +251,16 @@ typedef struct asf_object_file_properties_s
ASF_OBJECT_COMMON ASF_OBJECT_COMMON
guid_t i_file_id; guid_t i_file_id;
u64 i_file_size; uint64_t i_file_size;
u64 i_creation_date; uint64_t i_creation_date;
u64 i_data_packets_count; uint64_t i_data_packets_count;
u64 i_play_duration; uint64_t i_play_duration;
u64 i_send_duration; uint64_t i_send_duration;
u64 i_preroll; uint64_t i_preroll;
u32 i_flags; uint32_t i_flags;
u32 i_min_data_packet_size; uint32_t i_min_data_packet_size;
u32 i_max_data_packet_size; uint32_t i_max_data_packet_size;
u32 i_max_bitrate; uint32_t i_max_bitrate;
} asf_object_file_properties_t; } asf_object_file_properties_t;
...@@ -271,15 +271,15 @@ typedef struct asf_object_stream_properties_s ...@@ -271,15 +271,15 @@ typedef struct asf_object_stream_properties_s
guid_t i_stream_type; guid_t i_stream_type;
guid_t i_error_correction_type; guid_t i_error_correction_type;
u64 i_time_offset; uint64_t i_time_offset;
u32 i_type_specific_data_length; uint32_t i_type_specific_data_length;
u32 i_error_correction_data_length; uint32_t i_error_correction_data_length;
u16 i_flags; uint16_t i_flags;
/* extrated from flags */ /* extrated from flags */
u8 i_stream_number; uint8_t i_stream_number;
u32 i_reserved; uint32_t i_reserved;
u8 *p_type_specific_data; uint8_t *p_type_specific_data;
u8 *p_error_correction_data; uint8_t *p_error_correction_data;
} asf_object_stream_properties_t; } asf_object_stream_properties_t;
typedef struct asf_object_header_extention_s typedef struct asf_object_header_extention_s
...@@ -287,9 +287,9 @@ typedef struct asf_object_header_extention_s ...@@ -287,9 +287,9 @@ typedef struct asf_object_header_extention_s
ASF_OBJECT_COMMON ASF_OBJECT_COMMON
guid_t i_reserved1; guid_t i_reserved1;
u16 i_reserved2; uint16_t i_reserved2;
u32 i_header_extention_size; uint32_t i_header_extention_size;
u8 *p_header_extention_data; uint8_t *p_header_extention_data;
} asf_object_header_extention_t; } asf_object_header_extention_t;
...@@ -307,8 +307,8 @@ typedef struct asf_objec_content_description_s ...@@ -307,8 +307,8 @@ typedef struct asf_objec_content_description_s
typedef struct string16_s typedef struct string16_s
{ {
u16 i_length; uint16_t i_length;
u16 *i_char; uint16_t *i_char;
} string16_t; } string16_t;
#define ASF_CODEC_TYPE_VIDEO 0x0001 #define ASF_CODEC_TYPE_VIDEO 0x0001
...@@ -317,19 +317,19 @@ typedef struct string16_s ...@@ -317,19 +317,19 @@ typedef struct string16_s
typedef struct asf_codec_entry_s typedef struct asf_codec_entry_s
{ {
u16 i_type; uint16_t i_type;
char *psz_name; char *psz_name;
char *psz_description; char *psz_description;
u16 i_information_length; uint16_t i_information_length;
u8 *p_information; uint8_t *p_information;
} asf_codec_entry_t; } asf_codec_entry_t;
typedef struct asf_object_codec_list_s typedef struct asf_object_codec_list_s
{ {
ASF_OBJECT_COMMON ASF_OBJECT_COMMON
guid_t i_reserved; guid_t i_reserved;
u32 i_codec_entries_count; uint32_t i_codec_entries_count;
asf_codec_entry_t *codec; asf_codec_entry_t *codec;
} asf_object_codec_list_t; } asf_object_codec_list_t;
...@@ -344,13 +344,13 @@ typedef struct asf_object_script_command_s ...@@ -344,13 +344,13 @@ typedef struct asf_object_script_command_s
#endif #endif
typedef struct asf_marker_s typedef struct asf_marker_s
{ {
u64 i_offset; uint64_t i_offset;
u64 i_presentation_time; uint64_t i_presentation_time;
u16 i_entry_length; uint16_t i_entry_length;
u32 i_send_time; uint32_t i_send_time;
u32 i_flags; uint32_t i_flags;
u32 i_marker_description_length; uint32_t i_marker_description_length;
u8 *i_marker_description; uint8_t *i_marker_description;
/* u8 padding */ /* u8 padding */
} asf_marker_t; } asf_marker_t;
...@@ -359,8 +359,8 @@ typedef struct asf_object_marker_s ...@@ -359,8 +359,8 @@ typedef struct asf_object_marker_s
{ {
ASF_OBJECT_COMMON ASF_OBJECT_COMMON
guid_t i_reserved1; guid_t i_reserved1;
u32 i_count; uint32_t i_count;
u16 i_reserved2; uint16_t i_reserved2;
string16_t name; string16_t name;
asf_marker_t *marker; asf_marker_t *marker;
...@@ -392,10 +392,10 @@ typedef union asf_object_u ...@@ -392,10 +392,10 @@ typedef union asf_object_u
off_t ASF_TellAbsolute( input_thread_t *p_input ); off_t ASF_TellAbsolute( input_thread_t *p_input );
int ASF_SeekAbsolute( input_thread_t *p_input, off_t i_pos); int ASF_SeekAbsolute( input_thread_t *p_input, off_t i_pos);
int ASF_ReadData( input_thread_t *p_input, u8 *p_buff, int i_size ); int ASF_ReadData( input_thread_t *p_input, uint8_t *p_buff, int i_size );
int ASF_SkipBytes( input_thread_t *p_input, int i_count ); int ASF_SkipBytes( input_thread_t *p_input, int i_count );
void GetGUID( guid_t *p_guid, u8 *p_data ); void GetGUID( guid_t *p_guid, uint8_t *p_data );
int CmpGUID( const guid_t *p_guid1, const guid_t *p_guid2 ); int CmpGUID( const guid_t *p_guid1, const guid_t *p_guid2 );
int ASF_ReadObjectCommon( input_thread_t *p_input, int ASF_ReadObjectCommon( input_thread_t *p_input,
......
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