Libav  0.7.1
Data Structures | Defines | Functions | Variables
libavformat/asfenc.c File Reference
#include "avformat.h"
#include "riff.h"
#include "asf.h"
#include "avio_internal.h"
#include "libavutil/dict.h"
#include <assert.h>

Go to the source code of this file.

Data Structures

struct  ASFContext

Defines

#define ASF_INDEXED_INTERVAL   10000000
#define ASF_INDEX_BLOCK   600
#define ASF_PACKET_ERROR_CORRECTION_DATA_SIZE   0x2
#define ASF_PACKET_ERROR_CORRECTION_FLAGS
#define ASF_PACKET_ERROR_CORRECTION_FLAGS_FIELD_SIZE   1
#define ASF_PPI_PROPERTY_FLAGS
#define ASF_PPI_LENGTH_TYPE_FLAGS   0
#define ASF_PAYLOAD_FLAGS   ASF_PL_FLAG_PAYLOAD_LENGTH_FIELD_IS_WORD
#define ASF_PPI_SEQUENCE_FIELD_SIZE   0
#define ASF_PPI_PACKET_LENGTH_FIELD_SIZE   0
#define ASF_PPI_PADDING_LENGTH_FIELD_SIZE   0
#define ASF_PAYLOAD_REPLICATED_DATA_LENGTH_FIELD_SIZE   1
#define ASF_PAYLOAD_OFFSET_INTO_MEDIA_OBJECT_FIELD_SIZE   4
#define ASF_PAYLOAD_MEDIA_OBJECT_NUMBER_FIELD_SIZE   1
#define ASF_PAYLOAD_LENGTH_FIELD_SIZE   2
#define PACKET_HEADER_MIN_SIZE
#define ASF_PAYLOAD_REPLICATED_DATA_LENGTH   0x08
#define PAYLOAD_HEADER_SIZE_SINGLE_PAYLOAD
#define PAYLOAD_HEADER_SIZE_MULTIPLE_PAYLOADS
#define SINGLE_PAYLOAD_DATA_LENGTH
#define MULTI_PAYLOAD_CONSTANT
#define PREROLL_TIME   3100

Functions

static void put_guid (AVIOContext *s, const ff_asf_guid *g)
static void put_str16 (AVIOContext *s, const char *tag)
static int64_t put_header (AVIOContext *pb, const ff_asf_guid *g)
static void end_header (AVIOContext *pb, int64_t pos)
static void put_chunk (AVFormatContext *s, int type, int payload_length, int flags)
static int64_t unix_to_file_time (int ti)
static int asf_write_header1 (AVFormatContext *s, int64_t file_size, int64_t data_chunk_size)
static int asf_write_header (AVFormatContext *s)
static int asf_write_stream_header (AVFormatContext *s)
static int put_payload_parsing_info (AVFormatContext *s, unsigned int sendtime, unsigned int duration, int nb_payloads, int padsize)
static void flush_packet (AVFormatContext *s)
static void put_payload_header (AVFormatContext *s, ASFStream *stream, int presentation_time, int m_obj_size, int m_obj_offset, int payload_len, int flags)
static void put_frame (AVFormatContext *s, ASFStream *stream, AVStream *avst, int timestamp, const uint8_t *buf, int m_obj_size, int flags)
static int asf_write_packet (AVFormatContext *s, AVPacket *pkt)
static int asf_write_index (AVFormatContext *s, ASFIndex *index, uint16_t max, uint32_t count)
static int asf_write_trailer (AVFormatContext *s)

Variables

static const AVCodecTag codec_asf_bmp_tags []

Define Documentation

#define ASF_INDEX_BLOCK   600

Definition at line 32 of file asfenc.c.

Referenced by asf_write_header(), and asf_write_packet().

#define ASF_INDEXED_INTERVAL   10000000

Definition at line 31 of file asfenc.c.

Referenced by asf_write_index().

Definition at line 34 of file asfenc.c.

Referenced by put_payload_parsing_info().

Value:
(\
                ASF_PACKET_FLAG_ERROR_CORRECTION_PRESENT | \
                ASF_PACKET_ERROR_CORRECTION_DATA_SIZE\
                )

Definition at line 35 of file asfenc.c.

Referenced by put_payload_parsing_info().

Definition at line 41 of file asfenc.c.

Definition at line 55 of file asfenc.c.

Referenced by put_payload_parsing_info().

Definition at line 140 of file asfenc.c.

Definition at line 124 of file asfenc.c.

Definition at line 117 of file asfenc.c.

Definition at line 160 of file asfenc.c.

Referenced by put_payload_header().

Definition at line 98 of file asfenc.c.

#define ASF_PPI_LENGTH_TYPE_FLAGS   0

Definition at line 53 of file asfenc.c.

Referenced by put_payload_parsing_info().

Definition at line 81 of file asfenc.c.

Definition at line 94 of file asfenc.c.

Value:
(\
                ASF_PL_FLAG_REPLICATED_DATA_LENGTH_FIELD_IS_BYTE | \
                ASF_PL_FLAG_OFFSET_INTO_MEDIA_OBJECT_LENGTH_FIELD_IS_DWORD | \
                ASF_PL_FLAG_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_IS_BYTE | \
                ASF_PL_FLAG_STREAM_NUMBER_LENGTH_FIELD_IS_BYTE \
                )

Definition at line 46 of file asfenc.c.

Referenced by put_payload_parsing_info().

Definition at line 67 of file asfenc.c.

Value:
(\
                PACKET_SIZE - \
                PACKET_HEADER_MIN_SIZE - \
                1 - /*Payload Flags*/ \
                2*PAYLOAD_HEADER_SIZE_MULTIPLE_PAYLOADS \
                )

Definition at line 185 of file asfenc.c.

Referenced by put_frame().

Value:
(\
                ASF_PACKET_ERROR_CORRECTION_FLAGS_FIELD_SIZE + \
                ASF_PACKET_ERROR_CORRECTION_DATA_SIZE + \
                1 + /*Length Type Flags*/ \
                1 + /*Property Flags*/ \
                ASF_PPI_PACKET_LENGTH_FIELD_SIZE + \
                ASF_PPI_SEQUENCE_FIELD_SIZE + \
                ASF_PPI_PADDING_LENGTH_FIELD_SIZE + \
                4 + /*Send Time Field*/ \
                2   /*Duration Field*/ \
                )

Definition at line 146 of file asfenc.c.

Referenced by put_frame(), and put_payload_parsing_info().

Value:
(\
                1 + /*Stream Number*/ \
                ASF_PAYLOAD_MEDIA_OBJECT_NUMBER_FIELD_SIZE + \
                ASF_PAYLOAD_OFFSET_INTO_MEDIA_OBJECT_FIELD_SIZE + \
                ASF_PAYLOAD_REPLICATED_DATA_LENGTH_FIELD_SIZE + \
                ASF_PAYLOAD_REPLICATED_DATA_LENGTH + \
                ASF_PAYLOAD_LENGTH_FIELD_SIZE \
                )

Definition at line 170 of file asfenc.c.

Referenced by put_frame().

Value:
(\
                1 + /*Stream Number*/ \
                ASF_PAYLOAD_MEDIA_OBJECT_NUMBER_FIELD_SIZE + \
                ASF_PAYLOAD_OFFSET_INTO_MEDIA_OBJECT_FIELD_SIZE + \
                ASF_PAYLOAD_REPLICATED_DATA_LENGTH_FIELD_SIZE + \
                ASF_PAYLOAD_REPLICATED_DATA_LENGTH \
                )

Definition at line 162 of file asfenc.c.

Referenced by put_frame().

#define PREROLL_TIME   3100

Definition at line 224 of file asfenc.c.

Referenced by asf_write_header1(), and put_frame().

Value:
(\
                PACKET_SIZE - \
                PACKET_HEADER_MIN_SIZE - \
                PAYLOAD_HEADER_SIZE_SINGLE_PAYLOAD \
                )

Definition at line 179 of file asfenc.c.

Referenced by put_frame().


Function Documentation

static int asf_write_header ( AVFormatContext s) [static]

Definition at line 556 of file asfenc.c.

Referenced by asf_write_stream_header().

static int asf_write_header1 ( AVFormatContext s,
int64_t  file_size,
int64_t  data_chunk_size 
) [static]

Definition at line 295 of file asfenc.c.

Referenced by asf_write_header(), and asf_write_trailer().

static int asf_write_index ( AVFormatContext s,
ASFIndex index,
uint16_t  max,
uint32_t  count 
) [static]

Definition at line 834 of file asfenc.c.

Referenced by asf_write_trailer().

static int asf_write_packet ( AVFormatContext s,
AVPacket pkt 
) [static]

Definition at line 788 of file asfenc.c.

static int asf_write_stream_header ( AVFormatContext s) [static]

Definition at line 588 of file asfenc.c.

static int asf_write_trailer ( AVFormatContext s) [static]

Definition at line 853 of file asfenc.c.

static void end_header ( AVIOContext pb,
int64_t  pos 
) [static]

Definition at line 258 of file asfenc.c.

Referenced by asf_write_header1().

static void flush_packet ( AVFormatContext s) [static]

Definition at line 650 of file asfenc.c.

Referenced by asf_write_trailer(), and put_frame().

static void put_chunk ( AVFormatContext s,
int  type,
int  payload_length,
int  flags 
) [static]

Definition at line 269 of file asfenc.c.

Referenced by asf_write_header1(), asf_write_trailer(), and flush_packet().

static void put_frame ( AVFormatContext s,
ASFStream stream,
AVStream avst,
int  timestamp,
const uint8_t *  buf,
int  m_obj_size,
int  flags 
) [static]

Definition at line 721 of file asfenc.c.

Referenced by asf_write_packet().

static void put_guid ( AVIOContext s,
const ff_asf_guid g 
) [static]

Definition at line 226 of file asfenc.c.

Referenced by asf_write_header1(), asf_write_index(), and put_header().

static int64_t put_header ( AVIOContext pb,
const ff_asf_guid g 
) [static]

Definition at line 247 of file asfenc.c.

Referenced by asf_write_header1().

static void put_payload_header ( AVFormatContext s,
ASFStream stream,
int  presentation_time,
int  m_obj_size,
int  m_obj_offset,
int  payload_len,
int  flags 
) [static]

Definition at line 684 of file asfenc.c.

Referenced by put_frame().

static int put_payload_parsing_info ( AVFormatContext s,
unsigned int  sendtime,
unsigned int  duration,
int  nb_payloads,
int  padsize 
) [static]

Definition at line 597 of file asfenc.c.

Referenced by flush_packet().

static void put_str16 ( AVIOContext s,
const char *  tag 
) [static]

Definition at line 232 of file asfenc.c.

Referenced by asf_write_header1().

static int64_t unix_to_file_time ( int  ti) [static]

Definition at line 285 of file asfenc.c.

Referenced by asf_write_header1().


Variable Documentation

const AVCodecTag codec_asf_bmp_tags[] [static]
Initial value:
 {
    { CODEC_ID_MPEG4, MKTAG('M', 'P', '4', 'S') },
    { CODEC_ID_MPEG4, MKTAG('M', '4', 'S', '2') },
    { CODEC_ID_MSMPEG4V3, MKTAG('M', 'P', '4', '3') },
    { CODEC_ID_NONE, 0 },
}

Definition at line 217 of file asfenc.c.