diff --git a/gst/isomp4/atoms.h b/gst/isomp4/atoms.h index 1f0c59d1da..f8789e4706 100644 --- a/gst/isomp4/atoms.h +++ b/gst/isomp4/atoms.h @@ -612,7 +612,8 @@ enum TfFlags TF_DEFAULT_SAMPLE_DURATION = 0x08, /* default-sample-duration-present */ TF_DEFAULT_SAMPLE_SIZE = 0x010, /* default-sample-size-present */ TF_DEFAULT_SAMPLE_FLAGS = 0x020, /* default-sample-flags-present */ - TF_DURATION_IS_EMPTY = 0x010000 /* sample-composition-time-offsets-presents */ + TF_DURATION_IS_EMPTY = 0x010000, /* sample-composition-time-offsets-presents */ + TF_DEFAULT_BASE_IS_MOOF = 0x020000 /* default-base-is-moof */ }; typedef struct _AtomTRAK diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 6a52021d42..bef2427e8d 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -2879,6 +2879,9 @@ qtdemux_parse_tfhd (GstQTDemux * qtdemux, GstByteReader * tfhd, if (G_UNLIKELY (!*stream)) goto unknown_stream; + if (flags & TF_DEFAULT_BASE_IS_MOOF) + *base_offset = qtdemux->moof_offset; + if (flags & TF_BASE_DATA_OFFSET) if (!gst_byte_reader_get_uint64_be (tfhd, (guint64 *) base_offset)) goto invalid_track; diff --git a/gst/isomp4/qtdemux_types.h b/gst/isomp4/qtdemux_types.h index 57ab4f0968..43ef77c3a0 100644 --- a/gst/isomp4/qtdemux_types.h +++ b/gst/isomp4/qtdemux_types.h @@ -62,7 +62,8 @@ enum TfFlags TF_DEFAULT_SAMPLE_DURATION = 0x000008, /* default-sample-duration-present */ TF_DEFAULT_SAMPLE_SIZE = 0x000010, /* default-sample-size-present */ TF_DEFAULT_SAMPLE_FLAGS = 0x000020, /* default-sample-flags-present */ - TF_DURATION_IS_EMPTY = 0x100000 /* duration-is-empty */ + TF_DURATION_IS_EMPTY = 0x010000, /* duration-is-empty */ + TF_DEFAULT_BASE_IS_MOOF = 0x020000 /* default-base-is-moof */ }; enum TrFlags