FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
movenc.c File Reference
#include <stdint.h>
#include <inttypes.h>
#include "movenc.h"
#include "avformat.h"
#include "avio_internal.h"
#include "riff.h"
#include "avio.h"
#include "isom.h"
#include "avc.h"
#include "libavcodec/get_bits.h"
#include "libavcodec/put_bits.h"
#include "libavcodec/vc1.h"
#include "libavcodec/raw.h"
#include "internal.h"
#include "libavutil/avstring.h"
#include "libavutil/intfloat.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/dict.h"
#include "libavutil/pixdesc.h"
#include "hevc.h"
#include "rtpenc.h"
#include "mov_chan.h"
#include <assert.h>

Go to the source code of this file.

Macros

#define MOV_CLASS(flavor)
 
#define READ_BLOCK
 

Functions

static int get_moov_size (AVFormatContext *s)
 
static int64_t update_size (AVIOContext *pb, int64_t pos)
 
static int supports_edts (MOVMuxContext *mov)
 
static int co64_required (const MOVTrack *track)
 
static int mov_write_stco_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_stsz_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_stsc_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_stss_tag (AVIOContext *pb, MOVTrack *track, uint32_t flag)
 
static int mov_write_amr_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_ac3_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_extradata_tag (AVIOContext *pb, MOVTrack *track)
 This function writes extradata "as is".
 
static int mov_write_enda_tag (AVIOContext *pb)
 
static int mov_write_enda_tag_be (AVIOContext *pb)
 
static void put_descr (AVIOContext *pb, int tag, unsigned int size)
 
static unsigned compute_avg_bitrate (MOVTrack *track)
 
static int mov_write_esds_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_pcm_le_gt16 (enum AVCodecID codec_id)
 
static int mov_pcm_be_gt16 (enum AVCodecID codec_id)
 
static int mov_write_ms_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_wfex_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_chan_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_wave_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_dvc1_structs (MOVTrack *track, uint8_t *buf)
 
static int mov_write_dvc1_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_glbl_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_get_lpcm_flags (enum AVCodecID codec_id)
 Compute flags for 'lpcm' tag.
 
static int get_cluster_duration (MOVTrack *track, int cluster_idx)
 
static int get_samples_per_packet (MOVTrack *track)
 
static int mov_write_audio_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_d263_tag (AVIOContext *pb)
 
static int mov_write_avcc_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_hvcc_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_avid_tag (AVIOContext *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 AVRational find_fps (AVFormatContext *s, AVStream *st)
 
static int mov_get_mpeg2_xdcam_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 (AVIOContext *pb)
 Write uuid atom.
 
static int mov_write_fiel_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_subtitle_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_pasp_tag (AVIOContext *pb, MOVTrack *track)
 
static void find_compressor (char *compressor_name, int len, MOVTrack *track)
 
static int mov_write_video_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_rtp_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_tmcd_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_stsd_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_ctts_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_stts_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_dref_tag (AVIOContext *pb)
 
static int mov_write_stbl_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_dinf_tag (AVIOContext *pb)
 
static int mov_write_nmhd_tag (AVIOContext *pb)
 
static int mov_write_tcmi_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_gmhd_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_smhd_tag (AVIOContext *pb)
 
static int mov_write_vmhd_tag (AVIOContext *pb)
 
static int is_clcp_track (MOVTrack *track)
 
static int mov_write_hdlr_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_hmhd_tag (AVIOContext *pb)
 
static int mov_write_minf_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_mdhd_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_mdia_tag (AVIOContext *pb, MOVTrack *track)
 
static void write_matrix (AVIOContext *pb, int16_t a, int16_t b, int16_t c, int16_t d, int16_t tx, int16_t ty)
 
static int mov_write_tkhd_tag (AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track, AVStream *st)
 
static int mov_write_tapt_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_edts_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_tref_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_uuid_tag_psp (AVIOContext *pb, MOVTrack *mov)
 
static int mov_write_udta_sdp (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_trak_tag (AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track, AVStream *st)
 
static int mov_write_iods_tag (AVIOContext *pb, MOVMuxContext *mov)
 
static int mov_write_trex_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_mvex_tag (AVIOContext *pb, MOVMuxContext *mov)
 
static int mov_write_mvhd_tag (AVIOContext *pb, MOVMuxContext *mov)
 
static int mov_write_itunes_hdlr_tag (AVIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
 
static int mov_write_string_data_tag (AVIOContext *pb, const char *data, int lang, int long_style)
 
static int mov_write_string_tag (AVIOContext *pb, const char *name, const char *value, int lang, int long_style)
 
static int mov_write_string_metadata (AVFormatContext *s, AVIOContext *pb, const char *name, const char *tag, int long_style)
 
static int mov_write_tmpo_tag (AVIOContext *pb, AVFormatContext *s)
 
static int mov_write_trkn_tag (AVIOContext *pb, MOVMuxContext *mov, AVFormatContext *s, int disc)
 
static int mov_write_int8_metadata (AVFormatContext *s, AVIOContext *pb, const char *name, const char *tag, int len)
 
static int mov_write_ilst_tag (AVIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
 
static int mov_write_meta_tag (AVIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
 
static int utf8len (const uint8_t *b)
 
static int ascii_to_wc (AVIOContext *pb, const uint8_t *b)
 
static uint16_t language_code (const char *str)
 
static int mov_write_3gp_udta_tag (AVIOContext *pb, AVFormatContext *s, const char *tag, const char *str)
 
static int mov_write_chpl_tag (AVIOContext *pb, AVFormatContext *s)
 
static int mov_write_udta_tag (AVIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
 
static void mov_write_psp_udta_tag (AVIOContext *pb, const char *str, const char *lang, int type)
 
static int mov_write_uuidusmt_tag (AVIOContext *pb, AVFormatContext *s)
 
static void build_chunks (MOVTrack *trk)
 
static int mov_write_moov_tag (AVIOContext *pb, MOVMuxContext *mov, AVFormatContext *s)
 
static void param_write_int (AVIOContext *pb, const char *name, int value)
 
static void param_write_string (AVIOContext *pb, const char *name, const char *value)
 
static void param_write_hex (AVIOContext *pb, const char *name, const uint8_t *value, int len)
 
static int mov_write_isml_manifest (AVIOContext *pb, MOVMuxContext *mov)
 
static int mov_write_mfhd_tag (AVIOContext *pb, MOVMuxContext *mov)
 
static int mov_write_tfhd_tag (AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track, int64_t moof_offset)
 
static uint32_t get_sample_flags (MOVTrack *track, MOVIentry *entry)
 
static int mov_write_trun_tag (AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track, int moof_size)
 
static int mov_write_tfxd_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_tfrf_tag (AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track, int entry)
 
static int mov_write_tfrf_tags (AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track)
 
static int mov_write_traf_tag (AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track, int64_t moof_offset, int moof_size)
 
static int mov_write_moof_tag_internal (AVIOContext *pb, MOVMuxContext *mov, int tracks, int moof_size)
 
static int mov_write_moof_tag (AVIOContext *pb, MOVMuxContext *mov, int tracks)
 
static int mov_write_tfra_tag (AVIOContext *pb, MOVTrack *track)
 
static int mov_write_mfra_tag (AVIOContext *pb, MOVMuxContext *mov)
 
static int mov_write_mdat_tag (AVIOContext *pb, MOVMuxContext *mov)
 
static int mov_write_ftyp_tag (AVIOContext *pb, AVFormatContext *s)
 
static void mov_write_uuidprof_tag (AVIOContext *pb, AVFormatContext *s)
 
static int mov_parse_mpeg2_frame (AVPacket *pkt, uint32_t *flags)
 
static void mov_parse_vc1_frame (AVPacket *pkt, MOVTrack *trk, int fragment)
 
static int mov_flush_fragment (AVFormatContext *s)
 
int ff_mov_write_packet (AVFormatContext *s, AVPacket *pkt)
 
static int mov_write_single_packet (AVFormatContext *s, AVPacket *pkt)
 
static int mov_write_subtitle_end_packet (AVFormatContext *s, int stream_index, int64_t dts)
 
static int mov_write_packet (AVFormatContext *s, AVPacket *pkt)
 
static int mov_create_chapter_track (AVFormatContext *s, int tracknum)
 
static int mov_create_timecode_track (AVFormatContext *s, int index, int src_index, const char *tcstr)
 
static void enable_tracks (AVFormatContext *s)
 
static void mov_free (AVFormatContext *s)
 
static uint32_t rgb_to_yuv (uint32_t rgb)
 
static int mov_create_dvd_sub_decoder_specific_info (MOVTrack *track, AVStream *st)
 
static int mov_write_header (AVFormatContext *s)
 
static int compute_moov_size (AVFormatContext *s)
 
static int shift_data (AVFormatContext *s)
 
static int mov_write_trailer (AVFormatContext *s)
 

Variables

static const AVOption options []
 
static const AVCodecTag codec_ipod_tags []
 
struct {
   enum AVPixelFormat   pix_fmt
 
   uint32_t   tag
 
   unsigned   bps
 
mov_pix_fmt_tags []
 
static const AVCodecTag codec_3gp_tags []
 
static const AVCodecTag codec_f4v_tags []
 
static const uint16_t fiel_data []
 

Macro Definition Documentation

#define MOV_CLASS (   flavor)
Value:
static const AVClass flavor ## _muxer_class = {\
.class_name = #flavor " muxer",\
.item_name = av_default_item_name,\
.option = options,\
.version = LIBAVUTIL_VERSION_INT,\
};

Definition at line 77 of file movenc.c.

#define READ_BLOCK
Value:
do { \
read_size[read_buf_id] = avio_read(read_pb, read_buf[read_buf_id], moov_size); \
read_buf_id ^= 1; \
} while (0)

Referenced by shift_data().

Function Documentation

static int get_moov_size ( AVFormatContext s)
static

Definition at line 4230 of file movenc.c.

Referenced by compute_moov_size(), and mov_flush_fragment().

static int64_t update_size ( AVIOContext pb,
int64_t  pos 
)
static
static int supports_edts ( MOVMuxContext mov)
static

Definition at line 98 of file movenc.c.

Referenced by ff_mov_write_packet(), mov_write_header(), and mov_write_trak_tag().

static int co64_required ( const MOVTrack track)
static

Definition at line 104 of file movenc.c.

Referenced by mov_write_stco_tag().

static int mov_write_stco_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 112 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_stsz_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 136 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_stsc_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 172 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_stss_tag ( AVIOContext pb,
MOVTrack track,
uint32_t  flag 
)
static

Definition at line 201 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_amr_tag ( AVIOContext 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_ac3_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 238 of file movenc.c.

Referenced by mov_write_audio_tag(), and mov_write_wave_tag().

static int mov_write_extradata_tag ( AVIOContext pb,
MOVTrack track 
)
static

This function writes extradata "as is".

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

Definition at line 286 of file movenc.c.

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

static int mov_write_enda_tag ( AVIOContext pb)
static

Definition at line 292 of file movenc.c.

Referenced by mov_write_wave_tag().

static int mov_write_enda_tag_be ( AVIOContext pb)
static

Definition at line 300 of file movenc.c.

Referenced by mov_write_wave_tag().

static void put_descr ( AVIOContext pb,
int  tag,
unsigned int  size 
)
static

Definition at line 308 of file movenc.c.

Referenced by mov_write_esds_tag(), and mov_write_iods_tag().

static unsigned compute_avg_bitrate ( MOVTrack track)
static

Definition at line 317 of file movenc.c.

Referenced by mov_write_esds_tag().

static int mov_write_esds_tag ( AVIOContext pb,
MOVTrack track 
)
static
static int mov_pcm_le_gt16 ( enum AVCodecID  codec_id)
static

Definition at line 382 of file movenc.c.

Referenced by mov_write_audio_tag(), and mov_write_wave_tag().

static int mov_pcm_be_gt16 ( enum AVCodecID  codec_id)
static

Definition at line 390 of file movenc.c.

Referenced by mov_write_audio_tag(), and mov_write_wave_tag().

static int mov_write_ms_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 398 of file movenc.c.

Referenced by mov_write_wave_tag().

static int mov_write_wfex_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 410 of file movenc.c.

Referenced by mov_write_audio_tag().

static int mov_write_chan_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 421 of file movenc.c.

Referenced by mov_write_audio_tag().

static int mov_write_wave_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 449 of file movenc.c.

Referenced by mov_write_audio_tag().

static int mov_write_dvc1_structs ( MOVTrack track,
uint8_t buf 
)
static

Definition at line 490 of file movenc.c.

Referenced by mov_write_dvc1_tag(), and mov_write_trailer().

static int mov_write_dvc1_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 571 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_glbl_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 588 of file movenc.c.

Referenced by mov_write_audio_tag(), and mov_write_video_tag().

static int mov_get_lpcm_flags ( enum AVCodecID  codec_id)
static

Compute flags for 'lpcm' tag.

See CoreAudioTypes and AudioStreamBasicDescription at Apple.

Definition at line 600 of file movenc.c.

Referenced by mov_write_audio_tag().

static int get_cluster_duration ( MOVTrack track,
int  cluster_idx 
)
static
static int get_samples_per_packet ( MOVTrack track)
static

Definition at line 645 of file movenc.c.

Referenced by mov_write_audio_tag().

static int mov_write_audio_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 666 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_d263_tag ( AVIOContext pb)
static

Definition at line 773 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_avcc_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 785 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_hvcc_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 795 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_avid_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 806 of file movenc.c.

Referenced by mov_write_video_tag().

static int mp4_get_codec_tag ( AVFormatContext s,
MOVTrack track 
)
static

Definition at line 857 of file movenc.c.

Referenced by mov_find_codec_tag().

static int ipod_get_codec_tag ( AVFormatContext s,
MOVTrack track 
)
static

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

Referenced by mov_get_codec_tag().

static AVRational find_fps ( AVFormatContext s,
AVStream st 
)
static
static int mov_get_mpeg2_xdcam_codec_tag ( AVFormatContext s,
MOVTrack track 
)
static

Definition at line 945 of file movenc.c.

Referenced by mov_get_codec_tag().

static int mov_get_rawvideo_codec_tag ( AVFormatContext s,
MOVTrack track 
)
static

Definition at line 1029 of file movenc.c.

Referenced by mov_get_codec_tag().

static int mov_get_codec_tag ( AVFormatContext s,
MOVTrack track 
)
static

Definition at line 1054 of file movenc.c.

Referenced by mov_find_codec_tag().

static int mov_find_codec_tag ( AVFormatContext s,
MOVTrack track 
)
static

Definition at line 1115 of file movenc.c.

Referenced by mov_write_header().

static int mov_write_uuid_tag_ipod ( AVIOContext 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 1141 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_fiel_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1157 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_subtitle_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1170 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_pasp_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1187 of file movenc.c.

Referenced by mov_write_video_tag().

static void find_compressor ( char *  compressor_name,
int  len,
MOVTrack track 
)
static

Definition at line 1200 of file movenc.c.

Referenced by mov_write_video_tag().

static int mov_write_video_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1228 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_rtp_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1311 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_tmcd_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1331 of file movenc.c.

Referenced by mov_write_stsd_tag().

static int mov_write_stsd_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1366 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_ctts_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1386 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_stts_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1420 of file movenc.c.

Referenced by mov_write_stbl_tag().

static int mov_write_dref_tag ( AVIOContext pb)
static

Definition at line 1461 of file movenc.c.

Referenced by mov_write_dinf_tag().

static int mov_write_stbl_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1476 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_dinf_tag ( AVIOContext pb)
static

Definition at line 1498 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_nmhd_tag ( AVIOContext pb)
static

Definition at line 1507 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_tcmi_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1515 of file movenc.c.

Referenced by mov_write_gmhd_tag().

static int mov_write_gmhd_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1537 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_smhd_tag ( AVIOContext pb)
static

Definition at line 1583 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_vmhd_tag ( AVIOContext pb)
static

Definition at line 1593 of file movenc.c.

Referenced by mov_write_minf_tag().

static int is_clcp_track ( MOVTrack track)
static

Definition at line 1602 of file movenc.c.

Referenced by mov_write_hdlr_tag(), mov_write_minf_tag(), and mov_write_trak_tag().

static int mov_write_hdlr_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1608 of file movenc.c.

Referenced by mov_write_mdia_tag(), and mov_write_minf_tag().

static int mov_write_hmhd_tag ( AVIOContext pb)
static

Definition at line 1672 of file movenc.c.

Referenced by mov_write_minf_tag().

static int mov_write_minf_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1687 of file movenc.c.

Referenced by mov_write_mdia_tag().

static int mov_write_mdhd_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1714 of file movenc.c.

Referenced by mov_write_mdia_tag().

static int mov_write_mdia_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1750 of file movenc.c.

Referenced by mov_write_trak_tag().

static void write_matrix ( AVIOContext pb,
int16_t  a,
int16_t  b,
int16_t  c,
int16_t  d,
int16_t  tx,
int16_t  ty 
)
static

Definition at line 1765 of file movenc.c.

Referenced by mov_write_mvhd_tag(), and mov_write_tkhd_tag().

static int mov_write_tkhd_tag ( AVIOContext pb,
MOVMuxContext mov,
MOVTrack track,
AVStream st 
)
static

Definition at line 1779 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_tapt_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1866 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_edts_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1898 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_tref_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1949 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_uuid_tag_psp ( AVIOContext pb,
MOVTrack mov 
)
static

Definition at line 1960 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_udta_sdp ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 1978 of file movenc.c.

Referenced by mov_write_trak_tag().

static int mov_write_trak_tag ( AVIOContext pb,
MOVMuxContext mov,
MOVTrack track,
AVStream st 
)
static

Definition at line 1999 of file movenc.c.

Referenced by mov_write_moov_tag().

static int mov_write_iods_tag ( AVIOContext pb,
MOVMuxContext mov 
)
static

Definition at line 2029 of file movenc.c.

Referenced by mov_write_moov_tag().

static int mov_write_trex_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 2058 of file movenc.c.

Referenced by mov_write_mvex_tag().

static int mov_write_mvex_tag ( AVIOContext pb,
MOVMuxContext mov 
)
static

Definition at line 2071 of file movenc.c.

Referenced by mov_write_moov_tag().

static int mov_write_mvhd_tag ( AVIOContext pb,
MOVMuxContext mov 
)
static

Definition at line 2082 of file movenc.c.

Referenced by mov_write_moov_tag().

static int mov_write_itunes_hdlr_tag ( AVIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
)
static

Definition at line 2135 of file movenc.c.

Referenced by mov_write_meta_tag().

static int mov_write_string_data_tag ( AVIOContext pb,
const char *  data,
int  lang,
int  long_style 
)
static

Definition at line 2151 of file movenc.c.

Referenced by mov_write_string_tag().

static int mov_write_string_tag ( AVIOContext pb,
const char *  name,
const char *  value,
int  lang,
int  long_style 
)
static

Definition at line 2171 of file movenc.c.

Referenced by mov_write_ilst_tag(), and mov_write_string_metadata().

static int mov_write_string_metadata ( AVFormatContext s,
AVIOContext pb,
const char *  name,
const char *  tag,
int  long_style 
)
static

Definition at line 2185 of file movenc.c.

Referenced by mov_write_ilst_tag(), and mov_write_udta_tag().

static int mov_write_tmpo_tag ( AVIOContext pb,
AVFormatContext s 
)
static

Definition at line 2210 of file movenc.c.

Referenced by mov_write_ilst_tag().

static int mov_write_trkn_tag ( AVIOContext pb,
MOVMuxContext mov,
AVFormatContext s,
int  disc 
)
static

Definition at line 2228 of file movenc.c.

Referenced by mov_write_ilst_tag().

static int mov_write_int8_metadata ( AVFormatContext s,
AVIOContext pb,
const char *  name,
const char *  tag,
int  len 
)
static

Definition at line 2255 of file movenc.c.

Referenced by mov_write_ilst_tag().

static int mov_write_ilst_tag ( AVIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
)
static

Definition at line 2283 of file movenc.c.

Referenced by mov_write_meta_tag().

static int mov_write_meta_tag ( AVIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
)
static

Definition at line 2321 of file movenc.c.

Referenced by mov_write_udta_tag().

static int utf8len ( const uint8_t b)
static

Definition at line 2335 of file movenc.c.

Referenced by mov_write_3gp_udta_tag(), and mov_write_psp_udta_tag().

static int ascii_to_wc ( AVIOContext pb,
const uint8_t b 
)
static

Definition at line 2346 of file movenc.c.

Referenced by mov_write_psp_udta_tag().

static uint16_t language_code ( const char *  str)
static
static int mov_write_3gp_udta_tag ( AVIOContext pb,
AVFormatContext s,
const char *  tag,
const char *  str 
)
static

Definition at line 2364 of file movenc.c.

Referenced by mov_write_udta_tag().

static int mov_write_chpl_tag ( AVIOContext pb,
AVFormatContext s 
)
static

Definition at line 2386 of file movenc.c.

Referenced by mov_write_udta_tag().

static int mov_write_udta_tag ( AVIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
)
static

Definition at line 2412 of file movenc.c.

Referenced by mov_write_moov_tag().

static void mov_write_psp_udta_tag ( AVIOContext pb,
const char *  str,
const char *  lang,
int  type 
)
static

Definition at line 2463 of file movenc.c.

Referenced by mov_write_uuidusmt_tag().

static int mov_write_uuidusmt_tag ( AVIOContext pb,
AVFormatContext s 
)
static

Definition at line 2476 of file movenc.c.

Referenced by mov_write_moov_tag().

static void build_chunks ( MOVTrack trk)
static

Definition at line 2515 of file movenc.c.

Referenced by mov_write_moov_tag().

static int mov_write_moov_tag ( AVIOContext pb,
MOVMuxContext mov,
AVFormatContext s 
)
static

Definition at line 2538 of file movenc.c.

Referenced by get_moov_size(), mov_flush_fragment(), mov_write_header(), and mov_write_trailer().

static void param_write_int ( AVIOContext pb,
const char *  name,
int  value 
)
static

Definition at line 2600 of file movenc.c.

Referenced by mov_write_isml_manifest().

static void param_write_string ( AVIOContext pb,
const char *  name,
const char *  value 
)
static

Definition at line 2605 of file movenc.c.

Referenced by mov_write_isml_manifest().

static void param_write_hex ( AVIOContext pb,
const char *  name,
const uint8_t value,
int  len 
)
static

Definition at line 2610 of file movenc.c.

Referenced by mov_write_isml_manifest().

static int mov_write_isml_manifest ( AVIOContext pb,
MOVMuxContext mov 
)
static

Definition at line 2619 of file movenc.c.

Referenced by mov_write_header().

static int mov_write_mfhd_tag ( AVIOContext pb,
MOVMuxContext mov 
)
static

Definition at line 2706 of file movenc.c.

Referenced by mov_write_moof_tag_internal().

static int mov_write_tfhd_tag ( AVIOContext pb,
MOVMuxContext mov,
MOVTrack track,
int64_t  moof_offset 
)
static

Definition at line 2715 of file movenc.c.

Referenced by mov_write_traf_tag().

static uint32_t get_sample_flags ( MOVTrack track,
MOVIentry entry 
)
static

Definition at line 2766 of file movenc.c.

Referenced by mov_write_trun_tag().

static int mov_write_trun_tag ( AVIOContext pb,
MOVMuxContext mov,
MOVTrack track,
int  moof_size 
)
static

Definition at line 2772 of file movenc.c.

Referenced by mov_write_traf_tag().

static int mov_write_tfxd_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 2822 of file movenc.c.

Referenced by mov_write_traf_tag().

static int mov_write_tfrf_tag ( AVIOContext pb,
MOVMuxContext mov,
MOVTrack track,
int  entry 
)
static

Definition at line 2842 of file movenc.c.

Referenced by mov_write_tfrf_tags().

static int mov_write_tfrf_tags ( AVIOContext pb,
MOVMuxContext mov,
MOVTrack track 
)
static

Definition at line 2877 of file movenc.c.

Referenced by mov_flush_fragment().

static int mov_write_traf_tag ( AVIOContext pb,
MOVMuxContext mov,
MOVTrack track,
int64_t  moof_offset,
int  moof_size 
)
static

Definition at line 2891 of file movenc.c.

Referenced by mov_write_moof_tag_internal().

static int mov_write_moof_tag_internal ( AVIOContext pb,
MOVMuxContext mov,
int  tracks,
int  moof_size 
)
static

Definition at line 2918 of file movenc.c.

Referenced by mov_write_moof_tag().

static int mov_write_moof_tag ( AVIOContext pb,
MOVMuxContext mov,
int  tracks 
)
static

Definition at line 2940 of file movenc.c.

Referenced by mov_flush_fragment().

static int mov_write_tfra_tag ( AVIOContext pb,
MOVTrack track 
)
static

Definition at line 2952 of file movenc.c.

Referenced by mov_write_mfra_tag().

static int mov_write_mfra_tag ( AVIOContext pb,
MOVMuxContext mov 
)
static

Definition at line 2976 of file movenc.c.

Referenced by mov_write_trailer().

static int mov_write_mdat_tag ( AVIOContext pb,
MOVMuxContext mov 
)
static

Definition at line 3002 of file movenc.c.

Referenced by mov_write_header().

static int mov_write_ftyp_tag ( AVIOContext pb,
AVFormatContext s 
)
static

Definition at line 3014 of file movenc.c.

Referenced by mov_write_header().

static void mov_write_uuidprof_tag ( AVIOContext pb,
AVFormatContext s 
)
static

Definition at line 3079 of file movenc.c.

Referenced by mov_write_header().

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

Definition at line 3142 of file movenc.c.

Referenced by ff_mov_write_packet().

static void mov_parse_vc1_frame ( AVPacket pkt,
MOVTrack trk,
int  fragment 
)
static

Definition at line 3163 of file movenc.c.

Referenced by ff_mov_write_packet().

static int mov_flush_fragment ( AVFormatContext s)
static

Definition at line 3220 of file movenc.c.

Referenced by mov_write_packet(), mov_write_single_packet(), and mov_write_trailer().

int ff_mov_write_packet ( AVFormatContext s,
AVPacket pkt 
)
static int mov_write_single_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 3521 of file movenc.c.

Referenced by mov_write_packet(), and mov_write_subtitle_end_packet().

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

Definition at line 3549 of file movenc.c.

Referenced by mov_write_packet(), and mov_write_trailer().

static int mov_write_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 3570 of file movenc.c.

static int mov_create_chapter_track ( AVFormatContext s,
int  tracknum 
)
static

Definition at line 3619 of file movenc.c.

Referenced by mov_write_header(), and mov_write_trailer().

static int mov_create_timecode_track ( AVFormatContext s,
int  index,
int  src_index,
const char *  tcstr 
)
static

Definition at line 3711 of file movenc.c.

Referenced by mov_write_header().

static void enable_tracks ( AVFormatContext s)
static

Definition at line 3759 of file movenc.c.

Referenced by mov_write_header().

static void mov_free ( AVFormatContext s)
static

Definition at line 3800 of file movenc.c.

Referenced by mov_write_header(), and mov_write_trailer().

static uint32_t rgb_to_yuv ( uint32_t  rgb)
static

Definition at line 3826 of file movenc.c.

Referenced by mov_create_dvd_sub_decoder_specific_info().

static int mov_create_dvd_sub_decoder_specific_info ( MOVTrack track,
AVStream st 
)
static

Definition at line 3842 of file movenc.c.

Referenced by mov_write_header().

static int mov_write_header ( AVFormatContext s)
static

Definition at line 3891 of file movenc.c.

static int compute_moov_size ( AVFormatContext s)
static

Definition at line 4248 of file movenc.c.

Referenced by shift_data().

static int shift_data ( AVFormatContext s)
static

Definition at line 4273 of file movenc.c.

Referenced by mov_write_trailer().

static int mov_write_trailer ( AVFormatContext s)
static

Definition at line 4336 of file movenc.c.

Variable Documentation

const AVOption options[]
static
Initial value:
= {
{ "movflags", "MOV muxer flags", 0x42, AV_OPT_TYPE_FLAGS, {.i64 = 0}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
{ "rtphint", "Add RTP hint tracks", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_RTP_HINT}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
{ "moov_size", "maximum moov size so it can be placed at the begin", 0x42, AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, 0 },
{ "empty_moov", "Make the initial moov atom empty (not supported by QuickTime)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_EMPTY_MOOV}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
{ "frag_keyframe", "Fragment at video keyframes", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_FRAG_KEYFRAME}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
{ "separate_moof", "Write separate moof/mdat atoms for each track", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_SEPARATE_MOOF}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
{ "frag_custom", "Flush fragments on caller requests", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_FRAG_CUSTOM}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
{ "isml", "Create a live smooth streaming feed (for pushing to a publishing point)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_ISML}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
{ "faststart", "Run a second pass to put the index (moov atom) at the beginning of the file", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_FASTSTART}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
{ "omit_tfhd_offset", "Omit the base data offset in tfhd atoms", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_OMIT_TFHD_OFFSET}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
{ "skip_iods", "Skip writing iods atom.", 0x42, AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
{ "iods_audio_profile", "iods audio profile atom.", 0x42, AV_OPT_TYPE_INT, {.i64 = -1}, -1, 255, AV_OPT_FLAG_ENCODING_PARAM},
{ "iods_video_profile", "iods video profile atom.", 0x42, AV_OPT_TYPE_INT, {.i64 = -1}, -1, 255, AV_OPT_FLAG_ENCODING_PARAM},
{ "frag_duration", "Maximum fragment duration", 0x42, AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ "min_frag_duration", "Minimum fragment duration", 0x42, AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ "frag_size", "Maximum fragment size", 0x42, AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ "ism_lookahead", "Number of lookahead entries for ISM files", 0x42, AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ "use_editlist", "use edit list", 0x42, AV_OPT_TYPE_INT, {.i64 = -1}, -1, 1, AV_OPT_FLAG_ENCODING_PARAM},
{ "video_track_timescale", "set timescale of all video tracks", 0x42, AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ "brand", "Override major brand", 0x42, AV_OPT_TYPE_STRING, {.str = NULL}, .flags = AV_OPT_FLAG_ENCODING_PARAM },
{ NULL },
}

Definition at line 52 of file movenc.c.

const AVCodecTag codec_ipod_tags[]
static
Initial value:
= {
{ AV_CODEC_ID_H264, MKTAG('a','v','c','1') },
{ AV_CODEC_ID_MPEG4, MKTAG('m','p','4','v') },
{ AV_CODEC_ID_AAC, MKTAG('m','p','4','a') },
{ AV_CODEC_ID_ALAC, MKTAG('a','l','a','c') },
{ AV_CODEC_ID_AC3, MKTAG('a','c','-','3') },
{ AV_CODEC_ID_MOV_TEXT, MKTAG('t','x','3','g') },
{ AV_CODEC_ID_MOV_TEXT, MKTAG('t','e','x','t') },
}

Definition at line 877 of file movenc.c.

enum AVPixelFormat pix_fmt

Definition at line 1008 of file movenc.c.

uint32_t tag
Examples:
metadata.c, and remuxing.c.

Definition at line 1009 of file movenc.c.

Referenced by aac_encode_frame(), add_input_streams(), aiff_read_header(), ape_read_header(), asf_write_header1(), av_codec_get_tag(), av_dict_set(), av_find_info_tag(), av_get_audio_frame_duration(), avformat_find_stream_info(), avi_extract_stream_metadata(), avi_load_index(), avi_read_header(), avi_read_idx1(), avi_read_nikon(), avi_stream2fourcc(), avi_write_header(), avi_write_idx1(), avi_write_ix(), avi_write_packet(), copy_tag(), decode_frame(), decode_interframe_v4(), decode_interframe_v4a(), dump_metadata(), dxa_read_header(), eval_function(), ff_mov_get_channel_layout_tag(), ff_mov_read_esds(), ff_mp4_read_dec_config_descr(), ff_vorbiscomment_length(), ff_vorbiscomment_write(), ffm_read_header(), flv_write_header(), get_swf_tag(), gxf_material_tags(), gxf_track_tags(), id3v1_create_tag(), id3v1_set_string(), id3v2_check_write_tag(), id3v2_parse(), iff_read_header(), ipod_get_codec_tag(), ircam_read_header(), ircam_write_header(), libschroedinger_decode_frame(), lz_unpack(), main(), matroska_convert_tags(), metasound_decode_init(), mkv_write_codecprivate(), mkv_write_header(), mkv_write_simpletag(), mkv_write_tag(), mkv_write_track(), mmf_read_header(), mov_find_codec_tag(), mov_get_codec_tag(), mov_get_dv_codec_tag(), mov_get_mpeg2_xdcam_codec_tag(), mov_get_rawvideo_codec_tag(), mov_probe(), mov_read_custom(), mov_read_custom_2plus(), mov_read_meta(), mov_read_udta_string(), mov_write_audio_tag(), mp4_get_codec_tag(), mpc8_parse_seektable(), mpc8_read_header(), mpc8_read_packet(), new_output_stream(), nuv_resync(), ogm_header(), parse_dsd_diin(), parse_dsd_prop(), parse_fragment(), parse_mp4_descr(), pmt_cb(), process_line(), put_meta(), put_swf_end_tag(), put_swf_tag(), qcp_read_packet(), qt_rtp_parse_packet(), rdt_load_mdpr(), read_chapter(), read_header(), rm_read_header(), rv10_write_header(), sami_paragraph_to_ass(), show_tags(), siff_probe(), siff_read_header(), smjpeg_write_header(), sol_read_header(), srt_to_ass(), swf_read_header(), swf_read_packet(), tiff_decode_tag(), validate_codec_tag(), vs_2_av_log_wrapper(), write_stream_codec_info(), write_table_entries_attrib(), write_table_redirector_legacy_attrib(), xan_decode_frame(), xv_write_header(), xwma_read_header(), yop_decode_frame(), and yop_paint_block().

unsigned bps
struct { ... } mov_pix_fmt_tags[]
Initial value:
= {
{ AV_PIX_FMT_YUYV422, MKTAG('y','u','v','2'), 0 },
{ AV_PIX_FMT_YUYV422, MKTAG('y','u','v','s'), 0 },
{ AV_PIX_FMT_UYVY422, MKTAG('2','v','u','y'), 0 },
{ AV_PIX_FMT_RGB555BE,MKTAG('r','a','w',' '), 16 },
{ AV_PIX_FMT_RGB555LE,MKTAG('L','5','5','5'), 16 },
{ AV_PIX_FMT_RGB565LE,MKTAG('L','5','6','5'), 16 },
{ AV_PIX_FMT_RGB565BE,MKTAG('B','5','6','5'), 16 },
{ AV_PIX_FMT_GRAY16BE,MKTAG('b','1','6','g'), 16 },
{ AV_PIX_FMT_RGB24, MKTAG('r','a','w',' '), 24 },
{ AV_PIX_FMT_BGR24, MKTAG('2','4','B','G'), 24 },
{ AV_PIX_FMT_ARGB, MKTAG('r','a','w',' '), 32 },
{ AV_PIX_FMT_BGRA, MKTAG('B','G','R','A'), 32 },
{ AV_PIX_FMT_RGBA, MKTAG('R','G','B','A'), 32 },
{ AV_PIX_FMT_ABGR, MKTAG('A','B','G','R'), 32 },
{ AV_PIX_FMT_RGB48BE, MKTAG('b','4','8','r'), 48 },
}

Referenced by mov_get_rawvideo_codec_tag().

const AVCodecTag codec_3gp_tags[]
static
Initial value:
= {
{ AV_CODEC_ID_H263, MKTAG('s','2','6','3') },
{ AV_CODEC_ID_H264, MKTAG('a','v','c','1') },
{ AV_CODEC_ID_MPEG4, MKTAG('m','p','4','v') },
{ AV_CODEC_ID_AAC, MKTAG('m','p','4','a') },
{ AV_CODEC_ID_AMR_NB, MKTAG('s','a','m','r') },
{ AV_CODEC_ID_AMR_WB, MKTAG('s','a','w','b') },
{ AV_CODEC_ID_MOV_TEXT, MKTAG('t','x','3','g') },
}

Definition at line 1095 of file movenc.c.

const AVCodecTag codec_f4v_tags[]
static
Initial value:
= {
{ AV_CODEC_ID_MP3, MKTAG('.','m','p','3') },
{ AV_CODEC_ID_AAC, MKTAG('m','p','4','a') },
{ AV_CODEC_ID_H264, MKTAG('a','v','c','1') },
{ AV_CODEC_ID_VP6A, MKTAG('V','P','6','A') },
{ AV_CODEC_ID_VP6F, MKTAG('V','P','6','F') },
}

Definition at line 1106 of file movenc.c.

const uint16_t fiel_data[]
static
Initial value:
= {
0x0000, 0x0100, 0x0201, 0x0206, 0x0209, 0x020e
}

Definition at line 1153 of file movenc.c.

Referenced by mov_write_fiel_tag().