150 uint8_t default_is_protected = 0;
151 uint8_t default_per_sample_iv_size = 0;
153 std::vector<uint8_t> default_kid = std::vector<uint8_t>(16, 0);
156 uint8_t default_crypt_byte_block = 0;
157 uint8_t default_skip_byte_block = 0;
161 std::vector<uint8_t> default_constant_iv;
191 enum TrackHeaderFlags {
192 kTrackEnabled = 0x000001,
193 kTrackInMovie = 0x000002,
194 kTrackInPreview = 0x000004,
199 uint64_t creation_time = 0;
200 uint64_t modification_time = 0;
201 uint32_t track_id = 0;
202 uint64_t duration = 0;
204 int16_t alternate_group = 0;
277 FourCC color_parameter_type = FOURCC_NULL;
278 uint16_t color_primaries = 1;
279 uint16_t transfer_characteristics = 1;
280 uint16_t matrix_coefficients = 1;
281 uint8_t video_full_range_flag = 0;
282 std::vector<uint8_t> raw_box;
296 FourCC GetActualFormat()
const {
297 return format == FOURCC_encv ? sinf.format.format : format;
300 FourCC GetCodecConfigurationBoxType(FourCC l_format)
const;
303 std::vector<uint8_t> ExtraCodecConfigsAsVector()
const;
305 bool ParseExtraCodecConfigsVector(
const std::vector<uint8_t>& data);
308 bool HaveDolbyVisionConfig()
const;
309 bool HaveLHEVCConfig()
const;
311 FourCC format = FOURCC_NULL;
314 uint16_t data_reference_index = 1u;
316 uint16_t height = 0u;
324 std::vector<CodecConfiguration> extra_codec_configs;
562 uint32_t ComputeSize()
const;
564 uint8_t is_protected = 0u;
565 uint8_t per_sample_iv_size = 0u;
566 std::vector<uint8_t> key_id;
569 uint8_t crypt_byte_block = 0u;
570 uint8_t skip_byte_block = 0u;
573 std::vector<uint8_t> constant_iv;
598 enum GroupDescriptionIndexBase {
599 kTrackGroupDescriptionIndexBase = 0,
600 kTrackFragmentGroupDescriptionIndexBase = 0x10000,
603 uint32_t sample_count = 0u;
604 uint32_t group_description_index = 0u;
759 enum TrackFragmentFlagsMasks {
760 kBaseDataOffsetPresentMask = 0x000001,
761 kSampleDescriptionIndexPresentMask = 0x000002,
762 kDefaultSampleDurationPresentMask = 0x000008,
763 kDefaultSampleSizePresentMask = 0x000010,
764 kDefaultSampleFlagsPresentMask = 0x000020,
765 kDurationIsEmptyMask = 0x010000,
766 kDefaultBaseIsMoofMask = 0x020000,
769 enum SampleFlagsMasks {
771 kReservedMask = 0xFC000000,
772 kSampleDependsOnMask = 0x03000000,
773 kSampleIsDependedOnMask = 0x00C00000,
774 kSampleHasRedundancyMask = 0x00300000,
775 kSamplePaddingValueMask = 0x000E0000,
776 kNonKeySampleMask = 0x00010000,
777 kSampleDegradationPriorityMask = 0x0000FFFF,
782 uint32_t track_id = 0u;
783 uint32_t sample_description_index = 0u;
784 uint32_t default_sample_duration = 0u;
785 uint32_t default_sample_size = 0u;
786 uint32_t default_sample_flags = 0u;
790 enum TrackFragmentFlagsMasks {
791 kDataOffsetPresentMask = 0x000001,
792 kFirstSampleFlagsPresentMask = 0x000004,
793 kSampleDurationPresentMask = 0x000100,
794 kSampleSizePresentMask = 0x000200,
795 kSampleFlagsPresentMask = 0x000400,
796 kSampleCompTimeOffsetsPresentMask = 0x000800,
801 uint32_t sample_count = 0u;
802 uint32_t data_offset = 0u;
803 std::vector<uint32_t> sample_flags;
804 std::vector<uint32_t> sample_sizes;
805 std::vector<uint32_t> sample_durations;
806 std::vector<int64_t> sample_composition_time_offsets;
842 bool reference_type =
false;
843 uint32_t referenced_size = 0u;
844 uint32_t subsegment_duration = 0u;
845 bool starts_with_sap =
false;
846 SAPType sap_type = TypeUnknown;
847 uint32_t sap_delta_time = 0u;
850 uint64_t earliest_presentation_time = 0u;