147 uint8_t default_is_protected = 0;
148 uint8_t default_per_sample_iv_size = 0;
150 std::vector<uint8_t> default_kid = std::vector<uint8_t>(16, 0);
153 uint8_t default_crypt_byte_block = 0;
154 uint8_t default_skip_byte_block = 0;
158 std::vector<uint8_t> default_constant_iv;
188 enum TrackHeaderFlags {
189 kTrackEnabled = 0x000001,
190 kTrackInMovie = 0x000002,
191 kTrackInPreview = 0x000004,
196 uint64_t creation_time = 0;
197 uint64_t modification_time = 0;
198 uint32_t track_id = 0;
199 uint64_t duration = 0;
201 int16_t alternate_group = 0;
274 FourCC color_parameter_type = FOURCC_NULL;
275 uint16_t color_primaries = 1;
276 uint16_t transfer_characteristics = 1;
277 uint16_t matrix_coefficients = 1;
278 uint8_t video_full_range_flag = 0;
279 std::vector<uint8_t> raw_box;
293 FourCC GetActualFormat()
const {
294 return format == FOURCC_encv ? sinf.format.format : format;
297 FourCC GetCodecConfigurationBoxType(FourCC l_format)
const;
300 std::vector<uint8_t> ExtraCodecConfigsAsVector()
const;
302 bool ParseExtraCodecConfigsVector(
const std::vector<uint8_t>& data);
304 FourCC format = FOURCC_NULL;
307 uint16_t data_reference_index = 1u;
309 uint16_t height = 0u;
317 std::vector<CodecConfiguration> extra_codec_configs;
555 uint32_t ComputeSize()
const;
557 uint8_t is_protected = 0u;
558 uint8_t per_sample_iv_size = 0u;
559 std::vector<uint8_t> key_id;
562 uint8_t crypt_byte_block = 0u;
563 uint8_t skip_byte_block = 0u;
566 std::vector<uint8_t> constant_iv;
591 enum GroupDescriptionIndexBase {
592 kTrackGroupDescriptionIndexBase = 0,
593 kTrackFragmentGroupDescriptionIndexBase = 0x10000,
596 uint32_t sample_count = 0u;
597 uint32_t group_description_index = 0u;
752 enum TrackFragmentFlagsMasks {
753 kBaseDataOffsetPresentMask = 0x000001,
754 kSampleDescriptionIndexPresentMask = 0x000002,
755 kDefaultSampleDurationPresentMask = 0x000008,
756 kDefaultSampleSizePresentMask = 0x000010,
757 kDefaultSampleFlagsPresentMask = 0x000020,
758 kDurationIsEmptyMask = 0x010000,
759 kDefaultBaseIsMoofMask = 0x020000,
762 enum SampleFlagsMasks {
764 kReservedMask = 0xFC000000,
765 kSampleDependsOnMask = 0x03000000,
766 kSampleIsDependedOnMask = 0x00C00000,
767 kSampleHasRedundancyMask = 0x00300000,
768 kSamplePaddingValueMask = 0x000E0000,
769 kNonKeySampleMask = 0x00010000,
770 kSampleDegradationPriorityMask = 0x0000FFFF,
775 uint32_t track_id = 0u;
776 uint32_t sample_description_index = 0u;
777 uint32_t default_sample_duration = 0u;
778 uint32_t default_sample_size = 0u;
779 uint32_t default_sample_flags = 0u;
783 enum TrackFragmentFlagsMasks {
784 kDataOffsetPresentMask = 0x000001,
785 kFirstSampleFlagsPresentMask = 0x000004,
786 kSampleDurationPresentMask = 0x000100,
787 kSampleSizePresentMask = 0x000200,
788 kSampleFlagsPresentMask = 0x000400,
789 kSampleCompTimeOffsetsPresentMask = 0x000800,
794 uint32_t sample_count = 0u;
795 uint32_t data_offset = 0u;
796 std::vector<uint32_t> sample_flags;
797 std::vector<uint32_t> sample_sizes;
798 std::vector<uint32_t> sample_durations;
799 std::vector<int64_t> sample_composition_time_offsets;
835 bool reference_type =
false;
836 uint32_t referenced_size = 0u;
837 uint32_t subsegment_duration = 0u;
838 bool starts_with_sap =
false;
839 SAPType sap_type = TypeUnknown;
840 uint32_t sap_delta_time = 0u;
843 uint64_t earliest_presentation_time = 0u;