unsigned track_id;
uint64_t base_data_offset;
uint64_t moof_offset;
+ uint64_t implicit_offset;
unsigned stsd_id;
unsigned duration;
unsigned size;
int64_t track_end; ///< used for dts generation in fragmented movie files
unsigned int rap_group_count;
MOVSbgp *rap_group;
+
+ int32_t *display_matrix;
} MOVStreamContext;
typedef struct MOVContext {
#define MOV_TFHD_DEFAULT_SIZE 0x10
#define MOV_TFHD_DEFAULT_FLAGS 0x20
#define MOV_TFHD_DURATION_IS_EMPTY 0x010000
+#define MOV_TFHD_DEFAULT_BASE_IS_MOOF 0x020000
#define MOV_TRUN_DATA_OFFSET 0x01
#define MOV_TRUN_FIRST_SAMPLE_FLAGS 0x04
#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO 0x02000000
#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES 0x01000000
-int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb, MOVAtom atom);
+#define MOV_TKHD_FLAG_ENABLED 0x0001
+#define MOV_TKHD_FLAG_IN_MOVIE 0x0002
+#define MOV_TKHD_FLAG_IN_PREVIEW 0x0004
+#define MOV_TKHD_FLAG_IN_POSTER 0x0008
+
+#define TAG_IS_AVCI(tag) \
+ ((tag) == MKTAG('a', 'i', '5', 'p') || \
+ (tag) == MKTAG('a', 'i', '5', 'q') || \
+ (tag) == MKTAG('a', 'i', '5', '2') || \
+ (tag) == MKTAG('a', 'i', '5', '3') || \
+ (tag) == MKTAG('a', 'i', '5', '5') || \
+ (tag) == MKTAG('a', 'i', '5', '6') || \
+ (tag) == MKTAG('a', 'i', '1', 'p') || \
+ (tag) == MKTAG('a', 'i', '1', 'q') || \
+ (tag) == MKTAG('a', 'i', '1', '2') || \
+ (tag) == MKTAG('a', 'i', '1', '3') || \
+ (tag) == MKTAG('a', 'i', '1', '5') || \
+ (tag) == MKTAG('a', 'i', '1', '6') || \
+ (tag) == MKTAG('A', 'V', 'i', 'n'))
+
+
+int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb);
enum AVCodecID ff_mov_get_lpcm_codec_id(int bps, int flags);
int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries);