FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
avienc.c File Reference
#include <math.h>
#include "avformat.h"
#include "internal.h"
#include "avi.h"
#include "avio_internal.h"
#include "riff.h"
#include "mpegts.h"
#include "libavformat/avlanguage.h"
#include "libavutil/avstring.h"
#include "libavutil/avutil.h"
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/dict.h"
#include "libavutil/avassert.h"
#include "libavutil/timestamp.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavcodec/raw.h"

Go to the source code of this file.

Data Structures

struct  AVIIentry
 
struct  AVIIndex
 
struct  AVIContext
 
struct  AVIStream
 

Macros

#define AVI_INDEX_CLUSTER_SIZE   16384
 
#define AVI_MASTER_INDEX_PREFIX_SIZE   (8+2+1+1+4+8+4+4)
 
#define AVI_MASTER_INDEX_ENTRY_SIZE   16 /* bytes per entry */
 
#define AVI_MASTER_INDEX_SIZE_DEFAULT   256 /* number of entries */
 
#define OFFSET(x)   offsetof(AVIContext, x)
 
#define ENC   AV_OPT_FLAG_ENCODING_PARAM
 

Functions

static int avi_write_packet_internal (AVFormatContext *s, AVPacket *pkt)
 
static AVIIentryavi_get_ientry (const AVIIndex *idx, int ent_id)
 
static int avi_add_ientry (AVFormatContext *s, int stream_index, char *tag, unsigned int flags, unsigned int size)
 
static av_cold int avi_init (struct AVFormatContext *s)
 
static int64_t avi_start_new_riff (AVFormatContext *s, AVIOContext *pb, const char *riff_tag, const char *list_tag)
 
static char * avi_stream2fourcc (char *tag, int index, enum AVMediaType type)
 
static int avi_write_counters (AVFormatContext *s, int riff_id)
 
static void write_odml_master (AVFormatContext *s, int stream_index)
 
static int avi_write_header (AVFormatContext *s)
 
static void update_odml_entry (AVFormatContext *s, int stream_index, int64_t ix, int size)
 
static int avi_write_ix (AVFormatContext *s)
 
static int avi_write_idx1 (AVFormatContext *s)
 
static int write_skip_frames (AVFormatContext *s, int stream_index, int64_t dts)
 
static int avi_write_packet (AVFormatContext *s, AVPacket *pkt)
 
static int avi_write_trailer (AVFormatContext *s)
 

Variables

static const AVOption options []
 
static const AVClass avi_muxer_class
 
AVOutputFormat ff_avi_muxer
 

Macro Definition Documentation

#define AVI_INDEX_CLUSTER_SIZE   16384

Definition at line 54 of file avienc.c.

Referenced by avi_add_ientry(), avi_get_ientry(), and avi_write_trailer().

#define AVI_MASTER_INDEX_PREFIX_SIZE   (8+2+1+1+4+8+4+4)

Definition at line 55 of file avienc.c.

Referenced by avi_init(), avi_write_ix(), and avi_write_trailer().

#define AVI_MASTER_INDEX_ENTRY_SIZE   16 /* bytes per entry */

Definition at line 56 of file avienc.c.

Referenced by avi_init(), avi_write_ix(), and avi_write_trailer().

#define AVI_MASTER_INDEX_SIZE_DEFAULT   256 /* number of entries */

Definition at line 57 of file avienc.c.

Referenced by avi_init().

#define OFFSET (   x)    offsetof(AVIContext, x)

Definition at line 978 of file avienc.c.

#define ENC   AV_OPT_FLAG_ENCODING_PARAM

Definition at line 979 of file avienc.c.

Function Documentation

static int avi_write_packet_internal ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 856 of file avienc.c.

Referenced by avi_write_packet(), and write_skip_frames().

static AVIIentry* avi_get_ientry ( const AVIIndex idx,
int  ent_id 
)
inlinestatic

Definition at line 99 of file avienc.c.

Referenced by avi_write_idx1(), and avi_write_ix().

static int avi_add_ientry ( AVFormatContext s,
int  stream_index,
char *  tag,
unsigned int  flags,
unsigned int  size 
)
static

Definition at line 106 of file avienc.c.

Referenced by avi_write_packet(), and avi_write_packet_internal().

static av_cold int avi_init ( struct AVFormatContext s)
static

Definition at line 143 of file avienc.c.

static int64_t avi_start_new_riff ( AVFormatContext s,
AVIOContext pb,
const char *  riff_tag,
const char *  list_tag 
)
static

Definition at line 158 of file avienc.c.

Referenced by avi_write_header(), and avi_write_packet_internal().

static char* avi_stream2fourcc ( char *  tag,
int  index,
enum AVMediaType  type 
)
static
static int avi_write_counters ( AVFormatContext s,
int  riff_id 
)
static

Definition at line 198 of file avienc.c.

Referenced by avi_write_idx1(), and avi_write_trailer().

static void write_odml_master ( AVFormatContext s,
int  stream_index 
)
static

Definition at line 231 of file avienc.c.

Referenced by avi_write_header(), and avi_write_ix().

static int avi_write_header ( AVFormatContext s)
static

Definition at line 259 of file avienc.c.

static void update_odml_entry ( AVFormatContext s,
int  stream_index,
int64_t  ix,
int  size 
)
static

Definition at line 589 of file avienc.c.

Referenced by avi_write_ix().

static int avi_write_ix ( AVFormatContext s)
static

Definition at line 622 of file avienc.c.

Referenced by avi_write_packet_internal(), and avi_write_trailer().

static int avi_write_idx1 ( AVFormatContext s)
static

Definition at line 680 of file avienc.c.

Referenced by avi_write_packet_internal(), and avi_write_trailer().

static int write_skip_frames ( AVFormatContext s,
int  stream_index,
int64_t  dts 
)
static

Definition at line 735 of file avienc.c.

Referenced by avi_write_packet(), and avi_write_trailer().

static int avi_write_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 761 of file avienc.c.

static int avi_write_trailer ( AVFormatContext s)
static

Definition at line 907 of file avienc.c.

Variable Documentation

const AVOption options[]
static
Initial value:
= {
{ "reserve_index_space", "reserve space (in bytes) at the beginning of the file for each stream index", OFFSET(reserve_index_space), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, ENC },
{ "write_channel_mask", "write channel mask into wave format header", OFFSET(write_channel_mask), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, ENC },
{ NULL },
}
#define NULL
Definition: coverity.c:32
#define OFFSET(x)
Definition: avienc.c:978
#define ENC
Definition: avienc.c:979

Definition at line 980 of file avienc.c.

const AVClass avi_muxer_class
static
Initial value:
= {
.class_name = "AVI muxer",
.item_name = av_default_item_name,
.option = options,
}
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:191
static const AVOption options[]
Definition: avienc.c:980

Definition at line 986 of file avienc.c.

AVOutputFormat ff_avi_muxer
Initial value:
= {
.name = "avi",
.long_name = NULL_IF_CONFIG_SMALL("AVI (Audio Video Interleaved)"),
.mime_type = "video/x-msvideo",
.extensions = "avi",
.priv_data_size = sizeof(AVIContext),
.audio_codec = CONFIG_LIBMP3LAME ? AV_CODEC_ID_MP3 : AV_CODEC_ID_AC3,
.video_codec = AV_CODEC_ID_MPEG4,
.codec_tag = (const AVCodecTag * const []) {
},
.priv_class = &avi_muxer_class,
}
static void write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost, int unqueue)
Definition: ffmpeg.c:679
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
static const AVClass avi_muxer_class
Definition: avienc.c:986
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
preferred ID for decoding MPEG audio layer 1, 2 or 3
Definition: avcodec.h:552
const AVCodecTag ff_codec_wav_tags[]
Definition: riff.c:475
const AVCodecTag ff_codec_bmp_tags[]
Definition: riff.c:32
static int write_trailer(AVFormatContext *s1)
Definition: v4l2enc.c:94
static int avi_write_trailer(AVFormatContext *s)
Definition: avienc.c:907
static int avi_write_header(AVFormatContext *s)
Definition: avienc.c:259
static int avi_write_packet(AVFormatContext *s, AVPacket *pkt)
Definition: avienc.c:761
static av_cold int avi_init(struct AVFormatContext *s)
Definition: avienc.c:143
static void write_header(FFV1Context *f)
Definition: ffv1enc.c:337

Definition at line 993 of file avienc.c.