libavformat/movenc.c File Reference

#include "movenc.h"
#include "avformat.h"
#include "riff.h"
#include "avio.h"
#include "isom.h"
#include "avc.h"
#include "libavcodec/get_bits.h"
#include "libavcodec/put_bits.h"
#include "internal.h"
#include "libavutil/avstring.h"
#include <assert.h>

Go to the source code of this file.

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, uint32_t flag)
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_pcm_le_gt16 (enum CodecID codec_id)
static int mov_write_wave_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_glbl_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_get_lpcm_flags (enum CodecID codec_id)
 Compute flags for 'lpcm' tag.
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 mp4_get_codec_tag (AVFormatContext *s, MOVTrack *track)
static int ipod_get_codec_tag (AVFormatContext *s, MOVTrack *track)
static int mov_get_dv_codec_tag (AVFormatContext *s, MOVTrack *track)
static int mov_get_rawvideo_codec_tag (AVFormatContext *s, MOVTrack *track)
static int mov_get_codec_tag (AVFormatContext *s, 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_rtp_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_hmhd_tag (ByteIOContext *pb)
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_tref_tag (ByteIOContext *pb, MOVTrack *track)
static int mov_write_uuid_tag_psp (ByteIOContext *pb, MOVTrack *mov)
static int mov_write_udta_sdp (ByteIOContext *pb, AVCodecContext *ctx, int index)
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_chpl_tag (ByteIOContext *pb, AVFormatContext *s)
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_parse_mpeg2_frame (AVPacket *pkt, uint32_t *flags)
int ff_mov_write_packet (AVFormatContext *s, AVPacket *pkt)
static void mov_create_chapter_track (AVFormatContext *s, int tracknum)
static int mov_write_header (AVFormatContext *s)
static int mov_write_trailer (AVFormatContext *s)

Variables

static const AVCodecTag codec_ipod_tags []
struct {
   enum PixelFormat   pix_fmt
   uint32_t   tag
   unsigned   bps
mov_pix_fmt_tags []
static const AVCodecTag codec_3gp_tags []


Function Documentation

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

Definition at line 1501 of file movenc.c.

Referenced by mov_write_psp_udta_tag().

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

Definition at line 239 of file movenc.c.

Referenced by mov_write_esds_tag(), and putDescr().

int ff_mov_write_packet ( AVFormatContext s,
AVPacket pkt 
)

Definition at line 1862 of file movenc.c.

Referenced by ff_mov_add_hinted_packet().

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

Definition at line 587 of file movenc.c.

Referenced by mov_find_codec_tag().

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

static void mov_create_chapter_track ( AVFormatContext s,
int  tracknum 
) [static]

Definition at line 1963 of file movenc.c.

Referenced by mov_write_header().

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

Definition at line 700 of file movenc.c.

Referenced by mov_write_header().

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

Definition at line 652 of file movenc.c.

Referenced by mov_find_codec_tag().

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

Definition at line 604 of file movenc.c.

Referenced by mov_get_codec_tag().

static int mov_get_lpcm_flags ( enum CodecID  codec_id  )  [static]

Compute flags for 'lpcm' tag.

See CoreAudioTypes and AudioStreamBasicDescription at Apple.

Definition at line 362 of file movenc.c.

Referenced by mov_write_audio_tag().

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

Definition at line 636 of file movenc.c.

Referenced by mov_get_codec_tag().

static int mov_parse_mpeg2_frame ( AVPacket pkt,
uint32_t *  flags 
) [static]

Definition at line 1841 of file movenc.c.

Referenced by ff_mov_write_packet().

static int mov_pcm_le_gt16 ( enum CodecID  codec_id  )  [static]

Definition at line 309 of file movenc.c.

Referenced by mov_write_audio_tag(), and mov_write_wave_tag().

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

Definition at line 1517 of file movenc.c.

Referenced by mov_write_udta_tag().

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

Definition at line 177 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 163 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 387 of file movenc.c.

Referenced by mov_write_stsd_tag().

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

Definition at line 501 of file movenc.c.

Referenced by mov_write_video_tag().

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

Definition at line 512 of file movenc.c.

Referenced by mov_write_video_tag().

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

Definition at line 1539 of file movenc.c.

Referenced by mov_write_udta_tag().

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

Definition at line 849 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_d263_tag ( ByteIOContext pb  )  [static]

Definition at line 476 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_dinf_tag ( ByteIOContext pb  )  [static]

Definition at line 960 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_dref_tag ( ByteIOContext pb  )  [static]

Definition at line 924 of file movenc.c.

Referenced by mov_write_dinf_tag().

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

Definition at line 1192 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_enda_tag ( ByteIOContext pb  )  [static]

Definition at line 231 of file movenc.c.

Referenced by mov_write_wave_tag().

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

Definition at line 255 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 225 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 1724 of file movenc.c.

Referenced by mov_write_header().

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

Definition at line 350 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 977 of file movenc.c.

Referenced by mov_write_minf_tag().

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

Definition at line 1012 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 1996 of file movenc.c.

static int mov_write_hmhd_tag ( ByteIOContext pb  )  [static]

Definition at line 1055 of file movenc.c.

Referenced by mov_write_minf_tag().

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

Definition at line 1448 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 1353 of file movenc.c.

Referenced by mov_write_meta_tag().

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

Definition at line 1712 of file movenc.c.

Referenced by mov_write_header().

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

Definition at line 1092 of file movenc.c.

Referenced by mov_write_mdia_tag().

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

Definition at line 1122 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 1476 of file movenc.c.

Referenced by mov_write_udta_tag().

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

Definition at line 1070 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 1668 of file movenc.c.

Referenced by mov_write_trailer().

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

Definition at line 1292 of file movenc.c.

Referenced by mov_write_moov_tag().

static int mov_write_nmhd_tag ( ByteIOContext pb  )  [static]

Definition at line 969 of file movenc.c.

Referenced by mov_write_minf_tag().

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

Definition at line 1617 of file movenc.c.

Referenced by mov_write_uuidusmt_tag().

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

Definition at line 811 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_smhd_tag ( ByteIOContext pb  )  [static]

Definition at line 993 of file movenc.c.

Referenced by mov_write_minf_tag().

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

Definition at line 938 of file movenc.c.

Referenced by mov_write_minf_tag().

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

Definition at line 50 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 1369 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 1401 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 1389 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 110 of file movenc.c.

Referenced by mov_write_stbl_tag().

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

Definition at line 831 of file movenc.c.

Referenced by mov_write_stbl_tag().

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

Definition at line 140 of file movenc.c.

Referenced by mov_write_stbl_tag().

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

Definition at line 73 of file movenc.c.

Referenced by mov_write_stbl_tag().

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

Definition at line 883 of file movenc.c.

Referenced by mov_write_stbl_tag().

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

Definition at line 732 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_svq3_tag ( ByteIOContext pb  )  [static]

Definition at line 489 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 1133 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_trailer ( AVFormatContext s  )  [static]

Definition at line 2140 of file movenc.c.

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

Definition at line 1258 of file movenc.c.

Referenced by mov_write_moov_tag().

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

Definition at line 1210 of file movenc.c.

Referenced by mov_write_trak_tag().

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

Definition at line 1426 of file movenc.c.

Referenced by mov_write_ilst_tag().

static int mov_write_udta_sdp ( ByteIOContext pb,
AVCodecContext ctx,
int  index 
) [static]

Definition at line 1239 of file movenc.c.

Referenced by mov_write_trak_tag().

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

Definition at line 1565 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 720 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 1221 of file movenc.c.

Referenced by mov_write_trak_tag().

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

Definition at line 1780 of file movenc.c.

Referenced by mov_write_header().

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

Definition at line 1630 of file movenc.c.

Referenced by mov_write_moov_tag().

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

Definition at line 747 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_vmhd_tag ( ByteIOContext pb  )  [static]

Definition at line 1003 of file movenc.c.

Referenced by mov_write_minf_tag().

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

Definition at line 317 of file movenc.c.

Referenced by mov_write_audio_tag().

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

Definition at line 559 of file movenc.c.

Referenced by mov_find_codec_tag().

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

Definition at line 246 of file movenc.c.

Referenced by mov_write_esds_tag().

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

Definition at line 39 of file movenc.c.

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

Definition at line 1490 of file movenc.c.

Referenced by mov_write_3gp_udta_tag(), and mov_write_psp_udta_tag().


Variable Documentation

unsigned bps

Definition at line 621 of file movenc.c.

Referenced by ff_wma_init(), gxf_packet(), nsv_read_chunk(), output_packet(), and tta_read_header().

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 689 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_MOV_TEXT, MKTAG('t','e','x','t') },
    { CODEC_ID_NONE, 0 },
}

Definition at line 576 of file movenc.c.

struct { ... } mov_pix_fmt_tags[] [static]

Definition at line 619 of file movenc.c.

uint32_t tag


Generated on Fri Oct 26 02:36:55 2012 for FFmpeg by  doxygen 1.5.8