|
|
|
@ -79,64 +79,6 @@ typedef struct { |
|
|
|
|
uint16_t packet_count; |
|
|
|
|
} ASFIndex; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct { |
|
|
|
|
uint32_t seqno; |
|
|
|
|
int is_streamed; |
|
|
|
|
int asfid2avid[128]; ///< conversion table from asf ID 2 AVStream ID
|
|
|
|
|
ASFStream streams[128]; ///< it's max number and it's not that big
|
|
|
|
|
uint32_t stream_bitrates[128]; ///< max number of streams, bitrate for each (for streaming)
|
|
|
|
|
char stream_languages[128][6]; ///< max number of streams, language for each (RFC1766, e.g. en-US)
|
|
|
|
|
/* non streamed additonnal info */ |
|
|
|
|
uint64_t nb_packets; ///< how many packets are there in the file, invalid if broadcasting
|
|
|
|
|
int64_t duration; ///< in 100ns units
|
|
|
|
|
/* packet filling */ |
|
|
|
|
unsigned char multi_payloads_present; |
|
|
|
|
int packet_size_left; |
|
|
|
|
int packet_timestamp_start; |
|
|
|
|
int packet_timestamp_end; |
|
|
|
|
unsigned int packet_nb_payloads; |
|
|
|
|
int packet_nb_frames; |
|
|
|
|
uint8_t packet_buf[PACKET_SIZE]; |
|
|
|
|
ByteIOContext pb; |
|
|
|
|
/* only for reading */ |
|
|
|
|
uint64_t data_offset; ///< beginning of the first data packet
|
|
|
|
|
uint64_t data_object_offset; ///< data object offset (excl. GUID & size)
|
|
|
|
|
uint64_t data_object_size; ///< size of the data object
|
|
|
|
|
int index_read; |
|
|
|
|
|
|
|
|
|
ASFMainHeader hdr; |
|
|
|
|
|
|
|
|
|
int packet_flags; |
|
|
|
|
int packet_property; |
|
|
|
|
int packet_timestamp; |
|
|
|
|
int packet_segsizetype; |
|
|
|
|
int packet_segments; |
|
|
|
|
int packet_seq; |
|
|
|
|
int packet_replic_size; |
|
|
|
|
int packet_key_frame; |
|
|
|
|
int packet_padsize; |
|
|
|
|
unsigned int packet_frag_offset; |
|
|
|
|
unsigned int packet_frag_size; |
|
|
|
|
int64_t packet_frag_timestamp; |
|
|
|
|
int packet_multi_size; |
|
|
|
|
int packet_obj_size; |
|
|
|
|
int packet_time_delta; |
|
|
|
|
int packet_time_start; |
|
|
|
|
int64_t packet_pos; |
|
|
|
|
|
|
|
|
|
int stream_index; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int64_t last_indexed_pts; |
|
|
|
|
ASFIndex* index_ptr; |
|
|
|
|
uint32_t nb_index_count; |
|
|
|
|
uint32_t nb_index_memory_alloc; |
|
|
|
|
uint16_t maximum_packet; |
|
|
|
|
|
|
|
|
|
ASFStream* asf_st; ///< currently decoded stream
|
|
|
|
|
} ASFContext; |
|
|
|
|
|
|
|
|
|
extern const ff_asf_guid ff_asf_header; |
|
|
|
|
extern const ff_asf_guid ff_asf_file_header; |
|
|
|
|
extern const ff_asf_guid ff_asf_stream_header; |
|
|
|
|