* Here we just use what is needed to read the chunks
*/
-typedef struct {
+typedef struct MOVStts {
int count;
int duration;
} MOVStts;
-typedef struct {
+typedef struct MOVStsc {
int first;
int count;
int id;
} MOVStsc;
-typedef struct {
+typedef struct MOVDref {
uint32_t type;
char *path;
char *dir;
int16_t nlvl_to, nlvl_from;
} MOVDref;
-typedef struct {
+typedef struct MOVAtom {
uint32_t type;
int64_t size; /* total size (excluding the size and type fields) */
} MOVAtom;
struct MOVParseTableEntry;
-typedef struct {
+typedef struct MOVFragment {
unsigned track_id;
uint64_t base_data_offset;
uint64_t moof_offset;
unsigned flags;
} MOVFragment;
-typedef struct {
+typedef struct MOVTrackExt {
unsigned track_id;
unsigned stsd_id;
unsigned duration;
unsigned flags;
} MOVTrackExt;
+typedef struct MOVSbgp {
+ unsigned int count;
+ unsigned int index;
+} MOVSbgp;
+
typedef struct MOVStreamContext {
AVIOContext *pb;
int ffindex; ///< AVStream index
uint32_t tmcd_flags; ///< tmcd track flags
int64_t track_end; ///< used for dts generation in fragmented movie files
int start_pad; ///< amount of samples to skip due to enc-dec delay
+ unsigned int rap_group_count;
+ MOVSbgp *rap_group;
} MOVStreamContext;
typedef struct MOVContext {
int itunes_metadata; ///< metadata are itunes style
int chapter_track;
int use_absolute_path;
+ int ignore_editlist;
int64_t next_root_atom; ///< offset of the next root atom
} MOVContext;
enum AVCodecID ff_mov_get_lpcm_codec_id(int bps, int flags);
int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries);
-int ff_mov_read_chan(AVFormatContext *s, AVStream *st, int64_t size);
void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout);
#endif /* AVFORMAT_ISOM_H */