libavformat/movenc.c File Reference

#include "avformat.h"
#include "riff.h"
#include "avio.h"
#include "isom.h"
#include "avc.h"
#include "libavcodec/bitstream.h"
#include <assert.h>

Go to the source code of this file.

Data Structures

struct  MOVIentry
struct  MOVIndex
struct  MOVMuxContext

Defines

#define MOV_INDEX_CLUSTER_SIZE   16384
#define globalTimescale   1000
#define MODE_MP4   0x01
#define MODE_MOV   0x02
#define MODE_3GP   0x04
#define MODE_PSP   0x08
#define MODE_3G2   0x10
#define MODE_IPOD   0x20

Typedefs

typedef struct MOVIndex MOVTrack

Functions

static int64_t updateSize (ByteIOContext *pb, int64_t pos)
static int mov_write_stco_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_stsz_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_stsc_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_stss_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_amr_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_ac3_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_extradata_tag (ByteIOContext *pb, MOVTrack *track)
 This function writes extradata "as is".
static int mov_write_enda_tag (ByteIOContext *pb)
static unsigned int descrLength (unsigned int len)
static void putDescr (ByteIOContext *pb, int tag, unsigned int size)
static int mov_write_esds_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_wave_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_glbl_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_audio_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_d263_tag (ByteIOContext *pb)
static int mov_write_svq3_tag (ByteIOContext *pb)
static int mov_write_avcc_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_avid_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_find_codec_tag (AVFormatContext *s, MOVTrack *track)
static int mov_write_uuid_tag_ipod (ByteIOContext *pb)
 Write uuid atom.
static int mov_write_subtitle_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_video_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_stsd_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_ctts_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_stts_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_dref_tag (ByteIOContext *pb)
static int mov_write_stbl_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_dinf_tag (ByteIOContext *pb)
static int mov_write_nmhd_tag (ByteIOContext *pb)
static int mov_write_gmhd_tag (ByteIOContext *pb)
static int mov_write_smhd_tag (ByteIOContext *pb)
static int mov_write_vmhd_tag (ByteIOContext *pb)
static int mov_write_hdlr_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_minf_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_mdhd_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_mdia_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_tkhd_tag (ByteIOContext *pb, MOVTrack *track, AVStream *st)
static int mov_write_edts_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_uuid_tag_psp (ByteIOContext *pb, MOVTrack *mov)
static int mov_write_trak_tag (ByteIOContext *pb, MOVTrack *track, AVStream *st)
static int mov_write_mvhd_tag (ByteIOContext *pb, MOVMuxContext *mov)
static int mov_write_itunes_hdlr_tag (ByteIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
static int mov_write_string_data_tag (ByteIOContext *pb, const char *data, int lang, int long_style)
static int mov_write_string_tag (ByteIOContext *pb, const char *name, const char *value, int lang, int long_style)
static int mov_write_string_metadata (AVFormatContext *s, ByteIOContext *pb, const char *name, const char *tag, int long_style)
static int mov_write_trkn_tag (ByteIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
static int mov_write_ilst_tag (ByteIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
static int mov_write_meta_tag (ByteIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
static int utf8len (const uint8_t *b)
static int ascii_to_wc (ByteIOContext *pb, const uint8_t *b)
static uint16_t language_code (const char *str)
static int mov_write_3gp_udta_tag (ByteIOContext *pb, AVFormatContext *s, const char *tag, const char *str)
static int mov_write_udta_tag (ByteIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
static void mov_write_psp_udta_tag (ByteIOContext *pb, const char *str, const char *lang, int type)
static int mov_write_uuidusmt_tag (ByteIOContext *pb, AVFormatContext *s)
static int mov_write_moov_tag (ByteIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
static int mov_write_mdat_tag (ByteIOContext *pb, MOVMuxContext *mov)
static int mov_write_ftyp_tag (ByteIOContext *pb, AVFormatContext *s)
static void mov_write_uuidprof_tag (ByteIOContext *pb, AVFormatContext *s)
static int mov_write_header (AVFormatContext *s)
static int mov_write_packet (AVFormatContext *s, AVPacket *pkt)
static int mov_write_trailer (AVFormatContext *s)

Variables

static const AVCodecTag codec_3gp_tags []
static const AVCodecTag mov_pix_fmt_tags []
static const AVCodecTag codec_ipod_tags []


Define Documentation

#define globalTimescale   1000

#define MODE_3G2   0x10

Definition at line 40 of file movenc.c.

Referenced by mov_write_ftyp_tag(), and mov_write_header().

#define MODE_3GP   0x04

#define MODE_IPOD   0x20

#define MODE_MOV   0x02

#define MODE_MP4   0x01

Definition at line 35 of file movenc.c.

Referenced by mov_find_codec_tag(), mov_write_ftyp_tag(), and mov_write_header().

#define MODE_PSP   0x08

#define MOV_INDEX_CLUSTER_SIZE   16384

Definition at line 32 of file movenc.c.

Referenced by mov_write_packet().


Typedef Documentation

typedef struct MOVIndex MOVTrack


Function Documentation

static int ascii_to_wc ( ByteIOContext pb,
const uint8_t *  b 
) [static]

Definition at line 1330 of file movenc.c.

Referenced by mov_write_3gp_udta_tag(), and mov_write_psp_udta_tag().

static unsigned int descrLength ( unsigned int  len  )  [static]

Definition at line 286 of file movenc.c.

Referenced by mov_write_esds_tag(), and putDescr().

static uint16_t language_code ( const char *  str  )  [static]

static int mov_find_codec_tag ( AVFormatContext s,
MOVTrack track 
) [static]

Definition at line 576 of file movenc.c.

Referenced by mov_write_header().

static int mov_write_3gp_udta_tag ( ByteIOContext pb,
AVFormatContext s,
const char *  tag,
const char *  str 
) [static]

Definition at line 1346 of file movenc.c.

Referenced by mov_write_udta_tag().

static int mov_write_ac3_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 224 of file movenc.c.

Referenced by mov_write_audio_tag(), and mov_write_wave_tag().

static int mov_write_amr_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 210 of file movenc.c.

Referenced by mov_write_audio_tag(), and mov_write_wave_tag().

static int mov_write_audio_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 398 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_avcc_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 489 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_avid_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 500 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_ctts_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 747 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_d263_tag ( ByteIOContext pb  )  [static]

Definition at line 464 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_dinf_tag ( ByteIOContext pb  )  [static]

Definition at line 855 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_dref_tag ( ByteIOContext pb  )  [static]

Definition at line 822 of file movenc.c.

Referenced by mov_write_dinf_tag().

static int mov_write_edts_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 1063 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_enda_tag ( ByteIOContext pb  )  [static]

Definition at line 278 of file movenc.c.

Referenced by mov_write_wave_tag().

static int mov_write_esds_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 302 of file movenc.c.

Referenced by mov_write_audio_tag(), mov_write_video_tag(), and mov_write_wave_tag().

static int mov_write_extradata_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

This function writes extradata "as is".

Extradata must be formated like a valid atom (with size and tag)

Definition at line 272 of file movenc.c.

Referenced by mov_write_audio_tag(), and mov_write_wave_tag().

static int mov_write_ftyp_tag ( ByteIOContext pb,
AVFormatContext s 
) [static]

Definition at line 1511 of file movenc.c.

Referenced by mov_write_header().

static int mov_write_glbl_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 390 of file movenc.c.

Referenced by mov_write_audio_tag(), and mov_write_video_tag().

static int mov_write_gmhd_tag ( ByteIOContext pb  )  [static]

Definition at line 872 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_hdlr_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 907 of file movenc.c.

Referenced by mov_write_mdia_tag(), and mov_write_minf_tag().

static int mov_write_header ( AVFormatContext s  )  [static]

Definition at line 1628 of file movenc.c.

static int mov_write_ilst_tag ( ByteIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
) [static]

Definition at line 1285 of file movenc.c.

Referenced by mov_write_meta_tag().

static int mov_write_itunes_hdlr_tag ( ByteIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
) [static]

Definition at line 1186 of file movenc.c.

Referenced by mov_write_meta_tag().

static int mov_write_mdat_tag ( ByteIOContext pb,
MOVMuxContext mov 
) [static]

Definition at line 1499 of file movenc.c.

Referenced by mov_write_header().

static int mov_write_mdhd_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 964 of file movenc.c.

Referenced by mov_write_mdia_tag().

static int mov_write_mdia_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 994 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_meta_tag ( ByteIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
) [static]

Definition at line 1305 of file movenc.c.

Referenced by mov_write_udta_tag().

static int mov_write_minf_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 944 of file movenc.c.

Referenced by mov_write_mdia_tag().

static int mov_write_moov_tag ( ByteIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
) [static]

Definition at line 1467 of file movenc.c.

Referenced by mov_write_trailer().

static int mov_write_mvhd_tag ( ByteIOContext pb,
MOVMuxContext mov 
) [static]

Definition at line 1128 of file movenc.c.

Referenced by mov_write_moov_tag().

static int mov_write_nmhd_tag ( ByteIOContext pb  )  [static]

Definition at line 864 of file movenc.c.

Referenced by mov_write_minf_tag().

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

Definition at line 1726 of file movenc.c.

static void mov_write_psp_udta_tag ( ByteIOContext pb,
const char *  str,
const char *  lang,
int  type 
) [static]

Definition at line 1416 of file movenc.c.

Referenced by mov_write_uuidusmt_tag().

static int mov_write_smhd_tag ( ByteIOContext pb  )  [static]

Definition at line 888 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_stbl_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 836 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_stco_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 97 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_string_data_tag ( ByteIOContext pb,
const char *  data,
int  lang,
int  long_style 
) [static]

Definition at line 1203 of file movenc.c.

Referenced by mov_write_string_tag().

static int mov_write_string_metadata ( AVFormatContext s,
ByteIOContext pb,
const char *  name,
const char *  tag,
int  long_style 
) [static]

Definition at line 1233 of file movenc.c.

Referenced by mov_write_ilst_tag(), and mov_write_udta_tag().

static int mov_write_string_tag ( ByteIOContext pb,
const char *  name,
const char *  value,
int  lang,
int  long_style 
) [static]

Definition at line 1221 of file movenc.c.

Referenced by mov_write_ilst_tag(), mov_write_string_metadata(), and mov_write_udta_tag().

static int mov_write_stsc_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 157 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_stsd_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 731 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_stss_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 187 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_stsz_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 120 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_stts_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 781 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_subtitle_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 652 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_svq3_tag ( ByteIOContext pb  )  [static]

Definition at line 477 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_tkhd_tag ( ByteIOContext pb,
MOVTrack track,
AVStream st 
) [static]

Definition at line 1005 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_trailer ( AVFormatContext s  )  [static]

Definition at line 1813 of file movenc.c.

static int mov_write_trak_tag ( ByteIOContext pb,
MOVTrack track,
AVStream st 
) [static]

Definition at line 1098 of file movenc.c.

Referenced by mov_write_moov_tag().

static int mov_write_trkn_tag ( ByteIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
) [static]

Definition at line 1258 of file movenc.c.

Referenced by mov_write_ilst_tag().

static int mov_write_udta_tag ( ByteIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
) [static]

Definition at line 1368 of file movenc.c.

Referenced by mov_write_moov_tag().

static int mov_write_uuid_tag_ipod ( ByteIOContext pb  )  [static]

Write uuid atom.

Needed to make file play in iPods running newest firmware goes after avcC atom in moov.trak.mdia.minf.stbl.stsd.avc1

Definition at line 640 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_uuid_tag_psp ( ByteIOContext pb,
MOVTrack mov 
) [static]

Definition at line 1080 of file movenc.c.

Referenced by mov_write_trak_tag().

static void mov_write_uuidprof_tag ( ByteIOContext pb,
AVFormatContext s 
) [static]

Definition at line 1567 of file movenc.c.

Referenced by mov_write_header().

static int mov_write_uuidusmt_tag ( ByteIOContext pb,
AVFormatContext s 
) [static]

Definition at line 1429 of file movenc.c.

Referenced by mov_write_moov_tag().

static int mov_write_video_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 667 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_vmhd_tag ( ByteIOContext pb  )  [static]

Definition at line 898 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_wave_tag ( ByteIOContext pb,
MOVTrack track 
) [static]

Definition at line 356 of file movenc.c.

Referenced by mov_write_audio_tag().

static void putDescr ( ByteIOContext pb,
int  tag,
unsigned int  size 
) [static]

Definition at line 293 of file movenc.c.

Referenced by mov_write_esds_tag().

static int64_t updateSize ( ByteIOContext pb,
int64_t  pos 
) [static]

Definition at line 86 of file movenc.c.

static int utf8len ( const uint8_t *  b  )  [static]

Definition at line 1319 of file movenc.c.

Referenced by mov_write_3gp_udta_tag(), and mov_write_psp_udta_tag().


Variable Documentation

const AVCodecTag codec_3gp_tags[] [static]

Initial value:

 {
    { CODEC_ID_H263,   MKTAG('s','2','6','3') },
    { CODEC_ID_H264,   MKTAG('a','v','c','1') },
    { CODEC_ID_MPEG4,  MKTAG('m','p','4','v') },
    { CODEC_ID_AAC,    MKTAG('m','p','4','a') },
    { CODEC_ID_AMR_NB, MKTAG('s','a','m','r') },
    { CODEC_ID_AMR_WB, MKTAG('s','a','w','b') },
    { CODEC_ID_MOV_TEXT, MKTAG('t','x','3','g') },
    { CODEC_ID_NONE, 0 },
}

Definition at line 547 of file movenc.c.

const AVCodecTag codec_ipod_tags[] [static]

Initial value:

 {
    { CODEC_ID_H264,   MKTAG('a','v','c','1') },
    { CODEC_ID_MPEG4,  MKTAG('m','p','4','v') },
    { CODEC_ID_AAC,    MKTAG('m','p','4','a') },
    { CODEC_ID_ALAC,   MKTAG('a','l','a','c') },
    { CODEC_ID_AC3,    MKTAG('a','c','-','3') },
    { CODEC_ID_MOV_TEXT, MKTAG('t','x','3','g') },
    { CODEC_ID_NONE, 0 },
}

Definition at line 566 of file movenc.c.

const AVCodecTag mov_pix_fmt_tags[] [static]

Initial value:

 {
    { PIX_FMT_YUYV422, MKTAG('y','u','v','s') },
    { PIX_FMT_UYVY422, MKTAG('2','v','u','y') },
    { PIX_FMT_BGR555,  MKTAG('r','a','w',' ') },
    { PIX_FMT_RGB24,   MKTAG('r','a','w',' ') },
    { PIX_FMT_BGR32_1, MKTAG('r','a','w',' ') },
}

Definition at line 558 of file movenc.c.


Generated on Fri Oct 26 02:35:45 2012 for FFmpeg by  doxygen 1.5.8