#include <stdint.h>
#include "avformat.h"
#include "metadata.h"
+#include "riff.h"
#define PACKET_SIZE 3200
-typedef struct {
- int num;
- unsigned char seq;
- /* use for reading */
- AVPacket pkt;
- int frag_offset;
- int timestamp;
- int64_t duration;
-
- int ds_span; /* descrambling */
- int ds_packet_size;
- int ds_chunk_size;
-
- int64_t packet_pos;
-
- uint16_t stream_language_index;
-
-} ASFStream;
-
-typedef uint8_t ff_asf_guid[16];
-
-typedef struct {
+typedef struct ASFMainHeader {
ff_asf_guid guid; ///< generated by client computer
uint64_t file_size; /**< in bytes
* invalid if broadcasting */
* invalid if broadcasting (could be ignored) */
uint32_t preroll; /**< timestamp of the first packet, in milliseconds
* if nonzero - subtract from time */
- uint32_t ignore; ///< preroll is 64bit - but let's just ignore it
+ uint32_t ignore; ///< preroll is 64 bits - but let's just ignore it
uint32_t flags; /**< 0x01 - broadcast
* 0x02 - seekable
* rest is reserved should be 0 */
} ASFMainHeader;
-typedef struct {
+typedef struct ASFIndex {
uint32_t packet_number;
uint16_t packet_count;
+ uint64_t send_time;
+ uint64_t offset;
} ASFIndex;
extern const ff_asf_guid ff_asf_header;
extern const ff_asf_guid ff_asf_ext_stream_embed_stream_header;
extern const ff_asf_guid ff_asf_ext_stream_audio_stream;
extern const ff_asf_guid ff_asf_metadata_header;
+extern const ff_asf_guid ff_asf_metadata_library_header;
extern const ff_asf_guid ff_asf_marker_header;
+extern const ff_asf_guid ff_asf_reserved_4;
extern const ff_asf_guid ff_asf_my_guid;
extern const ff_asf_guid ff_asf_language_guid;
extern const ff_asf_guid ff_asf_content_encryption;
extern AVInputFormat ff_asf_demuxer;
-static av_always_inline int ff_guidcmp(const void *g1, const void *g2)
-{
- return memcmp(g1, g2, sizeof(ff_asf_guid));
-}
-
-void ff_get_guid(AVIOContext *s, ff_asf_guid *g);
-
#endif /* AVFORMAT_ASF_H */