diff options
Diffstat (limited to 'libavformat/movenc.h')
-rw-r--r-- | libavformat/movenc.h | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/libavformat/movenc.h b/libavformat/movenc.h index a61cfad273..75d7782a6d 100644 --- a/libavformat/movenc.h +++ b/libavformat/movenc.h @@ -4,20 +4,20 @@ * Copyright (c) 2004 Gildas Bazin <gbazin at videolan dot org> * Copyright (c) 2009 Baptiste Coudurier <baptiste dot coudurier at gmail dot com> * - * This file is part of Libav. + * This file is part of FFmpeg. * - * Libav is free software; you can redistribute it and/or + * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * - * Libav is distributed in the hope that it will be useful, + * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with Libav; if not, write to the Free Software + * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -36,7 +36,7 @@ #define MODE_MOV 0x02 #define MODE_3GP 0x04 #define MODE_PSP 0x08 // example working PSP command line: -// avconv -i testinput.avi -f psp -r 14.985 -s 320x240 -b 768 -ar 24000 -ab 32 M4V00001.MP4 +// ffmpeg -i testinput.avi -f psp -r 14.985 -s 320x240 -b 768 -ar 24000 -ab 32 M4V00001.MP4 #define MODE_3G2 0x10 #define MODE_IPOD 0x20 #define MODE_ISM 0x40 @@ -47,6 +47,7 @@ typedef struct MOVIentry { int64_t dts; unsigned int size; unsigned int samples_in_chunk; + unsigned int chunkNum; ///< Chunk number if the current entry is a chunk start otherwise 0 unsigned int entries; int cts; #define MOV_SYNC_SAMPLE 0x0001 @@ -82,18 +83,25 @@ typedef struct MOVTrack { unsigned timescale; uint64_t time; int64_t track_duration; + int last_sample_is_subtitle_end; long sample_count; long sample_size; + long chunkCount; int has_keyframes; #define MOV_TRACK_CTTS 0x0001 #define MOV_TRACK_STPS 0x0002 #define MOV_TRACK_ENABLED 0x0004 uint32_t flags; +#define MOV_TIMECODE_FLAG_DROPFRAME 0x0001 +#define MOV_TIMECODE_FLAG_24HOURSMAX 0x0002 +#define MOV_TIMECODE_FLAG_ALLOWNEGATIVE 0x0004 + uint32_t timecode_flags; int language; int track_id; int tag; ///< stsd fourcc AVStream *st; AVCodecContext *enc; + int multichannel_as_mono; int vos_len; uint8_t *vos_data; @@ -108,7 +116,7 @@ typedef struct MOVTrack { int64_t end_pts; int hint_track; ///< the track that hints this track, -1 if no hint track is set - int src_track; ///< the track that this hint track describes + int src_track; ///< the track that this hint (or tmcd) track describes AVFormatContext *rtp_ctx; ///< the format context for the hinting rtp muxer uint32_t prev_rtp_ts; int64_t cur_rtp_ts_unwrapped; @@ -139,6 +147,8 @@ typedef struct MOVTrack { int packet_entry; int slices; } vc1_info; + + void *eac3_priv; } MOVTrack; typedef struct MOVMuxContext { @@ -146,6 +156,7 @@ typedef struct MOVMuxContext { int mode; int64_t time; int nb_streams; + int nb_meta_tmcd; ///< number of new created tmcd track based on metadata (aka not data copy) int chapter_track; ///< qt chapter track number int64_t mdat_pos; uint64_t mdat_size; @@ -153,6 +164,7 @@ typedef struct MOVMuxContext { int flags; int rtp_flags; + int iods_skip; int iods_video_profile; int iods_audio_profile; @@ -166,6 +178,9 @@ typedef struct MOVMuxContext { AVIOContext *mdat_buf; int first_trun; + int video_track_timescale; + + int reserved_moov_size; ///< 0 for disabled, -1 for automatic, size otherwise int64_t reserved_moov_pos; char *major_brand; @@ -174,6 +189,8 @@ typedef struct MOVMuxContext { AVFormatContext *fc; int use_editlist; + float gamma; + int frag_interleave; int missing_duration_warned; } MOVMuxContext; @@ -192,6 +209,8 @@ typedef struct MOVMuxContext { #define FF_MOV_FLAG_DASH (1 << 11) #define FF_MOV_FLAG_FRAG_DISCONT (1 << 12) #define FF_MOV_FLAG_DELAY_MOOV (1 << 13) +#define FF_MOV_FLAG_WRITE_COLR (1 << 14) +#define FF_MOV_FLAG_WRITE_GAMA (1 << 15) int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt); |