#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 "internal.h"
#include "libavutil/avstring.h"
#include "libavutil/intfloat.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/dict.h"
#include "rtpenc.h"
#include "mov_chan.h"
#include <assert.h>
Go to the source code of this file.
#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,\ };
static int ascii_to_wc | ( | AVIOContext * | pb, | |
const uint8_t * | b | |||
) | [static] |
static void build_chunks | ( | MOVTrack * | trk | ) | [static] |
static unsigned compute_avg_bitrate | ( | MOVTrack * | track | ) | [static] |
int ff_mov_write_packet | ( | AVFormatContext * | s, | |
AVPacket * | pkt | |||
) |
static int ipod_get_codec_tag | ( | AVFormatContext * | s, | |
MOVTrack * | track | |||
) | [static] |
static uint16_t language_code | ( | const char * | str | ) | [static] |
Definition at line 1750 of file movenc.c.
Referenced by mov_write_3gp_udta_tag(), mov_write_psp_udta_tag(), and mov_write_uuidusmt_tag().
static void mov_create_chapter_track | ( | AVFormatContext * | s, | |
int | tracknum | |||
) | [static] |
static int mov_find_codec_tag | ( | AVFormatContext * | s, | |
MOVTrack * | track | |||
) | [static] |
static int mov_flush_fragment | ( | AVFormatContext * | s | ) | [static] |
Definition at line 2418 of file movenc.c.
Referenced by ff_mov_write_packet(), mov_write_packet_internal(), and mov_write_trailer().
static int mov_get_codec_tag | ( | AVFormatContext * | s, | |
MOVTrack * | track | |||
) | [static] |
static int mov_get_dv_codec_tag | ( | AVFormatContext * | s, | |
MOVTrack * | track | |||
) | [static] |
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 438 of file movenc.c.
Referenced by mov_write_audio_tag().
static int mov_get_rawvideo_codec_tag | ( | AVFormatContext * | s, | |
MOVTrack * | track | |||
) | [static] |
static int mov_parse_mpeg2_frame | ( | AVPacket * | pkt, | |
uint32_t * | flags | |||
) | [static] |
static int mov_pcm_le_gt16 | ( | enum CodecID | codec_id | ) | [static] |
Definition at line 346 of file movenc.c.
Referenced by mov_write_audio_tag(), and mov_write_wave_tag().
static int mov_write_3gp_udta_tag | ( | AVIOContext * | pb, | |
AVFormatContext * | s, | |||
const char * | tag, | |||
const char * | str | |||
) | [static] |
static int mov_write_ac3_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
Definition at line 213 of file movenc.c.
Referenced by mov_write_audio_tag(), and mov_write_wave_tag().
static int mov_write_amr_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
Definition at line 199 of file movenc.c.
Referenced by mov_write_audio_tag(), and mov_write_wave_tag().
static int mov_write_audio_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_avcc_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_avid_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_chan_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_chpl_tag | ( | AVIOContext * | pb, | |
AVFormatContext * | s | |||
) | [static] |
static int mov_write_ctts_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_d263_tag | ( | AVIOContext * | pb | ) | [static] |
static int mov_write_dinf_tag | ( | AVIOContext * | pb | ) | [static] |
static int mov_write_dref_tag | ( | AVIOContext * | pb | ) | [static] |
static int mov_write_edts_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_enda_tag | ( | AVIOContext * | pb | ) | [static] |
static int mov_write_esds_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
Definition at line 293 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 | ( | 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 261 of file movenc.c.
Referenced by mov_write_audio_tag(), and mov_write_wave_tag().
static int mov_write_fiel_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_ftyp_tag | ( | AVIOContext * | pb, | |
AVFormatContext * | s | |||
) | [static] |
static int mov_write_glbl_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
Definition at line 426 of file movenc.c.
Referenced by mov_write_audio_tag(), and mov_write_video_tag().
static int mov_write_gmhd_tag | ( | AVIOContext * | pb | ) | [static] |
static int mov_write_hdlr_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
Definition at line 1147 of file movenc.c.
Referenced by mov_write_mdia_tag(), and mov_write_minf_tag().
static int mov_write_header | ( | AVFormatContext * | s | ) | [static] |
static int mov_write_hmhd_tag | ( | AVIOContext * | pb | ) | [static] |
static int mov_write_ilst_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
AVFormatContext * | s | |||
) | [static] |
static int mov_write_iods_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov | |||
) | [static] |
static int mov_write_itunes_hdlr_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
AVFormatContext * | s | |||
) | [static] |
static int mov_write_mdat_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov | |||
) | [static] |
static int mov_write_mdhd_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_mdia_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_meta_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
AVFormatContext * | s | |||
) | [static] |
static int mov_write_mfhd_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov | |||
) | [static] |
static int mov_write_mfra_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov | |||
) | [static] |
static int mov_write_minf_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_moof_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
int | tracks | |||
) | [static] |
static int mov_write_moov_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
AVFormatContext * | s | |||
) | [static] |
Definition at line 1928 of file movenc.c.
Referenced by mov_flush_fragment(), mov_write_header(), and mov_write_trailer().
static int mov_write_ms_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_mvex_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov | |||
) | [static] |
static int mov_write_mvhd_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov | |||
) | [static] |
static int mov_write_nmhd_tag | ( | AVIOContext * | pb | ) | [static] |
static int mov_write_packet_internal | ( | AVFormatContext * | s, | |
AVPacket * | pkt | |||
) | [static] |
static int mov_write_pasp_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static void mov_write_psp_udta_tag | ( | AVIOContext * | pb, | |
const char * | str, | |||
const char * | lang, | |||
int | type | |||
) | [static] |
static int mov_write_rtp_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_smhd_tag | ( | AVIOContext * | pb | ) | [static] |
static int mov_write_stbl_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_stco_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_string_data_tag | ( | AVIOContext * | pb, | |
const char * | data, | |||
int | lang, | |||
int | long_style | |||
) | [static] |
static int mov_write_string_metadata | ( | AVFormatContext * | s, | |
AVIOContext * | pb, | |||
const char * | name, | |||
const char * | tag, | |||
int | long_style | |||
) | [static] |
Definition at line 1639 of file movenc.c.
Referenced by mov_write_ilst_tag(), and mov_write_udta_tag().
static int mov_write_string_tag | ( | AVIOContext * | pb, | |
const char * | name, | |||
const char * | value, | |||
int | lang, | |||
int | long_style | |||
) | [static] |
Definition at line 1627 of file movenc.c.
Referenced by mov_write_ilst_tag(), and mov_write_string_metadata().
static int mov_write_stsc_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_stsd_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_stss_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track, | |||
uint32_t | flag | |||
) | [static] |
static int mov_write_stsz_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_stts_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_subtitle_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_svq3_tag | ( | AVIOContext * | pb | ) | [static] |
static int mov_write_tapt_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_tfhd_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track, | |||
int64_t | moof_offset | |||
) | [static] |
static int mov_write_tfra_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_tfrf_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
MOVTrack * | track, | |||
int | entry | |||
) | [static] |
static int mov_write_tfrf_tags | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
MOVTrack * | track | |||
) | [static] |
static int mov_write_tfxd_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_tkhd_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track, | |||
AVStream * | st | |||
) | [static] |
static int mov_write_traf_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
MOVTrack * | track, | |||
int64_t | moof_offset | |||
) | [static] |
static int mov_write_trailer | ( | AVFormatContext * | s | ) | [static] |
static int mov_write_trak_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
MOVTrack * | track, | |||
AVStream * | st | |||
) | [static] |
static int mov_write_tref_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_trex_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_trkn_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
AVFormatContext * | s | |||
) | [static] |
static int mov_write_trun_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_udta_sdp | ( | AVIOContext * | pb, | |
AVFormatContext * | ctx, | |||
int | index | |||
) | [static] |
static int mov_write_udta_tag | ( | AVIOContext * | pb, | |
MOVMuxContext * | mov, | |||
AVFormatContext * | s | |||
) | [static] |
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 815 of file movenc.c.
Referenced by mov_write_video_tag().
static int mov_write_uuid_tag_psp | ( | AVIOContext * | pb, | |
MOVTrack * | mov | |||
) | [static] |
static void mov_write_uuidprof_tag | ( | AVIOContext * | pb, | |
AVFormatContext * | s | |||
) | [static] |
static int mov_write_uuidusmt_tag | ( | AVIOContext * | pb, | |
AVFormatContext * | s | |||
) | [static] |
static int mov_write_video_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mov_write_vmhd_tag | ( | AVIOContext * | pb | ) | [static] |
static int mov_write_wave_tag | ( | AVIOContext * | pb, | |
MOVTrack * | track | |||
) | [static] |
static int mp4_get_codec_tag | ( | AVFormatContext * | s, | |
MOVTrack * | track | |||
) | [static] |
static void putDescr | ( | AVIOContext * | pb, | |
int | tag, | |||
unsigned int | size | |||
) | [static] |
Definition at line 275 of file movenc.c.
Referenced by mov_write_esds_tag(), and mov_write_iods_tag().
static int64_t updateSize | ( | AVIOContext * | pb, | |
int64_t | pos | |||
) | [static] |
static int utf8len | ( | const uint8_t * | b | ) | [static] |
Definition at line 1728 of file movenc.c.
Referenced by mov_write_3gp_udta_tag(), and mov_write_psp_udta_tag().
unsigned bps |
Definition at line 712 of file movenc.c.
Referenced by au_read_header(), ff_wma_init(), gxf_packet(), lms_update(), main(), mclms_update(), nsv_read_chunk(), raw_read_packet(), rso_read_header(), rso_read_packet(), transcode_audio(), 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 }, }
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 }, }
const uint16_t fiel_data[] [static] |
Initial value:
{ 0x0000, 0x0100, 0x0201, 0x0206, 0x0209, 0x020e }
Definition at line 827 of file movenc.c.
Referenced by mov_write_fiel_tag().
struct { ... } mov_pix_fmt_tags[] [static] |
Referenced by mov_get_rawvideo_codec_tag().
Initial value:
{ { "movflags", "MOV muxer flags", 0x42, AV_OPT_TYPE_FLAGS, {.dbl = 0}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" }, { "rtphint", "Add RTP hint tracks", 0, AV_OPT_TYPE_CONST, {.dbl = 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, {.dbl = 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, {.dbl = 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, {.dbl = 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, {.dbl = 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, {.dbl = FF_MOV_FLAG_FRAG_CUSTOM}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" }, FF_RTP_FLAG_OPTS(MOVMuxContext, rtp_flags), { "skip_iods", "Skip writing iods atom.", 0x42, AV_OPT_TYPE_INT, {.dbl = 1}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM}, { "iods_audio_profile", "iods audio profile atom.", 0x42, AV_OPT_TYPE_INT, {.dbl = -1}, -1, 255, AV_OPT_FLAG_ENCODING_PARAM}, { "iods_video_profile", "iods video profile atom.", 0x42, AV_OPT_TYPE_INT, {.dbl = -1}, -1, 255, AV_OPT_FLAG_ENCODING_PARAM}, { "frag_duration", "Maximum fragment duration", 0x42, AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM}, { "frag_size", "Maximum fragment size", 0x42, AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM}, { "ism_lookahead", "Number of lookahead entries for ISM files", 0x42, AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM}, { NULL }, }
enum PixelFormat pix_fmt |
uint32_t tag |
Definition at line 711 of file movenc.c.
Referenced by aac_encode_frame(), add_input_streams(), aiff_read_header(), ape_read_header(), asf_write_header1(), au_read_header(), av_codec_get_tag(), av_dict_set(), av_find_info_tag(), avi_load_index(), avi_read_header(), avi_read_idx1(), avi_read_nikon(), avi_write_header(), avi_write_idx1(), avi_write_ix(), avi_write_packet(), compact_show_tags(), copy_tag(), decode_frame(), default_show_tags(), dxa_read_header(), ff_id3v2_parse(), 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(), ipod_get_codec_tag(), json_show_tags(), lz_unpack(), main(), matroska_convert_tags(), mkv_write_codecprivate(), mkv_write_header(), mkv_write_simpletag(), mkv_write_tag(), mkv_write_tracks(), mmf_read_header(), mov_find_codec_tag(), mov_get_codec_tag(), mov_get_dv_codec_tag(), mov_get_rawvideo_codec_tag(), mov_probe(), 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_mp4_descr(), pmt_cb(), process_line(), put_swf_end_tag(), qcp_read_packet(), qt_rtp_parse_packet(), rdt_load_mdpr(), read_header(), rm_read_header(), rv10_write_header(), siff_probe(), siff_read_header(), smjpeg_write_header(), sol_read_header(), srt_to_ass(), swf_read_header(), swf_read_packet(), tiff_decode_tag(), write_table_entries_attrib(), write_table_redirector_legacy_attrib(), wv_read_block_header(), xan_decode_frame(), xml_show_tags(), xwma_read_header(), and yop_decode_frame().