diff --git a/docs/annotated.html b/docs/annotated.html index 3f8ac666ac..367144eb7d 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -361,7 +361,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/classes.html b/docs/classes.html index 2f7aae83ec..9136897564 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/d0/d03/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter.html b/docs/d0/d03/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter.html index 4e6ee44d82..148ac3ccc4 100644 --- a/docs/d0/d03/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter.html +++ b/docs/d0/d03/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter.html @@ -290,7 +290,7 @@ double cluster_length_sec< diff --git a/docs/d0/d06/mpd__flags_8cc_source.html b/docs/d0/d06/mpd__flags_8cc_source.html index 175a80d757..0df86e452d 100644 --- a/docs/d0/d06/mpd__flags_8cc_source.html +++ b/docs/d0/d06/mpd__flags_8cc_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html b/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html index c4a3c6a9b4..146265ac9b 100644 --- a/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html +++ b/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d0e/muxer__options_8h_source.html b/docs/d0/d0e/muxer__options_8h_source.html index 2e5f844603..fea6c44a19 100644 --- a/docs/d0/d0e/muxer__options_8h_source.html +++ b/docs/d0/d0e/muxer__options_8h_source.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html b/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html index 7866f1e302..e787b8eb3c 100644 --- a/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html +++ b/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html b/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html index d967f173b1..ebf5fdd3be 100644 --- a/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html +++ b/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html b/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html index 384c26657d..f0ae7bea04 100644 --- a/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html +++ b/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html b/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html index a51838ceef..c2292bfa3b 100644 --- a/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html +++ b/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d2c/classedash__packager_1_1media_1_1H26xByteToUnitStreamConverter-members.html b/docs/d0/d2c/classedash__packager_1_1media_1_1H26xByteToUnitStreamConverter-members.html index 8c1be59744..fd72753706 100644 --- a/docs/d0/d2c/classedash__packager_1_1media_1_1H26xByteToUnitStreamConverter-members.html +++ b/docs/d0/d2c/classedash__packager_1_1media_1_1H26xByteToUnitStreamConverter-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d30/mock__mpd__notifier_8h_source.html b/docs/d0/d30/mock__mpd__notifier_8h_source.html index d31e87395e..24f16b3b29 100644 --- a/docs/d0/d30/mock__mpd__notifier_8h_source.html +++ b/docs/d0/d30/mock__mpd__notifier_8h_source.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d32/mp2t__common_8h_source.html b/docs/d0/d32/mp2t__common_8h_source.html index 8a5cb34828..cf026eb4fb 100644 --- a/docs/d0/d32/mp2t__common_8h_source.html +++ b/docs/d0/d32/mp2t__common_8h_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d35/es__descriptor_8cc_source.html b/docs/d0/d35/es__descriptor_8cc_source.html index 264e44d98a..8bea634ddb 100644 --- a/docs/d0/d35/es__descriptor_8cc_source.html +++ b/docs/d0/d35/es__descriptor_8cc_source.html @@ -286,7 +286,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d3a/classedash__packager_1_1media_1_1SeekHead-members.html b/docs/d0/d3a/classedash__packager_1_1media_1_1SeekHead-members.html index d4c9d6c4d8..41bbbec301 100644 --- a/docs/d0/d3a/classedash__packager_1_1media_1_1SeekHead-members.html +++ b/docs/d0/d3a/classedash__packager_1_1media_1_1SeekHead-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html b/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html index be5e50e8fb..855f8cdac3 100644 --- a/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html +++ b/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d3a/webm__constants_8h_source.html b/docs/d0/d3a/webm__constants_8h_source.html index 5fc370e108..cb05b17e9f 100644 --- a/docs/d0/d3a/webm__constants_8h_source.html +++ b/docs/d0/d3a/webm__constants_8h_source.html @@ -313,7 +313,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d42/aes__cryptor_8h_source.html b/docs/d0/d42/aes__cryptor_8h_source.html index 3931f8a94f..10d5663ccf 100644 --- a/docs/d0/d42/aes__cryptor_8h_source.html +++ b/docs/d0/d42/aes__cryptor_8h_source.html @@ -186,7 +186,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d42/widevine__encryption__flags_8cc_source.html b/docs/d0/d42/widevine__encryption__flags_8cc_source.html index f35a748eb9..25355f0cdf 100644 --- a/docs/d0/d42/widevine__encryption__flags_8cc_source.html +++ b/docs/d0/d42/widevine__encryption__flags_8cc_source.html @@ -258,7 +258,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d46/fourccs_8h_source.html b/docs/d0/d46/fourccs_8h_source.html index 7518a6a578..313a6ab350 100644 --- a/docs/d0/d46/fourccs_8h_source.html +++ b/docs/d0/d46/fourccs_8h_source.html @@ -239,7 +239,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html b/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html index 8d3eb6ea3c..0d75608c23 100644 --- a/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html +++ b/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html @@ -224,7 +224,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html b/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html index 112c2993a6..e03b6d47e3 100644 --- a/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html +++ b/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d4c/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox-members.html b/docs/d0/d4c/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox-members.html index 7bc7310019..076d7d6759 100644 --- a/docs/d0/d4c/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox-members.html +++ b/docs/d0/d4c/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d4e/libcrypto__threading_8cc_source.html b/docs/d0/d4e/libcrypto__threading_8cc_source.html index 11d43ad49c..586fbde1ad 100644 --- a/docs/d0/d4e/libcrypto__threading_8cc_source.html +++ b/docs/d0/d4e/libcrypto__threading_8cc_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d53/classedash__packager_1_1media_1_1AesPatternCryptor-members.html b/docs/d0/d53/classedash__packager_1_1media_1_1AesPatternCryptor-members.html index 517f30fd44..fab9fc5421 100644 --- a/docs/d0/d53/classedash__packager_1_1media_1_1AesPatternCryptor-members.html +++ b/docs/d0/d53/classedash__packager_1_1media_1_1AesPatternCryptor-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d5b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html b/docs/d0/d5b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html index fbb9ba0aff..3dae98a2ec 100644 --- a/docs/d0/d5b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html +++ b/docs/d0/d5b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d65/structedash__packager_1_1media_1_1mp4_1_1AC3Specific.html b/docs/d0/d65/structedash__packager_1_1media_1_1mp4_1_1AC3Specific.html index e5ed439a4b..29f0e8ca50 100644 --- a/docs/d0/d65/structedash__packager_1_1media_1_1mp4_1_1AC3Specific.html +++ b/docs/d0/d65/structedash__packager_1_1media_1_1mp4_1_1AC3Specific.html @@ -136,7 +136,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 310 of file box_definitions.h.

+

Definition at line 317 of file box_definitions.h.

Member Function Documentation

@@ -162,7 +162,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1411 of file box_definitions.cc.

+

Definition at line 1443 of file box_definitions.cc.

@@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html b/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html index 7c4a4c0ee3..6e57dabed7 100644 --- a/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html +++ b/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d7d/decryptor__source_8h_source.html b/docs/d0/d7d/decryptor__source_8h_source.html index d6b9c13604..a06959187e 100644 --- a/docs/d0/d7d/decryptor__source_8h_source.html +++ b/docs/d0/d7d/decryptor__source_8h_source.html @@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d86/classedash__packager_1_1media_1_1FixedKeySource.html b/docs/d0/d86/classedash__packager_1_1media_1_1FixedKeySource.html index f98480bd73..ef229edd87 100644 --- a/docs/d0/d86/classedash__packager_1_1media_1_1FixedKeySource.html +++ b/docs/d0/d86/classedash__packager_1_1media_1_1FixedKeySource.html @@ -479,7 +479,7 @@ Additional Inherited Members diff --git a/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html b/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html index e07f220185..605e155613 100644 --- a/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html +++ b/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html @@ -120,7 +120,7 @@ std::vector< uint8_t >  diff --git a/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html b/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html index aeb221aad2..56c4fa8ffb 100644 --- a/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html +++ b/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html @@ -145,7 +145,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 579 of file box_definitions.h.

+

Definition at line 586 of file box_definitions.h.

Member Function Documentation

@@ -171,7 +171,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1927 of file box_definitions.cc.

+

Definition at line 1959 of file box_definitions.cc.

@@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html b/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html index 897b54627f..81631156d7 100644 --- a/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html +++ b/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html b/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html index e976470b76..a1a9a88d15 100644 --- a/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html +++ b/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html @@ -123,7 +123,7 @@ std::vector< diff --git a/docs/d0/d96/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html b/docs/d0/d96/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html index 7427d7d6d4..8d14478483 100644 --- a/docs/d0/d96/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html +++ b/docs/d0/d96/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html b/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html index 60c0d05b29..105e0249a7 100644 --- a/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html +++ b/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/da6/stream__descriptor_8cc_source.html b/docs/d0/da6/stream__descriptor_8cc_source.html index 7a5df5073e..ef80db1fc8 100644 --- a/docs/d0/da6/stream__descriptor_8cc_source.html +++ b/docs/d0/da6/stream__descriptor_8cc_source.html @@ -243,7 +243,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/da9/classedash__packager_1_1MockRepresentation.html b/docs/d0/da9/classedash__packager_1_1MockRepresentation.html index 82cf783af8..74a322b7a1 100644 --- a/docs/d0/da9/classedash__packager_1_1MockRepresentation.html +++ b/docs/d0/da9/classedash__packager_1_1MockRepresentation.html @@ -160,7 +160,7 @@ Additional Inherited Members diff --git a/docs/d0/da9/classedash__packager_1_1media_1_1webm_1_1WebMMuxer-members.html b/docs/d0/da9/classedash__packager_1_1media_1_1webm_1_1WebMMuxer-members.html index f302c502df..2e176a80ad 100644 --- a/docs/d0/da9/classedash__packager_1_1media_1_1webm_1_1WebMMuxer-members.html +++ b/docs/d0/da9/classedash__packager_1_1media_1_1webm_1_1WebMMuxer-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html b/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html index ac05673096..738771db26 100644 --- a/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html +++ b/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/db7/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific.html b/docs/d0/db7/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific.html index eef9adf20b..fbd6a6d7b8 100644 --- a/docs/d0/db7/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific.html +++ b/docs/d0/db7/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific.html @@ -148,7 +148,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 300 of file box_definitions.h.

+

Definition at line 307 of file box_definitions.h.

Member Function Documentation

@@ -174,7 +174,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1378 of file box_definitions.cc.

+

Definition at line 1410 of file box_definitions.cc.

@@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html b/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html index d1511c439b..c20e8aabaf 100644 --- a/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html +++ b/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html b/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html index 04a63e0c29..9c82157b9f 100644 --- a/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html +++ b/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dd6/webm__crypto__helpers_8cc_source.html b/docs/d0/dd6/webm__crypto__helpers_8cc_source.html index 97a3bd7602..aa97f6cbe8 100644 --- a/docs/d0/dd6/webm__crypto__helpers_8cc_source.html +++ b/docs/d0/dd6/webm__crypto__helpers_8cc_source.html @@ -156,7 +156,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html b/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html index efe914224b..c9a2e28956 100644 --- a/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html +++ b/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html @@ -112,7 +112,7 @@ void operator() ( diff --git a/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html b/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html index eca25950ec..2610ce1b0a 100644 --- a/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html +++ b/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html b/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html index 3a194ccbd6..a91e3450eb 100644 --- a/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html +++ b/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html b/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html index 4c9e2d84d3..065629254f 100644 --- a/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html +++ b/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html @@ -123,7 +123,7 @@ std::vector< uint8_t >  diff --git a/docs/d0/de8/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox-members.html b/docs/d0/de8/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox-members.html index a7fce82e10..4c37a0eeea 100644 --- a/docs/d0/de8/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox-members.html +++ b/docs/d0/de8/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html b/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html index 75eb83b9eb..3a69d6da45 100644 --- a/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html +++ b/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dee/segmenter__test__base_8h_source.html b/docs/d0/dee/segmenter__test__base_8h_source.html index e5aa825e30..c568b7e647 100644 --- a/docs/d0/dee/segmenter__test__base_8h_source.html +++ b/docs/d0/dee/segmenter__test__base_8h_source.html @@ -215,7 +215,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/df3/packager__util_8cc_source.html b/docs/d0/df3/packager__util_8cc_source.html index 5350eb1210..634f1a0906 100644 --- a/docs/d0/df3/packager__util_8cc_source.html +++ b/docs/d0/df3/packager__util_8cc_source.html @@ -332,7 +332,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html b/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html index 0d646ff6ae..7d77c7dae9 100644 --- a/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html +++ b/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html b/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html index 13ec18c05a..d57725c20e 100644 --- a/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html +++ b/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html @@ -116,7 +116,7 @@ scoped_refptr< diff --git a/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html b/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html index e5540b8a51..c19a69740e 100644 --- a/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html +++ b/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html @@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d13/status_8h_source.html b/docs/d1/d13/status_8h_source.html index 39de73d000..d3b416fb63 100644 --- a/docs/d1/d13/status_8h_source.html +++ b/docs/d1/d13/status_8h_source.html @@ -239,7 +239,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html b/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html index 6ca22c15cc..42be0c8172 100644 --- a/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html +++ b/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d1c/two__pass__single__segment__segmenter_8cc_source.html b/docs/d1/d1c/two__pass__single__segment__segmenter_8cc_source.html index 3cda1eebb3..db6953d820 100644 --- a/docs/d1/d1c/two__pass__single__segment__segmenter_8cc_source.html +++ b/docs/d1/d1c/two__pass__single__segment__segmenter_8cc_source.html @@ -275,7 +275,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d1d/muxer__flags_8cc_source.html b/docs/d1/d1d/muxer__flags_8cc_source.html index 5a70fd35a5..4dcac9f97d 100644 --- a/docs/d1/d1d/muxer__flags_8cc_source.html +++ b/docs/d1/d1d/muxer__flags_8cc_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d27/key__fetcher_8h_source.html b/docs/d1/d27/key__fetcher_8h_source.html index a04ae27b28..5f2691f9c5 100644 --- a/docs/d1/d27/key__fetcher_8h_source.html +++ b/docs/d1/d27/key__fetcher_8h_source.html @@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html b/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html index 59a05f5f91..64a58ebc3a 100644 --- a/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html +++ b/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html b/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html index d82b888c27..bdb038ed55 100644 --- a/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html +++ b/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d2a/decryptor__source_8cc_source.html b/docs/d1/d2a/decryptor__source_8cc_source.html index 3c417f3eb3..46e439b6b3 100644 --- a/docs/d1/d2a/decryptor__source_8cc_source.html +++ b/docs/d1/d2a/decryptor__source_8cc_source.html @@ -191,7 +191,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html b/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html index 8fb269dce5..b3687ce668 100644 --- a/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html +++ b/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d2f/webvtt__media__parser_8cc_source.html b/docs/d1/d2f/webvtt__media__parser_8cc_source.html index df8f83982d..7c5f1c6b79 100644 --- a/docs/d1/d2f/webvtt__media__parser_8cc_source.html +++ b/docs/d1/d2f/webvtt__media__parser_8cc_source.html @@ -491,7 +491,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html b/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html index e00ee8a5ac..8fbbb570fc 100644 --- a/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html +++ b/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html @@ -139,7 +139,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 260 of file box_definitions.h.

+

Definition at line 267 of file box_definitions.h.

Member Function Documentation

@@ -165,7 +165,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1191 of file box_definitions.cc.

+

Definition at line 1223 of file box_definitions.cc.

@@ -176,7 +176,7 @@ Additional Inherited Members diff --git a/docs/d1/d37/es__parser__h264_8h_source.html b/docs/d1/d37/es__parser__h264_8h_source.html index 3e936fc124..fa6ebd0a17 100644 --- a/docs/d1/d37/es__parser__h264_8h_source.html +++ b/docs/d1/d37/es__parser__h264_8h_source.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html b/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html index 962f4a4bf5..d8d6968355 100644 --- a/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html +++ b/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d3b/mpd__generator__flags_8h_source.html b/docs/d1/d3b/mpd__generator__flags_8h_source.html index cfb0fc20b4..e4236c1487 100644 --- a/docs/d1/d3b/mpd__generator__flags_8h_source.html +++ b/docs/d1/d3b/mpd__generator__flags_8h_source.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d45/decoding__time__iterator_8cc_source.html b/docs/d1/d45/decoding__time__iterator_8cc_source.html index d308d1d82b..eb545317b8 100644 --- a/docs/d1/d45/decoding__time__iterator_8cc_source.html +++ b/docs/d1/d45/decoding__time__iterator_8cc_source.html @@ -163,12 +163,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
bool IsValid() const
bool AdvanceSample()
uint32_t NumSamples() const
-
+
uint64_t Duration(uint32_t start_sample, uint32_t end_sample) const
diff --git a/docs/d1/d48/text__track__config_8h_source.html b/docs/d1/d48/text__track__config_8h_source.html index f1fc81176c..bc4dc14b48 100644 --- a/docs/d1/d48/text__track__config_8h_source.html +++ b/docs/d1/d48/text__track__config_8h_source.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html b/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html index 93dc98f234..92bd12b93d 100644 --- a/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html +++ b/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html @@ -145,7 +145,7 @@ static const int kPacketSi diff --git a/docs/d1/d5d/structedash__packager_1_1MpdOptions.html b/docs/d1/d5d/structedash__packager_1_1MpdOptions.html index ca710727f8..9b72cbc81e 100644 --- a/docs/d1/d5d/structedash__packager_1_1MpdOptions.html +++ b/docs/d1/d5d/structedash__packager_1_1MpdOptions.html @@ -130,7 +130,7 @@ std::string packager_versi diff --git a/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html b/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html index 55ec2eb2df..ed3dbde030 100644 --- a/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html +++ b/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html @@ -151,7 +151,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 651 of file box_definitions.h.

+

Definition at line 658 of file box_definitions.h.

Member Function Documentation

@@ -177,7 +177,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 2138 of file box_definitions.cc.

+

Definition at line 2170 of file box_definitions.cc.

@@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d1/d70/vp8__parser_8cc_source.html b/docs/d1/d70/vp8__parser_8cc_source.html index e6da3a842c..553fea4b9b 100644 --- a/docs/d1/d70/vp8__parser_8cc_source.html +++ b/docs/d1/d70/vp8__parser_8cc_source.html @@ -293,7 +293,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d72/language__utils_8cc_source.html b/docs/d1/d72/language__utils_8cc_source.html index 0dcb7fe777..5a77eda154 100644 --- a/docs/d1/d72/language__utils_8cc_source.html +++ b/docs/d1/d72/language__utils_8cc_source.html @@ -226,7 +226,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html b/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html index 63cad3eda7..7088dd4b72 100644 --- a/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html +++ b/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio-members.html b/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio-members.html index 9f09ffc073..7061f72c77 100644 --- a/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio-members.html +++ b/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d74/mp2t__media__parser_8cc_source.html b/docs/d1/d74/mp2t__media__parser_8cc_source.html index 809820caf3..64ba0d2004 100644 --- a/docs/d1/d74/mp2t__media__parser_8cc_source.html +++ b/docs/d1/d74/mp2t__media__parser_8cc_source.html @@ -529,7 +529,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html b/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html index 9a2cf60de5..ac53e34984 100644 --- a/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html +++ b/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html b/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html index 36a6d02f28..60afdcd1df 100644 --- a/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html +++ b/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html @@ -179,7 +179,7 @@ FourCC protection_scheme diff --git a/docs/d1/d7d/webm__video__client_8cc_source.html b/docs/d1/d7d/webm__video__client_8cc_source.html index 4269faed83..33cdafba7b 100644 --- a/docs/d1/d7d/webm__video__client_8cc_source.html +++ b/docs/d1/d7d/webm__video__client_8cc_source.html @@ -266,7 +266,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html b/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html index 3de96a9c9f..b5865a6885 100644 --- a/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html +++ b/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html b/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html index 632c6d7415..0cb00048b6 100644 --- a/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html +++ b/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html @@ -157,7 +157,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 719 of file box_definitions.h.

+

Definition at line 733 of file box_definitions.h.

Member Function Documentation

@@ -183,7 +183,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 2343 of file box_definitions.cc.

+

Definition at line 2402 of file box_definitions.cc.

@@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/d1/d82/adts__constants_8h_source.html b/docs/d1/d82/adts__constants_8h_source.html index 69b5a61e5b..c32d1d097d 100644 --- a/docs/d1/d82/adts__constants_8h_source.html +++ b/docs/d1/d82/adts__constants_8h_source.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html b/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html index 28a865d598..2b07a74b1b 100644 --- a/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html +++ b/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html @@ -218,7 +218,7 @@ Static Public Member Functions diff --git a/docs/d1/d86/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader.html b/docs/d1/d86/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader.html index fb62c5616a..397e9fd9aa 100644 --- a/docs/d1/d86/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader.html +++ b/docs/d1/d86/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader.html @@ -138,7 +138,7 @@ uint32_t flags

Detailed Description

-

Definition at line 495 of file box_definitions.h.

+

Definition at line 502 of file box_definitions.h.

Member Function Documentation

@@ -164,7 +164,7 @@ uint32_t flagsImplements edash_packager::media::mp4::Box.

-

Definition at line 1650 of file box_definitions.cc.

+

Definition at line 1682 of file box_definitions.cc.

@@ -175,7 +175,7 @@ uint32_t flags diff --git a/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html b/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html index febb1b111b..b84cd95fb9 100644 --- a/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html +++ b/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d8e/webm__audio__client_8cc_source.html b/docs/d1/d8e/webm__audio__client_8cc_source.html index a211b6d36d..9b7779255a 100644 --- a/docs/d1/d8e/webm__audio__client_8cc_source.html +++ b/docs/d1/d8e/webm__audio__client_8cc_source.html @@ -211,7 +211,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d91/structedash__packager_1_1media_1_1H265SliceHeader-members.html b/docs/d1/d91/structedash__packager_1_1media_1_1H265SliceHeader-members.html index 687ee49daa..0b98ecc813 100644 --- a/docs/d1/d91/structedash__packager_1_1media_1_1H265SliceHeader-members.html +++ b/docs/d1/d91/structedash__packager_1_1media_1_1H265SliceHeader-members.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html b/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html index 52e99cf52b..060cb806fb 100644 --- a/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html +++ b/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html @@ -242,7 +242,7 @@ false if max_offset > diff --git a/docs/d1/d9d/tracks__builder_8h_source.html b/docs/d1/d9d/tracks__builder_8h_source.html index 95aa61f104..9f41502f68 100644 --- a/docs/d1/d9d/tracks__builder_8h_source.html +++ b/docs/d1/d9d/tracks__builder_8h_source.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dc2/h26x__bit__reader_8h_source.html b/docs/d1/dc2/h26x__bit__reader_8h_source.html index 33e44b18bc..596d682d3c 100644 --- a/docs/d1/dc2/h26x__bit__reader_8h_source.html +++ b/docs/d1/dc2/h26x__bit__reader_8h_source.html @@ -192,7 +192,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html b/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html index ffca340fab..a7f22e47ec 100644 --- a/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html +++ b/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dc4/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser-members.html b/docs/d1/dc4/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser-members.html index 8d625b196d..cdb9acd1b5 100644 --- a/docs/d1/dc4/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser-members.html +++ b/docs/d1/dc4/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dcb/encrypting__fragmenter_8h_source.html b/docs/d1/dcb/encrypting__fragmenter_8h_source.html index e7a6c19bfc..22c844129d 100644 --- a/docs/d1/dcb/encrypting__fragmenter_8h_source.html +++ b/docs/d1/dcb/encrypting__fragmenter_8h_source.html @@ -179,13 +179,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
EncryptingFragmenter(scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, FourCC protection_scheme)
Status AddSample(scoped_refptr< MediaSample > sample) override
void FinalizeFragment() override
Finalize and optimize the fragment.
- +
virtual Status PrepareFragmentForEncryption(bool enable_encryption)
virtual void FinalizeFragmentForEncryption()
Finalize current fragment for encryption.
diff --git a/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html b/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html index 3d7c190e4c..d0afdaa5b5 100644 --- a/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html +++ b/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html @@ -171,7 +171,7 @@ Additional Inherited Members

Reimplemented in edash_packager::media::mp4::SegmentType.

-

Definition at line 130 of file box_definitions.cc.

+

Definition at line 133 of file box_definitions.cc.

@@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html b/docs/d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html index ac718956c6..6690724e10 100644 --- a/docs/d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html +++ b/docs/d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html @@ -150,7 +150,7 @@ virtual int64_t  diff --git a/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html b/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html index c613671574..929138f07f 100644 --- a/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html +++ b/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html b/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html index 9f82a284ef..7d20f0cc52 100644 --- a/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html +++ b/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html @@ -156,7 +156,7 @@ Protected Member Functions diff --git a/docs/d1/ddb/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry-members.html b/docs/d1/ddb/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry-members.html index d464a1497d..356ee96b75 100644 --- a/docs/d1/ddb/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry-members.html +++ b/docs/d1/ddb/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html b/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html index 79fe8be789..2bcdbd111c 100644 --- a/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html +++ b/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/de2/composition__offset__iterator_8cc_source.html b/docs/d1/de2/composition__offset__iterator_8cc_source.html index e9273f5785..55bbdf3b12 100644 --- a/docs/d1/de2/composition__offset__iterator_8cc_source.html +++ b/docs/d1/de2/composition__offset__iterator_8cc_source.html @@ -153,13 +153,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
CompositionOffsetIterator(const CompositionTimeToSample &composition_time_to_sample)
Create CompositionOffsetIterator from composition time to sample box.
- + diff --git a/docs/d1/df0/aes__encryptor_8h_source.html b/docs/d1/df0/aes__encryptor_8h_source.html index 46b2741f6a..bc31e6c7a6 100644 --- a/docs/d1/df0/aes__encryptor_8h_source.html +++ b/docs/d1/df0/aes__encryptor_8h_source.html @@ -199,7 +199,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/df2/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox.html b/docs/d1/df2/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox.html index db5e6a5196..2accbb82fe 100644 --- a/docs/d1/df2/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox.html +++ b/docs/d1/df2/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox.html @@ -136,7 +136,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 751 of file box_definitions.h.

+

Definition at line 765 of file box_definitions.h.

Member Function Documentation

@@ -162,7 +162,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 2464 of file box_definitions.cc.

+

Definition at line 2523 of file box_definitions.cc.

@@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d1/df5/nalu__reader_8cc_source.html b/docs/d1/df5/nalu__reader_8cc_source.html index b5540cb16b..23ad13e023 100644 --- a/docs/d1/df5/nalu__reader_8cc_source.html +++ b/docs/d1/df5/nalu__reader_8cc_source.html @@ -417,7 +417,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html b/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html index c0f13c851e..af08e4cbd9 100644 --- a/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html +++ b/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d02/timestamp_8h_source.html b/docs/d2/d02/timestamp_8h_source.html index a5d9c57fb0..8c64b32d4b 100644 --- a/docs/d2/d02/timestamp_8h_source.html +++ b/docs/d2/d02/timestamp_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d06/structedash__packager_1_1media_1_1mp4_1_1Metadata.html b/docs/d2/d06/structedash__packager_1_1media_1_1mp4_1_1Metadata.html index ccaec1795a..8115bf51ca 100644 --- a/docs/d2/d06/structedash__packager_1_1media_1_1mp4_1_1Metadata.html +++ b/docs/d2/d06/structedash__packager_1_1media_1_1mp4_1_1Metadata.html @@ -148,7 +148,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 253 of file box_definitions.h.

+

Definition at line 260 of file box_definitions.h.

Member Function Documentation

@@ -174,7 +174,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1170 of file box_definitions.cc.

+

Definition at line 1202 of file box_definitions.cc.

@@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d2/d09/decoder__configuration_8h_source.html b/docs/d2/d09/decoder__configuration_8h_source.html index 5ce43bd531..4886014808 100644 --- a/docs/d2/d09/decoder__configuration_8h_source.html +++ b/docs/d2/d09/decoder__configuration_8h_source.html @@ -166,7 +166,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html b/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html index 01cda4e426..6e15e23701 100644 --- a/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html +++ b/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d17/ts__section__pat_8cc_source.html b/docs/d2/d17/ts__section__pat_8cc_source.html index d2e9160ad0..4eac70b705 100644 --- a/docs/d2/d17/ts__section__pat_8cc_source.html +++ b/docs/d2/d17/ts__section__pat_8cc_source.html @@ -214,7 +214,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d23/threaded__io__file_8cc_source.html b/docs/d2/d23/threaded__io__file_8cc_source.html index c7745b39ef..7189f87863 100644 --- a/docs/d2/d23/threaded__io__file_8cc_source.html +++ b/docs/d2/d23/threaded__io__file_8cc_source.html @@ -315,7 +315,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d24/packager__util_8h_source.html b/docs/d2/d24/packager__util_8h_source.html index 9fa7e52982..63a489d2a4 100644 --- a/docs/d2/d24/packager__util_8h_source.html +++ b/docs/d2/d24/packager__util_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html b/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html index e232acb81e..8d325e16f4 100644 --- a/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html +++ b/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html @@ -149,7 +149,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 668 of file box_definitions.h.

+

Definition at line 682 of file box_definitions.h.

Member Function Documentation

@@ -175,7 +175,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 2180 of file box_definitions.cc.

+

Definition at line 2214 of file box_definitions.cc.

@@ -186,7 +186,7 @@ Additional Inherited Members diff --git a/docs/d2/d28/classedash__packager_1_1media_1_1SegmentTestBase.html b/docs/d2/d28/classedash__packager_1_1media_1_1SegmentTestBase.html index f1a46fecfe..fbe9fd90fb 100644 --- a/docs/d2/d28/classedash__packager_1_1media_1_1SegmentTestBase.html +++ b/docs/d2/d28/classedash__packager_1_1media_1_1SegmentTestBase.html @@ -180,7 +180,7 @@ bool single_segment_ diff --git a/docs/d2/d2d/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter-members.html b/docs/d2/d2d/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter-members.html index 7f60a0b957..154f7016ca 100644 --- a/docs/d2/d2d/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter-members.html +++ b/docs/d2/d2d/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html b/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html index 1ceeffa770..87e19f05f8 100644 --- a/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html +++ b/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d30/tracks__builder_8cc_source.html b/docs/d2/d30/tracks__builder_8cc_source.html index 9ae56605e9..cdb5137026 100644 --- a/docs/d2/d30/tracks__builder_8cc_source.html +++ b/docs/d2/d30/tracks__builder_8cc_source.html @@ -487,7 +487,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d33/video__slice__header__parser_8h_source.html b/docs/d2/d33/video__slice__header__parser_8h_source.html index 3f63cd9d76..16b0cc94fc 100644 --- a/docs/d2/d33/video__slice__header__parser_8h_source.html +++ b/docs/d2/d33/video__slice__header__parser_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html b/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html index 9aa2fde50a..df0a8199a0 100644 --- a/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html +++ b/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html b/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html index 8a743f3635..105aecfa60 100644 --- a/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html +++ b/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d4c/nal__unit__to__byte__stream__converter_8cc_source.html b/docs/d2/d4c/nal__unit__to__byte__stream__converter_8cc_source.html index 3d353c232b..e2b76b02b4 100644 --- a/docs/d2/d4c/nal__unit__to__byte__stream__converter_8cc_source.html +++ b/docs/d2/d4c/nal__unit__to__byte__stream__converter_8cc_source.html @@ -291,7 +291,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d4d/file_8h_source.html b/docs/d2/d4d/file_8h_source.html index b9aa9e9344..369b196e4b 100644 --- a/docs/d2/d4d/file_8h_source.html +++ b/docs/d2/d4d/file_8h_source.html @@ -191,7 +191,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html b/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html index c2d5c21b18..e962e3b1d5 100644 --- a/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html +++ b/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html @@ -121,7 +121,7 @@ int max_long_term_frame_id diff --git a/docs/d2/d51/classedash__packager_1_1media_1_1WebVttMediaParser.html b/docs/d2/d51/classedash__packager_1_1media_1_1WebVttMediaParser.html index 44a5dd7912..32e4bdcca2 100644 --- a/docs/d2/d51/classedash__packager_1_1media_1_1WebVttMediaParser.html +++ b/docs/d2/d51/classedash__packager_1_1media_1_1WebVttMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
diff --git a/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html b/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html index 05eaefe5d3..44f510880d 100644 --- a/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html +++ b/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html @@ -177,7 +177,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 207 of file box_definitions.cc.

+

Definition at line 210 of file box_definitions.cc.

@@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html b/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html index d5c928de74..02a24356f7 100644 --- a/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html +++ b/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html @@ -155,7 +155,7 @@ void Reset () override diff --git a/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html b/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html index 78e2e36a01..264c47636b 100644 --- a/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html +++ b/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d62/simple__mpd__notifier_8h_source.html b/docs/d2/d62/simple__mpd__notifier_8h_source.html index 0d94095e66..2af48b2ee9 100644 --- a/docs/d2/d62/simple__mpd__notifier_8h_source.html +++ b/docs/d2/d62/simple__mpd__notifier_8h_source.html @@ -186,7 +186,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d6f/classBandwidthEstimator.html b/docs/d2/d6f/classBandwidthEstimator.html index 4e6b059662..1cf46e3bf8 100644 --- a/docs/d2/d6f/classBandwidthEstimator.html +++ b/docs/d2/d6f/classBandwidthEstimator.html @@ -151,7 +151,7 @@ static const int kUseAllBl diff --git a/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html b/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html index 2ac81fd151..fd540acea8 100644 --- a/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html +++ b/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html @@ -136,7 +136,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 153 of file box_definitions.h.

+

Definition at line 160 of file box_definitions.h.

Member Function Documentation

@@ -162,7 +162,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 432 of file box_definitions.cc.

+

Definition at line 464 of file box_definitions.cc.

@@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d2/d72/classedash__packager_1_1media_1_1Nalu.html b/docs/d2/d72/classedash__packager_1_1media_1_1Nalu.html index 1a6ea25399..8ee41eeed4 100644 --- a/docs/d2/d72/classedash__packager_1_1media_1_1Nalu.html +++ b/docs/d2/d72/classedash__packager_1_1media_1_1Nalu.html @@ -197,7 +197,7 @@ bool is_video_slice () diff --git a/docs/d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html b/docs/d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html index 9b27dc130e..0d473408dd 100644 --- a/docs/d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html +++ b/docs/d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html @@ -203,7 +203,7 @@ Public Member Functions diff --git a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html index baac08cd6a..b5fce7a23f 100644 --- a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html +++ b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html @@ -239,7 +239,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d7e/aac__audio__specific__config_8h_source.html b/docs/d2/d7e/aac__audio__specific__config_8h_source.html index da889f1f8f..e17500553f 100644 --- a/docs/d2/d7e/aac__audio__specific__config_8h_source.html +++ b/docs/d2/d7e/aac__audio__specific__config_8h_source.html @@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d90/classedash__packager_1_1media_1_1Status.html b/docs/d2/d90/classedash__packager_1_1media_1_1Status.html index 5eb65291b4..bed7f6d5be 100644 --- a/docs/d2/d90/classedash__packager_1_1media_1_1Status.html +++ b/docs/d2/d90/classedash__packager_1_1media_1_1Status.html @@ -302,7 +302,7 @@ static const diff --git a/docs/d2/d92/box__reader_8h_source.html b/docs/d2/d92/box__reader_8h_source.html index 62680e6163..6ab63d9986 100644 --- a/docs/d2/d92/box__reader_8h_source.html +++ b/docs/d2/d92/box__reader_8h_source.html @@ -249,7 +249,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d98/avc__decoder__configuration_8h_source.html b/docs/d2/d98/avc__decoder__configuration_8h_source.html index f05c76baec..4297066c02 100644 --- a/docs/d2/d98/avc__decoder__configuration_8h_source.html +++ b/docs/d2/d98/avc__decoder__configuration_8h_source.html @@ -153,7 +153,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/da6/threaded__io__file_8h_source.html b/docs/d2/da6/threaded__io__file_8h_source.html index 8f634f6596..bd760863fd 100644 --- a/docs/d2/da6/threaded__io__file_8h_source.html +++ b/docs/d2/da6/threaded__io__file_8h_source.html @@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/da8/mp4_2segmenter_8cc_source.html b/docs/d2/da8/mp4_2segmenter_8cc_source.html index 92a586f5b2..d5eeba3adf 100644 --- a/docs/d2/da8/mp4_2segmenter_8cc_source.html +++ b/docs/d2/da8/mp4_2segmenter_8cc_source.html @@ -147,9 +147,9 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
58  sinf->type.version = kCencSchemeVersion;
59 
60  auto& track_encryption = sinf->info.track_encryption;
-
61  track_encryption.is_encrypted = true;
+
61  track_encryption.default_is_protected = 1;
62  DCHECK(!encryption_key.iv.empty());
-
63  track_encryption.default_iv_size = encryption_key.iv.size();
+
63  track_encryption.default_per_sample_iv_size = encryption_key.iv.size();
64  track_encryption.default_kid = encryption_key.key_id;
65 }
66 
@@ -525,7 +525,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
436 } // namespace edash_packager
- +
virtual Status GetKey(TrackType track_type, EncryptionKey *key)=0
Status Initialize(scoped_ptr< MkvWriter > writer, StreamInfo *info, ProgressListener *progress_listener, MuxerListener *muxer_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds)
Definition: segmenter.cc:46
@@ -550,7 +550,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dae/webm__muxer_8cc_source.html b/docs/d2/dae/webm__muxer_8cc_source.html index 63331dc4c2..e73e1fc4a1 100644 --- a/docs/d2/dae/webm__muxer_8cc_source.html +++ b/docs/d2/dae/webm__muxer_8cc_source.html @@ -223,7 +223,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/db7/classedash__packager_1_1media_1_1NaluReader-members.html b/docs/d2/db7/classedash__packager_1_1media_1_1NaluReader-members.html index 7ec1973e99..31a1df44fb 100644 --- a/docs/d2/db7/classedash__packager_1_1media_1_1NaluReader-members.html +++ b/docs/d2/db7/classedash__packager_1_1media_1_1NaluReader-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dc5/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox-members.html b/docs/d2/dc5/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox-members.html index 3d312d3f63..a420b1e0ac 100644 --- a/docs/d2/dc5/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox-members.html +++ b/docs/d2/dc5/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dd6/mkv__writer_8h_source.html b/docs/d2/dd6/mkv__writer_8h_source.html index 61117b11a9..ff477f6c2d 100644 --- a/docs/d2/dd6/mkv__writer_8h_source.html +++ b/docs/d2/dd6/mkv__writer_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html b/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html index cb9b5fbd9a..f0c7fa5525 100644 --- a/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html +++ b/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html @@ -146,7 +146,7 @@ bool is_encrypted diff --git a/docs/d2/dda/vp__codec__configuration_8cc_source.html b/docs/d2/dda/vp__codec__configuration_8cc_source.html index 30a6252686..7a24996650 100644 --- a/docs/d2/dda/vp__codec__configuration_8cc_source.html +++ b/docs/d2/dda/vp__codec__configuration_8cc_source.html @@ -217,7 +217,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/de6/packager__main_8cc_source.html b/docs/d2/de6/packager__main_8cc_source.html index 7ddba63682..10e42421da 100644 --- a/docs/d2/de6/packager__main_8cc_source.html +++ b/docs/d2/de6/packager__main_8cc_source.html @@ -591,7 +591,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/deb/es__parser_8h_source.html b/docs/d2/deb/es__parser_8h_source.html index 48c8652e00..e9d4036e6d 100644 --- a/docs/d2/deb/es__parser_8h_source.html +++ b/docs/d2/deb/es__parser_8h_source.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dee/pes__packet__generator_8cc_source.html b/docs/d2/dee/pes__packet__generator_8cc_source.html index 7f13b5f2cf..a30bc851a6 100644 --- a/docs/d2/dee/pes__packet__generator_8cc_source.html +++ b/docs/d2/dee/pes__packet__generator_8cc_source.html @@ -215,7 +215,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html b/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html index f95b610641..21214b58cc 100644 --- a/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html +++ b/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/df8/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox.html b/docs/d2/df8/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox.html index 38f06ed322..10c6ca9c34 100644 --- a/docs/d2/df8/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox.html +++ b/docs/d2/df8/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox.html @@ -136,7 +136,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 736 of file box_definitions.h.

+

Definition at line 750 of file box_definitions.h.

Member Function Documentation

@@ -162,7 +162,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 2409 of file box_definitions.cc.

+

Definition at line 2468 of file box_definitions.cc.

@@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html b/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html index 40a2a089c8..fd8ae52951 100644 --- a/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html +++ b/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html @@ -195,7 +195,7 @@ Public Member Functions diff --git a/docs/d2/dfd/adts__header_8h_source.html b/docs/d2/dfd/adts__header_8h_source.html index 9d97198869..fa07c20428 100644 --- a/docs/d2/dfd/adts__header_8h_source.html +++ b/docs/d2/dfd/adts__header_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html b/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html index 3bb139e048..91797ace5b 100644 --- a/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html +++ b/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html @@ -225,7 +225,7 @@ const scoped_refptr< diff --git a/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html b/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html index da5fdaf685..168a0c6189 100644 --- a/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html +++ b/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html b/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html index c52edb0349..a7ebe46193 100644 --- a/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html +++ b/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html b/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html index 7ebfbef8bc..09a26c3131 100644 --- a/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html +++ b/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html @@ -213,7 +213,7 @@ Additional Inherited Members diff --git a/docs/d3/d11/structedash__packager_1_1media_1_1H265Pps.html b/docs/d3/d11/structedash__packager_1_1media_1_1H265Pps.html index 3b555ce550..eedaeafebb 100644 --- a/docs/d3/d11/structedash__packager_1_1media_1_1H265Pps.html +++ b/docs/d3/d11/structedash__packager_1_1media_1_1H265Pps.html @@ -224,7 +224,7 @@ bool chroma_qp_offset_list diff --git a/docs/d3/d15/udp__file__win_8cc_source.html b/docs/d3/d15/udp__file__win_8cc_source.html index 21afa40339..7c051aeef4 100644 --- a/docs/d3/d15/udp__file__win_8cc_source.html +++ b/docs/d3/d15/udp__file__win_8cc_source.html @@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d19/io__cache_8h_source.html b/docs/d3/d19/io__cache_8h_source.html index d1c3c22300..9070fb05e5 100644 --- a/docs/d3/d19/io__cache_8h_source.html +++ b/docs/d3/d19/io__cache_8h_source.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d1c/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox.html b/docs/d3/d1c/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox.html index 0e7436a69c..444da51c1d 100644 --- a/docs/d3/d1c/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox.html +++ b/docs/d3/d1c/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox.html @@ -129,7 +129,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 761 of file box_definitions.h.

+

Definition at line 775 of file box_definitions.h.

Member Function Documentation

@@ -155,7 +155,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 2500 of file box_definitions.cc.

+

Definition at line 2559 of file box_definitions.cc.

@@ -166,7 +166,7 @@ Additional Inherited Members diff --git a/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html b/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html index f98d084e97..edeea1b829 100644 --- a/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html +++ b/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html @@ -157,7 +157,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 552 of file box_definitions.h.

+

Definition at line 559 of file box_definitions.h.

Member Function Documentation

@@ -183,7 +183,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1844 of file box_definitions.cc.

+

Definition at line 1876 of file box_definitions.cc.

@@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html b/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html index c651c0f6fb..2dc5fb971c 100644 --- a/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html +++ b/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html @@ -97,25 +97,28 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); box_size()edash_packager::media::mp4::Boxinline BoxType() const overrideedash_packager::media::mp4::TrackEncryptionvirtual ComputeSize()edash_packager::media::mp4::Box - default_iv_size (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption + default_constant_iv (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption + default_crypt_byte_block (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption + default_is_protected (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption default_kid (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption + default_per_sample_iv_size (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption + default_skip_byte_block (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption flags (defined in edash_packager::media::mp4::FullBox)edash_packager::media::mp4::FullBox FullBox() (defined in edash_packager::media::mp4::FullBox)edash_packager::media::mp4::FullBox HeaderSize() const finaledash_packager::media::mp4::FullBoxvirtual - is_encrypted (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption - Parse(BoxReader *reader)edash_packager::media::mp4::Box - ReadWriteHeaderInternal(BoxBuffer *buffer) finaledash_packager::media::mp4::FullBoxprotectedvirtual - TrackEncryption() (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption - version (defined in edash_packager::media::mp4::FullBox)edash_packager::media::mp4::FullBox - Write(BufferWriter *writer)edash_packager::media::mp4::Box - WriteHeader(BufferWriter *writer)edash_packager::media::mp4::Box - ~Box() (defined in edash_packager::media::mp4::Box)edash_packager::media::mp4::Boxvirtual - ~FullBox() override (defined in edash_packager::media::mp4::FullBox)edash_packager::media::mp4::FullBox - ~TrackEncryption() override (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption + Parse(BoxReader *reader)edash_packager::media::mp4::Box + ReadWriteHeaderInternal(BoxBuffer *buffer) finaledash_packager::media::mp4::FullBoxprotectedvirtual + TrackEncryption() (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption + version (defined in edash_packager::media::mp4::FullBox)edash_packager::media::mp4::FullBox + Write(BufferWriter *writer)edash_packager::media::mp4::Box + WriteHeader(BufferWriter *writer)edash_packager::media::mp4::Box + ~Box() (defined in edash_packager::media::mp4::Box)edash_packager::media::mp4::Boxvirtual + ~FullBox() override (defined in edash_packager::media::mp4::FullBox)edash_packager::media::mp4::FullBox + ~TrackEncryption() override (defined in edash_packager::media::mp4::TrackEncryption)edash_packager::media::mp4::TrackEncryption diff --git a/docs/d3/d35/video__slice__header__parser_8cc_source.html b/docs/d3/d35/video__slice__header__parser_8cc_source.html index 6081056fa3..4304658b95 100644 --- a/docs/d3/d35/video__slice__header__parser_8cc_source.html +++ b/docs/d3/d35/video__slice__header__parser_8cc_source.html @@ -201,7 +201,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d39/structedash__packager_1_1media_1_1H265ReferencePictureListModifications.html b/docs/d3/d39/structedash__packager_1_1media_1_1H265ReferencePictureListModifications.html index 413598f76e..ec6216ad07 100644 --- a/docs/d3/d39/structedash__packager_1_1media_1_1H265ReferencePictureListModifications.html +++ b/docs/d3/d39/structedash__packager_1_1media_1_1H265ReferencePictureListModifications.html @@ -119,7 +119,7 @@ std::vector< int > l diff --git a/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html b/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html index 286bcd4b66..fe60bd1a56 100644 --- a/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html +++ b/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html @@ -311,7 +311,7 @@ KeyFetcher implementation overrides. diff --git a/docs/d3/d43/structedash__packager_1_1media_1_1mp4_1_1EC3Specific.html b/docs/d3/d43/structedash__packager_1_1media_1_1mp4_1_1EC3Specific.html index 579b725ab5..e4c9a3ba7d 100644 --- a/docs/d3/d43/structedash__packager_1_1media_1_1mp4_1_1EC3Specific.html +++ b/docs/d3/d43/structedash__packager_1_1media_1_1mp4_1_1EC3Specific.html @@ -136,7 +136,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 316 of file box_definitions.h.

+

Definition at line 323 of file box_definitions.h.

Member Function Documentation

@@ -162,7 +162,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1430 of file box_definitions.cc.

+

Definition at line 1462 of file box_definitions.cc.

@@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html b/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html index 837854ead2..30d95f085a 100644 --- a/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html +++ b/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html b/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html index d46a3fe140..b961aafc65 100644 --- a/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html +++ b/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d56/decrypt__config_8cc_source.html b/docs/d3/d56/decrypt__config_8cc_source.html index 6cb64864ed..9bdd1a1004 100644 --- a/docs/d3/d56/decrypt__config_8cc_source.html +++ b/docs/d3/d56/decrypt__config_8cc_source.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d59/structedash__packager_1_1media_1_1mp4_1_1PrivFrame.html b/docs/d3/d59/structedash__packager_1_1media_1_1mp4_1_1PrivFrame.html index ca924259fc..96ca9d5a2a 100644 --- a/docs/d3/d59/structedash__packager_1_1media_1_1mp4_1_1PrivFrame.html +++ b/docs/d3/d59/structedash__packager_1_1media_1_1mp4_1_1PrivFrame.html @@ -121,7 +121,7 @@ std::string value

Detailed Description

Implemented per http://id3.org/id3v2.4.0-frames.

-

Definition at line 234 of file box_definitions.h.

+

Definition at line 241 of file box_definitions.h.


The documentation for this struct was generated from the following files:
  • media/formats/mp4/box_definitions.h
  • media/formats/mp4/box_definitions.cc
  • @@ -129,7 +129,7 @@ std::string value diff --git a/docs/d3/d62/rcheck_8h_source.html b/docs/d3/d62/rcheck_8h_source.html index e75aefcb81..d5c93ed4ed 100644 --- a/docs/d3/d62/rcheck_8h_source.html +++ b/docs/d3/d62/rcheck_8h_source.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d67/structedash__packager_1_1media_1_1mp4_1_1PrivFrame-members.html b/docs/d3/d67/structedash__packager_1_1media_1_1mp4_1_1PrivFrame-members.html index efcc75b5b7..fe3ca82353 100644 --- a/docs/d3/d67/structedash__packager_1_1media_1_1mp4_1_1PrivFrame-members.html +++ b/docs/d3/d67/structedash__packager_1_1media_1_1mp4_1_1PrivFrame-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html b/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html index 40ebcf7fd3..5b62487692 100644 --- a/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html +++ b/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html @@ -125,7 +125,7 @@ scoped_ptr< diff --git a/docs/d3/d6a/classedash__packager_1_1media_1_1NaluReader.html b/docs/d3/d6a/classedash__packager_1_1media_1_1NaluReader.html index 3125ee50ad..35d283af83 100644 --- a/docs/d3/d6a/classedash__packager_1_1media_1_1NaluReader.html +++ b/docs/d3/d6a/classedash__packager_1_1media_1_1NaluReader.html @@ -232,7 +232,7 @@ static bool FindStartCode< diff --git a/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html b/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html index 55ec5f1735..024a84da65 100644 --- a/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html +++ b/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html @@ -297,7 +297,7 @@ void  diff --git a/docs/d3/d6b/fixed__key__source_8cc_source.html b/docs/d3/d6b/fixed__key__source_8cc_source.html index 8a2986c603..7ecfb8e5d6 100644 --- a/docs/d3/d6b/fixed__key__source_8cc_source.html +++ b/docs/d3/d6b/fixed__key__source_8cc_source.html @@ -243,7 +243,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d72/fixed__key__source_8h_source.html b/docs/d3/d72/fixed__key__source_8h_source.html index 6e432fd866..090d80f2f9 100644 --- a/docs/d3/d72/fixed__key__source_8h_source.html +++ b/docs/d3/d72/fixed__key__source_8h_source.html @@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html b/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html index 69a9383975..0445748959 100644 --- a/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html +++ b/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html @@ -154,7 +154,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 368 of file box_definitions.h.

    +

    Definition at line 375 of file box_definitions.h.

    Member Function Documentation

    @@ -180,7 +180,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 562 of file box_definitions.cc.

    +

    Definition at line 594 of file box_definitions.cc.

    @@ -191,7 +191,7 @@ Additional Inherited Members diff --git a/docs/d3/d76/muxer__flags_8h_source.html b/docs/d3/d76/muxer__flags_8h_source.html index d07ac9bfd3..8a2d836850 100644 --- a/docs/d3/d76/muxer__flags_8h_source.html +++ b/docs/d3/d76/muxer__flags_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html b/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html index 5291e7162c..3886628308 100644 --- a/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html +++ b/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html @@ -154,7 +154,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 455 of file box_definitions.h.

    +

    Definition at line 462 of file box_definitions.h.

    Member Function Documentation

    @@ -180,7 +180,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 892 of file box_definitions.cc.

    +

    Definition at line 924 of file box_definitions.cc.

    @@ -191,7 +191,7 @@ Additional Inherited Members diff --git a/docs/d3/d80/muxer__util_8h_source.html b/docs/d3/d80/muxer__util_8h_source.html index 4f94492546..1620096c82 100644 --- a/docs/d3/d80/muxer__util_8h_source.html +++ b/docs/d3/d80/muxer__util_8h_source.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d81/classedash__packager_1_1media_1_1MemoryFile.html b/docs/d3/d81/classedash__packager_1_1media_1_1MemoryFile.html index 1d719fba68..4ad46bf860 100644 --- a/docs/d3/d81/classedash__packager_1_1media_1_1MemoryFile.html +++ b/docs/d3/d81/classedash__packager_1_1media_1_1MemoryFile.html @@ -485,7 +485,7 @@ bool  diff --git a/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html b/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html index 1f8cc9ab30..31bd402f50 100644 --- a/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html +++ b/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d8d/webm__audio__client_8h_source.html b/docs/d3/d8d/webm__audio__client_8h_source.html index c4455a02ed..8eb2f3e709 100644 --- a/docs/d3/d8d/webm__audio__client_8h_source.html +++ b/docs/d3/d8d/webm__audio__client_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d8e/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html b/docs/d3/d8e/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html index abb121914b..10551fa1ee 100644 --- a/docs/d3/d8e/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html +++ b/docs/d3/d8e/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html @@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d90/ec3__audio__util_8cc_source.html b/docs/d3/d90/ec3__audio__util_8cc_source.html index 54fab53ef9..094ec716c7 100644 --- a/docs/d3/d90/ec3__audio__util_8cc_source.html +++ b/docs/d3/d90/ec3__audio__util_8cc_source.html @@ -245,7 +245,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html b/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html index 520fc811ee..5090359ae5 100644 --- a/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html +++ b/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html b/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html index 3bfe86f9d5..e4dfb2161d 100644 --- a/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html +++ b/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/da0/ec3__audio__util_8h_source.html b/docs/d3/da0/ec3__audio__util_8h_source.html index d47a71a7e7..9d21ec6cbc 100644 --- a/docs/d3/da0/ec3__audio__util_8h_source.html +++ b/docs/d3/da0/ec3__audio__util_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/db6/webm__parser_8cc_source.html b/docs/d3/db6/webm__parser_8cc_source.html index 8be9e1c8fc..cddfbab32c 100644 --- a/docs/d3/db6/webm__parser_8cc_source.html +++ b/docs/d3/db6/webm__parser_8cc_source.html @@ -1068,7 +1068,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dbc/seek__head_8cc_source.html b/docs/d3/dbc/seek__head_8cc_source.html index 0b7c12456d..a26f010be7 100644 --- a/docs/d3/dbc/seek__head_8cc_source.html +++ b/docs/d3/dbc/seek__head_8cc_source.html @@ -216,7 +216,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html b/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html index b486f793df..8db6a2bbff 100644 --- a/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html +++ b/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html @@ -124,7 +124,7 @@ int chroma_offset [32] diff --git a/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html b/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html index 900b0a30db..8d3ea0051f 100644 --- a/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html +++ b/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html @@ -145,7 +145,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 220 of file box_definitions.h.

    +

    Definition at line 227 of file box_definitions.h.

    Member Function Documentation

    @@ -171,7 +171,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 997 of file box_definitions.cc.

    +

    Definition at line 1029 of file box_definitions.cc.

    @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html b/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html index f7e74d4ab2..974f2420bc 100644 --- a/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html +++ b/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dbe/demuxer_8cc_source.html b/docs/d3/dbe/demuxer_8cc_source.html index 8f943d180d..e15dcec9dd 100644 --- a/docs/d3/dbe/demuxer_8cc_source.html +++ b/docs/d3/dbe/demuxer_8cc_source.html @@ -345,7 +345,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html b/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html index af4b0b9faf..b0919fc230 100644 --- a/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html +++ b/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html b/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html index 8350dc8bfb..185d1e8872 100644 --- a/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html +++ b/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html b/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html index 9ca11f5e67..2112f53a40 100644 --- a/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html +++ b/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html b/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html index 9644356307..0c193ccc83 100644 --- a/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html +++ b/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html @@ -145,7 +145,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 537 of file box_definitions.h.

    +

    Definition at line 544 of file box_definitions.h.

    Member Function Documentation

    @@ -171,7 +171,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1801 of file box_definitions.cc.

    +

    Definition at line 1833 of file box_definitions.cc.

    @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d3/de4/seek__head_8h_source.html b/docs/d3/de4/seek__head_8h_source.html index 4946bc3db9..65ccc8e66d 100644 --- a/docs/d3/de4/seek__head_8h_source.html +++ b/docs/d3/de4/seek__head_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html b/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html index f6057f36d2..ae826b84b9 100644 --- a/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html +++ b/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html @@ -130,7 +130,7 @@ uint64_t file_size diff --git a/docs/d3/dec/classedash__packager_1_1media_1_1H26xBitReader.html b/docs/d3/dec/classedash__packager_1_1media_1_1H26xBitReader.html index 0de1f54885..8ebb0caca5 100644 --- a/docs/d3/dec/classedash__packager_1_1media_1_1H26xBitReader.html +++ b/docs/d3/dec/classedash__packager_1_1media_1_1H26xBitReader.html @@ -134,7 +134,7 @@ size_t NumEmulationPrevent diff --git a/docs/d3/df1/box__reader_8cc_source.html b/docs/d3/df1/box__reader_8cc_source.html index def28b5ee0..551d587079 100644 --- a/docs/d3/df1/box__reader_8cc_source.html +++ b/docs/d3/df1/box__reader_8cc_source.html @@ -296,7 +296,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html b/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html index aa55a86af9..800be2a242 100644 --- a/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html +++ b/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html @@ -385,7 +385,7 @@ class DynamicMpdBuilderTes diff --git a/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html b/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html index 6504138f23..c21005b2a4 100644 --- a/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html +++ b/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html b/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html index f28b61c854..0288df5b50 100644 --- a/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html +++ b/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html @@ -303,7 +303,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html b/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html index b5c4e694ad..7e1dc2c2a7 100644 --- a/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html +++ b/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html b/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html index 63a972586b..50dda99ecd 100644 --- a/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html +++ b/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html @@ -342,7 +342,7 @@ class MediaStream diff --git a/docs/d4/d25/classedash__packager_1_1media_1_1mp2t_1_1TsWriter-members.html b/docs/d4/d25/classedash__packager_1_1media_1_1mp2t_1_1TsWriter-members.html index a98b2f517e..2b9167fd72 100644 --- a/docs/d4/d25/classedash__packager_1_1media_1_1mp2t_1_1TsWriter-members.html +++ b/docs/d4/d25/classedash__packager_1_1media_1_1mp2t_1_1TsWriter-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html b/docs/d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html index 849f7116eb..99cdadecb1 100644 --- a/docs/d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html +++ b/docs/d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html @@ -242,7 +242,7 @@ Public Member Functions diff --git a/docs/d4/d37/io__cache_8cc_source.html b/docs/d4/d37/io__cache_8cc_source.html index a983c3ba0e..ba32ec10f9 100644 --- a/docs/d4/d37/io__cache_8cc_source.html +++ b/docs/d4/d37/io__cache_8cc_source.html @@ -252,7 +252,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d3d/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio.html b/docs/d4/d3d/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio.html index 6accd75157..34fa62c0ab 100644 --- a/docs/d4/d3d/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio.html +++ b/docs/d4/d3d/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio.html @@ -139,7 +139,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 269 of file box_definitions.h.

    +

    Definition at line 276 of file box_definitions.h.

    Member Function Documentation

    @@ -165,7 +165,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1215 of file box_definitions.cc.

    +

    Definition at line 1247 of file box_definitions.cc.

    @@ -176,7 +176,7 @@ Additional Inherited Members diff --git a/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html b/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html index f995a7f9f1..6407c1f1f0 100644 --- a/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html +++ b/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html @@ -177,7 +177,7 @@ Public Member Functions diff --git a/docs/d4/d4a/structedash__packager_1_1media_1_1H265Sps-members.html b/docs/d4/d4a/structedash__packager_1_1media_1_1H265Sps-members.html index e3fd6cda14..cb60cfc27c 100644 --- a/docs/d4/d4a/structedash__packager_1_1media_1_1H265Sps-members.html +++ b/docs/d4/d4a/structedash__packager_1_1media_1_1H265Sps-members.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html b/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html index 39627001e7..0b78b74aed 100644 --- a/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html +++ b/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d72/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html b/docs/d4/d72/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html index 9b16e1ba11..d0d4d51142 100644 --- a/docs/d4/d72/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html +++ b/docs/d4/d72/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d87/nalu__reader_8h_source.html b/docs/d4/d87/nalu__reader_8h_source.html index 86844cc968..7ea0206cb4 100644 --- a/docs/d4/d87/nalu__reader_8h_source.html +++ b/docs/d4/d87/nalu__reader_8h_source.html @@ -280,7 +280,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d8c/classedash__packager_1_1media_1_1MkvWriter.html b/docs/d4/d8c/classedash__packager_1_1media_1_1MkvWriter.html index 9f31b53d81..f485adfd9f 100644 --- a/docs/d4/d8c/classedash__packager_1_1media_1_1MkvWriter.html +++ b/docs/d4/d8c/classedash__packager_1_1media_1_1MkvWriter.html @@ -372,7 +372,7 @@ Public Member Functions diff --git a/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html b/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html index 2a7da65269..c2a111a3d5 100644 --- a/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html +++ b/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html b/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html index 528a73c76c..a75b6b7195 100644 --- a/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html +++ b/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html @@ -235,7 +235,7 @@ Public Member Functions diff --git a/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html b/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html index ec663f0937..72053291d9 100644 --- a/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html +++ b/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html @@ -136,7 +136,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 730 of file box_definitions.h.

    +

    Definition at line 744 of file box_definitions.h.

    Member Function Documentation

    @@ -162,7 +162,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 2395 of file box_definitions.cc.

    +

    Definition at line 2454 of file box_definitions.cc.

    @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html b/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html index 43440c3968..f07b342cdd 100644 --- a/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html +++ b/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html @@ -127,7 +127,7 @@ union { diff --git a/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html b/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html index 4eebf69d2d..0112c4b82e 100644 --- a/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html +++ b/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html b/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html index c7fd6c8bc4..9a32a5603b 100644 --- a/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html +++ b/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html @@ -229,7 +229,7 @@ static const size_t  diff --git a/docs/d4/da7/segmenter__test__base_8cc_source.html b/docs/d4/da7/segmenter__test__base_8cc_source.html index 733991e048..ea586d5622 100644 --- a/docs/d4/da7/segmenter__test__base_8cc_source.html +++ b/docs/d4/da7/segmenter__test__base_8cc_source.html @@ -310,7 +310,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/db2/cluster__builder_8h_source.html b/docs/d4/db2/cluster__builder_8h_source.html index e9e66c1fe7..4f011d5366 100644 --- a/docs/d4/db2/cluster__builder_8h_source.html +++ b/docs/d4/db2/cluster__builder_8h_source.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html b/docs/d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html index f342a681f4..0489f4761d 100644 --- a/docs/d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html +++ b/docs/d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html @@ -229,7 +229,7 @@ class NalUnitToByteStreamC diff --git a/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html b/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html index 1f4e1f7186..7d721a8ab9 100644 --- a/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html +++ b/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html @@ -118,7 +118,7 @@ int changing_slice_group_i diff --git a/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html b/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html index ee12d236cf..106a2c1e97 100644 --- a/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html +++ b/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html b/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html index 43c16d2b0f..05028e904e 100644 --- a/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html +++ b/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html @@ -174,7 +174,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 381 of file box_definitions.cc.

    +

    Definition at line 386 of file box_definitions.cc.

    @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html b/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html index 0986357231..076c2e288b 100644 --- a/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html +++ b/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html b/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html index 3d2443eb7a..df5ab22ca3 100644 --- a/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html +++ b/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html @@ -136,14 +136,14 @@ uint64_t earliest_presenta

    Detailed Description

    -

    Definition at line 697 of file box_definitions.h.

    +

    Definition at line 711 of file box_definitions.h.


    The documentation for this struct was generated from the following file: diff --git a/docs/d4/dd3/bit__reader_8h_source.html b/docs/d4/dd3/bit__reader_8h_source.html index 312385ba4b..00db2d0a5c 100644 --- a/docs/d4/dd3/bit__reader_8h_source.html +++ b/docs/d4/dd3/bit__reader_8h_source.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dd8/classedash__packager_1_1media_1_1H26xByteToUnitStreamConverter.html b/docs/d4/dd8/classedash__packager_1_1media_1_1H26xByteToUnitStreamConverter.html index 7f023192f8..fa0b0b0ee5 100644 --- a/docs/d4/dd8/classedash__packager_1_1media_1_1H26xByteToUnitStreamConverter.html +++ b/docs/d4/dd8/classedash__packager_1_1media_1_1H26xByteToUnitStreamConverter.html @@ -216,7 +216,7 @@ static const size_t kUnitS diff --git a/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html b/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html index 239d1c7f9e..12befb2132 100644 --- a/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html +++ b/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html @@ -160,7 +160,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 675 of file box_definitions.h.

    +

    Definition at line 689 of file box_definitions.h.

    Member Function Documentation

    @@ -186,7 +186,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 2257 of file box_definitions.cc.

    +

    Definition at line 2316 of file box_definitions.cc.

    @@ -197,7 +197,7 @@ Additional Inherited Members diff --git a/docs/d4/dde/webvtt__util_8h_source.html b/docs/d4/dde/webvtt__util_8h_source.html index 0381d8b2be..223a66f33e 100644 --- a/docs/d4/dde/webvtt__util_8h_source.html +++ b/docs/d4/dde/webvtt__util_8h_source.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/de0/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html b/docs/d4/de0/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html index 736210a641..dae6d289c5 100644 --- a/docs/d4/de0/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html +++ b/docs/d4/de0/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html @@ -112,7 +112,7 @@ int delta_poc_msb_cycle_lt diff --git a/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html b/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html index 0906d7467f..f9dad12f15 100644 --- a/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html +++ b/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html @@ -122,7 +122,7 @@ uint32_t cipher_bytes< diff --git a/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html b/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html index 9391a6b56f..fa9369530f 100644 --- a/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html +++ b/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html @@ -225,7 +225,7 @@ Public Member Functions diff --git a/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html b/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html index 0c1bd8affa..cac44a232c 100644 --- a/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html +++ b/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/df5/request__signer_8cc_source.html b/docs/d4/df5/request__signer_8cc_source.html index 60118c8a5e..d0b6ae6c59 100644 --- a/docs/d4/df5/request__signer_8cc_source.html +++ b/docs/d4/df5/request__signer_8cc_source.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html b/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html index a9c3510908..92ca28b6c9 100644 --- a/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html +++ b/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dff/webm__media__parser_8cc_source.html b/docs/d4/dff/webm__media__parser_8cc_source.html index b556fa03e1..0e0a5ce22c 100644 --- a/docs/d4/dff/webm__media__parser_8cc_source.html +++ b/docs/d4/dff/webm__media__parser_8cc_source.html @@ -364,7 +364,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html b/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html index df36a9d90f..1493b799c5 100644 --- a/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html +++ b/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html @@ -501,7 +501,7 @@ template<class T > diff --git a/docs/d5/d15/producer__consumer__queue_8h_source.html b/docs/d5/d15/producer__consumer__queue_8h_source.html index 3212f40812..80e021d483 100644 --- a/docs/d5/d15/producer__consumer__queue_8h_source.html +++ b/docs/d5/d15/producer__consumer__queue_8h_source.html @@ -374,7 +374,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d18/structedash__packager_1_1media_1_1mp4_1_1CueIDBox-members.html b/docs/d5/d18/structedash__packager_1_1media_1_1mp4_1_1CueIDBox-members.html index 7ead95025e..0dacefbdab 100644 --- a/docs/d5/d18/structedash__packager_1_1media_1_1mp4_1_1CueIDBox-members.html +++ b/docs/d5/d18/structedash__packager_1_1media_1_1mp4_1_1CueIDBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d1a/ts__section_8h_source.html b/docs/d5/d1a/ts__section_8h_source.html index deff0a40c0..a9cbd3541c 100644 --- a/docs/d5/d1a/ts__section_8h_source.html +++ b/docs/d5/d1a/ts__section_8h_source.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html b/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html index 14100d435a..a75d9fd1be 100644 --- a/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html +++ b/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html b/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html index 930f70c917..7ea3a43e63 100644 --- a/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html +++ b/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d27/key__fetcher_8cc_source.html b/docs/d5/d27/key__fetcher_8cc_source.html index fa56b6766a..449d41dd30 100644 --- a/docs/d5/d27/key__fetcher_8cc_source.html +++ b/docs/d5/d27/key__fetcher_8cc_source.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html b/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html index 11a2db3962..c87bd1b4a7 100644 --- a/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html +++ b/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html @@ -171,7 +171,7 @@ static const size_t kUnitS diff --git a/docs/d5/d3e/structedash__packager_1_1media_1_1H265ReferencePictureSet-members.html b/docs/d5/d3e/structedash__packager_1_1media_1_1H265ReferencePictureSet-members.html index 98515757a0..b6a9772605 100644 --- a/docs/d5/d3e/structedash__packager_1_1media_1_1H265ReferencePictureSet-members.html +++ b/docs/d5/d3e/structedash__packager_1_1media_1_1H265ReferencePictureSet-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html b/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html index 2ff9c2494e..641f372d8f 100644 --- a/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html +++ b/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d41/hevc__decoder__configuration_8cc_source.html b/docs/d5/d41/hevc__decoder__configuration_8cc_source.html index cdf799f73b..8dc0a052d9 100644 --- a/docs/d5/d41/hevc__decoder__configuration_8cc_source.html +++ b/docs/d5/d41/hevc__decoder__configuration_8cc_source.html @@ -256,7 +256,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html b/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html index b649606d72..4c3aca742d 100644 --- a/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html +++ b/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d4d/box_8cc_source.html b/docs/d5/d4d/box_8cc_source.html index b81da069b0..36f694df4f 100644 --- a/docs/d5/d4d/box_8cc_source.html +++ b/docs/d5/d4d/box_8cc_source.html @@ -199,7 +199,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d52/ts__section__pes_8h_source.html b/docs/d5/d52/ts__section__pes_8h_source.html index 8fb09c5945..508f88ce13 100644 --- a/docs/d5/d52/ts__section__pes_8h_source.html +++ b/docs/d5/d52/ts__section__pes_8h_source.html @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html b/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html index a6fa858b85..3e3c857294 100644 --- a/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html +++ b/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html b/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html index 3f5e1d80a5..4db875774a 100644 --- a/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html +++ b/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html @@ -224,7 +224,7 @@ Static Public Member Functions diff --git a/docs/d5/d63/network__util_8cc_source.html b/docs/d5/d63/network__util_8cc_source.html index 812f5193d9..d542568e57 100644 --- a/docs/d5/d63/network__util_8cc_source.html +++ b/docs/d5/d63/network__util_8cc_source.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html b/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html index 05a0804fac..f5526b3174 100644 --- a/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html +++ b/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d6f/vlog__flags_8cc_source.html b/docs/d5/d6f/vlog__flags_8cc_source.html index b618700282..f45ffc4e21 100644 --- a/docs/d5/d6f/vlog__flags_8cc_source.html +++ b/docs/d5/d6f/vlog__flags_8cc_source.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d73/vp__codec__configuration_8h_source.html b/docs/d5/d73/vp__codec__configuration_8h_source.html index 1b9d6fa514..bc02abf573 100644 --- a/docs/d5/d73/vp__codec__configuration_8h_source.html +++ b/docs/d5/d73/vp__codec__configuration_8h_source.html @@ -192,7 +192,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d78/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption.html b/docs/d5/d78/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption.html index 4802784aa0..eb379cb4c4 100644 --- a/docs/d5/d78/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption.html +++ b/docs/d5/d78/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption.html @@ -186,7 +186,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 300 of file box_definitions.cc.

    +

    Definition at line 303 of file box_definitions.cc.

    @@ -223,7 +223,7 @@ Additional Inherited Members
    Returns
    true on success, false otherwise.
    -

    Definition at line 349 of file box_definitions.cc.

    +

    Definition at line 354 of file box_definitions.cc.

    @@ -250,7 +250,7 @@ Additional Inherited Members diff --git a/docs/d5/d7a/structedash__packager_1_1Element.html b/docs/d5/d7a/structedash__packager_1_1Element.html index aed763e2ad..c10f354744 100644 --- a/docs/d5/d7a/structedash__packager_1_1Element.html +++ b/docs/d5/d7a/structedash__packager_1_1Element.html @@ -120,7 +120,7 @@ std::vector< diff --git a/docs/d5/d7b/box__definitions_8h_source.html b/docs/d5/d7b/box__definitions_8h_source.html index 8fe88aa305..e847e503cd 100644 --- a/docs/d5/d7b/box__definitions_8h_source.html +++ b/docs/d5/d7b/box__definitions_8h_source.html @@ -211,741 +211,755 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    145  DECLARE_BOX_METHODS(TrackEncryption);
    146 
    -
    147  // Note: this definition is specific to the CENC protection type.
    -
    148  bool is_encrypted;
    -
    149  uint8_t default_iv_size;
    -
    150  std::vector<uint8_t> default_kid;
    -
    151 };
    -
    152 
    -
    153 struct SchemeInfo : Box {
    -
    154  DECLARE_BOX_METHODS(SchemeInfo);
    -
    155 
    -
    156  TrackEncryption track_encryption;
    -
    157 };
    -
    158 
    - -
    160  DECLARE_BOX_METHODS(ProtectionSchemeInfo);
    -
    161 
    -
    162  OriginalFormat format;
    -
    163  SchemeType type;
    -
    164  SchemeInfo info;
    -
    165 };
    -
    166 
    - -
    168  DECLARE_BOX_METHODS(MovieHeader);
    -
    169 
    -
    170  uint64_t creation_time;
    -
    171  uint64_t modification_time;
    -
    172  uint32_t timescale;
    -
    173  uint64_t duration;
    -
    174  int32_t rate;
    -
    175  int16_t volume;
    -
    176  uint32_t next_track_id;
    -
    177 };
    -
    178 
    - -
    180  enum TrackHeaderFlags {
    -
    181  kTrackEnabled = 0x000001,
    -
    182  kTrackInMovie = 0x000002,
    -
    183  kTrackInPreview = 0x000004,
    -
    184  };
    +
    147  uint8_t default_is_protected;
    +
    148  uint8_t default_per_sample_iv_size;
    +
    149  std::vector<uint8_t> default_kid;
    +
    150 
    +
    151  // For pattern-based encryption.
    +
    152  uint8_t default_crypt_byte_block;
    +
    153  uint8_t default_skip_byte_block;
    +
    154 
    +
    155  // Present only if
    +
    156  // |default_is_protected == 1 && default_per_sample_iv_size == 0|.
    +
    157  std::vector<uint8_t> default_constant_iv;
    +
    158 };
    +
    159 
    +
    160 struct SchemeInfo : Box {
    +
    161  DECLARE_BOX_METHODS(SchemeInfo);
    +
    162 
    +
    163  TrackEncryption track_encryption;
    +
    164 };
    +
    165 
    + +
    167  DECLARE_BOX_METHODS(ProtectionSchemeInfo);
    +
    168 
    +
    169  OriginalFormat format;
    +
    170  SchemeType type;
    +
    171  SchemeInfo info;
    +
    172 };
    +
    173 
    + +
    175  DECLARE_BOX_METHODS(MovieHeader);
    +
    176 
    +
    177  uint64_t creation_time;
    +
    178  uint64_t modification_time;
    +
    179  uint32_t timescale;
    +
    180  uint64_t duration;
    +
    181  int32_t rate;
    +
    182  int16_t volume;
    +
    183  uint32_t next_track_id;
    +
    184 };
    185 
    -
    186  DECLARE_BOX_METHODS(TrackHeader);
    -
    187 
    -
    188  uint64_t creation_time;
    -
    189  uint64_t modification_time;
    -
    190  uint32_t track_id;
    -
    191  uint64_t duration;
    -
    192  int16_t layer;
    -
    193  int16_t alternate_group;
    -
    194  int16_t volume;
    -
    195  // width and height specify the track's visual presentation size as
    -
    196  // fixed-point 16.16 values.
    -
    197  uint32_t width;
    -
    198  uint32_t height;
    -
    199 };
    -
    200 
    - -
    202  uint64_t segment_duration;
    -
    203  int64_t media_time;
    -
    204  int16_t media_rate_integer;
    -
    205  int16_t media_rate_fraction;
    + +
    187  enum TrackHeaderFlags {
    +
    188  kTrackEnabled = 0x000001,
    +
    189  kTrackInMovie = 0x000002,
    +
    190  kTrackInPreview = 0x000004,
    +
    191  };
    +
    192 
    +
    193  DECLARE_BOX_METHODS(TrackHeader);
    +
    194 
    +
    195  uint64_t creation_time;
    +
    196  uint64_t modification_time;
    +
    197  uint32_t track_id;
    +
    198  uint64_t duration;
    +
    199  int16_t layer;
    +
    200  int16_t alternate_group;
    +
    201  int16_t volume;
    +
    202  // width and height specify the track's visual presentation size as
    +
    203  // fixed-point 16.16 values.
    +
    204  uint32_t width;
    +
    205  uint32_t height;
    206 };
    207 
    -
    208 struct EditList : FullBox {
    -
    209  DECLARE_BOX_METHODS(EditList);
    -
    210 
    -
    211  std::vector<EditListEntry> edits;
    -
    212 };
    -
    213 
    -
    214 struct Edit : Box {
    -
    215  DECLARE_BOX_METHODS(Edit);
    -
    216 
    -
    217  EditList list;
    -
    218 };
    -
    219 
    - -
    221  DECLARE_BOX_METHODS(HandlerReference);
    -
    222 
    -
    223  FourCC handler_type;
    -
    224 };
    -
    225 
    -
    226 struct Language {
    -
    227  bool ReadWrite(BoxBuffer* buffer);
    -
    228  uint32_t ComputeSize() const;
    + +
    209  uint64_t segment_duration;
    +
    210  int64_t media_time;
    +
    211  int16_t media_rate_integer;
    +
    212  int16_t media_rate_fraction;
    +
    213 };
    +
    214 
    +
    215 struct EditList : FullBox {
    +
    216  DECLARE_BOX_METHODS(EditList);
    +
    217 
    +
    218  std::vector<EditListEntry> edits;
    +
    219 };
    +
    220 
    +
    221 struct Edit : Box {
    +
    222  DECLARE_BOX_METHODS(Edit);
    +
    223 
    +
    224  EditList list;
    +
    225 };
    +
    226 
    + +
    228  DECLARE_BOX_METHODS(HandlerReference);
    229 
    -
    230  std::string code;
    +
    230  FourCC handler_type;
    231 };
    232 
    -
    234 struct PrivFrame {
    -
    235  bool ReadWrite(BoxBuffer* buffer);
    -
    236  uint32_t ComputeSize() const;
    -
    237 
    -
    238  std::string owner;
    -
    239  std::string value;
    -
    240 };
    -
    241 
    -
    244 struct ID3v2 : FullBox {
    -
    245  DECLARE_BOX_METHODS(ID3v2);
    -
    246 
    -
    247  Language language;
    +
    233 struct Language {
    +
    234  bool ReadWrite(BoxBuffer* buffer);
    +
    235  uint32_t ComputeSize() const;
    +
    236 
    +
    237  std::string code;
    +
    238 };
    +
    239 
    +
    241 struct PrivFrame {
    +
    242  bool ReadWrite(BoxBuffer* buffer);
    +
    243  uint32_t ComputeSize() const;
    +
    244 
    +
    245  std::string owner;
    +
    246  std::string value;
    +
    247 };
    248 
    - -
    251 };
    -
    252 
    -
    253 struct Metadata : FullBox {
    -
    254  DECLARE_BOX_METHODS(Metadata);
    +
    251 struct ID3v2 : FullBox {
    +
    252  DECLARE_BOX_METHODS(ID3v2);
    +
    253 
    +
    254  Language language;
    255 
    -
    256  HandlerReference handler;
    -
    257  ID3v2 id3v2;
    +
    258 };
    259 
    - -
    261  DECLARE_BOX_METHODS(CodecConfigurationRecord);
    +
    260 struct Metadata : FullBox {
    +
    261  DECLARE_BOX_METHODS(Metadata);
    262 
    -
    263  FourCC box_type;
    -
    264  // Contains full codec configuration record, including possible extension
    -
    265  // boxes.
    -
    266  std::vector<uint8_t> data;
    -
    267 };
    -
    268 
    - -
    270  DECLARE_BOX_METHODS(PixelAspectRatio);
    -
    271 
    -
    272  uint32_t h_spacing;
    -
    273  uint32_t v_spacing;
    +
    263  HandlerReference handler;
    +
    264  ID3v2 id3v2;
    +
    265 };
    +
    266 
    + +
    268  DECLARE_BOX_METHODS(CodecConfigurationRecord);
    +
    269 
    +
    270  FourCC box_type;
    +
    271  // Contains full codec configuration record, including possible extension
    +
    272  // boxes.
    +
    273  std::vector<uint8_t> data;
    274 };
    275 
    - -
    277  DECLARE_BOX_METHODS(VideoSampleEntry);
    -
    278  // Returns actual format of this sample entry.
    -
    279  FourCC GetActualFormat() const {
    -
    280  return format == FOURCC_encv ? sinf.format.format : format;
    -
    281  }
    + +
    277  DECLARE_BOX_METHODS(PixelAspectRatio);
    +
    278 
    +
    279  uint32_t h_spacing;
    +
    280  uint32_t v_spacing;
    +
    281 };
    282 
    -
    283  FourCC format;
    -
    284  uint16_t data_reference_index;
    -
    285  uint16_t width;
    -
    286  uint16_t height;
    -
    287 
    -
    288  PixelAspectRatio pixel_aspect;
    - -
    290  CodecConfigurationRecord codec_config_record;
    -
    291 };
    -
    292 
    - -
    294  DECLARE_BOX_METHODS(ElementaryStreamDescriptor);
    -
    295 
    -
    296  AACAudioSpecificConfig aac_audio_specific_config;
    -
    297  ESDescriptor es_descriptor;
    + +
    284  DECLARE_BOX_METHODS(VideoSampleEntry);
    +
    285  // Returns actual format of this sample entry.
    +
    286  FourCC GetActualFormat() const {
    +
    287  return format == FOURCC_encv ? sinf.format.format : format;
    +
    288  }
    +
    289 
    +
    290  FourCC format;
    +
    291  uint16_t data_reference_index;
    +
    292  uint16_t width;
    +
    293  uint16_t height;
    +
    294 
    +
    295  PixelAspectRatio pixel_aspect;
    + +
    297  CodecConfigurationRecord codec_config_record;
    298 };
    299 
    -
    300 struct DTSSpecific : Box {
    -
    301  DECLARE_BOX_METHODS(DTSSpecific);
    + +
    301  DECLARE_BOX_METHODS(ElementaryStreamDescriptor);
    302 
    -
    303  uint32_t sampling_frequency;
    -
    304  uint32_t max_bitrate;
    -
    305  uint32_t avg_bitrate;
    -
    306  uint8_t pcm_sample_depth;
    -
    307  std::vector<uint8_t> extra_data;
    -
    308 };
    +
    303  AACAudioSpecificConfig aac_audio_specific_config;
    +
    304  ESDescriptor es_descriptor;
    +
    305 };
    +
    306 
    +
    307 struct DTSSpecific : Box {
    +
    308  DECLARE_BOX_METHODS(DTSSpecific);
    309 
    -
    310 struct AC3Specific : Box {
    -
    311  DECLARE_BOX_METHODS(AC3Specific);
    -
    312 
    -
    313  std::vector<uint8_t> data;
    -
    314 };
    -
    315 
    -
    316 struct EC3Specific : Box {
    -
    317  DECLARE_BOX_METHODS(EC3Specific);
    -
    318 
    -
    319  std::vector<uint8_t> data;
    -
    320 };
    -
    321 
    - -
    323  DECLARE_BOX_METHODS(AudioSampleEntry);
    -
    324  // Returns actual format of this sample entry.
    -
    325  FourCC GetActualFormat() const {
    -
    326  return format == FOURCC_enca ? sinf.format.format : format;
    -
    327  }
    +
    310  uint32_t sampling_frequency;
    +
    311  uint32_t max_bitrate;
    +
    312  uint32_t avg_bitrate;
    +
    313  uint8_t pcm_sample_depth;
    +
    314  std::vector<uint8_t> extra_data;
    +
    315 };
    +
    316 
    +
    317 struct AC3Specific : Box {
    +
    318  DECLARE_BOX_METHODS(AC3Specific);
    +
    319 
    +
    320  std::vector<uint8_t> data;
    +
    321 };
    +
    322 
    +
    323 struct EC3Specific : Box {
    +
    324  DECLARE_BOX_METHODS(EC3Specific);
    +
    325 
    +
    326  std::vector<uint8_t> data;
    +
    327 };
    328 
    -
    329  FourCC format;
    -
    330  uint16_t data_reference_index;
    -
    331  uint16_t channelcount;
    -
    332  uint16_t samplesize;
    -
    333  uint32_t samplerate;
    -
    334 
    - -
    336 
    - -
    338  DTSSpecific ddts;
    -
    339  AC3Specific dac3;
    -
    340  EC3Specific dec3;
    -
    341 };
    -
    342 
    - -
    344  DECLARE_BOX_METHODS(WebVTTConfigurationBox);
    -
    345  std::string config;
    -
    346 };
    -
    347 
    - -
    349  DECLARE_BOX_METHODS(WebVTTSourceLabelBox);
    -
    350  std::string source_label;
    -
    351 };
    -
    352 
    - -
    354  DECLARE_BOX_METHODS(TextSampleEntry);
    -
    355 
    -
    356  // Specifies fourcc of this sample entry. It needs to be set on write, e.g.
    -
    357  // set to 'wvtt' to write WVTTSampleEntry; On read, it is recovered from box
    -
    358  // header.
    -
    359  FourCC format;
    -
    360  uint16_t data_reference_index;
    -
    361 
    -
    362  // Sub boxes for wvtt text sample entry.
    -
    363  WebVTTConfigurationBox config;
    -
    364  WebVTTSourceLabelBox label;
    -
    365  // Optional MPEG4BitRateBox.
    -
    366 };
    -
    367 
    - -
    369  DECLARE_BOX_METHODS(SampleDescription);
    -
    370 
    -
    371  TrackType type;
    -
    372  // TODO(kqyang): Clean up the code to have one single member, e.g. by creating
    -
    373  // SampleEntry struct, std::vector<SampleEntry> sample_entries.
    -
    374  std::vector<VideoSampleEntry> video_entries;
    -
    375  std::vector<AudioSampleEntry> audio_entries;
    -
    376  std::vector<TextSampleEntry> text_entries;
    -
    377 };
    -
    378 
    -
    379 struct DecodingTime {
    -
    380  uint32_t sample_count;
    -
    381  uint32_t sample_delta;
    -
    382 };
    -
    383 
    -
    384 // stts.
    - -
    386  DECLARE_BOX_METHODS(DecodingTimeToSample);
    -
    387 
    -
    388  std::vector<DecodingTime> decoding_time;
    + +
    330  DECLARE_BOX_METHODS(AudioSampleEntry);
    +
    331  // Returns actual format of this sample entry.
    +
    332  FourCC GetActualFormat() const {
    +
    333  return format == FOURCC_enca ? sinf.format.format : format;
    +
    334  }
    +
    335 
    +
    336  FourCC format;
    +
    337  uint16_t data_reference_index;
    +
    338  uint16_t channelcount;
    +
    339  uint16_t samplesize;
    +
    340  uint32_t samplerate;
    +
    341 
    + +
    343 
    + +
    345  DTSSpecific ddts;
    +
    346  AC3Specific dac3;
    +
    347  EC3Specific dec3;
    +
    348 };
    +
    349 
    + +
    351  DECLARE_BOX_METHODS(WebVTTConfigurationBox);
    +
    352  std::string config;
    +
    353 };
    +
    354 
    + +
    356  DECLARE_BOX_METHODS(WebVTTSourceLabelBox);
    +
    357  std::string source_label;
    +
    358 };
    +
    359 
    + +
    361  DECLARE_BOX_METHODS(TextSampleEntry);
    +
    362 
    +
    363  // Specifies fourcc of this sample entry. It needs to be set on write, e.g.
    +
    364  // set to 'wvtt' to write WVTTSampleEntry; On read, it is recovered from box
    +
    365  // header.
    +
    366  FourCC format;
    +
    367  uint16_t data_reference_index;
    +
    368 
    +
    369  // Sub boxes for wvtt text sample entry.
    +
    370  WebVTTConfigurationBox config;
    +
    371  WebVTTSourceLabelBox label;
    +
    372  // Optional MPEG4BitRateBox.
    +
    373 };
    +
    374 
    + +
    376  DECLARE_BOX_METHODS(SampleDescription);
    +
    377 
    +
    378  TrackType type;
    +
    379  // TODO(kqyang): Clean up the code to have one single member, e.g. by creating
    +
    380  // SampleEntry struct, std::vector<SampleEntry> sample_entries.
    +
    381  std::vector<VideoSampleEntry> video_entries;
    +
    382  std::vector<AudioSampleEntry> audio_entries;
    +
    383  std::vector<TextSampleEntry> text_entries;
    +
    384 };
    +
    385 
    +
    386 struct DecodingTime {
    +
    387  uint32_t sample_count;
    +
    388  uint32_t sample_delta;
    389 };
    390 
    - -
    392  uint32_t sample_count;
    -
    393  // If version == 0, sample_offset is uint32_t;
    -
    394  // If version == 1, sample_offset is int32_t.
    -
    395  // Use int64_t so both can be supported properly.
    -
    396  int64_t sample_offset;
    -
    397 };
    -
    398 
    -
    399 // ctts. Optional.
    - -
    401  DECLARE_BOX_METHODS(CompositionTimeToSample);
    -
    402 
    -
    403  std::vector<CompositionOffset> composition_offset;
    +
    391 // stts.
    + +
    393  DECLARE_BOX_METHODS(DecodingTimeToSample);
    +
    394 
    +
    395  std::vector<DecodingTime> decoding_time;
    +
    396 };
    +
    397 
    + +
    399  uint32_t sample_count;
    +
    400  // If version == 0, sample_offset is uint32_t;
    +
    401  // If version == 1, sample_offset is int32_t.
    +
    402  // Use int64_t so both can be supported properly.
    +
    403  int64_t sample_offset;
    404 };
    405 
    -
    406 struct ChunkInfo {
    -
    407  uint32_t first_chunk;
    -
    408  uint32_t samples_per_chunk;
    -
    409  uint32_t sample_description_index;
    -
    410 };
    -
    411 
    -
    412 // stsc.
    - -
    414  DECLARE_BOX_METHODS(SampleToChunk);
    -
    415 
    -
    416  std::vector<ChunkInfo> chunk_info;
    +
    406 // ctts. Optional.
    + +
    408  DECLARE_BOX_METHODS(CompositionTimeToSample);
    +
    409 
    +
    410  std::vector<CompositionOffset> composition_offset;
    +
    411 };
    +
    412 
    +
    413 struct ChunkInfo {
    +
    414  uint32_t first_chunk;
    +
    415  uint32_t samples_per_chunk;
    +
    416  uint32_t sample_description_index;
    417 };
    418 
    -
    419 // stsz.
    -
    420 struct SampleSize : FullBox {
    -
    421  DECLARE_BOX_METHODS(SampleSize);
    +
    419 // stsc.
    + +
    421  DECLARE_BOX_METHODS(SampleToChunk);
    422 
    -
    423  uint32_t sample_size;
    -
    424  uint32_t sample_count;
    -
    425  std::vector<uint32_t> sizes;
    -
    426 };
    -
    427 
    -
    428 // stz2.
    - -
    430  DECLARE_BOX_METHODS(CompactSampleSize);
    -
    431 
    -
    432  uint8_t field_size;
    -
    433  std::vector<uint32_t> sizes;
    -
    434 };
    -
    435 
    -
    436 // co64.
    - -
    438  DECLARE_BOX_METHODS(ChunkLargeOffset);
    -
    439 
    -
    440  std::vector<uint64_t> offsets;
    +
    423  std::vector<ChunkInfo> chunk_info;
    +
    424 };
    +
    425 
    +
    426 // stsz.
    +
    427 struct SampleSize : FullBox {
    +
    428  DECLARE_BOX_METHODS(SampleSize);
    +
    429 
    +
    430  uint32_t sample_size;
    +
    431  uint32_t sample_count;
    +
    432  std::vector<uint32_t> sizes;
    +
    433 };
    +
    434 
    +
    435 // stz2.
    + +
    437  DECLARE_BOX_METHODS(CompactSampleSize);
    +
    438 
    +
    439  uint8_t field_size;
    +
    440  std::vector<uint32_t> sizes;
    441 };
    442 
    -
    443 // stco.
    - -
    445  DECLARE_BOX_METHODS(ChunkOffset);
    -
    446 };
    -
    447 
    -
    448 // stss. Optional.
    -
    449 struct SyncSample : FullBox {
    -
    450  DECLARE_BOX_METHODS(SyncSample);
    -
    451 
    -
    452  std::vector<uint32_t> sample_number;
    +
    443 // co64.
    + +
    445  DECLARE_BOX_METHODS(ChunkLargeOffset);
    +
    446 
    +
    447  std::vector<uint64_t> offsets;
    +
    448 };
    +
    449 
    +
    450 // stco.
    + +
    452  DECLARE_BOX_METHODS(ChunkOffset);
    453 };
    454 
    -
    455 struct SampleTable : Box {
    -
    456  DECLARE_BOX_METHODS(SampleTable);
    -
    457 
    -
    458  SampleDescription description;
    -
    459  DecodingTimeToSample decoding_time_to_sample;
    -
    460  CompositionTimeToSample composition_time_to_sample;
    -
    461  SampleToChunk sample_to_chunk;
    -
    462  // Either SampleSize or CompactSampleSize must present. Store in SampleSize.
    -
    463  SampleSize sample_size;
    -
    464  // Either ChunkOffset or ChunkLargeOffset must present. Store in
    -
    465  // ChunkLargeOffset.
    -
    466  ChunkLargeOffset chunk_large_offset;
    -
    467  SyncSample sync_sample;
    -
    468 };
    -
    469 
    - -
    471  DECLARE_BOX_METHODS(MediaHeader);
    -
    472 
    -
    473  uint64_t creation_time;
    -
    474  uint64_t modification_time;
    -
    475  uint32_t timescale;
    -
    476  uint64_t duration;
    -
    477  Language language;
    -
    478 };
    +
    455 // stss. Optional.
    +
    456 struct SyncSample : FullBox {
    +
    457  DECLARE_BOX_METHODS(SyncSample);
    +
    458 
    +
    459  std::vector<uint32_t> sample_number;
    +
    460 };
    +
    461 
    +
    462 struct SampleTable : Box {
    +
    463  DECLARE_BOX_METHODS(SampleTable);
    +
    464 
    +
    465  SampleDescription description;
    +
    466  DecodingTimeToSample decoding_time_to_sample;
    +
    467  CompositionTimeToSample composition_time_to_sample;
    +
    468  SampleToChunk sample_to_chunk;
    +
    469  // Either SampleSize or CompactSampleSize must present. Store in SampleSize.
    +
    470  SampleSize sample_size;
    +
    471  // Either ChunkOffset or ChunkLargeOffset must present. Store in
    +
    472  // ChunkLargeOffset.
    +
    473  ChunkLargeOffset chunk_large_offset;
    +
    474  SyncSample sync_sample;
    +
    475 };
    +
    476 
    + +
    478  DECLARE_BOX_METHODS(MediaHeader);
    479 
    - -
    481  DECLARE_BOX_METHODS(VideoMediaHeader);
    -
    482 
    -
    483  uint16_t graphicsmode;
    -
    484  uint16_t opcolor_red;
    -
    485  uint16_t opcolor_green;
    -
    486  uint16_t opcolor_blue;
    -
    487 };
    -
    488 
    - -
    490  DECLARE_BOX_METHODS(SoundMediaHeader);
    -
    491 
    -
    492  uint16_t balance;
    -
    493 };
    -
    494 
    - -
    496  DECLARE_BOX_METHODS(SubtitleMediaHeader);
    -
    497 };
    +
    480  uint64_t creation_time;
    +
    481  uint64_t modification_time;
    +
    482  uint32_t timescale;
    +
    483  uint64_t duration;
    +
    484  Language language;
    +
    485 };
    +
    486 
    + +
    488  DECLARE_BOX_METHODS(VideoMediaHeader);
    +
    489 
    +
    490  uint16_t graphicsmode;
    +
    491  uint16_t opcolor_red;
    +
    492  uint16_t opcolor_green;
    +
    493  uint16_t opcolor_blue;
    +
    494 };
    +
    495 
    + +
    497  DECLARE_BOX_METHODS(SoundMediaHeader);
    498 
    - -
    500  DECLARE_BOX_METHODS(DataEntryUrl);
    +
    499  uint16_t balance;
    +
    500 };
    501 
    -
    502  std::vector<uint8_t> location;
    -
    503 };
    -
    504 
    - -
    506  DECLARE_BOX_METHODS(DataReference);
    -
    507 
    -
    508  // data entry can be either url or urn box. Fix to url box for now.
    -
    509  std::vector<DataEntryUrl> data_entry;
    + +
    503  DECLARE_BOX_METHODS(SubtitleMediaHeader);
    +
    504 };
    +
    505 
    + +
    507  DECLARE_BOX_METHODS(DataEntryUrl);
    +
    508 
    +
    509  std::vector<uint8_t> location;
    510 };
    511 
    - -
    513  DECLARE_BOX_METHODS(DataInformation);
    + +
    513  DECLARE_BOX_METHODS(DataReference);
    514 
    -
    515  DataReference dref;
    -
    516 };
    -
    517 
    - -
    519  DECLARE_BOX_METHODS(MediaInformation);
    -
    520 
    -
    521  DataInformation dinf;
    -
    522  SampleTable sample_table;
    -
    523  // Exactly one specific meida header shall be present, vmhd, smhd, hmhd, nmhd.
    -
    524  VideoMediaHeader vmhd;
    -
    525  SoundMediaHeader smhd;
    -
    526  SubtitleMediaHeader sthd;
    -
    527 };
    -
    528 
    -
    529 struct Media : Box {
    -
    530  DECLARE_BOX_METHODS(Media);
    -
    531 
    -
    532  MediaHeader header;
    -
    533  HandlerReference handler;
    -
    534  MediaInformation information;
    -
    535 };
    -
    536 
    -
    537 struct Track : Box {
    -
    538  DECLARE_BOX_METHODS(Track);
    -
    539 
    -
    540  TrackHeader header;
    -
    541  Media media;
    -
    542  Edit edit;
    -
    543  SampleEncryption sample_encryption;
    -
    544 };
    -
    545 
    - -
    547  DECLARE_BOX_METHODS(MovieExtendsHeader);
    -
    548 
    -
    549  uint64_t fragment_duration;
    -
    550 };
    -
    551 
    - -
    553  DECLARE_BOX_METHODS(TrackExtends);
    -
    554 
    -
    555  uint32_t track_id;
    -
    556  uint32_t default_sample_description_index;
    -
    557  uint32_t default_sample_duration;
    -
    558  uint32_t default_sample_size;
    -
    559  uint32_t default_sample_flags;
    -
    560 };
    +
    515  // data entry can be either url or urn box. Fix to url box for now.
    +
    516  std::vector<DataEntryUrl> data_entry;
    +
    517 };
    +
    518 
    + +
    520  DECLARE_BOX_METHODS(DataInformation);
    +
    521 
    +
    522  DataReference dref;
    +
    523 };
    +
    524 
    + +
    526  DECLARE_BOX_METHODS(MediaInformation);
    +
    527 
    +
    528  DataInformation dinf;
    +
    529  SampleTable sample_table;
    +
    530  // Exactly one specific meida header shall be present, vmhd, smhd, hmhd, nmhd.
    +
    531  VideoMediaHeader vmhd;
    +
    532  SoundMediaHeader smhd;
    +
    533  SubtitleMediaHeader sthd;
    +
    534 };
    +
    535 
    +
    536 struct Media : Box {
    +
    537  DECLARE_BOX_METHODS(Media);
    +
    538 
    +
    539  MediaHeader header;
    +
    540  HandlerReference handler;
    +
    541  MediaInformation information;
    +
    542 };
    +
    543 
    +
    544 struct Track : Box {
    +
    545  DECLARE_BOX_METHODS(Track);
    +
    546 
    +
    547  TrackHeader header;
    +
    548  Media media;
    +
    549  Edit edit;
    +
    550  SampleEncryption sample_encryption;
    +
    551 };
    +
    552 
    + +
    554  DECLARE_BOX_METHODS(MovieExtendsHeader);
    +
    555 
    +
    556  uint64_t fragment_duration;
    +
    557 };
    +
    558 
    + +
    560  DECLARE_BOX_METHODS(TrackExtends);
    561 
    -
    562 struct MovieExtends : Box {
    -
    563  DECLARE_BOX_METHODS(MovieExtends);
    -
    564 
    -
    565  MovieExtendsHeader header;
    -
    566  std::vector<TrackExtends> tracks;
    +
    562  uint32_t track_id;
    +
    563  uint32_t default_sample_description_index;
    +
    564  uint32_t default_sample_duration;
    +
    565  uint32_t default_sample_size;
    +
    566  uint32_t default_sample_flags;
    567 };
    568 
    -
    569 struct Movie : Box {
    -
    570  DECLARE_BOX_METHODS(Movie);
    +
    569 struct MovieExtends : Box {
    +
    570  DECLARE_BOX_METHODS(MovieExtends);
    571 
    -
    572  MovieHeader header;
    -
    573  Metadata metadata; // Used to hold version information.
    -
    574  MovieExtends extends;
    -
    575  std::vector<Track> tracks;
    -
    576  std::vector<ProtectionSystemSpecificHeader> pssh;
    -
    577 };
    +
    572  MovieExtendsHeader header;
    +
    573  std::vector<TrackExtends> tracks;
    +
    574 };
    +
    575 
    +
    576 struct Movie : Box {
    +
    577  DECLARE_BOX_METHODS(Movie);
    578 
    - -
    580  DECLARE_BOX_METHODS(TrackFragmentDecodeTime);
    -
    581 
    -
    582  uint64_t decode_time;
    -
    583 };
    -
    584 
    - -
    586  DECLARE_BOX_METHODS(MovieFragmentHeader);
    -
    587 
    -
    588  uint32_t sequence_number;
    -
    589 };
    -
    590 
    - -
    592  enum TrackFragmentFlagsMasks {
    -
    593  kBaseDataOffsetPresentMask = 0x000001,
    -
    594  kSampleDescriptionIndexPresentMask = 0x000002,
    -
    595  kDefaultSampleDurationPresentMask = 0x000008,
    -
    596  kDefaultSampleSizePresentMask = 0x000010,
    -
    597  kDefaultSampleFlagsPresentMask = 0x000020,
    -
    598  kDurationIsEmptyMask = 0x010000,
    -
    599  kDefaultBaseIsMoofMask = 0x020000,
    -
    600  };
    -
    601 
    -
    602  enum SampleFlagsMasks {
    -
    603  kReservedMask = 0xFC000000,
    -
    604  kSampleDependsOnMask = 0x03000000,
    -
    605  kSampleIsDependedOnMask = 0x00C00000,
    -
    606  kSampleHasRedundancyMask = 0x00300000,
    -
    607  kSamplePaddingValueMask = 0x000E0000,
    -
    608  kNonKeySampleMask = 0x00010000,
    -
    609  kSampleDegradationPriorityMask = 0x0000FFFF,
    -
    610  };
    -
    611 
    -
    612  DECLARE_BOX_METHODS(TrackFragmentHeader);
    -
    613 
    -
    614  uint32_t track_id;
    -
    615  uint32_t sample_description_index;
    -
    616  uint32_t default_sample_duration;
    -
    617  uint32_t default_sample_size;
    -
    618  uint32_t default_sample_flags;
    -
    619 };
    +
    579  MovieHeader header;
    +
    580  Metadata metadata; // Used to hold version information.
    +
    581  MovieExtends extends;
    +
    582  std::vector<Track> tracks;
    +
    583  std::vector<ProtectionSystemSpecificHeader> pssh;
    +
    584 };
    +
    585 
    + +
    587  DECLARE_BOX_METHODS(TrackFragmentDecodeTime);
    +
    588 
    +
    589  uint64_t decode_time;
    +
    590 };
    +
    591 
    + +
    593  DECLARE_BOX_METHODS(MovieFragmentHeader);
    +
    594 
    +
    595  uint32_t sequence_number;
    +
    596 };
    +
    597 
    + +
    599  enum TrackFragmentFlagsMasks {
    +
    600  kBaseDataOffsetPresentMask = 0x000001,
    +
    601  kSampleDescriptionIndexPresentMask = 0x000002,
    +
    602  kDefaultSampleDurationPresentMask = 0x000008,
    +
    603  kDefaultSampleSizePresentMask = 0x000010,
    +
    604  kDefaultSampleFlagsPresentMask = 0x000020,
    +
    605  kDurationIsEmptyMask = 0x010000,
    +
    606  kDefaultBaseIsMoofMask = 0x020000,
    +
    607  };
    +
    608 
    +
    609  enum SampleFlagsMasks {
    +
    610  kReservedMask = 0xFC000000,
    +
    611  kSampleDependsOnMask = 0x03000000,
    +
    612  kSampleIsDependedOnMask = 0x00C00000,
    +
    613  kSampleHasRedundancyMask = 0x00300000,
    +
    614  kSamplePaddingValueMask = 0x000E0000,
    +
    615  kNonKeySampleMask = 0x00010000,
    +
    616  kSampleDegradationPriorityMask = 0x0000FFFF,
    +
    617  };
    +
    618 
    +
    619  DECLARE_BOX_METHODS(TrackFragmentHeader);
    620 
    - -
    622  enum TrackFragmentFlagsMasks {
    -
    623  kDataOffsetPresentMask = 0x000001,
    -
    624  kFirstSampleFlagsPresentMask = 0x000004,
    -
    625  kSampleDurationPresentMask = 0x000100,
    -
    626  kSampleSizePresentMask = 0x000200,
    -
    627  kSampleFlagsPresentMask = 0x000400,
    -
    628  kSampleCompTimeOffsetsPresentMask = 0x000800,
    -
    629  };
    -
    630 
    -
    631  DECLARE_BOX_METHODS(TrackFragmentRun);
    -
    632 
    -
    633  uint32_t sample_count;
    -
    634  uint32_t data_offset;
    -
    635  std::vector<uint32_t> sample_flags;
    -
    636  std::vector<uint32_t> sample_sizes;
    -
    637  std::vector<uint32_t> sample_durations;
    -
    638  std::vector<int64_t> sample_composition_time_offsets;
    -
    639 };
    -
    640 
    - -
    642  enum GroupDescriptionIndexBase {
    -
    643  kTrackGroupDescriptionIndexBase = 0,
    -
    644  kTrackFragmentGroupDescriptionIndexBase = 0x10000,
    -
    645  };
    -
    646 
    -
    647  uint32_t sample_count;
    -
    648  uint32_t group_description_index;
    -
    649 };
    -
    650 
    - -
    652  DECLARE_BOX_METHODS(SampleToGroup);
    +
    621  uint32_t track_id;
    +
    622  uint32_t sample_description_index;
    +
    623  uint32_t default_sample_duration;
    +
    624  uint32_t default_sample_size;
    +
    625  uint32_t default_sample_flags;
    +
    626 };
    +
    627 
    + +
    629  enum TrackFragmentFlagsMasks {
    +
    630  kDataOffsetPresentMask = 0x000001,
    +
    631  kFirstSampleFlagsPresentMask = 0x000004,
    +
    632  kSampleDurationPresentMask = 0x000100,
    +
    633  kSampleSizePresentMask = 0x000200,
    +
    634  kSampleFlagsPresentMask = 0x000400,
    +
    635  kSampleCompTimeOffsetsPresentMask = 0x000800,
    +
    636  };
    +
    637 
    +
    638  DECLARE_BOX_METHODS(TrackFragmentRun);
    +
    639 
    +
    640  uint32_t sample_count;
    +
    641  uint32_t data_offset;
    +
    642  std::vector<uint32_t> sample_flags;
    +
    643  std::vector<uint32_t> sample_sizes;
    +
    644  std::vector<uint32_t> sample_durations;
    +
    645  std::vector<int64_t> sample_composition_time_offsets;
    +
    646 };
    +
    647 
    + +
    649  enum GroupDescriptionIndexBase {
    +
    650  kTrackGroupDescriptionIndexBase = 0,
    +
    651  kTrackFragmentGroupDescriptionIndexBase = 0x10000,
    +
    652  };
    653 
    -
    654  uint32_t grouping_type;
    -
    655  uint32_t grouping_type_parameter; // Version 1 only.
    -
    656  std::vector<SampleToGroupEntry> entries;
    -
    657 };
    -
    658 
    - - - -
    662 
    -
    663  bool is_encrypted;
    -
    664  uint8_t iv_size;
    -
    665  std::vector<uint8_t> key_id;
    -
    666 };
    -
    667 
    - -
    669  DECLARE_BOX_METHODS(SampleGroupDescription);
    -
    670 
    -
    671  uint32_t grouping_type;
    -
    672  std::vector<CencSampleEncryptionInfoEntry> entries;
    -
    673 };
    -
    674 
    -
    675 struct TrackFragment : Box {
    -
    676  DECLARE_BOX_METHODS(TrackFragment);
    +
    654  uint32_t sample_count;
    +
    655  uint32_t group_description_index;
    +
    656 };
    +
    657 
    + +
    659  DECLARE_BOX_METHODS(SampleToGroup);
    +
    660 
    +
    661  uint32_t grouping_type;
    +
    662  uint32_t grouping_type_parameter; // Version 1 only.
    +
    663  std::vector<SampleToGroupEntry> entries;
    +
    664 };
    +
    665 
    + + + +
    669 
    +
    670  uint8_t is_protected;
    +
    671  uint8_t per_sample_iv_size;
    +
    672  std::vector<uint8_t> key_id;
    +
    673 
    +
    674  // For pattern-based encryption.
    +
    675  uint8_t crypt_byte_block;
    +
    676  uint8_t skip_byte_block;
    677 
    -
    678  TrackFragmentHeader header;
    -
    679  std::vector<TrackFragmentRun> runs;
    -
    680  bool decode_time_absent;
    -
    681  TrackFragmentDecodeTime decode_time;
    -
    682  SampleToGroup sample_to_group;
    -
    683  SampleGroupDescription sample_group_description;
    -
    684  SampleAuxiliaryInformationSize auxiliary_size;
    -
    685  SampleAuxiliaryInformationOffset auxiliary_offset;
    -
    686  SampleEncryption sample_encryption;
    +
    678  // Present only if |is_protected == 1 && per_sample_iv_size == 0|.
    +
    679  std::vector<uint8_t> constant_iv;
    +
    680 };
    +
    681 
    + +
    683  DECLARE_BOX_METHODS(SampleGroupDescription);
    +
    684 
    +
    685  uint32_t grouping_type;
    +
    686  std::vector<CencSampleEncryptionInfoEntry> entries;
    687 };
    688 
    -
    689 struct MovieFragment : Box {
    -
    690  DECLARE_BOX_METHODS(MovieFragment);
    +
    689 struct TrackFragment : Box {
    +
    690  DECLARE_BOX_METHODS(TrackFragment);
    691 
    -
    692  MovieFragmentHeader header;
    -
    693  std::vector<TrackFragment> tracks;
    -
    694  std::vector<ProtectionSystemSpecificHeader> pssh;
    -
    695 };
    -
    696 
    - -
    698  enum SAPType {
    -
    699  TypeUnknown = 0,
    -
    700  Type1 = 1, // T(ept) = T(dec) = T(sap) = T(ptf)
    -
    701  Type2 = 2, // T(ept) = T(dec) = T(sap) < T(ptf)
    -
    702  Type3 = 3, // T(ept) < T(dec) = T(sap) <= T(ptf)
    -
    703  Type4 = 4, // T(ept) <= T(ptf) < T(dec) = T(sap)
    -
    704  Type5 = 5, // T(ept) = T(dec) < T(sap)
    -
    705  Type6 = 6, // T(ept) < T(dec) < T(sap)
    -
    706  };
    -
    707 
    -
    708  bool reference_type;
    -
    709  uint32_t referenced_size;
    -
    710  uint32_t subsegment_duration;
    -
    711  bool starts_with_sap;
    -
    712  SAPType sap_type;
    -
    713  uint32_t sap_delta_time;
    -
    714  // We add this field to keep track of earliest_presentation_time in this
    -
    715  // subsegment. It is not part of SegmentReference.
    -
    716  uint64_t earliest_presentation_time;
    -
    717 };
    -
    718 
    - -
    720  DECLARE_BOX_METHODS(SegmentIndex);
    +
    692  TrackFragmentHeader header;
    +
    693  std::vector<TrackFragmentRun> runs;
    +
    694  bool decode_time_absent;
    +
    695  TrackFragmentDecodeTime decode_time;
    +
    696  SampleToGroup sample_to_group;
    +
    697  SampleGroupDescription sample_group_description;
    +
    698  SampleAuxiliaryInformationSize auxiliary_size;
    +
    699  SampleAuxiliaryInformationOffset auxiliary_offset;
    +
    700  SampleEncryption sample_encryption;
    +
    701 };
    +
    702 
    +
    703 struct MovieFragment : Box {
    +
    704  DECLARE_BOX_METHODS(MovieFragment);
    +
    705 
    +
    706  MovieFragmentHeader header;
    +
    707  std::vector<TrackFragment> tracks;
    +
    708  std::vector<ProtectionSystemSpecificHeader> pssh;
    +
    709 };
    +
    710 
    + +
    712  enum SAPType {
    +
    713  TypeUnknown = 0,
    +
    714  Type1 = 1, // T(ept) = T(dec) = T(sap) = T(ptf)
    +
    715  Type2 = 2, // T(ept) = T(dec) = T(sap) < T(ptf)
    +
    716  Type3 = 3, // T(ept) < T(dec) = T(sap) <= T(ptf)
    +
    717  Type4 = 4, // T(ept) <= T(ptf) < T(dec) = T(sap)
    +
    718  Type5 = 5, // T(ept) = T(dec) < T(sap)
    +
    719  Type6 = 6, // T(ept) < T(dec) < T(sap)
    +
    720  };
    721 
    -
    722  uint32_t reference_id;
    -
    723  uint32_t timescale;
    -
    724  uint64_t earliest_presentation_time;
    -
    725  uint64_t first_offset;
    -
    726  std::vector<SegmentReference> references;
    -
    727 };
    -
    728 
    -
    729 // The actual data is parsed and written separately.
    -
    730 struct MediaData : Box {
    -
    731  DECLARE_BOX_METHODS(MediaData);
    +
    722  bool reference_type;
    +
    723  uint32_t referenced_size;
    +
    724  uint32_t subsegment_duration;
    +
    725  bool starts_with_sap;
    +
    726  SAPType sap_type;
    +
    727  uint32_t sap_delta_time;
    +
    728  // We add this field to keep track of earliest_presentation_time in this
    +
    729  // subsegment. It is not part of SegmentReference.
    +
    730  uint64_t earliest_presentation_time;
    +
    731 };
    732 
    -
    733  uint32_t data_size;
    -
    734 };
    + +
    734  DECLARE_BOX_METHODS(SegmentIndex);
    735 
    -
    736 struct CueSourceIDBox : Box {
    -
    737  DECLARE_BOX_METHODS(CueSourceIDBox);
    -
    738  int32_t source_id;
    -
    739 };
    -
    740 
    -
    741 struct CueTimeBox : Box {
    -
    742  DECLARE_BOX_METHODS(CueTimeBox);
    -
    743  std::string cue_current_time;
    -
    744 };
    -
    745 
    -
    746 struct CueIDBox : Box {
    -
    747  DECLARE_BOX_METHODS(CueIDBox);
    -
    748  std::string cue_id;
    -
    749 };
    -
    750 
    -
    751 struct CueSettingsBox : Box {
    -
    752  DECLARE_BOX_METHODS(CueSettingsBox);
    -
    753  std::string settings;
    -
    754 };
    -
    755 
    -
    756 struct CuePayloadBox : Box {
    -
    757  DECLARE_BOX_METHODS(CuePayloadBox);
    -
    758  std::string cue_text;
    -
    759 };
    -
    760 
    -
    761 struct VTTEmptyCueBox : Box {
    -
    762  DECLARE_BOX_METHODS(VTTEmptyCueBox);
    +
    736  uint32_t reference_id;
    +
    737  uint32_t timescale;
    +
    738  uint64_t earliest_presentation_time;
    +
    739  uint64_t first_offset;
    +
    740  std::vector<SegmentReference> references;
    +
    741 };
    +
    742 
    +
    743 // The actual data is parsed and written separately.
    +
    744 struct MediaData : Box {
    +
    745  DECLARE_BOX_METHODS(MediaData);
    +
    746 
    +
    747  uint32_t data_size;
    +
    748 };
    +
    749 
    +
    750 struct CueSourceIDBox : Box {
    +
    751  DECLARE_BOX_METHODS(CueSourceIDBox);
    +
    752  int32_t source_id;
    +
    753 };
    +
    754 
    +
    755 struct CueTimeBox : Box {
    +
    756  DECLARE_BOX_METHODS(CueTimeBox);
    +
    757  std::string cue_current_time;
    +
    758 };
    +
    759 
    +
    760 struct CueIDBox : Box {
    +
    761  DECLARE_BOX_METHODS(CueIDBox);
    +
    762  std::string cue_id;
    763 };
    764 
    - -
    766  DECLARE_BOX_METHODS(VTTAdditionalTextBox);
    -
    767  std::string cue_additional_text;
    +
    765 struct CueSettingsBox : Box {
    +
    766  DECLARE_BOX_METHODS(CueSettingsBox);
    +
    767  std::string settings;
    768 };
    769 
    -
    770 struct VTTCueBox : Box {
    -
    771  DECLARE_BOX_METHODS(VTTCueBox);
    -
    772 
    -
    773  CueSourceIDBox cue_source_id;
    -
    774  CueIDBox cue_id;
    -
    775  CueTimeBox cue_time;
    -
    776  CueSettingsBox cue_settings;
    -
    777  CuePayloadBox cue_payload;
    -
    778 };
    -
    779 
    -
    780 #undef DECLARE_BOX
    -
    781 
    -
    782 } // namespace mp4
    -
    783 } // namespace media
    -
    784 } // namespace edash_packager
    -
    785 
    -
    786 #endif // MEDIA_FORMATS_MP4_BOX_DEFINITIONS_H_
    +
    770 struct CuePayloadBox : Box {
    +
    771  DECLARE_BOX_METHODS(CuePayloadBox);
    +
    772  std::string cue_text;
    +
    773 };
    +
    774 
    +
    775 struct VTTEmptyCueBox : Box {
    +
    776  DECLARE_BOX_METHODS(VTTEmptyCueBox);
    +
    777 };
    +
    778 
    + +
    780  DECLARE_BOX_METHODS(VTTAdditionalTextBox);
    +
    781  std::string cue_additional_text;
    +
    782 };
    +
    783 
    +
    784 struct VTTCueBox : Box {
    +
    785  DECLARE_BOX_METHODS(VTTCueBox);
    +
    786 
    +
    787  CueSourceIDBox cue_source_id;
    +
    788  CueIDBox cue_id;
    +
    789  CueTimeBox cue_time;
    +
    790  CueSettingsBox cue_settings;
    +
    791  CuePayloadBox cue_payload;
    +
    792 };
    +
    793 
    +
    794 #undef DECLARE_BOX
    +
    795 
    +
    796 } // namespace mp4
    +
    797 } // namespace media
    +
    798 } // namespace edash_packager
    +
    799 
    +
    800 #endif // MEDIA_FORMATS_MP4_BOX_DEFINITIONS_H_
    - - -
    Implemented per http://id3.org/id3v2.4.0-frames.
    - - + + +
    Implemented per http://id3.org/id3v2.4.0-frames.
    + + - - - - - - + + + + + + - - - - - - - -
    bool ParseFromSampleEncryptionData(size_t iv_size, std::vector< SampleEncryptionEntry > *sample_encryption_entries) const
    + + + + + + + +
    bool ParseFromSampleEncryptionData(size_t iv_size, std::vector< SampleEncryptionEntry > *sample_encryption_entries) const
    - - - + + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - - - - - - + + + + + + - - -
    PrivFrame private_frame
    We only support PrivateFrame in ID3. Other frames are ignored.
    - + + +
    PrivFrame private_frame
    We only support PrivateFrame in ID3. Other frames are ignored.
    + - - - - - - - - + + + + + + + + - - + + - - - - + + + + - - - - -
    bool ParseFromBuffer(uint8_t iv_size, bool has_subsamples, BufferReader *reader)
    - + + + + +
    bool ParseFromBuffer(uint8_t iv_size, bool has_subsamples, BufferReader *reader)
    + - - + + - - -
    bool ReadWrite(uint8_t iv_size, bool has_subsamples, BoxBuffer *buffer)
    - - - - + + +
    bool ReadWrite(uint8_t iv_size, bool has_subsamples, BoxBuffer *buffer)
    + + + + - + diff --git a/docs/d5/d89/widevine__key__source_8cc_source.html b/docs/d5/d89/widevine__key__source_8cc_source.html index 09ec1fb50f..43c7a8d6bf 100644 --- a/docs/d5/d89/widevine__key__source_8cc_source.html +++ b/docs/d5/d89/widevine__key__source_8cc_source.html @@ -724,7 +724,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d8f/webm__cluster__parser_8cc_source.html b/docs/d5/d8f/webm__cluster__parser_8cc_source.html index 4cf2961a40..f50d8bcef4 100644 --- a/docs/d5/d8f/webm__cluster__parser_8cc_source.html +++ b/docs/d5/d8f/webm__cluster__parser_8cc_source.html @@ -740,7 +740,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d91/es__parser__adts_8cc_source.html b/docs/d5/d91/es__parser__adts_8cc_source.html index 513b803f90..ae431b8d86 100644 --- a/docs/d5/d91/es__parser__adts_8cc_source.html +++ b/docs/d5/d91/es__parser__adts_8cc_source.html @@ -376,7 +376,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d98/encryptor_8cc_source.html b/docs/d5/d98/encryptor_8cc_source.html index 6e3a7426b7..7562965cb2 100644 --- a/docs/d5/d98/encryptor_8cc_source.html +++ b/docs/d5/d98/encryptor_8cc_source.html @@ -233,7 +233,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d98/structedash__packager_1_1media_1_1H264Pps-members.html b/docs/d5/d98/structedash__packager_1_1media_1_1H264Pps-members.html index 314f75bcb1..3496f8a0da 100644 --- a/docs/d5/d98/structedash__packager_1_1media_1_1H264Pps-members.html +++ b/docs/d5/d98/structedash__packager_1_1media_1_1H264Pps-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html b/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html index fcac723294..45ef3dfe81 100644 --- a/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html +++ b/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d9f/structedash__packager_1_1media_1_1H265Pps-members.html b/docs/d5/d9f/structedash__packager_1_1media_1_1H265Pps-members.html index 5d90471006..870e135c7f 100644 --- a/docs/d5/d9f/structedash__packager_1_1media_1_1H265Pps-members.html +++ b/docs/d5/d9f/structedash__packager_1_1media_1_1H265Pps-members.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/da4/aes__encryptor_8cc_source.html b/docs/d5/da4/aes__encryptor_8cc_source.html index acbc495393..57c139fa97 100644 --- a/docs/d5/da4/aes__encryptor_8cc_source.html +++ b/docs/d5/da4/aes__encryptor_8cc_source.html @@ -347,7 +347,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html b/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html index dda36ddca5..56d253240f 100644 --- a/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html +++ b/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dba/ts__packet_8cc_source.html b/docs/d5/dba/ts__packet_8cc_source.html index 60af67111f..3b57142f11 100644 --- a/docs/d5/dba/ts__packet_8cc_source.html +++ b/docs/d5/dba/ts__packet_8cc_source.html @@ -304,7 +304,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dc1/webm__webvtt__parser_8cc_source.html b/docs/d5/dc1/webm__webvtt__parser_8cc_source.html index d925c87ea3..a1f04d7d22 100644 --- a/docs/d5/dc1/webm__webvtt__parser_8cc_source.html +++ b/docs/d5/dc1/webm__webvtt__parser_8cc_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dc9/classedash__packager_1_1media_1_1AesCbcDecryptor-members.html b/docs/d5/dc9/classedash__packager_1_1media_1_1AesCbcDecryptor-members.html index 19123ee52e..5f1a3c0451 100644 --- a/docs/d5/dc9/classedash__packager_1_1media_1_1AesCbcDecryptor-members.html +++ b/docs/d5/dc9/classedash__packager_1_1media_1_1AesCbcDecryptor-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html b/docs/d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html index b93728ddb0..c9a731333e 100644 --- a/docs/d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html +++ b/docs/d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html @@ -293,7 +293,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html b/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html index 6aa9646acf..eca8d4151a 100644 --- a/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html +++ b/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html @@ -295,7 +295,7 @@ Public Member Functions diff --git a/docs/d5/dce/classedash__packager_1_1media_1_1VP8Parser.html b/docs/d5/dce/classedash__packager_1_1media_1_1VP8Parser.html index a57098a0c1..a10e38f050 100644 --- a/docs/d5/dce/classedash__packager_1_1media_1_1VP8Parser.html +++ b/docs/d5/dce/classedash__packager_1_1media_1_1VP8Parser.html @@ -235,7 +235,7 @@ Additional Inherited Members diff --git a/docs/d5/dcf/rsa__key_8h_source.html b/docs/d5/dcf/rsa__key_8h_source.html index f8c628415e..c898c6bfdc 100644 --- a/docs/d5/dcf/rsa__key_8h_source.html +++ b/docs/d5/dcf/rsa__key_8h_source.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dd2/classedash__packager_1_1media_1_1VPxParser.html b/docs/d5/dd2/classedash__packager_1_1media_1_1VPxParser.html index d11af8cba1..1a257a2665 100644 --- a/docs/d5/dd2/classedash__packager_1_1media_1_1VPxParser.html +++ b/docs/d5/dd2/classedash__packager_1_1media_1_1VPxParser.html @@ -205,7 +205,7 @@ Protected Member Functions diff --git a/docs/d5/dda/ts__section__psi_8h_source.html b/docs/d5/dda/ts__section__psi_8h_source.html index 701176d4cc..b778b2eea5 100644 --- a/docs/d5/dda/ts__section__psi_8h_source.html +++ b/docs/d5/dda/ts__section__psi_8h_source.html @@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/de0/bit__reader_8cc_source.html b/docs/d5/de0/bit__reader_8cc_source.html index 7778207bb8..4f6b4cb880 100644 --- a/docs/d5/de0/bit__reader_8cc_source.html +++ b/docs/d5/de0/bit__reader_8cc_source.html @@ -199,7 +199,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html b/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html index 744280ba3c..3b3324123d 100644 --- a/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html +++ b/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/def/ts__section__pmt_8h_source.html b/docs/d5/def/ts__section__pmt_8h_source.html index 7f776494b7..8eb957d136 100644 --- a/docs/d5/def/ts__section__pmt_8h_source.html +++ b/docs/d5/def/ts__section__pmt_8h_source.html @@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dfc/file_8cc_source.html b/docs/d5/dfc/file_8cc_source.html index 4132a8a25e..f38328b808 100644 --- a/docs/d5/dfc/file_8cc_source.html +++ b/docs/d5/dfc/file_8cc_source.html @@ -376,7 +376,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html b/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html index 466f9ac615..a8444397c5 100644 --- a/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html +++ b/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d05/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html b/docs/d6/d05/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html index 58d50eb072..61754c4aa0 100644 --- a/docs/d6/d05/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html +++ b/docs/d6/d05/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html b/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html index dca12749f4..d35a852a77 100644 --- a/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html +++ b/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html @@ -229,7 +229,7 @@ class base::RefCountedThre diff --git a/docs/d6/d09/aes__pattern__cryptor_8h_source.html b/docs/d6/d09/aes__pattern__cryptor_8h_source.html index 16a4cac64e..bf3ebf72d9 100644 --- a/docs/d6/d09/aes__pattern__cryptor_8h_source.html +++ b/docs/d6/d09/aes__pattern__cryptor_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d09/classedash__packager_1_1media_1_1H265Parser-members.html b/docs/d6/d09/classedash__packager_1_1media_1_1H265Parser-members.html index 53594f4e44..25d6f5afcb 100644 --- a/docs/d6/d09/classedash__packager_1_1media_1_1H265Parser-members.html +++ b/docs/d6/d09/classedash__packager_1_1media_1_1H265Parser-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html b/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html index 4e9bcc7ccb..38a85fb1e5 100644 --- a/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html +++ b/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html b/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html index dbccb4909d..c789ef25ca 100644 --- a/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html +++ b/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html b/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html index 6d105f14e2..5debdd262a 100644 --- a/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html +++ b/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d16/text__stream__info_8cc_source.html b/docs/d6/d16/text__stream__info_8cc_source.html index 223806627a..21568de0df 100644 --- a/docs/d6/d16/text__stream__info_8cc_source.html +++ b/docs/d6/d16/text__stream__info_8cc_source.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d17/es__parser__h264_8cc_source.html b/docs/d6/d17/es__parser__h264_8cc_source.html index 164c39b188..eabff1532f 100644 --- a/docs/d6/d17/es__parser__h264_8cc_source.html +++ b/docs/d6/d17/es__parser__h264_8cc_source.html @@ -484,7 +484,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html b/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html index 8cf97cd7b1..ff322a1271 100644 --- a/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html +++ b/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html b/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html index a339de77ec..5175c8fe80 100644 --- a/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html +++ b/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d1d/structedash__packager_1_1media_1_1H265ReferencePictureListModifications-members.html b/docs/d6/d1d/structedash__packager_1_1media_1_1H265ReferencePictureListModifications-members.html index c9d5ad8d35..0cc6325013 100644 --- a/docs/d6/d1d/structedash__packager_1_1media_1_1H265ReferencePictureListModifications-members.html +++ b/docs/d6/d1d/structedash__packager_1_1media_1_1H265ReferencePictureListModifications-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d29/classedash__packager_1_1media_1_1AesCryptor-members.html b/docs/d6/d29/classedash__packager_1_1media_1_1AesCryptor-members.html index a1a4d5fdb2..2c3139722a 100644 --- a/docs/d6/d29/classedash__packager_1_1media_1_1AesCryptor-members.html +++ b/docs/d6/d29/classedash__packager_1_1media_1_1AesCryptor-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d2e/mpd__notifier__util_8cc_source.html b/docs/d6/d2e/mpd__notifier__util_8cc_source.html index 5174c6c3bd..3e14a4193c 100644 --- a/docs/d6/d2e/mpd__notifier__util_8cc_source.html +++ b/docs/d6/d2e/mpd__notifier__util_8cc_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d35/webm__content__encodings_8cc_source.html b/docs/d6/d35/webm__content__encodings_8cc_source.html index b1d501f800..8fa854df95 100644 --- a/docs/d6/d35/webm__content__encodings_8cc_source.html +++ b/docs/d6/d35/webm__content__encodings_8cc_source.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html b/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html index 02fc9f603c..2efb8a5394 100644 --- a/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html +++ b/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html @@ -197,7 +197,7 @@ Additional Inherited Members diff --git a/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html b/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html index b41e29608f..42ce7c8da9 100644 --- a/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html +++ b/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d3b/chunk__info__iterator_8cc_source.html b/docs/d6/d3b/chunk__info__iterator_8cc_source.html index fb46f5ee2d..d9d28b58d2 100644 --- a/docs/d6/d3b/chunk__info__iterator_8cc_source.html +++ b/docs/d6/d3b/chunk__info__iterator_8cc_source.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    73 } // namespace mp4
    74 } // namespace media
    75 } // namespace edash_packager
    - +
    uint32_t NumSamples(uint32_t start_chunk, uint32_t end_chunk) const
    ChunkInfoIterator(const SampleToChunk &sample_to_chunk)
    Create ChunkInfoIterator from sample to chunk box.
    @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d3e/classedash__packager_1_1media_1_1mp2t_1_1PesPacket.html b/docs/d6/d3e/classedash__packager_1_1media_1_1mp2t_1_1PesPacket.html index a214c2cb6c..252f239b0f 100644 --- a/docs/d6/d3e/classedash__packager_1_1media_1_1mp2t_1_1PesPacket.html +++ b/docs/d6/d3e/classedash__packager_1_1media_1_1mp2t_1_1PesPacket.html @@ -387,7 +387,7 @@ const std::vector< uint8_t > &  diff --git a/docs/d6/d41/encrypting__fragmenter_8cc_source.html b/docs/d6/d41/encrypting__fragmenter_8cc_source.html index 32acdaffc2..b5754f4660 100644 --- a/docs/d6/d41/encrypting__fragmenter_8cc_source.html +++ b/docs/d6/d41/encrypting__fragmenter_8cc_source.html @@ -420,7 +420,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    Status AddSample(scoped_refptr< MediaSample > sample) override
    void FinalizeFragment() override
    Finalize and optimize the fragment.
    - +
    virtual Status PrepareFragmentForEncryption(bool enable_encryption)
    @@ -430,7 +430,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html b/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html index 3ca35192f3..538dc5c50a 100644 --- a/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html +++ b/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html b/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html index 50070b36d3..d988bb3d64 100644 --- a/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html +++ b/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html @@ -244,7 +244,7 @@ void  diff --git a/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html b/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html index 2933d15f25..59210a0e86 100644 --- a/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html +++ b/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html @@ -183,7 +183,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d55/aes__cryptor_8cc_source.html b/docs/d6/d55/aes__cryptor_8cc_source.html index 1bfb246053..4f46f17b9d 100644 --- a/docs/d6/d55/aes__cryptor_8cc_source.html +++ b/docs/d6/d55/aes__cryptor_8cc_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d59/protection__system__specific__info_8h_source.html b/docs/d6/d59/protection__system__specific__info_8h_source.html index b773fe6041..88c064fafb 100644 --- a/docs/d6/d59/protection__system__specific__info_8h_source.html +++ b/docs/d6/d59/protection__system__specific__info_8h_source.html @@ -163,7 +163,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html b/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html index db8ef1e660..40aae06da1 100644 --- a/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html +++ b/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html @@ -136,7 +136,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 512 of file box_definitions.h.

    +

    Definition at line 519 of file box_definitions.h.

    Member Function Documentation

    @@ -162,7 +162,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1707 of file box_definitions.cc.

    +

    Definition at line 1739 of file box_definitions.cc.

    @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html b/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html index 7886697e7e..82ce8d82e7 100644 --- a/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html +++ b/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html @@ -171,7 +171,7 @@ void  diff --git a/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html b/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html index 028254fe44..8aceecc2f2 100644 --- a/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html +++ b/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d5e/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific-members.html b/docs/d6/d5e/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific-members.html index e0dc57bb3b..0e0b3fdf53 100644 --- a/docs/d6/d5e/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific-members.html +++ b/docs/d6/d5e/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d6c/h26x__bit__reader_8cc_source.html b/docs/d6/d6c/h26x__bit__reader_8cc_source.html index 43cd75747d..6d6f4c57e9 100644 --- a/docs/d6/d6c/h26x__bit__reader_8cc_source.html +++ b/docs/d6/d6c/h26x__bit__reader_8cc_source.html @@ -259,7 +259,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html b/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html index 6efab3ed8a..6973cdaee6 100644 --- a/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html +++ b/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html @@ -145,7 +145,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 499 of file box_definitions.h.

    +

    Definition at line 506 of file box_definitions.h.

    Member Function Documentation

    @@ -171,7 +171,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1665 of file box_definitions.cc.

    +

    Definition at line 1697 of file box_definitions.cc.

    @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d6/d6e/ts__section__pes_8cc_source.html b/docs/d6/d6e/ts__section__pes_8cc_source.html index f65d01b949..add947a7e7 100644 --- a/docs/d6/d6e/ts__section__pes_8cc_source.html +++ b/docs/d6/d6e/ts__section__pes_8cc_source.html @@ -405,7 +405,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d71/scoped__xml__ptr_8h_source.html b/docs/d6/d71/scoped__xml__ptr_8h_source.html index e0140e250d..492a14f662 100644 --- a/docs/d6/d71/scoped__xml__ptr_8h_source.html +++ b/docs/d6/d71/scoped__xml__ptr_8h_source.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d74/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox.html b/docs/d6/d74/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox.html index 9b9ba67795..a2ae20b99e 100644 --- a/docs/d6/d74/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox.html +++ b/docs/d6/d74/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox.html @@ -148,7 +148,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 770 of file box_definitions.h.

    +

    Definition at line 784 of file box_definitions.h.

    Member Function Documentation

    @@ -174,7 +174,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 2533 of file box_definitions.cc.

    +

    Definition at line 2592 of file box_definitions.cc.

    @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html b/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html index 3e07de8b85..394f99486b 100644 --- a/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html +++ b/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html b/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html index 036c5c8e8b..d1d3a43d5a 100644 --- a/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html +++ b/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html @@ -143,7 +143,7 @@ uint32_t flags

    Detailed Description

    -

    Definition at line 444 of file box_definitions.h.

    +

    Definition at line 451 of file box_definitions.h.

    Member Function Documentation

    @@ -169,7 +169,7 @@ uint32_t flagsReimplemented from edash_packager::media::mp4::ChunkLargeOffset.

    -

    Definition at line 814 of file box_definitions.cc.

    +

    Definition at line 846 of file box_definitions.cc.

    @@ -180,7 +180,7 @@ uint32_t flags diff --git a/docs/d6/d7b/webm__tracks__parser_8h_source.html b/docs/d6/d7b/webm__tracks__parser_8h_source.html index 9cdcf13db4..a7bb98e918 100644 --- a/docs/d6/d7b/webm__tracks__parser_8h_source.html +++ b/docs/d6/d7b/webm__tracks__parser_8h_source.html @@ -202,7 +202,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html b/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html index e84b86da17..85fd6905b4 100644 --- a/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html +++ b/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html b/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html index 5882da3419..f92c98f913 100644 --- a/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html +++ b/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d86/bandwidth__estimator_8cc_source.html b/docs/d6/d86/bandwidth__estimator_8cc_source.html index be4a7484d5..0e17992099 100644 --- a/docs/d6/d86/bandwidth__estimator_8cc_source.html +++ b/docs/d6/d86/bandwidth__estimator_8cc_source.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d8a/vp9__parser_8cc_source.html b/docs/d6/d8a/vp9__parser_8cc_source.html index f2aa538a24..1a31ca2677 100644 --- a/docs/d6/d8a/vp9__parser_8cc_source.html +++ b/docs/d6/d8a/vp9__parser_8cc_source.html @@ -659,7 +659,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html b/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html index 5189cbbd6b..a76440c1a6 100644 --- a/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html +++ b/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html @@ -139,7 +139,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 562 of file box_definitions.h.

    +

    Definition at line 569 of file box_definitions.h.

    Member Function Documentation

    @@ -165,7 +165,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1865 of file box_definitions.cc.

    +

    Definition at line 1897 of file box_definitions.cc.

    @@ -176,7 +176,7 @@ Additional Inherited Members diff --git a/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html b/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html index 0b0f778b72..2dc2d4b39c 100644 --- a/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html +++ b/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html @@ -245,7 +245,7 @@ Protected Member Functions diff --git a/docs/d6/d92/classedash__packager_1_1media_1_1webm_1_1Segmenter-members.html b/docs/d6/d92/classedash__packager_1_1media_1_1webm_1_1Segmenter-members.html index 29d6be322b..36cb1cb435 100644 --- a/docs/d6/d92/classedash__packager_1_1media_1_1webm_1_1Segmenter-members.html +++ b/docs/d6/d92/classedash__packager_1_1media_1_1webm_1_1Segmenter-members.html @@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html b/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html index f181fc3cdd..0c7e23e760 100644 --- a/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html +++ b/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html b/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html index 1b142a5b7d..d65415667b 100644 --- a/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html +++ b/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d9b/h264__parser_8h_source.html b/docs/d6/d9b/h264__parser_8h_source.html index 55fa3a4204..ca7ba5f7bd 100644 --- a/docs/d6/d9b/h264__parser_8h_source.html +++ b/docs/d6/d9b/h264__parser_8h_source.html @@ -439,7 +439,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html b/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html index d0f3a7cf37..ee2019dd8b 100644 --- a/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html +++ b/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/da0/ts__section__pat_8h_source.html b/docs/d6/da0/ts__section__pat_8h_source.html index 8112fe4981..f61cdee376 100644 --- a/docs/d6/da0/ts__section__pat_8h_source.html +++ b/docs/d6/da0/ts__section__pat_8h_source.html @@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html b/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html index 02927b225b..a81b2b3c34 100644 --- a/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html +++ b/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html @@ -135,7 +135,7 @@ Result ParseSEI (const diff --git a/docs/d6/da3/mpd__builder_8h_source.html b/docs/d6/da3/mpd__builder_8h_source.html index 74ec6fd6e5..84827843bf 100644 --- a/docs/d6/da3/mpd__builder_8h_source.html +++ b/docs/d6/da3/mpd__builder_8h_source.html @@ -534,7 +534,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html b/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html index 1480cac544..c08a4d2069 100644 --- a/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html +++ b/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html b/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html index f804c7fe7c..6f86c79378 100644 --- a/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html +++ b/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html b/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html index 803343c14f..0419930b80 100644 --- a/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html +++ b/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dbd/structedash__packager_1_1media_1_1Cue-members.html b/docs/d6/dbd/structedash__packager_1_1media_1_1Cue-members.html index b693f1262c..241c224838 100644 --- a/docs/d6/dbd/structedash__packager_1_1media_1_1Cue-members.html +++ b/docs/d6/dbd/structedash__packager_1_1media_1_1Cue-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html b/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html index 51d174b172..2a1994ed19 100644 --- a/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html +++ b/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html b/docs/d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html index 13616a60ec..87da6a1ad6 100644 --- a/docs/d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html +++ b/docs/d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html @@ -152,7 +152,7 @@ int64_t  diff --git a/docs/d6/dc8/mkv__writer_8cc_source.html b/docs/d6/dc8/mkv__writer_8cc_source.html index 06e041af5d..c6a078f021 100644 --- a/docs/d6/dc8/mkv__writer_8cc_source.html +++ b/docs/d6/dc8/mkv__writer_8cc_source.html @@ -186,7 +186,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html b/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html index 84de84939f..ad75f9854f 100644 --- a/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html +++ b/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html @@ -210,7 +210,7 @@ void  diff --git a/docs/d6/dd7/classedash__packager_1_1media_1_1TextStreamInfo.html b/docs/d6/dd7/classedash__packager_1_1media_1_1TextStreamInfo.html index ff4aaef0c5..64eeb1b0c6 100644 --- a/docs/d6/dd7/classedash__packager_1_1media_1_1TextStreamInfo.html +++ b/docs/d6/dd7/classedash__packager_1_1media_1_1TextStreamInfo.html @@ -276,7 +276,7 @@ void set_language (con diff --git a/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html b/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html index 9a93728df8..742b9b2878 100644 --- a/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html +++ b/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de8/local__file_8cc_source.html b/docs/d6/de8/local__file_8cc_source.html index 259dbf2338..25ada61edc 100644 --- a/docs/d6/de8/local__file_8cc_source.html +++ b/docs/d6/de8/local__file_8cc_source.html @@ -191,7 +191,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de8/network__util_8h_source.html b/docs/d6/de8/network__util_8h_source.html index e95e9069c5..4be1bb5665 100644 --- a/docs/d6/de8/network__util_8h_source.html +++ b/docs/d6/de8/network__util_8h_source.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de9/ts__segmenter_8cc_source.html b/docs/d6/de9/ts__segmenter_8cc_source.html index c74171fb94..6a33e1a580 100644 --- a/docs/d6/de9/ts__segmenter_8cc_source.html +++ b/docs/d6/de9/ts__segmenter_8cc_source.html @@ -238,7 +238,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html b/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html index 0c26a9b389..fe2a0a1316 100644 --- a/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html +++ b/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html @@ -149,7 +149,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 569 of file box_definitions.h.

    +

    Definition at line 576 of file box_definitions.h.

    Member Function Documentation

    @@ -175,7 +175,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1893 of file box_definitions.cc.

    +

    Definition at line 1925 of file box_definitions.cc.

    @@ -186,7 +186,7 @@ Additional Inherited Members diff --git a/docs/d6/ded/ts__packet_8h_source.html b/docs/d6/ded/ts__packet_8h_source.html index 0c2ae1eab8..daefe2981a 100644 --- a/docs/d6/ded/ts__packet_8h_source.html +++ b/docs/d6/ded/ts__packet_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/def/sync__sample__iterator_8cc_source.html b/docs/d6/def/sync__sample__iterator_8cc_source.html index 487e853580..949ce3f7a2 100644 --- a/docs/d6/def/sync__sample__iterator_8cc_source.html +++ b/docs/d6/def/sync__sample__iterator_8cc_source.html @@ -134,13 +134,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    45 } // namespace media
    46 } // namespace edash_packager
    SyncSampleIterator(const SyncSample &sync_sample)
    Create a new SyncSampleIterator from sync sample box.
    - + diff --git a/docs/d6/df4/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html b/docs/d6/df4/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html index 1869461491..8a9fd59a2c 100644 --- a/docs/d6/df4/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html +++ b/docs/d6/df4/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html b/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html index f6bf3ea3a6..9fb8971d25 100644 --- a/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html +++ b/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dff/classedash__packager_1_1media_1_1H265Parser.html b/docs/d6/dff/classedash__packager_1_1media_1_1H265Parser.html index fbca900c4f..0297a2ed38 100644 --- a/docs/d6/dff/classedash__packager_1_1media_1_1H265Parser.html +++ b/docs/d6/dff/classedash__packager_1_1media_1_1H265Parser.html @@ -256,7 +256,7 @@ Public Member Functions diff --git a/docs/d7/d0b/muxer__listener__test__helper_8h_source.html b/docs/d7/d0b/muxer__listener__test__helper_8h_source.html index c9227f6aef..f8e4dadeeb 100644 --- a/docs/d7/d0b/muxer__listener__test__helper_8h_source.html +++ b/docs/d7/d0b/muxer__listener__test__helper_8h_source.html @@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html b/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html index ae62dc041f..5a11efcad0 100644 --- a/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html +++ b/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html @@ -145,7 +145,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 505 of file box_definitions.h.

    +

    Definition at line 512 of file box_definitions.h.

    Member Function Documentation

    @@ -171,7 +171,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1685 of file box_definitions.cc.

    +

    Definition at line 1717 of file box_definitions.cc.

    @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d7/d12/media__parser_8h_source.html b/docs/d7/d12/media__parser_8h_source.html index df2c1a71b5..0af114c684 100644 --- a/docs/d7/d12/media__parser_8h_source.html +++ b/docs/d7/d12/media__parser_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d15/classedash__packager_1_1Representation.html b/docs/d7/d15/classedash__packager_1_1Representation.html index 967899a64c..bf451f3314 100644 --- a/docs/d7/d15/classedash__packager_1_1Representation.html +++ b/docs/d7/d15/classedash__packager_1_1Representation.html @@ -456,7 +456,7 @@ template<MpdBuilder::MpdType type> diff --git a/docs/d7/d15/mpd__notifier_8h_source.html b/docs/d7/d15/mpd__notifier_8h_source.html index e5648685f3..473390647d 100644 --- a/docs/d7/d15/mpd__notifier_8h_source.html +++ b/docs/d7/d15/mpd__notifier_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d1c/classedash__packager_1_1media_1_1AesCbcEncryptor-members.html b/docs/d7/d1c/classedash__packager_1_1media_1_1AesCbcEncryptor-members.html index c6f6e26f50..120347aca1 100644 --- a/docs/d7/d1c/classedash__packager_1_1media_1_1AesCbcEncryptor-members.html +++ b/docs/d7/d1c/classedash__packager_1_1media_1_1AesCbcEncryptor-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html b/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html index 93edec87ea..96d5828ca8 100644 --- a/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html +++ b/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html @@ -105,14 +105,14 @@ uint32_t sample_delta<

    Detailed Description

    -

    Definition at line 379 of file box_definitions.h.

    +

    Definition at line 386 of file box_definitions.h.


    The documentation for this struct was generated from the following file: diff --git a/docs/d7/d22/libcrypto__threading_8h_source.html b/docs/d7/d22/libcrypto__threading_8h_source.html index 4b508c124a..507f5ff491 100644 --- a/docs/d7/d22/libcrypto__threading_8h_source.html +++ b/docs/d7/d22/libcrypto__threading_8h_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html b/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html index 94ba224a2d..fcc04caf58 100644 --- a/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html +++ b/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html b/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html index e3a97989df..42f8d2dcfd 100644 --- a/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html +++ b/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html b/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html index 9e7f65d837..f0ffac2887 100644 --- a/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html +++ b/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html @@ -429,7 +429,7 @@ void set_language (con diff --git a/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html b/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html index d819c3935e..c38cbfc7cb 100644 --- a/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html +++ b/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d42/protection__system__specific__info_8cc_source.html b/docs/d7/d42/protection__system__specific__info_8cc_source.html index 28a4f8ee5b..ce849d00b1 100644 --- a/docs/d7/d42/protection__system__specific__info_8cc_source.html +++ b/docs/d7/d42/protection__system__specific__info_8cc_source.html @@ -219,7 +219,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html b/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html index f2d09734ab..b1b75459c4 100644 --- a/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html +++ b/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html @@ -160,7 +160,7 @@ Public Member Functions diff --git a/docs/d7/d49/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox.html b/docs/d7/d49/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox.html index 4bf84dc616..70e32d2e4f 100644 --- a/docs/d7/d49/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox.html +++ b/docs/d7/d49/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox.html @@ -136,7 +136,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 756 of file box_definitions.h.

    +

    Definition at line 770 of file box_definitions.h.

    Member Function Documentation

    @@ -162,7 +162,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 2483 of file box_definitions.cc.

    +

    Definition at line 2542 of file box_definitions.cc.

    @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html b/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html index 6c26d21486..31ff1a7f8d 100644 --- a/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html +++ b/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html @@ -136,7 +136,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 214 of file box_definitions.h.

    +

    Definition at line 221 of file box_definitions.h.

    Member Function Documentation

    @@ -162,7 +162,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 980 of file box_definitions.cc.

    +

    Definition at line 1012 of file box_definitions.cc.

    @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html b/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html index 9aef7c4f23..dc3f7da153 100644 --- a/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html +++ b/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html b/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html index 895ef18e3c..be2af58aed 100644 --- a/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html +++ b/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html b/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html index 717cab2fa1..28956ee6a3 100644 --- a/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html +++ b/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html @@ -96,19 +96,28 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); - - - - + + + + + + + + + +

    Public Attributes

    -bool is_encrypted
     
    -uint8_t iv_size
     
    +uint8_t is_protected
     
    +uint8_t per_sample_iv_size
     
    std::vector< uint8_t > key_id
     
    +uint8_t crypt_byte_block
     
    +uint8_t skip_byte_block
     
    +std::vector< uint8_t > constant_iv
     

    Detailed Description

    -

    Definition at line 659 of file box_definitions.h.

    +

    Definition at line 666 of file box_definitions.h.


    The documentation for this struct was generated from the following files:
    • media/formats/mp4/box_definitions.h
    • media/formats/mp4/box_definitions.cc
    • @@ -116,7 +125,7 @@ std::vector< uint8_t >  diff --git a/docs/d7/d56/structedash__packager_1_1media_1_1mp4_1_1EC3Specific-members.html b/docs/d7/d56/structedash__packager_1_1media_1_1mp4_1_1EC3Specific-members.html index 09d53e1197..e144d198f3 100644 --- a/docs/d7/d56/structedash__packager_1_1media_1_1mp4_1_1EC3Specific-members.html +++ b/docs/d7/d56/structedash__packager_1_1media_1_1mp4_1_1EC3Specific-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d5a/classedash__packager_1_1media_1_1AesEncryptor-members.html b/docs/d7/d5a/classedash__packager_1_1media_1_1AesEncryptor-members.html index 15bbd1884d..0fc314068d 100644 --- a/docs/d7/d5a/classedash__packager_1_1media_1_1AesEncryptor-members.html +++ b/docs/d7/d5a/classedash__packager_1_1media_1_1AesEncryptor-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html b/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html index 1d25fe99c1..36cc1c6cf0 100644 --- a/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html +++ b/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html b/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html index 3e5a1b3a94..8def94d108 100644 --- a/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html +++ b/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d7c/vlog__flags_8h_source.html b/docs/d7/d7c/vlog__flags_8h_source.html index 1a8a486095..7b5affedc1 100644 --- a/docs/d7/d7c/vlog__flags_8h_source.html +++ b/docs/d7/d7c/vlog__flags_8h_source.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html b/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html index 9e0e207e9f..66aca973f8 100644 --- a/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html +++ b/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html b/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html index a6f5a925a5..fb0d0c70ec 100644 --- a/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html +++ b/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html @@ -255,7 +255,7 @@ bool video_full_range_flag diff --git a/docs/d7/d87/video__stream__info_8h_source.html b/docs/d7/d87/video__stream__info_8h_source.html index 15f01e2bfd..b1a4f36ad6 100644 --- a/docs/d7/d87/video__stream__info_8h_source.html +++ b/docs/d7/d87/video__stream__info_8h_source.html @@ -188,7 +188,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html b/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html index a10464d40c..d961f7268a 100644 --- a/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html +++ b/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html @@ -384,7 +384,7 @@ class BoxBuffer diff --git a/docs/d7/d8f/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox-members.html b/docs/d7/d8f/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox-members.html index 0cda0b0351..b30d3a2df0 100644 --- a/docs/d7/d8f/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox-members.html +++ b/docs/d7/d8f/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d9d/progress__listener_8h_source.html b/docs/d7/d9d/progress__listener_8h_source.html index d5bc7965a4..23dc0dc8be 100644 --- a/docs/d7/d9d/progress__listener_8h_source.html +++ b/docs/d7/d9d/progress__listener_8h_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/da4/track__run__iterator_8h_source.html b/docs/d7/da4/track__run__iterator_8h_source.html index e1b62630dd..f7ff9a9339 100644 --- a/docs/d7/da4/track__run__iterator_8h_source.html +++ b/docs/d7/da4/track__run__iterator_8h_source.html @@ -174,28 +174,28 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      125 } // namespace edash_packager
      126 
      127 #endif // MEDIA_FORMATS_MP4_TRACK_RUN_ITERATOR_H_
      - -
      const VideoSampleEntry & video_description() const
      Only valid if is_video() is true.
      + +
      const VideoSampleEntry & video_description() const
      Only valid if is_video() is true.
      - -
      scoped_ptr< DecryptConfig > GetDecryptConfig()
      -
      bool CacheAuxInfo(const uint8_t *buf, int size)
      -
      const AudioSampleEntry & audio_description() const
      Only valid if is_audio() is true.
      - - - - - - + +
      scoped_ptr< DecryptConfig > GetDecryptConfig()
      +
      bool CacheAuxInfo(const uint8_t *buf, int size)
      +
      const AudioSampleEntry & audio_description() const
      Only valid if is_audio() is true.
      + + + + + + - - + + diff --git a/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html b/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html index a0b635a695..f6e5393224 100644 --- a/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html +++ b/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html @@ -151,7 +151,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 420 of file box_definitions.h.

      +

      Definition at line 427 of file box_definitions.h.

      Member Function Documentation

      @@ -177,7 +177,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 734 of file box_definitions.cc.

      +

      Definition at line 766 of file box_definitions.cc.

      @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d7/db0/mpd__writer_8h_source.html b/docs/d7/db0/mpd__writer_8h_source.html index 6e8315d94d..f56d2e871a 100644 --- a/docs/d7/db0/mpd__writer_8h_source.html +++ b/docs/d7/db0/mpd__writer_8h_source.html @@ -184,7 +184,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/db3/structedash__packager_1_1Element-members.html b/docs/d7/db3/structedash__packager_1_1Element-members.html index ca8a03a54b..eac5f1a67a 100644 --- a/docs/d7/db3/structedash__packager_1_1Element-members.html +++ b/docs/d7/db3/structedash__packager_1_1Element-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dc6/byte__queue_8h_source.html b/docs/d7/dc6/byte__queue_8h_source.html index 8bf4e74e33..cb43b579f5 100644 --- a/docs/d7/dc6/byte__queue_8h_source.html +++ b/docs/d7/dc6/byte__queue_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dcc/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html b/docs/d7/dcc/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html index f8fb86cd3e..c7326c680d 100644 --- a/docs/d7/dcc/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html +++ b/docs/d7/dcc/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html @@ -136,7 +136,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 343 of file box_definitions.h.

      +

      Definition at line 350 of file box_definitions.h.

      Member Function Documentation

      @@ -162,7 +162,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1516 of file box_definitions.cc.

      +

      Definition at line 1548 of file box_definitions.cc.

      @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d7/dd0/mpd__notifier__util_8h_source.html b/docs/d7/dd0/mpd__notifier__util_8h_source.html index 85b407234d..2747de12a8 100644 --- a/docs/d7/dd0/mpd__notifier__util_8h_source.html +++ b/docs/d7/dd0/mpd__notifier__util_8h_source.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd2/classedash__packager_1_1media_1_1VPxParser-members.html b/docs/d7/dd2/classedash__packager_1_1media_1_1VPxParser-members.html index d6e23fd911..b16453fdf4 100644 --- a/docs/d7/dd2/classedash__packager_1_1media_1_1VPxParser-members.html +++ b/docs/d7/dd2/classedash__packager_1_1media_1_1VPxParser-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd4/request__signer_8h_source.html b/docs/d7/dd4/request__signer_8h_source.html index d1118437ed..c1ffd7eb22 100644 --- a/docs/d7/dd4/request__signer_8h_source.html +++ b/docs/d7/dd4/request__signer_8h_source.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd6/key__source_8cc_source.html b/docs/d7/dd6/key__source_8cc_source.html index c7bd2c5b8f..e24ca51b5c 100644 --- a/docs/d7/dd6/key__source_8cc_source.html +++ b/docs/d7/dd6/key__source_8cc_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html b/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html index 87a27b6bed..683e37b7ea 100644 --- a/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html +++ b/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html @@ -127,7 +127,7 @@ void operator() (xmlCh diff --git a/docs/d7/de6/structedash__packager_1_1media_1_1H265SliceHeader.html b/docs/d7/de6/structedash__packager_1_1media_1_1H265SliceHeader.html index bef3b648d5..715e1ba68d 100644 --- a/docs/d7/de6/structedash__packager_1_1media_1_1H265SliceHeader.html +++ b/docs/d7/de6/structedash__packager_1_1media_1_1H265SliceHeader.html @@ -236,7 +236,7 @@ std::vector< int > e diff --git a/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html b/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html index 0a5c177e6c..e16fe18fa3 100644 --- a/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html +++ b/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html b/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html index 8d4ac5e259..10cd3db7c4 100644 --- a/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html +++ b/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html @@ -157,7 +157,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 470 of file box_definitions.h.

      +

      Definition at line 477 of file box_definitions.h.

      Member Function Documentation

      @@ -183,7 +183,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1590 of file box_definitions.cc.

      +

      Definition at line 1622 of file box_definitions.cc.

      @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/d7/dee/mpd__generator_8cc_source.html b/docs/d7/dee/mpd__generator_8cc_source.html index 9b5d3c88a2..787b6b7783 100644 --- a/docs/d7/dee/mpd__generator_8cc_source.html +++ b/docs/d7/dee/mpd__generator_8cc_source.html @@ -199,7 +199,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/def/mp4__media__parser_8cc_source.html b/docs/d7/def/mp4__media__parser_8cc_source.html index 4e5c601da6..da3971d179 100644 --- a/docs/d7/def/mp4__media__parser_8cc_source.html +++ b/docs/d7/def/mp4__media__parser_8cc_source.html @@ -519,298 +519,300 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      430  return false;
      431  }
      432 
      -
      433  bool is_encrypted = entry.sinf.info.track_encryption.is_encrypted;
      -
      434  DVLOG(1) << "is_audio_track_encrypted_: " << is_encrypted;
      -
      435  streams.push_back(new AudioStreamInfo(
      -
      436  track->header.track_id,
      -
      437  timescale,
      -
      438  duration,
      -
      439  codec,
      -
      440  AudioStreamInfo::GetCodecString(codec, audio_object_type),
      -
      441  track->media.header.language.code,
      -
      442  entry.samplesize,
      -
      443  num_channels,
      -
      444  sampling_frequency,
      -
      445  max_bitrate,
      -
      446  avg_bitrate,
      -
      447  extra_data.data(),
      -
      448  extra_data.size(),
      -
      449  is_encrypted));
      -
      450  }
      -
      451 
      -
      452  if (samp_descr.type == kVideo) {
      -
      453  RCHECK(!samp_descr.video_entries.empty());
      -
      454  if (desc_idx >= samp_descr.video_entries.size())
      -
      455  desc_idx = 0;
      -
      456  const VideoSampleEntry& entry = samp_descr.video_entries[desc_idx];
      -
      457 
      -
      458  uint32_t coded_width = entry.width;
      -
      459  uint32_t coded_height = entry.height;
      -
      460  uint32_t pixel_width = entry.pixel_aspect.h_spacing;
      -
      461  uint32_t pixel_height = entry.pixel_aspect.v_spacing;
      -
      462  if (pixel_width == 0 && pixel_height == 0) {
      -
      463  pixel_width = 1;
      -
      464  pixel_height = 1;
      -
      465  }
      -
      466  std::string codec_string;
      -
      467  uint8_t nalu_length_size = 0;
      -
      468 
      -
      469  const FourCC actual_format = entry.GetActualFormat();
      -
      470  const VideoCodec video_codec = FourCCToVideoCodec(actual_format);
      -
      471  switch (actual_format) {
      -
      472  case FOURCC_avc1: {
      -
      473  AVCDecoderConfiguration avc_config;
      -
      474  if (!avc_config.Parse(entry.codec_config_record.data)) {
      -
      475  LOG(ERROR) << "Failed to parse avcc.";
      -
      476  return false;
      -
      477  }
      -
      478  codec_string = avc_config.GetCodecString();
      -
      479  nalu_length_size = avc_config.nalu_length_size();
      -
      480 
      -
      481  if (coded_width != avc_config.coded_width() ||
      -
      482  coded_height != avc_config.coded_height()) {
      -
      483  LOG(WARNING) << "Resolution in VisualSampleEntry (" << coded_width
      -
      484  << "," << coded_height
      -
      485  << ") does not match with resolution in "
      -
      486  "AVCDecoderConfigurationRecord ("
      -
      487  << avc_config.coded_width() << ","
      -
      488  << avc_config.coded_height()
      -
      489  << "). Use AVCDecoderConfigurationRecord.";
      -
      490  coded_width = avc_config.coded_width();
      -
      491  coded_height = avc_config.coded_height();
      -
      492  }
      -
      493 
      -
      494  if (pixel_width != avc_config.pixel_width() ||
      -
      495  pixel_height != avc_config.pixel_height()) {
      -
      496  LOG_IF(WARNING, pixel_width != 1 || pixel_height != 1)
      -
      497  << "Pixel aspect ratio in PASP box (" << pixel_width << ","
      -
      498  << pixel_height
      -
      499  << ") does not match with SAR in AVCDecoderConfigurationRecord "
      -
      500  "("
      -
      501  << avc_config.pixel_width() << "," << avc_config.pixel_height()
      -
      502  << "). Use AVCDecoderConfigurationRecord.";
      -
      503  pixel_width = avc_config.pixel_width();
      -
      504  pixel_height = avc_config.pixel_height();
      -
      505  }
      -
      506  break;
      -
      507  }
      -
      508  case FOURCC_hev1:
      -
      509  case FOURCC_hvc1: {
      -
      510  HEVCDecoderConfiguration hevc_config;
      -
      511  if (!hevc_config.Parse(entry.codec_config_record.data)) {
      -
      512  LOG(ERROR) << "Failed to parse hevc.";
      -
      513  return false;
      -
      514  }
      -
      515  codec_string = hevc_config.GetCodecString(video_codec);
      -
      516  nalu_length_size = hevc_config.nalu_length_size();
      -
      517  break;
      -
      518  }
      -
      519  case FOURCC_vp08:
      -
      520  case FOURCC_vp09:
      -
      521  case FOURCC_vp10: {
      -
      522  VPCodecConfiguration vp_config;
      -
      523  if (!vp_config.Parse(entry.codec_config_record.data)) {
      -
      524  LOG(ERROR) << "Failed to parse vpcc.";
      -
      525  return false;
      -
      526  }
      -
      527  codec_string = vp_config.GetCodecString(video_codec);
      -
      528  break;
      -
      529  }
      -
      530  default:
      -
      531  LOG(ERROR) << "Unsupported video format "
      -
      532  << FourCCToString(actual_format) << " in stsd box.";
      -
      533  return false;
      -
      534  }
      -
      535 
      -
      536  bool is_encrypted = entry.sinf.info.track_encryption.is_encrypted;
      -
      537  DVLOG(1) << "is_video_track_encrypted_: " << is_encrypted;
      -
      538  streams.push_back(new VideoStreamInfo(
      -
      539  track->header.track_id, timescale, duration, video_codec,
      -
      540  codec_string, track->media.header.language.code, coded_width,
      -
      541  coded_height, pixel_width, pixel_height,
      -
      542  0, // trick_play_rate
      -
      543  nalu_length_size, entry.codec_config_record.data.data(),
      -
      544  entry.codec_config_record.data.size(), is_encrypted));
      -
      545  }
      -
      546  }
      -
      547 
      -
      548  init_cb_.Run(streams);
      -
      549  if (!FetchKeysIfNecessary(moov_->pssh))
      -
      550  return false;
      -
      551  runs_.reset(new TrackRunIterator(moov_.get()));
      -
      552  RCHECK(runs_->Init());
      -
      553  ChangeState(kEmittingSamples);
      -
      554  return true;
      -
      555 }
      -
      556 
      -
      557 bool MP4MediaParser::ParseMoof(BoxReader* reader) {
      -
      558  // Must already have initialization segment.
      -
      559  RCHECK(moov_.get());
      -
      560  MovieFragment moof;
      -
      561  RCHECK(moof.Parse(reader));
      -
      562  if (!runs_)
      -
      563  runs_.reset(new TrackRunIterator(moov_.get()));
      -
      564  RCHECK(runs_->Init(moof));
      -
      565  if (!FetchKeysIfNecessary(moof.pssh))
      -
      566  return false;
      -
      567  ChangeState(kEmittingSamples);
      -
      568  return true;
      -
      569 }
      -
      570 
      -
      571 bool MP4MediaParser::FetchKeysIfNecessary(
      -
      572  const std::vector<ProtectionSystemSpecificHeader>& headers) {
      -
      573  if (headers.empty())
      -
      574  return true;
      -
      575 
      -
      576  // An error will be returned later if the samples need to be decrypted.
      -
      577  if (!decryption_key_source_)
      -
      578  return true;
      -
      579 
      -
      580  Status status;
      -
      581  for (std::vector<ProtectionSystemSpecificHeader>::const_iterator iter =
      -
      582  headers.begin(); iter != headers.end(); ++iter) {
      -
      583  status = decryption_key_source_->FetchKeys(iter->raw_box);
      -
      584  if (!status.ok()) {
      -
      585  // If there is an error, try using the next PSSH box and report if none
      -
      586  // work.
      -
      587  VLOG(1) << "Unable to fetch decryption keys: " << status
      -
      588  << ", trying the next PSSH box";
      -
      589  continue;
      -
      590  }
      -
      591  return true;
      -
      592  }
      -
      593 
      -
      594  if (!status.ok()) {
      -
      595  LOG(ERROR) << "Error fetching decryption keys: " << status;
      -
      596  return false;
      -
      597  }
      -
      598 
      -
      599  LOG(ERROR) << "No viable 'pssh' box found for content decryption.";
      -
      600  return false;
      -
      601 }
      -
      602 
      -
      603 bool MP4MediaParser::EnqueueSample(bool* err) {
      -
      604  if (!runs_->IsRunValid()) {
      -
      605  // Remain in kEnqueueingSamples state, discarding data, until the end of
      -
      606  // the current 'mdat' box has been appended to the queue.
      -
      607  if (!queue_.Trim(mdat_tail_))
      -
      608  return false;
      -
      609 
      -
      610  ChangeState(kParsingBoxes);
      -
      611  return true;
      -
      612  }
      -
      613 
      -
      614  if (!runs_->IsSampleValid()) {
      -
      615  runs_->AdvanceRun();
      -
      616  return true;
      -
      617  }
      -
      618 
      -
      619  DCHECK(!(*err));
      +
      433  const bool is_encrypted =
      +
      434  entry.sinf.info.track_encryption.default_is_protected == 1;
      +
      435  DVLOG(1) << "is_audio_track_encrypted_: " << is_encrypted;
      +
      436  streams.push_back(new AudioStreamInfo(
      +
      437  track->header.track_id,
      +
      438  timescale,
      +
      439  duration,
      +
      440  codec,
      +
      441  AudioStreamInfo::GetCodecString(codec, audio_object_type),
      +
      442  track->media.header.language.code,
      +
      443  entry.samplesize,
      +
      444  num_channels,
      +
      445  sampling_frequency,
      +
      446  max_bitrate,
      +
      447  avg_bitrate,
      +
      448  extra_data.data(),
      +
      449  extra_data.size(),
      +
      450  is_encrypted));
      +
      451  }
      +
      452 
      +
      453  if (samp_descr.type == kVideo) {
      +
      454  RCHECK(!samp_descr.video_entries.empty());
      +
      455  if (desc_idx >= samp_descr.video_entries.size())
      +
      456  desc_idx = 0;
      +
      457  const VideoSampleEntry& entry = samp_descr.video_entries[desc_idx];
      +
      458 
      +
      459  uint32_t coded_width = entry.width;
      +
      460  uint32_t coded_height = entry.height;
      +
      461  uint32_t pixel_width = entry.pixel_aspect.h_spacing;
      +
      462  uint32_t pixel_height = entry.pixel_aspect.v_spacing;
      +
      463  if (pixel_width == 0 && pixel_height == 0) {
      +
      464  pixel_width = 1;
      +
      465  pixel_height = 1;
      +
      466  }
      +
      467  std::string codec_string;
      +
      468  uint8_t nalu_length_size = 0;
      +
      469 
      +
      470  const FourCC actual_format = entry.GetActualFormat();
      +
      471  const VideoCodec video_codec = FourCCToVideoCodec(actual_format);
      +
      472  switch (actual_format) {
      +
      473  case FOURCC_avc1: {
      +
      474  AVCDecoderConfiguration avc_config;
      +
      475  if (!avc_config.Parse(entry.codec_config_record.data)) {
      +
      476  LOG(ERROR) << "Failed to parse avcc.";
      +
      477  return false;
      +
      478  }
      +
      479  codec_string = avc_config.GetCodecString();
      +
      480  nalu_length_size = avc_config.nalu_length_size();
      +
      481 
      +
      482  if (coded_width != avc_config.coded_width() ||
      +
      483  coded_height != avc_config.coded_height()) {
      +
      484  LOG(WARNING) << "Resolution in VisualSampleEntry (" << coded_width
      +
      485  << "," << coded_height
      +
      486  << ") does not match with resolution in "
      +
      487  "AVCDecoderConfigurationRecord ("
      +
      488  << avc_config.coded_width() << ","
      +
      489  << avc_config.coded_height()
      +
      490  << "). Use AVCDecoderConfigurationRecord.";
      +
      491  coded_width = avc_config.coded_width();
      +
      492  coded_height = avc_config.coded_height();
      +
      493  }
      +
      494 
      +
      495  if (pixel_width != avc_config.pixel_width() ||
      +
      496  pixel_height != avc_config.pixel_height()) {
      +
      497  LOG_IF(WARNING, pixel_width != 1 || pixel_height != 1)
      +
      498  << "Pixel aspect ratio in PASP box (" << pixel_width << ","
      +
      499  << pixel_height
      +
      500  << ") does not match with SAR in AVCDecoderConfigurationRecord "
      +
      501  "("
      +
      502  << avc_config.pixel_width() << "," << avc_config.pixel_height()
      +
      503  << "). Use AVCDecoderConfigurationRecord.";
      +
      504  pixel_width = avc_config.pixel_width();
      +
      505  pixel_height = avc_config.pixel_height();
      +
      506  }
      +
      507  break;
      +
      508  }
      +
      509  case FOURCC_hev1:
      +
      510  case FOURCC_hvc1: {
      +
      511  HEVCDecoderConfiguration hevc_config;
      +
      512  if (!hevc_config.Parse(entry.codec_config_record.data)) {
      +
      513  LOG(ERROR) << "Failed to parse hevc.";
      +
      514  return false;
      +
      515  }
      +
      516  codec_string = hevc_config.GetCodecString(video_codec);
      +
      517  nalu_length_size = hevc_config.nalu_length_size();
      +
      518  break;
      +
      519  }
      +
      520  case FOURCC_vp08:
      +
      521  case FOURCC_vp09:
      +
      522  case FOURCC_vp10: {
      +
      523  VPCodecConfiguration vp_config;
      +
      524  if (!vp_config.Parse(entry.codec_config_record.data)) {
      +
      525  LOG(ERROR) << "Failed to parse vpcc.";
      +
      526  return false;
      +
      527  }
      +
      528  codec_string = vp_config.GetCodecString(video_codec);
      +
      529  break;
      +
      530  }
      +
      531  default:
      +
      532  LOG(ERROR) << "Unsupported video format "
      +
      533  << FourCCToString(actual_format) << " in stsd box.";
      +
      534  return false;
      +
      535  }
      +
      536 
      +
      537  const bool is_encrypted =
      +
      538  entry.sinf.info.track_encryption.default_is_protected == 1;
      +
      539  DVLOG(1) << "is_video_track_encrypted_: " << is_encrypted;
      +
      540  streams.push_back(new VideoStreamInfo(
      +
      541  track->header.track_id, timescale, duration, video_codec,
      +
      542  codec_string, track->media.header.language.code, coded_width,
      +
      543  coded_height, pixel_width, pixel_height,
      +
      544  0, // trick_play_rate
      +
      545  nalu_length_size, entry.codec_config_record.data.data(),
      +
      546  entry.codec_config_record.data.size(), is_encrypted));
      +
      547  }
      +
      548  }
      +
      549 
      +
      550  init_cb_.Run(streams);
      +
      551  if (!FetchKeysIfNecessary(moov_->pssh))
      +
      552  return false;
      +
      553  runs_.reset(new TrackRunIterator(moov_.get()));
      +
      554  RCHECK(runs_->Init());
      +
      555  ChangeState(kEmittingSamples);
      +
      556  return true;
      +
      557 }
      +
      558 
      +
      559 bool MP4MediaParser::ParseMoof(BoxReader* reader) {
      +
      560  // Must already have initialization segment.
      +
      561  RCHECK(moov_.get());
      +
      562  MovieFragment moof;
      +
      563  RCHECK(moof.Parse(reader));
      +
      564  if (!runs_)
      +
      565  runs_.reset(new TrackRunIterator(moov_.get()));
      +
      566  RCHECK(runs_->Init(moof));
      +
      567  if (!FetchKeysIfNecessary(moof.pssh))
      +
      568  return false;
      +
      569  ChangeState(kEmittingSamples);
      +
      570  return true;
      +
      571 }
      +
      572 
      +
      573 bool MP4MediaParser::FetchKeysIfNecessary(
      +
      574  const std::vector<ProtectionSystemSpecificHeader>& headers) {
      +
      575  if (headers.empty())
      +
      576  return true;
      +
      577 
      +
      578  // An error will be returned later if the samples need to be decrypted.
      +
      579  if (!decryption_key_source_)
      +
      580  return true;
      +
      581 
      +
      582  Status status;
      +
      583  for (std::vector<ProtectionSystemSpecificHeader>::const_iterator iter =
      +
      584  headers.begin(); iter != headers.end(); ++iter) {
      +
      585  status = decryption_key_source_->FetchKeys(iter->raw_box);
      +
      586  if (!status.ok()) {
      +
      587  // If there is an error, try using the next PSSH box and report if none
      +
      588  // work.
      +
      589  VLOG(1) << "Unable to fetch decryption keys: " << status
      +
      590  << ", trying the next PSSH box";
      +
      591  continue;
      +
      592  }
      +
      593  return true;
      +
      594  }
      +
      595 
      +
      596  if (!status.ok()) {
      +
      597  LOG(ERROR) << "Error fetching decryption keys: " << status;
      +
      598  return false;
      +
      599  }
      +
      600 
      +
      601  LOG(ERROR) << "No viable 'pssh' box found for content decryption.";
      +
      602  return false;
      +
      603 }
      +
      604 
      +
      605 bool MP4MediaParser::EnqueueSample(bool* err) {
      +
      606  if (!runs_->IsRunValid()) {
      +
      607  // Remain in kEnqueueingSamples state, discarding data, until the end of
      +
      608  // the current 'mdat' box has been appended to the queue.
      +
      609  if (!queue_.Trim(mdat_tail_))
      +
      610  return false;
      +
      611 
      +
      612  ChangeState(kParsingBoxes);
      +
      613  return true;
      +
      614  }
      +
      615 
      +
      616  if (!runs_->IsSampleValid()) {
      +
      617  runs_->AdvanceRun();
      +
      618  return true;
      +
      619  }
      620 
      -
      621  const uint8_t* buf;
      -
      622  int buf_size;
      -
      623  queue_.Peek(&buf, &buf_size);
      -
      624  if (!buf_size)
      -
      625  return false;
      -
      626 
      -
      627  // Skip this entire track if it is not audio nor video.
      -
      628  if (!runs_->is_audio() && !runs_->is_video())
      -
      629  runs_->AdvanceRun();
      -
      630 
      -
      631  // Attempt to cache the auxiliary information first. Aux info is usually
      -
      632  // placed in a contiguous block before the sample data, rather than being
      -
      633  // interleaved. If we didn't cache it, this would require that we retain the
      -
      634  // start of the segment buffer while reading samples. Aux info is typically
      -
      635  // quite small compared to sample data, so this pattern is useful on
      -
      636  // memory-constrained devices where the source buffer consumes a substantial
      -
      637  // portion of the total system memory.
      -
      638  if (runs_->AuxInfoNeedsToBeCached()) {
      -
      639  queue_.PeekAt(runs_->aux_info_offset() + moof_head_, &buf, &buf_size);
      -
      640  if (buf_size < runs_->aux_info_size())
      -
      641  return false;
      -
      642  *err = !runs_->CacheAuxInfo(buf, buf_size);
      -
      643  return !*err;
      -
      644  }
      -
      645 
      -
      646  int64_t sample_offset = runs_->sample_offset() + moof_head_;
      -
      647  queue_.PeekAt(sample_offset, &buf, &buf_size);
      -
      648  if (buf_size < runs_->sample_size()) {
      -
      649  if (sample_offset < queue_.head()) {
      -
      650  LOG(ERROR) << "Incorrect sample offset " << sample_offset
      -
      651  << " < " << queue_.head();
      -
      652  *err = true;
      -
      653  }
      -
      654  return false;
      -
      655  }
      -
      656 
      -
      657  scoped_refptr<MediaSample> stream_sample(MediaSample::CopyFrom(
      -
      658  buf, runs_->sample_size(), runs_->is_keyframe()));
      -
      659  if (runs_->is_encrypted()) {
      -
      660  if (!decryptor_source_) {
      -
      661  *err = true;
      -
      662  LOG(ERROR) << "Encrypted media sample encountered, but decryption is not "
      -
      663  "enabled";
      -
      664  return false;
      -
      665  }
      -
      666 
      -
      667  scoped_ptr<DecryptConfig> decrypt_config = runs_->GetDecryptConfig();
      -
      668  if (!decrypt_config ||
      -
      669  !decryptor_source_->DecryptSampleBuffer(decrypt_config.get(),
      -
      670  stream_sample->writable_data(),
      -
      671  stream_sample->data_size())) {
      -
      672  *err = true;
      -
      673  LOG(ERROR) << "Cannot decrypt samples.";
      -
      674  return false;
      -
      675  }
      -
      676  }
      -
      677 
      -
      678  stream_sample->set_dts(runs_->dts());
      -
      679  stream_sample->set_pts(runs_->cts());
      -
      680  stream_sample->set_duration(runs_->duration());
      -
      681 
      -
      682  DVLOG(3) << "Pushing frame: "
      -
      683  << ", key=" << runs_->is_keyframe()
      -
      684  << ", dur=" << runs_->duration()
      -
      685  << ", dts=" << runs_->dts()
      -
      686  << ", cts=" << runs_->cts()
      -
      687  << ", size=" << runs_->sample_size();
      -
      688 
      -
      689  if (!new_sample_cb_.Run(runs_->track_id(), stream_sample)) {
      -
      690  *err = true;
      -
      691  LOG(ERROR) << "Failed to process the sample.";
      -
      692  return false;
      -
      693  }
      -
      694 
      -
      695  runs_->AdvanceSample();
      -
      696  return true;
      -
      697 }
      -
      698 
      -
      699 bool MP4MediaParser::ReadAndDiscardMDATsUntil(const int64_t offset) {
      -
      700  bool err = false;
      -
      701  while (mdat_tail_ < offset) {
      -
      702  const uint8_t* buf;
      -
      703  int size;
      -
      704  queue_.PeekAt(mdat_tail_, &buf, &size);
      -
      705 
      -
      706  FourCC type;
      -
      707  uint64_t box_sz;
      -
      708  if (!BoxReader::StartTopLevelBox(buf, size, &type, &box_sz, &err))
      -
      709  break;
      -
      710 
      -
      711  mdat_tail_ += box_sz;
      -
      712  }
      -
      713  queue_.Trim(std::min(mdat_tail_, offset));
      -
      714  return !err;
      -
      715 }
      -
      716 
      -
      717 void MP4MediaParser::ChangeState(State new_state) {
      -
      718  DVLOG(2) << "Changing state: " << new_state;
      -
      719  state_ = new_state;
      -
      720 }
      -
      721 
      -
      722 } // namespace mp4
      -
      723 } // namespace media
      -
      724 } // namespace edash_packager
      +
      621  DCHECK(!(*err));
      +
      622 
      +
      623  const uint8_t* buf;
      +
      624  int buf_size;
      +
      625  queue_.Peek(&buf, &buf_size);
      +
      626  if (!buf_size)
      +
      627  return false;
      +
      628 
      +
      629  // Skip this entire track if it is not audio nor video.
      +
      630  if (!runs_->is_audio() && !runs_->is_video())
      +
      631  runs_->AdvanceRun();
      +
      632 
      +
      633  // Attempt to cache the auxiliary information first. Aux info is usually
      +
      634  // placed in a contiguous block before the sample data, rather than being
      +
      635  // interleaved. If we didn't cache it, this would require that we retain the
      +
      636  // start of the segment buffer while reading samples. Aux info is typically
      +
      637  // quite small compared to sample data, so this pattern is useful on
      +
      638  // memory-constrained devices where the source buffer consumes a substantial
      +
      639  // portion of the total system memory.
      +
      640  if (runs_->AuxInfoNeedsToBeCached()) {
      +
      641  queue_.PeekAt(runs_->aux_info_offset() + moof_head_, &buf, &buf_size);
      +
      642  if (buf_size < runs_->aux_info_size())
      +
      643  return false;
      +
      644  *err = !runs_->CacheAuxInfo(buf, buf_size);
      +
      645  return !*err;
      +
      646  }
      +
      647 
      +
      648  int64_t sample_offset = runs_->sample_offset() + moof_head_;
      +
      649  queue_.PeekAt(sample_offset, &buf, &buf_size);
      +
      650  if (buf_size < runs_->sample_size()) {
      +
      651  if (sample_offset < queue_.head()) {
      +
      652  LOG(ERROR) << "Incorrect sample offset " << sample_offset
      +
      653  << " < " << queue_.head();
      +
      654  *err = true;
      +
      655  }
      +
      656  return false;
      +
      657  }
      +
      658 
      +
      659  scoped_refptr<MediaSample> stream_sample(MediaSample::CopyFrom(
      +
      660  buf, runs_->sample_size(), runs_->is_keyframe()));
      +
      661  if (runs_->is_encrypted()) {
      +
      662  if (!decryptor_source_) {
      +
      663  *err = true;
      +
      664  LOG(ERROR) << "Encrypted media sample encountered, but decryption is not "
      +
      665  "enabled";
      +
      666  return false;
      +
      667  }
      +
      668 
      +
      669  scoped_ptr<DecryptConfig> decrypt_config = runs_->GetDecryptConfig();
      +
      670  if (!decrypt_config ||
      +
      671  !decryptor_source_->DecryptSampleBuffer(decrypt_config.get(),
      +
      672  stream_sample->writable_data(),
      +
      673  stream_sample->data_size())) {
      +
      674  *err = true;
      +
      675  LOG(ERROR) << "Cannot decrypt samples.";
      +
      676  return false;
      +
      677  }
      +
      678  }
      +
      679 
      +
      680  stream_sample->set_dts(runs_->dts());
      +
      681  stream_sample->set_pts(runs_->cts());
      +
      682  stream_sample->set_duration(runs_->duration());
      +
      683 
      +
      684  DVLOG(3) << "Pushing frame: "
      +
      685  << ", key=" << runs_->is_keyframe()
      +
      686  << ", dur=" << runs_->duration()
      +
      687  << ", dts=" << runs_->dts()
      +
      688  << ", cts=" << runs_->cts()
      +
      689  << ", size=" << runs_->sample_size();
      +
      690 
      +
      691  if (!new_sample_cb_.Run(runs_->track_id(), stream_sample)) {
      +
      692  *err = true;
      +
      693  LOG(ERROR) << "Failed to process the sample.";
      +
      694  return false;
      +
      695  }
      +
      696 
      +
      697  runs_->AdvanceSample();
      +
      698  return true;
      +
      699 }
      +
      700 
      +
      701 bool MP4MediaParser::ReadAndDiscardMDATsUntil(const int64_t offset) {
      +
      702  bool err = false;
      +
      703  while (mdat_tail_ < offset) {
      +
      704  const uint8_t* buf;
      +
      705  int size;
      +
      706  queue_.PeekAt(mdat_tail_, &buf, &size);
      +
      707 
      +
      708  FourCC type;
      +
      709  uint64_t box_sz;
      +
      710  if (!BoxReader::StartTopLevelBox(buf, size, &type, &box_sz, &err))
      +
      711  break;
      +
      712 
      +
      713  mdat_tail_ += box_sz;
      +
      714  }
      +
      715  queue_.Trim(std::min(mdat_tail_, offset));
      +
      716  return !err;
      +
      717 }
      +
      718 
      +
      719 void MP4MediaParser::ChangeState(State new_state) {
      +
      720  DVLOG(2) << "Changing state: " << new_state;
      +
      721  state_ = new_state;
      +
      722 }
      +
      723 
      +
      724 } // namespace mp4
      +
      725 } // namespace media
      +
      726 } // namespace edash_packager
      static BoxReader * ReadTopLevelBox(const uint8_t *buf, const size_t buf_size, bool *err)
      Definition: box_reader.cc:37
      DecryptorSource wraps KeySource and is responsible for decryptor management.
      @@ -829,7 +831,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html b/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html index 925c5fde7c..229cb81fd7 100644 --- a/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html +++ b/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html b/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html index 06aae6f7e3..0ff97389ce 100644 --- a/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html +++ b/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/df9/byte__queue_8cc_source.html b/docs/d7/df9/byte__queue_8cc_source.html index b72f2f3047..f6aef1b942 100644 --- a/docs/d7/df9/byte__queue_8cc_source.html +++ b/docs/d7/df9/byte__queue_8cc_source.html @@ -182,7 +182,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dfa/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html b/docs/d7/dfa/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html index 1a3e7ec079..9891813f4e 100644 --- a/docs/d7/dfa/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html +++ b/docs/d7/dfa/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html @@ -214,7 +214,7 @@ double cluster_length_sec< diff --git a/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html b/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html index 157caa20eb..3615890ae2 100644 --- a/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html +++ b/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html @@ -285,7 +285,7 @@ track_id, const scoped_refptr
      diff --git a/docs/d8/d0d/media__sample_8cc_source.html b/docs/d8/d0d/media__sample_8cc_source.html index 585a0d85bd..94e20d27d8 100644 --- a/docs/d8/d0d/media__sample_8cc_source.html +++ b/docs/d8/d0d/media__sample_8cc_source.html @@ -195,7 +195,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d19/bandwidth__estimator_8h_source.html b/docs/d8/d19/bandwidth__estimator_8h_source.html index b26a33233e..caac147c33 100644 --- a/docs/d8/d19/bandwidth__estimator_8h_source.html +++ b/docs/d8/d19/bandwidth__estimator_8h_source.html @@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html b/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html index 0d8369b830..1a3a84ef01 100644 --- a/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html +++ b/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html @@ -376,7 +376,7 @@ void set_encryption_key diff --git a/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html b/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html index 5846775103..faa1d28333 100644 --- a/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html +++ b/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html @@ -108,14 +108,14 @@ uint32_t sample_descriptio

      Detailed Description

      -

      Definition at line 406 of file box_definitions.h.

      +

      Definition at line 413 of file box_definitions.h.


      The documentation for this struct was generated from the following file: diff --git a/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html b/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html index ef5174c2ec..bb374b0b07 100644 --- a/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html +++ b/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html b/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html index e760a3ff4d..63b4af2f44 100644 --- a/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html +++ b/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html b/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html index dfe83235f4..a3588374f1 100644 --- a/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html +++ b/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html b/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html index 6e7d0298b8..c8df8b5383 100644 --- a/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html +++ b/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html @@ -177,7 +177,7 @@ void  diff --git a/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html b/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html index 0cedf7d272..13ad5cbe62 100644 --- a/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html +++ b/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d33/webm__content__encodings__client_8h_source.html b/docs/d8/d33/webm__content__encodings__client_8h_source.html index f2f9d51018..5d94a905ef 100644 --- a/docs/d8/d33/webm__content__encodings__client_8h_source.html +++ b/docs/d8/d33/webm__content__encodings__client_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html b/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html index d6cd37114c..9f71b37cee 100644 --- a/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html +++ b/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d37/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter.html b/docs/d8/d37/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter.html index da004576e4..ac8e9a8ceb 100644 --- a/docs/d8/d37/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter.html +++ b/docs/d8/d37/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter.html @@ -129,7 +129,7 @@ Public Member Functions diff --git a/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html b/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html index 1c6544c239..08d94f5249 100644 --- a/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html +++ b/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html @@ -145,7 +145,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 208 of file box_definitions.h.

      +

      Definition at line 215 of file box_definitions.h.

      Member Function Documentation

      @@ -171,7 +171,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 943 of file box_definitions.cc.

      +

      Definition at line 975 of file box_definitions.cc.

      @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d8/d4d/aes__decryptor_8h_source.html b/docs/d8/d4d/aes__decryptor_8h_source.html index 1e9608feb8..8c050b0471 100644 --- a/docs/d8/d4d/aes__decryptor_8h_source.html +++ b/docs/d8/d4d/aes__decryptor_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d4d/classedash__packager_1_1media_1_1H265ByteToUnitStreamConverter.html b/docs/d8/d4d/classedash__packager_1_1media_1_1H265ByteToUnitStreamConverter.html index 26bb32f1d0..e58890acf4 100644 --- a/docs/d8/d4d/classedash__packager_1_1media_1_1H265ByteToUnitStreamConverter.html +++ b/docs/d8/d4d/classedash__packager_1_1media_1_1H265ByteToUnitStreamConverter.html @@ -171,7 +171,7 @@ static const size_t kUnitS diff --git a/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html b/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html index 4a05268a67..94bf30ad2d 100644 --- a/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html +++ b/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html b/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html index 900dffbce2..60e76a7535 100644 --- a/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html +++ b/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html @@ -411,7 +411,7 @@ class base::RefCountedThre diff --git a/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html b/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html index 586f5f6717..cc8aa53043 100644 --- a/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html +++ b/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html @@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html b/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html index 4aec4f6947..846472b9e3 100644 --- a/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html +++ b/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html b/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html index 823aa4e700..a28c06d6b4 100644 --- a/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html +++ b/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html @@ -320,7 +320,7 @@ Public Member Functions diff --git a/docs/d8/d74/classedash__packager_1_1Representation-members.html b/docs/d8/d74/classedash__packager_1_1Representation-members.html index 2c427ec16d..d6e0cb491f 100644 --- a/docs/d8/d74/classedash__packager_1_1Representation-members.html +++ b/docs/d8/d74/classedash__packager_1_1Representation-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html b/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html index 09b781fd01..3b7b222002 100644 --- a/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html +++ b/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html b/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html index f9b780b25d..b3d3c1816d 100644 --- a/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html +++ b/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html @@ -183,7 +183,7 @@ Additional Inherited Members diff --git a/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html b/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html index 7c7a5430cb..97726be597 100644 --- a/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html +++ b/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html @@ -152,7 +152,7 @@ Additional Inherited Members diff --git a/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html b/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html index 87195023e6..ee8e57108e 100644 --- a/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html +++ b/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html b/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html index 4e66846d8d..65edf85e69 100644 --- a/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html +++ b/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html @@ -141,7 +141,7 @@ virtual void Reset ()= diff --git a/docs/d8/d94/adts__constants_8cc_source.html b/docs/d8/d94/adts__constants_8cc_source.html index 43ca2cdc71..2ca3764867 100644 --- a/docs/d8/d94/adts__constants_8cc_source.html +++ b/docs/d8/d94/adts__constants_8cc_source.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d94/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html b/docs/d8/d94/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html index d53f1f80a8..2e8a6e4bc6 100644 --- a/docs/d8/d94/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html +++ b/docs/d8/d94/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d94/pes__packet_8h_source.html b/docs/d8/d94/pes__packet_8h_source.html index 54adef363d..69e6d39a2b 100644 --- a/docs/d8/d94/pes__packet_8h_source.html +++ b/docs/d8/d94/pes__packet_8h_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html b/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html index de85c57974..20c3cf04e7 100644 --- a/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html +++ b/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d9a/fragmenter_8cc_source.html b/docs/d8/d9a/fragmenter_8cc_source.html index d35668163f..71b552a88e 100644 --- a/docs/d8/d9a/fragmenter_8cc_source.html +++ b/docs/d8/d9a/fragmenter_8cc_source.html @@ -243,15 +243,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      virtual Status InitializeFragment(int64_t first_sample_dts)
      Definition: fragmenter.cc:76
      virtual Status AddSample(scoped_refptr< MediaSample > sample)
      Definition: fragmenter.cc:36
      - +
      bool OptimizeSampleEntries(std::vector< T > *entries, T *default_value)
      Definition: fragmenter.h:89
      - +
      virtual void FinalizeFragment()
      Finalize and optimize the fragment.
      Definition: fragmenter.cc:93
      diff --git a/docs/d8/d9c/webm__tracks__parser_8cc_source.html b/docs/d8/d9c/webm__tracks__parser_8cc_source.html index b7ee01c0ad..b13a076152 100644 --- a/docs/d8/d9c/webm__tracks__parser_8cc_source.html +++ b/docs/d8/d9c/webm__tracks__parser_8cc_source.html @@ -440,7 +440,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d9f/udp__file_8h_source.html b/docs/d8/d9f/udp__file_8h_source.html index dd3d9cbd05..c8790789ac 100644 --- a/docs/d8/d9f/udp__file_8h_source.html +++ b/docs/d8/d9f/udp__file_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html b/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html index 2103c4cf9e..7933fae329 100644 --- a/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html +++ b/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
      diff --git a/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html b/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html index 4864c735bd..412c0b97fc 100644 --- a/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html +++ b/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html b/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html index 164d1a639e..f3ca0067e2 100644 --- a/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html +++ b/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/daa/stream__info_8h_source.html b/docs/d8/daa/stream__info_8h_source.html index 7c8ee45986..6d5cc8193c 100644 --- a/docs/d8/daa/stream__info_8h_source.html +++ b/docs/d8/daa/stream__info_8h_source.html @@ -185,7 +185,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html b/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html index baf3e9d520..69b27f19b7 100644 --- a/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html +++ b/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html b/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html index 4a6e1f6797..87a131a79c 100644 --- a/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html +++ b/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html @@ -463,7 +463,7 @@ Additional Inherited Members diff --git a/docs/d8/dca/ts__writer_8h_source.html b/docs/d8/dca/ts__writer_8h_source.html index 6b87282590..5a9851b409 100644 --- a/docs/d8/dca/ts__writer_8h_source.html +++ b/docs/d8/dca/ts__writer_8h_source.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html b/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html index 7a7e4c6fe6..fff860a585 100644 --- a/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html +++ b/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html b/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html index a413bbf5b4..05850ff7de 100644 --- a/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html +++ b/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/de5/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry.html b/docs/d8/de5/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry.html index aef7a3bf45..0fe3f54d72 100644 --- a/docs/d8/de5/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry.html +++ b/docs/d8/de5/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry.html @@ -133,7 +133,7 @@ std::vector<
      Returns
      The size of the structure in bytes when it is stored.
      -

      Definition at line 282 of file box_definitions.cc.

      +

      Definition at line 285 of file box_definitions.cc.

      @@ -151,7 +151,7 @@ std::vector<
      Returns
      The accumulated size of subsamples. Returns 0 if there is no subsamples.
      -

      Definition at line 291 of file box_definitions.cc.

      +

      Definition at line 294 of file box_definitions.cc.

      @@ -195,7 +195,7 @@ std::vector<
      Returns
      true on success, false otherwise.
      -

      Definition at line 257 of file box_definitions.cc.

      +

      Definition at line 260 of file box_definitions.cc.

      @@ -239,7 +239,7 @@ std::vector<
      Returns
      true on success, false otherwise.
      -

      Definition at line 233 of file box_definitions.cc.

      +

      Definition at line 236 of file box_definitions.cc.

      @@ -250,7 +250,7 @@ std::vector< diff --git a/docs/d8/de6/webm__crypto__helpers_8h_source.html b/docs/d8/de6/webm__crypto__helpers_8h_source.html index 23ce0afa62..28bd045a25 100644 --- a/docs/d8/de6/webm__crypto__helpers_8h_source.html +++ b/docs/d8/de6/webm__crypto__helpers_8h_source.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html b/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html index 37c848311f..225164b9dc 100644 --- a/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html +++ b/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html @@ -180,7 +180,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html b/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html index bea4f8350b..0e28ca29f3 100644 --- a/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html +++ b/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/df4/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter-members.html b/docs/d8/df4/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter-members.html index 88618ede35..77f0dce7e2 100644 --- a/docs/d8/df4/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter-members.html +++ b/docs/d8/df4/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dfa/nal__unit__to__byte__stream__converter_8h_source.html b/docs/d8/dfa/nal__unit__to__byte__stream__converter_8h_source.html index bfd363ec02..8d71bd9685 100644 --- a/docs/d8/dfa/nal__unit__to__byte__stream__converter_8h_source.html +++ b/docs/d8/dfa/nal__unit__to__byte__stream__converter_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dfb/classedash__packager_1_1media_1_1DecoderConfiguration.html b/docs/d8/dfb/classedash__packager_1_1media_1_1DecoderConfiguration.html index 44e4736853..20d16475b4 100644 --- a/docs/d8/dfb/classedash__packager_1_1media_1_1DecoderConfiguration.html +++ b/docs/d8/dfb/classedash__packager_1_1media_1_1DecoderConfiguration.html @@ -333,7 +333,7 @@ void  diff --git a/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html b/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html index d75b9a69bc..3afa27fa5d 100644 --- a/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html +++ b/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html @@ -121,7 +121,7 @@ uint32_t height diff --git a/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html b/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html index ec9ad1e9a1..04697b39a1 100644 --- a/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html +++ b/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d08/mock__mpd__builder_8h_source.html b/docs/d9/d08/mock__mpd__builder_8h_source.html index 4fa70e345f..364a80bf95 100644 --- a/docs/d9/d08/mock__mpd__builder_8h_source.html +++ b/docs/d9/d08/mock__mpd__builder_8h_source.html @@ -180,7 +180,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d15/key__rotation__fragmenter_8cc_source.html b/docs/d9/d15/key__rotation__fragmenter_8cc_source.html index a5ca1a15c7..5bae0ef6c7 100644 --- a/docs/d9/d15/key__rotation__fragmenter_8cc_source.html +++ b/docs/d9/d15/key__rotation__fragmenter_8cc_source.html @@ -194,8 +194,8 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      105  // Fill in SampleGroupDescription box information.
      106  traf()->sample_group_description.grouping_type = FOURCC_seig;
      107  traf()->sample_group_description.entries.resize(1);
      -
      108  traf()->sample_group_description.entries[0].is_encrypted = true;
      -
      109  traf()->sample_group_description.entries[0].iv_size =
      +
      108  traf()->sample_group_description.entries[0].is_protected = 1;
      +
      109  traf()->sample_group_description.entries[0].per_sample_iv_size =
      110  encryptor()->iv().size();
      111  traf()->sample_group_description.entries[0].key_id = encryption_key()->key_id;
      112 
      @@ -229,15 +229,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      KeyRotationFragmenter(MovieFragment *moof, scoped_refptr< StreamInfo > info, TrackFragment *traf, KeySource *encryption_key_source, KeySource::TrackType track_type, int64_t crypto_period_duration, int64_t clear_time, FourCC protection_scheme, MuxerListener *muxer_listener)
      KeySource is responsible for encryption key acquisition.
      Definition: key_source.h:31
      - - + +
      const std::vector< uint8_t > & iv() const
      Definition: aes_cryptor.h:60
      virtual void FinalizeFragmentForEncryption()
      Finalize current fragment for encryption.
      virtual Status GetCryptoPeriodKey(uint32_t crypto_period_index, TrackType track_type, EncryptionKey *key)=0
      diff --git a/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html b/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html index c9feaedccd..68f9ce0faf 100644 --- a/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html +++ b/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html b/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html index 0415b9c265..4211bc1bb7 100644 --- a/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html +++ b/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html @@ -145,7 +145,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 449 of file box_definitions.h.

      +

      Definition at line 456 of file box_definitions.h.

      Member Function Documentation

      @@ -171,7 +171,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 869 of file box_definitions.cc.

      +

      Definition at line 901 of file box_definitions.cc.

      @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d9/d21/structedash__packager_1_1media_1_1mp4_1_1ID3v2.html b/docs/d9/d21/structedash__packager_1_1media_1_1mp4_1_1ID3v2.html index eb6cefac17..d90c7e2e50 100644 --- a/docs/d9/d21/structedash__packager_1_1media_1_1mp4_1_1ID3v2.html +++ b/docs/d9/d21/structedash__packager_1_1media_1_1mp4_1_1ID3v2.html @@ -152,7 +152,7 @@ Additional Inherited Members

      Detailed Description

      Implemented per http://mp4ra.org/specs.html#id3v2 and http://id3.org/id3v2.4.0-structure.

      -

      Definition at line 244 of file box_definitions.h.

      +

      Definition at line 251 of file box_definitions.h.

      Member Function Documentation

      @@ -178,7 +178,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1134 of file box_definitions.cc.

      +

      Definition at line 1166 of file box_definitions.cc.

      @@ -189,7 +189,7 @@ Additional Inherited Members diff --git a/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html b/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html index e55ed1d954..2c17c57beb 100644 --- a/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html +++ b/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html @@ -146,7 +146,7 @@ Public Member Functions diff --git a/docs/d9/d3b/classedash__packager_1_1media_1_1MemoryFile-members.html b/docs/d9/d3b/classedash__packager_1_1media_1_1MemoryFile-members.html index 22b73adcb4..03a8613c64 100644 --- a/docs/d9/d3b/classedash__packager_1_1media_1_1MemoryFile-members.html +++ b/docs/d9/d3b/classedash__packager_1_1media_1_1MemoryFile-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d3b/webm__content__encodings_8h_source.html b/docs/d9/d3b/webm__content__encodings_8h_source.html index 133c8af72d..8c59c05495 100644 --- a/docs/d9/d3b/webm__content__encodings_8h_source.html +++ b/docs/d9/d3b/webm__content__encodings_8h_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html b/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html index dbcf8e9023..8dced67be5 100644 --- a/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html +++ b/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html @@ -276,7 +276,7 @@ bool ReadNBytesInto8s diff --git a/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html b/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html index fd92741481..d6208cf0d0 100644 --- a/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html +++ b/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html @@ -185,7 +185,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 591 of file box_definitions.h.

      +

      Definition at line 598 of file box_definitions.h.

      Member Function Documentation

      @@ -211,7 +211,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1962 of file box_definitions.cc.

      +

      Definition at line 1994 of file box_definitions.cc.

      @@ -222,7 +222,7 @@ Additional Inherited Members diff --git a/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html b/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html index bfc9876556..0cfd1fc96f 100644 --- a/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html +++ b/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d60/classedash__packager_1_1media_1_1AesCryptor.html b/docs/d9/d60/classedash__packager_1_1media_1_1AesCryptor.html index 5b80865ec9..411142b313 100644 --- a/docs/d9/d60/classedash__packager_1_1media_1_1AesCryptor.html +++ b/docs/d9/d60/classedash__packager_1_1media_1_1AesCryptor.html @@ -369,7 +369,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html b/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html index c10ebc341a..b2943cdb05 100644 --- a/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html +++ b/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html b/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html index 49544102b6..9e03514bdf 100644 --- a/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html +++ b/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html @@ -119,7 +119,7 @@ union { diff --git a/docs/d9/d76/ts__muxer_8cc_source.html b/docs/d9/d76/ts__muxer_8cc_source.html index d5f602606e..c100e81c4c 100644 --- a/docs/d9/d76/ts__muxer_8cc_source.html +++ b/docs/d9/d76/ts__muxer_8cc_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html b/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html index 42af609d4f..3c39cf1fc0 100644 --- a/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html +++ b/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html @@ -132,7 +132,7 @@ int64_t video_sample_durat diff --git a/docs/d9/d86/limits_8h_source.html b/docs/d9/d86/limits_8h_source.html index faf40434b1..447699c2ac 100644 --- a/docs/d9/d86/limits_8h_source.html +++ b/docs/d9/d86/limits_8h_source.html @@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html b/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html index 014bd49028..45ce37aafe 100644 --- a/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html +++ b/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html @@ -407,7 +407,7 @@ static std::string  diff --git a/docs/d9/d90/text__track_8h_source.html b/docs/d9/d90/text__track_8h_source.html index f1254b863d..75f386347d 100644 --- a/docs/d9/d90/text__track_8h_source.html +++ b/docs/d9/d90/text__track_8h_source.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d93/media__stream_8h_source.html b/docs/d9/d93/media__stream_8h_source.html index d02dda2546..7baff2510b 100644 --- a/docs/d9/d93/media__stream_8h_source.html +++ b/docs/d9/d93/media__stream_8h_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html b/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html index f716d2bda9..3e377292e7 100644 --- a/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html +++ b/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html b/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html index ad998df937..f4c65b6c63 100644 --- a/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html +++ b/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html b/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html index 8d1cb1b0f4..12e7723088 100644 --- a/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html +++ b/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html @@ -118,7 +118,7 @@ uint64_t repeat diff --git a/docs/d9/da4/stream__descriptor_8h_source.html b/docs/d9/da4/stream__descriptor_8h_source.html index 6aa90618da..beb470ba1d 100644 --- a/docs/d9/da4/stream__descriptor_8h_source.html +++ b/docs/d9/da4/stream__descriptor_8h_source.html @@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/da7/classedash__packager_1_1media_1_1H26xBitReader-members.html b/docs/d9/da7/classedash__packager_1_1media_1_1H26xBitReader-members.html index 3ea99c3cc9..dea1eafe42 100644 --- a/docs/d9/da7/classedash__packager_1_1media_1_1H26xBitReader-members.html +++ b/docs/d9/da7/classedash__packager_1_1media_1_1H26xBitReader-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html b/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html index dfd8f90301..d8c38a1f99 100644 --- a/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html +++ b/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html @@ -231,7 +231,7 @@ Additional Inherited Members diff --git a/docs/d9/db9/content__protection__element_8cc_source.html b/docs/d9/db9/content__protection__element_8cc_source.html index a4aaeabc05..7580fae621 100644 --- a/docs/d9/db9/content__protection__element_8cc_source.html +++ b/docs/d9/db9/content__protection__element_8cc_source.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/db9/muxer_8cc_source.html b/docs/d9/db9/muxer_8cc_source.html index e5664b1e54..370117a5fb 100644 --- a/docs/d9/db9/muxer_8cc_source.html +++ b/docs/d9/db9/muxer_8cc_source.html @@ -218,7 +218,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dbf/classedash__packager_1_1media_1_1TextStreamInfo-members.html b/docs/d9/dbf/classedash__packager_1_1media_1_1TextStreamInfo-members.html index a569cd7ab9..42d097318b 100644 --- a/docs/d9/dbf/classedash__packager_1_1media_1_1TextStreamInfo-members.html +++ b/docs/d9/dbf/classedash__packager_1_1media_1_1TextStreamInfo-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dc8/webm__constants_8cc_source.html b/docs/d9/dc8/webm__constants_8cc_source.html index b783b71865..af559cdb3d 100644 --- a/docs/d9/dc8/webm__constants_8cc_source.html +++ b/docs/d9/dc8/webm__constants_8cc_source.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html b/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html index 65b8d252d1..0acb430d55 100644 --- a/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html +++ b/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html @@ -148,7 +148,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 293 of file box_definitions.h.

      +

      Definition at line 300 of file box_definitions.h.

      Member Function Documentation

      @@ -174,7 +174,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1346 of file box_definitions.cc.

      +

      Definition at line 1378 of file box_definitions.cc.

      @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d9/dcc/webm__video__client_8h_source.html b/docs/d9/dcc/webm__video__client_8h_source.html index fbcfc163d3..1489c5e8aa 100644 --- a/docs/d9/dcc/webm__video__client_8h_source.html +++ b/docs/d9/dcc/webm__video__client_8h_source.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/de3/muxer__listener__internal_8cc_source.html b/docs/d9/de3/muxer__listener__internal_8cc_source.html index a56edaec4a..fd0d9a33bc 100644 --- a/docs/d9/de3/muxer__listener__internal_8cc_source.html +++ b/docs/d9/de3/muxer__listener__internal_8cc_source.html @@ -343,7 +343,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html b/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html index 0f09f78fe0..87c4e8f65f 100644 --- a/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html +++ b/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/ded/aac__audio__specific__config_8cc_source.html b/docs/d9/ded/aac__audio__specific__config_8cc_source.html index 7abf579068..39ba54c73f 100644 --- a/docs/d9/ded/aac__audio__specific__config_8cc_source.html +++ b/docs/d9/ded/aac__audio__specific__config_8cc_source.html @@ -357,7 +357,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d00/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html b/docs/da/d00/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html index 771077b750..f07c5f77cf 100644 --- a/docs/da/d00/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html +++ b/docs/da/d00/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html b/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html index edd84deee5..803f0279d2 100644 --- a/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html +++ b/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html b/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html index 576ed60e42..4ef87866a1 100644 --- a/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html +++ b/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d04/audio__stream__info_8cc_source.html b/docs/da/d04/audio__stream__info_8cc_source.html index a844bc5fb5..43cec45028 100644 --- a/docs/da/d04/audio__stream__info_8cc_source.html +++ b/docs/da/d04/audio__stream__info_8cc_source.html @@ -225,7 +225,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d09/classedash__packager_1_1media_1_1SegmentTestBase-members.html b/docs/da/d09/classedash__packager_1_1media_1_1SegmentTestBase-members.html index 7cb8bd54ca..acee0814f3 100644 --- a/docs/da/d09/classedash__packager_1_1media_1_1SegmentTestBase-members.html +++ b/docs/da/d09/classedash__packager_1_1media_1_1SegmentTestBase-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d0b/classedash__packager_1_1media_1_1FixedKeySource-members.html b/docs/da/d0b/classedash__packager_1_1media_1_1FixedKeySource-members.html index e4088f3862..2c714086f5 100644 --- a/docs/da/d0b/classedash__packager_1_1media_1_1FixedKeySource-members.html +++ b/docs/da/d0b/classedash__packager_1_1media_1_1FixedKeySource-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html b/docs/da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html index 31dfa12ca0..fe8d3fa69b 100644 --- a/docs/da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html +++ b/docs/da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html @@ -427,7 +427,7 @@ virtual diff --git a/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html b/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html index 4d05ad0049..b3aab97c49 100644 --- a/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html +++ b/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html b/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html index e866bea711..35bd50af20 100644 --- a/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html +++ b/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html @@ -145,7 +145,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 546 of file box_definitions.h.

      +

      Definition at line 553 of file box_definitions.h.

      Member Function Documentation

      @@ -171,7 +171,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1820 of file box_definitions.cc.

      +

      Definition at line 1852 of file box_definitions.cc.

      @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html b/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html index eb4294fee1..593d5f62d3 100644 --- a/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html +++ b/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d22/key__rotation__fragmenter_8h_source.html b/docs/da/d22/key__rotation__fragmenter_8h_source.html index 7a368c24f8..f440a66ab6 100644 --- a/docs/da/d22/key__rotation__fragmenter_8h_source.html +++ b/docs/da/d22/key__rotation__fragmenter_8h_source.html @@ -151,12 +151,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      KeySource is responsible for encryption key acquisition.
      Definition: key_source.h:31
      - - + + diff --git a/docs/da/d23/ts__muxer_8h_source.html b/docs/da/d23/ts__muxer_8h_source.html index 485d455793..35aff2bcd2 100644 --- a/docs/da/d23/ts__muxer_8h_source.html +++ b/docs/da/d23/ts__muxer_8h_source.html @@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d24/h265__parser_8h_source.html b/docs/da/d24/h265__parser_8h_source.html index 2468a6aa7f..035aa82424 100644 --- a/docs/da/d24/h265__parser_8h_source.html +++ b/docs/da/d24/h265__parser_8h_source.html @@ -412,7 +412,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d25/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer-members.html b/docs/da/d25/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer-members.html index 6802abba09..95e4e036a2 100644 --- a/docs/da/d25/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer-members.html +++ b/docs/da/d25/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html b/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html index 8724364604..19a08530db 100644 --- a/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html +++ b/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html @@ -307,7 +307,7 @@ Static Public Member Functions diff --git a/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html b/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html index 59ccb7bbef..127bae6e91 100644 --- a/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html +++ b/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html @@ -171,7 +171,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 158 of file box_definitions.cc.

      +

      Definition at line 161 of file box_definitions.cc.

      @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/da/d2a/text__stream__info_8h_source.html b/docs/da/d2a/text__stream__info_8h_source.html index adb5299c07..d51f241290 100644 --- a/docs/da/d2a/text__stream__info_8h_source.html +++ b/docs/da/d2a/text__stream__info_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d2c/decoder__configuration_8cc_source.html b/docs/da/d2c/decoder__configuration_8cc_source.html index b0e265d438..15ddbafd62 100644 --- a/docs/da/d2c/decoder__configuration_8cc_source.html +++ b/docs/da/d2c/decoder__configuration_8cc_source.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d2e/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser-members.html b/docs/da/d2e/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser-members.html index 3fa4486b9a..794066e014 100644 --- a/docs/da/d2e/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser-members.html +++ b/docs/da/d2e/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html b/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html index 5dd4b40140..1417518ea3 100644 --- a/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html +++ b/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d38/classedash__packager_1_1MpdNotifier.html b/docs/da/d38/classedash__packager_1_1MpdNotifier.html index a614d6bb8a..26960e8b83 100644 --- a/docs/da/d38/classedash__packager_1_1MpdNotifier.html +++ b/docs/da/d38/classedash__packager_1_1MpdNotifier.html @@ -472,7 +472,7 @@ Public Member Functions diff --git a/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html b/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html index 8a4a7eb023..1f0fe51b9a 100644 --- a/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html +++ b/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html b/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html index a0aedcce2f..d1c5d7c287 100644 --- a/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html +++ b/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html b/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html index a973c45f42..5e9e0df2ea 100644 --- a/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html +++ b/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html @@ -473,7 +473,7 @@ class DashIopMpdNotifierTe diff --git a/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html b/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html index 56c2cb644f..7ccea31a8e 100644 --- a/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html +++ b/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html @@ -162,7 +162,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 369 of file box_definitions.cc.

      +

      Definition at line 374 of file box_definitions.cc.

      @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html b/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html index 3ff093a7fe..c6045f390d 100644 --- a/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html +++ b/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html @@ -145,7 +145,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 400 of file box_definitions.h.

      +

      Definition at line 407 of file box_definitions.h.

      Member Function Documentation

      @@ -171,7 +171,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 657 of file box_definitions.cc.

      +

      Definition at line 689 of file box_definitions.cc.

      @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/da/d5c/widevine__key__source_8h_source.html b/docs/da/d5c/widevine__key__source_8h_source.html index a751533b09..9cd74a44de 100644 --- a/docs/da/d5c/widevine__key__source_8h_source.html +++ b/docs/da/d5c/widevine__key__source_8h_source.html @@ -218,7 +218,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html b/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html index 0050be21d6..6530958726 100644 --- a/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html +++ b/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html @@ -238,7 +238,7 @@ Additional Inherited Members diff --git a/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html b/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html index 05c8ab5270..8f46fc8050 100644 --- a/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html +++ b/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html b/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html index 5b3184ba6f..d2e4b86c76 100644 --- a/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html +++ b/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html b/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html index 6e1ccb333c..730f0aa2f3 100644 --- a/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html +++ b/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html @@ -259,7 +259,7 @@ void set_progress_target diff --git a/docs/da/d78/structedash__packager_1_1media_1_1mp4_1_1Metadata-members.html b/docs/da/d78/structedash__packager_1_1media_1_1mp4_1_1Metadata-members.html index 251feb09b5..33468659c0 100644 --- a/docs/da/d78/structedash__packager_1_1media_1_1mp4_1_1Metadata-members.html +++ b/docs/da/d78/structedash__packager_1_1media_1_1mp4_1_1Metadata-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html b/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html index 065be64546..7cb4a12bb7 100644 --- a/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html +++ b/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d7a/fixed__key__encryption__flags_8h_source.html b/docs/da/d7a/fixed__key__encryption__flags_8h_source.html index edff8c1000..ce1325b7d5 100644 --- a/docs/da/d7a/fixed__key__encryption__flags_8h_source.html +++ b/docs/da/d7a/fixed__key__encryption__flags_8h_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html b/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html index d0a5569e34..26ba66b78a 100644 --- a/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html +++ b/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html @@ -109,7 +109,7 @@ bool operator() (const diff --git a/docs/da/d7f/classedash__packager_1_1media_1_1AesCbcEncryptor.html b/docs/da/d7f/classedash__packager_1_1media_1_1AesCbcEncryptor.html index e17f070b91..1996a6da62 100644 --- a/docs/da/d7f/classedash__packager_1_1media_1_1AesCbcEncryptor.html +++ b/docs/da/d7f/classedash__packager_1_1media_1_1AesCbcEncryptor.html @@ -249,7 +249,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/da/d7f/hevc__decoder__configuration_8h_source.html b/docs/da/d7f/hevc__decoder__configuration_8h_source.html index c406ae8d3a..c860e20a19 100644 --- a/docs/da/d7f/hevc__decoder__configuration_8h_source.html +++ b/docs/da/d7f/hevc__decoder__configuration_8h_source.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html b/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html index f7388915cb..d820fdc2b3 100644 --- a/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html +++ b/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html @@ -146,7 +146,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 437 of file box_definitions.h.

      +

      Definition at line 444 of file box_definitions.h.

      Member Function Documentation

      @@ -174,7 +174,7 @@ Additional Inherited Members

      Reimplemented in edash_packager::media::mp4::ChunkOffset.

      -

      Definition at line 833 of file box_definitions.cc.

      +

      Definition at line 865 of file box_definitions.cc.

      @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/da/d88/mp4__muxer_8cc_source.html b/docs/da/d88/mp4__muxer_8cc_source.html index 162f6a6f6e..fb62a6006b 100644 --- a/docs/da/d88/mp4__muxer_8cc_source.html +++ b/docs/da/d88/mp4__muxer_8cc_source.html @@ -472,7 +472,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d8e/container__names_8cc_source.html b/docs/da/d8e/container__names_8cc_source.html index 8962748361..12ad9976be 100644 --- a/docs/da/d8e/container__names_8cc_source.html +++ b/docs/da/d8e/container__names_8cc_source.html @@ -1835,7 +1835,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d95/classedash__packager_1_1media_1_1MkvWriter-members.html b/docs/da/d95/classedash__packager_1_1media_1_1MkvWriter-members.html index e50f4b9650..159e5ca6c4 100644 --- a/docs/da/d95/classedash__packager_1_1media_1_1MkvWriter-members.html +++ b/docs/da/d95/classedash__packager_1_1media_1_1MkvWriter-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d99/classedash__packager_1_1media_1_1webm_1_1Encryptor-members.html b/docs/da/d99/classedash__packager_1_1media_1_1webm_1_1Encryptor-members.html index 5d1f5f6d96..85df808ea1 100644 --- a/docs/da/d99/classedash__packager_1_1media_1_1webm_1_1Encryptor-members.html +++ b/docs/da/d99/classedash__packager_1_1media_1_1webm_1_1Encryptor-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html b/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html index 5bd104f362..a23bea0b69 100644 --- a/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html +++ b/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html @@ -145,7 +145,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 489 of file box_definitions.h.

      +

      Definition at line 496 of file box_definitions.h.

      Member Function Documentation

      @@ -171,7 +171,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1635 of file box_definitions.cc.

      +

      Definition at line 1667 of file box_definitions.cc.

      @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/da/dc3/status_8cc_source.html b/docs/da/dc3/status_8cc_source.html index 17bd41025b..c31757336e 100644 --- a/docs/da/dc3/status_8cc_source.html +++ b/docs/da/dc3/status_8cc_source.html @@ -168,7 +168,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dcb/es__descriptor_8h_source.html b/docs/da/dcb/es__descriptor_8h_source.html index 27b81f9455..eb3b097fcc 100644 --- a/docs/da/dcb/es__descriptor_8h_source.html +++ b/docs/da/dcb/es__descriptor_8h_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dd0/webm__info__parser_8h_source.html b/docs/da/dd0/webm__info__parser_8h_source.html index 667c3165c1..ab504679e8 100644 --- a/docs/da/dd0/webm__info__parser_8h_source.html +++ b/docs/da/dd0/webm__info__parser_8h_source.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dd1/fragmenter_8h_source.html b/docs/da/dd1/fragmenter_8h_source.html index 1311620e60..05e992d95c 100644 --- a/docs/da/dd1/fragmenter_8h_source.html +++ b/docs/da/dd1/fragmenter_8h_source.html @@ -189,15 +189,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      virtual Status InitializeFragment(int64_t first_sample_dts)
      Definition: fragmenter.cc:76
      virtual Status AddSample(scoped_refptr< MediaSample > sample)
      Definition: fragmenter.cc:36
      - +
      bool OptimizeSampleEntries(std::vector< T > *entries, T *default_value)
      Definition: fragmenter.h:89
      - +
      virtual void FinalizeFragment()
      Finalize and optimize the fragment.
      Definition: fragmenter.cc:93
      diff --git a/docs/da/de2/mock__mpd__builder_8cc_source.html b/docs/da/de2/mock__mpd__builder_8cc_source.html index c91632c90b..e4ca4ca5d6 100644 --- a/docs/da/de2/mock__mpd__builder_8cc_source.html +++ b/docs/da/de2/mock__mpd__builder_8cc_source.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html b/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html index e0152b766c..759e8eb1e4 100644 --- a/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html +++ b/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html @@ -131,7 +131,7 @@ int64_t GetFramesToTarget< diff --git a/docs/da/df0/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter-members.html b/docs/da/df0/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter-members.html index 11d1f5035a..6fdabc60c7 100644 --- a/docs/da/df0/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter-members.html +++ b/docs/da/df0/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/df4/aes__decryptor_8cc_source.html b/docs/da/df4/aes__decryptor_8cc_source.html index 007a9548d6..cb2b210880 100644 --- a/docs/da/df4/aes__decryptor_8cc_source.html +++ b/docs/da/df4/aes__decryptor_8cc_source.html @@ -255,7 +255,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html b/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html index 23550ab812..0e2911ca54 100644 --- a/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html +++ b/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html @@ -105,14 +105,14 @@ int64_t sample_offset<

      Detailed Description

      -

      Definition at line 391 of file box_definitions.h.

      +

      Definition at line 398 of file box_definitions.h.


      The documentation for this struct was generated from the following file: diff --git a/docs/db/d01/avc__decoder__configuration_8cc_source.html b/docs/db/d01/avc__decoder__configuration_8cc_source.html index 3ef06db324..b97798cec3 100644 --- a/docs/db/d01/avc__decoder__configuration_8cc_source.html +++ b/docs/db/d01/avc__decoder__configuration_8cc_source.html @@ -203,7 +203,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html b/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html index daeb16e845..8d2e8567c5 100644 --- a/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html +++ b/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html @@ -177,7 +177,7 @@ Public Member Functions diff --git a/docs/db/d09/namespaceedash__packager.html b/docs/db/d09/namespaceedash__packager.html index 17a4886741..fd96bed4ba 100644 --- a/docs/db/d09/namespaceedash__packager.html +++ b/docs/db/d09/namespaceedash__packager.html @@ -559,7 +559,7 @@ const char kEncryptedMp4Va diff --git a/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html b/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html index 86e4486307..d1836e6291 100644 --- a/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html +++ b/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html b/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html index c82ed54c57..11b7bd401f 100644 --- a/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html +++ b/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html b/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html index 90fd13d11b..90a679f240 100644 --- a/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html +++ b/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html @@ -225,7 +225,7 @@ The number of bytes parsed on success. diff --git a/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html b/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html index 1eefa76a94..da85e9c40b 100644 --- a/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html +++ b/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html @@ -217,7 +217,7 @@ bool is_keyframe () co

      Advance iterator to the next run. Require that the iterator point to a valid run.

      -

      Definition at line 424 of file track_run_iterator.cc.

      +

      Definition at line 428 of file track_run_iterator.cc.

      @@ -235,7 +235,7 @@ bool is_keyframe () co

      Advance iterator to the next sample. Require that the iterator point to a valid sample.

      -

      Definition at line 437 of file track_run_iterator.cc.

      +

      Definition at line 441 of file track_run_iterator.cc.

      @@ -253,7 +253,7 @@ bool is_keyframe () co
      Returns
      true if this track run has auxiliary information and has not yet been cached. Only valid if IsRunValid().
      -

      Definition at line 446 of file track_run_iterator.cc.

      +

      Definition at line 450 of file track_run_iterator.cc.

      @@ -290,7 +290,7 @@ bool is_keyframe () co
      Returns
      true on success, false on error.
      -

      Definition at line 453 of file track_run_iterator.cc.

      +

      Definition at line 457 of file track_run_iterator.cc.

      @@ -308,7 +308,7 @@ bool is_keyframe () co

      Only call when is_encrypted() is true and AuxInfoNeedsToBeCached() is false. Result is owned by caller.

      -

      Definition at line 585 of file track_run_iterator.cc.

      +

      Definition at line 591 of file track_run_iterator.cc.

      @@ -326,7 +326,7 @@ bool is_keyframe () co
      Returns
      the maximum buffer location at which no data earlier in the stream will be required in order to read the current or any subsequent sample. You may clear all data up to this offset before reading the current sample safely. Result is in the same units as offset() (for Media Source this is in bytes past the head of the MOOF box).
      -

      Definition at line 487 of file track_run_iterator.cc.

      +

      Definition at line 493 of file track_run_iterator.cc.

      @@ -365,7 +365,7 @@ bool is_keyframe () co

      Set up the iterator to handle all the runs from the current fragment.

      Returns
      true on success, false otherwise.
      -

      Definition at line 277 of file track_run_iterator.cc.

      +

      Definition at line 279 of file track_run_iterator.cc.

      @@ -383,7 +383,7 @@ bool is_keyframe () co
      Returns
      true if the iterator points to a valid run, false if past the last run.
      -

      Definition at line 475 of file track_run_iterator.cc.

      +

      Definition at line 481 of file track_run_iterator.cc.

      @@ -401,7 +401,7 @@ bool is_keyframe () co
      Returns
      true if the iterator points to a valid sample, false if past the last sample.
      -

      Definition at line 477 of file track_run_iterator.cc.

      +

      Definition at line 483 of file track_run_iterator.cc.

      @@ -412,7 +412,7 @@ bool is_keyframe () co diff --git a/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html b/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html index aaa387cb87..346964ef6a 100644 --- a/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html +++ b/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html @@ -153,7 +153,7 @@ Additional Inherited Members diff --git a/docs/db/d31/h26x__byte__to__unit__stream__converter_8h_source.html b/docs/db/d31/h26x__byte__to__unit__stream__converter_8h_source.html index 53f8521317..24b7f855cd 100644 --- a/docs/db/d31/h26x__byte__to__unit__stream__converter_8h_source.html +++ b/docs/db/d31/h26x__byte__to__unit__stream__converter_8h_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d31/track__run__iterator_8cc_source.html b/docs/db/d31/track__run__iterator_8cc_source.html index 11f7706df7..d8ae6f16f4 100644 --- a/docs/db/d31/track__run__iterator_8cc_source.html +++ b/docs/db/d31/track__run__iterator_8cc_source.html @@ -313,443 +313,449 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      224  desc_idx = 0;
      225  tri.audio_description = &stsd.audio_entries[desc_idx];
      226  // We don't support encrypted non-fragmented mp4 for now.
      -
      227  RCHECK(!tri.audio_description->sinf.info.track_encryption.is_encrypted);
      -
      228  } else if (tri.track_type == kVideo) {
      -
      229  RCHECK(!stsd.video_entries.empty());
      -
      230  if (desc_idx > stsd.video_entries.size())
      -
      231  desc_idx = 0;
      -
      232  tri.video_description = &stsd.video_entries[desc_idx];
      -
      233  // We don't support encrypted non-fragmented mp4 for now.
      -
      234  RCHECK(!tri.video_description->sinf.info.track_encryption.is_encrypted);
      -
      235  }
      -
      236 
      -
      237  uint32_t samples_per_chunk = chunk_info.samples_per_chunk();
      -
      238  tri.samples.resize(samples_per_chunk);
      -
      239  for (uint32_t k = 0; k < samples_per_chunk; ++k) {
      -
      240  SampleInfo& sample = tri.samples[k];
      -
      241  sample.size = sample_size.sample_size != 0
      -
      242  ? sample_size.sample_size
      -
      243  : sample_size.sizes[sample_index];
      -
      244  sample.duration = decoding_time.sample_delta();
      -
      245  sample.cts_offset =
      -
      246  has_composition_offset ? composition_offset.sample_offset() : 0;
      -
      247  sample.is_keyframe = sync_sample.IsSyncSample();
      -
      248 
      -
      249  run_start_dts += sample.duration;
      +
      227  RCHECK(tri.audio_description->sinf.info.track_encryption
      +
      228  .default_is_protected == 0);
      +
      229  } else if (tri.track_type == kVideo) {
      +
      230  RCHECK(!stsd.video_entries.empty());
      +
      231  if (desc_idx > stsd.video_entries.size())
      +
      232  desc_idx = 0;
      +
      233  tri.video_description = &stsd.video_entries[desc_idx];
      +
      234  // We don't support encrypted non-fragmented mp4 for now.
      +
      235  RCHECK(tri.video_description->sinf.info.track_encryption
      +
      236  .default_is_protected == 0);
      +
      237  }
      +
      238 
      +
      239  uint32_t samples_per_chunk = chunk_info.samples_per_chunk();
      +
      240  tri.samples.resize(samples_per_chunk);
      +
      241  for (uint32_t k = 0; k < samples_per_chunk; ++k) {
      +
      242  SampleInfo& sample = tri.samples[k];
      +
      243  sample.size = sample_size.sample_size != 0
      +
      244  ? sample_size.sample_size
      +
      245  : sample_size.sizes[sample_index];
      +
      246  sample.duration = decoding_time.sample_delta();
      +
      247  sample.cts_offset =
      +
      248  has_composition_offset ? composition_offset.sample_offset() : 0;
      +
      249  sample.is_keyframe = sync_sample.IsSyncSample();
      250 
      -
      251  // Advance to next sample. Should success except for last sample.
      -
      252  ++sample_index;
      -
      253  RCHECK(chunk_info.AdvanceSample() && sync_sample.AdvanceSample());
      -
      254  if (sample_index == num_samples) {
      -
      255  // We should hit end of tables for decoding time and composition
      -
      256  // offset.
      -
      257  RCHECK(!decoding_time.AdvanceSample());
      -
      258  if (has_composition_offset)
      -
      259  RCHECK(!composition_offset.AdvanceSample());
      -
      260  } else {
      -
      261  RCHECK(decoding_time.AdvanceSample());
      -
      262  if (has_composition_offset)
      -
      263  RCHECK(composition_offset.AdvanceSample());
      -
      264  }
      -
      265  }
      -
      266 
      -
      267  runs_.push_back(tri);
      -
      268  }
      -
      269  }
      -
      270 
      -
      271  std::sort(runs_.begin(), runs_.end(), CompareMinTrackRunDataOffset());
      -
      272  run_itr_ = runs_.begin();
      -
      273  ResetRun();
      -
      274  return true;
      -
      275 }
      -
      276 
      - -
      278  runs_.clear();
      -
      279 
      -
      280  next_fragment_start_dts_.resize(moof.tracks.size(), 0);
      -
      281  for (size_t i = 0; i < moof.tracks.size(); i++) {
      -
      282  const TrackFragment& traf = moof.tracks[i];
      -
      283 
      -
      284  const Track* trak = NULL;
      -
      285  for (size_t t = 0; t < moov_->tracks.size(); t++) {
      -
      286  if (moov_->tracks[t].header.track_id == traf.header.track_id)
      -
      287  trak = &moov_->tracks[t];
      -
      288  }
      -
      289  RCHECK(trak);
      -
      290 
      -
      291  const TrackExtends* trex = NULL;
      -
      292  for (size_t t = 0; t < moov_->extends.tracks.size(); t++) {
      -
      293  if (moov_->extends.tracks[t].track_id == traf.header.track_id)
      -
      294  trex = &moov_->extends.tracks[t];
      -
      295  }
      -
      296  RCHECK(trex);
      -
      297 
      -
      298  const SampleDescription& stsd =
      -
      299  trak->media.information.sample_table.description;
      -
      300  if (stsd.type != kAudio && stsd.type != kVideo) {
      -
      301  DVLOG(1) << "Skipping unhandled track type";
      -
      302  continue;
      -
      303  }
      -
      304  size_t desc_idx = traf.header.sample_description_index;
      -
      305  if (!desc_idx)
      -
      306  desc_idx = trex->default_sample_description_index;
      -
      307  RCHECK(desc_idx > 0); // Descriptions are one-indexed in the file
      -
      308  desc_idx -= 1;
      -
      309 
      -
      310  const AudioSampleEntry* audio_sample_entry = NULL;
      -
      311  const VideoSampleEntry* video_sample_entry = NULL;
      -
      312  switch (stsd.type) {
      -
      313  case kAudio:
      -
      314  RCHECK(!stsd.audio_entries.empty());
      -
      315  if (desc_idx > stsd.audio_entries.size())
      -
      316  desc_idx = 0;
      -
      317  audio_sample_entry = &stsd.audio_entries[desc_idx];
      -
      318  break;
      -
      319  case kVideo:
      -
      320  RCHECK(!stsd.video_entries.empty());
      -
      321  if (desc_idx > stsd.video_entries.size())
      -
      322  desc_idx = 0;
      -
      323  video_sample_entry = &stsd.video_entries[desc_idx];
      -
      324  break;
      -
      325  default:
      -
      326  NOTREACHED();
      -
      327  break;
      -
      328  }
      -
      329 
      -
      330  // SampleEncryptionEntries should not have been parsed, without having
      -
      331  // iv_size. Parse the box now.
      -
      332  DCHECK(traf.sample_encryption.sample_encryption_entries.empty());
      -
      333  std::vector<SampleEncryptionEntry> sample_encryption_entries;
      -
      334  if (!traf.sample_encryption.sample_encryption_data.empty()) {
      -
      335  RCHECK(audio_sample_entry || video_sample_entry);
      -
      336  const uint8_t default_iv_size =
      -
      337  audio_sample_entry
      -
      338  ? audio_sample_entry->sinf.info.track_encryption.default_iv_size
      -
      339  : video_sample_entry->sinf.info.track_encryption.default_iv_size;
      -
      340  RCHECK(traf.sample_encryption.ParseFromSampleEncryptionData(
      -
      341  default_iv_size, &sample_encryption_entries));
      -
      342  }
      -
      343 
      -
      344  int64_t run_start_dts = traf.decode_time_absent
      -
      345  ? next_fragment_start_dts_[i]
      -
      346  : traf.decode_time.decode_time;
      -
      347  int sample_count_sum = 0;
      -
      348 
      -
      349  for (size_t j = 0; j < traf.runs.size(); j++) {
      -
      350  const TrackFragmentRun& trun = traf.runs[j];
      -
      351  TrackRunInfo tri;
      -
      352  tri.track_id = traf.header.track_id;
      -
      353  tri.timescale = trak->media.header.timescale;
      -
      354  tri.start_dts = run_start_dts;
      -
      355  tri.sample_start_offset = trun.data_offset;
      -
      356 
      -
      357  tri.track_type = stsd.type;
      -
      358  tri.audio_description = audio_sample_entry;
      -
      359  tri.video_description = video_sample_entry;
      +
      251  run_start_dts += sample.duration;
      +
      252 
      +
      253  // Advance to next sample. Should success except for last sample.
      +
      254  ++sample_index;
      +
      255  RCHECK(chunk_info.AdvanceSample() && sync_sample.AdvanceSample());
      +
      256  if (sample_index == num_samples) {
      +
      257  // We should hit end of tables for decoding time and composition
      +
      258  // offset.
      +
      259  RCHECK(!decoding_time.AdvanceSample());
      +
      260  if (has_composition_offset)
      +
      261  RCHECK(!composition_offset.AdvanceSample());
      +
      262  } else {
      +
      263  RCHECK(decoding_time.AdvanceSample());
      +
      264  if (has_composition_offset)
      +
      265  RCHECK(composition_offset.AdvanceSample());
      +
      266  }
      +
      267  }
      +
      268 
      +
      269  runs_.push_back(tri);
      +
      270  }
      +
      271  }
      +
      272 
      +
      273  std::sort(runs_.begin(), runs_.end(), CompareMinTrackRunDataOffset());
      +
      274  run_itr_ = runs_.begin();
      +
      275  ResetRun();
      +
      276  return true;
      +
      277 }
      +
      278 
      + +
      280  runs_.clear();
      +
      281 
      +
      282  next_fragment_start_dts_.resize(moof.tracks.size(), 0);
      +
      283  for (size_t i = 0; i < moof.tracks.size(); i++) {
      +
      284  const TrackFragment& traf = moof.tracks[i];
      +
      285 
      +
      286  const Track* trak = NULL;
      +
      287  for (size_t t = 0; t < moov_->tracks.size(); t++) {
      +
      288  if (moov_->tracks[t].header.track_id == traf.header.track_id)
      +
      289  trak = &moov_->tracks[t];
      +
      290  }
      +
      291  RCHECK(trak);
      +
      292 
      +
      293  const TrackExtends* trex = NULL;
      +
      294  for (size_t t = 0; t < moov_->extends.tracks.size(); t++) {
      +
      295  if (moov_->extends.tracks[t].track_id == traf.header.track_id)
      +
      296  trex = &moov_->extends.tracks[t];
      +
      297  }
      +
      298  RCHECK(trex);
      +
      299 
      +
      300  const SampleDescription& stsd =
      +
      301  trak->media.information.sample_table.description;
      +
      302  if (stsd.type != kAudio && stsd.type != kVideo) {
      +
      303  DVLOG(1) << "Skipping unhandled track type";
      +
      304  continue;
      +
      305  }
      +
      306  size_t desc_idx = traf.header.sample_description_index;
      +
      307  if (!desc_idx)
      +
      308  desc_idx = trex->default_sample_description_index;
      +
      309  RCHECK(desc_idx > 0); // Descriptions are one-indexed in the file
      +
      310  desc_idx -= 1;
      +
      311 
      +
      312  const AudioSampleEntry* audio_sample_entry = NULL;
      +
      313  const VideoSampleEntry* video_sample_entry = NULL;
      +
      314  switch (stsd.type) {
      +
      315  case kAudio:
      +
      316  RCHECK(!stsd.audio_entries.empty());
      +
      317  if (desc_idx > stsd.audio_entries.size())
      +
      318  desc_idx = 0;
      +
      319  audio_sample_entry = &stsd.audio_entries[desc_idx];
      +
      320  break;
      +
      321  case kVideo:
      +
      322  RCHECK(!stsd.video_entries.empty());
      +
      323  if (desc_idx > stsd.video_entries.size())
      +
      324  desc_idx = 0;
      +
      325  video_sample_entry = &stsd.video_entries[desc_idx];
      +
      326  break;
      +
      327  default:
      +
      328  NOTREACHED();
      +
      329  break;
      +
      330  }
      +
      331 
      +
      332  // SampleEncryptionEntries should not have been parsed, without having
      +
      333  // iv_size. Parse the box now.
      +
      334  DCHECK(traf.sample_encryption.sample_encryption_entries.empty());
      +
      335  std::vector<SampleEncryptionEntry> sample_encryption_entries;
      +
      336  if (!traf.sample_encryption.sample_encryption_data.empty()) {
      +
      337  RCHECK(audio_sample_entry || video_sample_entry);
      +
      338  const uint8_t default_per_sample_iv_size =
      +
      339  audio_sample_entry
      +
      340  ? audio_sample_entry->sinf.info.track_encryption
      +
      341  .default_per_sample_iv_size
      +
      342  : video_sample_entry->sinf.info.track_encryption
      +
      343  .default_per_sample_iv_size;
      +
      344  RCHECK(traf.sample_encryption.ParseFromSampleEncryptionData(
      +
      345  default_per_sample_iv_size, &sample_encryption_entries));
      +
      346  }
      +
      347 
      +
      348  int64_t run_start_dts = traf.decode_time_absent
      +
      349  ? next_fragment_start_dts_[i]
      +
      350  : traf.decode_time.decode_time;
      +
      351  int sample_count_sum = 0;
      +
      352 
      +
      353  for (size_t j = 0; j < traf.runs.size(); j++) {
      +
      354  const TrackFragmentRun& trun = traf.runs[j];
      +
      355  TrackRunInfo tri;
      +
      356  tri.track_id = traf.header.track_id;
      +
      357  tri.timescale = trak->media.header.timescale;
      +
      358  tri.start_dts = run_start_dts;
      +
      359  tri.sample_start_offset = trun.data_offset;
      360 
      -
      361  tri.aux_info_start_offset = -1;
      -
      362  tri.aux_info_total_size = 0;
      -
      363  // Populate sample encryption entries from SampleEncryption 'senc' box if
      -
      364  // it is available; otherwise initialize aux_info variables, which will
      -
      365  // be used to populate sample encryption entries later in CacheAuxInfo.
      -
      366  if (!sample_encryption_entries.empty()) {
      -
      367  RCHECK(sample_encryption_entries.size() >=
      -
      368  sample_count_sum + trun.sample_count);
      -
      369  for (size_t k = 0; k < trun.sample_count; ++k) {
      -
      370  tri.sample_encryption_entries.push_back(
      -
      371  sample_encryption_entries[sample_count_sum + k]);
      -
      372  }
      -
      373  } else if (traf.auxiliary_offset.offsets.size() > j) {
      -
      374  // Collect information from the auxiliary_offset entry with the same
      -
      375  // index in the 'saiz' container as the current run's index in the
      -
      376  // 'trun' container, if it is present.
      -
      377  tri.aux_info_start_offset = traf.auxiliary_offset.offsets[j];
      -
      378  // There should be an auxiliary info entry corresponding to each sample
      -
      379  // in the auxiliary offset entry's corresponding track run.
      -
      380  RCHECK(traf.auxiliary_size.sample_count >=
      -
      381  sample_count_sum + trun.sample_count);
      -
      382  tri.aux_info_default_size =
      -
      383  traf.auxiliary_size.default_sample_info_size;
      -
      384  if (tri.aux_info_default_size == 0) {
      -
      385  const std::vector<uint8_t>& sizes =
      -
      386  traf.auxiliary_size.sample_info_sizes;
      -
      387  tri.aux_info_sizes.insert(
      -
      388  tri.aux_info_sizes.begin(),
      -
      389  sizes.begin() + sample_count_sum,
      -
      390  sizes.begin() + sample_count_sum + trun.sample_count);
      -
      391  }
      -
      392 
      -
      393  // If the default info size is positive, find the total size of the aux
      -
      394  // info block from it, otherwise sum over the individual sizes of each
      -
      395  // aux info entry in the aux_offset entry.
      -
      396  if (tri.aux_info_default_size) {
      -
      397  tri.aux_info_total_size =
      -
      398  tri.aux_info_default_size * trun.sample_count;
      -
      399  } else {
      -
      400  tri.aux_info_total_size = 0;
      -
      401  for (size_t k = 0; k < trun.sample_count; k++) {
      -
      402  tri.aux_info_total_size += tri.aux_info_sizes[k];
      -
      403  }
      -
      404  }
      -
      405  }
      -
      406 
      -
      407  tri.samples.resize(trun.sample_count);
      -
      408  for (size_t k = 0; k < trun.sample_count; k++) {
      -
      409  PopulateSampleInfo(*trex, traf.header, trun, k, &tri.samples[k]);
      -
      410  run_start_dts += tri.samples[k].duration;
      -
      411  }
      -
      412  runs_.push_back(tri);
      -
      413  sample_count_sum += trun.sample_count;
      -
      414  }
      -
      415  next_fragment_start_dts_[i] = run_start_dts;
      -
      416  }
      -
      417 
      -
      418  std::sort(runs_.begin(), runs_.end(), CompareMinTrackRunDataOffset());
      -
      419  run_itr_ = runs_.begin();
      -
      420  ResetRun();
      -
      421  return true;
      -
      422 }
      -
      423 
      - -
      425  ++run_itr_;
      -
      426  ResetRun();
      -
      427 }
      -
      428 
      -
      429 void TrackRunIterator::ResetRun() {
      -
      430  if (!IsRunValid())
      -
      431  return;
      -
      432  sample_dts_ = run_itr_->start_dts;
      -
      433  sample_offset_ = run_itr_->sample_start_offset;
      -
      434  sample_itr_ = run_itr_->samples.begin();
      -
      435 }
      -
      436 
      - -
      438  DCHECK(IsSampleValid());
      -
      439  sample_dts_ += sample_itr_->duration;
      -
      440  sample_offset_ += sample_itr_->size;
      -
      441  ++sample_itr_;
      -
      442 }
      -
      443 
      -
      444 // This implementation only indicates a need for caching if CENC auxiliary
      -
      445 // info is available in the stream.
      - -
      447  DCHECK(IsRunValid());
      -
      448  return is_encrypted() && aux_info_size() > 0 &&
      -
      449  run_itr_->sample_encryption_entries.size() == 0;
      -
      450 }
      -
      451 
      -
      452 // This implementation currently only caches CENC auxiliary info.
      -
      453 bool TrackRunIterator::CacheAuxInfo(const uint8_t* buf, int buf_size) {
      -
      454  RCHECK(AuxInfoNeedsToBeCached() && buf_size >= aux_info_size());
      +
      361  tri.track_type = stsd.type;
      +
      362  tri.audio_description = audio_sample_entry;
      +
      363  tri.video_description = video_sample_entry;
      +
      364 
      +
      365  tri.aux_info_start_offset = -1;
      +
      366  tri.aux_info_total_size = 0;
      +
      367  // Populate sample encryption entries from SampleEncryption 'senc' box if
      +
      368  // it is available; otherwise initialize aux_info variables, which will
      +
      369  // be used to populate sample encryption entries later in CacheAuxInfo.
      +
      370  if (!sample_encryption_entries.empty()) {
      +
      371  RCHECK(sample_encryption_entries.size() >=
      +
      372  sample_count_sum + trun.sample_count);
      +
      373  for (size_t k = 0; k < trun.sample_count; ++k) {
      +
      374  tri.sample_encryption_entries.push_back(
      +
      375  sample_encryption_entries[sample_count_sum + k]);
      +
      376  }
      +
      377  } else if (traf.auxiliary_offset.offsets.size() > j) {
      +
      378  // Collect information from the auxiliary_offset entry with the same
      +
      379  // index in the 'saiz' container as the current run's index in the
      +
      380  // 'trun' container, if it is present.
      +
      381  tri.aux_info_start_offset = traf.auxiliary_offset.offsets[j];
      +
      382  // There should be an auxiliary info entry corresponding to each sample
      +
      383  // in the auxiliary offset entry's corresponding track run.
      +
      384  RCHECK(traf.auxiliary_size.sample_count >=
      +
      385  sample_count_sum + trun.sample_count);
      +
      386  tri.aux_info_default_size =
      +
      387  traf.auxiliary_size.default_sample_info_size;
      +
      388  if (tri.aux_info_default_size == 0) {
      +
      389  const std::vector<uint8_t>& sizes =
      +
      390  traf.auxiliary_size.sample_info_sizes;
      +
      391  tri.aux_info_sizes.insert(
      +
      392  tri.aux_info_sizes.begin(),
      +
      393  sizes.begin() + sample_count_sum,
      +
      394  sizes.begin() + sample_count_sum + trun.sample_count);
      +
      395  }
      +
      396 
      +
      397  // If the default info size is positive, find the total size of the aux
      +
      398  // info block from it, otherwise sum over the individual sizes of each
      +
      399  // aux info entry in the aux_offset entry.
      +
      400  if (tri.aux_info_default_size) {
      +
      401  tri.aux_info_total_size =
      +
      402  tri.aux_info_default_size * trun.sample_count;
      +
      403  } else {
      +
      404  tri.aux_info_total_size = 0;
      +
      405  for (size_t k = 0; k < trun.sample_count; k++) {
      +
      406  tri.aux_info_total_size += tri.aux_info_sizes[k];
      +
      407  }
      +
      408  }
      +
      409  }
      +
      410 
      +
      411  tri.samples.resize(trun.sample_count);
      +
      412  for (size_t k = 0; k < trun.sample_count; k++) {
      +
      413  PopulateSampleInfo(*trex, traf.header, trun, k, &tri.samples[k]);
      +
      414  run_start_dts += tri.samples[k].duration;
      +
      415  }
      +
      416  runs_.push_back(tri);
      +
      417  sample_count_sum += trun.sample_count;
      +
      418  }
      +
      419  next_fragment_start_dts_[i] = run_start_dts;
      +
      420  }
      +
      421 
      +
      422  std::sort(runs_.begin(), runs_.end(), CompareMinTrackRunDataOffset());
      +
      423  run_itr_ = runs_.begin();
      +
      424  ResetRun();
      +
      425  return true;
      +
      426 }
      +
      427 
      + +
      429  ++run_itr_;
      +
      430  ResetRun();
      +
      431 }
      +
      432 
      +
      433 void TrackRunIterator::ResetRun() {
      +
      434  if (!IsRunValid())
      +
      435  return;
      +
      436  sample_dts_ = run_itr_->start_dts;
      +
      437  sample_offset_ = run_itr_->sample_start_offset;
      +
      438  sample_itr_ = run_itr_->samples.begin();
      +
      439 }
      +
      440 
      + +
      442  DCHECK(IsSampleValid());
      +
      443  sample_dts_ += sample_itr_->duration;
      +
      444  sample_offset_ += sample_itr_->size;
      +
      445  ++sample_itr_;
      +
      446 }
      +
      447 
      +
      448 // This implementation only indicates a need for caching if CENC auxiliary
      +
      449 // info is available in the stream.
      + +
      451  DCHECK(IsRunValid());
      +
      452  return is_encrypted() && aux_info_size() > 0 &&
      +
      453  run_itr_->sample_encryption_entries.size() == 0;
      +
      454 }
      455 
      -
      456  std::vector<SampleEncryptionEntry>& sample_encryption_entries =
      -
      457  runs_[run_itr_ - runs_.begin()].sample_encryption_entries;
      -
      458  sample_encryption_entries.resize(run_itr_->samples.size());
      -
      459  int64_t pos = 0;
      -
      460  for (size_t i = 0; i < run_itr_->samples.size(); i++) {
      -
      461  int info_size = run_itr_->aux_info_default_size;
      -
      462  if (!info_size)
      -
      463  info_size = run_itr_->aux_info_sizes[i];
      -
      464 
      -
      465  BufferReader reader(buf + pos, info_size);
      -
      466  const bool has_subsamples = info_size > track_encryption().default_iv_size;
      -
      467  RCHECK(sample_encryption_entries[i].ParseFromBuffer(
      -
      468  track_encryption().default_iv_size, has_subsamples, &reader));
      -
      469  pos += info_size;
      -
      470  }
      -
      471 
      -
      472  return true;
      -
      473 }
      -
      474 
      -
      475 bool TrackRunIterator::IsRunValid() const { return run_itr_ != runs_.end(); }
      -
      476 
      - -
      478  return IsRunValid() && (sample_itr_ != run_itr_->samples.end());
      +
      456 // This implementation currently only caches CENC auxiliary info.
      +
      457 bool TrackRunIterator::CacheAuxInfo(const uint8_t* buf, int buf_size) {
      +
      458  RCHECK(AuxInfoNeedsToBeCached() && buf_size >= aux_info_size());
      +
      459 
      +
      460  std::vector<SampleEncryptionEntry>& sample_encryption_entries =
      +
      461  runs_[run_itr_ - runs_.begin()].sample_encryption_entries;
      +
      462  sample_encryption_entries.resize(run_itr_->samples.size());
      +
      463  int64_t pos = 0;
      +
      464  for (size_t i = 0; i < run_itr_->samples.size(); i++) {
      +
      465  int info_size = run_itr_->aux_info_default_size;
      +
      466  if (!info_size)
      +
      467  info_size = run_itr_->aux_info_sizes[i];
      +
      468 
      +
      469  BufferReader reader(buf + pos, info_size);
      +
      470  const bool has_subsamples =
      +
      471  info_size > track_encryption().default_per_sample_iv_size;
      +
      472  RCHECK(sample_encryption_entries[i].ParseFromBuffer(
      +
      473  track_encryption().default_per_sample_iv_size, has_subsamples,
      +
      474  &reader));
      +
      475  pos += info_size;
      +
      476  }
      +
      477 
      +
      478  return true;
      479 }
      480 
      -
      481 // Because tracks are in sorted order and auxiliary information is cached when
      -
      482 // returning samples, it is guaranteed that no data will be required before the
      -
      483 // lesser of the minimum data offset of this track and the next in sequence.
      -
      484 // (The stronger condition - that no data is required before the minimum data
      -
      485 // offset of this track alone - is not guaranteed, because the BMFF spec does
      -
      486 // not have any inter-run ordering restrictions.)
      - -
      488  int64_t offset = kInvalidOffset;
      -
      489 
      -
      490  if (IsSampleValid()) {
      -
      491  offset = std::min(offset, sample_offset_);
      - -
      493  offset = std::min(offset, aux_info_offset());
      -
      494  }
      -
      495  if (run_itr_ != runs_.end()) {
      -
      496  std::vector<TrackRunInfo>::const_iterator next_run = run_itr_ + 1;
      -
      497  if (next_run != runs_.end()) {
      -
      498  offset = std::min(offset, next_run->sample_start_offset);
      -
      499  if (next_run->aux_info_total_size)
      -
      500  offset = std::min(offset, next_run->aux_info_start_offset);
      -
      501  }
      -
      502  }
      -
      503  if (offset == kInvalidOffset)
      -
      504  return runs_.empty() ? 0 : runs_[0].sample_start_offset;
      -
      505  return offset;
      -
      506 }
      -
      507 
      -
      508 uint32_t TrackRunIterator::track_id() const {
      -
      509  DCHECK(IsRunValid());
      -
      510  return run_itr_->track_id;
      -
      511 }
      -
      512 
      -
      513 bool TrackRunIterator::is_encrypted() const {
      -
      514  DCHECK(IsRunValid());
      -
      515  return track_encryption().is_encrypted;
      -
      516 }
      -
      517 
      -
      518 int64_t TrackRunIterator::aux_info_offset() const {
      -
      519  return run_itr_->aux_info_start_offset;
      -
      520 }
      -
      521 
      -
      522 int TrackRunIterator::aux_info_size() const {
      -
      523  return run_itr_->aux_info_total_size;
      -
      524 }
      -
      525 
      -
      526 bool TrackRunIterator::is_audio() const {
      -
      527  DCHECK(IsRunValid());
      -
      528  return run_itr_->track_type == kAudio;
      -
      529 }
      -
      530 
      -
      531 bool TrackRunIterator::is_video() const {
      -
      532  DCHECK(IsRunValid());
      -
      533  return run_itr_->track_type == kVideo;
      -
      534 }
      -
      535 
      - -
      537  DCHECK(is_audio());
      -
      538  DCHECK(run_itr_->audio_description);
      -
      539  return *run_itr_->audio_description;
      +
      481 bool TrackRunIterator::IsRunValid() const { return run_itr_ != runs_.end(); }
      +
      482 
      + +
      484  return IsRunValid() && (sample_itr_ != run_itr_->samples.end());
      +
      485 }
      +
      486 
      +
      487 // Because tracks are in sorted order and auxiliary information is cached when
      +
      488 // returning samples, it is guaranteed that no data will be required before the
      +
      489 // lesser of the minimum data offset of this track and the next in sequence.
      +
      490 // (The stronger condition - that no data is required before the minimum data
      +
      491 // offset of this track alone - is not guaranteed, because the BMFF spec does
      +
      492 // not have any inter-run ordering restrictions.)
      + +
      494  int64_t offset = kInvalidOffset;
      +
      495 
      +
      496  if (IsSampleValid()) {
      +
      497  offset = std::min(offset, sample_offset_);
      + +
      499  offset = std::min(offset, aux_info_offset());
      +
      500  }
      +
      501  if (run_itr_ != runs_.end()) {
      +
      502  std::vector<TrackRunInfo>::const_iterator next_run = run_itr_ + 1;
      +
      503  if (next_run != runs_.end()) {
      +
      504  offset = std::min(offset, next_run->sample_start_offset);
      +
      505  if (next_run->aux_info_total_size)
      +
      506  offset = std::min(offset, next_run->aux_info_start_offset);
      +
      507  }
      +
      508  }
      +
      509  if (offset == kInvalidOffset)
      +
      510  return runs_.empty() ? 0 : runs_[0].sample_start_offset;
      +
      511  return offset;
      +
      512 }
      +
      513 
      +
      514 uint32_t TrackRunIterator::track_id() const {
      +
      515  DCHECK(IsRunValid());
      +
      516  return run_itr_->track_id;
      +
      517 }
      +
      518 
      +
      519 bool TrackRunIterator::is_encrypted() const {
      +
      520  DCHECK(IsRunValid());
      +
      521  return track_encryption().default_is_protected == 1;
      +
      522 }
      +
      523 
      +
      524 int64_t TrackRunIterator::aux_info_offset() const {
      +
      525  return run_itr_->aux_info_start_offset;
      +
      526 }
      +
      527 
      +
      528 int TrackRunIterator::aux_info_size() const {
      +
      529  return run_itr_->aux_info_total_size;
      +
      530 }
      +
      531 
      +
      532 bool TrackRunIterator::is_audio() const {
      +
      533  DCHECK(IsRunValid());
      +
      534  return run_itr_->track_type == kAudio;
      +
      535 }
      +
      536 
      +
      537 bool TrackRunIterator::is_video() const {
      +
      538  DCHECK(IsRunValid());
      +
      539  return run_itr_->track_type == kVideo;
      540 }
      541 
      - -
      543  DCHECK(is_video());
      -
      544  DCHECK(run_itr_->video_description);
      -
      545  return *run_itr_->video_description;
      + +
      543  DCHECK(is_audio());
      +
      544  DCHECK(run_itr_->audio_description);
      +
      545  return *run_itr_->audio_description;
      546 }
      547 
      -
      548 int64_t TrackRunIterator::sample_offset() const {
      -
      549  DCHECK(IsSampleValid());
      -
      550  return sample_offset_;
      -
      551 }
      -
      552 
      -
      553 int TrackRunIterator::sample_size() const {
      -
      554  DCHECK(IsSampleValid());
      -
      555  return sample_itr_->size;
      -
      556 }
      -
      557 
      -
      558 int64_t TrackRunIterator::dts() const {
      -
      559  DCHECK(IsSampleValid());
      -
      560  return sample_dts_;
      -
      561 }
      -
      562 
      -
      563 int64_t TrackRunIterator::cts() const {
      -
      564  DCHECK(IsSampleValid());
      -
      565  return sample_dts_ + sample_itr_->cts_offset;
      -
      566 }
      -
      567 
      -
      568 int64_t TrackRunIterator::duration() const {
      -
      569  DCHECK(IsSampleValid());
      -
      570  return sample_itr_->duration;
      -
      571 }
      -
      572 
      -
      573 bool TrackRunIterator::is_keyframe() const {
      -
      574  DCHECK(IsSampleValid());
      -
      575  return sample_itr_->is_keyframe;
      -
      576 }
      -
      577 
      -
      578 const TrackEncryption& TrackRunIterator::track_encryption() const {
      -
      579  if (is_audio())
      -
      580  return audio_description().sinf.info.track_encryption;
      -
      581  DCHECK(is_video());
      -
      582  return video_description().sinf.info.track_encryption;
      -
      583 }
      -
      584 
      -
      585 scoped_ptr<DecryptConfig> TrackRunIterator::GetDecryptConfig() {
      -
      586  size_t sample_idx = sample_itr_ - run_itr_->samples.begin();
      -
      587  DCHECK_LT(sample_idx, run_itr_->sample_encryption_entries.size());
      -
      588  const SampleEncryptionEntry& sample_encryption_entry =
      -
      589  run_itr_->sample_encryption_entries[sample_idx];
      -
      590  DCHECK(is_encrypted());
      -
      591  DCHECK(!AuxInfoNeedsToBeCached());
      -
      592 
      -
      593  const size_t total_size_of_subsamples =
      -
      594  sample_encryption_entry.GetTotalSizeOfSubsamples();
      -
      595  if (total_size_of_subsamples != 0 &&
      -
      596  total_size_of_subsamples != static_cast<size_t>(sample_size())) {
      -
      597  LOG(ERROR) << "Incorrect CENC subsample size.";
      -
      598  return scoped_ptr<DecryptConfig>();
      -
      599  }
      -
      600 
      -
      601  FourCC protection_scheme = is_audio() ? audio_description().sinf.type.type
      -
      602  : video_description().sinf.type.type;
      -
      603  return scoped_ptr<DecryptConfig>(
      -
      604  new DecryptConfig(track_encryption().default_kid,
      -
      605  sample_encryption_entry.initialization_vector,
      -
      606  sample_encryption_entry.subsamples, protection_scheme));
      -
      607 }
      -
      608 
      -
      609 } // namespace mp4
      -
      610 } // namespace media
      -
      611 } // namespace edash_packager
      - -
      const VideoSampleEntry & video_description() const
      Only valid if is_video() is true.
      + +
      549  DCHECK(is_video());
      +
      550  DCHECK(run_itr_->video_description);
      +
      551  return *run_itr_->video_description;
      +
      552 }
      +
      553 
      +
      554 int64_t TrackRunIterator::sample_offset() const {
      +
      555  DCHECK(IsSampleValid());
      +
      556  return sample_offset_;
      +
      557 }
      +
      558 
      +
      559 int TrackRunIterator::sample_size() const {
      +
      560  DCHECK(IsSampleValid());
      +
      561  return sample_itr_->size;
      +
      562 }
      +
      563 
      +
      564 int64_t TrackRunIterator::dts() const {
      +
      565  DCHECK(IsSampleValid());
      +
      566  return sample_dts_;
      +
      567 }
      +
      568 
      +
      569 int64_t TrackRunIterator::cts() const {
      +
      570  DCHECK(IsSampleValid());
      +
      571  return sample_dts_ + sample_itr_->cts_offset;
      +
      572 }
      +
      573 
      +
      574 int64_t TrackRunIterator::duration() const {
      +
      575  DCHECK(IsSampleValid());
      +
      576  return sample_itr_->duration;
      +
      577 }
      +
      578 
      +
      579 bool TrackRunIterator::is_keyframe() const {
      +
      580  DCHECK(IsSampleValid());
      +
      581  return sample_itr_->is_keyframe;
      +
      582 }
      +
      583 
      +
      584 const TrackEncryption& TrackRunIterator::track_encryption() const {
      +
      585  if (is_audio())
      +
      586  return audio_description().sinf.info.track_encryption;
      +
      587  DCHECK(is_video());
      +
      588  return video_description().sinf.info.track_encryption;
      +
      589 }
      +
      590 
      +
      591 scoped_ptr<DecryptConfig> TrackRunIterator::GetDecryptConfig() {
      +
      592  size_t sample_idx = sample_itr_ - run_itr_->samples.begin();
      +
      593  DCHECK_LT(sample_idx, run_itr_->sample_encryption_entries.size());
      +
      594  const SampleEncryptionEntry& sample_encryption_entry =
      +
      595  run_itr_->sample_encryption_entries[sample_idx];
      +
      596  DCHECK(is_encrypted());
      +
      597  DCHECK(!AuxInfoNeedsToBeCached());
      +
      598 
      +
      599  const size_t total_size_of_subsamples =
      +
      600  sample_encryption_entry.GetTotalSizeOfSubsamples();
      +
      601  if (total_size_of_subsamples != 0 &&
      +
      602  total_size_of_subsamples != static_cast<size_t>(sample_size())) {
      +
      603  LOG(ERROR) << "Incorrect CENC subsample size.";
      +
      604  return scoped_ptr<DecryptConfig>();
      +
      605  }
      +
      606 
      +
      607  FourCC protection_scheme = is_audio() ? audio_description().sinf.type.type
      +
      608  : video_description().sinf.type.type;
      +
      609  return scoped_ptr<DecryptConfig>(
      +
      610  new DecryptConfig(track_encryption().default_kid,
      +
      611  sample_encryption_entry.initialization_vector,
      +
      612  sample_encryption_entry.subsamples, protection_scheme));
      +
      613 }
      +
      614 
      +
      615 } // namespace mp4
      +
      616 } // namespace media
      +
      617 } // namespace edash_packager
      + +
      const VideoSampleEntry & video_description() const
      Only valid if is_video() is true.
      - - -
      scoped_ptr< DecryptConfig > GetDecryptConfig()
      -
      bool ParseFromSampleEncryptionData(size_t iv_size, std::vector< SampleEncryptionEntry > *sample_encryption_entries) const
      + + +
      scoped_ptr< DecryptConfig > GetDecryptConfig()
      +
      bool ParseFromSampleEncryptionData(size_t iv_size, std::vector< SampleEncryptionEntry > *sample_encryption_entries) const
      -
      bool CacheAuxInfo(const uint8_t *buf, int size)
      +
      bool CacheAuxInfo(const uint8_t *buf, int size)
      -
      const AudioSampleEntry & audio_description() const
      Only valid if is_audio() is true.
      - +
      const AudioSampleEntry & audio_description() const
      Only valid if is_audio() is true.
      + - + - +
      uint32_t NumSamples(uint32_t start_chunk, uint32_t end_chunk) const
      - + - - + + - - + + - - + + - + - - + + diff --git a/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html b/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html index 7ce824f372..6b6faa44ab 100644 --- a/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html +++ b/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d45/mpd__notify__muxer__listener_8h_source.html b/docs/db/d45/mpd__notify__muxer__listener_8h_source.html index 184dbddbb0..318a568de9 100644 --- a/docs/db/d45/mpd__notify__muxer__listener_8h_source.html +++ b/docs/db/d45/mpd__notify__muxer__listener_8h_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html b/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html index d4f8864c5d..52facedbee 100644 --- a/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html +++ b/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html @@ -147,7 +147,7 @@ Additional Inherited Members diff --git a/docs/db/d51/mp2t__media__parser_8h_source.html b/docs/db/d51/mp2t__media__parser_8h_source.html index 07652ab698..d6bceab041 100644 --- a/docs/db/d51/mp2t__media__parser_8h_source.html +++ b/docs/db/d51/mp2t__media__parser_8h_source.html @@ -193,7 +193,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d51/two__pass__single__segment__segmenter_8h_source.html b/docs/db/d51/two__pass__single__segment__segmenter_8h_source.html index 9067b6c946..7e518cda27 100644 --- a/docs/db/d51/two__pass__single__segment__segmenter_8h_source.html +++ b/docs/db/d51/two__pass__single__segment__segmenter_8h_source.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d52/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo-members.html b/docs/db/d52/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo-members.html index 67b970e993..b5e9aeb2cc 100644 --- a/docs/db/d52/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo-members.html +++ b/docs/db/d52/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html b/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html index 713972fb7b..59587df637 100644 --- a/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html +++ b/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html @@ -471,7 +471,7 @@ class SimpleMpdNotifierTes diff --git a/docs/db/d5a/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html b/docs/db/d5a/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html index 7e28e6e127..de0de55faa 100644 --- a/docs/db/d5a/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html +++ b/docs/db/d5a/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html b/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html index d0c868f627..f4d9d014b4 100644 --- a/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html +++ b/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d60/mpd__options_8h_source.html b/docs/db/d60/mpd__options_8h_source.html index 53473ebb62..5d708c5afc 100644 --- a/docs/db/d60/mpd__options_8h_source.html +++ b/docs/db/d60/mpd__options_8h_source.html @@ -130,7 +130,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html b/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html index 2595e64b1d..431bd5ad68 100644 --- a/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html +++ b/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d64/webvtt__media__parser_8h_source.html b/docs/db/d64/webvtt__media__parser_8h_source.html index 0560885163..e2109de507 100644 --- a/docs/db/d64/webvtt__media__parser_8h_source.html +++ b/docs/db/d64/webvtt__media__parser_8h_source.html @@ -181,7 +181,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html b/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html index c17f4d4910..6d632adc22 100644 --- a/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html +++ b/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html @@ -336,7 +336,7 @@ Static Public Member Functions diff --git a/docs/db/d6b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html b/docs/db/d6b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html index ea69a2ca27..96073a5bfd 100644 --- a/docs/db/d6b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html +++ b/docs/db/d6b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html @@ -136,7 +136,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 765 of file box_definitions.h.

      +

      Definition at line 779 of file box_definitions.h.

      Member Function Documentation

      @@ -162,7 +162,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 2515 of file box_definitions.cc.

      +

      Definition at line 2574 of file box_definitions.cc.

      @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html b/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html index 2138301c6f..260cc8f617 100644 --- a/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html +++ b/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html @@ -497,7 +497,7 @@ template<typename T > diff --git a/docs/db/d71/http__key__fetcher_8h_source.html b/docs/db/d71/http__key__fetcher_8h_source.html index bc6a1ed638..fc9c8db335 100644 --- a/docs/db/d71/http__key__fetcher_8h_source.html +++ b/docs/db/d71/http__key__fetcher_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html b/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html index 4b3ab884c2..b062ce74a8 100644 --- a/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html +++ b/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d7b/structedash__packager_1_1media_1_1H264Pps.html b/docs/db/d7b/structedash__packager_1_1media_1_1H264Pps.html index e923fc3644..8e72632b78 100644 --- a/docs/db/d7b/structedash__packager_1_1media_1_1H264Pps.html +++ b/docs/db/d7b/structedash__packager_1_1media_1_1H264Pps.html @@ -167,7 +167,7 @@ int second_chroma_qp_index diff --git a/docs/db/d7e/muxer__options_8cc_source.html b/docs/db/d7e/muxer__options_8cc_source.html index ca18bd33d1..f3a15adc42 100644 --- a/docs/db/d7e/muxer__options_8cc_source.html +++ b/docs/db/d7e/muxer__options_8cc_source.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html b/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html index 180bd61be1..a6788d2a34 100644 --- a/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html +++ b/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html @@ -148,7 +148,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 429 of file box_definitions.h.

      +

      Definition at line 436 of file box_definitions.h.

      Member Function Documentation

      @@ -174,7 +174,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 759 of file box_definitions.cc.

      +

      Definition at line 791 of file box_definitions.cc.

      @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/db/d8f/mp4__muxer_8h_source.html b/docs/db/d8f/mp4__muxer_8h_source.html index 6ab0886319..7fe1584697 100644 --- a/docs/db/d8f/mp4__muxer_8h_source.html +++ b/docs/db/d8f/mp4__muxer_8h_source.html @@ -167,13 +167,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      Holds video stream information.
      - +
      This structure contains the list of configuration options for Muxer.
      Definition: muxer_options.h:18
      diff --git a/docs/db/d96/wvm__media__parser_8h_source.html b/docs/db/d96/wvm__media__parser_8h_source.html index 3c5b2e3d73..f9bec2bb08 100644 --- a/docs/db/d96/wvm__media__parser_8h_source.html +++ b/docs/db/d96/wvm__media__parser_8h_source.html @@ -363,7 +363,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html b/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html index 14ae44333a..2aa806c4db 100644 --- a/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html +++ b/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/da0/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo.html b/docs/db/da0/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo.html index 6b93d8f70b..f2feb3c9d6 100644 --- a/docs/db/da0/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo.html +++ b/docs/db/da0/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo.html @@ -222,7 +222,7 @@ Static Public Member Functions diff --git a/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html b/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html index b7e596bd8f..18d7ef4038 100644 --- a/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html +++ b/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html @@ -365,7 +365,7 @@ The number of bytes parsed on success. diff --git a/docs/db/da4/classBandwidthEstimator-members.html b/docs/db/da4/classBandwidthEstimator-members.html index d788e1d540..a22489ae9f 100644 --- a/docs/db/da4/classBandwidthEstimator-members.html +++ b/docs/db/da4/classBandwidthEstimator-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html b/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html index 9ab07ad91d..6526268bec 100644 --- a/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html +++ b/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html @@ -550,7 +550,7 @@ static std::string  diff --git a/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html b/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html index 290320f1ea..3e9711e90a 100644 --- a/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html +++ b/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html @@ -94,14 +94,17 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');

      This is the complete list of members for edash_packager::media::mp4::CencSampleEncryptionInfoEntry, including all inherited members.

      - - - - + + + + + + +
      CencSampleEncryptionInfoEntry() (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      is_encrypted (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      iv_size (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      key_id (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      ~CencSampleEncryptionInfoEntry() (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      constant_iv (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      crypt_byte_block (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      is_protected (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      key_id (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      per_sample_iv_size (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      skip_byte_block (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      ~CencSampleEncryptionInfoEntry() (defined in edash_packager::media::mp4::CencSampleEncryptionInfoEntry)edash_packager::media::mp4::CencSampleEncryptionInfoEntry
      diff --git a/docs/db/da6/memory__file_8h_source.html b/docs/db/da6/memory__file_8h_source.html index af83155542..9c8553a359 100644 --- a/docs/db/da6/memory__file_8h_source.html +++ b/docs/db/da6/memory__file_8h_source.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html b/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html index 7b8859edca..93ae438764 100644 --- a/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html +++ b/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html @@ -299,7 +299,7 @@ template<typename T > diff --git a/docs/db/db8/structedash__packager_1_1media_1_1mp4_1_1ID3v2-members.html b/docs/db/db8/structedash__packager_1_1media_1_1mp4_1_1ID3v2-members.html index 5af5a19e8b..a68d18c6ee 100644 --- a/docs/db/db8/structedash__packager_1_1media_1_1mp4_1_1ID3v2-members.html +++ b/docs/db/db8/structedash__packager_1_1media_1_1mp4_1_1ID3v2-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dbf/classedash__packager_1_1media_1_1H265ByteToUnitStreamConverter-members.html b/docs/db/dbf/classedash__packager_1_1media_1_1H265ByteToUnitStreamConverter-members.html index 161daee81c..0c461942cb 100644 --- a/docs/db/dbf/classedash__packager_1_1media_1_1H265ByteToUnitStreamConverter-members.html +++ b/docs/db/dbf/classedash__packager_1_1media_1_1H265ByteToUnitStreamConverter-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html b/docs/db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html index 3cba1a58eb..648de2cf9c 100644 --- a/docs/db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html +++ b/docs/db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html @@ -152,7 +152,7 @@ int64_t  diff --git a/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html b/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html index c337e85def..ad2615d261 100644 --- a/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html +++ b/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dd1/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption-members.html b/docs/db/dd1/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption-members.html index 45409f7726..3b7af14e70 100644 --- a/docs/db/dd1/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption-members.html +++ b/docs/db/dd1/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dd2/chunk__info__iterator_8h_source.html b/docs/db/dd2/chunk__info__iterator_8h_source.html index 5f714be6ea..c2acb17507 100644 --- a/docs/db/dd2/chunk__info__iterator_8h_source.html +++ b/docs/db/dd2/chunk__info__iterator_8h_source.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      74 
      75 #endif // MEDIA_FORMATS_MP4_CHUNK_INFO_ITERATOR_H_
      - +
      uint32_t NumSamples(uint32_t start_chunk, uint32_t end_chunk) const
      @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dd9/sync__sample__iterator_8h_source.html b/docs/db/dd9/sync__sample__iterator_8h_source.html index a5c62f534c..bd38c635fc 100644 --- a/docs/db/dd9/sync__sample__iterator_8h_source.html +++ b/docs/db/dd9/sync__sample__iterator_8h_source.html @@ -133,14 +133,14 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      51 
      52 #endif // MEDIA_FORMATS_MP4_SYNC_SAMPLE_ITERATOR_H_
      SyncSampleIterator(const SyncSample &sync_sample)
      Create a new SyncSampleIterator from sync sample box.
      - + diff --git a/docs/db/dde/h265__parser_8cc_source.html b/docs/db/dde/h265__parser_8cc_source.html index 27a042e5df..9e7a7262d8 100644 --- a/docs/db/dde/h265__parser_8cc_source.html +++ b/docs/db/dde/h265__parser_8cc_source.html @@ -948,7 +948,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/de4/classedash__packager_1_1AdaptationSet.html b/docs/db/de4/classedash__packager_1_1AdaptationSet.html index 06b5ff15ae..438da70843 100644 --- a/docs/db/de4/classedash__packager_1_1AdaptationSet.html +++ b/docs/db/de4/classedash__packager_1_1AdaptationSet.html @@ -582,7 +582,7 @@ template<MpdBuilder::MpdType type> diff --git a/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html b/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html index 1151149b05..f7e0aeb861 100644 --- a/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html +++ b/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dec/audio__timestamp__helper_8cc_source.html b/docs/db/dec/audio__timestamp__helper_8cc_source.html index 910380ed21..5b637c9dac 100644 --- a/docs/db/dec/audio__timestamp__helper_8cc_source.html +++ b/docs/db/dec/audio__timestamp__helper_8cc_source.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dee/pes__packet_8cc_source.html b/docs/db/dee/pes__packet_8cc_source.html index fe12a971c5..ef0007ccab 100644 --- a/docs/db/dee/pes__packet_8cc_source.html +++ b/docs/db/dee/pes__packet_8cc_source.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html b/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html index 3c2ef2a779..f595c6b223 100644 --- a/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html +++ b/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html @@ -144,7 +144,7 @@ uint32_t pid () diff --git a/docs/db/df6/muxer_8h_source.html b/docs/db/df6/muxer_8h_source.html index 6c1ab346f5..4c455ba7b3 100644 --- a/docs/db/df6/muxer_8h_source.html +++ b/docs/db/df6/muxer_8h_source.html @@ -212,7 +212,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html b/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html index d7ea69f191..212e94e99f 100644 --- a/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html +++ b/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html b/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html index 63f6588a04..b38a1c0a48 100644 --- a/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html +++ b/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html @@ -154,7 +154,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 480 of file box_definitions.h.

      +

      Definition at line 487 of file box_definitions.h.

      Member Function Documentation

      @@ -180,7 +180,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1618 of file box_definitions.cc.

      +

      Definition at line 1650 of file box_definitions.cc.

      @@ -191,7 +191,7 @@ Additional Inherited Members diff --git a/docs/db/dfb/mpd__utils_8cc_source.html b/docs/db/dfb/mpd__utils_8cc_source.html index a2d49f955d..fe5cdb620a 100644 --- a/docs/db/dfb/mpd__utils_8cc_source.html +++ b/docs/db/dfb/mpd__utils_8cc_source.html @@ -443,7 +443,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html b/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html index 38fb63a4b8..5498d0fd13 100644 --- a/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html +++ b/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html @@ -259,7 +259,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html b/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html index 3d5454a12d..44d3e36a59 100644 --- a/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html +++ b/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html @@ -311,7 +311,7 @@ Additional Inherited Members diff --git a/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html b/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html index a432191162..25c380436e 100644 --- a/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html +++ b/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html @@ -190,7 +190,7 @@ An empty scoped_refptr if there was unexpected values in the provided parameters diff --git a/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html b/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html index 38713e419c..b2f672bafa 100644 --- a/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html +++ b/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html @@ -111,14 +111,14 @@ int16_t media_rate_fractio

      Detailed Description

      -

      Definition at line 201 of file box_definitions.h.

      +

      Definition at line 208 of file box_definitions.h.


      The documentation for this struct was generated from the following file: diff --git a/docs/dc/d19/box_8h_source.html b/docs/dc/d19/box_8h_source.html index 0280fa83a6..25fa34cc18 100644 --- a/docs/dc/d19/box_8h_source.html +++ b/docs/dc/d19/box_8h_source.html @@ -184,7 +184,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html b/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html index c8877109b1..c02cb62a23 100644 --- a/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html +++ b/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html @@ -397,7 +397,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html b/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html index 1245c7b2ae..ba09286fd7 100644 --- a/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html +++ b/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html b/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html index 1614c5cfe3..18dd76b64c 100644 --- a/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html +++ b/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html b/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html index 917db200c7..a2132a48ec 100644 --- a/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html +++ b/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html b/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html index 17315afa94..5025c27807 100644 --- a/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html +++ b/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html b/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html index 83a6c7759b..7f8ad49d50 100644 --- a/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html +++ b/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html @@ -157,7 +157,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d3c/webm__cluster__parser_8h_source.html b/docs/dc/d3c/webm__cluster__parser_8h_source.html index 3c753bee2e..5a87b386ef 100644 --- a/docs/dc/d3c/webm__cluster__parser_8h_source.html +++ b/docs/dc/d3c/webm__cluster__parser_8h_source.html @@ -298,7 +298,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d3f/key__source_8h_source.html b/docs/dc/d3f/key__source_8h_source.html index 7c7e3f39f5..5ae479731e 100644 --- a/docs/dc/d3f/key__source_8h_source.html +++ b/docs/dc/d3f/key__source_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html b/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html index 8ac1e78a09..91d3ea14dc 100644 --- a/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html +++ b/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html b/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html index a48168c7b0..f302dc0bc4 100644 --- a/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html +++ b/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html b/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html index 5103077af5..1a043ce58d 100644 --- a/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html +++ b/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html b/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html index cee3055f1d..3daceabf58 100644 --- a/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html +++ b/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html @@ -298,7 +298,7 @@ Public Member Functions diff --git a/docs/dc/d4a/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html b/docs/dc/d4a/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html index bea4e04f0b..f66236bf1c 100644 --- a/docs/dc/d4a/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html +++ b/docs/dc/d4a/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d51/h265__byte__to__unit__stream__converter_8cc_source.html b/docs/dc/d51/h265__byte__to__unit__stream__converter_8cc_source.html index a962d1bfda..cb15079164 100644 --- a/docs/dc/d51/h265__byte__to__unit__stream__converter_8cc_source.html +++ b/docs/dc/d51/h265__byte__to__unit__stream__converter_8cc_source.html @@ -218,7 +218,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d52/decoding__time__iterator_8h_source.html b/docs/dc/d52/decoding__time__iterator_8h_source.html index 756247faf5..4a3320344c 100644 --- a/docs/dc/d52/decoding__time__iterator_8h_source.html +++ b/docs/dc/d52/decoding__time__iterator_8h_source.html @@ -142,12 +142,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); - +
      uint64_t Duration(uint32_t start_sample, uint32_t end_sample) const
      diff --git a/docs/dc/d53/webm_2segmenter_8cc_source.html b/docs/dc/d53/webm_2segmenter_8cc_source.html index 8282a2c433..d8b759ac46 100644 --- a/docs/dc/d53/webm_2segmenter_8cc_source.html +++ b/docs/dc/d53/webm_2segmenter_8cc_source.html @@ -536,7 +536,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html b/docs/dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html index 3d489cbe3e..58cbcfdb67 100644 --- a/docs/dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html +++ b/docs/dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html @@ -322,7 +322,7 @@ Additional Inherited Members diff --git a/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html b/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html index c26ff2ee75..1e5e495437 100644 --- a/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html +++ b/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d58/webm__media__parser_8h_source.html b/docs/dc/d58/webm__media__parser_8h_source.html index 21c6132417..673df98307 100644 --- a/docs/dc/d58/webm__media__parser_8h_source.html +++ b/docs/dc/d58/webm__media__parser_8h_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html b/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html index 61138d0dde..39a9093c36 100644 --- a/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html +++ b/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html @@ -180,7 +180,7 @@ Protected Member Functions diff --git a/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html b/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html index 5e085bcd66..269c23722b 100644 --- a/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html +++ b/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html @@ -259,7 +259,7 @@ void set_progress_target diff --git a/docs/dc/d7b/closure__thread_8cc_source.html b/docs/dc/d7b/closure__thread_8cc_source.html index 5ed9c81eea..e1b89dd022 100644 --- a/docs/dc/d7b/closure__thread_8cc_source.html +++ b/docs/dc/d7b/closure__thread_8cc_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d7b/h264__parser_8cc_source.html b/docs/dc/d7b/h264__parser_8cc_source.html index b4d7d59af5..03d3a00b43 100644 --- a/docs/dc/d7b/h264__parser_8cc_source.html +++ b/docs/dc/d7b/h264__parser_8cc_source.html @@ -1267,7 +1267,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d81/classedash__packager_1_1MpdWriter.html b/docs/dc/d81/classedash__packager_1_1MpdWriter.html index 201e3201e9..83ae392add 100644 --- a/docs/dc/d81/classedash__packager_1_1MpdWriter.html +++ b/docs/dc/d81/classedash__packager_1_1MpdWriter.html @@ -123,7 +123,7 @@ class MpdWriterTest diff --git a/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html b/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html index 5954b8bddd..a4f5c6167f 100644 --- a/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html +++ b/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html @@ -305,7 +305,7 @@ void set_encryption_key diff --git a/docs/dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html b/docs/dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html index bac57ab915..c9347ec40b 100644 --- a/docs/dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html +++ b/docs/dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html @@ -192,7 +192,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/dc/d96/structedash__packager_1_1media_1_1H265Sps.html b/docs/dc/d96/structedash__packager_1_1media_1_1H265Sps.html index 1b511b19b0..79af8c5174 100644 --- a/docs/dc/d96/structedash__packager_1_1media_1_1H265Sps.html +++ b/docs/dc/d96/structedash__packager_1_1media_1_1H265Sps.html @@ -250,7 +250,7 @@ bool strong_intra_smoothin diff --git a/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html b/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html index af270131d5..a1a40f71a1 100644 --- a/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html +++ b/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
      diff --git a/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html b/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html index 4bcdf99b1f..ca46c9d91a 100644 --- a/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html +++ b/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html @@ -145,7 +145,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 385 of file box_definitions.h.

      +

      Definition at line 392 of file box_definitions.h.

      Member Function Documentation

      @@ -171,7 +171,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 635 of file box_definitions.cc.

      +

      Definition at line 667 of file box_definitions.cc.

      @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/dc/dbf/box__buffer_8h_source.html b/docs/dc/dbf/box__buffer_8h_source.html index 4a658a1999..1b44aeb08c 100644 --- a/docs/dc/dbf/box__buffer_8h_source.html +++ b/docs/dc/dbf/box__buffer_8h_source.html @@ -294,7 +294,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html b/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html index 5b6af9c43d..e3c3f1c20d 100644 --- a/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html +++ b/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html @@ -329,7 +329,7 @@ static const size_t  diff --git a/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html b/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html index 0828554611..0b2e9e85b5 100644 --- a/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html +++ b/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html @@ -111,7 +111,7 @@ static void  diff --git a/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html b/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html index cd24eaa69e..a89175cefd 100644 --- a/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html +++ b/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dd9/rsa__key_8cc_source.html b/docs/dc/dd9/rsa__key_8cc_source.html index 15b9e44deb..cb7bc6a3f2 100644 --- a/docs/dc/dd9/rsa__key_8cc_source.html +++ b/docs/dc/dd9/rsa__key_8cc_source.html @@ -350,7 +350,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html b/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html index a6b79ab26a..c800e46387 100644 --- a/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html +++ b/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/ddf/udp__file__posix_8cc_source.html b/docs/dc/ddf/udp__file__posix_8cc_source.html index 92b4f04c15..65d435565a 100644 --- a/docs/dc/ddf/udp__file__posix_8cc_source.html +++ b/docs/dc/ddf/udp__file__posix_8cc_source.html @@ -322,7 +322,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html b/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html index f8c7b460b2..2749a8649a 100644 --- a/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html +++ b/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html @@ -430,7 +430,7 @@ void set_progress_target diff --git a/docs/dc/deb/h265__byte__to__unit__stream__converter_8h_source.html b/docs/dc/deb/h265__byte__to__unit__stream__converter_8h_source.html index b6177d3e6b..ea0129db4b 100644 --- a/docs/dc/deb/h265__byte__to__unit__stream__converter_8h_source.html +++ b/docs/dc/deb/h265__byte__to__unit__stream__converter_8h_source.html @@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dec/ts__section__pmt_8cc_source.html b/docs/dc/dec/ts__section__pmt_8cc_source.html index e83a817d61..2fbcea55da 100644 --- a/docs/dc/dec/ts__section__pmt_8cc_source.html +++ b/docs/dc/dec/ts__section__pmt_8cc_source.html @@ -207,7 +207,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html b/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html index fb33bdc716..8e62bd87a0 100644 --- a/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html +++ b/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html b/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html index a139227744..596db8eb22 100644 --- a/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html +++ b/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html @@ -119,7 +119,7 @@ bool DecryptSampleBuffer diff --git a/docs/dc/df8/closure__thread_8h_source.html b/docs/dc/df8/closure__thread_8h_source.html index 649238699f..2731664b46 100644 --- a/docs/dc/df8/closure__thread_8h_source.html +++ b/docs/dc/df8/closure__thread_8h_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html b/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html index 41d3b7ea79..d8a1f2c7bb 100644 --- a/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html +++ b/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html @@ -438,7 +438,7 @@ Additional Inherited Members diff --git a/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html b/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html index 51b38b9c51..8cddfbb83b 100644 --- a/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html +++ b/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d0c/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html b/docs/dd/d0c/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html index 5b0a82b9b0..70ac9bcf38 100644 --- a/docs/dd/d0c/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html +++ b/docs/dd/d0c/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html index b66bd731a6..e341388319 100644 --- a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html +++ b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html @@ -149,7 +149,7 @@ const scoped_refptr
      diff --git a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html index 85ab0a164c..bd7327f446 100644 --- a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html +++ b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html @@ -155,7 +155,7 @@ void Reset () override diff --git a/docs/dd/d11/mpd__builder_8cc_source.html b/docs/dd/d11/mpd__builder_8cc_source.html index 89351ed986..9b7a6bb0ad 100644 --- a/docs/dd/d11/mpd__builder_8cc_source.html +++ b/docs/dd/d11/mpd__builder_8cc_source.html @@ -1503,7 +1503,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d12/mpd__writer_8cc_source.html b/docs/dd/d12/mpd__writer_8cc_source.html index 2de00babf8..d2957b0773 100644 --- a/docs/dd/d12/mpd__writer_8cc_source.html +++ b/docs/dd/d12/mpd__writer_8cc_source.html @@ -224,7 +224,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d12/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox.html b/docs/dd/d12/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox.html index 881505dd67..1696532179 100644 --- a/docs/dd/d12/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox.html +++ b/docs/dd/d12/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox.html @@ -136,7 +136,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 741 of file box_definitions.h.

      +

      Definition at line 755 of file box_definitions.h.

      Member Function Documentation

      @@ -162,7 +162,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 2425 of file box_definitions.cc.

      +

      Definition at line 2484 of file box_definitions.cc.

      @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html b/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html index fe3cd67064..27fefdf352 100644 --- a/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html +++ b/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html @@ -163,7 +163,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 167 of file box_definitions.h.

      +

      Definition at line 174 of file box_definitions.h.

      Member Function Documentation

      @@ -189,7 +189,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 479 of file box_definitions.cc.

      +

      Definition at line 511 of file box_definitions.cc.

      @@ -200,7 +200,7 @@ Additional Inherited Members diff --git a/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html b/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html index 862aa391a2..5cbbeb9786 100644 --- a/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html +++ b/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html @@ -178,7 +178,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 179 of file box_definitions.h.

      +

      Definition at line 186 of file box_definitions.h.

      Member Function Documentation

      @@ -204,7 +204,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 522 of file box_definitions.cc.

      +

      Definition at line 554 of file box_definitions.cc.

      @@ -215,7 +215,7 @@ Additional Inherited Members diff --git a/docs/dd/d18/es__parser__adts_8h_source.html b/docs/dd/d18/es__parser__adts_8h_source.html index 39f4d459ea..f852d27008 100644 --- a/docs/dd/d18/es__parser__adts_8h_source.html +++ b/docs/dd/d18/es__parser__adts_8h_source.html @@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d19/video__stream__info_8cc_source.html b/docs/dd/d19/video__stream__info_8cc_source.html index e9dcbfd0d4..2b81edaf97 100644 --- a/docs/dd/d19/video__stream__info_8cc_source.html +++ b/docs/dd/d19/video__stream__info_8cc_source.html @@ -197,7 +197,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html b/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html index 746660fd6c..ad8f92e43c 100644 --- a/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html +++ b/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html b/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html index 54bc9f8d3e..20f3f00a58 100644 --- a/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html +++ b/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html @@ -179,7 +179,7 @@ void  diff --git a/docs/dd/d30/wvm__media__parser_8cc_source.html b/docs/dd/d30/wvm__media__parser_8cc_source.html index 8c922c6d21..8677a14cca 100644 --- a/docs/dd/d30/wvm__media__parser_8cc_source.html +++ b/docs/dd/d30/wvm__media__parser_8cc_source.html @@ -1261,7 +1261,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html b/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html index f2498ad7cd..5bd9640815 100644 --- a/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html +++ b/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d3b/mp4_2segmenter_8h_source.html b/docs/dd/d3b/mp4_2segmenter_8h_source.html index c27e64c323..c574df072c 100644 --- a/docs/dd/d3b/mp4_2segmenter_8h_source.html +++ b/docs/dd/d3b/mp4_2segmenter_8h_source.html @@ -221,7 +221,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d42/encryptor_8h_source.html b/docs/dd/d42/encryptor_8h_source.html index 04f41b6df2..9b3d12e05a 100644 --- a/docs/dd/d42/encryptor_8h_source.html +++ b/docs/dd/d42/encryptor_8h_source.html @@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html b/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html index 7de792c531..2938fd0362 100644 --- a/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html +++ b/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d46/webm__parser_8h_source.html b/docs/dd/d46/webm__parser_8h_source.html index 06f81e36c2..ecc1601c87 100644 --- a/docs/dd/d46/webm__parser_8h_source.html +++ b/docs/dd/d46/webm__parser_8h_source.html @@ -227,7 +227,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html b/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html index 35e47df57a..ecf1a2548a 100644 --- a/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html +++ b/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html @@ -175,7 +175,7 @@ The number of bytes parsed on success. diff --git a/docs/dd/d48/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer.html b/docs/dd/d48/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer.html index 4b57a41d6b..cc36fe84d8 100644 --- a/docs/dd/d48/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer.html +++ b/docs/dd/d48/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer.html @@ -178,7 +178,7 @@ FourCC protection_scheme diff --git a/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html b/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html index 0444b6be5d..0175893c95 100644 --- a/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html +++ b/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html b/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html index b658b824eb..bd2e1793b2 100644 --- a/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html +++ b/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html @@ -589,7 +589,7 @@ bool ReadWriteInt64 (i diff --git a/docs/dd/d54/widevine__encryption__flags_8h_source.html b/docs/dd/d54/widevine__encryption__flags_8h_source.html index 529a4559c2..e0624a2652 100644 --- a/docs/dd/d54/widevine__encryption__flags_8h_source.html +++ b/docs/dd/d54/widevine__encryption__flags_8h_source.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d5e/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox-members.html b/docs/dd/d5e/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox-members.html index e9f62746b3..985a52e140 100644 --- a/docs/dd/d5e/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox-members.html +++ b/docs/dd/d5e/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d60/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html b/docs/dd/d60/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html index ebb368ed74..b9b773fec0 100644 --- a/docs/dd/d60/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html +++ b/docs/dd/d60/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d65/vp8__parser_8h_source.html b/docs/dd/d65/vp8__parser_8h_source.html index 801026a037..7220a6fe12 100644 --- a/docs/dd/d65/vp8__parser_8h_source.html +++ b/docs/dd/d65/vp8__parser_8h_source.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html b/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html index 1af7d027d3..a722608e00 100644 --- a/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html +++ b/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html @@ -173,7 +173,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html b/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html index b0504cedc9..012d08e14a 100644 --- a/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html +++ b/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html @@ -216,7 +216,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/dd/d7d/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry.html b/docs/dd/d7d/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry.html index 2ca9e0d1bc..8cfd64160e 100644 --- a/docs/dd/d7d/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry.html +++ b/docs/dd/d7d/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry.html @@ -145,7 +145,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 353 of file box_definitions.h.

      +

      Definition at line 360 of file box_definitions.h.

      Member Function Documentation

      @@ -171,7 +171,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1554 of file box_definitions.cc.

      +

      Definition at line 1586 of file box_definitions.cc.

      @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/dd/d7f/classedash__packager_1_1media_1_1DecoderConfiguration-members.html b/docs/dd/d7f/classedash__packager_1_1media_1_1DecoderConfiguration-members.html index 140ca4c1db..1ae60eab9d 100644 --- a/docs/dd/d7f/classedash__packager_1_1media_1_1DecoderConfiguration-members.html +++ b/docs/dd/d7f/classedash__packager_1_1media_1_1DecoderConfiguration-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d80/media__sample_8h_source.html b/docs/dd/d80/media__sample_8h_source.html index ade1a7419c..ce39bc5791 100644 --- a/docs/dd/d80/media__sample_8h_source.html +++ b/docs/dd/d80/media__sample_8h_source.html @@ -260,7 +260,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html b/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html index 0698d31cf3..e6be127b80 100644 --- a/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html +++ b/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html @@ -419,7 +419,7 @@ bool  diff --git a/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html b/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html index 75bca2f05f..ae6e1cdae9 100644 --- a/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html +++ b/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html @@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d87/memory__file_8cc_source.html b/docs/dd/d87/memory__file_8cc_source.html index eea2bfdc2f..a187e8d82a 100644 --- a/docs/dd/d87/memory__file_8cc_source.html +++ b/docs/dd/d87/memory__file_8cc_source.html @@ -241,7 +241,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d88/pes__packet__generator_8h_source.html b/docs/dd/d88/pes__packet__generator_8h_source.html index 104a8b3331..700319914c 100644 --- a/docs/dd/d88/pes__packet__generator_8h_source.html +++ b/docs/dd/d88/pes__packet__generator_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d8c/file__test__util_8h_source.html b/docs/dd/d8c/file__test__util_8h_source.html index 39173a9ef0..0cab2cad24 100644 --- a/docs/dd/d8c/file__test__util_8h_source.html +++ b/docs/dd/d8c/file__test__util_8h_source.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html b/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html index 843aec779a..76f4613106 100644 --- a/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html +++ b/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html @@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html b/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html index 397ad322a7..9f2e01d775 100644 --- a/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html +++ b/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html @@ -502,7 +502,7 @@ bool  diff --git a/docs/dd/d98/structedash__packager_1_1media_1_1H264Sps-members.html b/docs/dd/d98/structedash__packager_1_1media_1_1H264Sps-members.html index c04895a969..c3521905a1 100644 --- a/docs/dd/d98/structedash__packager_1_1media_1_1H264Sps-members.html +++ b/docs/dd/d98/structedash__packager_1_1media_1_1H264Sps-members.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html b/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html index f1452a4c8f..68aefa8982 100644 --- a/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html +++ b/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
      diff --git a/docs/dd/d9a/audio__timestamp__helper_8h_source.html b/docs/dd/d9a/audio__timestamp__helper_8h_source.html index a00e0f8634..5216f20fd2 100644 --- a/docs/dd/d9a/audio__timestamp__helper_8h_source.html +++ b/docs/dd/d9a/audio__timestamp__helper_8h_source.html @@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html b/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html index e82e89f200..6dfb22fb29 100644 --- a/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html +++ b/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html @@ -143,7 +143,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 689 of file box_definitions.h.

      +

      Definition at line 703 of file box_definitions.h.

      Member Function Documentation

      @@ -169,7 +169,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 2308 of file box_definitions.cc.

      +

      Definition at line 2367 of file box_definitions.cc.

      @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html b/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html index 7939561a87..4730d10a87 100644 --- a/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html +++ b/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html @@ -166,7 +166,7 @@ std::vector< FourCC > <

      Reimplemented from edash_packager::media::mp4::FileType.

      -

      Definition at line 154 of file box_definitions.cc.

      +

      Definition at line 157 of file box_definitions.cc.

      @@ -177,7 +177,7 @@ std::vector< FourCC > < diff --git a/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html b/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html index 8e9b51d01c..1ff80eb380 100644 --- a/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html +++ b/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html b/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html index 974a0498e8..5d0740d44e 100644 --- a/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html +++ b/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html b/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html index 008339e889..858e274e8a 100644 --- a/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html +++ b/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html @@ -113,14 +113,14 @@ uint32_t group_description

      Detailed Description

      -

      Definition at line 641 of file box_definitions.h.

      +

      Definition at line 648 of file box_definitions.h.


      The documentation for this struct was generated from the following file: diff --git a/docs/dd/dab/webm__muxer_8h_source.html b/docs/dd/dab/webm__muxer_8h_source.html index 71869bf261..84fb9ce163 100644 --- a/docs/dd/dab/webm__muxer_8h_source.html +++ b/docs/dd/dab/webm__muxer_8h_source.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html b/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html index 522786d939..a8ad43cccd 100644 --- a/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html +++ b/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbc/buffer__reader_8cc_source.html b/docs/dd/dbc/buffer__reader_8cc_source.html index 078615aa87..6451850513 100644 --- a/docs/dd/dbc/buffer__reader_8cc_source.html +++ b/docs/dd/dbc/buffer__reader_8cc_source.html @@ -196,7 +196,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html b/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html index 5293a616bd..d89c4f55d2 100644 --- a/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html +++ b/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html b/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html index 1313bbebb9..6d94718961 100644 --- a/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html +++ b/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html @@ -148,7 +148,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 518 of file box_definitions.h.

      +

      Definition at line 525 of file box_definitions.h.

      Member Function Documentation

      @@ -174,7 +174,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1721 of file box_definitions.cc.

      +

      Definition at line 1753 of file box_definitions.cc.

      @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html b/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html index 7374f52b9b..3b6b066701 100644 --- a/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html +++ b/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbf/webm__webvtt__parser_8h_source.html b/docs/dd/dbf/webm__webvtt__parser_8h_source.html index 8b3cbe8c71..d454fcb435 100644 --- a/docs/dd/dbf/webm__webvtt__parser_8h_source.html +++ b/docs/dd/dbf/webm__webvtt__parser_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html b/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html index b76e17c1fb..87712ba71f 100644 --- a/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html +++ b/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html @@ -142,7 +142,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 159 of file box_definitions.h.

      +

      Definition at line 166 of file box_definitions.h.

      Member Function Documentation

      @@ -168,7 +168,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 446 of file box_definitions.cc.

      +

      Definition at line 478 of file box_definitions.cc.

      @@ -179,7 +179,7 @@ Additional Inherited Members diff --git a/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html b/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html index 92a9b228c1..72c825e568 100644 --- a/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html +++ b/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html @@ -112,7 +112,7 @@ virtual scoped_ptr< diff --git a/docs/dd/dd2/buffer__writer_8h_source.html b/docs/dd/dd2/buffer__writer_8h_source.html index 4645776254..68201f307a 100644 --- a/docs/dd/dd2/buffer__writer_8h_source.html +++ b/docs/dd/dd2/buffer__writer_8h_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dd3/buffer__writer_8cc_source.html b/docs/dd/dd3/buffer__writer_8cc_source.html index 7ae33a7869..8ac9355f85 100644 --- a/docs/dd/dd3/buffer__writer_8cc_source.html +++ b/docs/dd/dd3/buffer__writer_8cc_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/ddb/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser-members.html b/docs/dd/ddb/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser-members.html index 42e9a68711..80e2bff4f3 100644 --- a/docs/dd/ddb/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser-members.html +++ b/docs/dd/ddb/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/de7/xml__node_8h_source.html b/docs/dd/de7/xml__node_8h_source.html index d0803f46dd..f539d23f15 100644 --- a/docs/dd/de7/xml__node_8h_source.html +++ b/docs/dd/de7/xml__node_8h_source.html @@ -230,7 +230,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html b/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html index 3190bb5cd7..fbfac06658 100644 --- a/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html +++ b/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dee/box__definitions_8cc_source.html b/docs/dd/dee/box__definitions_8cc_source.html index 021ad45552..c45b7d2555 100644 --- a/docs/dd/dee/box__definitions_8cc_source.html +++ b/docs/dd/dee/box__definitions_8cc_source.html @@ -131,2627 +131,2686 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      42 // at once.
      43 const int kCueSourceIdNotSet = -1;
      44 
      -
      45 // According to ISO/IEC FDIS 23001-7: CENC spec, IV should be either
      -
      46 // 64-bit (8-byte) or 128-bit (16-byte).
      -
      47 bool IsIvSizeValid(size_t iv_size) {
      -
      48  return iv_size == 8 || iv_size == 16;
      -
      49 }
      -
      50 
      -
      51 // Default values to construct the following fields in ddts box. Values are set
      -
      52 // according to FFMPEG.
      -
      53 // bit(2) FrameDuration; // 3 = 4096
      -
      54 // bit(5) StreamConstruction; // 18
      -
      55 // bit(1) CoreLFEPresent; // 0 = none
      -
      56 // bit(6) CoreLayout; // 31 = ignore core layout
      -
      57 // bit(14) CoreSize; // 0
      -
      58 // bit(1) StereoDownmix // 0 = none
      -
      59 // bit(3) RepresentationType; // 4
      -
      60 // bit(16) ChannelLayout; // 0xf = 5.1 channel layout.
      -
      61 // bit(1) MultiAssetFlag // 0 = single asset
      -
      62 // bit(1) LBRDurationMod // 0 = ignore
      -
      63 // bit(1) ReservedBoxPresent // 0 = none
      -
      64 // bit(5) Reserved // 0
      -
      65 const uint8_t kDdtsExtraData[] = {0xe4, 0x7c, 0, 4, 0, 0x0f, 0};
      -
      66 
      -
      67 // ID3v2 header: http://id3.org/id3v2.4.0-structure
      -
      68 const uint32_t kID3v2HeaderSize = 10;
      -
      69 const char kID3v2Identifier[] = "ID3";
      -
      70 const uint16_t kID3v2Version = 0x0400; // id3v2.4.0
      -
      71 
      -
      72 // Utility functions to check if the 64bit integers can fit in 32bit integer.
      -
      73 bool IsFitIn32Bits(uint64_t a) {
      -
      74  return a <= std::numeric_limits<uint32_t>::max();
      -
      75 }
      -
      76 
      -
      77 bool IsFitIn32Bits(int64_t a) {
      -
      78  return a <= std::numeric_limits<int32_t>::max() &&
      -
      79  a >= std::numeric_limits<int32_t>::min();
      -
      80 }
      -
      81 
      -
      82 template <typename T1, typename T2>
      -
      83 bool IsFitIn32Bits(T1 a1, T2 a2) {
      -
      84  return IsFitIn32Bits(a1) && IsFitIn32Bits(a2);
      -
      85 }
      -
      86 
      -
      87 template <typename T1, typename T2, typename T3>
      -
      88 bool IsFitIn32Bits(T1 a1, T2 a2, T3 a3) {
      -
      89  return IsFitIn32Bits(a1) && IsFitIn32Bits(a2) && IsFitIn32Bits(a3);
      -
      90 }
      -
      91 
      -
      92 } // namespace
      -
      93 
      -
      94 namespace edash_packager {
      -
      95 namespace media {
      -
      96 namespace mp4 {
      -
      97 
      -
      98 namespace {
      -
      99 
      -
      100 TrackType FourCCToTrackType(FourCC fourcc) {
      -
      101  switch (fourcc) {
      -
      102  case FOURCC_vide:
      -
      103  return kVideo;
      -
      104  case FOURCC_soun:
      -
      105  return kAudio;
      -
      106  case FOURCC_text:
      -
      107  return kText;
      -
      108  default:
      -
      109  return kInvalid;
      -
      110  }
      -
      111 }
      -
      112 
      -
      113 FourCC TrackTypeToFourCC(TrackType track_type) {
      -
      114  switch (track_type) {
      -
      115  case kVideo:
      -
      116  return FOURCC_vide;
      -
      117  case kAudio:
      -
      118  return FOURCC_soun;
      -
      119  case kText:
      -
      120  return FOURCC_text;
      -
      121  default:
      -
      122  return FOURCC_NULL;
      -
      123  }
      -
      124 }
      -
      125 
      -
      126 } // namespace
      -
      127 
      -
      128 FileType::FileType() : major_brand(FOURCC_NULL), minor_version(0) {}
      -
      129 FileType::~FileType() {}
      -
      130 FourCC FileType::BoxType() const { return FOURCC_ftyp; }
      -
      131 
      -
      132 bool FileType::ReadWriteInternal(BoxBuffer* buffer) {
      -
      133  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      134  buffer->ReadWriteFourCC(&major_brand) &&
      -
      135  buffer->ReadWriteUInt32(&minor_version));
      -
      136  size_t num_brands;
      -
      137  if (buffer->Reading()) {
      -
      138  RCHECK(buffer->BytesLeft() % sizeof(FourCC) == 0);
      -
      139  num_brands = buffer->BytesLeft() / sizeof(FourCC);
      -
      140  compatible_brands.resize(num_brands);
      -
      141  } else {
      -
      142  num_brands = compatible_brands.size();
      -
      143  }
      -
      144  for (size_t i = 0; i < num_brands; ++i)
      -
      145  RCHECK(buffer->ReadWriteFourCC(&compatible_brands[i]));
      -
      146  return true;
      -
      147 }
      -
      148 
      -
      149 uint32_t FileType::ComputeSizeInternal() {
      -
      150  return HeaderSize() + kFourCCSize + sizeof(minor_version) +
      -
      151  kFourCCSize * compatible_brands.size();
      -
      152 }
      -
      153 
      -
      154 FourCC SegmentType::BoxType() const { return FOURCC_styp; }
      -
      155 
      -
      156 ProtectionSystemSpecificHeader::ProtectionSystemSpecificHeader() {}
      -
      157 ProtectionSystemSpecificHeader::~ProtectionSystemSpecificHeader() {}
      -
      158 FourCC ProtectionSystemSpecificHeader::BoxType() const { return FOURCC_pssh; }
      -
      159 
      -
      160 bool ProtectionSystemSpecificHeader::ReadWriteInternal(BoxBuffer* buffer) {
      -
      161  if (buffer->Reading()) {
      -
      162  BoxReader* reader = buffer->reader();
      -
      163  DCHECK(reader);
      -
      164  raw_box.assign(reader->data(), reader->data() + reader->size());
      -
      165  } else {
      -
      166  DCHECK(!raw_box.empty());
      -
      167  buffer->writer()->AppendVector(raw_box);
      -
      168  }
      -
      169 
      -
      170  return true;
      -
      171 }
      +
      45 const size_t kInvalidIvSize = 1;
      +
      46 // According to ISO/IEC FDIS 23001-7: CENC spec, IV should be either
      +
      47 // 64-bit (8-byte) or 128-bit (16-byte).
      +
      48 // |per_sample_iv_size| of 0 means constant_iv is used.
      +
      49 bool IsIvSizeValid(size_t per_sample_iv_size) {
      +
      50  return per_sample_iv_size == 0 || per_sample_iv_size == 8 ||
      +
      51  per_sample_iv_size == 16;
      +
      52 }
      +
      53 
      +
      54 // Default values to construct the following fields in ddts box. Values are set
      +
      55 // according to FFMPEG.
      +
      56 // bit(2) FrameDuration; // 3 = 4096
      +
      57 // bit(5) StreamConstruction; // 18
      +
      58 // bit(1) CoreLFEPresent; // 0 = none
      +
      59 // bit(6) CoreLayout; // 31 = ignore core layout
      +
      60 // bit(14) CoreSize; // 0
      +
      61 // bit(1) StereoDownmix // 0 = none
      +
      62 // bit(3) RepresentationType; // 4
      +
      63 // bit(16) ChannelLayout; // 0xf = 5.1 channel layout.
      +
      64 // bit(1) MultiAssetFlag // 0 = single asset
      +
      65 // bit(1) LBRDurationMod // 0 = ignore
      +
      66 // bit(1) ReservedBoxPresent // 0 = none
      +
      67 // bit(5) Reserved // 0
      +
      68 const uint8_t kDdtsExtraData[] = {0xe4, 0x7c, 0, 4, 0, 0x0f, 0};
      +
      69 
      +
      70 // ID3v2 header: http://id3.org/id3v2.4.0-structure
      +
      71 const uint32_t kID3v2HeaderSize = 10;
      +
      72 const char kID3v2Identifier[] = "ID3";
      +
      73 const uint16_t kID3v2Version = 0x0400; // id3v2.4.0
      +
      74 
      +
      75 // Utility functions to check if the 64bit integers can fit in 32bit integer.
      +
      76 bool IsFitIn32Bits(uint64_t a) {
      +
      77  return a <= std::numeric_limits<uint32_t>::max();
      +
      78 }
      +
      79 
      +
      80 bool IsFitIn32Bits(int64_t a) {
      +
      81  return a <= std::numeric_limits<int32_t>::max() &&
      +
      82  a >= std::numeric_limits<int32_t>::min();
      +
      83 }
      +
      84 
      +
      85 template <typename T1, typename T2>
      +
      86 bool IsFitIn32Bits(T1 a1, T2 a2) {
      +
      87  return IsFitIn32Bits(a1) && IsFitIn32Bits(a2);
      +
      88 }
      +
      89 
      +
      90 template <typename T1, typename T2, typename T3>
      +
      91 bool IsFitIn32Bits(T1 a1, T2 a2, T3 a3) {
      +
      92  return IsFitIn32Bits(a1) && IsFitIn32Bits(a2) && IsFitIn32Bits(a3);
      +
      93 }
      +
      94 
      +
      95 } // namespace
      +
      96 
      +
      97 namespace edash_packager {
      +
      98 namespace media {
      +
      99 namespace mp4 {
      +
      100 
      +
      101 namespace {
      +
      102 
      +
      103 TrackType FourCCToTrackType(FourCC fourcc) {
      +
      104  switch (fourcc) {
      +
      105  case FOURCC_vide:
      +
      106  return kVideo;
      +
      107  case FOURCC_soun:
      +
      108  return kAudio;
      +
      109  case FOURCC_text:
      +
      110  return kText;
      +
      111  default:
      +
      112  return kInvalid;
      +
      113  }
      +
      114 }
      +
      115 
      +
      116 FourCC TrackTypeToFourCC(TrackType track_type) {
      +
      117  switch (track_type) {
      +
      118  case kVideo:
      +
      119  return FOURCC_vide;
      +
      120  case kAudio:
      +
      121  return FOURCC_soun;
      +
      122  case kText:
      +
      123  return FOURCC_text;
      +
      124  default:
      +
      125  return FOURCC_NULL;
      +
      126  }
      +
      127 }
      +
      128 
      +
      129 } // namespace
      +
      130 
      +
      131 FileType::FileType() : major_brand(FOURCC_NULL), minor_version(0) {}
      +
      132 FileType::~FileType() {}
      +
      133 FourCC FileType::BoxType() const { return FOURCC_ftyp; }
      +
      134 
      +
      135 bool FileType::ReadWriteInternal(BoxBuffer* buffer) {
      +
      136  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      137  buffer->ReadWriteFourCC(&major_brand) &&
      +
      138  buffer->ReadWriteUInt32(&minor_version));
      +
      139  size_t num_brands;
      +
      140  if (buffer->Reading()) {
      +
      141  RCHECK(buffer->BytesLeft() % sizeof(FourCC) == 0);
      +
      142  num_brands = buffer->BytesLeft() / sizeof(FourCC);
      +
      143  compatible_brands.resize(num_brands);
      +
      144  } else {
      +
      145  num_brands = compatible_brands.size();
      +
      146  }
      +
      147  for (size_t i = 0; i < num_brands; ++i)
      +
      148  RCHECK(buffer->ReadWriteFourCC(&compatible_brands[i]));
      +
      149  return true;
      +
      150 }
      +
      151 
      +
      152 uint32_t FileType::ComputeSizeInternal() {
      +
      153  return HeaderSize() + kFourCCSize + sizeof(minor_version) +
      +
      154  kFourCCSize * compatible_brands.size();
      +
      155 }
      +
      156 
      +
      157 FourCC SegmentType::BoxType() const { return FOURCC_styp; }
      +
      158 
      +
      159 ProtectionSystemSpecificHeader::ProtectionSystemSpecificHeader() {}
      +
      160 ProtectionSystemSpecificHeader::~ProtectionSystemSpecificHeader() {}
      +
      161 FourCC ProtectionSystemSpecificHeader::BoxType() const { return FOURCC_pssh; }
      +
      162 
      +
      163 bool ProtectionSystemSpecificHeader::ReadWriteInternal(BoxBuffer* buffer) {
      +
      164  if (buffer->Reading()) {
      +
      165  BoxReader* reader = buffer->reader();
      +
      166  DCHECK(reader);
      +
      167  raw_box.assign(reader->data(), reader->data() + reader->size());
      +
      168  } else {
      +
      169  DCHECK(!raw_box.empty());
      +
      170  buffer->writer()->AppendVector(raw_box);
      +
      171  }
      172 
      -
      173 uint32_t ProtectionSystemSpecificHeader::ComputeSizeInternal() {
      -
      174  return raw_box.size();
      -
      175 }
      -
      176 
      -
      177 SampleAuxiliaryInformationOffset::SampleAuxiliaryInformationOffset() {}
      -
      178 SampleAuxiliaryInformationOffset::~SampleAuxiliaryInformationOffset() {}
      -
      179 FourCC SampleAuxiliaryInformationOffset::BoxType() const { return FOURCC_saio; }
      -
      180 
      -
      181 bool SampleAuxiliaryInformationOffset::ReadWriteInternal(BoxBuffer* buffer) {
      -
      182  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      183  if (flags & 1)
      -
      184  RCHECK(buffer->IgnoreBytes(8)); // aux_info_type and parameter.
      -
      185 
      -
      186  uint32_t count = offsets.size();
      -
      187  RCHECK(buffer->ReadWriteUInt32(&count));
      -
      188  offsets.resize(count);
      -
      189 
      -
      190  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      191  for (uint32_t i = 0; i < count; ++i)
      -
      192  RCHECK(buffer->ReadWriteUInt64NBytes(&offsets[i], num_bytes));
      -
      193  return true;
      -
      194 }
      -
      195 
      -
      196 uint32_t SampleAuxiliaryInformationOffset::ComputeSizeInternal() {
      -
      197  // This box is optional. Skip it if it is empty.
      -
      198  if (offsets.size() == 0)
      -
      199  return 0;
      -
      200  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      201  return HeaderSize() + sizeof(uint32_t) + num_bytes * offsets.size();
      -
      202 }
      -
      203 
      -
      204 SampleAuxiliaryInformationSize::SampleAuxiliaryInformationSize()
      -
      205  : default_sample_info_size(0), sample_count(0) {}
      -
      206 SampleAuxiliaryInformationSize::~SampleAuxiliaryInformationSize() {}
      -
      207 FourCC SampleAuxiliaryInformationSize::BoxType() const { return FOURCC_saiz; }
      -
      208 
      -
      209 bool SampleAuxiliaryInformationSize::ReadWriteInternal(BoxBuffer* buffer) {
      -
      210  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      211  if (flags & 1)
      -
      212  RCHECK(buffer->IgnoreBytes(8));
      -
      213 
      -
      214  RCHECK(buffer->ReadWriteUInt8(&default_sample_info_size) &&
      -
      215  buffer->ReadWriteUInt32(&sample_count));
      -
      216  if (default_sample_info_size == 0)
      -
      217  RCHECK(buffer->ReadWriteVector(&sample_info_sizes, sample_count));
      -
      218  return true;
      -
      219 }
      -
      220 
      -
      221 uint32_t SampleAuxiliaryInformationSize::ComputeSizeInternal() {
      -
      222  // This box is optional. Skip it if it is empty.
      -
      223  if (sample_count == 0)
      -
      224  return 0;
      -
      225  return HeaderSize() + sizeof(default_sample_info_size) +
      -
      226  sizeof(sample_count) +
      -
      227  (default_sample_info_size == 0 ? sample_info_sizes.size() : 0);
      -
      228 }
      -
      229 
      -
      230 SampleEncryptionEntry::SampleEncryptionEntry() {}
      -
      231 SampleEncryptionEntry::~SampleEncryptionEntry() {}
      +
      173  return true;
      +
      174 }
      +
      175 
      +
      176 uint32_t ProtectionSystemSpecificHeader::ComputeSizeInternal() {
      +
      177  return raw_box.size();
      +
      178 }
      +
      179 
      +
      180 SampleAuxiliaryInformationOffset::SampleAuxiliaryInformationOffset() {}
      +
      181 SampleAuxiliaryInformationOffset::~SampleAuxiliaryInformationOffset() {}
      +
      182 FourCC SampleAuxiliaryInformationOffset::BoxType() const { return FOURCC_saio; }
      +
      183 
      +
      184 bool SampleAuxiliaryInformationOffset::ReadWriteInternal(BoxBuffer* buffer) {
      +
      185  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      186  if (flags & 1)
      +
      187  RCHECK(buffer->IgnoreBytes(8)); // aux_info_type and parameter.
      +
      188 
      +
      189  uint32_t count = offsets.size();
      +
      190  RCHECK(buffer->ReadWriteUInt32(&count));
      +
      191  offsets.resize(count);
      +
      192 
      +
      193  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      194  for (uint32_t i = 0; i < count; ++i)
      +
      195  RCHECK(buffer->ReadWriteUInt64NBytes(&offsets[i], num_bytes));
      +
      196  return true;
      +
      197 }
      +
      198 
      +
      199 uint32_t SampleAuxiliaryInformationOffset::ComputeSizeInternal() {
      +
      200  // This box is optional. Skip it if it is empty.
      +
      201  if (offsets.size() == 0)
      +
      202  return 0;
      +
      203  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      204  return HeaderSize() + sizeof(uint32_t) + num_bytes * offsets.size();
      +
      205 }
      +
      206 
      +
      207 SampleAuxiliaryInformationSize::SampleAuxiliaryInformationSize()
      +
      208  : default_sample_info_size(0), sample_count(0) {}
      +
      209 SampleAuxiliaryInformationSize::~SampleAuxiliaryInformationSize() {}
      +
      210 FourCC SampleAuxiliaryInformationSize::BoxType() const { return FOURCC_saiz; }
      +
      211 
      +
      212 bool SampleAuxiliaryInformationSize::ReadWriteInternal(BoxBuffer* buffer) {
      +
      213  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      214  if (flags & 1)
      +
      215  RCHECK(buffer->IgnoreBytes(8));
      +
      216 
      +
      217  RCHECK(buffer->ReadWriteUInt8(&default_sample_info_size) &&
      +
      218  buffer->ReadWriteUInt32(&sample_count));
      +
      219  if (default_sample_info_size == 0)
      +
      220  RCHECK(buffer->ReadWriteVector(&sample_info_sizes, sample_count));
      +
      221  return true;
      +
      222 }
      +
      223 
      +
      224 uint32_t SampleAuxiliaryInformationSize::ComputeSizeInternal() {
      +
      225  // This box is optional. Skip it if it is empty.
      +
      226  if (sample_count == 0)
      +
      227  return 0;
      +
      228  return HeaderSize() + sizeof(default_sample_info_size) +
      +
      229  sizeof(sample_count) +
      +
      230  (default_sample_info_size == 0 ? sample_info_sizes.size() : 0);
      +
      231 }
      232 
      -
      233 bool SampleEncryptionEntry::ReadWrite(uint8_t iv_size,
      -
      234  bool has_subsamples,
      -
      235  BoxBuffer* buffer) {
      -
      236  DCHECK(IsIvSizeValid(iv_size));
      -
      237  DCHECK(buffer);
      -
      238 
      -
      239  RCHECK(buffer->ReadWriteVector(&initialization_vector, iv_size));
      -
      240 
      -
      241  if (!has_subsamples) {
      -
      242  subsamples.clear();
      -
      243  return true;
      -
      244  }
      -
      245 
      -
      246  uint16_t subsample_count = subsamples.size();
      -
      247  RCHECK(buffer->ReadWriteUInt16(&subsample_count));
      -
      248  RCHECK(subsample_count > 0);
      -
      249  subsamples.resize(subsample_count);
      -
      250  for (auto& subsample : subsamples) {
      -
      251  RCHECK(buffer->ReadWriteUInt16(&subsample.clear_bytes) &&
      -
      252  buffer->ReadWriteUInt32(&subsample.cipher_bytes));
      -
      253  }
      -
      254  return true;
      -
      255 }
      -
      256 
      - -
      258  bool has_subsamples,
      -
      259  BufferReader* reader) {
      -
      260  DCHECK(IsIvSizeValid(iv_size));
      -
      261  DCHECK(reader);
      -
      262 
      -
      263  initialization_vector.resize(iv_size);
      -
      264  RCHECK(reader->ReadToVector(&initialization_vector, iv_size));
      +
      233 SampleEncryptionEntry::SampleEncryptionEntry() {}
      +
      234 SampleEncryptionEntry::~SampleEncryptionEntry() {}
      +
      235 
      +
      236 bool SampleEncryptionEntry::ReadWrite(uint8_t iv_size,
      +
      237  bool has_subsamples,
      +
      238  BoxBuffer* buffer) {
      +
      239  DCHECK(IsIvSizeValid(iv_size));
      +
      240  DCHECK(buffer);
      +
      241 
      +
      242  RCHECK(buffer->ReadWriteVector(&initialization_vector, iv_size));
      +
      243 
      +
      244  if (!has_subsamples) {
      +
      245  subsamples.clear();
      +
      246  return true;
      +
      247  }
      +
      248 
      +
      249  uint16_t subsample_count = subsamples.size();
      +
      250  RCHECK(buffer->ReadWriteUInt16(&subsample_count));
      +
      251  RCHECK(subsample_count > 0);
      +
      252  subsamples.resize(subsample_count);
      +
      253  for (auto& subsample : subsamples) {
      +
      254  RCHECK(buffer->ReadWriteUInt16(&subsample.clear_bytes) &&
      +
      255  buffer->ReadWriteUInt32(&subsample.cipher_bytes));
      +
      256  }
      +
      257  return true;
      +
      258 }
      +
      259 
      + +
      261  bool has_subsamples,
      +
      262  BufferReader* reader) {
      +
      263  DCHECK(IsIvSizeValid(iv_size));
      +
      264  DCHECK(reader);
      265 
      -
      266  if (!has_subsamples) {
      -
      267  subsamples.clear();
      -
      268  return true;
      -
      269  }
      -
      270 
      -
      271  uint16_t subsample_count;
      -
      272  RCHECK(reader->Read2(&subsample_count));
      -
      273  RCHECK(subsample_count > 0);
      -
      274  subsamples.resize(subsample_count);
      -
      275  for (auto& subsample : subsamples) {
      -
      276  RCHECK(reader->Read2(&subsample.clear_bytes) &&
      -
      277  reader->Read4(&subsample.cipher_bytes));
      -
      278  }
      -
      279  return true;
      -
      280 }
      -
      281 
      - -
      283  const uint32_t subsample_entry_size = sizeof(uint16_t) + sizeof(uint32_t);
      -
      284  const uint16_t subsample_count = subsamples.size();
      -
      285  return initialization_vector.size() +
      -
      286  (subsample_count > 0 ? (sizeof(subsample_count) +
      -
      287  subsample_entry_size * subsample_count)
      -
      288  : 0);
      -
      289 }
      -
      290 
      - -
      292  uint32_t size = 0;
      -
      293  for (uint32_t i = 0; i < subsamples.size(); ++i)
      -
      294  size += subsamples[i].clear_bytes + subsamples[i].cipher_bytes;
      -
      295  return size;
      -
      296 }
      -
      297 
      -
      298 SampleEncryption::SampleEncryption() : iv_size(0) {}
      -
      299 SampleEncryption::~SampleEncryption() {}
      -
      300 FourCC SampleEncryption::BoxType() const { return FOURCC_senc; }
      -
      301 
      -
      302 bool SampleEncryption::ReadWriteInternal(BoxBuffer* buffer) {
      -
      303  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      266  initialization_vector.resize(iv_size);
      +
      267  RCHECK(reader->ReadToVector(&initialization_vector, iv_size));
      +
      268 
      +
      269  if (!has_subsamples) {
      +
      270  subsamples.clear();
      +
      271  return true;
      +
      272  }
      +
      273 
      +
      274  uint16_t subsample_count;
      +
      275  RCHECK(reader->Read2(&subsample_count));
      +
      276  RCHECK(subsample_count > 0);
      +
      277  subsamples.resize(subsample_count);
      +
      278  for (auto& subsample : subsamples) {
      +
      279  RCHECK(reader->Read2(&subsample.clear_bytes) &&
      +
      280  reader->Read4(&subsample.cipher_bytes));
      +
      281  }
      +
      282  return true;
      +
      283 }
      +
      284 
      + +
      286  const uint32_t subsample_entry_size = sizeof(uint16_t) + sizeof(uint32_t);
      +
      287  const uint16_t subsample_count = subsamples.size();
      +
      288  return initialization_vector.size() +
      +
      289  (subsample_count > 0 ? (sizeof(subsample_count) +
      +
      290  subsample_entry_size * subsample_count)
      +
      291  : 0);
      +
      292 }
      +
      293 
      + +
      295  uint32_t size = 0;
      +
      296  for (uint32_t i = 0; i < subsamples.size(); ++i)
      +
      297  size += subsamples[i].clear_bytes + subsamples[i].cipher_bytes;
      +
      298  return size;
      +
      299 }
      +
      300 
      +
      301 SampleEncryption::SampleEncryption() : iv_size(kInvalidIvSize) {}
      +
      302 SampleEncryption::~SampleEncryption() {}
      +
      303 FourCC SampleEncryption::BoxType() const { return FOURCC_senc; }
      304 
      -
      305  // If we don't know |iv_size|, store sample encryption data to parse later
      -
      306  // after we know iv_size.
      -
      307  if (buffer->Reading() && iv_size == 0) {
      -
      308  RCHECK(
      -
      309  buffer->ReadWriteVector(&sample_encryption_data, buffer->BytesLeft()));
      -
      310  return true;
      -
      311  }
      -
      312 
      -
      313  if (!IsIvSizeValid(iv_size)) {
      -
      314  LOG(ERROR) << "IV_size can only be 8 or 16, but seeing " << iv_size;
      -
      315  return false;
      -
      316  }
      -
      317 
      -
      318  uint32_t sample_count = sample_encryption_entries.size();
      -
      319  RCHECK(buffer->ReadWriteUInt32(&sample_count));
      -
      320 
      -
      321  sample_encryption_entries.resize(sample_count);
      -
      322  for (auto& sample_encryption_entry : sample_encryption_entries) {
      -
      323  RCHECK(sample_encryption_entry.ReadWrite(
      -
      324  iv_size, flags & kUseSubsampleEncryption, buffer));
      -
      325  }
      -
      326  return true;
      -
      327 }
      -
      328 
      -
      329 uint32_t SampleEncryption::ComputeSizeInternal() {
      -
      330  const uint32_t sample_count = sample_encryption_entries.size();
      -
      331  if (sample_count == 0) {
      -
      332  // Sample encryption box is optional. Skip it if it is empty.
      -
      333  return 0;
      -
      334  }
      -
      335 
      -
      336  DCHECK(IsIvSizeValid(iv_size));
      -
      337  uint32_t box_size = HeaderSize() + sizeof(sample_count);
      -
      338  if (flags & kUseSubsampleEncryption) {
      -
      339  for (const SampleEncryptionEntry& sample_encryption_entry :
      -
      340  sample_encryption_entries) {
      -
      341  box_size += sample_encryption_entry.ComputeSize();
      -
      342  }
      -
      343  } else {
      -
      344  box_size += sample_count * iv_size;
      -
      345  }
      -
      346  return box_size;
      -
      347 }
      -
      348 
      - -
      350  size_t iv_size,
      -
      351  std::vector<SampleEncryptionEntry>* sample_encryption_entries) const {
      -
      352  DCHECK(IsIvSizeValid(iv_size));
      +
      305 bool SampleEncryption::ReadWriteInternal(BoxBuffer* buffer) {
      +
      306  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      307 
      +
      308  // If we don't know |iv_size|, store sample encryption data to parse later
      +
      309  // after we know iv_size.
      +
      310  if (buffer->Reading() && iv_size == kInvalidIvSize) {
      +
      311  RCHECK(
      +
      312  buffer->ReadWriteVector(&sample_encryption_data, buffer->BytesLeft()));
      +
      313  return true;
      +
      314  }
      +
      315 
      +
      316  if (!IsIvSizeValid(iv_size)) {
      +
      317  LOG(ERROR)
      +
      318  << "IV_size can only be 8 or 16 or 0 for constant iv, but seeing "
      +
      319  << iv_size;
      +
      320  return false;
      +
      321  }
      +
      322 
      +
      323  uint32_t sample_count = sample_encryption_entries.size();
      +
      324  RCHECK(buffer->ReadWriteUInt32(&sample_count));
      +
      325 
      +
      326  sample_encryption_entries.resize(sample_count);
      +
      327  for (auto& sample_encryption_entry : sample_encryption_entries) {
      +
      328  RCHECK(sample_encryption_entry.ReadWrite(
      +
      329  iv_size, flags & kUseSubsampleEncryption, buffer));
      +
      330  }
      +
      331  return true;
      +
      332 }
      +
      333 
      +
      334 uint32_t SampleEncryption::ComputeSizeInternal() {
      +
      335  const uint32_t sample_count = sample_encryption_entries.size();
      +
      336  if (sample_count == 0) {
      +
      337  // Sample encryption box is optional. Skip it if it is empty.
      +
      338  return 0;
      +
      339  }
      +
      340 
      +
      341  DCHECK(IsIvSizeValid(iv_size));
      +
      342  uint32_t box_size = HeaderSize() + sizeof(sample_count);
      +
      343  if (flags & kUseSubsampleEncryption) {
      +
      344  for (const SampleEncryptionEntry& sample_encryption_entry :
      +
      345  sample_encryption_entries) {
      +
      346  box_size += sample_encryption_entry.ComputeSize();
      +
      347  }
      +
      348  } else {
      +
      349  box_size += sample_count * iv_size;
      +
      350  }
      +
      351  return box_size;
      +
      352 }
      353 
      -
      354  BufferReader reader(sample_encryption_data.data(),
      -
      355  sample_encryption_data.size());
      -
      356  uint32_t sample_count = 0;
      -
      357  RCHECK(reader.Read4(&sample_count));
      + +
      355  size_t iv_size,
      +
      356  std::vector<SampleEncryptionEntry>* sample_encryption_entries) const {
      +
      357  DCHECK(IsIvSizeValid(iv_size));
      358 
      -
      359  sample_encryption_entries->resize(sample_count);
      -
      360  for (auto& sample_encryption_entry : *sample_encryption_entries) {
      -
      361  RCHECK(sample_encryption_entry.ParseFromBuffer(
      -
      362  iv_size, flags & kUseSubsampleEncryption, &reader));
      -
      363  }
      -
      364  return true;
      -
      365 }
      -
      366 
      -
      367 OriginalFormat::OriginalFormat() : format(FOURCC_NULL) {}
      -
      368 OriginalFormat::~OriginalFormat() {}
      -
      369 FourCC OriginalFormat::BoxType() const { return FOURCC_frma; }
      -
      370 
      -
      371 bool OriginalFormat::ReadWriteInternal(BoxBuffer* buffer) {
      -
      372  return ReadWriteHeaderInternal(buffer) && buffer->ReadWriteFourCC(&format);
      -
      373 }
      -
      374 
      -
      375 uint32_t OriginalFormat::ComputeSizeInternal() {
      -
      376  return HeaderSize() + kFourCCSize;
      -
      377 }
      -
      378 
      -
      379 SchemeType::SchemeType() : type(FOURCC_NULL), version(0) {}
      -
      380 SchemeType::~SchemeType() {}
      -
      381 FourCC SchemeType::BoxType() const { return FOURCC_schm; }
      -
      382 
      -
      383 bool SchemeType::ReadWriteInternal(BoxBuffer* buffer) {
      -
      384  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      385  buffer->ReadWriteFourCC(&type) &&
      -
      386  buffer->ReadWriteUInt32(&version));
      -
      387  return true;
      -
      388 }
      -
      389 
      -
      390 uint32_t SchemeType::ComputeSizeInternal() {
      -
      391  return HeaderSize() + kFourCCSize + sizeof(version);
      -
      392 }
      -
      393 
      -
      394 TrackEncryption::TrackEncryption()
      -
      395  : is_encrypted(false), default_iv_size(0), default_kid(16, 0) {}
      -
      396 TrackEncryption::~TrackEncryption() {}
      -
      397 FourCC TrackEncryption::BoxType() const { return FOURCC_tenc; }
      +
      359  BufferReader reader(sample_encryption_data.data(),
      +
      360  sample_encryption_data.size());
      +
      361  uint32_t sample_count = 0;
      +
      362  RCHECK(reader.Read4(&sample_count));
      +
      363 
      +
      364  sample_encryption_entries->resize(sample_count);
      +
      365  for (auto& sample_encryption_entry : *sample_encryption_entries) {
      +
      366  RCHECK(sample_encryption_entry.ParseFromBuffer(
      +
      367  iv_size, flags & kUseSubsampleEncryption, &reader));
      +
      368  }
      +
      369  return true;
      +
      370 }
      +
      371 
      +
      372 OriginalFormat::OriginalFormat() : format(FOURCC_NULL) {}
      +
      373 OriginalFormat::~OriginalFormat() {}
      +
      374 FourCC OriginalFormat::BoxType() const { return FOURCC_frma; }
      +
      375 
      +
      376 bool OriginalFormat::ReadWriteInternal(BoxBuffer* buffer) {
      +
      377  return ReadWriteHeaderInternal(buffer) && buffer->ReadWriteFourCC(&format);
      +
      378 }
      +
      379 
      +
      380 uint32_t OriginalFormat::ComputeSizeInternal() {
      +
      381  return HeaderSize() + kFourCCSize;
      +
      382 }
      +
      383 
      +
      384 SchemeType::SchemeType() : type(FOURCC_NULL), version(0) {}
      +
      385 SchemeType::~SchemeType() {}
      +
      386 FourCC SchemeType::BoxType() const { return FOURCC_schm; }
      +
      387 
      +
      388 bool SchemeType::ReadWriteInternal(BoxBuffer* buffer) {
      +
      389  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      390  buffer->ReadWriteFourCC(&type) &&
      +
      391  buffer->ReadWriteUInt32(&version));
      +
      392  return true;
      +
      393 }
      +
      394 
      +
      395 uint32_t SchemeType::ComputeSizeInternal() {
      +
      396  return HeaderSize() + kFourCCSize + sizeof(version);
      +
      397 }
      398 
      -
      399 bool TrackEncryption::ReadWriteInternal(BoxBuffer* buffer) {
      -
      400  if (!buffer->Reading()) {
      -
      401  if (default_kid.size() != kCencKeyIdSize) {
      -
      402  LOG(WARNING) << "CENC defines key id length of " << kCencKeyIdSize
      -
      403  << " bytes; got " << default_kid.size()
      -
      404  << ". Resized accordingly.";
      -
      405  default_kid.resize(kCencKeyIdSize);
      -
      406  }
      -
      407  }
      -
      408 
      -
      409  uint8_t flag = is_encrypted ? 1 : 0;
      -
      410  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      411  buffer->IgnoreBytes(2) && // reserved.
      -
      412  buffer->ReadWriteUInt8(&flag) &&
      -
      413  buffer->ReadWriteUInt8(&default_iv_size) &&
      -
      414  buffer->ReadWriteVector(&default_kid, kCencKeyIdSize));
      -
      415  if (buffer->Reading()) {
      -
      416  is_encrypted = (flag != 0);
      -
      417  if (is_encrypted) {
      -
      418  RCHECK(default_iv_size == 8 || default_iv_size == 16);
      -
      419  } else {
      -
      420  RCHECK(default_iv_size == 0);
      -
      421  }
      -
      422  }
      -
      423  return true;
      -
      424 }
      +
      399 TrackEncryption::TrackEncryption()
      +
      400  : default_is_protected(0),
      +
      401  default_per_sample_iv_size(0),
      +
      402  default_kid(16, 0),
      +
      403  default_crypt_byte_block(0),
      +
      404  default_skip_byte_block(0) {}
      +
      405 TrackEncryption::~TrackEncryption() {}
      +
      406 FourCC TrackEncryption::BoxType() const { return FOURCC_tenc; }
      +
      407 
      +
      408 bool TrackEncryption::ReadWriteInternal(BoxBuffer* buffer) {
      +
      409  if (!buffer->Reading()) {
      +
      410  if (default_kid.size() != kCencKeyIdSize) {
      +
      411  LOG(WARNING) << "CENC defines key id length of " << kCencKeyIdSize
      +
      412  << " bytes; got " << default_kid.size()
      +
      413  << ". Resized accordingly.";
      +
      414  default_kid.resize(kCencKeyIdSize);
      +
      415  }
      +
      416  RCHECK(default_crypt_byte_block < 16 && default_skip_byte_block < 16);
      +
      417  if (default_crypt_byte_block != 0 && default_skip_byte_block != 0) {
      +
      418  // Version 1 box is needed for pattern-based encryption.
      +
      419  version = 1;
      +
      420  }
      +
      421  }
      +
      422 
      +
      423  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      424  buffer->IgnoreBytes(1)); // reserved.
      425 
      -
      426 uint32_t TrackEncryption::ComputeSizeInternal() {
      -
      427  return HeaderSize() + sizeof(uint32_t) + kCencKeyIdSize;
      -
      428 }
      -
      429 
      -
      430 SchemeInfo::SchemeInfo() {}
      -
      431 SchemeInfo::~SchemeInfo() {}
      -
      432 FourCC SchemeInfo::BoxType() const { return FOURCC_schi; }
      -
      433 
      -
      434 bool SchemeInfo::ReadWriteInternal(BoxBuffer* buffer) {
      -
      435  RCHECK(ReadWriteHeaderInternal(buffer) && buffer->PrepareChildren() &&
      -
      436  buffer->ReadWriteChild(&track_encryption));
      -
      437  return true;
      -
      438 }
      -
      439 
      -
      440 uint32_t SchemeInfo::ComputeSizeInternal() {
      -
      441  return HeaderSize() + track_encryption.ComputeSize();
      -
      442 }
      -
      443 
      -
      444 ProtectionSchemeInfo::ProtectionSchemeInfo() {}
      -
      445 ProtectionSchemeInfo::~ProtectionSchemeInfo() {}
      -
      446 FourCC ProtectionSchemeInfo::BoxType() const { return FOURCC_sinf; }
      -
      447 
      -
      448 bool ProtectionSchemeInfo::ReadWriteInternal(BoxBuffer* buffer) {
      -
      449  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      450  buffer->PrepareChildren() &&
      -
      451  buffer->ReadWriteChild(&format) &&
      -
      452  buffer->ReadWriteChild(&type));
      -
      453  if (type.type == FOURCC_cenc || type.type == FOURCC_cbc1)
      -
      454  RCHECK(buffer->ReadWriteChild(&info));
      -
      455  // Other protection schemes are silently ignored. Since the protection scheme
      -
      456  // type can't be determined until this box is opened, we return 'true' for
      -
      457  // non-CENC protection scheme types. It is the parent box's responsibility to
      -
      458  // ensure that this scheme type is a supported one.
      -
      459  return true;
      +
      426  uint8_t pattern = default_crypt_byte_block << 4 | default_skip_byte_block;
      +
      427  RCHECK(buffer->ReadWriteUInt8(&pattern));
      +
      428  default_crypt_byte_block = pattern >> 4;
      +
      429  default_skip_byte_block = pattern & 0x0F;
      +
      430 
      +
      431  RCHECK(buffer->ReadWriteUInt8(&default_is_protected) &&
      +
      432  buffer->ReadWriteUInt8(&default_per_sample_iv_size) &&
      +
      433  buffer->ReadWriteVector(&default_kid, kCencKeyIdSize));
      +
      434 
      +
      435  if (default_is_protected == 1) {
      +
      436  if (default_per_sample_iv_size == 0) { // For constant iv.
      +
      437  uint8_t default_constant_iv_size = default_constant_iv.size();
      +
      438  RCHECK(buffer->ReadWriteUInt8(&default_constant_iv_size));
      +
      439  RCHECK(default_constant_iv_size == 8 || default_constant_iv_size == 16);
      +
      440  RCHECK(buffer->ReadWriteVector(&default_constant_iv,
      +
      441  default_constant_iv_size));
      +
      442  } else {
      +
      443  RCHECK(default_per_sample_iv_size == 8 ||
      +
      444  default_per_sample_iv_size == 16);
      +
      445  RCHECK(default_constant_iv.empty());
      +
      446  }
      +
      447  } else {
      +
      448  // Expect |default_is_protected| to be 0, i.e. not protected. Other values
      +
      449  // of |default_is_protected| is not supported.
      +
      450  RCHECK(default_is_protected == 0);
      +
      451  RCHECK(default_per_sample_iv_size == 0);
      +
      452  }
      +
      453  return true;
      +
      454 }
      +
      455 
      +
      456 uint32_t TrackEncryption::ComputeSizeInternal() {
      +
      457  return HeaderSize() + sizeof(uint32_t) + kCencKeyIdSize +
      +
      458  (default_constant_iv.empty() ? 0 : (sizeof(uint8_t) +
      +
      459  default_constant_iv.size()));
      460 }
      461 
      -
      462 uint32_t ProtectionSchemeInfo::ComputeSizeInternal() {
      -
      463  // Skip sinf box if it is not initialized.
      -
      464  if (format.format == FOURCC_NULL)
      -
      465  return 0;
      -
      466  return HeaderSize() + format.ComputeSize() + type.ComputeSize() +
      -
      467  info.ComputeSize();
      -
      468 }
      -
      469 
      -
      470 MovieHeader::MovieHeader()
      -
      471  : creation_time(0),
      -
      472  modification_time(0),
      -
      473  timescale(0),
      -
      474  duration(0),
      -
      475  rate(1 << 16),
      -
      476  volume(1 << 8),
      -
      477  next_track_id(0) {}
      -
      478 MovieHeader::~MovieHeader() {}
      -
      479 FourCC MovieHeader::BoxType() const { return FOURCC_mvhd; }
      -
      480 
      -
      481 bool MovieHeader::ReadWriteInternal(BoxBuffer* buffer) {
      -
      482  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      483 
      -
      484  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      485  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
      -
      486  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
      -
      487  buffer->ReadWriteUInt32(&timescale) &&
      -
      488  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
      -
      489 
      -
      490  std::vector<uint8_t> matrix(kUnityMatrix,
      -
      491  kUnityMatrix + arraysize(kUnityMatrix));
      -
      492  RCHECK(buffer->ReadWriteInt32(&rate) &&
      -
      493  buffer->ReadWriteInt16(&volume) &&
      -
      494  buffer->IgnoreBytes(10) && // reserved
      -
      495  buffer->ReadWriteVector(&matrix, matrix.size()) &&
      -
      496  buffer->IgnoreBytes(24) && // predefined zero
      -
      497  buffer->ReadWriteUInt32(&next_track_id));
      -
      498  return true;
      -
      499 }
      -
      500 
      -
      501 uint32_t MovieHeader::ComputeSizeInternal() {
      -
      502  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
      -
      503  return HeaderSize() + sizeof(uint32_t) * (1 + version) * 3 +
      -
      504  sizeof(timescale) + sizeof(rate) + sizeof(volume) +
      -
      505  sizeof(next_track_id) + sizeof(kUnityMatrix) + 10 +
      -
      506  24; // 10 bytes reserved, 24 bytes predefined.
      -
      507 }
      -
      508 
      -
      509 TrackHeader::TrackHeader()
      -
      510  : creation_time(0),
      -
      511  modification_time(0),
      -
      512  track_id(0),
      -
      513  duration(0),
      -
      514  layer(0),
      -
      515  alternate_group(0),
      -
      516  volume(-1),
      -
      517  width(0),
      -
      518  height(0) {
      -
      519  flags = kTrackEnabled | kTrackInMovie;
      -
      520 }
      -
      521 TrackHeader::~TrackHeader() {}
      -
      522 FourCC TrackHeader::BoxType() const { return FOURCC_tkhd; }
      -
      523 
      -
      524 bool TrackHeader::ReadWriteInternal(BoxBuffer* buffer) {
      -
      525  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      526 
      -
      527  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      528  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
      -
      529  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
      -
      530  buffer->ReadWriteUInt32(&track_id) &&
      -
      531  buffer->IgnoreBytes(4) && // reserved
      -
      532  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
      -
      533 
      -
      534  if (!buffer->Reading()) {
      -
      535  // Set default value for volume, if track is audio, 0x100 else 0.
      -
      536  if (volume == -1)
      -
      537  volume = (width != 0 && height != 0) ? 0 : 0x100;
      -
      538  }
      -
      539  std::vector<uint8_t> matrix(kUnityMatrix,
      -
      540  kUnityMatrix + arraysize(kUnityMatrix));
      -
      541  RCHECK(buffer->IgnoreBytes(8) && // reserved
      -
      542  buffer->ReadWriteInt16(&layer) &&
      -
      543  buffer->ReadWriteInt16(&alternate_group) &&
      -
      544  buffer->ReadWriteInt16(&volume) &&
      -
      545  buffer->IgnoreBytes(2) && // reserved
      -
      546  buffer->ReadWriteVector(&matrix, matrix.size()) &&
      -
      547  buffer->ReadWriteUInt32(&width) &&
      -
      548  buffer->ReadWriteUInt32(&height));
      -
      549  return true;
      -
      550 }
      -
      551 
      -
      552 uint32_t TrackHeader::ComputeSizeInternal() {
      -
      553  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
      -
      554  return HeaderSize() + sizeof(track_id) +
      -
      555  sizeof(uint32_t) * (1 + version) * 3 + sizeof(layer) +
      -
      556  sizeof(alternate_group) + sizeof(volume) + sizeof(width) +
      -
      557  sizeof(height) + sizeof(kUnityMatrix) + 14; // 14 bytes reserved.
      -
      558 }
      -
      559 
      -
      560 SampleDescription::SampleDescription() : type(kInvalid) {}
      -
      561 SampleDescription::~SampleDescription() {}
      -
      562 FourCC SampleDescription::BoxType() const { return FOURCC_stsd; }
      -
      563 
      -
      564 bool SampleDescription::ReadWriteInternal(BoxBuffer* buffer) {
      -
      565  uint32_t count = 0;
      -
      566  switch (type) {
      -
      567  case kVideo:
      -
      568  count = video_entries.size();
      -
      569  break;
      -
      570  case kAudio:
      -
      571  count = audio_entries.size();
      -
      572  break;
      -
      573  case kText:
      -
      574  count = text_entries.size();
      -
      575  break;
      -
      576  default:
      -
      577  NOTIMPLEMENTED() << "SampleDecryption type " << type
      -
      578  << " is not handled. Skipping.";
      -
      579  }
      -
      580  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      581  buffer->ReadWriteUInt32(&count));
      -
      582 
      -
      583  if (buffer->Reading()) {
      -
      584  BoxReader* reader = buffer->reader();
      -
      585  DCHECK(reader);
      -
      586  video_entries.clear();
      -
      587  audio_entries.clear();
      -
      588  // Note: this value is preset before scanning begins. See comments in the
      -
      589  // Parse(Media*) function.
      -
      590  if (type == kVideo) {
      -
      591  RCHECK(reader->ReadAllChildren(&video_entries));
      -
      592  RCHECK(video_entries.size() == count);
      -
      593  } else if (type == kAudio) {
      -
      594  RCHECK(reader->ReadAllChildren(&audio_entries));
      -
      595  RCHECK(audio_entries.size() == count);
      -
      596  } else if (type == kText) {
      -
      597  RCHECK(reader->ReadAllChildren(&text_entries));
      -
      598  RCHECK(text_entries.size() == count);
      -
      599  }
      -
      600  } else {
      -
      601  DCHECK_LT(0u, count);
      -
      602  if (type == kVideo) {
      -
      603  for (uint32_t i = 0; i < count; ++i)
      -
      604  RCHECK(buffer->ReadWriteChild(&video_entries[i]));
      -
      605  } else if (type == kAudio) {
      -
      606  for (uint32_t i = 0; i < count; ++i)
      -
      607  RCHECK(buffer->ReadWriteChild(&audio_entries[i]));
      -
      608  } else if (type == kText) {
      -
      609  for (uint32_t i = 0; i < count; ++i)
      -
      610  RCHECK(buffer->ReadWriteChild(&text_entries[i]));
      -
      611  } else {
      -
      612  NOTIMPLEMENTED();
      -
      613  }
      -
      614  }
      -
      615  return true;
      -
      616 }
      -
      617 
      -
      618 uint32_t SampleDescription::ComputeSizeInternal() {
      -
      619  uint32_t box_size = HeaderSize() + sizeof(uint32_t);
      -
      620  if (type == kVideo) {
      -
      621  for (uint32_t i = 0; i < video_entries.size(); ++i)
      -
      622  box_size += video_entries[i].ComputeSize();
      -
      623  } else if (type == kAudio) {
      -
      624  for (uint32_t i = 0; i < audio_entries.size(); ++i)
      -
      625  box_size += audio_entries[i].ComputeSize();
      -
      626  } else if (type == kText) {
      -
      627  for (uint32_t i = 0; i < text_entries.size(); ++i)
      -
      628  box_size += text_entries[i].ComputeSize();
      -
      629  }
      -
      630  return box_size;
      -
      631 }
      -
      632 
      -
      633 DecodingTimeToSample::DecodingTimeToSample() {}
      -
      634 DecodingTimeToSample::~DecodingTimeToSample() {}
      -
      635 FourCC DecodingTimeToSample::BoxType() const { return FOURCC_stts; }
      -
      636 
      -
      637 bool DecodingTimeToSample::ReadWriteInternal(BoxBuffer* buffer) {
      -
      638  uint32_t count = decoding_time.size();
      -
      639  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      640  buffer->ReadWriteUInt32(&count));
      -
      641 
      -
      642  decoding_time.resize(count);
      -
      643  for (uint32_t i = 0; i < count; ++i) {
      -
      644  RCHECK(buffer->ReadWriteUInt32(&decoding_time[i].sample_count) &&
      -
      645  buffer->ReadWriteUInt32(&decoding_time[i].sample_delta));
      +
      462 SchemeInfo::SchemeInfo() {}
      +
      463 SchemeInfo::~SchemeInfo() {}
      +
      464 FourCC SchemeInfo::BoxType() const { return FOURCC_schi; }
      +
      465 
      +
      466 bool SchemeInfo::ReadWriteInternal(BoxBuffer* buffer) {
      +
      467  RCHECK(ReadWriteHeaderInternal(buffer) && buffer->PrepareChildren() &&
      +
      468  buffer->ReadWriteChild(&track_encryption));
      +
      469  return true;
      +
      470 }
      +
      471 
      +
      472 uint32_t SchemeInfo::ComputeSizeInternal() {
      +
      473  return HeaderSize() + track_encryption.ComputeSize();
      +
      474 }
      +
      475 
      +
      476 ProtectionSchemeInfo::ProtectionSchemeInfo() {}
      +
      477 ProtectionSchemeInfo::~ProtectionSchemeInfo() {}
      +
      478 FourCC ProtectionSchemeInfo::BoxType() const { return FOURCC_sinf; }
      +
      479 
      +
      480 bool ProtectionSchemeInfo::ReadWriteInternal(BoxBuffer* buffer) {
      +
      481  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      482  buffer->PrepareChildren() &&
      +
      483  buffer->ReadWriteChild(&format) &&
      +
      484  buffer->ReadWriteChild(&type));
      +
      485  if (type.type == FOURCC_cenc || type.type == FOURCC_cbc1)
      +
      486  RCHECK(buffer->ReadWriteChild(&info));
      +
      487  // Other protection schemes are silently ignored. Since the protection scheme
      +
      488  // type can't be determined until this box is opened, we return 'true' for
      +
      489  // non-CENC protection scheme types. It is the parent box's responsibility to
      +
      490  // ensure that this scheme type is a supported one.
      +
      491  return true;
      +
      492 }
      +
      493 
      +
      494 uint32_t ProtectionSchemeInfo::ComputeSizeInternal() {
      +
      495  // Skip sinf box if it is not initialized.
      +
      496  if (format.format == FOURCC_NULL)
      +
      497  return 0;
      +
      498  return HeaderSize() + format.ComputeSize() + type.ComputeSize() +
      +
      499  info.ComputeSize();
      +
      500 }
      +
      501 
      +
      502 MovieHeader::MovieHeader()
      +
      503  : creation_time(0),
      +
      504  modification_time(0),
      +
      505  timescale(0),
      +
      506  duration(0),
      +
      507  rate(1 << 16),
      +
      508  volume(1 << 8),
      +
      509  next_track_id(0) {}
      +
      510 MovieHeader::~MovieHeader() {}
      +
      511 FourCC MovieHeader::BoxType() const { return FOURCC_mvhd; }
      +
      512 
      +
      513 bool MovieHeader::ReadWriteInternal(BoxBuffer* buffer) {
      +
      514  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      515 
      +
      516  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      517  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
      +
      518  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
      +
      519  buffer->ReadWriteUInt32(&timescale) &&
      +
      520  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
      +
      521 
      +
      522  std::vector<uint8_t> matrix(kUnityMatrix,
      +
      523  kUnityMatrix + arraysize(kUnityMatrix));
      +
      524  RCHECK(buffer->ReadWriteInt32(&rate) &&
      +
      525  buffer->ReadWriteInt16(&volume) &&
      +
      526  buffer->IgnoreBytes(10) && // reserved
      +
      527  buffer->ReadWriteVector(&matrix, matrix.size()) &&
      +
      528  buffer->IgnoreBytes(24) && // predefined zero
      +
      529  buffer->ReadWriteUInt32(&next_track_id));
      +
      530  return true;
      +
      531 }
      +
      532 
      +
      533 uint32_t MovieHeader::ComputeSizeInternal() {
      +
      534  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
      +
      535  return HeaderSize() + sizeof(uint32_t) * (1 + version) * 3 +
      +
      536  sizeof(timescale) + sizeof(rate) + sizeof(volume) +
      +
      537  sizeof(next_track_id) + sizeof(kUnityMatrix) + 10 +
      +
      538  24; // 10 bytes reserved, 24 bytes predefined.
      +
      539 }
      +
      540 
      +
      541 TrackHeader::TrackHeader()
      +
      542  : creation_time(0),
      +
      543  modification_time(0),
      +
      544  track_id(0),
      +
      545  duration(0),
      +
      546  layer(0),
      +
      547  alternate_group(0),
      +
      548  volume(-1),
      +
      549  width(0),
      +
      550  height(0) {
      +
      551  flags = kTrackEnabled | kTrackInMovie;
      +
      552 }
      +
      553 TrackHeader::~TrackHeader() {}
      +
      554 FourCC TrackHeader::BoxType() const { return FOURCC_tkhd; }
      +
      555 
      +
      556 bool TrackHeader::ReadWriteInternal(BoxBuffer* buffer) {
      +
      557  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      558 
      +
      559  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      560  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
      +
      561  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
      +
      562  buffer->ReadWriteUInt32(&track_id) &&
      +
      563  buffer->IgnoreBytes(4) && // reserved
      +
      564  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
      +
      565 
      +
      566  if (!buffer->Reading()) {
      +
      567  // Set default value for volume, if track is audio, 0x100 else 0.
      +
      568  if (volume == -1)
      +
      569  volume = (width != 0 && height != 0) ? 0 : 0x100;
      +
      570  }
      +
      571  std::vector<uint8_t> matrix(kUnityMatrix,
      +
      572  kUnityMatrix + arraysize(kUnityMatrix));
      +
      573  RCHECK(buffer->IgnoreBytes(8) && // reserved
      +
      574  buffer->ReadWriteInt16(&layer) &&
      +
      575  buffer->ReadWriteInt16(&alternate_group) &&
      +
      576  buffer->ReadWriteInt16(&volume) &&
      +
      577  buffer->IgnoreBytes(2) && // reserved
      +
      578  buffer->ReadWriteVector(&matrix, matrix.size()) &&
      +
      579  buffer->ReadWriteUInt32(&width) &&
      +
      580  buffer->ReadWriteUInt32(&height));
      +
      581  return true;
      +
      582 }
      +
      583 
      +
      584 uint32_t TrackHeader::ComputeSizeInternal() {
      +
      585  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
      +
      586  return HeaderSize() + sizeof(track_id) +
      +
      587  sizeof(uint32_t) * (1 + version) * 3 + sizeof(layer) +
      +
      588  sizeof(alternate_group) + sizeof(volume) + sizeof(width) +
      +
      589  sizeof(height) + sizeof(kUnityMatrix) + 14; // 14 bytes reserved.
      +
      590 }
      +
      591 
      +
      592 SampleDescription::SampleDescription() : type(kInvalid) {}
      +
      593 SampleDescription::~SampleDescription() {}
      +
      594 FourCC SampleDescription::BoxType() const { return FOURCC_stsd; }
      +
      595 
      +
      596 bool SampleDescription::ReadWriteInternal(BoxBuffer* buffer) {
      +
      597  uint32_t count = 0;
      +
      598  switch (type) {
      +
      599  case kVideo:
      +
      600  count = video_entries.size();
      +
      601  break;
      +
      602  case kAudio:
      +
      603  count = audio_entries.size();
      +
      604  break;
      +
      605  case kText:
      +
      606  count = text_entries.size();
      +
      607  break;
      +
      608  default:
      +
      609  NOTIMPLEMENTED() << "SampleDecryption type " << type
      +
      610  << " is not handled. Skipping.";
      +
      611  }
      +
      612  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      613  buffer->ReadWriteUInt32(&count));
      +
      614 
      +
      615  if (buffer->Reading()) {
      +
      616  BoxReader* reader = buffer->reader();
      +
      617  DCHECK(reader);
      +
      618  video_entries.clear();
      +
      619  audio_entries.clear();
      +
      620  // Note: this value is preset before scanning begins. See comments in the
      +
      621  // Parse(Media*) function.
      +
      622  if (type == kVideo) {
      +
      623  RCHECK(reader->ReadAllChildren(&video_entries));
      +
      624  RCHECK(video_entries.size() == count);
      +
      625  } else if (type == kAudio) {
      +
      626  RCHECK(reader->ReadAllChildren(&audio_entries));
      +
      627  RCHECK(audio_entries.size() == count);
      +
      628  } else if (type == kText) {
      +
      629  RCHECK(reader->ReadAllChildren(&text_entries));
      +
      630  RCHECK(text_entries.size() == count);
      +
      631  }
      +
      632  } else {
      +
      633  DCHECK_LT(0u, count);
      +
      634  if (type == kVideo) {
      +
      635  for (uint32_t i = 0; i < count; ++i)
      +
      636  RCHECK(buffer->ReadWriteChild(&video_entries[i]));
      +
      637  } else if (type == kAudio) {
      +
      638  for (uint32_t i = 0; i < count; ++i)
      +
      639  RCHECK(buffer->ReadWriteChild(&audio_entries[i]));
      +
      640  } else if (type == kText) {
      +
      641  for (uint32_t i = 0; i < count; ++i)
      +
      642  RCHECK(buffer->ReadWriteChild(&text_entries[i]));
      +
      643  } else {
      +
      644  NOTIMPLEMENTED();
      +
      645  }
      646  }
      647  return true;
      648 }
      649 
      -
      650 uint32_t DecodingTimeToSample::ComputeSizeInternal() {
      -
      651  return HeaderSize() + sizeof(uint32_t) +
      -
      652  sizeof(DecodingTime) * decoding_time.size();
      -
      653 }
      -
      654 
      -
      655 CompositionTimeToSample::CompositionTimeToSample() {}
      -
      656 CompositionTimeToSample::~CompositionTimeToSample() {}
      -
      657 FourCC CompositionTimeToSample::BoxType() const { return FOURCC_ctts; }
      -
      658 
      -
      659 bool CompositionTimeToSample::ReadWriteInternal(BoxBuffer* buffer) {
      -
      660  uint32_t count = composition_offset.size();
      -
      661  if (!buffer->Reading()) {
      -
      662  // Determine whether version 0 or version 1 should be used.
      -
      663  // Use version 0 if possible, use version 1 if there is a negative
      -
      664  // sample_offset value.
      -
      665  version = 0;
      -
      666  for (uint32_t i = 0; i < count; ++i) {
      -
      667  if (composition_offset[i].sample_offset < 0) {
      -
      668  version = 1;
      -
      669  break;
      -
      670  }
      -
      671  }
      -
      672  }
      +
      650 uint32_t SampleDescription::ComputeSizeInternal() {
      +
      651  uint32_t box_size = HeaderSize() + sizeof(uint32_t);
      +
      652  if (type == kVideo) {
      +
      653  for (uint32_t i = 0; i < video_entries.size(); ++i)
      +
      654  box_size += video_entries[i].ComputeSize();
      +
      655  } else if (type == kAudio) {
      +
      656  for (uint32_t i = 0; i < audio_entries.size(); ++i)
      +
      657  box_size += audio_entries[i].ComputeSize();
      +
      658  } else if (type == kText) {
      +
      659  for (uint32_t i = 0; i < text_entries.size(); ++i)
      +
      660  box_size += text_entries[i].ComputeSize();
      +
      661  }
      +
      662  return box_size;
      +
      663 }
      +
      664 
      +
      665 DecodingTimeToSample::DecodingTimeToSample() {}
      +
      666 DecodingTimeToSample::~DecodingTimeToSample() {}
      +
      667 FourCC DecodingTimeToSample::BoxType() const { return FOURCC_stts; }
      +
      668 
      +
      669 bool DecodingTimeToSample::ReadWriteInternal(BoxBuffer* buffer) {
      +
      670  uint32_t count = decoding_time.size();
      +
      671  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      672  buffer->ReadWriteUInt32(&count));
      673 
      -
      674  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      675  buffer->ReadWriteUInt32(&count));
      -
      676 
      -
      677  composition_offset.resize(count);
      -
      678  for (uint32_t i = 0; i < count; ++i) {
      -
      679  RCHECK(buffer->ReadWriteUInt32(&composition_offset[i].sample_count));
      -
      680 
      -
      681  if (version == 0) {
      -
      682  uint32_t sample_offset = composition_offset[i].sample_offset;
      -
      683  RCHECK(buffer->ReadWriteUInt32(&sample_offset));
      -
      684  composition_offset[i].sample_offset = sample_offset;
      -
      685  } else {
      -
      686  int32_t sample_offset = composition_offset[i].sample_offset;
      -
      687  RCHECK(buffer->ReadWriteInt32(&sample_offset));
      -
      688  composition_offset[i].sample_offset = sample_offset;
      -
      689  }
      -
      690  }
      -
      691  return true;
      -
      692 }
      -
      693 
      -
      694 uint32_t CompositionTimeToSample::ComputeSizeInternal() {
      -
      695  // This box is optional. Skip it if it is empty.
      -
      696  if (composition_offset.empty())
      -
      697  return 0;
      -
      698  // Structure CompositionOffset contains |sample_offset| (uint32_t) and
      -
      699  // |sample_offset| (int64_t). The actual size of |sample_offset| is
      -
      700  // 4 bytes (uint32_t for version 0 and int32_t for version 1).
      -
      701  const uint32_t kCompositionOffsetSize = sizeof(uint32_t) * 2;
      -
      702  return HeaderSize() + sizeof(uint32_t) +
      -
      703  kCompositionOffsetSize * composition_offset.size();
      -
      704 }
      +
      674  decoding_time.resize(count);
      +
      675  for (uint32_t i = 0; i < count; ++i) {
      +
      676  RCHECK(buffer->ReadWriteUInt32(&decoding_time[i].sample_count) &&
      +
      677  buffer->ReadWriteUInt32(&decoding_time[i].sample_delta));
      +
      678  }
      +
      679  return true;
      +
      680 }
      +
      681 
      +
      682 uint32_t DecodingTimeToSample::ComputeSizeInternal() {
      +
      683  return HeaderSize() + sizeof(uint32_t) +
      +
      684  sizeof(DecodingTime) * decoding_time.size();
      +
      685 }
      +
      686 
      +
      687 CompositionTimeToSample::CompositionTimeToSample() {}
      +
      688 CompositionTimeToSample::~CompositionTimeToSample() {}
      +
      689 FourCC CompositionTimeToSample::BoxType() const { return FOURCC_ctts; }
      +
      690 
      +
      691 bool CompositionTimeToSample::ReadWriteInternal(BoxBuffer* buffer) {
      +
      692  uint32_t count = composition_offset.size();
      +
      693  if (!buffer->Reading()) {
      +
      694  // Determine whether version 0 or version 1 should be used.
      +
      695  // Use version 0 if possible, use version 1 if there is a negative
      +
      696  // sample_offset value.
      +
      697  version = 0;
      +
      698  for (uint32_t i = 0; i < count; ++i) {
      +
      699  if (composition_offset[i].sample_offset < 0) {
      +
      700  version = 1;
      +
      701  break;
      +
      702  }
      +
      703  }
      +
      704  }
      705 
      -
      706 SampleToChunk::SampleToChunk() {}
      -
      707 SampleToChunk::~SampleToChunk() {}
      -
      708 FourCC SampleToChunk::BoxType() const { return FOURCC_stsc; }
      -
      709 
      -
      710 bool SampleToChunk::ReadWriteInternal(BoxBuffer* buffer) {
      -
      711  uint32_t count = chunk_info.size();
      -
      712  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      713  buffer->ReadWriteUInt32(&count));
      -
      714 
      -
      715  chunk_info.resize(count);
      -
      716  for (uint32_t i = 0; i < count; ++i) {
      -
      717  RCHECK(buffer->ReadWriteUInt32(&chunk_info[i].first_chunk) &&
      -
      718  buffer->ReadWriteUInt32(&chunk_info[i].samples_per_chunk) &&
      -
      719  buffer->ReadWriteUInt32(&chunk_info[i].sample_description_index));
      -
      720  // first_chunk values are always increasing.
      -
      721  RCHECK(i == 0 ? chunk_info[i].first_chunk == 1
      -
      722  : chunk_info[i].first_chunk > chunk_info[i - 1].first_chunk);
      -
      723  }
      -
      724  return true;
      -
      725 }
      -
      726 
      -
      727 uint32_t SampleToChunk::ComputeSizeInternal() {
      -
      728  return HeaderSize() + sizeof(uint32_t) +
      -
      729  sizeof(ChunkInfo) * chunk_info.size();
      -
      730 }
      -
      731 
      -
      732 SampleSize::SampleSize() : sample_size(0), sample_count(0) {}
      -
      733 SampleSize::~SampleSize() {}
      -
      734 FourCC SampleSize::BoxType() const { return FOURCC_stsz; }
      -
      735 
      -
      736 bool SampleSize::ReadWriteInternal(BoxBuffer* buffer) {
      -
      737  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      738  buffer->ReadWriteUInt32(&sample_size) &&
      -
      739  buffer->ReadWriteUInt32(&sample_count));
      -
      740 
      -
      741  if (sample_size == 0) {
      -
      742  if (buffer->Reading())
      -
      743  sizes.resize(sample_count);
      -
      744  else
      -
      745  DCHECK(sample_count == sizes.size());
      -
      746  for (uint32_t i = 0; i < sample_count; ++i)
      -
      747  RCHECK(buffer->ReadWriteUInt32(&sizes[i]));
      -
      748  }
      -
      749  return true;
      -
      750 }
      -
      751 
      -
      752 uint32_t SampleSize::ComputeSizeInternal() {
      -
      753  return HeaderSize() + sizeof(sample_size) + sizeof(sample_count) +
      -
      754  (sample_size == 0 ? sizeof(uint32_t) * sizes.size() : 0);
      -
      755 }
      -
      756 
      -
      757 CompactSampleSize::CompactSampleSize() : field_size(0) {}
      -
      758 CompactSampleSize::~CompactSampleSize() {}
      -
      759 FourCC CompactSampleSize::BoxType() const { return FOURCC_stz2; }
      -
      760 
      -
      761 bool CompactSampleSize::ReadWriteInternal(BoxBuffer* buffer) {
      -
      762  uint32_t sample_count = sizes.size();
      -
      763  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      764  buffer->IgnoreBytes(3) &&
      -
      765  buffer->ReadWriteUInt8(&field_size) &&
      -
      766  buffer->ReadWriteUInt32(&sample_count));
      +
      706  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      707  buffer->ReadWriteUInt32(&count));
      +
      708 
      +
      709  composition_offset.resize(count);
      +
      710  for (uint32_t i = 0; i < count; ++i) {
      +
      711  RCHECK(buffer->ReadWriteUInt32(&composition_offset[i].sample_count));
      +
      712 
      +
      713  if (version == 0) {
      +
      714  uint32_t sample_offset = composition_offset[i].sample_offset;
      +
      715  RCHECK(buffer->ReadWriteUInt32(&sample_offset));
      +
      716  composition_offset[i].sample_offset = sample_offset;
      +
      717  } else {
      +
      718  int32_t sample_offset = composition_offset[i].sample_offset;
      +
      719  RCHECK(buffer->ReadWriteInt32(&sample_offset));
      +
      720  composition_offset[i].sample_offset = sample_offset;
      +
      721  }
      +
      722  }
      +
      723  return true;
      +
      724 }
      +
      725 
      +
      726 uint32_t CompositionTimeToSample::ComputeSizeInternal() {
      +
      727  // This box is optional. Skip it if it is empty.
      +
      728  if (composition_offset.empty())
      +
      729  return 0;
      +
      730  // Structure CompositionOffset contains |sample_offset| (uint32_t) and
      +
      731  // |sample_offset| (int64_t). The actual size of |sample_offset| is
      +
      732  // 4 bytes (uint32_t for version 0 and int32_t for version 1).
      +
      733  const uint32_t kCompositionOffsetSize = sizeof(uint32_t) * 2;
      +
      734  return HeaderSize() + sizeof(uint32_t) +
      +
      735  kCompositionOffsetSize * composition_offset.size();
      +
      736 }
      +
      737 
      +
      738 SampleToChunk::SampleToChunk() {}
      +
      739 SampleToChunk::~SampleToChunk() {}
      +
      740 FourCC SampleToChunk::BoxType() const { return FOURCC_stsc; }
      +
      741 
      +
      742 bool SampleToChunk::ReadWriteInternal(BoxBuffer* buffer) {
      +
      743  uint32_t count = chunk_info.size();
      +
      744  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      745  buffer->ReadWriteUInt32(&count));
      +
      746 
      +
      747  chunk_info.resize(count);
      +
      748  for (uint32_t i = 0; i < count; ++i) {
      +
      749  RCHECK(buffer->ReadWriteUInt32(&chunk_info[i].first_chunk) &&
      +
      750  buffer->ReadWriteUInt32(&chunk_info[i].samples_per_chunk) &&
      +
      751  buffer->ReadWriteUInt32(&chunk_info[i].sample_description_index));
      +
      752  // first_chunk values are always increasing.
      +
      753  RCHECK(i == 0 ? chunk_info[i].first_chunk == 1
      +
      754  : chunk_info[i].first_chunk > chunk_info[i - 1].first_chunk);
      +
      755  }
      +
      756  return true;
      +
      757 }
      +
      758 
      +
      759 uint32_t SampleToChunk::ComputeSizeInternal() {
      +
      760  return HeaderSize() + sizeof(uint32_t) +
      +
      761  sizeof(ChunkInfo) * chunk_info.size();
      +
      762 }
      +
      763 
      +
      764 SampleSize::SampleSize() : sample_size(0), sample_count(0) {}
      +
      765 SampleSize::~SampleSize() {}
      +
      766 FourCC SampleSize::BoxType() const { return FOURCC_stsz; }
      767 
      -
      768  // Reserve one more entry if field size is 4 bits.
      -
      769  sizes.resize(sample_count + (field_size == 4 ? 1 : 0), 0);
      -
      770  switch (field_size) {
      -
      771  case 4:
      -
      772  for (uint32_t i = 0; i < sample_count; i += 2) {
      -
      773  if (buffer->Reading()) {
      -
      774  uint8_t size = 0;
      -
      775  RCHECK(buffer->ReadWriteUInt8(&size));
      -
      776  sizes[i] = size >> 4;
      -
      777  sizes[i + 1] = size & 0x0F;
      -
      778  } else {
      -
      779  DCHECK_LT(sizes[i], 16u);
      -
      780  DCHECK_LT(sizes[i + 1], 16u);
      -
      781  uint8_t size = (sizes[i] << 4) | sizes[i + 1];
      -
      782  RCHECK(buffer->ReadWriteUInt8(&size));
      -
      783  }
      -
      784  }
      -
      785  break;
      -
      786  case 8:
      -
      787  for (uint32_t i = 0; i < sample_count; ++i) {
      -
      788  uint8_t size = sizes[i];
      -
      789  RCHECK(buffer->ReadWriteUInt8(&size));
      -
      790  sizes[i] = size;
      -
      791  }
      -
      792  break;
      -
      793  case 16:
      -
      794  for (uint32_t i = 0; i < sample_count; ++i) {
      -
      795  uint16_t size = sizes[i];
      -
      796  RCHECK(buffer->ReadWriteUInt16(&size));
      -
      797  sizes[i] = size;
      -
      798  }
      -
      799  break;
      -
      800  default:
      -
      801  RCHECK(false);
      -
      802  }
      -
      803  sizes.resize(sample_count);
      -
      804  return true;
      -
      805 }
      -
      806 
      -
      807 uint32_t CompactSampleSize::ComputeSizeInternal() {
      -
      808  return HeaderSize() + sizeof(uint32_t) + sizeof(uint32_t) +
      -
      809  (field_size * sizes.size() + 7) / 8;
      -
      810 }
      -
      811 
      -
      812 ChunkOffset::ChunkOffset() {}
      -
      813 ChunkOffset::~ChunkOffset() {}
      -
      814 FourCC ChunkOffset::BoxType() const { return FOURCC_stco; }
      -
      815 
      -
      816 bool ChunkOffset::ReadWriteInternal(BoxBuffer* buffer) {
      -
      817  uint32_t count = offsets.size();
      -
      818  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      819  buffer->ReadWriteUInt32(&count));
      -
      820 
      -
      821  offsets.resize(count);
      -
      822  for (uint32_t i = 0; i < count; ++i)
      -
      823  RCHECK(buffer->ReadWriteUInt64NBytes(&offsets[i], sizeof(uint32_t)));
      -
      824  return true;
      -
      825 }
      -
      826 
      -
      827 uint32_t ChunkOffset::ComputeSizeInternal() {
      -
      828  return HeaderSize() + sizeof(uint32_t) + sizeof(uint32_t) * offsets.size();
      -
      829 }
      -
      830 
      -
      831 ChunkLargeOffset::ChunkLargeOffset() {}
      -
      832 ChunkLargeOffset::~ChunkLargeOffset() {}
      -
      833 FourCC ChunkLargeOffset::BoxType() const { return FOURCC_co64; }
      -
      834 
      -
      835 bool ChunkLargeOffset::ReadWriteInternal(BoxBuffer* buffer) {
      -
      836  uint32_t count = offsets.size();
      -
      837 
      -
      838  if (!buffer->Reading()) {
      -
      839  // Switch to ChunkOffset box if it is able to fit in 32 bits offset.
      -
      840  if (count == 0 || IsFitIn32Bits(offsets[count - 1])) {
      -
      841  ChunkOffset stco;
      -
      842  stco.offsets.swap(offsets);
      -
      843  DCHECK(buffer->writer());
      -
      844  stco.Write(buffer->writer());
      -
      845  stco.offsets.swap(offsets);
      -
      846  return true;
      -
      847  }
      -
      848  }
      -
      849 
      +
      768 bool SampleSize::ReadWriteInternal(BoxBuffer* buffer) {
      +
      769  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      770  buffer->ReadWriteUInt32(&sample_size) &&
      +
      771  buffer->ReadWriteUInt32(&sample_count));
      +
      772 
      +
      773  if (sample_size == 0) {
      +
      774  if (buffer->Reading())
      +
      775  sizes.resize(sample_count);
      +
      776  else
      +
      777  DCHECK(sample_count == sizes.size());
      +
      778  for (uint32_t i = 0; i < sample_count; ++i)
      +
      779  RCHECK(buffer->ReadWriteUInt32(&sizes[i]));
      +
      780  }
      +
      781  return true;
      +
      782 }
      +
      783 
      +
      784 uint32_t SampleSize::ComputeSizeInternal() {
      +
      785  return HeaderSize() + sizeof(sample_size) + sizeof(sample_count) +
      +
      786  (sample_size == 0 ? sizeof(uint32_t) * sizes.size() : 0);
      +
      787 }
      +
      788 
      +
      789 CompactSampleSize::CompactSampleSize() : field_size(0) {}
      +
      790 CompactSampleSize::~CompactSampleSize() {}
      +
      791 FourCC CompactSampleSize::BoxType() const { return FOURCC_stz2; }
      +
      792 
      +
      793 bool CompactSampleSize::ReadWriteInternal(BoxBuffer* buffer) {
      +
      794  uint32_t sample_count = sizes.size();
      +
      795  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      796  buffer->IgnoreBytes(3) &&
      +
      797  buffer->ReadWriteUInt8(&field_size) &&
      +
      798  buffer->ReadWriteUInt32(&sample_count));
      +
      799 
      +
      800  // Reserve one more entry if field size is 4 bits.
      +
      801  sizes.resize(sample_count + (field_size == 4 ? 1 : 0), 0);
      +
      802  switch (field_size) {
      +
      803  case 4:
      +
      804  for (uint32_t i = 0; i < sample_count; i += 2) {
      +
      805  if (buffer->Reading()) {
      +
      806  uint8_t size = 0;
      +
      807  RCHECK(buffer->ReadWriteUInt8(&size));
      +
      808  sizes[i] = size >> 4;
      +
      809  sizes[i + 1] = size & 0x0F;
      +
      810  } else {
      +
      811  DCHECK_LT(sizes[i], 16u);
      +
      812  DCHECK_LT(sizes[i + 1], 16u);
      +
      813  uint8_t size = (sizes[i] << 4) | sizes[i + 1];
      +
      814  RCHECK(buffer->ReadWriteUInt8(&size));
      +
      815  }
      +
      816  }
      +
      817  break;
      +
      818  case 8:
      +
      819  for (uint32_t i = 0; i < sample_count; ++i) {
      +
      820  uint8_t size = sizes[i];
      +
      821  RCHECK(buffer->ReadWriteUInt8(&size));
      +
      822  sizes[i] = size;
      +
      823  }
      +
      824  break;
      +
      825  case 16:
      +
      826  for (uint32_t i = 0; i < sample_count; ++i) {
      +
      827  uint16_t size = sizes[i];
      +
      828  RCHECK(buffer->ReadWriteUInt16(&size));
      +
      829  sizes[i] = size;
      +
      830  }
      +
      831  break;
      +
      832  default:
      +
      833  RCHECK(false);
      +
      834  }
      +
      835  sizes.resize(sample_count);
      +
      836  return true;
      +
      837 }
      +
      838 
      +
      839 uint32_t CompactSampleSize::ComputeSizeInternal() {
      +
      840  return HeaderSize() + sizeof(uint32_t) + sizeof(uint32_t) +
      +
      841  (field_size * sizes.size() + 7) / 8;
      +
      842 }
      +
      843 
      +
      844 ChunkOffset::ChunkOffset() {}
      +
      845 ChunkOffset::~ChunkOffset() {}
      +
      846 FourCC ChunkOffset::BoxType() const { return FOURCC_stco; }
      +
      847 
      +
      848 bool ChunkOffset::ReadWriteInternal(BoxBuffer* buffer) {
      +
      849  uint32_t count = offsets.size();
      850  RCHECK(ReadWriteHeaderInternal(buffer) &&
      851  buffer->ReadWriteUInt32(&count));
      852 
      853  offsets.resize(count);
      854  for (uint32_t i = 0; i < count; ++i)
      -
      855  RCHECK(buffer->ReadWriteUInt64(&offsets[i]));
      +
      855  RCHECK(buffer->ReadWriteUInt64NBytes(&offsets[i], sizeof(uint32_t)));
      856  return true;
      857 }
      858 
      -
      859 uint32_t ChunkLargeOffset::ComputeSizeInternal() {
      -
      860  uint32_t count = offsets.size();
      -
      861  int use_large_offset =
      -
      862  (count > 0 && !IsFitIn32Bits(offsets[count - 1])) ? 1 : 0;
      -
      863  return HeaderSize() + sizeof(count) +
      -
      864  sizeof(uint32_t) * (1 + use_large_offset) * offsets.size();
      -
      865 }
      +
      859 uint32_t ChunkOffset::ComputeSizeInternal() {
      +
      860  return HeaderSize() + sizeof(uint32_t) + sizeof(uint32_t) * offsets.size();
      +
      861 }
      +
      862 
      +
      863 ChunkLargeOffset::ChunkLargeOffset() {}
      +
      864 ChunkLargeOffset::~ChunkLargeOffset() {}
      +
      865 FourCC ChunkLargeOffset::BoxType() const { return FOURCC_co64; }
      866 
      -
      867 SyncSample::SyncSample() {}
      -
      868 SyncSample::~SyncSample() {}
      -
      869 FourCC SyncSample::BoxType() const { return FOURCC_stss; }
      -
      870 
      -
      871 bool SyncSample::ReadWriteInternal(BoxBuffer* buffer) {
      -
      872  uint32_t count = sample_number.size();
      -
      873  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      874  buffer->ReadWriteUInt32(&count));
      -
      875 
      -
      876  sample_number.resize(count);
      -
      877  for (uint32_t i = 0; i < count; ++i)
      -
      878  RCHECK(buffer->ReadWriteUInt32(&sample_number[i]));
      -
      879  return true;
      -
      880 }
      +
      867 bool ChunkLargeOffset::ReadWriteInternal(BoxBuffer* buffer) {
      +
      868  uint32_t count = offsets.size();
      +
      869 
      +
      870  if (!buffer->Reading()) {
      +
      871  // Switch to ChunkOffset box if it is able to fit in 32 bits offset.
      +
      872  if (count == 0 || IsFitIn32Bits(offsets[count - 1])) {
      +
      873  ChunkOffset stco;
      +
      874  stco.offsets.swap(offsets);
      +
      875  DCHECK(buffer->writer());
      +
      876  stco.Write(buffer->writer());
      +
      877  stco.offsets.swap(offsets);
      +
      878  return true;
      +
      879  }
      +
      880  }
      881 
      -
      882 uint32_t SyncSample::ComputeSizeInternal() {
      -
      883  // Sync sample box is optional. Skip it if it is empty.
      -
      884  if (sample_number.empty())
      -
      885  return 0;
      -
      886  return HeaderSize() + sizeof(uint32_t) +
      -
      887  sizeof(uint32_t) * sample_number.size();
      -
      888 }
      -
      889 
      -
      890 SampleTable::SampleTable() {}
      -
      891 SampleTable::~SampleTable() {}
      -
      892 FourCC SampleTable::BoxType() const { return FOURCC_stbl; }
      -
      893 
      -
      894 bool SampleTable::ReadWriteInternal(BoxBuffer* buffer) {
      -
      895  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      896  buffer->PrepareChildren() &&
      -
      897  buffer->ReadWriteChild(&description) &&
      -
      898  buffer->ReadWriteChild(&decoding_time_to_sample) &&
      -
      899  buffer->TryReadWriteChild(&composition_time_to_sample) &&
      -
      900  buffer->ReadWriteChild(&sample_to_chunk));
      -
      901 
      -
      902  if (buffer->Reading()) {
      -
      903  BoxReader* reader = buffer->reader();
      -
      904  DCHECK(reader);
      -
      905 
      -
      906  // Either SampleSize or CompactSampleSize must present.
      -
      907  if (reader->ChildExist(&sample_size)) {
      -
      908  RCHECK(reader->ReadChild(&sample_size));
      -
      909  } else {
      -
      910  CompactSampleSize compact_sample_size;
      -
      911  RCHECK(reader->ReadChild(&compact_sample_size));
      -
      912  sample_size.sample_size = 0;
      -
      913  sample_size.sample_count = compact_sample_size.sizes.size();
      -
      914  sample_size.sizes.swap(compact_sample_size.sizes);
      -
      915  }
      -
      916 
      -
      917  // Either ChunkOffset or ChunkLargeOffset must present.
      -
      918  if (reader->ChildExist(&chunk_large_offset)) {
      -
      919  RCHECK(reader->ReadChild(&chunk_large_offset));
      -
      920  } else {
      -
      921  ChunkOffset chunk_offset;
      -
      922  RCHECK(reader->ReadChild(&chunk_offset));
      -
      923  chunk_large_offset.offsets.swap(chunk_offset.offsets);
      -
      924  }
      -
      925  } else {
      -
      926  RCHECK(buffer->ReadWriteChild(&sample_size) &&
      -
      927  buffer->ReadWriteChild(&chunk_large_offset));
      -
      928  }
      -
      929  RCHECK(buffer->TryReadWriteChild(&sync_sample));
      -
      930  return true;
      -
      931 }
      -
      932 
      -
      933 uint32_t SampleTable::ComputeSizeInternal() {
      -
      934  return HeaderSize() + description.ComputeSize() +
      -
      935  decoding_time_to_sample.ComputeSize() +
      -
      936  composition_time_to_sample.ComputeSize() +
      -
      937  sample_to_chunk.ComputeSize() + sample_size.ComputeSize() +
      -
      938  chunk_large_offset.ComputeSize() + sync_sample.ComputeSize();
      -
      939 }
      -
      940 
      -
      941 EditList::EditList() {}
      -
      942 EditList::~EditList() {}
      -
      943 FourCC EditList::BoxType() const { return FOURCC_elst; }
      -
      944 
      -
      945 bool EditList::ReadWriteInternal(BoxBuffer* buffer) {
      -
      946  uint32_t count = edits.size();
      -
      947  RCHECK(ReadWriteHeaderInternal(buffer) && buffer->ReadWriteUInt32(&count));
      -
      948  edits.resize(count);
      -
      949 
      -
      950  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      951  for (uint32_t i = 0; i < count; ++i) {
      -
      952  RCHECK(
      -
      953  buffer->ReadWriteUInt64NBytes(&edits[i].segment_duration, num_bytes) &&
      -
      954  buffer->ReadWriteInt64NBytes(&edits[i].media_time, num_bytes) &&
      -
      955  buffer->ReadWriteInt16(&edits[i].media_rate_integer) &&
      -
      956  buffer->ReadWriteInt16(&edits[i].media_rate_fraction));
      -
      957  }
      -
      958  return true;
      -
      959 }
      -
      960 
      -
      961 uint32_t EditList::ComputeSizeInternal() {
      -
      962  // EditList box is optional. Skip it if it is empty.
      -
      963  if (edits.empty())
      -
      964  return 0;
      -
      965 
      -
      966  version = 0;
      -
      967  for (uint32_t i = 0; i < edits.size(); ++i) {
      -
      968  if (!IsFitIn32Bits(edits[i].segment_duration, edits[i].media_time)) {
      -
      969  version = 1;
      -
      970  break;
      -
      971  }
      -
      972  }
      -
      973  return HeaderSize() + sizeof(uint32_t) +
      -
      974  (sizeof(uint32_t) * (1 + version) * 2 + sizeof(int16_t) * 2) *
      -
      975  edits.size();
      -
      976 }
      -
      977 
      -
      978 Edit::Edit() {}
      -
      979 Edit::~Edit() {}
      -
      980 FourCC Edit::BoxType() const { return FOURCC_edts; }
      +
      882  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      883  buffer->ReadWriteUInt32(&count));
      +
      884 
      +
      885  offsets.resize(count);
      +
      886  for (uint32_t i = 0; i < count; ++i)
      +
      887  RCHECK(buffer->ReadWriteUInt64(&offsets[i]));
      +
      888  return true;
      +
      889 }
      +
      890 
      +
      891 uint32_t ChunkLargeOffset::ComputeSizeInternal() {
      +
      892  uint32_t count = offsets.size();
      +
      893  int use_large_offset =
      +
      894  (count > 0 && !IsFitIn32Bits(offsets[count - 1])) ? 1 : 0;
      +
      895  return HeaderSize() + sizeof(count) +
      +
      896  sizeof(uint32_t) * (1 + use_large_offset) * offsets.size();
      +
      897 }
      +
      898 
      +
      899 SyncSample::SyncSample() {}
      +
      900 SyncSample::~SyncSample() {}
      +
      901 FourCC SyncSample::BoxType() const { return FOURCC_stss; }
      +
      902 
      +
      903 bool SyncSample::ReadWriteInternal(BoxBuffer* buffer) {
      +
      904  uint32_t count = sample_number.size();
      +
      905  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      906  buffer->ReadWriteUInt32(&count));
      +
      907 
      +
      908  sample_number.resize(count);
      +
      909  for (uint32_t i = 0; i < count; ++i)
      +
      910  RCHECK(buffer->ReadWriteUInt32(&sample_number[i]));
      +
      911  return true;
      +
      912 }
      +
      913 
      +
      914 uint32_t SyncSample::ComputeSizeInternal() {
      +
      915  // Sync sample box is optional. Skip it if it is empty.
      +
      916  if (sample_number.empty())
      +
      917  return 0;
      +
      918  return HeaderSize() + sizeof(uint32_t) +
      +
      919  sizeof(uint32_t) * sample_number.size();
      +
      920 }
      +
      921 
      +
      922 SampleTable::SampleTable() {}
      +
      923 SampleTable::~SampleTable() {}
      +
      924 FourCC SampleTable::BoxType() const { return FOURCC_stbl; }
      +
      925 
      +
      926 bool SampleTable::ReadWriteInternal(BoxBuffer* buffer) {
      +
      927  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      928  buffer->PrepareChildren() &&
      +
      929  buffer->ReadWriteChild(&description) &&
      +
      930  buffer->ReadWriteChild(&decoding_time_to_sample) &&
      +
      931  buffer->TryReadWriteChild(&composition_time_to_sample) &&
      +
      932  buffer->ReadWriteChild(&sample_to_chunk));
      +
      933 
      +
      934  if (buffer->Reading()) {
      +
      935  BoxReader* reader = buffer->reader();
      +
      936  DCHECK(reader);
      +
      937 
      +
      938  // Either SampleSize or CompactSampleSize must present.
      +
      939  if (reader->ChildExist(&sample_size)) {
      +
      940  RCHECK(reader->ReadChild(&sample_size));
      +
      941  } else {
      +
      942  CompactSampleSize compact_sample_size;
      +
      943  RCHECK(reader->ReadChild(&compact_sample_size));
      +
      944  sample_size.sample_size = 0;
      +
      945  sample_size.sample_count = compact_sample_size.sizes.size();
      +
      946  sample_size.sizes.swap(compact_sample_size.sizes);
      +
      947  }
      +
      948 
      +
      949  // Either ChunkOffset or ChunkLargeOffset must present.
      +
      950  if (reader->ChildExist(&chunk_large_offset)) {
      +
      951  RCHECK(reader->ReadChild(&chunk_large_offset));
      +
      952  } else {
      +
      953  ChunkOffset chunk_offset;
      +
      954  RCHECK(reader->ReadChild(&chunk_offset));
      +
      955  chunk_large_offset.offsets.swap(chunk_offset.offsets);
      +
      956  }
      +
      957  } else {
      +
      958  RCHECK(buffer->ReadWriteChild(&sample_size) &&
      +
      959  buffer->ReadWriteChild(&chunk_large_offset));
      +
      960  }
      +
      961  RCHECK(buffer->TryReadWriteChild(&sync_sample));
      +
      962  return true;
      +
      963 }
      +
      964 
      +
      965 uint32_t SampleTable::ComputeSizeInternal() {
      +
      966  return HeaderSize() + description.ComputeSize() +
      +
      967  decoding_time_to_sample.ComputeSize() +
      +
      968  composition_time_to_sample.ComputeSize() +
      +
      969  sample_to_chunk.ComputeSize() + sample_size.ComputeSize() +
      +
      970  chunk_large_offset.ComputeSize() + sync_sample.ComputeSize();
      +
      971 }
      +
      972 
      +
      973 EditList::EditList() {}
      +
      974 EditList::~EditList() {}
      +
      975 FourCC EditList::BoxType() const { return FOURCC_elst; }
      +
      976 
      +
      977 bool EditList::ReadWriteInternal(BoxBuffer* buffer) {
      +
      978  uint32_t count = edits.size();
      +
      979  RCHECK(ReadWriteHeaderInternal(buffer) && buffer->ReadWriteUInt32(&count));
      +
      980  edits.resize(count);
      981 
      -
      982 bool Edit::ReadWriteInternal(BoxBuffer* buffer) {
      -
      983  return ReadWriteHeaderInternal(buffer) &&
      -
      984  buffer->PrepareChildren() &&
      -
      985  buffer->ReadWriteChild(&list);
      -
      986 }
      -
      987 
      -
      988 uint32_t Edit::ComputeSizeInternal() {
      -
      989  // Edit box is optional. Skip it if it is empty.
      -
      990  if (list.edits.empty())
      -
      991  return 0;
      -
      992  return HeaderSize() + list.ComputeSize();
      -
      993 }
      -
      994 
      -
      995 HandlerReference::HandlerReference() : handler_type(FOURCC_NULL) {}
      -
      996 HandlerReference::~HandlerReference() {}
      -
      997 FourCC HandlerReference::BoxType() const { return FOURCC_hdlr; }
      -
      998 
      -
      999 bool HandlerReference::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1000  std::vector<uint8_t> handler_name;
      -
      1001  if (!buffer->Reading()) {
      -
      1002  switch (handler_type) {
      -
      1003  case FOURCC_vide:
      -
      1004  handler_name.assign(kVideoHandlerName,
      -
      1005  kVideoHandlerName + arraysize(kVideoHandlerName));
      -
      1006  break;
      -
      1007  case FOURCC_soun:
      -
      1008  handler_name.assign(kAudioHandlerName,
      -
      1009  kAudioHandlerName + arraysize(kAudioHandlerName));
      -
      1010  break;
      -
      1011  case FOURCC_text:
      -
      1012  handler_name.assign(kTextHandlerName,
      -
      1013  kTextHandlerName + arraysize(kTextHandlerName));
      -
      1014  break;
      -
      1015  case FOURCC_ID32:
      -
      1016  break;
      -
      1017  default:
      -
      1018  NOTIMPLEMENTED();
      -
      1019  return false;
      -
      1020  }
      -
      1021  }
      -
      1022  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1023  buffer->IgnoreBytes(4) && // predefined.
      -
      1024  buffer->ReadWriteFourCC(&handler_type));
      -
      1025  if (!buffer->Reading()) {
      -
      1026  RCHECK(buffer->IgnoreBytes(12) && // reserved.
      -
      1027  buffer->ReadWriteVector(&handler_name, handler_name.size()));
      -
      1028  }
      -
      1029  return true;
      -
      1030 }
      -
      1031 
      -
      1032 uint32_t HandlerReference::ComputeSizeInternal() {
      -
      1033  uint32_t box_size = HeaderSize() + kFourCCSize + 16; // 16 bytes Reserved
      -
      1034  switch (handler_type) {
      -
      1035  case FOURCC_vide:
      -
      1036  box_size += sizeof(kVideoHandlerName);
      -
      1037  break;
      -
      1038  case FOURCC_soun:
      -
      1039  box_size += sizeof(kAudioHandlerName);
      -
      1040  break;
      -
      1041  case FOURCC_text:
      -
      1042  box_size += sizeof(kTextHandlerName);
      -
      1043  break;
      -
      1044  case FOURCC_ID32:
      -
      1045  break;
      -
      1046  default:
      -
      1047  NOTIMPLEMENTED();
      -
      1048  }
      -
      1049  return box_size;
      -
      1050 }
      -
      1051 
      -
      1052 bool Language::ReadWrite(BoxBuffer* buffer) {
      -
      1053  if (buffer->Reading()) {
      -
      1054  // Read language codes into temp first then use BitReader to read the
      -
      1055  // values. ISO-639-2/T language code: unsigned int(5)[3] language (2 bytes).
      -
      1056  std::vector<uint8_t> temp;
      -
      1057  RCHECK(buffer->ReadWriteVector(&temp, 2));
      -
      1058 
      -
      1059  BitReader bit_reader(&temp[0], 2);
      -
      1060  bit_reader.SkipBits(1);
      -
      1061  char language[3];
      -
      1062  for (int i = 0; i < 3; ++i) {
      -
      1063  CHECK(bit_reader.ReadBits(5, &language[i]));
      -
      1064  language[i] += 0x60;
      -
      1065  }
      -
      1066  code.assign(language, 3);
      -
      1067  } else {
      -
      1068  // Set up default language if it is not set.
      -
      1069  const char kUndefinedLanguage[] = "und";
      -
      1070  if (code.empty())
      -
      1071  code = kUndefinedLanguage;
      -
      1072  DCHECK_EQ(code.size(), 3u);
      -
      1073 
      -
      1074  // Lang format: bit(1) pad, unsigned int(5)[3] language.
      -
      1075  uint16_t lang = 0;
      -
      1076  for (int i = 0; i < 3; ++i)
      -
      1077  lang |= (code[i] - 0x60) << ((2 - i) * 5);
      -
      1078  RCHECK(buffer->ReadWriteUInt16(&lang));
      -
      1079  }
      -
      1080  return true;
      -
      1081 }
      -
      1082 
      -
      1083 uint32_t Language::ComputeSize() const {
      -
      1084  // ISO-639-2/T language code: unsigned int(5)[3] language (2 bytes).
      -
      1085  return 2;
      -
      1086 }
      -
      1087 
      -
      1088 bool PrivFrame::ReadWrite(BoxBuffer* buffer) {
      -
      1089  FourCC fourcc = FOURCC_PRIV;
      -
      1090  RCHECK(buffer->ReadWriteFourCC(&fourcc));
      -
      1091  if (fourcc != FOURCC_PRIV) {
      -
      1092  VLOG(1) << "Skip unrecognized id3 frame during read: "
      -
      1093  << FourCCToString(fourcc);
      -
      1094  return true;
      -
      1095  }
      -
      1096 
      -
      1097  uint32_t frame_size = owner.size() + 1 + value.size();
      -
      1098  // size should be encoded as synchsafe integer, which is not support here.
      -
      1099  // We don't expect frame_size to be larger than 0x7F. Synchsafe integers less
      -
      1100  // than 0x7F is encoded in the same way as normal integer.
      -
      1101  DCHECK_LT(frame_size, 0x7Fu);
      -
      1102  uint16_t flags = 0;
      -
      1103  RCHECK(buffer->ReadWriteUInt32(&frame_size) &&
      -
      1104  buffer->ReadWriteUInt16(&flags));
      +
      982  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      983  for (uint32_t i = 0; i < count; ++i) {
      +
      984  RCHECK(
      +
      985  buffer->ReadWriteUInt64NBytes(&edits[i].segment_duration, num_bytes) &&
      +
      986  buffer->ReadWriteInt64NBytes(&edits[i].media_time, num_bytes) &&
      +
      987  buffer->ReadWriteInt16(&edits[i].media_rate_integer) &&
      +
      988  buffer->ReadWriteInt16(&edits[i].media_rate_fraction));
      +
      989  }
      +
      990  return true;
      +
      991 }
      +
      992 
      +
      993 uint32_t EditList::ComputeSizeInternal() {
      +
      994  // EditList box is optional. Skip it if it is empty.
      +
      995  if (edits.empty())
      +
      996  return 0;
      +
      997 
      +
      998  version = 0;
      +
      999  for (uint32_t i = 0; i < edits.size(); ++i) {
      +
      1000  if (!IsFitIn32Bits(edits[i].segment_duration, edits[i].media_time)) {
      +
      1001  version = 1;
      +
      1002  break;
      +
      1003  }
      +
      1004  }
      +
      1005  return HeaderSize() + sizeof(uint32_t) +
      +
      1006  (sizeof(uint32_t) * (1 + version) * 2 + sizeof(int16_t) * 2) *
      +
      1007  edits.size();
      +
      1008 }
      +
      1009 
      +
      1010 Edit::Edit() {}
      +
      1011 Edit::~Edit() {}
      +
      1012 FourCC Edit::BoxType() const { return FOURCC_edts; }
      +
      1013 
      +
      1014 bool Edit::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1015  return ReadWriteHeaderInternal(buffer) &&
      +
      1016  buffer->PrepareChildren() &&
      +
      1017  buffer->ReadWriteChild(&list);
      +
      1018 }
      +
      1019 
      +
      1020 uint32_t Edit::ComputeSizeInternal() {
      +
      1021  // Edit box is optional. Skip it if it is empty.
      +
      1022  if (list.edits.empty())
      +
      1023  return 0;
      +
      1024  return HeaderSize() + list.ComputeSize();
      +
      1025 }
      +
      1026 
      +
      1027 HandlerReference::HandlerReference() : handler_type(FOURCC_NULL) {}
      +
      1028 HandlerReference::~HandlerReference() {}
      +
      1029 FourCC HandlerReference::BoxType() const { return FOURCC_hdlr; }
      +
      1030 
      +
      1031 bool HandlerReference::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1032  std::vector<uint8_t> handler_name;
      +
      1033  if (!buffer->Reading()) {
      +
      1034  switch (handler_type) {
      +
      1035  case FOURCC_vide:
      +
      1036  handler_name.assign(kVideoHandlerName,
      +
      1037  kVideoHandlerName + arraysize(kVideoHandlerName));
      +
      1038  break;
      +
      1039  case FOURCC_soun:
      +
      1040  handler_name.assign(kAudioHandlerName,
      +
      1041  kAudioHandlerName + arraysize(kAudioHandlerName));
      +
      1042  break;
      +
      1043  case FOURCC_text:
      +
      1044  handler_name.assign(kTextHandlerName,
      +
      1045  kTextHandlerName + arraysize(kTextHandlerName));
      +
      1046  break;
      +
      1047  case FOURCC_ID32:
      +
      1048  break;
      +
      1049  default:
      +
      1050  NOTIMPLEMENTED();
      +
      1051  return false;
      +
      1052  }
      +
      1053  }
      +
      1054  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1055  buffer->IgnoreBytes(4) && // predefined.
      +
      1056  buffer->ReadWriteFourCC(&handler_type));
      +
      1057  if (!buffer->Reading()) {
      +
      1058  RCHECK(buffer->IgnoreBytes(12) && // reserved.
      +
      1059  buffer->ReadWriteVector(&handler_name, handler_name.size()));
      +
      1060  }
      +
      1061  return true;
      +
      1062 }
      +
      1063 
      +
      1064 uint32_t HandlerReference::ComputeSizeInternal() {
      +
      1065  uint32_t box_size = HeaderSize() + kFourCCSize + 16; // 16 bytes Reserved
      +
      1066  switch (handler_type) {
      +
      1067  case FOURCC_vide:
      +
      1068  box_size += sizeof(kVideoHandlerName);
      +
      1069  break;
      +
      1070  case FOURCC_soun:
      +
      1071  box_size += sizeof(kAudioHandlerName);
      +
      1072  break;
      +
      1073  case FOURCC_text:
      +
      1074  box_size += sizeof(kTextHandlerName);
      +
      1075  break;
      +
      1076  case FOURCC_ID32:
      +
      1077  break;
      +
      1078  default:
      +
      1079  NOTIMPLEMENTED();
      +
      1080  }
      +
      1081  return box_size;
      +
      1082 }
      +
      1083 
      +
      1084 bool Language::ReadWrite(BoxBuffer* buffer) {
      +
      1085  if (buffer->Reading()) {
      +
      1086  // Read language codes into temp first then use BitReader to read the
      +
      1087  // values. ISO-639-2/T language code: unsigned int(5)[3] language (2 bytes).
      +
      1088  std::vector<uint8_t> temp;
      +
      1089  RCHECK(buffer->ReadWriteVector(&temp, 2));
      +
      1090 
      +
      1091  BitReader bit_reader(&temp[0], 2);
      +
      1092  bit_reader.SkipBits(1);
      +
      1093  char language[3];
      +
      1094  for (int i = 0; i < 3; ++i) {
      +
      1095  CHECK(bit_reader.ReadBits(5, &language[i]));
      +
      1096  language[i] += 0x60;
      +
      1097  }
      +
      1098  code.assign(language, 3);
      +
      1099  } else {
      +
      1100  // Set up default language if it is not set.
      +
      1101  const char kUndefinedLanguage[] = "und";
      +
      1102  if (code.empty())
      +
      1103  code = kUndefinedLanguage;
      +
      1104  DCHECK_EQ(code.size(), 3u);
      1105 
      -
      1106  if (buffer->Reading()) {
      -
      1107  std::string str;
      -
      1108  RCHECK(buffer->ReadWriteString(&str, frame_size));
      -
      1109  // |owner| is null terminated.
      -
      1110  size_t pos = str.find('\0');
      -
      1111  RCHECK(pos < str.size());
      -
      1112  owner = str.substr(0, pos);
      -
      1113  value = str.substr(pos + 1);
      -
      1114  } else {
      -
      1115  uint8_t byte = 0; // Null terminating byte between owner and value.
      -
      1116  RCHECK(buffer->ReadWriteString(&owner, owner.size()) &&
      -
      1117  buffer->ReadWriteUInt8(&byte) &&
      -
      1118  buffer->ReadWriteString(&value, value.size()));
      -
      1119  }
      -
      1120  return true;
      -
      1121 }
      -
      1122 
      -
      1123 uint32_t PrivFrame::ComputeSize() const {
      -
      1124  if (owner.empty() && value.empty())
      -
      1125  return 0;
      -
      1126  const uint32_t kFourCCSize = 4;
      -
      1127  return kFourCCSize + sizeof(uint32_t) + sizeof(uint16_t) + owner.size() + 1 +
      -
      1128  value.size();
      -
      1129 }
      -
      1130 
      -
      1131 ID3v2::ID3v2() {}
      -
      1132 ID3v2::~ID3v2() {}
      -
      1133 
      -
      1134 FourCC ID3v2::BoxType() const { return FOURCC_ID32; }
      -
      1135 
      -
      1136 bool ID3v2::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1137  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1138  language.ReadWrite(buffer));
      -
      1139 
      -
      1140  // Read/Write ID3v2 header
      -
      1141  std::string id3v2_identifier = kID3v2Identifier;
      -
      1142  uint16_t version = kID3v2Version;
      -
      1143  // We only support PrivateFrame in ID3.
      -
      1144  uint32_t data_size = private_frame.ComputeSize();
      -
      1145  // size should be encoded as synchsafe integer, which is not support here.
      -
      1146  // We don't expect data_size to be larger than 0x7F. Synchsafe integers less
      -
      1147  // than 0x7F is encoded in the same way as normal integer.
      -
      1148  DCHECK_LT(data_size, 0x7Fu);
      -
      1149  uint8_t flags = 0;
      -
      1150  RCHECK(buffer->ReadWriteString(&id3v2_identifier, id3v2_identifier.size()) &&
      -
      1151  buffer->ReadWriteUInt16(&version) &&
      -
      1152  buffer->ReadWriteUInt8(&flags) &&
      -
      1153  buffer->ReadWriteUInt32(&data_size));
      +
      1106  // Lang format: bit(1) pad, unsigned int(5)[3] language.
      +
      1107  uint16_t lang = 0;
      +
      1108  for (int i = 0; i < 3; ++i)
      +
      1109  lang |= (code[i] - 0x60) << ((2 - i) * 5);
      +
      1110  RCHECK(buffer->ReadWriteUInt16(&lang));
      +
      1111  }
      +
      1112  return true;
      +
      1113 }
      +
      1114 
      +
      1115 uint32_t Language::ComputeSize() const {
      +
      1116  // ISO-639-2/T language code: unsigned int(5)[3] language (2 bytes).
      +
      1117  return 2;
      +
      1118 }
      +
      1119 
      +
      1120 bool PrivFrame::ReadWrite(BoxBuffer* buffer) {
      +
      1121  FourCC fourcc = FOURCC_PRIV;
      +
      1122  RCHECK(buffer->ReadWriteFourCC(&fourcc));
      +
      1123  if (fourcc != FOURCC_PRIV) {
      +
      1124  VLOG(1) << "Skip unrecognized id3 frame during read: "
      +
      1125  << FourCCToString(fourcc);
      +
      1126  return true;
      +
      1127  }
      +
      1128 
      +
      1129  uint32_t frame_size = owner.size() + 1 + value.size();
      +
      1130  // size should be encoded as synchsafe integer, which is not support here.
      +
      1131  // We don't expect frame_size to be larger than 0x7F. Synchsafe integers less
      +
      1132  // than 0x7F is encoded in the same way as normal integer.
      +
      1133  DCHECK_LT(frame_size, 0x7Fu);
      +
      1134  uint16_t flags = 0;
      +
      1135  RCHECK(buffer->ReadWriteUInt32(&frame_size) &&
      +
      1136  buffer->ReadWriteUInt16(&flags));
      +
      1137 
      +
      1138  if (buffer->Reading()) {
      +
      1139  std::string str;
      +
      1140  RCHECK(buffer->ReadWriteString(&str, frame_size));
      +
      1141  // |owner| is null terminated.
      +
      1142  size_t pos = str.find('\0');
      +
      1143  RCHECK(pos < str.size());
      +
      1144  owner = str.substr(0, pos);
      +
      1145  value = str.substr(pos + 1);
      +
      1146  } else {
      +
      1147  uint8_t byte = 0; // Null terminating byte between owner and value.
      +
      1148  RCHECK(buffer->ReadWriteString(&owner, owner.size()) &&
      +
      1149  buffer->ReadWriteUInt8(&byte) &&
      +
      1150  buffer->ReadWriteString(&value, value.size()));
      +
      1151  }
      +
      1152  return true;
      +
      1153 }
      1154 
      -
      1155  RCHECK(private_frame.ReadWrite(buffer));
      -
      1156  return true;
      -
      1157 }
      -
      1158 
      -
      1159 uint32_t ID3v2::ComputeSizeInternal() {
      -
      1160  uint32_t private_frame_size = private_frame.ComputeSize();
      -
      1161  // Skip ID3v2 box generation if there is no private frame.
      -
      1162  return private_frame_size == 0 ? 0 : HeaderSize() + language.ComputeSize() +
      -
      1163  kID3v2HeaderSize +
      -
      1164  private_frame_size;
      -
      1165 }
      -
      1166 
      -
      1167 Metadata::Metadata() {}
      -
      1168 Metadata::~Metadata() {}
      -
      1169 
      -
      1170 FourCC Metadata::BoxType() const {
      -
      1171  return FOURCC_meta;
      -
      1172 }
      -
      1173 
      -
      1174 bool Metadata::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1175  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1176  buffer->PrepareChildren() &&
      -
      1177  buffer->ReadWriteChild(&handler) &&
      -
      1178  buffer->TryReadWriteChild(&id3v2));
      -
      1179  return true;
      -
      1180 }
      -
      1181 
      -
      1182 uint32_t Metadata::ComputeSizeInternal() {
      -
      1183  uint32_t id3v2_size = id3v2.ComputeSize();
      -
      1184  // Skip metadata box generation if there is no metadata box.
      -
      1185  return id3v2_size == 0 ? 0
      -
      1186  : HeaderSize() + handler.ComputeSize() + id3v2_size;
      -
      1187 }
      -
      1188 
      -
      1189 CodecConfigurationRecord::CodecConfigurationRecord() : box_type(FOURCC_NULL) {}
      -
      1190 CodecConfigurationRecord::~CodecConfigurationRecord() {}
      - -
      1192  // CodecConfigurationRecord should be parsed according to format recovered in
      -
      1193  // VideoSampleEntry. |box_type| is determined dynamically there.
      -
      1194  return box_type;
      -
      1195 }
      -
      1196 
      -
      1197 bool CodecConfigurationRecord::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1198  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1199  if (buffer->Reading()) {
      -
      1200  RCHECK(buffer->ReadWriteVector(&data, buffer->BytesLeft()));
      -
      1201  } else {
      -
      1202  RCHECK(buffer->ReadWriteVector(&data, data.size()));
      -
      1203  }
      -
      1204  return true;
      -
      1205 }
      -
      1206 
      -
      1207 uint32_t CodecConfigurationRecord::ComputeSizeInternal() {
      -
      1208  if (data.empty())
      -
      1209  return 0;
      -
      1210  return HeaderSize() + data.size();
      -
      1211 }
      -
      1212 
      -
      1213 PixelAspectRatio::PixelAspectRatio() : h_spacing(0), v_spacing(0) {}
      -
      1214 PixelAspectRatio::~PixelAspectRatio() {}
      -
      1215 FourCC PixelAspectRatio::BoxType() const { return FOURCC_pasp; }
      -
      1216 
      -
      1217 bool PixelAspectRatio::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1218  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1219  buffer->ReadWriteUInt32(&h_spacing) &&
      -
      1220  buffer->ReadWriteUInt32(&v_spacing));
      -
      1221  return true;
      -
      1222 }
      -
      1223 
      -
      1224 uint32_t PixelAspectRatio::ComputeSizeInternal() {
      -
      1225  // This box is optional. Skip it if it is not initialized.
      -
      1226  if (h_spacing == 0 && v_spacing == 0)
      -
      1227  return 0;
      -
      1228  // Both values must be positive.
      -
      1229  DCHECK(h_spacing != 0 && v_spacing != 0);
      -
      1230  return HeaderSize() + sizeof(h_spacing) + sizeof(v_spacing);
      -
      1231 }
      -
      1232 
      -
      1233 VideoSampleEntry::VideoSampleEntry()
      -
      1234  : format(FOURCC_NULL), data_reference_index(1), width(0), height(0) {}
      -
      1235 
      -
      1236 VideoSampleEntry::~VideoSampleEntry() {}
      - -
      1238  if (format == FOURCC_NULL) {
      -
      1239  LOG(ERROR) << "VideoSampleEntry should be parsed according to the "
      -
      1240  << "handler type recovered in its Media ancestor.";
      -
      1241  }
      -
      1242  return format;
      +
      1155 uint32_t PrivFrame::ComputeSize() const {
      +
      1156  if (owner.empty() && value.empty())
      +
      1157  return 0;
      +
      1158  const uint32_t kFourCCSize = 4;
      +
      1159  return kFourCCSize + sizeof(uint32_t) + sizeof(uint16_t) + owner.size() + 1 +
      +
      1160  value.size();
      +
      1161 }
      +
      1162 
      +
      1163 ID3v2::ID3v2() {}
      +
      1164 ID3v2::~ID3v2() {}
      +
      1165 
      +
      1166 FourCC ID3v2::BoxType() const { return FOURCC_ID32; }
      +
      1167 
      +
      1168 bool ID3v2::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1169  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1170  language.ReadWrite(buffer));
      +
      1171 
      +
      1172  // Read/Write ID3v2 header
      +
      1173  std::string id3v2_identifier = kID3v2Identifier;
      +
      1174  uint16_t version = kID3v2Version;
      +
      1175  // We only support PrivateFrame in ID3.
      +
      1176  uint32_t data_size = private_frame.ComputeSize();
      +
      1177  // size should be encoded as synchsafe integer, which is not support here.
      +
      1178  // We don't expect data_size to be larger than 0x7F. Synchsafe integers less
      +
      1179  // than 0x7F is encoded in the same way as normal integer.
      +
      1180  DCHECK_LT(data_size, 0x7Fu);
      +
      1181  uint8_t flags = 0;
      +
      1182  RCHECK(buffer->ReadWriteString(&id3v2_identifier, id3v2_identifier.size()) &&
      +
      1183  buffer->ReadWriteUInt16(&version) &&
      +
      1184  buffer->ReadWriteUInt8(&flags) &&
      +
      1185  buffer->ReadWriteUInt32(&data_size));
      +
      1186 
      +
      1187  RCHECK(private_frame.ReadWrite(buffer));
      +
      1188  return true;
      +
      1189 }
      +
      1190 
      +
      1191 uint32_t ID3v2::ComputeSizeInternal() {
      +
      1192  uint32_t private_frame_size = private_frame.ComputeSize();
      +
      1193  // Skip ID3v2 box generation if there is no private frame.
      +
      1194  return private_frame_size == 0 ? 0 : HeaderSize() + language.ComputeSize() +
      +
      1195  kID3v2HeaderSize +
      +
      1196  private_frame_size;
      +
      1197 }
      +
      1198 
      +
      1199 Metadata::Metadata() {}
      +
      1200 Metadata::~Metadata() {}
      +
      1201 
      +
      1202 FourCC Metadata::BoxType() const {
      +
      1203  return FOURCC_meta;
      +
      1204 }
      +
      1205 
      +
      1206 bool Metadata::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1207  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1208  buffer->PrepareChildren() &&
      +
      1209  buffer->ReadWriteChild(&handler) &&
      +
      1210  buffer->TryReadWriteChild(&id3v2));
      +
      1211  return true;
      +
      1212 }
      +
      1213 
      +
      1214 uint32_t Metadata::ComputeSizeInternal() {
      +
      1215  uint32_t id3v2_size = id3v2.ComputeSize();
      +
      1216  // Skip metadata box generation if there is no metadata box.
      +
      1217  return id3v2_size == 0 ? 0
      +
      1218  : HeaderSize() + handler.ComputeSize() + id3v2_size;
      +
      1219 }
      +
      1220 
      +
      1221 CodecConfigurationRecord::CodecConfigurationRecord() : box_type(FOURCC_NULL) {}
      +
      1222 CodecConfigurationRecord::~CodecConfigurationRecord() {}
      + +
      1224  // CodecConfigurationRecord should be parsed according to format recovered in
      +
      1225  // VideoSampleEntry. |box_type| is determined dynamically there.
      +
      1226  return box_type;
      +
      1227 }
      +
      1228 
      +
      1229 bool CodecConfigurationRecord::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1230  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1231  if (buffer->Reading()) {
      +
      1232  RCHECK(buffer->ReadWriteVector(&data, buffer->BytesLeft()));
      +
      1233  } else {
      +
      1234  RCHECK(buffer->ReadWriteVector(&data, data.size()));
      +
      1235  }
      +
      1236  return true;
      +
      1237 }
      +
      1238 
      +
      1239 uint32_t CodecConfigurationRecord::ComputeSizeInternal() {
      +
      1240  if (data.empty())
      +
      1241  return 0;
      +
      1242  return HeaderSize() + data.size();
      1243 }
      1244 
      -
      1245 bool VideoSampleEntry::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1246  std::vector<uint8_t> compressor_name;
      -
      1247  if (buffer->Reading()) {
      -
      1248  DCHECK(buffer->reader());
      -
      1249  format = buffer->reader()->type();
      -
      1250  } else {
      -
      1251  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1252 
      -
      1253  const FourCC actual_format = GetActualFormat();
      -
      1254  switch (actual_format) {
      -
      1255  case FOURCC_avc1:
      -
      1256  compressor_name.assign(
      -
      1257  kAvcCompressorName,
      -
      1258  kAvcCompressorName + arraysize(kAvcCompressorName));
      -
      1259  break;
      -
      1260  case FOURCC_hev1:
      -
      1261  case FOURCC_hvc1:
      -
      1262  compressor_name.assign(
      -
      1263  kHevcCompressorName,
      -
      1264  kHevcCompressorName + arraysize(kHevcCompressorName));
      -
      1265  break;
      -
      1266  case FOURCC_vp08:
      -
      1267  case FOURCC_vp09:
      -
      1268  case FOURCC_vp10:
      -
      1269  compressor_name.assign(
      -
      1270  kVpcCompressorName,
      -
      1271  kVpcCompressorName + arraysize(kVpcCompressorName));
      -
      1272  break;
      -
      1273  default:
      -
      1274  LOG(ERROR) << FourCCToString(actual_format) << " is not supported.";
      -
      1275  return false;
      -
      1276  }
      -
      1277  compressor_name.resize(kCompressorNameSize);
      -
      1278  }
      -
      1279 
      -
      1280  uint32_t video_resolution = kVideoResolution;
      -
      1281  uint16_t video_frame_count = kVideoFrameCount;
      -
      1282  uint16_t video_depth = kVideoDepth;
      -
      1283  int16_t predefined = -1;
      -
      1284  RCHECK(buffer->IgnoreBytes(6) && // reserved.
      -
      1285  buffer->ReadWriteUInt16(&data_reference_index) &&
      -
      1286  buffer->IgnoreBytes(16) && // predefined 0.
      -
      1287  buffer->ReadWriteUInt16(&width) &&
      -
      1288  buffer->ReadWriteUInt16(&height) &&
      -
      1289  buffer->ReadWriteUInt32(&video_resolution) &&
      -
      1290  buffer->ReadWriteUInt32(&video_resolution) &&
      -
      1291  buffer->IgnoreBytes(4) && // reserved.
      -
      1292  buffer->ReadWriteUInt16(&video_frame_count) &&
      -
      1293  buffer->ReadWriteVector(&compressor_name, kCompressorNameSize) &&
      -
      1294  buffer->ReadWriteUInt16(&video_depth) &&
      -
      1295  buffer->ReadWriteInt16(&predefined));
      -
      1296 
      -
      1297  RCHECK(buffer->PrepareChildren());
      -
      1298 
      -
      1299  if (format == FOURCC_encv) {
      -
      1300  if (buffer->Reading()) {
      -
      1301  // Continue scanning until a recognized protection scheme is found,
      -
      1302  // or until we run out of protection schemes.
      -
      1303  while (sinf.type.type != FOURCC_cenc && sinf.type.type != FOURCC_cbc1) {
      -
      1304  if (!buffer->ReadWriteChild(&sinf))
      -
      1305  return false;
      -
      1306  }
      -
      1307  } else {
      -
      1308  RCHECK(buffer->ReadWriteChild(&sinf));
      -
      1309  }
      +
      1245 PixelAspectRatio::PixelAspectRatio() : h_spacing(0), v_spacing(0) {}
      +
      1246 PixelAspectRatio::~PixelAspectRatio() {}
      +
      1247 FourCC PixelAspectRatio::BoxType() const { return FOURCC_pasp; }
      +
      1248 
      +
      1249 bool PixelAspectRatio::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1250  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1251  buffer->ReadWriteUInt32(&h_spacing) &&
      +
      1252  buffer->ReadWriteUInt32(&v_spacing));
      +
      1253  return true;
      +
      1254 }
      +
      1255 
      +
      1256 uint32_t PixelAspectRatio::ComputeSizeInternal() {
      +
      1257  // This box is optional. Skip it if it is not initialized.
      +
      1258  if (h_spacing == 0 && v_spacing == 0)
      +
      1259  return 0;
      +
      1260  // Both values must be positive.
      +
      1261  DCHECK(h_spacing != 0 && v_spacing != 0);
      +
      1262  return HeaderSize() + sizeof(h_spacing) + sizeof(v_spacing);
      +
      1263 }
      +
      1264 
      +
      1265 VideoSampleEntry::VideoSampleEntry()
      +
      1266  : format(FOURCC_NULL), data_reference_index(1), width(0), height(0) {}
      +
      1267 
      +
      1268 VideoSampleEntry::~VideoSampleEntry() {}
      + +
      1270  if (format == FOURCC_NULL) {
      +
      1271  LOG(ERROR) << "VideoSampleEntry should be parsed according to the "
      +
      1272  << "handler type recovered in its Media ancestor.";
      +
      1273  }
      +
      1274  return format;
      +
      1275 }
      +
      1276 
      +
      1277 bool VideoSampleEntry::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1278  std::vector<uint8_t> compressor_name;
      +
      1279  if (buffer->Reading()) {
      +
      1280  DCHECK(buffer->reader());
      +
      1281  format = buffer->reader()->type();
      +
      1282  } else {
      +
      1283  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1284 
      +
      1285  const FourCC actual_format = GetActualFormat();
      +
      1286  switch (actual_format) {
      +
      1287  case FOURCC_avc1:
      +
      1288  compressor_name.assign(
      +
      1289  kAvcCompressorName,
      +
      1290  kAvcCompressorName + arraysize(kAvcCompressorName));
      +
      1291  break;
      +
      1292  case FOURCC_hev1:
      +
      1293  case FOURCC_hvc1:
      +
      1294  compressor_name.assign(
      +
      1295  kHevcCompressorName,
      +
      1296  kHevcCompressorName + arraysize(kHevcCompressorName));
      +
      1297  break;
      +
      1298  case FOURCC_vp08:
      +
      1299  case FOURCC_vp09:
      +
      1300  case FOURCC_vp10:
      +
      1301  compressor_name.assign(
      +
      1302  kVpcCompressorName,
      +
      1303  kVpcCompressorName + arraysize(kVpcCompressorName));
      +
      1304  break;
      +
      1305  default:
      +
      1306  LOG(ERROR) << FourCCToString(actual_format) << " is not supported.";
      +
      1307  return false;
      +
      1308  }
      +
      1309  compressor_name.resize(kCompressorNameSize);
      1310  }
      1311 
      -
      1312  const FourCC actual_format = GetActualFormat();
      -
      1313  switch (actual_format) {
      -
      1314  case FOURCC_avc1:
      -
      1315  codec_config_record.box_type = FOURCC_avcC;
      -
      1316  break;
      -
      1317  case FOURCC_hev1:
      -
      1318  case FOURCC_hvc1:
      -
      1319  codec_config_record.box_type = FOURCC_hvcC;
      -
      1320  break;
      -
      1321  case FOURCC_vp08:
      -
      1322  case FOURCC_vp09:
      -
      1323  case FOURCC_vp10:
      -
      1324  codec_config_record.box_type = FOURCC_vpcC;
      -
      1325  break;
      -
      1326  default:
      -
      1327  LOG(ERROR) << FourCCToString(actual_format) << " is not supported.";
      -
      1328  return false;
      -
      1329  }
      -
      1330  RCHECK(buffer->ReadWriteChild(&codec_config_record));
      -
      1331  RCHECK(buffer->TryReadWriteChild(&pixel_aspect));
      -
      1332  return true;
      -
      1333 }
      -
      1334 
      -
      1335 uint32_t VideoSampleEntry::ComputeSizeInternal() {
      -
      1336  return HeaderSize() + sizeof(data_reference_index) + sizeof(width) +
      -
      1337  sizeof(height) + sizeof(kVideoResolution) * 2 +
      -
      1338  sizeof(kVideoFrameCount) + sizeof(kVideoDepth) +
      -
      1339  pixel_aspect.ComputeSize() + sinf.ComputeSize() +
      -
      1340  codec_config_record.ComputeSize() + kCompressorNameSize + 6 + 4 + 16 +
      -
      1341  2; // 6 + 4 bytes reserved, 16 + 2 bytes predefined.
      -
      1342 }
      +
      1312  uint32_t video_resolution = kVideoResolution;
      +
      1313  uint16_t video_frame_count = kVideoFrameCount;
      +
      1314  uint16_t video_depth = kVideoDepth;
      +
      1315  int16_t predefined = -1;
      +
      1316  RCHECK(buffer->IgnoreBytes(6) && // reserved.
      +
      1317  buffer->ReadWriteUInt16(&data_reference_index) &&
      +
      1318  buffer->IgnoreBytes(16) && // predefined 0.
      +
      1319  buffer->ReadWriteUInt16(&width) &&
      +
      1320  buffer->ReadWriteUInt16(&height) &&
      +
      1321  buffer->ReadWriteUInt32(&video_resolution) &&
      +
      1322  buffer->ReadWriteUInt32(&video_resolution) &&
      +
      1323  buffer->IgnoreBytes(4) && // reserved.
      +
      1324  buffer->ReadWriteUInt16(&video_frame_count) &&
      +
      1325  buffer->ReadWriteVector(&compressor_name, kCompressorNameSize) &&
      +
      1326  buffer->ReadWriteUInt16(&video_depth) &&
      +
      1327  buffer->ReadWriteInt16(&predefined));
      +
      1328 
      +
      1329  RCHECK(buffer->PrepareChildren());
      +
      1330 
      +
      1331  if (format == FOURCC_encv) {
      +
      1332  if (buffer->Reading()) {
      +
      1333  // Continue scanning until a recognized protection scheme is found,
      +
      1334  // or until we run out of protection schemes.
      +
      1335  while (sinf.type.type != FOURCC_cenc && sinf.type.type != FOURCC_cbc1) {
      +
      1336  if (!buffer->ReadWriteChild(&sinf))
      +
      1337  return false;
      +
      1338  }
      +
      1339  } else {
      +
      1340  RCHECK(buffer->ReadWriteChild(&sinf));
      +
      1341  }
      +
      1342  }
      1343 
      -
      1344 ElementaryStreamDescriptor::ElementaryStreamDescriptor() {}
      -
      1345 ElementaryStreamDescriptor::~ElementaryStreamDescriptor() {}
      -
      1346 FourCC ElementaryStreamDescriptor::BoxType() const { return FOURCC_esds; }
      -
      1347 
      -
      1348 bool ElementaryStreamDescriptor::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1349  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1350  if (buffer->Reading()) {
      -
      1351  std::vector<uint8_t> data;
      -
      1352  RCHECK(buffer->ReadWriteVector(&data, buffer->BytesLeft()));
      -
      1353  RCHECK(es_descriptor.Parse(data));
      -
      1354  if (es_descriptor.IsAAC()) {
      -
      1355  RCHECK(aac_audio_specific_config.Parse(
      -
      1356  es_descriptor.decoder_specific_info()));
      -
      1357  }
      -
      1358  } else {
      -
      1359  DCHECK(buffer->writer());
      -
      1360  es_descriptor.Write(buffer->writer());
      +
      1344  const FourCC actual_format = GetActualFormat();
      +
      1345  switch (actual_format) {
      +
      1346  case FOURCC_avc1:
      +
      1347  codec_config_record.box_type = FOURCC_avcC;
      +
      1348  break;
      +
      1349  case FOURCC_hev1:
      +
      1350  case FOURCC_hvc1:
      +
      1351  codec_config_record.box_type = FOURCC_hvcC;
      +
      1352  break;
      +
      1353  case FOURCC_vp08:
      +
      1354  case FOURCC_vp09:
      +
      1355  case FOURCC_vp10:
      +
      1356  codec_config_record.box_type = FOURCC_vpcC;
      +
      1357  break;
      +
      1358  default:
      +
      1359  LOG(ERROR) << FourCCToString(actual_format) << " is not supported.";
      +
      1360  return false;
      1361  }
      -
      1362  return true;
      -
      1363 }
      -
      1364 
      -
      1365 uint32_t ElementaryStreamDescriptor::ComputeSizeInternal() {
      -
      1366  // This box is optional. Skip it if not initialized.
      -
      1367  if (es_descriptor.object_type() == kForbidden)
      -
      1368  return 0;
      -
      1369  return HeaderSize() + es_descriptor.ComputeSize();
      -
      1370 }
      -
      1371 
      -
      1372 DTSSpecific::DTSSpecific()
      -
      1373  : sampling_frequency(0),
      -
      1374  max_bitrate(0),
      -
      1375  avg_bitrate(0),
      -
      1376  pcm_sample_depth(0) {}
      -
      1377 DTSSpecific::~DTSSpecific() {}
      -
      1378 FourCC DTSSpecific::BoxType() const { return FOURCC_ddts; }
      +
      1362  RCHECK(buffer->ReadWriteChild(&codec_config_record));
      +
      1363  RCHECK(buffer->TryReadWriteChild(&pixel_aspect));
      +
      1364  return true;
      +
      1365 }
      +
      1366 
      +
      1367 uint32_t VideoSampleEntry::ComputeSizeInternal() {
      +
      1368  return HeaderSize() + sizeof(data_reference_index) + sizeof(width) +
      +
      1369  sizeof(height) + sizeof(kVideoResolution) * 2 +
      +
      1370  sizeof(kVideoFrameCount) + sizeof(kVideoDepth) +
      +
      1371  pixel_aspect.ComputeSize() + sinf.ComputeSize() +
      +
      1372  codec_config_record.ComputeSize() + kCompressorNameSize + 6 + 4 + 16 +
      +
      1373  2; // 6 + 4 bytes reserved, 16 + 2 bytes predefined.
      +
      1374 }
      +
      1375 
      +
      1376 ElementaryStreamDescriptor::ElementaryStreamDescriptor() {}
      +
      1377 ElementaryStreamDescriptor::~ElementaryStreamDescriptor() {}
      +
      1378 FourCC ElementaryStreamDescriptor::BoxType() const { return FOURCC_esds; }
      1379 
      -
      1380 bool DTSSpecific::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1381  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1382  buffer->ReadWriteUInt32(&sampling_frequency) &&
      -
      1383  buffer->ReadWriteUInt32(&max_bitrate) &&
      -
      1384  buffer->ReadWriteUInt32(&avg_bitrate) &&
      -
      1385  buffer->ReadWriteUInt8(&pcm_sample_depth));
      -
      1386 
      -
      1387  if (buffer->Reading()) {
      -
      1388  RCHECK(buffer->ReadWriteVector(&extra_data, buffer->BytesLeft()));
      -
      1389  } else {
      -
      1390  if (extra_data.empty()) {
      -
      1391  extra_data.assign(kDdtsExtraData,
      -
      1392  kDdtsExtraData + sizeof(kDdtsExtraData));
      -
      1393  }
      -
      1394  RCHECK(buffer->ReadWriteVector(&extra_data, extra_data.size()));
      -
      1395  }
      -
      1396  return true;
      -
      1397 }
      -
      1398 
      -
      1399 uint32_t DTSSpecific::ComputeSizeInternal() {
      -
      1400  // This box is optional. Skip it if not initialized.
      -
      1401  if (sampling_frequency == 0)
      -
      1402  return 0;
      -
      1403  return HeaderSize() + sizeof(sampling_frequency) + sizeof(max_bitrate) +
      -
      1404  sizeof(avg_bitrate) + sizeof(pcm_sample_depth) +
      -
      1405  sizeof(kDdtsExtraData);
      -
      1406 }
      -
      1407 
      -
      1408 AC3Specific::AC3Specific() {}
      -
      1409 AC3Specific::~AC3Specific() {}
      -
      1410 
      -
      1411 FourCC AC3Specific::BoxType() const { return FOURCC_dac3; }
      -
      1412 
      -
      1413 bool AC3Specific::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1414  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1415  buffer->ReadWriteVector(
      -
      1416  &data, buffer->Reading() ? buffer->BytesLeft() : data.size()));
      -
      1417  return true;
      -
      1418 }
      -
      1419 
      -
      1420 uint32_t AC3Specific::ComputeSizeInternal() {
      -
      1421  // This box is optional. Skip it if not initialized.
      -
      1422  if (data.empty())
      -
      1423  return 0;
      -
      1424  return HeaderSize() + data.size();
      -
      1425 }
      -
      1426 
      -
      1427 EC3Specific::EC3Specific() {}
      -
      1428 EC3Specific::~EC3Specific() {}
      -
      1429 
      -
      1430 FourCC EC3Specific::BoxType() const { return FOURCC_dec3; }
      -
      1431 
      -
      1432 bool EC3Specific::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1433  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1434  uint32_t size = buffer->Reading() ? buffer->BytesLeft() : data.size();
      -
      1435  RCHECK(buffer->ReadWriteVector(&data, size));
      -
      1436  return true;
      -
      1437 }
      -
      1438 
      -
      1439 uint32_t EC3Specific::ComputeSizeInternal() {
      -
      1440  // This box is optional. Skip it if not initialized.
      -
      1441  if (data.empty())
      -
      1442  return 0;
      -
      1443  return HeaderSize() + data.size();
      -
      1444 }
      -
      1445 
      -
      1446 AudioSampleEntry::AudioSampleEntry()
      -
      1447  : format(FOURCC_NULL),
      -
      1448  data_reference_index(1),
      -
      1449  channelcount(2),
      -
      1450  samplesize(16),
      -
      1451  samplerate(0) {}
      -
      1452 
      -
      1453 AudioSampleEntry::~AudioSampleEntry() {}
      -
      1454 
      - -
      1456  if (format == FOURCC_NULL) {
      -
      1457  LOG(ERROR) << "AudioSampleEntry should be parsed according to the "
      -
      1458  << "handler type recovered in its Media ancestor.";
      -
      1459  }
      -
      1460  return format;
      -
      1461 }
      -
      1462 
      -
      1463 bool AudioSampleEntry::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1464  if (buffer->Reading()) {
      -
      1465  DCHECK(buffer->reader());
      -
      1466  format = buffer->reader()->type();
      -
      1467  } else {
      -
      1468  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1469  }
      +
      1380 bool ElementaryStreamDescriptor::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1381  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1382  if (buffer->Reading()) {
      +
      1383  std::vector<uint8_t> data;
      +
      1384  RCHECK(buffer->ReadWriteVector(&data, buffer->BytesLeft()));
      +
      1385  RCHECK(es_descriptor.Parse(data));
      +
      1386  if (es_descriptor.IsAAC()) {
      +
      1387  RCHECK(aac_audio_specific_config.Parse(
      +
      1388  es_descriptor.decoder_specific_info()));
      +
      1389  }
      +
      1390  } else {
      +
      1391  DCHECK(buffer->writer());
      +
      1392  es_descriptor.Write(buffer->writer());
      +
      1393  }
      +
      1394  return true;
      +
      1395 }
      +
      1396 
      +
      1397 uint32_t ElementaryStreamDescriptor::ComputeSizeInternal() {
      +
      1398  // This box is optional. Skip it if not initialized.
      +
      1399  if (es_descriptor.object_type() == kForbidden)
      +
      1400  return 0;
      +
      1401  return HeaderSize() + es_descriptor.ComputeSize();
      +
      1402 }
      +
      1403 
      +
      1404 DTSSpecific::DTSSpecific()
      +
      1405  : sampling_frequency(0),
      +
      1406  max_bitrate(0),
      +
      1407  avg_bitrate(0),
      +
      1408  pcm_sample_depth(0) {}
      +
      1409 DTSSpecific::~DTSSpecific() {}
      +
      1410 FourCC DTSSpecific::BoxType() const { return FOURCC_ddts; }
      +
      1411 
      +
      1412 bool DTSSpecific::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1413  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1414  buffer->ReadWriteUInt32(&sampling_frequency) &&
      +
      1415  buffer->ReadWriteUInt32(&max_bitrate) &&
      +
      1416  buffer->ReadWriteUInt32(&avg_bitrate) &&
      +
      1417  buffer->ReadWriteUInt8(&pcm_sample_depth));
      +
      1418 
      +
      1419  if (buffer->Reading()) {
      +
      1420  RCHECK(buffer->ReadWriteVector(&extra_data, buffer->BytesLeft()));
      +
      1421  } else {
      +
      1422  if (extra_data.empty()) {
      +
      1423  extra_data.assign(kDdtsExtraData,
      +
      1424  kDdtsExtraData + sizeof(kDdtsExtraData));
      +
      1425  }
      +
      1426  RCHECK(buffer->ReadWriteVector(&extra_data, extra_data.size()));
      +
      1427  }
      +
      1428  return true;
      +
      1429 }
      +
      1430 
      +
      1431 uint32_t DTSSpecific::ComputeSizeInternal() {
      +
      1432  // This box is optional. Skip it if not initialized.
      +
      1433  if (sampling_frequency == 0)
      +
      1434  return 0;
      +
      1435  return HeaderSize() + sizeof(sampling_frequency) + sizeof(max_bitrate) +
      +
      1436  sizeof(avg_bitrate) + sizeof(pcm_sample_depth) +
      +
      1437  sizeof(kDdtsExtraData);
      +
      1438 }
      +
      1439 
      +
      1440 AC3Specific::AC3Specific() {}
      +
      1441 AC3Specific::~AC3Specific() {}
      +
      1442 
      +
      1443 FourCC AC3Specific::BoxType() const { return FOURCC_dac3; }
      +
      1444 
      +
      1445 bool AC3Specific::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1446  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1447  buffer->ReadWriteVector(
      +
      1448  &data, buffer->Reading() ? buffer->BytesLeft() : data.size()));
      +
      1449  return true;
      +
      1450 }
      +
      1451 
      +
      1452 uint32_t AC3Specific::ComputeSizeInternal() {
      +
      1453  // This box is optional. Skip it if not initialized.
      +
      1454  if (data.empty())
      +
      1455  return 0;
      +
      1456  return HeaderSize() + data.size();
      +
      1457 }
      +
      1458 
      +
      1459 EC3Specific::EC3Specific() {}
      +
      1460 EC3Specific::~EC3Specific() {}
      +
      1461 
      +
      1462 FourCC EC3Specific::BoxType() const { return FOURCC_dec3; }
      +
      1463 
      +
      1464 bool EC3Specific::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1465  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1466  uint32_t size = buffer->Reading() ? buffer->BytesLeft() : data.size();
      +
      1467  RCHECK(buffer->ReadWriteVector(&data, size));
      +
      1468  return true;
      +
      1469 }
      1470 
      -
      1471  // Convert from integer to 16.16 fixed point for writing.
      -
      1472  samplerate <<= 16;
      -
      1473  RCHECK(buffer->IgnoreBytes(6) && // reserved.
      -
      1474  buffer->ReadWriteUInt16(&data_reference_index) &&
      -
      1475  buffer->IgnoreBytes(8) && // reserved.
      -
      1476  buffer->ReadWriteUInt16(&channelcount) &&
      -
      1477  buffer->ReadWriteUInt16(&samplesize) &&
      -
      1478  buffer->IgnoreBytes(4) && // predefined.
      -
      1479  buffer->ReadWriteUInt32(&samplerate));
      -
      1480  // Convert from 16.16 fixed point to integer.
      -
      1481  samplerate >>= 16;
      -
      1482 
      -
      1483  RCHECK(buffer->PrepareChildren());
      -
      1484  if (format == FOURCC_enca) {
      -
      1485  if (buffer->Reading()) {
      -
      1486  // Continue scanning until a recognized protection scheme is found,
      -
      1487  // or until we run out of protection schemes.
      -
      1488  while (sinf.type.type != FOURCC_cenc && sinf.type.type != FOURCC_cbc1) {
      -
      1489  if (!buffer->ReadWriteChild(&sinf))
      -
      1490  return false;
      -
      1491  }
      -
      1492  } else {
      -
      1493  RCHECK(buffer->ReadWriteChild(&sinf));
      -
      1494  }
      -
      1495  }
      -
      1496 
      -
      1497  RCHECK(buffer->TryReadWriteChild(&esds));
      -
      1498  RCHECK(buffer->TryReadWriteChild(&ddts));
      -
      1499  RCHECK(buffer->TryReadWriteChild(&dac3));
      -
      1500  RCHECK(buffer->TryReadWriteChild(&dec3));
      -
      1501  return true;
      -
      1502 }
      -
      1503 
      -
      1504 uint32_t AudioSampleEntry::ComputeSizeInternal() {
      -
      1505  return HeaderSize() + sizeof(data_reference_index) + sizeof(channelcount) +
      -
      1506  sizeof(samplesize) + sizeof(samplerate) + sinf.ComputeSize() +
      -
      1507  esds.ComputeSize() + ddts.ComputeSize() + dac3.ComputeSize() +
      -
      1508  dec3.ComputeSize() +
      -
      1509  6 + 8 + // 6 + 8 bytes reserved.
      -
      1510  4; // 4 bytes predefined.
      -
      1511 }
      -
      1512 
      -
      1513 WebVTTConfigurationBox::WebVTTConfigurationBox() {}
      -
      1514 WebVTTConfigurationBox::~WebVTTConfigurationBox() {}
      -
      1515 
      - -
      1517  return FOURCC_vttC;
      -
      1518 }
      -
      1519 
      -
      1520 bool WebVTTConfigurationBox::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1521  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1522  return buffer->ReadWriteString(
      -
      1523  &config,
      -
      1524  buffer->Reading() ? buffer->BytesLeft() : config.size());
      -
      1525 }
      -
      1526 
      -
      1527 uint32_t WebVTTConfigurationBox::ComputeSizeInternal() {
      -
      1528  return HeaderSize() + config.size();
      -
      1529 }
      -
      1530 
      -
      1531 WebVTTSourceLabelBox::WebVTTSourceLabelBox() {}
      -
      1532 WebVTTSourceLabelBox::~WebVTTSourceLabelBox() {}
      -
      1533 
      - -
      1535  return FOURCC_vlab;
      -
      1536 }
      -
      1537 
      -
      1538 bool WebVTTSourceLabelBox::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1539  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1540  return buffer->ReadWriteString(&source_label, buffer->Reading()
      -
      1541  ? buffer->BytesLeft()
      -
      1542  : source_label.size());
      +
      1471 uint32_t EC3Specific::ComputeSizeInternal() {
      +
      1472  // This box is optional. Skip it if not initialized.
      +
      1473  if (data.empty())
      +
      1474  return 0;
      +
      1475  return HeaderSize() + data.size();
      +
      1476 }
      +
      1477 
      +
      1478 AudioSampleEntry::AudioSampleEntry()
      +
      1479  : format(FOURCC_NULL),
      +
      1480  data_reference_index(1),
      +
      1481  channelcount(2),
      +
      1482  samplesize(16),
      +
      1483  samplerate(0) {}
      +
      1484 
      +
      1485 AudioSampleEntry::~AudioSampleEntry() {}
      +
      1486 
      + +
      1488  if (format == FOURCC_NULL) {
      +
      1489  LOG(ERROR) << "AudioSampleEntry should be parsed according to the "
      +
      1490  << "handler type recovered in its Media ancestor.";
      +
      1491  }
      +
      1492  return format;
      +
      1493 }
      +
      1494 
      +
      1495 bool AudioSampleEntry::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1496  if (buffer->Reading()) {
      +
      1497  DCHECK(buffer->reader());
      +
      1498  format = buffer->reader()->type();
      +
      1499  } else {
      +
      1500  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1501  }
      +
      1502 
      +
      1503  // Convert from integer to 16.16 fixed point for writing.
      +
      1504  samplerate <<= 16;
      +
      1505  RCHECK(buffer->IgnoreBytes(6) && // reserved.
      +
      1506  buffer->ReadWriteUInt16(&data_reference_index) &&
      +
      1507  buffer->IgnoreBytes(8) && // reserved.
      +
      1508  buffer->ReadWriteUInt16(&channelcount) &&
      +
      1509  buffer->ReadWriteUInt16(&samplesize) &&
      +
      1510  buffer->IgnoreBytes(4) && // predefined.
      +
      1511  buffer->ReadWriteUInt32(&samplerate));
      +
      1512  // Convert from 16.16 fixed point to integer.
      +
      1513  samplerate >>= 16;
      +
      1514 
      +
      1515  RCHECK(buffer->PrepareChildren());
      +
      1516  if (format == FOURCC_enca) {
      +
      1517  if (buffer->Reading()) {
      +
      1518  // Continue scanning until a recognized protection scheme is found,
      +
      1519  // or until we run out of protection schemes.
      +
      1520  while (sinf.type.type != FOURCC_cenc && sinf.type.type != FOURCC_cbc1) {
      +
      1521  if (!buffer->ReadWriteChild(&sinf))
      +
      1522  return false;
      +
      1523  }
      +
      1524  } else {
      +
      1525  RCHECK(buffer->ReadWriteChild(&sinf));
      +
      1526  }
      +
      1527  }
      +
      1528 
      +
      1529  RCHECK(buffer->TryReadWriteChild(&esds));
      +
      1530  RCHECK(buffer->TryReadWriteChild(&ddts));
      +
      1531  RCHECK(buffer->TryReadWriteChild(&dac3));
      +
      1532  RCHECK(buffer->TryReadWriteChild(&dec3));
      +
      1533  return true;
      +
      1534 }
      +
      1535 
      +
      1536 uint32_t AudioSampleEntry::ComputeSizeInternal() {
      +
      1537  return HeaderSize() + sizeof(data_reference_index) + sizeof(channelcount) +
      +
      1538  sizeof(samplesize) + sizeof(samplerate) + sinf.ComputeSize() +
      +
      1539  esds.ComputeSize() + ddts.ComputeSize() + dac3.ComputeSize() +
      +
      1540  dec3.ComputeSize() +
      +
      1541  6 + 8 + // 6 + 8 bytes reserved.
      +
      1542  4; // 4 bytes predefined.
      1543 }
      1544 
      -
      1545 uint32_t WebVTTSourceLabelBox::ComputeSizeInternal() {
      -
      1546  if (source_label.empty())
      -
      1547  return 0;
      -
      1548  return HeaderSize() + source_label.size();
      -
      1549 }
      -
      1550 
      -
      1551 TextSampleEntry::TextSampleEntry() : format(FOURCC_NULL) {}
      -
      1552 TextSampleEntry::~TextSampleEntry() {}
      -
      1553 
      - -
      1555  if (format == FOURCC_NULL) {
      -
      1556  LOG(ERROR) << "TextSampleEntry should be parsed according to the "
      -
      1557  << "handler type recovered in its Media ancestor.";
      -
      1558  }
      -
      1559  return format;
      -
      1560 }
      -
      1561 
      -
      1562 bool TextSampleEntry::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1563  if (buffer->Reading()) {
      -
      1564  DCHECK(buffer->reader());
      -
      1565  format = buffer->reader()->type();
      -
      1566  } else {
      -
      1567  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1568  }
      -
      1569  RCHECK(buffer->IgnoreBytes(6) && // reserved for SampleEntry.
      -
      1570  buffer->ReadWriteUInt16(&data_reference_index));
      -
      1571 
      -
      1572  if (format == FOURCC_wvtt) {
      -
      1573  // TODO(rkuroiwa): Handle the optional MPEG4BitRateBox.
      -
      1574  RCHECK(buffer->PrepareChildren() &&
      -
      1575  buffer->ReadWriteChild(&config) &&
      -
      1576  buffer->ReadWriteChild(&label));
      -
      1577  }
      -
      1578  return true;
      -
      1579 }
      -
      1580 
      -
      1581 uint32_t TextSampleEntry::ComputeSizeInternal() {
      -
      1582  // 6 for the (anonymous) reserved bytes for SampleEntry class.
      -
      1583  return HeaderSize() + 6 + sizeof(data_reference_index) +
      -
      1584  config.ComputeSize() + label.ComputeSize();
      -
      1585 }
      -
      1586 
      -
      1587 MediaHeader::MediaHeader()
      -
      1588  : creation_time(0), modification_time(0), timescale(0), duration(0) {}
      -
      1589 MediaHeader::~MediaHeader() {}
      -
      1590 FourCC MediaHeader::BoxType() const { return FOURCC_mdhd; }
      -
      1591 
      -
      1592 bool MediaHeader::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1593  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1594 
      -
      1595  uint8_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      1596  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
      -
      1597  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
      -
      1598  buffer->ReadWriteUInt32(&timescale) &&
      -
      1599  buffer->ReadWriteUInt64NBytes(&duration, num_bytes) &&
      -
      1600  language.ReadWrite(buffer) &&
      -
      1601  buffer->IgnoreBytes(2)); // predefined.
      -
      1602  return true;
      -
      1603 }
      -
      1604 
      -
      1605 uint32_t MediaHeader::ComputeSizeInternal() {
      -
      1606  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
      -
      1607  return HeaderSize() + sizeof(timescale) +
      -
      1608  sizeof(uint32_t) * (1 + version) * 3 + language.ComputeSize() +
      -
      1609  2; // 2 bytes predefined.
      -
      1610 }
      -
      1611 
      -
      1612 VideoMediaHeader::VideoMediaHeader()
      -
      1613  : graphicsmode(0), opcolor_red(0), opcolor_green(0), opcolor_blue(0) {
      -
      1614  const uint32_t kVideoMediaHeaderFlags = 1;
      -
      1615  flags = kVideoMediaHeaderFlags;
      -
      1616 }
      -
      1617 VideoMediaHeader::~VideoMediaHeader() {}
      -
      1618 FourCC VideoMediaHeader::BoxType() const { return FOURCC_vmhd; }
      -
      1619 bool VideoMediaHeader::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1620  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1621  buffer->ReadWriteUInt16(&graphicsmode) &&
      -
      1622  buffer->ReadWriteUInt16(&opcolor_red) &&
      -
      1623  buffer->ReadWriteUInt16(&opcolor_green) &&
      -
      1624  buffer->ReadWriteUInt16(&opcolor_blue));
      -
      1625  return true;
      -
      1626 }
      -
      1627 
      -
      1628 uint32_t VideoMediaHeader::ComputeSizeInternal() {
      -
      1629  return HeaderSize() + sizeof(graphicsmode) + sizeof(opcolor_red) +
      -
      1630  sizeof(opcolor_green) + sizeof(opcolor_blue);
      -
      1631 }
      -
      1632 
      -
      1633 SoundMediaHeader::SoundMediaHeader() : balance(0) {}
      -
      1634 SoundMediaHeader::~SoundMediaHeader() {}
      -
      1635 FourCC SoundMediaHeader::BoxType() const { return FOURCC_smhd; }
      -
      1636 bool SoundMediaHeader::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1637  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1638  buffer->ReadWriteUInt16(&balance) &&
      -
      1639  buffer->IgnoreBytes(2)); // reserved.
      -
      1640  return true;
      -
      1641 }
      -
      1642 
      -
      1643 uint32_t SoundMediaHeader::ComputeSizeInternal() {
      -
      1644  return HeaderSize() + sizeof(balance) + sizeof(uint16_t);
      -
      1645 }
      -
      1646 
      -
      1647 SubtitleMediaHeader::SubtitleMediaHeader() {}
      -
      1648 SubtitleMediaHeader::~SubtitleMediaHeader() {}
      -
      1649 
      -
      1650 FourCC SubtitleMediaHeader::BoxType() const { return FOURCC_sthd; }
      -
      1651 
      -
      1652 bool SubtitleMediaHeader::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1653  return ReadWriteHeaderInternal(buffer);
      -
      1654 }
      -
      1655 
      -
      1656 uint32_t SubtitleMediaHeader::ComputeSizeInternal() {
      -
      1657  return HeaderSize();
      +
      1545 WebVTTConfigurationBox::WebVTTConfigurationBox() {}
      +
      1546 WebVTTConfigurationBox::~WebVTTConfigurationBox() {}
      +
      1547 
      + +
      1549  return FOURCC_vttC;
      +
      1550 }
      +
      1551 
      +
      1552 bool WebVTTConfigurationBox::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1553  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1554  return buffer->ReadWriteString(
      +
      1555  &config,
      +
      1556  buffer->Reading() ? buffer->BytesLeft() : config.size());
      +
      1557 }
      +
      1558 
      +
      1559 uint32_t WebVTTConfigurationBox::ComputeSizeInternal() {
      +
      1560  return HeaderSize() + config.size();
      +
      1561 }
      +
      1562 
      +
      1563 WebVTTSourceLabelBox::WebVTTSourceLabelBox() {}
      +
      1564 WebVTTSourceLabelBox::~WebVTTSourceLabelBox() {}
      +
      1565 
      + +
      1567  return FOURCC_vlab;
      +
      1568 }
      +
      1569 
      +
      1570 bool WebVTTSourceLabelBox::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1571  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1572  return buffer->ReadWriteString(&source_label, buffer->Reading()
      +
      1573  ? buffer->BytesLeft()
      +
      1574  : source_label.size());
      +
      1575 }
      +
      1576 
      +
      1577 uint32_t WebVTTSourceLabelBox::ComputeSizeInternal() {
      +
      1578  if (source_label.empty())
      +
      1579  return 0;
      +
      1580  return HeaderSize() + source_label.size();
      +
      1581 }
      +
      1582 
      +
      1583 TextSampleEntry::TextSampleEntry() : format(FOURCC_NULL) {}
      +
      1584 TextSampleEntry::~TextSampleEntry() {}
      +
      1585 
      + +
      1587  if (format == FOURCC_NULL) {
      +
      1588  LOG(ERROR) << "TextSampleEntry should be parsed according to the "
      +
      1589  << "handler type recovered in its Media ancestor.";
      +
      1590  }
      +
      1591  return format;
      +
      1592 }
      +
      1593 
      +
      1594 bool TextSampleEntry::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1595  if (buffer->Reading()) {
      +
      1596  DCHECK(buffer->reader());
      +
      1597  format = buffer->reader()->type();
      +
      1598  } else {
      +
      1599  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1600  }
      +
      1601  RCHECK(buffer->IgnoreBytes(6) && // reserved for SampleEntry.
      +
      1602  buffer->ReadWriteUInt16(&data_reference_index));
      +
      1603 
      +
      1604  if (format == FOURCC_wvtt) {
      +
      1605  // TODO(rkuroiwa): Handle the optional MPEG4BitRateBox.
      +
      1606  RCHECK(buffer->PrepareChildren() &&
      +
      1607  buffer->ReadWriteChild(&config) &&
      +
      1608  buffer->ReadWriteChild(&label));
      +
      1609  }
      +
      1610  return true;
      +
      1611 }
      +
      1612 
      +
      1613 uint32_t TextSampleEntry::ComputeSizeInternal() {
      +
      1614  // 6 for the (anonymous) reserved bytes for SampleEntry class.
      +
      1615  return HeaderSize() + 6 + sizeof(data_reference_index) +
      +
      1616  config.ComputeSize() + label.ComputeSize();
      +
      1617 }
      +
      1618 
      +
      1619 MediaHeader::MediaHeader()
      +
      1620  : creation_time(0), modification_time(0), timescale(0), duration(0) {}
      +
      1621 MediaHeader::~MediaHeader() {}
      +
      1622 FourCC MediaHeader::BoxType() const { return FOURCC_mdhd; }
      +
      1623 
      +
      1624 bool MediaHeader::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1625  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1626 
      +
      1627  uint8_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      1628  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
      +
      1629  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
      +
      1630  buffer->ReadWriteUInt32(&timescale) &&
      +
      1631  buffer->ReadWriteUInt64NBytes(&duration, num_bytes) &&
      +
      1632  language.ReadWrite(buffer) &&
      +
      1633  buffer->IgnoreBytes(2)); // predefined.
      +
      1634  return true;
      +
      1635 }
      +
      1636 
      +
      1637 uint32_t MediaHeader::ComputeSizeInternal() {
      +
      1638  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
      +
      1639  return HeaderSize() + sizeof(timescale) +
      +
      1640  sizeof(uint32_t) * (1 + version) * 3 + language.ComputeSize() +
      +
      1641  2; // 2 bytes predefined.
      +
      1642 }
      +
      1643 
      +
      1644 VideoMediaHeader::VideoMediaHeader()
      +
      1645  : graphicsmode(0), opcolor_red(0), opcolor_green(0), opcolor_blue(0) {
      +
      1646  const uint32_t kVideoMediaHeaderFlags = 1;
      +
      1647  flags = kVideoMediaHeaderFlags;
      +
      1648 }
      +
      1649 VideoMediaHeader::~VideoMediaHeader() {}
      +
      1650 FourCC VideoMediaHeader::BoxType() const { return FOURCC_vmhd; }
      +
      1651 bool VideoMediaHeader::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1652  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1653  buffer->ReadWriteUInt16(&graphicsmode) &&
      +
      1654  buffer->ReadWriteUInt16(&opcolor_red) &&
      +
      1655  buffer->ReadWriteUInt16(&opcolor_green) &&
      +
      1656  buffer->ReadWriteUInt16(&opcolor_blue));
      +
      1657  return true;
      1658 }
      1659 
      -
      1660 DataEntryUrl::DataEntryUrl() {
      -
      1661  const uint32_t kDataEntryUrlFlags = 1;
      -
      1662  flags = kDataEntryUrlFlags;
      +
      1660 uint32_t VideoMediaHeader::ComputeSizeInternal() {
      +
      1661  return HeaderSize() + sizeof(graphicsmode) + sizeof(opcolor_red) +
      +
      1662  sizeof(opcolor_green) + sizeof(opcolor_blue);
      1663 }
      -
      1664 DataEntryUrl::~DataEntryUrl() {}
      -
      1665 FourCC DataEntryUrl::BoxType() const { return FOURCC_url; }
      -
      1666 bool DataEntryUrl::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1667  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1668  if (buffer->Reading()) {
      -
      1669  RCHECK(buffer->ReadWriteVector(&location, buffer->BytesLeft()));
      -
      1670  } else {
      -
      1671  RCHECK(buffer->ReadWriteVector(&location, location.size()));
      -
      1672  }
      -
      1673  return true;
      -
      1674 }
      -
      1675 
      -
      1676 uint32_t DataEntryUrl::ComputeSizeInternal() {
      -
      1677  return HeaderSize() + location.size();
      -
      1678 }
      -
      1679 
      -
      1680 DataReference::DataReference() {
      -
      1681  // Default 1 entry.
      -
      1682  data_entry.resize(1);
      -
      1683 }
      -
      1684 DataReference::~DataReference() {}
      -
      1685 FourCC DataReference::BoxType() const { return FOURCC_dref; }
      -
      1686 bool DataReference::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1687  uint32_t entry_count = data_entry.size();
      -
      1688  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1689  buffer->ReadWriteUInt32(&entry_count));
      -
      1690  data_entry.resize(entry_count);
      -
      1691  RCHECK(buffer->PrepareChildren());
      -
      1692  for (uint32_t i = 0; i < entry_count; ++i)
      -
      1693  RCHECK(buffer->ReadWriteChild(&data_entry[i]));
      -
      1694  return true;
      +
      1664 
      +
      1665 SoundMediaHeader::SoundMediaHeader() : balance(0) {}
      +
      1666 SoundMediaHeader::~SoundMediaHeader() {}
      +
      1667 FourCC SoundMediaHeader::BoxType() const { return FOURCC_smhd; }
      +
      1668 bool SoundMediaHeader::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1669  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1670  buffer->ReadWriteUInt16(&balance) &&
      +
      1671  buffer->IgnoreBytes(2)); // reserved.
      +
      1672  return true;
      +
      1673 }
      +
      1674 
      +
      1675 uint32_t SoundMediaHeader::ComputeSizeInternal() {
      +
      1676  return HeaderSize() + sizeof(balance) + sizeof(uint16_t);
      +
      1677 }
      +
      1678 
      +
      1679 SubtitleMediaHeader::SubtitleMediaHeader() {}
      +
      1680 SubtitleMediaHeader::~SubtitleMediaHeader() {}
      +
      1681 
      +
      1682 FourCC SubtitleMediaHeader::BoxType() const { return FOURCC_sthd; }
      +
      1683 
      +
      1684 bool SubtitleMediaHeader::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1685  return ReadWriteHeaderInternal(buffer);
      +
      1686 }
      +
      1687 
      +
      1688 uint32_t SubtitleMediaHeader::ComputeSizeInternal() {
      +
      1689  return HeaderSize();
      +
      1690 }
      +
      1691 
      +
      1692 DataEntryUrl::DataEntryUrl() {
      +
      1693  const uint32_t kDataEntryUrlFlags = 1;
      +
      1694  flags = kDataEntryUrlFlags;
      1695 }
      -
      1696 
      -
      1697 uint32_t DataReference::ComputeSizeInternal() {
      -
      1698  uint32_t count = data_entry.size();
      -
      1699  uint32_t box_size = HeaderSize() + sizeof(count);
      -
      1700  for (uint32_t i = 0; i < count; ++i)
      -
      1701  box_size += data_entry[i].ComputeSize();
      -
      1702  return box_size;
      -
      1703 }
      -
      1704 
      -
      1705 DataInformation::DataInformation() {}
      -
      1706 DataInformation::~DataInformation() {}
      -
      1707 FourCC DataInformation::BoxType() const { return FOURCC_dinf; }
      -
      1708 
      -
      1709 bool DataInformation::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1710  return ReadWriteHeaderInternal(buffer) &&
      -
      1711  buffer->PrepareChildren() &&
      -
      1712  buffer->ReadWriteChild(&dref);
      -
      1713 }
      -
      1714 
      -
      1715 uint32_t DataInformation::ComputeSizeInternal() {
      -
      1716  return HeaderSize() + dref.ComputeSize();
      -
      1717 }
      -
      1718 
      -
      1719 MediaInformation::MediaInformation() {}
      -
      1720 MediaInformation::~MediaInformation() {}
      -
      1721 FourCC MediaInformation::BoxType() const { return FOURCC_minf; }
      -
      1722 
      -
      1723 bool MediaInformation::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1724  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1725  buffer->PrepareChildren() &&
      -
      1726  buffer->ReadWriteChild(&dinf) &&
      -
      1727  buffer->ReadWriteChild(&sample_table));
      -
      1728  switch (sample_table.description.type) {
      -
      1729  case kVideo:
      -
      1730  RCHECK(buffer->ReadWriteChild(&vmhd));
      -
      1731  break;
      -
      1732  case kAudio:
      -
      1733  RCHECK(buffer->ReadWriteChild(&smhd));
      -
      1734  break;
      -
      1735  case kText:
      -
      1736  RCHECK(buffer->TryReadWriteChild(&sthd));
      -
      1737  break;
      -
      1738  default:
      -
      1739  NOTIMPLEMENTED();
      -
      1740  }
      -
      1741  // Hint is not supported for now.
      -
      1742  return true;
      -
      1743 }
      -
      1744 
      -
      1745 uint32_t MediaInformation::ComputeSizeInternal() {
      -
      1746  uint32_t box_size =
      -
      1747  HeaderSize() + dinf.ComputeSize() + sample_table.ComputeSize();
      -
      1748  switch (sample_table.description.type) {
      -
      1749  case kVideo:
      -
      1750  box_size += vmhd.ComputeSize();
      -
      1751  break;
      -
      1752  case kAudio:
      -
      1753  box_size += smhd.ComputeSize();
      -
      1754  break;
      -
      1755  case kText:
      -
      1756  box_size += sthd.ComputeSize();
      -
      1757  break;
      -
      1758  default:
      -
      1759  NOTIMPLEMENTED();
      -
      1760  }
      -
      1761  return box_size;
      -
      1762 }
      -
      1763 
      -
      1764 Media::Media() {}
      -
      1765 Media::~Media() {}
      -
      1766 FourCC Media::BoxType() const { return FOURCC_mdia; }
      -
      1767 
      -
      1768 bool Media::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1769  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1770  buffer->PrepareChildren() &&
      -
      1771  buffer->ReadWriteChild(&header));
      -
      1772  if (buffer->Reading()) {
      -
      1773  RCHECK(buffer->ReadWriteChild(&handler));
      -
      1774  // Maddeningly, the HandlerReference box specifies how to parse the
      -
      1775  // SampleDescription box, making the latter the only box (of those that we
      -
      1776  // support) which cannot be parsed correctly on its own (or even with
      -
      1777  // information from its strict ancestor tree). We thus copy the handler type
      -
      1778  // to the sample description box *before* parsing it to provide this
      -
      1779  // information while parsing.
      -
      1780  information.sample_table.description.type =
      -
      1781  FourCCToTrackType(handler.handler_type);
      -
      1782  } else {
      -
      1783  handler.handler_type =
      -
      1784  TrackTypeToFourCC(information.sample_table.description.type);
      -
      1785  RCHECK(handler.handler_type != FOURCC_NULL);
      -
      1786  RCHECK(buffer->ReadWriteChild(&handler));
      -
      1787  }
      -
      1788  RCHECK(buffer->ReadWriteChild(&information));
      -
      1789  return true;
      -
      1790 }
      -
      1791 
      -
      1792 uint32_t Media::ComputeSizeInternal() {
      -
      1793  handler.handler_type =
      -
      1794  TrackTypeToFourCC(information.sample_table.description.type);
      -
      1795  return HeaderSize() + header.ComputeSize() + handler.ComputeSize() +
      -
      1796  information.ComputeSize();
      -
      1797 }
      -
      1798 
      -
      1799 Track::Track() {}
      -
      1800 Track::~Track() {}
      -
      1801 FourCC Track::BoxType() const { return FOURCC_trak; }
      -
      1802 
      -
      1803 bool Track::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1804  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1805  buffer->PrepareChildren() &&
      -
      1806  buffer->ReadWriteChild(&header) &&
      -
      1807  buffer->ReadWriteChild(&media) &&
      -
      1808  buffer->TryReadWriteChild(&edit) &&
      -
      1809  buffer->TryReadWriteChild(&sample_encryption));
      -
      1810  return true;
      -
      1811 }
      -
      1812 
      -
      1813 uint32_t Track::ComputeSizeInternal() {
      -
      1814  return HeaderSize() + header.ComputeSize() + media.ComputeSize() +
      -
      1815  edit.ComputeSize();
      -
      1816 }
      -
      1817 
      -
      1818 MovieExtendsHeader::MovieExtendsHeader() : fragment_duration(0) {}
      -
      1819 MovieExtendsHeader::~MovieExtendsHeader() {}
      -
      1820 FourCC MovieExtendsHeader::BoxType() const { return FOURCC_mehd; }
      -
      1821 
      -
      1822 bool MovieExtendsHeader::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1823  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1824  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      1825  RCHECK(buffer->ReadWriteUInt64NBytes(&fragment_duration, num_bytes));
      -
      1826  return true;
      -
      1827 }
      -
      1828 
      -
      1829 uint32_t MovieExtendsHeader::ComputeSizeInternal() {
      -
      1830  // This box is optional. Skip it if it is not used.
      -
      1831  if (fragment_duration == 0)
      -
      1832  return 0;
      -
      1833  version = IsFitIn32Bits(fragment_duration) ? 0 : 1;
      -
      1834  return HeaderSize() + sizeof(uint32_t) * (1 + version);
      -
      1835 }
      -
      1836 
      -
      1837 TrackExtends::TrackExtends()
      -
      1838  : track_id(0),
      -
      1839  default_sample_description_index(0),
      -
      1840  default_sample_duration(0),
      -
      1841  default_sample_size(0),
      -
      1842  default_sample_flags(0) {}
      -
      1843 TrackExtends::~TrackExtends() {}
      -
      1844 FourCC TrackExtends::BoxType() const { return FOURCC_trex; }
      -
      1845 
      -
      1846 bool TrackExtends::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1847  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1848  buffer->ReadWriteUInt32(&track_id) &&
      -
      1849  buffer->ReadWriteUInt32(&default_sample_description_index) &&
      -
      1850  buffer->ReadWriteUInt32(&default_sample_duration) &&
      -
      1851  buffer->ReadWriteUInt32(&default_sample_size) &&
      -
      1852  buffer->ReadWriteUInt32(&default_sample_flags));
      -
      1853  return true;
      -
      1854 }
      -
      1855 
      -
      1856 uint32_t TrackExtends::ComputeSizeInternal() {
      -
      1857  return HeaderSize() + sizeof(track_id) +
      -
      1858  sizeof(default_sample_description_index) +
      -
      1859  sizeof(default_sample_duration) + sizeof(default_sample_size) +
      -
      1860  sizeof(default_sample_flags);
      -
      1861 }
      -
      1862 
      -
      1863 MovieExtends::MovieExtends() {}
      -
      1864 MovieExtends::~MovieExtends() {}
      -
      1865 FourCC MovieExtends::BoxType() const { return FOURCC_mvex; }
      -
      1866 
      -
      1867 bool MovieExtends::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1868  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1869  buffer->PrepareChildren() &&
      -
      1870  buffer->TryReadWriteChild(&header));
      -
      1871  if (buffer->Reading()) {
      -
      1872  DCHECK(buffer->reader());
      -
      1873  RCHECK(buffer->reader()->ReadChildren(&tracks));
      -
      1874  } else {
      -
      1875  for (uint32_t i = 0; i < tracks.size(); ++i)
      -
      1876  RCHECK(buffer->ReadWriteChild(&tracks[i]));
      -
      1877  }
      -
      1878  return true;
      -
      1879 }
      -
      1880 
      -
      1881 uint32_t MovieExtends::ComputeSizeInternal() {
      -
      1882  // This box is optional. Skip it if it does not contain any track.
      -
      1883  if (tracks.size() == 0)
      -
      1884  return 0;
      -
      1885  uint32_t box_size = HeaderSize() + header.ComputeSize();
      -
      1886  for (uint32_t i = 0; i < tracks.size(); ++i)
      -
      1887  box_size += tracks[i].ComputeSize();
      -
      1888  return box_size;
      -
      1889 }
      -
      1890 
      -
      1891 Movie::Movie() {}
      -
      1892 Movie::~Movie() {}
      -
      1893 FourCC Movie::BoxType() const { return FOURCC_moov; }
      +
      1696 DataEntryUrl::~DataEntryUrl() {}
      +
      1697 FourCC DataEntryUrl::BoxType() const { return FOURCC_url; }
      +
      1698 bool DataEntryUrl::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1699  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1700  if (buffer->Reading()) {
      +
      1701  RCHECK(buffer->ReadWriteVector(&location, buffer->BytesLeft()));
      +
      1702  } else {
      +
      1703  RCHECK(buffer->ReadWriteVector(&location, location.size()));
      +
      1704  }
      +
      1705  return true;
      +
      1706 }
      +
      1707 
      +
      1708 uint32_t DataEntryUrl::ComputeSizeInternal() {
      +
      1709  return HeaderSize() + location.size();
      +
      1710 }
      +
      1711 
      +
      1712 DataReference::DataReference() {
      +
      1713  // Default 1 entry.
      +
      1714  data_entry.resize(1);
      +
      1715 }
      +
      1716 DataReference::~DataReference() {}
      +
      1717 FourCC DataReference::BoxType() const { return FOURCC_dref; }
      +
      1718 bool DataReference::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1719  uint32_t entry_count = data_entry.size();
      +
      1720  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1721  buffer->ReadWriteUInt32(&entry_count));
      +
      1722  data_entry.resize(entry_count);
      +
      1723  RCHECK(buffer->PrepareChildren());
      +
      1724  for (uint32_t i = 0; i < entry_count; ++i)
      +
      1725  RCHECK(buffer->ReadWriteChild(&data_entry[i]));
      +
      1726  return true;
      +
      1727 }
      +
      1728 
      +
      1729 uint32_t DataReference::ComputeSizeInternal() {
      +
      1730  uint32_t count = data_entry.size();
      +
      1731  uint32_t box_size = HeaderSize() + sizeof(count);
      +
      1732  for (uint32_t i = 0; i < count; ++i)
      +
      1733  box_size += data_entry[i].ComputeSize();
      +
      1734  return box_size;
      +
      1735 }
      +
      1736 
      +
      1737 DataInformation::DataInformation() {}
      +
      1738 DataInformation::~DataInformation() {}
      +
      1739 FourCC DataInformation::BoxType() const { return FOURCC_dinf; }
      +
      1740 
      +
      1741 bool DataInformation::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1742  return ReadWriteHeaderInternal(buffer) &&
      +
      1743  buffer->PrepareChildren() &&
      +
      1744  buffer->ReadWriteChild(&dref);
      +
      1745 }
      +
      1746 
      +
      1747 uint32_t DataInformation::ComputeSizeInternal() {
      +
      1748  return HeaderSize() + dref.ComputeSize();
      +
      1749 }
      +
      1750 
      +
      1751 MediaInformation::MediaInformation() {}
      +
      1752 MediaInformation::~MediaInformation() {}
      +
      1753 FourCC MediaInformation::BoxType() const { return FOURCC_minf; }
      +
      1754 
      +
      1755 bool MediaInformation::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1756  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1757  buffer->PrepareChildren() &&
      +
      1758  buffer->ReadWriteChild(&dinf) &&
      +
      1759  buffer->ReadWriteChild(&sample_table));
      +
      1760  switch (sample_table.description.type) {
      +
      1761  case kVideo:
      +
      1762  RCHECK(buffer->ReadWriteChild(&vmhd));
      +
      1763  break;
      +
      1764  case kAudio:
      +
      1765  RCHECK(buffer->ReadWriteChild(&smhd));
      +
      1766  break;
      +
      1767  case kText:
      +
      1768  RCHECK(buffer->TryReadWriteChild(&sthd));
      +
      1769  break;
      +
      1770  default:
      +
      1771  NOTIMPLEMENTED();
      +
      1772  }
      +
      1773  // Hint is not supported for now.
      +
      1774  return true;
      +
      1775 }
      +
      1776 
      +
      1777 uint32_t MediaInformation::ComputeSizeInternal() {
      +
      1778  uint32_t box_size =
      +
      1779  HeaderSize() + dinf.ComputeSize() + sample_table.ComputeSize();
      +
      1780  switch (sample_table.description.type) {
      +
      1781  case kVideo:
      +
      1782  box_size += vmhd.ComputeSize();
      +
      1783  break;
      +
      1784  case kAudio:
      +
      1785  box_size += smhd.ComputeSize();
      +
      1786  break;
      +
      1787  case kText:
      +
      1788  box_size += sthd.ComputeSize();
      +
      1789  break;
      +
      1790  default:
      +
      1791  NOTIMPLEMENTED();
      +
      1792  }
      +
      1793  return box_size;
      +
      1794 }
      +
      1795 
      +
      1796 Media::Media() {}
      +
      1797 Media::~Media() {}
      +
      1798 FourCC Media::BoxType() const { return FOURCC_mdia; }
      +
      1799 
      +
      1800 bool Media::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1801  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1802  buffer->PrepareChildren() &&
      +
      1803  buffer->ReadWriteChild(&header));
      +
      1804  if (buffer->Reading()) {
      +
      1805  RCHECK(buffer->ReadWriteChild(&handler));
      +
      1806  // Maddeningly, the HandlerReference box specifies how to parse the
      +
      1807  // SampleDescription box, making the latter the only box (of those that we
      +
      1808  // support) which cannot be parsed correctly on its own (or even with
      +
      1809  // information from its strict ancestor tree). We thus copy the handler type
      +
      1810  // to the sample description box *before* parsing it to provide this
      +
      1811  // information while parsing.
      +
      1812  information.sample_table.description.type =
      +
      1813  FourCCToTrackType(handler.handler_type);
      +
      1814  } else {
      +
      1815  handler.handler_type =
      +
      1816  TrackTypeToFourCC(information.sample_table.description.type);
      +
      1817  RCHECK(handler.handler_type != FOURCC_NULL);
      +
      1818  RCHECK(buffer->ReadWriteChild(&handler));
      +
      1819  }
      +
      1820  RCHECK(buffer->ReadWriteChild(&information));
      +
      1821  return true;
      +
      1822 }
      +
      1823 
      +
      1824 uint32_t Media::ComputeSizeInternal() {
      +
      1825  handler.handler_type =
      +
      1826  TrackTypeToFourCC(information.sample_table.description.type);
      +
      1827  return HeaderSize() + header.ComputeSize() + handler.ComputeSize() +
      +
      1828  information.ComputeSize();
      +
      1829 }
      +
      1830 
      +
      1831 Track::Track() {}
      +
      1832 Track::~Track() {}
      +
      1833 FourCC Track::BoxType() const { return FOURCC_trak; }
      +
      1834 
      +
      1835 bool Track::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1836  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1837  buffer->PrepareChildren() &&
      +
      1838  buffer->ReadWriteChild(&header) &&
      +
      1839  buffer->ReadWriteChild(&media) &&
      +
      1840  buffer->TryReadWriteChild(&edit) &&
      +
      1841  buffer->TryReadWriteChild(&sample_encryption));
      +
      1842  return true;
      +
      1843 }
      +
      1844 
      +
      1845 uint32_t Track::ComputeSizeInternal() {
      +
      1846  return HeaderSize() + header.ComputeSize() + media.ComputeSize() +
      +
      1847  edit.ComputeSize();
      +
      1848 }
      +
      1849 
      +
      1850 MovieExtendsHeader::MovieExtendsHeader() : fragment_duration(0) {}
      +
      1851 MovieExtendsHeader::~MovieExtendsHeader() {}
      +
      1852 FourCC MovieExtendsHeader::BoxType() const { return FOURCC_mehd; }
      +
      1853 
      +
      1854 bool MovieExtendsHeader::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1855  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1856  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      1857  RCHECK(buffer->ReadWriteUInt64NBytes(&fragment_duration, num_bytes));
      +
      1858  return true;
      +
      1859 }
      +
      1860 
      +
      1861 uint32_t MovieExtendsHeader::ComputeSizeInternal() {
      +
      1862  // This box is optional. Skip it if it is not used.
      +
      1863  if (fragment_duration == 0)
      +
      1864  return 0;
      +
      1865  version = IsFitIn32Bits(fragment_duration) ? 0 : 1;
      +
      1866  return HeaderSize() + sizeof(uint32_t) * (1 + version);
      +
      1867 }
      +
      1868 
      +
      1869 TrackExtends::TrackExtends()
      +
      1870  : track_id(0),
      +
      1871  default_sample_description_index(0),
      +
      1872  default_sample_duration(0),
      +
      1873  default_sample_size(0),
      +
      1874  default_sample_flags(0) {}
      +
      1875 TrackExtends::~TrackExtends() {}
      +
      1876 FourCC TrackExtends::BoxType() const { return FOURCC_trex; }
      +
      1877 
      +
      1878 bool TrackExtends::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1879  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1880  buffer->ReadWriteUInt32(&track_id) &&
      +
      1881  buffer->ReadWriteUInt32(&default_sample_description_index) &&
      +
      1882  buffer->ReadWriteUInt32(&default_sample_duration) &&
      +
      1883  buffer->ReadWriteUInt32(&default_sample_size) &&
      +
      1884  buffer->ReadWriteUInt32(&default_sample_flags));
      +
      1885  return true;
      +
      1886 }
      +
      1887 
      +
      1888 uint32_t TrackExtends::ComputeSizeInternal() {
      +
      1889  return HeaderSize() + sizeof(track_id) +
      +
      1890  sizeof(default_sample_description_index) +
      +
      1891  sizeof(default_sample_duration) + sizeof(default_sample_size) +
      +
      1892  sizeof(default_sample_flags);
      +
      1893 }
      1894 
      -
      1895 bool Movie::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1896  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1897  buffer->PrepareChildren() &&
      -
      1898  buffer->ReadWriteChild(&header) &&
      -
      1899  buffer->TryReadWriteChild(&metadata) &&
      -
      1900  buffer->TryReadWriteChild(&extends));
      -
      1901  if (buffer->Reading()) {
      -
      1902  BoxReader* reader = buffer->reader();
      -
      1903  DCHECK(reader);
      -
      1904  RCHECK(reader->ReadChildren(&tracks) &&
      -
      1905  reader->TryReadChildren(&pssh));
      +
      1895 MovieExtends::MovieExtends() {}
      +
      1896 MovieExtends::~MovieExtends() {}
      +
      1897 FourCC MovieExtends::BoxType() const { return FOURCC_mvex; }
      +
      1898 
      +
      1899 bool MovieExtends::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1900  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1901  buffer->PrepareChildren() &&
      +
      1902  buffer->TryReadWriteChild(&header));
      +
      1903  if (buffer->Reading()) {
      +
      1904  DCHECK(buffer->reader());
      +
      1905  RCHECK(buffer->reader()->ReadChildren(&tracks));
      1906  } else {
      1907  for (uint32_t i = 0; i < tracks.size(); ++i)
      1908  RCHECK(buffer->ReadWriteChild(&tracks[i]));
      -
      1909  for (uint32_t i = 0; i < pssh.size(); ++i)
      -
      1910  RCHECK(buffer->ReadWriteChild(&pssh[i]));
      -
      1911  }
      -
      1912  return true;
      -
      1913 }
      -
      1914 
      -
      1915 uint32_t Movie::ComputeSizeInternal() {
      -
      1916  uint32_t box_size = HeaderSize() + header.ComputeSize() +
      -
      1917  metadata.ComputeSize() + extends.ComputeSize();
      +
      1909  }
      +
      1910  return true;
      +
      1911 }
      +
      1912 
      +
      1913 uint32_t MovieExtends::ComputeSizeInternal() {
      +
      1914  // This box is optional. Skip it if it does not contain any track.
      +
      1915  if (tracks.size() == 0)
      +
      1916  return 0;
      +
      1917  uint32_t box_size = HeaderSize() + header.ComputeSize();
      1918  for (uint32_t i = 0; i < tracks.size(); ++i)
      1919  box_size += tracks[i].ComputeSize();
      -
      1920  for (uint32_t i = 0; i < pssh.size(); ++i)
      -
      1921  box_size += pssh[i].ComputeSize();
      -
      1922  return box_size;
      -
      1923 }
      -
      1924 
      -
      1925 TrackFragmentDecodeTime::TrackFragmentDecodeTime() : decode_time(0) {}
      -
      1926 TrackFragmentDecodeTime::~TrackFragmentDecodeTime() {}
      -
      1927 FourCC TrackFragmentDecodeTime::BoxType() const { return FOURCC_tfdt; }
      -
      1928 
      -
      1929 bool TrackFragmentDecodeTime::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1930  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      1931  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      1932  RCHECK(buffer->ReadWriteUInt64NBytes(&decode_time, num_bytes));
      -
      1933  return true;
      -
      1934 }
      -
      1935 
      -
      1936 uint32_t TrackFragmentDecodeTime::ComputeSizeInternal() {
      -
      1937  version = IsFitIn32Bits(decode_time) ? 0 : 1;
      -
      1938  return HeaderSize() + sizeof(uint32_t) * (1 + version);
      -
      1939 }
      -
      1940 
      -
      1941 MovieFragmentHeader::MovieFragmentHeader() : sequence_number(0) {}
      -
      1942 MovieFragmentHeader::~MovieFragmentHeader() {}
      -
      1943 FourCC MovieFragmentHeader::BoxType() const { return FOURCC_mfhd; }
      -
      1944 
      -
      1945 bool MovieFragmentHeader::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1946  return ReadWriteHeaderInternal(buffer) &&
      -
      1947  buffer->ReadWriteUInt32(&sequence_number);
      -
      1948 }
      -
      1949 
      -
      1950 uint32_t MovieFragmentHeader::ComputeSizeInternal() {
      -
      1951  return HeaderSize() + sizeof(sequence_number);
      -
      1952 }
      -
      1953 
      -
      1954 TrackFragmentHeader::TrackFragmentHeader()
      -
      1955  : track_id(0),
      -
      1956  sample_description_index(0),
      -
      1957  default_sample_duration(0),
      -
      1958  default_sample_size(0),
      -
      1959  default_sample_flags(0) {}
      +
      1920  return box_size;
      +
      1921 }
      +
      1922 
      +
      1923 Movie::Movie() {}
      +
      1924 Movie::~Movie() {}
      +
      1925 FourCC Movie::BoxType() const { return FOURCC_moov; }
      +
      1926 
      +
      1927 bool Movie::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1928  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1929  buffer->PrepareChildren() &&
      +
      1930  buffer->ReadWriteChild(&header) &&
      +
      1931  buffer->TryReadWriteChild(&metadata) &&
      +
      1932  buffer->TryReadWriteChild(&extends));
      +
      1933  if (buffer->Reading()) {
      +
      1934  BoxReader* reader = buffer->reader();
      +
      1935  DCHECK(reader);
      +
      1936  RCHECK(reader->ReadChildren(&tracks) &&
      +
      1937  reader->TryReadChildren(&pssh));
      +
      1938  } else {
      +
      1939  for (uint32_t i = 0; i < tracks.size(); ++i)
      +
      1940  RCHECK(buffer->ReadWriteChild(&tracks[i]));
      +
      1941  for (uint32_t i = 0; i < pssh.size(); ++i)
      +
      1942  RCHECK(buffer->ReadWriteChild(&pssh[i]));
      +
      1943  }
      +
      1944  return true;
      +
      1945 }
      +
      1946 
      +
      1947 uint32_t Movie::ComputeSizeInternal() {
      +
      1948  uint32_t box_size = HeaderSize() + header.ComputeSize() +
      +
      1949  metadata.ComputeSize() + extends.ComputeSize();
      +
      1950  for (uint32_t i = 0; i < tracks.size(); ++i)
      +
      1951  box_size += tracks[i].ComputeSize();
      +
      1952  for (uint32_t i = 0; i < pssh.size(); ++i)
      +
      1953  box_size += pssh[i].ComputeSize();
      +
      1954  return box_size;
      +
      1955 }
      +
      1956 
      +
      1957 TrackFragmentDecodeTime::TrackFragmentDecodeTime() : decode_time(0) {}
      +
      1958 TrackFragmentDecodeTime::~TrackFragmentDecodeTime() {}
      +
      1959 FourCC TrackFragmentDecodeTime::BoxType() const { return FOURCC_tfdt; }
      1960 
      -
      1961 TrackFragmentHeader::~TrackFragmentHeader() {}
      -
      1962 FourCC TrackFragmentHeader::BoxType() const { return FOURCC_tfhd; }
      -
      1963 
      -
      1964 bool TrackFragmentHeader::ReadWriteInternal(BoxBuffer* buffer) {
      -
      1965  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      1966  buffer->ReadWriteUInt32(&track_id));
      +
      1961 bool TrackFragmentDecodeTime::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1962  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      1963  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      1964  RCHECK(buffer->ReadWriteUInt64NBytes(&decode_time, num_bytes));
      +
      1965  return true;
      +
      1966 }
      1967 
      -
      1968  if (flags & kBaseDataOffsetPresentMask) {
      -
      1969  // MSE requires 'default-base-is-moof' to be set and
      -
      1970  // 'base-data-offset-present' not to be set. We omit these checks as some
      -
      1971  // valid files in the wild don't follow these rules, though they use moof as
      -
      1972  // base.
      -
      1973  uint64_t base_data_offset;
      -
      1974  RCHECK(buffer->ReadWriteUInt64(&base_data_offset));
      -
      1975  DLOG(WARNING) << "base-data-offset-present is not expected. Assumes "
      -
      1976  "default-base-is-moof.";
      -
      1977  }
      -
      1978 
      -
      1979  if (flags & kSampleDescriptionIndexPresentMask) {
      -
      1980  RCHECK(buffer->ReadWriteUInt32(&sample_description_index));
      -
      1981  } else if (buffer->Reading()) {
      -
      1982  sample_description_index = 0;
      -
      1983  }
      -
      1984 
      -
      1985  if (flags & kDefaultSampleDurationPresentMask) {
      -
      1986  RCHECK(buffer->ReadWriteUInt32(&default_sample_duration));
      -
      1987  } else if (buffer->Reading()) {
      -
      1988  default_sample_duration = 0;
      -
      1989  }
      -
      1990 
      -
      1991  if (flags & kDefaultSampleSizePresentMask) {
      -
      1992  RCHECK(buffer->ReadWriteUInt32(&default_sample_size));
      -
      1993  } else if (buffer->Reading()) {
      -
      1994  default_sample_size = 0;
      -
      1995  }
      -
      1996 
      -
      1997  if (flags & kDefaultSampleFlagsPresentMask)
      -
      1998  RCHECK(buffer->ReadWriteUInt32(&default_sample_flags));
      -
      1999  return true;
      -
      2000 }
      -
      2001 
      -
      2002 uint32_t TrackFragmentHeader::ComputeSizeInternal() {
      -
      2003  uint32_t box_size = HeaderSize() + sizeof(track_id);
      -
      2004  if (flags & kSampleDescriptionIndexPresentMask)
      -
      2005  box_size += sizeof(sample_description_index);
      -
      2006  if (flags & kDefaultSampleDurationPresentMask)
      -
      2007  box_size += sizeof(default_sample_duration);
      -
      2008  if (flags & kDefaultSampleSizePresentMask)
      -
      2009  box_size += sizeof(default_sample_size);
      -
      2010  if (flags & kDefaultSampleFlagsPresentMask)
      -
      2011  box_size += sizeof(default_sample_flags);
      -
      2012  return box_size;
      -
      2013 }
      -
      2014 
      -
      2015 TrackFragmentRun::TrackFragmentRun() : sample_count(0), data_offset(0) {}
      -
      2016 TrackFragmentRun::~TrackFragmentRun() {}
      -
      2017 FourCC TrackFragmentRun::BoxType() const { return FOURCC_trun; }
      -
      2018 
      -
      2019 bool TrackFragmentRun::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2020  if (!buffer->Reading()) {
      -
      2021  // Determine whether version 0 or version 1 should be used.
      -
      2022  // Use version 0 if possible, use version 1 if there is a negative
      -
      2023  // sample_offset value.
      -
      2024  version = 0;
      -
      2025  if (flags & kSampleCompTimeOffsetsPresentMask) {
      -
      2026  for (uint32_t i = 0; i < sample_count; ++i) {
      -
      2027  if (sample_composition_time_offsets[i] < 0) {
      -
      2028  version = 1;
      -
      2029  break;
      -
      2030  }
      -
      2031  }
      -
      2032  }
      -
      2033  }
      -
      2034 
      -
      2035  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      2036  buffer->ReadWriteUInt32(&sample_count));
      -
      2037 
      -
      2038  bool data_offset_present = (flags & kDataOffsetPresentMask) != 0;
      -
      2039  bool first_sample_flags_present = (flags & kFirstSampleFlagsPresentMask) != 0;
      -
      2040  bool sample_duration_present = (flags & kSampleDurationPresentMask) != 0;
      -
      2041  bool sample_size_present = (flags & kSampleSizePresentMask) != 0;
      -
      2042  bool sample_flags_present = (flags & kSampleFlagsPresentMask) != 0;
      -
      2043  bool sample_composition_time_offsets_present =
      -
      2044  (flags & kSampleCompTimeOffsetsPresentMask) != 0;
      -
      2045 
      -
      2046  if (data_offset_present) {
      -
      2047  RCHECK(buffer->ReadWriteUInt32(&data_offset));
      -
      2048  } else {
      -
      2049  // NOTE: If the data-offset is not present, then the data for this run
      -
      2050  // starts immediately after the data of the previous run, or at the
      -
      2051  // base-data-offset defined by the track fragment header if this is the
      -
      2052  // first run in a track fragment. If the data-offset is present, it is
      -
      2053  // relative to the base-data-offset established in the track fragment
      -
      2054  // header.
      -
      2055  NOTIMPLEMENTED();
      -
      2056  }
      -
      2057 
      -
      2058  uint32_t first_sample_flags;
      -
      2059 
      -
      2060  if (buffer->Reading()) {
      -
      2061  if (first_sample_flags_present)
      -
      2062  RCHECK(buffer->ReadWriteUInt32(&first_sample_flags));
      -
      2063 
      -
      2064  if (sample_duration_present)
      -
      2065  sample_durations.resize(sample_count);
      -
      2066  if (sample_size_present)
      -
      2067  sample_sizes.resize(sample_count);
      -
      2068  if (sample_flags_present)
      -
      2069  sample_flags.resize(sample_count);
      -
      2070  if (sample_composition_time_offsets_present)
      -
      2071  sample_composition_time_offsets.resize(sample_count);
      -
      2072  } else {
      -
      2073  if (first_sample_flags_present) {
      -
      2074  first_sample_flags = sample_flags[0];
      -
      2075  DCHECK(sample_flags.size() == 1);
      -
      2076  RCHECK(buffer->ReadWriteUInt32(&first_sample_flags));
      -
      2077  }
      -
      2078 
      -
      2079  if (sample_duration_present)
      -
      2080  DCHECK(sample_durations.size() == sample_count);
      -
      2081  if (sample_size_present)
      -
      2082  DCHECK(sample_sizes.size() == sample_count);
      -
      2083  if (sample_flags_present)
      -
      2084  DCHECK(sample_flags.size() == sample_count);
      -
      2085  if (sample_composition_time_offsets_present)
      -
      2086  DCHECK(sample_composition_time_offsets.size() == sample_count);
      -
      2087  }
      -
      2088 
      -
      2089  for (uint32_t i = 0; i < sample_count; ++i) {
      -
      2090  if (sample_duration_present)
      -
      2091  RCHECK(buffer->ReadWriteUInt32(&sample_durations[i]));
      -
      2092  if (sample_size_present)
      -
      2093  RCHECK(buffer->ReadWriteUInt32(&sample_sizes[i]));
      -
      2094  if (sample_flags_present)
      -
      2095  RCHECK(buffer->ReadWriteUInt32(&sample_flags[i]));
      -
      2096 
      -
      2097  if (sample_composition_time_offsets_present) {
      -
      2098  if (version == 0) {
      -
      2099  uint32_t sample_offset = sample_composition_time_offsets[i];
      -
      2100  RCHECK(buffer->ReadWriteUInt32(&sample_offset));
      -
      2101  sample_composition_time_offsets[i] = sample_offset;
      -
      2102  } else {
      -
      2103  int32_t sample_offset = sample_composition_time_offsets[i];
      -
      2104  RCHECK(buffer->ReadWriteInt32(&sample_offset));
      -
      2105  sample_composition_time_offsets[i] = sample_offset;
      -
      2106  }
      -
      2107  }
      -
      2108  }
      -
      2109 
      -
      2110  if (buffer->Reading()) {
      -
      2111  if (first_sample_flags_present) {
      -
      2112  if (sample_flags.size() == 0) {
      -
      2113  sample_flags.push_back(first_sample_flags);
      -
      2114  } else {
      -
      2115  sample_flags[0] = first_sample_flags;
      -
      2116  }
      -
      2117  }
      -
      2118  }
      -
      2119  return true;
      -
      2120 }
      -
      2121 
      -
      2122 uint32_t TrackFragmentRun::ComputeSizeInternal() {
      -
      2123  uint32_t box_size = HeaderSize() + sizeof(sample_count);
      -
      2124  if (flags & kDataOffsetPresentMask)
      -
      2125  box_size += sizeof(data_offset);
      -
      2126  if (flags & kFirstSampleFlagsPresentMask)
      -
      2127  box_size += sizeof(uint32_t);
      -
      2128  uint32_t fields = (flags & kSampleDurationPresentMask ? 1 : 0) +
      -
      2129  (flags & kSampleSizePresentMask ? 1 : 0) +
      -
      2130  (flags & kSampleFlagsPresentMask ? 1 : 0) +
      -
      2131  (flags & kSampleCompTimeOffsetsPresentMask ? 1 : 0);
      -
      2132  box_size += fields * sizeof(uint32_t) * sample_count;
      -
      2133  return box_size;
      -
      2134 }
      -
      2135 
      -
      2136 SampleToGroup::SampleToGroup() : grouping_type(0), grouping_type_parameter(0) {}
      -
      2137 SampleToGroup::~SampleToGroup() {}
      -
      2138 FourCC SampleToGroup::BoxType() const { return FOURCC_sbgp; }
      -
      2139 
      -
      2140 bool SampleToGroup::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2141  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      2142  buffer->ReadWriteUInt32(&grouping_type));
      -
      2143  if (version == 1)
      -
      2144  RCHECK(buffer->ReadWriteUInt32(&grouping_type_parameter));
      -
      2145 
      -
      2146  if (grouping_type != FOURCC_seig) {
      -
      2147  DCHECK(buffer->Reading());
      -
      2148  DLOG(WARNING) << "Sample group "
      -
      2149  << FourCCToString(static_cast<FourCC>(grouping_type))
      -
      2150  << " is not supported.";
      -
      2151  return true;
      -
      2152  }
      +
      1968 uint32_t TrackFragmentDecodeTime::ComputeSizeInternal() {
      +
      1969  version = IsFitIn32Bits(decode_time) ? 0 : 1;
      +
      1970  return HeaderSize() + sizeof(uint32_t) * (1 + version);
      +
      1971 }
      +
      1972 
      +
      1973 MovieFragmentHeader::MovieFragmentHeader() : sequence_number(0) {}
      +
      1974 MovieFragmentHeader::~MovieFragmentHeader() {}
      +
      1975 FourCC MovieFragmentHeader::BoxType() const { return FOURCC_mfhd; }
      +
      1976 
      +
      1977 bool MovieFragmentHeader::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1978  return ReadWriteHeaderInternal(buffer) &&
      +
      1979  buffer->ReadWriteUInt32(&sequence_number);
      +
      1980 }
      +
      1981 
      +
      1982 uint32_t MovieFragmentHeader::ComputeSizeInternal() {
      +
      1983  return HeaderSize() + sizeof(sequence_number);
      +
      1984 }
      +
      1985 
      +
      1986 TrackFragmentHeader::TrackFragmentHeader()
      +
      1987  : track_id(0),
      +
      1988  sample_description_index(0),
      +
      1989  default_sample_duration(0),
      +
      1990  default_sample_size(0),
      +
      1991  default_sample_flags(0) {}
      +
      1992 
      +
      1993 TrackFragmentHeader::~TrackFragmentHeader() {}
      +
      1994 FourCC TrackFragmentHeader::BoxType() const { return FOURCC_tfhd; }
      +
      1995 
      +
      1996 bool TrackFragmentHeader::ReadWriteInternal(BoxBuffer* buffer) {
      +
      1997  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      1998  buffer->ReadWriteUInt32(&track_id));
      +
      1999 
      +
      2000  if (flags & kBaseDataOffsetPresentMask) {
      +
      2001  // MSE requires 'default-base-is-moof' to be set and
      +
      2002  // 'base-data-offset-present' not to be set. We omit these checks as some
      +
      2003  // valid files in the wild don't follow these rules, though they use moof as
      +
      2004  // base.
      +
      2005  uint64_t base_data_offset;
      +
      2006  RCHECK(buffer->ReadWriteUInt64(&base_data_offset));
      +
      2007  DLOG(WARNING) << "base-data-offset-present is not expected. Assumes "
      +
      2008  "default-base-is-moof.";
      +
      2009  }
      +
      2010 
      +
      2011  if (flags & kSampleDescriptionIndexPresentMask) {
      +
      2012  RCHECK(buffer->ReadWriteUInt32(&sample_description_index));
      +
      2013  } else if (buffer->Reading()) {
      +
      2014  sample_description_index = 0;
      +
      2015  }
      +
      2016 
      +
      2017  if (flags & kDefaultSampleDurationPresentMask) {
      +
      2018  RCHECK(buffer->ReadWriteUInt32(&default_sample_duration));
      +
      2019  } else if (buffer->Reading()) {
      +
      2020  default_sample_duration = 0;
      +
      2021  }
      +
      2022 
      +
      2023  if (flags & kDefaultSampleSizePresentMask) {
      +
      2024  RCHECK(buffer->ReadWriteUInt32(&default_sample_size));
      +
      2025  } else if (buffer->Reading()) {
      +
      2026  default_sample_size = 0;
      +
      2027  }
      +
      2028 
      +
      2029  if (flags & kDefaultSampleFlagsPresentMask)
      +
      2030  RCHECK(buffer->ReadWriteUInt32(&default_sample_flags));
      +
      2031  return true;
      +
      2032 }
      +
      2033 
      +
      2034 uint32_t TrackFragmentHeader::ComputeSizeInternal() {
      +
      2035  uint32_t box_size = HeaderSize() + sizeof(track_id);
      +
      2036  if (flags & kSampleDescriptionIndexPresentMask)
      +
      2037  box_size += sizeof(sample_description_index);
      +
      2038  if (flags & kDefaultSampleDurationPresentMask)
      +
      2039  box_size += sizeof(default_sample_duration);
      +
      2040  if (flags & kDefaultSampleSizePresentMask)
      +
      2041  box_size += sizeof(default_sample_size);
      +
      2042  if (flags & kDefaultSampleFlagsPresentMask)
      +
      2043  box_size += sizeof(default_sample_flags);
      +
      2044  return box_size;
      +
      2045 }
      +
      2046 
      +
      2047 TrackFragmentRun::TrackFragmentRun() : sample_count(0), data_offset(0) {}
      +
      2048 TrackFragmentRun::~TrackFragmentRun() {}
      +
      2049 FourCC TrackFragmentRun::BoxType() const { return FOURCC_trun; }
      +
      2050 
      +
      2051 bool TrackFragmentRun::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2052  if (!buffer->Reading()) {
      +
      2053  // Determine whether version 0 or version 1 should be used.
      +
      2054  // Use version 0 if possible, use version 1 if there is a negative
      +
      2055  // sample_offset value.
      +
      2056  version = 0;
      +
      2057  if (flags & kSampleCompTimeOffsetsPresentMask) {
      +
      2058  for (uint32_t i = 0; i < sample_count; ++i) {
      +
      2059  if (sample_composition_time_offsets[i] < 0) {
      +
      2060  version = 1;
      +
      2061  break;
      +
      2062  }
      +
      2063  }
      +
      2064  }
      +
      2065  }
      +
      2066 
      +
      2067  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      2068  buffer->ReadWriteUInt32(&sample_count));
      +
      2069 
      +
      2070  bool data_offset_present = (flags & kDataOffsetPresentMask) != 0;
      +
      2071  bool first_sample_flags_present = (flags & kFirstSampleFlagsPresentMask) != 0;
      +
      2072  bool sample_duration_present = (flags & kSampleDurationPresentMask) != 0;
      +
      2073  bool sample_size_present = (flags & kSampleSizePresentMask) != 0;
      +
      2074  bool sample_flags_present = (flags & kSampleFlagsPresentMask) != 0;
      +
      2075  bool sample_composition_time_offsets_present =
      +
      2076  (flags & kSampleCompTimeOffsetsPresentMask) != 0;
      +
      2077 
      +
      2078  if (data_offset_present) {
      +
      2079  RCHECK(buffer->ReadWriteUInt32(&data_offset));
      +
      2080  } else {
      +
      2081  // NOTE: If the data-offset is not present, then the data for this run
      +
      2082  // starts immediately after the data of the previous run, or at the
      +
      2083  // base-data-offset defined by the track fragment header if this is the
      +
      2084  // first run in a track fragment. If the data-offset is present, it is
      +
      2085  // relative to the base-data-offset established in the track fragment
      +
      2086  // header.
      +
      2087  NOTIMPLEMENTED();
      +
      2088  }
      +
      2089 
      +
      2090  uint32_t first_sample_flags;
      +
      2091 
      +
      2092  if (buffer->Reading()) {
      +
      2093  if (first_sample_flags_present)
      +
      2094  RCHECK(buffer->ReadWriteUInt32(&first_sample_flags));
      +
      2095 
      +
      2096  if (sample_duration_present)
      +
      2097  sample_durations.resize(sample_count);
      +
      2098  if (sample_size_present)
      +
      2099  sample_sizes.resize(sample_count);
      +
      2100  if (sample_flags_present)
      +
      2101  sample_flags.resize(sample_count);
      +
      2102  if (sample_composition_time_offsets_present)
      +
      2103  sample_composition_time_offsets.resize(sample_count);
      +
      2104  } else {
      +
      2105  if (first_sample_flags_present) {
      +
      2106  first_sample_flags = sample_flags[0];
      +
      2107  DCHECK(sample_flags.size() == 1);
      +
      2108  RCHECK(buffer->ReadWriteUInt32(&first_sample_flags));
      +
      2109  }
      +
      2110 
      +
      2111  if (sample_duration_present)
      +
      2112  DCHECK(sample_durations.size() == sample_count);
      +
      2113  if (sample_size_present)
      +
      2114  DCHECK(sample_sizes.size() == sample_count);
      +
      2115  if (sample_flags_present)
      +
      2116  DCHECK(sample_flags.size() == sample_count);
      +
      2117  if (sample_composition_time_offsets_present)
      +
      2118  DCHECK(sample_composition_time_offsets.size() == sample_count);
      +
      2119  }
      +
      2120 
      +
      2121  for (uint32_t i = 0; i < sample_count; ++i) {
      +
      2122  if (sample_duration_present)
      +
      2123  RCHECK(buffer->ReadWriteUInt32(&sample_durations[i]));
      +
      2124  if (sample_size_present)
      +
      2125  RCHECK(buffer->ReadWriteUInt32(&sample_sizes[i]));
      +
      2126  if (sample_flags_present)
      +
      2127  RCHECK(buffer->ReadWriteUInt32(&sample_flags[i]));
      +
      2128 
      +
      2129  if (sample_composition_time_offsets_present) {
      +
      2130  if (version == 0) {
      +
      2131  uint32_t sample_offset = sample_composition_time_offsets[i];
      +
      2132  RCHECK(buffer->ReadWriteUInt32(&sample_offset));
      +
      2133  sample_composition_time_offsets[i] = sample_offset;
      +
      2134  } else {
      +
      2135  int32_t sample_offset = sample_composition_time_offsets[i];
      +
      2136  RCHECK(buffer->ReadWriteInt32(&sample_offset));
      +
      2137  sample_composition_time_offsets[i] = sample_offset;
      +
      2138  }
      +
      2139  }
      +
      2140  }
      +
      2141 
      +
      2142  if (buffer->Reading()) {
      +
      2143  if (first_sample_flags_present) {
      +
      2144  if (sample_flags.size() == 0) {
      +
      2145  sample_flags.push_back(first_sample_flags);
      +
      2146  } else {
      +
      2147  sample_flags[0] = first_sample_flags;
      +
      2148  }
      +
      2149  }
      +
      2150  }
      +
      2151  return true;
      +
      2152 }
      2153 
      -
      2154  uint32_t count = entries.size();
      -
      2155  RCHECK(buffer->ReadWriteUInt32(&count));
      -
      2156  entries.resize(count);
      -
      2157  for (uint32_t i = 0; i < count; ++i) {
      -
      2158  RCHECK(buffer->ReadWriteUInt32(&entries[i].sample_count) &&
      -
      2159  buffer->ReadWriteUInt32(&entries[i].group_description_index));
      -
      2160  }
      -
      2161  return true;
      -
      2162 }
      -
      2163 
      -
      2164 uint32_t SampleToGroup::ComputeSizeInternal() {
      -
      2165  // This box is optional. Skip it if it is not used.
      -
      2166  if (entries.empty())
      -
      2167  return 0;
      -
      2168  return HeaderSize() + sizeof(grouping_type) +
      -
      2169  (version == 1 ? sizeof(grouping_type_parameter) : 0) +
      -
      2170  sizeof(uint32_t) + entries.size() * sizeof(entries[0]);
      -
      2171 }
      -
      2172 
      -
      2173 CencSampleEncryptionInfoEntry::CencSampleEncryptionInfoEntry()
      -
      2174  : is_encrypted(false), iv_size(0) {
      -
      2175 }
      -
      2176 CencSampleEncryptionInfoEntry::~CencSampleEncryptionInfoEntry() {};
      +
      2154 uint32_t TrackFragmentRun::ComputeSizeInternal() {
      +
      2155  uint32_t box_size = HeaderSize() + sizeof(sample_count);
      +
      2156  if (flags & kDataOffsetPresentMask)
      +
      2157  box_size += sizeof(data_offset);
      +
      2158  if (flags & kFirstSampleFlagsPresentMask)
      +
      2159  box_size += sizeof(uint32_t);
      +
      2160  uint32_t fields = (flags & kSampleDurationPresentMask ? 1 : 0) +
      +
      2161  (flags & kSampleSizePresentMask ? 1 : 0) +
      +
      2162  (flags & kSampleFlagsPresentMask ? 1 : 0) +
      +
      2163  (flags & kSampleCompTimeOffsetsPresentMask ? 1 : 0);
      +
      2164  box_size += fields * sizeof(uint32_t) * sample_count;
      +
      2165  return box_size;
      +
      2166 }
      +
      2167 
      +
      2168 SampleToGroup::SampleToGroup() : grouping_type(0), grouping_type_parameter(0) {}
      +
      2169 SampleToGroup::~SampleToGroup() {}
      +
      2170 FourCC SampleToGroup::BoxType() const { return FOURCC_sbgp; }
      +
      2171 
      +
      2172 bool SampleToGroup::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2173  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      2174  buffer->ReadWriteUInt32(&grouping_type));
      +
      2175  if (version == 1)
      +
      2176  RCHECK(buffer->ReadWriteUInt32(&grouping_type_parameter));
      2177 
      -
      2178 SampleGroupDescription::SampleGroupDescription() : grouping_type(0) {}
      -
      2179 SampleGroupDescription::~SampleGroupDescription() {}
      -
      2180 FourCC SampleGroupDescription::BoxType() const { return FOURCC_sgpd; }
      -
      2181 
      -
      2182 bool SampleGroupDescription::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2183  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      2184  buffer->ReadWriteUInt32(&grouping_type));
      +
      2178  if (grouping_type != FOURCC_seig) {
      +
      2179  DCHECK(buffer->Reading());
      +
      2180  DLOG(WARNING) << "Sample group "
      +
      2181  << FourCCToString(static_cast<FourCC>(grouping_type))
      +
      2182  << " is not supported.";
      +
      2183  return true;
      +
      2184  }
      2185 
      -
      2186  if (grouping_type != FOURCC_seig) {
      -
      2187  DCHECK(buffer->Reading());
      -
      2188  DLOG(WARNING) << "Sample group '" << grouping_type << "' is not supported.";
      -
      2189  return true;
      -
      2190  }
      -
      2191 
      -
      2192  const size_t kEntrySize = sizeof(uint32_t) + kCencKeyIdSize;
      -
      2193  uint32_t default_length = 0;
      -
      2194  if (version == 1) {
      -
      2195  if (buffer->Reading()) {
      -
      2196  RCHECK(buffer->ReadWriteUInt32(&default_length));
      -
      2197  RCHECK(default_length == 0 || default_length >= kEntrySize);
      -
      2198  } else {
      -
      2199  default_length = kEntrySize;
      -
      2200  RCHECK(buffer->ReadWriteUInt32(&default_length));
      -
      2201  }
      -
      2202  }
      -
      2203 
      -
      2204  uint32_t count = entries.size();
      -
      2205  RCHECK(buffer->ReadWriteUInt32(&count));
      -
      2206  entries.resize(count);
      -
      2207  for (uint32_t i = 0; i < count; ++i) {
      -
      2208  if (version == 1) {
      -
      2209  if (buffer->Reading() && default_length == 0) {
      -
      2210  uint32_t description_length = 0;
      -
      2211  RCHECK(buffer->ReadWriteUInt32(&description_length));
      -
      2212  RCHECK(description_length >= kEntrySize);
      -
      2213  }
      -
      2214  }
      +
      2186  uint32_t count = entries.size();
      +
      2187  RCHECK(buffer->ReadWriteUInt32(&count));
      +
      2188  entries.resize(count);
      +
      2189  for (uint32_t i = 0; i < count; ++i) {
      +
      2190  RCHECK(buffer->ReadWriteUInt32(&entries[i].sample_count) &&
      +
      2191  buffer->ReadWriteUInt32(&entries[i].group_description_index));
      +
      2192  }
      +
      2193  return true;
      +
      2194 }
      +
      2195 
      +
      2196 uint32_t SampleToGroup::ComputeSizeInternal() {
      +
      2197  // This box is optional. Skip it if it is not used.
      +
      2198  if (entries.empty())
      +
      2199  return 0;
      +
      2200  return HeaderSize() + sizeof(grouping_type) +
      +
      2201  (version == 1 ? sizeof(grouping_type_parameter) : 0) +
      +
      2202  sizeof(uint32_t) + entries.size() * sizeof(entries[0]);
      +
      2203 }
      +
      2204 
      +
      2205 CencSampleEncryptionInfoEntry::CencSampleEncryptionInfoEntry()
      +
      2206  : is_protected(0),
      +
      2207  per_sample_iv_size(0),
      +
      2208  crypt_byte_block(0),
      +
      2209  skip_byte_block(0) {}
      +
      2210 CencSampleEncryptionInfoEntry::~CencSampleEncryptionInfoEntry() {};
      +
      2211 
      +
      2212 SampleGroupDescription::SampleGroupDescription() : grouping_type(0) {}
      +
      2213 SampleGroupDescription::~SampleGroupDescription() {}
      +
      2214 FourCC SampleGroupDescription::BoxType() const { return FOURCC_sgpd; }
      2215 
      -
      2216  if (!buffer->Reading()) {
      -
      2217  if (entries[i].key_id.size() != kCencKeyIdSize) {
      -
      2218  LOG(WARNING) << "CENC defines key id length of " << kCencKeyIdSize
      -
      2219  << " bytes; got " << entries[i].key_id.size()
      -
      2220  << ". Resized accordingly.";
      -
      2221  entries[i].key_id.resize(kCencKeyIdSize);
      -
      2222  }
      -
      2223  }
      -
      2224 
      -
      2225  uint8_t flag = entries[i].is_encrypted ? 1 : 0;
      -
      2226  RCHECK(buffer->IgnoreBytes(2) && // reserved.
      -
      2227  buffer->ReadWriteUInt8(&flag) &&
      -
      2228  buffer->ReadWriteUInt8(&entries[i].iv_size) &&
      -
      2229  buffer->ReadWriteVector(&entries[i].key_id, kCencKeyIdSize));
      -
      2230 
      -
      2231  if (buffer->Reading()) {
      -
      2232  entries[i].is_encrypted = (flag != 0);
      -
      2233  if (entries[i].is_encrypted) {
      -
      2234  RCHECK(entries[i].iv_size == 8 || entries[i].iv_size == 16);
      -
      2235  } else {
      -
      2236  RCHECK(entries[i].iv_size == 0);
      -
      2237  }
      -
      2238  }
      -
      2239  }
      -
      2240  return true;
      -
      2241 }
      -
      2242 
      -
      2243 uint32_t SampleGroupDescription::ComputeSizeInternal() {
      -
      2244  // Version 0 is obsoleted, so always generate version 1 box.
      -
      2245  version = 1;
      -
      2246  // This box is optional. Skip it if it is not used.
      -
      2247  if (entries.empty())
      -
      2248  return 0;
      -
      2249  const size_t kEntrySize = sizeof(uint32_t) + kCencKeyIdSize;
      -
      2250  return HeaderSize() + sizeof(grouping_type) +
      -
      2251  (version == 1 ? sizeof(uint32_t) : 0) + sizeof(uint32_t) +
      -
      2252  entries.size() * kEntrySize;
      -
      2253 }
      -
      2254 
      -
      2255 TrackFragment::TrackFragment() : decode_time_absent(false) {}
      -
      2256 TrackFragment::~TrackFragment() {}
      -
      2257 FourCC TrackFragment::BoxType() const { return FOURCC_traf; }
      -
      2258 
      -
      2259 bool TrackFragment::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2260  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      2261  buffer->PrepareChildren() &&
      -
      2262  buffer->ReadWriteChild(&header));
      -
      2263  if (buffer->Reading()) {
      -
      2264  DCHECK(buffer->reader());
      -
      2265  decode_time_absent = !buffer->reader()->ChildExist(&decode_time);
      -
      2266  if (!decode_time_absent)
      -
      2267  RCHECK(buffer->ReadWriteChild(&decode_time));
      -
      2268  RCHECK(buffer->reader()->TryReadChildren(&runs));
      -
      2269 
      -
      2270  // There could be multiple SampleGroupDescription and SampleToGroup boxes
      -
      2271  // with different grouping types. For common encryption, the relevant
      -
      2272  // grouping type is 'seig'. Continue reading until 'seig' is found, or
      -
      2273  // until running out of child boxes.
      -
      2274  while (sample_to_group.grouping_type != FOURCC_seig &&
      -
      2275  buffer->reader()->ChildExist(&sample_to_group)) {
      -
      2276  RCHECK(buffer->reader()->ReadChild(&sample_to_group));
      -
      2277  }
      -
      2278  while (sample_group_description.grouping_type != FOURCC_seig &&
      -
      2279  buffer->reader()->ChildExist(&sample_group_description)) {
      -
      2280  RCHECK(buffer->reader()->ReadChild(&sample_group_description));
      -
      2281  }
      -
      2282  } else {
      -
      2283  if (!decode_time_absent)
      -
      2284  RCHECK(buffer->ReadWriteChild(&decode_time));
      -
      2285  for (uint32_t i = 0; i < runs.size(); ++i)
      -
      2286  RCHECK(buffer->ReadWriteChild(&runs[i]));
      -
      2287  RCHECK(buffer->TryReadWriteChild(&sample_to_group) &&
      -
      2288  buffer->TryReadWriteChild(&sample_group_description));
      -
      2289  }
      -
      2290  return buffer->TryReadWriteChild(&auxiliary_size) &&
      -
      2291  buffer->TryReadWriteChild(&auxiliary_offset) &&
      -
      2292  buffer->TryReadWriteChild(&sample_encryption);
      -
      2293 }
      -
      2294 
      -
      2295 uint32_t TrackFragment::ComputeSizeInternal() {
      -
      2296  uint32_t box_size =
      -
      2297  HeaderSize() + header.ComputeSize() + decode_time.ComputeSize() +
      -
      2298  sample_to_group.ComputeSize() + sample_group_description.ComputeSize() +
      -
      2299  auxiliary_size.ComputeSize() + auxiliary_offset.ComputeSize() +
      -
      2300  sample_encryption.ComputeSize();
      -
      2301  for (uint32_t i = 0; i < runs.size(); ++i)
      -
      2302  box_size += runs[i].ComputeSize();
      -
      2303  return box_size;
      -
      2304 }
      -
      2305 
      -
      2306 MovieFragment::MovieFragment() {}
      -
      2307 MovieFragment::~MovieFragment() {}
      -
      2308 FourCC MovieFragment::BoxType() const { return FOURCC_moof; }
      -
      2309 
      -
      2310 bool MovieFragment::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2311  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      2312  buffer->PrepareChildren() &&
      -
      2313  buffer->ReadWriteChild(&header));
      -
      2314  if (buffer->Reading()) {
      -
      2315  BoxReader* reader = buffer->reader();
      -
      2316  DCHECK(reader);
      -
      2317  RCHECK(reader->ReadChildren(&tracks) &&
      -
      2318  reader->TryReadChildren(&pssh));
      -
      2319  } else {
      -
      2320  for (uint32_t i = 0; i < tracks.size(); ++i)
      -
      2321  RCHECK(buffer->ReadWriteChild(&tracks[i]));
      -
      2322  for (uint32_t i = 0; i < pssh.size(); ++i)
      -
      2323  RCHECK(buffer->ReadWriteChild(&pssh[i]));
      -
      2324  }
      -
      2325  return true;
      -
      2326 }
      -
      2327 
      -
      2328 uint32_t MovieFragment::ComputeSizeInternal() {
      -
      2329  uint32_t box_size = HeaderSize() + header.ComputeSize();
      -
      2330  for (uint32_t i = 0; i < tracks.size(); ++i)
      -
      2331  box_size += tracks[i].ComputeSize();
      -
      2332  for (uint32_t i = 0; i < pssh.size(); ++i)
      -
      2333  box_size += pssh[i].ComputeSize();
      -
      2334  return box_size;
      -
      2335 }
      -
      2336 
      -
      2337 SegmentIndex::SegmentIndex()
      -
      2338  : reference_id(0),
      -
      2339  timescale(0),
      -
      2340  earliest_presentation_time(0),
      -
      2341  first_offset(0) {}
      -
      2342 SegmentIndex::~SegmentIndex() {}
      -
      2343 FourCC SegmentIndex::BoxType() const { return FOURCC_sidx; }
      -
      2344 
      -
      2345 bool SegmentIndex::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2346  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      2347  buffer->ReadWriteUInt32(&reference_id) &&
      -
      2348  buffer->ReadWriteUInt32(&timescale));
      -
      2349 
      -
      2350  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      2351  RCHECK(
      -
      2352  buffer->ReadWriteUInt64NBytes(&earliest_presentation_time, num_bytes) &&
      -
      2353  buffer->ReadWriteUInt64NBytes(&first_offset, num_bytes));
      -
      2354 
      -
      2355  uint16_t reference_count = references.size();
      -
      2356  RCHECK(buffer->IgnoreBytes(2) && // reserved.
      -
      2357  buffer->ReadWriteUInt16(&reference_count));
      -
      2358  references.resize(reference_count);
      -
      2359 
      -
      2360  uint32_t reference_type_size;
      -
      2361  uint32_t sap;
      -
      2362  for (uint32_t i = 0; i < reference_count; ++i) {
      -
      2363  if (!buffer->Reading()) {
      -
      2364  reference_type_size = references[i].referenced_size;
      -
      2365  if (references[i].reference_type)
      -
      2366  reference_type_size |= (1 << 31);
      -
      2367  sap = (references[i].sap_type << 28) | references[i].sap_delta_time;
      -
      2368  if (references[i].starts_with_sap)
      -
      2369  sap |= (1 << 31);
      -
      2370  }
      -
      2371  RCHECK(buffer->ReadWriteUInt32(&reference_type_size) &&
      -
      2372  buffer->ReadWriteUInt32(&references[i].subsegment_duration) &&
      -
      2373  buffer->ReadWriteUInt32(&sap));
      -
      2374  if (buffer->Reading()) {
      -
      2375  references[i].reference_type = (reference_type_size >> 31) ? true : false;
      -
      2376  references[i].referenced_size = reference_type_size & ~(1 << 31);
      -
      2377  references[i].starts_with_sap = (sap >> 31) ? true : false;
      -
      2378  references[i].sap_type =
      -
      2379  static_cast<SegmentReference::SAPType>((sap >> 28) & 0x07);
      -
      2380  references[i].sap_delta_time = sap & ~(0xF << 28);
      -
      2381  }
      -
      2382  }
      -
      2383  return true;
      -
      2384 }
      -
      2385 
      -
      2386 uint32_t SegmentIndex::ComputeSizeInternal() {
      -
      2387  version = IsFitIn32Bits(earliest_presentation_time, first_offset) ? 0 : 1;
      -
      2388  return HeaderSize() + sizeof(reference_id) + sizeof(timescale) +
      -
      2389  sizeof(uint32_t) * (1 + version) * 2 + 2 * sizeof(uint16_t) +
      -
      2390  3 * sizeof(uint32_t) * references.size();
      -
      2391 }
      -
      2392 
      -
      2393 MediaData::MediaData() : data_size(0) {}
      -
      2394 MediaData::~MediaData() {}
      -
      2395 FourCC MediaData::BoxType() const { return FOURCC_mdat; }
      -
      2396 
      -
      2397 bool MediaData::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2398  NOTIMPLEMENTED() << "Actual data is parsed and written separately.";
      -
      2399  return false;
      -
      2400 }
      -
      2401 
      -
      2402 uint32_t MediaData::ComputeSizeInternal() {
      -
      2403  return HeaderSize() + data_size;
      -
      2404 }
      -
      2405 
      -
      2406 CueSourceIDBox::CueSourceIDBox() : source_id(kCueSourceIdNotSet) {}
      -
      2407 CueSourceIDBox::~CueSourceIDBox() {}
      +
      2216 bool SampleGroupDescription::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2217  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      2218  buffer->ReadWriteUInt32(&grouping_type));
      +
      2219 
      +
      2220  if (grouping_type != FOURCC_seig) {
      +
      2221  DCHECK(buffer->Reading());
      +
      2222  DLOG(WARNING) << "Sample group '" << grouping_type << "' is not supported.";
      +
      2223  return true;
      +
      2224  }
      +
      2225 
      +
      2226  const size_t kEntrySize = sizeof(uint32_t) + kCencKeyIdSize;
      +
      2227  uint32_t default_length = 0;
      +
      2228  if (version == 1) {
      +
      2229  if (buffer->Reading()) {
      +
      2230  RCHECK(buffer->ReadWriteUInt32(&default_length));
      +
      2231  RCHECK(default_length == 0 || default_length >= kEntrySize);
      +
      2232  } else {
      +
      2233  default_length = kEntrySize;
      +
      2234  RCHECK(buffer->ReadWriteUInt32(&default_length));
      +
      2235  }
      +
      2236  }
      +
      2237 
      +
      2238  uint32_t count = entries.size();
      +
      2239  RCHECK(buffer->ReadWriteUInt32(&count));
      +
      2240  entries.resize(count);
      +
      2241  for (uint32_t i = 0; i < count; ++i) {
      +
      2242  if (version == 1) {
      +
      2243  if (buffer->Reading() && default_length == 0) {
      +
      2244  uint32_t description_length = 0;
      +
      2245  RCHECK(buffer->ReadWriteUInt32(&description_length));
      +
      2246  RCHECK(description_length >= kEntrySize);
      +
      2247  }
      +
      2248  }
      +
      2249 
      +
      2250  if (!buffer->Reading()) {
      +
      2251  if (entries[i].key_id.size() != kCencKeyIdSize) {
      +
      2252  LOG(WARNING) << "CENC defines key id length of " << kCencKeyIdSize
      +
      2253  << " bytes; got " << entries[i].key_id.size()
      +
      2254  << ". Resized accordingly.";
      +
      2255  entries[i].key_id.resize(kCencKeyIdSize);
      +
      2256  }
      +
      2257  RCHECK(entries[i].crypt_byte_block < 16 &&
      +
      2258  entries[i].skip_byte_block < 16);
      +
      2259  }
      +
      2260 
      +
      2261  RCHECK(buffer->IgnoreBytes(1)); // reserved.
      +
      2262 
      +
      2263  uint8_t pattern =
      +
      2264  entries[i].crypt_byte_block << 4 | entries[i].skip_byte_block;
      +
      2265  RCHECK(buffer->ReadWriteUInt8(&pattern));
      +
      2266  entries[i].crypt_byte_block = pattern >> 4;
      +
      2267  entries[i].skip_byte_block = pattern & 0x0F;
      +
      2268 
      +
      2269  RCHECK(buffer->ReadWriteUInt8(&entries[i].is_protected) &&
      +
      2270  buffer->ReadWriteUInt8(&entries[i].per_sample_iv_size) &&
      +
      2271  buffer->ReadWriteVector(&entries[i].key_id, kCencKeyIdSize));
      +
      2272 
      +
      2273  if (entries[i].is_protected == 1) {
      +
      2274  if (entries[i].per_sample_iv_size == 0) { // For constant iv.
      +
      2275  uint8_t constant_iv_size = entries[i].constant_iv.size();
      +
      2276  RCHECK(buffer->ReadWriteUInt8(&constant_iv_size));
      +
      2277  RCHECK(constant_iv_size == 8 || constant_iv_size == 16);
      +
      2278  RCHECK(
      +
      2279  buffer->ReadWriteVector(&entries[i].constant_iv, constant_iv_size));
      +
      2280  } else {
      +
      2281  RCHECK(entries[i].per_sample_iv_size == 8 ||
      +
      2282  entries[i].per_sample_iv_size == 16);
      +
      2283  RCHECK(entries[i].constant_iv.empty());
      +
      2284  }
      +
      2285  } else {
      +
      2286  // Expect |is_protected| to be 0, i.e. not protected. Other values of
      +
      2287  // |is_protected| is not supported.
      +
      2288  RCHECK(entries[i].is_protected == 0);
      +
      2289  RCHECK(entries[i].per_sample_iv_size == 0);
      +
      2290  }
      +
      2291 
      +
      2292  }
      +
      2293  return true;
      +
      2294 }
      +
      2295 
      +
      2296 uint32_t SampleGroupDescription::ComputeSizeInternal() {
      +
      2297  // Version 0 is obsoleted, so always generate version 1 box.
      +
      2298  version = 1;
      +
      2299  // This box is optional. Skip it if it is not used.
      +
      2300  if (entries.empty())
      +
      2301  return 0;
      +
      2302  size_t entries_size = 0;
      +
      2303  for (const auto& entry : entries) {
      +
      2304  entries_size += sizeof(uint32_t) + kCencKeyIdSize +
      +
      2305  (entry.constant_iv.empty()
      +
      2306  ? 0
      +
      2307  : (sizeof(uint8_t) + entry.constant_iv.size()));
      +
      2308  }
      +
      2309  return HeaderSize() + sizeof(grouping_type) +
      +
      2310  (version == 1 ? sizeof(uint32_t) : 0) + sizeof(uint32_t) +
      +
      2311  entries_size;
      +
      2312 }
      +
      2313 
      +
      2314 TrackFragment::TrackFragment() : decode_time_absent(false) {}
      +
      2315 TrackFragment::~TrackFragment() {}
      +
      2316 FourCC TrackFragment::BoxType() const { return FOURCC_traf; }
      +
      2317 
      +
      2318 bool TrackFragment::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2319  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      2320  buffer->PrepareChildren() &&
      +
      2321  buffer->ReadWriteChild(&header));
      +
      2322  if (buffer->Reading()) {
      +
      2323  DCHECK(buffer->reader());
      +
      2324  decode_time_absent = !buffer->reader()->ChildExist(&decode_time);
      +
      2325  if (!decode_time_absent)
      +
      2326  RCHECK(buffer->ReadWriteChild(&decode_time));
      +
      2327  RCHECK(buffer->reader()->TryReadChildren(&runs));
      +
      2328 
      +
      2329  // There could be multiple SampleGroupDescription and SampleToGroup boxes
      +
      2330  // with different grouping types. For common encryption, the relevant
      +
      2331  // grouping type is 'seig'. Continue reading until 'seig' is found, or
      +
      2332  // until running out of child boxes.
      +
      2333  while (sample_to_group.grouping_type != FOURCC_seig &&
      +
      2334  buffer->reader()->ChildExist(&sample_to_group)) {
      +
      2335  RCHECK(buffer->reader()->ReadChild(&sample_to_group));
      +
      2336  }
      +
      2337  while (sample_group_description.grouping_type != FOURCC_seig &&
      +
      2338  buffer->reader()->ChildExist(&sample_group_description)) {
      +
      2339  RCHECK(buffer->reader()->ReadChild(&sample_group_description));
      +
      2340  }
      +
      2341  } else {
      +
      2342  if (!decode_time_absent)
      +
      2343  RCHECK(buffer->ReadWriteChild(&decode_time));
      +
      2344  for (uint32_t i = 0; i < runs.size(); ++i)
      +
      2345  RCHECK(buffer->ReadWriteChild(&runs[i]));
      +
      2346  RCHECK(buffer->TryReadWriteChild(&sample_to_group) &&
      +
      2347  buffer->TryReadWriteChild(&sample_group_description));
      +
      2348  }
      +
      2349  return buffer->TryReadWriteChild(&auxiliary_size) &&
      +
      2350  buffer->TryReadWriteChild(&auxiliary_offset) &&
      +
      2351  buffer->TryReadWriteChild(&sample_encryption);
      +
      2352 }
      +
      2353 
      +
      2354 uint32_t TrackFragment::ComputeSizeInternal() {
      +
      2355  uint32_t box_size =
      +
      2356  HeaderSize() + header.ComputeSize() + decode_time.ComputeSize() +
      +
      2357  sample_to_group.ComputeSize() + sample_group_description.ComputeSize() +
      +
      2358  auxiliary_size.ComputeSize() + auxiliary_offset.ComputeSize() +
      +
      2359  sample_encryption.ComputeSize();
      +
      2360  for (uint32_t i = 0; i < runs.size(); ++i)
      +
      2361  box_size += runs[i].ComputeSize();
      +
      2362  return box_size;
      +
      2363 }
      +
      2364 
      +
      2365 MovieFragment::MovieFragment() {}
      +
      2366 MovieFragment::~MovieFragment() {}
      +
      2367 FourCC MovieFragment::BoxType() const { return FOURCC_moof; }
      +
      2368 
      +
      2369 bool MovieFragment::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2370  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      2371  buffer->PrepareChildren() &&
      +
      2372  buffer->ReadWriteChild(&header));
      +
      2373  if (buffer->Reading()) {
      +
      2374  BoxReader* reader = buffer->reader();
      +
      2375  DCHECK(reader);
      +
      2376  RCHECK(reader->ReadChildren(&tracks) &&
      +
      2377  reader->TryReadChildren(&pssh));
      +
      2378  } else {
      +
      2379  for (uint32_t i = 0; i < tracks.size(); ++i)
      +
      2380  RCHECK(buffer->ReadWriteChild(&tracks[i]));
      +
      2381  for (uint32_t i = 0; i < pssh.size(); ++i)
      +
      2382  RCHECK(buffer->ReadWriteChild(&pssh[i]));
      +
      2383  }
      +
      2384  return true;
      +
      2385 }
      +
      2386 
      +
      2387 uint32_t MovieFragment::ComputeSizeInternal() {
      +
      2388  uint32_t box_size = HeaderSize() + header.ComputeSize();
      +
      2389  for (uint32_t i = 0; i < tracks.size(); ++i)
      +
      2390  box_size += tracks[i].ComputeSize();
      +
      2391  for (uint32_t i = 0; i < pssh.size(); ++i)
      +
      2392  box_size += pssh[i].ComputeSize();
      +
      2393  return box_size;
      +
      2394 }
      +
      2395 
      +
      2396 SegmentIndex::SegmentIndex()
      +
      2397  : reference_id(0),
      +
      2398  timescale(0),
      +
      2399  earliest_presentation_time(0),
      +
      2400  first_offset(0) {}
      +
      2401 SegmentIndex::~SegmentIndex() {}
      +
      2402 FourCC SegmentIndex::BoxType() const { return FOURCC_sidx; }
      +
      2403 
      +
      2404 bool SegmentIndex::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2405  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      2406  buffer->ReadWriteUInt32(&reference_id) &&
      +
      2407  buffer->ReadWriteUInt32(&timescale));
      2408 
      -
      2409 FourCC CueSourceIDBox::BoxType() const { return FOURCC_vsid; }
      -
      2410 
      -
      2411 bool CueSourceIDBox::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2412  RCHECK(ReadWriteHeaderInternal(buffer) && buffer->ReadWriteInt32(&source_id));
      -
      2413  return true;
      -
      2414 }
      -
      2415 
      -
      2416 uint32_t CueSourceIDBox::ComputeSizeInternal() {
      -
      2417  if (source_id == kCueSourceIdNotSet)
      -
      2418  return 0;
      -
      2419  return HeaderSize() + sizeof(source_id);
      -
      2420 }
      -
      2421 
      -
      2422 CueTimeBox::CueTimeBox() {}
      -
      2423 CueTimeBox::~CueTimeBox() {}
      -
      2424 
      -
      2425 FourCC CueTimeBox::BoxType() const {
      -
      2426  return FOURCC_ctim;
      -
      2427 }
      -
      2428 
      -
      2429 bool CueTimeBox::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2430  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      2431  return buffer->ReadWriteString(
      -
      2432  &cue_current_time,
      -
      2433  buffer->Reading() ? buffer->BytesLeft() : cue_current_time.size());
      -
      2434 }
      -
      2435 
      -
      2436 uint32_t CueTimeBox::ComputeSizeInternal() {
      -
      2437  if (cue_current_time.empty())
      -
      2438  return 0;
      -
      2439  return HeaderSize() + cue_current_time.size();
      -
      2440 }
      -
      2441 
      -
      2442 CueIDBox::CueIDBox() {}
      -
      2443 CueIDBox::~CueIDBox() {}
      +
      2409  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      2410  RCHECK(
      +
      2411  buffer->ReadWriteUInt64NBytes(&earliest_presentation_time, num_bytes) &&
      +
      2412  buffer->ReadWriteUInt64NBytes(&first_offset, num_bytes));
      +
      2413 
      +
      2414  uint16_t reference_count = references.size();
      +
      2415  RCHECK(buffer->IgnoreBytes(2) && // reserved.
      +
      2416  buffer->ReadWriteUInt16(&reference_count));
      +
      2417  references.resize(reference_count);
      +
      2418 
      +
      2419  uint32_t reference_type_size;
      +
      2420  uint32_t sap;
      +
      2421  for (uint32_t i = 0; i < reference_count; ++i) {
      +
      2422  if (!buffer->Reading()) {
      +
      2423  reference_type_size = references[i].referenced_size;
      +
      2424  if (references[i].reference_type)
      +
      2425  reference_type_size |= (1 << 31);
      +
      2426  sap = (references[i].sap_type << 28) | references[i].sap_delta_time;
      +
      2427  if (references[i].starts_with_sap)
      +
      2428  sap |= (1 << 31);
      +
      2429  }
      +
      2430  RCHECK(buffer->ReadWriteUInt32(&reference_type_size) &&
      +
      2431  buffer->ReadWriteUInt32(&references[i].subsegment_duration) &&
      +
      2432  buffer->ReadWriteUInt32(&sap));
      +
      2433  if (buffer->Reading()) {
      +
      2434  references[i].reference_type = (reference_type_size >> 31) ? true : false;
      +
      2435  references[i].referenced_size = reference_type_size & ~(1 << 31);
      +
      2436  references[i].starts_with_sap = (sap >> 31) ? true : false;
      +
      2437  references[i].sap_type =
      +
      2438  static_cast<SegmentReference::SAPType>((sap >> 28) & 0x07);
      +
      2439  references[i].sap_delta_time = sap & ~(0xF << 28);
      +
      2440  }
      +
      2441  }
      +
      2442  return true;
      +
      2443 }
      2444 
      -
      2445 FourCC CueIDBox::BoxType() const {
      -
      2446  return FOURCC_iden;
      -
      2447 }
      -
      2448 
      -
      2449 bool CueIDBox::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2450  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      2451  return buffer->ReadWriteString(
      -
      2452  &cue_id, buffer->Reading() ? buffer->BytesLeft() : cue_id.size());
      -
      2453 }
      -
      2454 
      -
      2455 uint32_t CueIDBox::ComputeSizeInternal() {
      -
      2456  if (cue_id.empty())
      -
      2457  return 0;
      -
      2458  return HeaderSize() + cue_id.size();
      +
      2445 uint32_t SegmentIndex::ComputeSizeInternal() {
      +
      2446  version = IsFitIn32Bits(earliest_presentation_time, first_offset) ? 0 : 1;
      +
      2447  return HeaderSize() + sizeof(reference_id) + sizeof(timescale) +
      +
      2448  sizeof(uint32_t) * (1 + version) * 2 + 2 * sizeof(uint16_t) +
      +
      2449  3 * sizeof(uint32_t) * references.size();
      +
      2450 }
      +
      2451 
      +
      2452 MediaData::MediaData() : data_size(0) {}
      +
      2453 MediaData::~MediaData() {}
      +
      2454 FourCC MediaData::BoxType() const { return FOURCC_mdat; }
      +
      2455 
      +
      2456 bool MediaData::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2457  NOTIMPLEMENTED() << "Actual data is parsed and written separately.";
      +
      2458  return false;
      2459 }
      2460 
      -
      2461 CueSettingsBox::CueSettingsBox() {}
      -
      2462 CueSettingsBox::~CueSettingsBox() {}
      -
      2463 
      -
      2464 FourCC CueSettingsBox::BoxType() const {
      -
      2465  return FOURCC_sttg;
      -
      2466 }
      +
      2461 uint32_t MediaData::ComputeSizeInternal() {
      +
      2462  return HeaderSize() + data_size;
      +
      2463 }
      +
      2464 
      +
      2465 CueSourceIDBox::CueSourceIDBox() : source_id(kCueSourceIdNotSet) {}
      +
      2466 CueSourceIDBox::~CueSourceIDBox() {}
      2467 
      -
      2468 bool CueSettingsBox::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2469  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      2470  return buffer->ReadWriteString(
      -
      2471  &settings, buffer->Reading() ? buffer->BytesLeft() : settings.size());
      -
      2472 }
      -
      2473 
      -
      2474 uint32_t CueSettingsBox::ComputeSizeInternal() {
      -
      2475  if (settings.empty())
      -
      2476  return 0;
      -
      2477  return HeaderSize() + settings.size();
      -
      2478 }
      -
      2479 
      -
      2480 CuePayloadBox::CuePayloadBox() {}
      -
      2481 CuePayloadBox::~CuePayloadBox() {}
      -
      2482 
      -
      2483 FourCC CuePayloadBox::BoxType() const {
      -
      2484  return FOURCC_payl;
      -
      2485 }
      -
      2486 
      -
      2487 bool CuePayloadBox::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2488  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      2489  return buffer->ReadWriteString(
      -
      2490  &cue_text, buffer->Reading() ? buffer->BytesLeft() : cue_text.size());
      -
      2491 }
      -
      2492 
      -
      2493 uint32_t CuePayloadBox::ComputeSizeInternal() {
      -
      2494  return HeaderSize() + cue_text.size();
      -
      2495 }
      -
      2496 
      -
      2497 VTTEmptyCueBox::VTTEmptyCueBox() {}
      -
      2498 VTTEmptyCueBox::~VTTEmptyCueBox() {}
      -
      2499 
      -
      2500 FourCC VTTEmptyCueBox::BoxType() const {
      -
      2501  return FOURCC_vtte;
      -
      2502 }
      +
      2468 FourCC CueSourceIDBox::BoxType() const { return FOURCC_vsid; }
      +
      2469 
      +
      2470 bool CueSourceIDBox::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2471  RCHECK(ReadWriteHeaderInternal(buffer) && buffer->ReadWriteInt32(&source_id));
      +
      2472  return true;
      +
      2473 }
      +
      2474 
      +
      2475 uint32_t CueSourceIDBox::ComputeSizeInternal() {
      +
      2476  if (source_id == kCueSourceIdNotSet)
      +
      2477  return 0;
      +
      2478  return HeaderSize() + sizeof(source_id);
      +
      2479 }
      +
      2480 
      +
      2481 CueTimeBox::CueTimeBox() {}
      +
      2482 CueTimeBox::~CueTimeBox() {}
      +
      2483 
      +
      2484 FourCC CueTimeBox::BoxType() const {
      +
      2485  return FOURCC_ctim;
      +
      2486 }
      +
      2487 
      +
      2488 bool CueTimeBox::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2489  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      2490  return buffer->ReadWriteString(
      +
      2491  &cue_current_time,
      +
      2492  buffer->Reading() ? buffer->BytesLeft() : cue_current_time.size());
      +
      2493 }
      +
      2494 
      +
      2495 uint32_t CueTimeBox::ComputeSizeInternal() {
      +
      2496  if (cue_current_time.empty())
      +
      2497  return 0;
      +
      2498  return HeaderSize() + cue_current_time.size();
      +
      2499 }
      +
      2500 
      +
      2501 CueIDBox::CueIDBox() {}
      +
      2502 CueIDBox::~CueIDBox() {}
      2503 
      -
      2504 bool VTTEmptyCueBox::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2505  return ReadWriteHeaderInternal(buffer);
      +
      2504 FourCC CueIDBox::BoxType() const {
      +
      2505  return FOURCC_iden;
      2506 }
      2507 
      -
      2508 uint32_t VTTEmptyCueBox::ComputeSizeInternal() {
      -
      2509  return HeaderSize();
      -
      2510 }
      -
      2511 
      -
      2512 VTTAdditionalTextBox::VTTAdditionalTextBox() {}
      -
      2513 VTTAdditionalTextBox::~VTTAdditionalTextBox() {}
      -
      2514 
      - -
      2516  return FOURCC_vtta;
      -
      2517 }
      -
      2518 
      -
      2519 bool VTTAdditionalTextBox::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2520  RCHECK(ReadWriteHeaderInternal(buffer));
      -
      2521  return buffer->ReadWriteString(
      -
      2522  &cue_additional_text,
      -
      2523  buffer->Reading() ? buffer->BytesLeft() : cue_additional_text.size());
      -
      2524 }
      -
      2525 
      -
      2526 uint32_t VTTAdditionalTextBox::ComputeSizeInternal() {
      -
      2527  return HeaderSize() + cue_additional_text.size();
      -
      2528 }
      -
      2529 
      -
      2530 VTTCueBox::VTTCueBox() {}
      -
      2531 VTTCueBox::~VTTCueBox() {}
      +
      2508 bool CueIDBox::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2509  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      2510  return buffer->ReadWriteString(
      +
      2511  &cue_id, buffer->Reading() ? buffer->BytesLeft() : cue_id.size());
      +
      2512 }
      +
      2513 
      +
      2514 uint32_t CueIDBox::ComputeSizeInternal() {
      +
      2515  if (cue_id.empty())
      +
      2516  return 0;
      +
      2517  return HeaderSize() + cue_id.size();
      +
      2518 }
      +
      2519 
      +
      2520 CueSettingsBox::CueSettingsBox() {}
      +
      2521 CueSettingsBox::~CueSettingsBox() {}
      +
      2522 
      +
      2523 FourCC CueSettingsBox::BoxType() const {
      +
      2524  return FOURCC_sttg;
      +
      2525 }
      +
      2526 
      +
      2527 bool CueSettingsBox::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2528  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      2529  return buffer->ReadWriteString(
      +
      2530  &settings, buffer->Reading() ? buffer->BytesLeft() : settings.size());
      +
      2531 }
      2532 
      -
      2533 FourCC VTTCueBox::BoxType() const {
      -
      2534  return FOURCC_vttc;
      -
      2535 }
      -
      2536 
      -
      2537 bool VTTCueBox::ReadWriteInternal(BoxBuffer* buffer) {
      -
      2538  RCHECK(ReadWriteHeaderInternal(buffer) &&
      -
      2539  buffer->PrepareChildren() &&
      -
      2540  buffer->ReadWriteChild(&cue_source_id) &&
      -
      2541  buffer->ReadWriteChild(&cue_id) &&
      -
      2542  buffer->ReadWriteChild(&cue_time) &&
      -
      2543  buffer->ReadWriteChild(&cue_settings) &&
      -
      2544  buffer->ReadWriteChild(&cue_payload));
      -
      2545  return true;
      -
      2546 }
      -
      2547 
      -
      2548 uint32_t VTTCueBox::ComputeSizeInternal() {
      -
      2549  return HeaderSize() + cue_source_id.ComputeSize() + cue_id.ComputeSize() +
      -
      2550  cue_time.ComputeSize() + cue_settings.ComputeSize() +
      -
      2551  cue_payload.ComputeSize();
      -
      2552 }
      -
      2553 
      -
      2554 } // namespace mp4
      -
      2555 } // namespace media
      -
      2556 } // namespace edash_packager
      - -
      FourCC BoxType() const override
      - - +
      2533 uint32_t CueSettingsBox::ComputeSizeInternal() {
      +
      2534  if (settings.empty())
      +
      2535  return 0;
      +
      2536  return HeaderSize() + settings.size();
      +
      2537 }
      +
      2538 
      +
      2539 CuePayloadBox::CuePayloadBox() {}
      +
      2540 CuePayloadBox::~CuePayloadBox() {}
      +
      2541 
      +
      2542 FourCC CuePayloadBox::BoxType() const {
      +
      2543  return FOURCC_payl;
      +
      2544 }
      +
      2545 
      +
      2546 bool CuePayloadBox::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2547  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      2548  return buffer->ReadWriteString(
      +
      2549  &cue_text, buffer->Reading() ? buffer->BytesLeft() : cue_text.size());
      +
      2550 }
      +
      2551 
      +
      2552 uint32_t CuePayloadBox::ComputeSizeInternal() {
      +
      2553  return HeaderSize() + cue_text.size();
      +
      2554 }
      +
      2555 
      +
      2556 VTTEmptyCueBox::VTTEmptyCueBox() {}
      +
      2557 VTTEmptyCueBox::~VTTEmptyCueBox() {}
      +
      2558 
      +
      2559 FourCC VTTEmptyCueBox::BoxType() const {
      +
      2560  return FOURCC_vtte;
      +
      2561 }
      +
      2562 
      +
      2563 bool VTTEmptyCueBox::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2564  return ReadWriteHeaderInternal(buffer);
      +
      2565 }
      +
      2566 
      +
      2567 uint32_t VTTEmptyCueBox::ComputeSizeInternal() {
      +
      2568  return HeaderSize();
      +
      2569 }
      +
      2570 
      +
      2571 VTTAdditionalTextBox::VTTAdditionalTextBox() {}
      +
      2572 VTTAdditionalTextBox::~VTTAdditionalTextBox() {}
      +
      2573 
      + +
      2575  return FOURCC_vtta;
      +
      2576 }
      +
      2577 
      +
      2578 bool VTTAdditionalTextBox::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2579  RCHECK(ReadWriteHeaderInternal(buffer));
      +
      2580  return buffer->ReadWriteString(
      +
      2581  &cue_additional_text,
      +
      2582  buffer->Reading() ? buffer->BytesLeft() : cue_additional_text.size());
      +
      2583 }
      +
      2584 
      +
      2585 uint32_t VTTAdditionalTextBox::ComputeSizeInternal() {
      +
      2586  return HeaderSize() + cue_additional_text.size();
      +
      2587 }
      +
      2588 
      +
      2589 VTTCueBox::VTTCueBox() {}
      +
      2590 VTTCueBox::~VTTCueBox() {}
      +
      2591 
      +
      2592 FourCC VTTCueBox::BoxType() const {
      +
      2593  return FOURCC_vttc;
      +
      2594 }
      +
      2595 
      +
      2596 bool VTTCueBox::ReadWriteInternal(BoxBuffer* buffer) {
      +
      2597  RCHECK(ReadWriteHeaderInternal(buffer) &&
      +
      2598  buffer->PrepareChildren() &&
      +
      2599  buffer->ReadWriteChild(&cue_source_id) &&
      +
      2600  buffer->ReadWriteChild(&cue_id) &&
      +
      2601  buffer->ReadWriteChild(&cue_time) &&
      +
      2602  buffer->ReadWriteChild(&cue_settings) &&
      +
      2603  buffer->ReadWriteChild(&cue_payload));
      +
      2604  return true;
      +
      2605 }
      +
      2606 
      +
      2607 uint32_t VTTCueBox::ComputeSizeInternal() {
      +
      2608  return HeaderSize() + cue_source_id.ComputeSize() + cue_id.ComputeSize() +
      +
      2609  cue_time.ComputeSize() + cue_settings.ComputeSize() +
      +
      2610  cue_payload.ComputeSize();
      +
      2611 }
      +
      2612 
      +
      2613 } // namespace mp4
      +
      2614 } // namespace media
      +
      2615 } // namespace edash_packager
      + +
      FourCC BoxType() const override
      + +
      bool ReadChildren(std::vector< T > *children) WARN_UNUSED_RESULT
      Definition: box_reader.h:133
      - +
      bool ReadChild(Box *child) WARN_UNUSED_RESULT
      Definition: box_reader.cc:123
      - - - + + +
      virtual bool ReadWriteHeaderInternal(BoxBuffer *buffer)
      Definition: box.cc:60
      - - + +
      bool ReadWriteHeaderInternal(BoxBuffer *buffer) final
      Definition: box.cc:79
      - + -
      bool ParseFromSampleEncryptionData(size_t iv_size, std::vector< SampleEncryptionEntry > *sample_encryption_entries) const
      - - - - - +
      bool ParseFromSampleEncryptionData(size_t iv_size, std::vector< SampleEncryptionEntry > *sample_encryption_entries) const
      + + + + + - - + + - +
      bool ChildExist(Box *child) WARN_UNUSED_RESULT
      Definition: box_reader.cc:136
      - - + + - - - - - - - + + + + + + +
      bool ReadWriteUInt64NBytes(uint64_t *v, size_t num_bytes)
      Definition: box_buffer.h:117
      - - - - - - - - - - - - - -
      PrivFrame private_frame
      We only support PrivateFrame in ID3. Other frames are ignored.
      + + + + + + + + + + + + + +
      PrivFrame private_frame
      We only support PrivateFrame in ID3. Other frames are ignored.
      bool ReadWriteString(std::string *str, size_t size)
      Definition: box_buffer.h:139
      - - + +
      bool IgnoreBytes(size_t num_bytes)
      Definition: box_buffer.h:189
      - - - + + + - + - - - - + + + + - - + +
      virtual bool Parse(const std::vector< uint8_t > &data)
      - - + +
      virtual uint32_t HeaderSize() const
      Definition: box.cc:54
      - +
      void Write(BufferWriter *writer)
      Definition: box.cc:25
      - -
      bool ParseFromBuffer(uint8_t iv_size, bool has_subsamples, BufferReader *reader)
      - - - - - - + +
      bool ParseFromBuffer(uint8_t iv_size, bool has_subsamples, BufferReader *reader)
      + + + + + +
      bool TryReadChildren(std::vector< T > *children) WARN_UNUSED_RESULT
      Definition: box_reader.h:139
      Class for reading MP4 boxes.
      Definition: box_reader.h:24
      - - - - - + + + + + -
      bool ReadWrite(uint8_t iv_size, bool has_subsamples, BoxBuffer *buffer)
      +
      bool ReadWrite(uint8_t iv_size, bool has_subsamples, BoxBuffer *buffer)
      - - - + + +
      uint32_t HeaderSize() const final
      Definition: box.cc:74
      - - - + + + diff --git a/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html b/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html index 75418f0dc7..4442d93102 100644 --- a/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html +++ b/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html @@ -125,7 +125,7 @@ const std::string & id diff --git a/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html b/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html index 997b11bb82..ab32e4fc9e 100644 --- a/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html +++ b/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html b/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html index 97023e6024..842e8603fa 100644 --- a/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html +++ b/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d07/structedash__packager_1_1media_1_1mp4_1_1CueIDBox.html b/docs/de/d07/structedash__packager_1_1media_1_1mp4_1_1CueIDBox.html index 0e2804b60b..d8a0262cd0 100644 --- a/docs/de/d07/structedash__packager_1_1media_1_1mp4_1_1CueIDBox.html +++ b/docs/de/d07/structedash__packager_1_1media_1_1mp4_1_1CueIDBox.html @@ -136,7 +136,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 746 of file box_definitions.h.

      +

      Definition at line 760 of file box_definitions.h.

      Member Function Documentation

      @@ -162,7 +162,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 2445 of file box_definitions.cc.

      +

      Definition at line 2504 of file box_definitions.cc.

      @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/de/d0b/structedash__packager_1_1media_1_1H265ReferencePictureSet.html b/docs/de/d0b/structedash__packager_1_1media_1_1H265ReferencePictureSet.html index 325fec1922..9d2526975d 100644 --- a/docs/de/d0b/structedash__packager_1_1media_1_1H265ReferencePictureSet.html +++ b/docs/de/d0b/structedash__packager_1_1media_1_1H265ReferencePictureSet.html @@ -127,7 +127,7 @@ int num_delta_pocs diff --git a/docs/de/d0f/local__file_8h_source.html b/docs/de/d0f/local__file_8h_source.html index d20e95a6ec..c4ebe5ce00 100644 --- a/docs/de/d0f/local__file_8h_source.html +++ b/docs/de/d0f/local__file_8h_source.html @@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d12/container__names_8h_source.html b/docs/de/d12/container__names_8h_source.html index 544ef37e91..51f4c5a742 100644 --- a/docs/de/d12/container__names_8h_source.html +++ b/docs/de/d12/container__names_8h_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d13/ts__writer_8cc_source.html b/docs/de/d13/ts__writer_8cc_source.html index d7f74a6b5c..0c987c320e 100644 --- a/docs/de/d13/ts__writer_8cc_source.html +++ b/docs/de/d13/ts__writer_8cc_source.html @@ -584,7 +584,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d15/media__stream_8cc_source.html b/docs/de/d15/media__stream_8cc_source.html index 7b8357a8de..fd05851a6b 100644 --- a/docs/de/d15/media__stream_8cc_source.html +++ b/docs/de/d15/media__stream_8cc_source.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d17/cluster__builder_8cc_source.html b/docs/de/d17/cluster__builder_8cc_source.html index 4fbc651a4e..7abe289ab2 100644 --- a/docs/de/d17/cluster__builder_8cc_source.html +++ b/docs/de/d17/cluster__builder_8cc_source.html @@ -330,7 +330,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d18/classedash__packager_1_1media_1_1WebVttMediaParser-members.html b/docs/de/d18/classedash__packager_1_1media_1_1WebVttMediaParser-members.html index 913df087cc..974bbdd310 100644 --- a/docs/de/d18/classedash__packager_1_1media_1_1WebVttMediaParser-members.html +++ b/docs/de/d18/classedash__packager_1_1media_1_1WebVttMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d19/classedash__packager_1_1media_1_1File.html b/docs/de/d19/classedash__packager_1_1media_1_1File.html index f085da2f7f..b326b5e8cc 100644 --- a/docs/de/d19/classedash__packager_1_1media_1_1File.html +++ b/docs/de/d19/classedash__packager_1_1media_1_1File.html @@ -811,7 +811,7 @@ class ThreadedIoFile diff --git a/docs/de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html b/docs/de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html index 0c48b18615..66d52f54f4 100644 --- a/docs/de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html +++ b/docs/de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html @@ -270,7 +270,7 @@ class PesPacketGeneratorTe diff --git a/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html b/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html index f03d95547b..5d35b97893 100644 --- a/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html +++ b/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html @@ -333,7 +333,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html b/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html index 7c899cb324..80c9345225 100644 --- a/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html +++ b/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html @@ -131,7 +131,7 @@ MediaContainerName output_ diff --git a/docs/de/d22/aes__pattern__cryptor_8cc_source.html b/docs/de/d22/aes__pattern__cryptor_8cc_source.html index 74b9b45ea5..9b655195d1 100644 --- a/docs/de/d22/aes__pattern__cryptor_8cc_source.html +++ b/docs/de/d22/aes__pattern__cryptor_8cc_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d34/offset__byte__queue_8h_source.html b/docs/de/d34/offset__byte__queue_8h_source.html index 68c30537d0..23d683c8f8 100644 --- a/docs/de/d34/offset__byte__queue_8h_source.html +++ b/docs/de/d34/offset__byte__queue_8h_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d3c/h26x__byte__to__unit__stream__converter_8cc_source.html b/docs/de/d3c/h26x__byte__to__unit__stream__converter_8cc_source.html index 330778fb7f..1811b7ba19 100644 --- a/docs/de/d3c/h26x__byte__to__unit__stream__converter_8cc_source.html +++ b/docs/de/d3c/h26x__byte__to__unit__stream__converter_8cc_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d3c/macros_8h_source.html b/docs/de/d3c/macros_8h_source.html index 6a3b5ab0c8..4d5da632fe 100644 --- a/docs/de/d3c/macros_8h_source.html +++ b/docs/de/d3c/macros_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d3e/buffer__reader_8h_source.html b/docs/de/d3e/buffer__reader_8h_source.html index 192bfae706..c27ab8482c 100644 --- a/docs/de/d3e/buffer__reader_8h_source.html +++ b/docs/de/d3e/buffer__reader_8h_source.html @@ -163,7 +163,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html b/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html index 304cffc96c..f12155bf94 100644 --- a/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html +++ b/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html @@ -126,15 +126,24 @@ Public Member Functions - - - - + + + + + + + + + + @@ -177,7 +186,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 397 of file box_definitions.cc.

      +

      Definition at line 406 of file box_definitions.cc.

      @@ -188,7 +197,7 @@ Additional Inherited Members diff --git a/docs/de/d48/classedash__packager_1_1media_1_1VP8Parser-members.html b/docs/de/d48/classedash__packager_1_1media_1_1VP8Parser-members.html index 1cb9ef0b05..64fbfd3833 100644 --- a/docs/de/d48/classedash__packager_1_1media_1_1VP8Parser-members.html +++ b/docs/de/d48/classedash__packager_1_1media_1_1VP8Parser-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');

      Public Attributes

      -bool is_encrypted
       
      -uint8_t default_iv_size
       
      +uint8_t default_is_protected
       
      +uint8_t default_per_sample_iv_size
       
      std::vector< uint8_t > default_kid
       
      +uint8_t default_crypt_byte_block
       
      +uint8_t default_skip_byte_block
       
      +std::vector< uint8_t > default_constant_iv
       
      - Public Attributes inherited from edash_packager::media::mp4::FullBox
      uint8_t version
      diff --git a/docs/de/d4a/muxer__listener__internal_8h_source.html b/docs/de/d4a/muxer__listener__internal_8h_source.html index d1b174aef1..863bd9e8f5 100644 --- a/docs/de/d4a/muxer__listener__internal_8h_source.html +++ b/docs/de/d4a/muxer__listener__internal_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html b/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html index 4fb1f8d7f6..7abbdb1b20 100644 --- a/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html +++ b/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html b/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html index ba2ac2e63f..ff05462bdf 100644 --- a/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html +++ b/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html @@ -275,7 +275,7 @@ std::string  diff --git a/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html b/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html index 32c88bf5fc..9fdad06885 100644 --- a/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html +++ b/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html @@ -148,7 +148,7 @@ const scoped_refptr
      diff --git a/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html b/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html index a99c1e7168..4245e93ebe 100644 --- a/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html +++ b/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d5b/adts__header_8cc_source.html b/docs/de/d5b/adts__header_8cc_source.html index a91c74ca3f..6206844aea 100644 --- a/docs/de/d5b/adts__header_8cc_source.html +++ b/docs/de/d5b/adts__header_8cc_source.html @@ -207,7 +207,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d5c/mpd__flags_8h_source.html b/docs/de/d5c/mpd__flags_8h_source.html index 7d6e9d9eb2..3e37bb31d6 100644 --- a/docs/de/d5c/mpd__flags_8h_source.html +++ b/docs/de/d5c/mpd__flags_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html b/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html index c51358672e..24130e60b7 100644 --- a/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html +++ b/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d6a/classedash__packager_1_1media_1_1webm_1_1WebMMuxer.html b/docs/de/d6a/classedash__packager_1_1media_1_1webm_1_1WebMMuxer.html index fe65c23afa..594ec07a55 100644 --- a/docs/de/d6a/classedash__packager_1_1media_1_1webm_1_1WebMMuxer.html +++ b/docs/de/d6a/classedash__packager_1_1media_1_1webm_1_1WebMMuxer.html @@ -182,7 +182,7 @@ FourCC protection_scheme diff --git a/docs/de/d6e/language__utils_8h_source.html b/docs/de/d6e/language__utils_8h_source.html index c8d18d16de..91e44ca8df 100644 --- a/docs/de/d6e/language__utils_8h_source.html +++ b/docs/de/d6e/language__utils_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d70/http__key__fetcher_8cc_source.html b/docs/de/d70/http__key__fetcher_8cc_source.html index 75ec34aaaa..fd925dbd91 100644 --- a/docs/de/d70/http__key__fetcher_8cc_source.html +++ b/docs/de/d70/http__key__fetcher_8cc_source.html @@ -238,7 +238,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html b/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html index 4cd75f1a63..2887fe857e 100644 --- a/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html +++ b/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d77/webm__content__encodings__client_8cc_source.html b/docs/de/d77/webm__content__encodings__client_8cc_source.html index 82eecab551..c404436137 100644 --- a/docs/de/d77/webm__content__encodings__client_8cc_source.html +++ b/docs/de/d77/webm__content__encodings__client_8cc_source.html @@ -361,7 +361,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d7b/mp4__media__parser_8h_source.html b/docs/de/d7b/mp4__media__parser_8h_source.html index 1e06510a82..19d0af3b58 100644 --- a/docs/de/d7b/mp4__media__parser_8h_source.html +++ b/docs/de/d7b/mp4__media__parser_8h_source.html @@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d83/box__definitions__comparison_8h_source.html b/docs/de/d83/box__definitions__comparison_8h_source.html index 3ac34f73f1..bdd42b930a 100644 --- a/docs/de/d83/box__definitions__comparison_8h_source.html +++ b/docs/de/d83/box__definitions__comparison_8h_source.html @@ -154,428 +154,434 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      65 }
      66 
      67 inline bool operator==(const TrackEncryption& lhs, const TrackEncryption& rhs) {
      -
      68  return lhs.is_encrypted == rhs.is_encrypted &&
      -
      69  lhs.default_iv_size == rhs.default_iv_size &&
      -
      70  lhs.default_kid == rhs.default_kid;
      -
      71 }
      -
      72 
      -
      73 inline bool operator==(const SchemeInfo& lhs, const SchemeInfo& rhs) {
      -
      74  return lhs.track_encryption == rhs.track_encryption;
      -
      75 }
      -
      76 
      -
      77 inline bool operator==(const ProtectionSchemeInfo& lhs,
      -
      78  const ProtectionSchemeInfo& rhs) {
      -
      79  return lhs.format == rhs.format && lhs.type == rhs.type &&
      -
      80  lhs.info == rhs.info;
      -
      81 }
      -
      82 
      -
      83 inline bool operator==(const MovieHeader& lhs, const MovieHeader& rhs) {
      -
      84  return lhs.creation_time == rhs.creation_time &&
      -
      85  lhs.modification_time == rhs.modification_time &&
      -
      86  lhs.timescale == rhs.timescale && lhs.duration == rhs.duration &&
      -
      87  lhs.rate == rhs.rate && lhs.volume == rhs.volume &&
      -
      88  lhs.next_track_id == rhs.next_track_id;
      -
      89 }
      -
      90 
      -
      91 inline bool operator==(const TrackHeader& lhs, const TrackHeader& rhs) {
      -
      92  return lhs.creation_time == rhs.creation_time &&
      -
      93  lhs.modification_time == rhs.modification_time &&
      -
      94  lhs.track_id == rhs.track_id && lhs.duration == rhs.duration &&
      -
      95  lhs.layer == rhs.layer && lhs.alternate_group == rhs.alternate_group &&
      -
      96  lhs.volume == rhs.volume && lhs.width == rhs.width &&
      -
      97  lhs.height == rhs.height;
      -
      98 }
      -
      99 
      -
      100 inline bool operator==(const SampleDescription& lhs,
      -
      101  const SampleDescription& rhs) {
      -
      102  return lhs.type == rhs.type && lhs.video_entries == rhs.video_entries &&
      -
      103  lhs.audio_entries == rhs.audio_entries;
      -
      104 }
      -
      105 
      -
      106 inline bool operator==(const DecodingTime& lhs, const DecodingTime& rhs) {
      -
      107  return lhs.sample_count == rhs.sample_count &&
      -
      108  lhs.sample_delta == rhs.sample_delta;
      -
      109 }
      -
      110 
      -
      111 inline bool operator==(const DecodingTimeToSample& lhs,
      -
      112  const DecodingTimeToSample& rhs) {
      -
      113  return lhs.decoding_time == rhs.decoding_time;
      -
      114 }
      -
      115 
      -
      116 inline bool operator==(const CompositionOffset& lhs,
      -
      117  const CompositionOffset& rhs) {
      -
      118  return lhs.sample_count == rhs.sample_count &&
      -
      119  lhs.sample_offset == rhs.sample_offset;
      -
      120 }
      -
      121 
      -
      122 inline bool operator==(const CompositionTimeToSample& lhs,
      -
      123  const CompositionTimeToSample& rhs) {
      -
      124  return lhs.composition_offset == rhs.composition_offset;
      -
      125 }
      -
      126 
      -
      127 inline bool operator==(const ChunkInfo& lhs, const ChunkInfo& rhs) {
      -
      128  return lhs.first_chunk == rhs.first_chunk &&
      -
      129  lhs.samples_per_chunk == rhs.samples_per_chunk &&
      -
      130  lhs.sample_description_index == rhs.sample_description_index;
      -
      131 }
      -
      132 
      -
      133 inline bool operator==(const SampleToChunk& lhs, const SampleToChunk& rhs) {
      -
      134  return lhs.chunk_info == rhs.chunk_info;
      -
      135 }
      -
      136 
      -
      137 inline bool operator==(const SampleSize& lhs, const SampleSize& rhs) {
      -
      138  return lhs.sample_size == rhs.sample_size &&
      -
      139  lhs.sample_count == rhs.sample_count && lhs.sizes == rhs.sizes;
      -
      140 }
      -
      141 
      -
      142 inline bool operator==(const CompactSampleSize& lhs,
      -
      143  const CompactSampleSize& rhs) {
      -
      144  return lhs.field_size == rhs.field_size && lhs.sizes == rhs.sizes;
      -
      145 }
      -
      146 
      -
      147 inline bool operator==(const ChunkLargeOffset& lhs,
      -
      148  const ChunkLargeOffset& rhs) {
      -
      149  return lhs.offsets == rhs.offsets;
      -
      150 }
      -
      151 
      -
      152 inline bool operator==(const SyncSample& lhs, const SyncSample& rhs) {
      -
      153  return lhs.sample_number == rhs.sample_number;
      -
      154 }
      -
      155 
      -
      156 inline bool operator==(const SampleTable& lhs, const SampleTable& rhs) {
      -
      157  return lhs.description == rhs.description &&
      -
      158  lhs.decoding_time_to_sample == rhs.decoding_time_to_sample &&
      -
      159  lhs.composition_time_to_sample == rhs.composition_time_to_sample &&
      -
      160  lhs.sample_to_chunk == rhs.sample_to_chunk &&
      -
      161  lhs.sample_size == rhs.sample_size &&
      -
      162  lhs.chunk_large_offset == rhs.chunk_large_offset &&
      -
      163  lhs.sync_sample == rhs.sync_sample;
      -
      164 }
      -
      165 
      -
      166 inline bool operator==(const EditListEntry& lhs, const EditListEntry& rhs) {
      -
      167  return lhs.segment_duration == rhs.segment_duration &&
      -
      168  lhs.media_time == rhs.media_time &&
      -
      169  lhs.media_rate_integer == rhs.media_rate_integer &&
      -
      170  lhs.media_rate_fraction == rhs.media_rate_fraction;
      -
      171 }
      -
      172 
      -
      173 inline bool operator==(const EditList& lhs, const EditList& rhs) {
      -
      174  return lhs.edits == rhs.edits;
      -
      175 }
      -
      176 
      -
      177 inline bool operator==(const Edit& lhs, const Edit& rhs) {
      -
      178  return lhs.list == rhs.list;
      -
      179 }
      -
      180 
      -
      181 inline bool operator==(const HandlerReference& lhs,
      -
      182  const HandlerReference& rhs) {
      -
      183  return lhs.handler_type == rhs.handler_type;
      -
      184 }
      -
      185 
      -
      186 inline bool operator==(const Language& lhs,
      -
      187  const Language& rhs) {
      -
      188  return lhs.code == rhs.code;
      -
      189 }
      -
      190 
      -
      191 inline bool operator==(const PrivFrame& lhs, const PrivFrame& rhs) {
      -
      192  return lhs.owner == rhs.owner && lhs.value == rhs.value;
      -
      193 }
      -
      194 
      -
      195 inline bool operator==(const ID3v2& lhs, const ID3v2& rhs) {
      -
      196  return lhs.language == rhs.language && lhs.private_frame == rhs.private_frame;
      -
      197 }
      -
      198 
      -
      199 inline bool operator==(const Metadata& lhs, const Metadata& rhs) {
      -
      200  return lhs.handler == rhs.handler && lhs.id3v2 == rhs.id3v2;
      -
      201 }
      -
      202 
      -
      203 inline bool operator==(const CodecConfigurationRecord& lhs,
      -
      204  const CodecConfigurationRecord& rhs) {
      -
      205  return lhs.data == rhs.data;
      -
      206 }
      -
      207 
      -
      208 inline bool operator==(const PixelAspectRatio& lhs,
      -
      209  const PixelAspectRatio& rhs) {
      -
      210  return lhs.h_spacing == rhs.h_spacing && lhs.v_spacing == rhs.v_spacing;
      -
      211 }
      -
      212 
      -
      213 inline bool operator==(const VideoSampleEntry& lhs,
      -
      214  const VideoSampleEntry& rhs) {
      -
      215  return lhs.format == rhs.format &&
      -
      216  lhs.data_reference_index == rhs.data_reference_index &&
      -
      217  lhs.width == rhs.width && lhs.height == rhs.height &&
      -
      218  lhs.pixel_aspect == rhs.pixel_aspect && lhs.sinf == rhs.sinf &&
      -
      219  lhs.codec_config_record == rhs.codec_config_record;
      -
      220 }
      -
      221 
      -
      222 inline bool operator==(const ESDescriptor& lhs, const ESDescriptor& rhs) {
      -
      223  return lhs.esid() == rhs.esid() && lhs.object_type() == rhs.object_type() &&
      -
      224  lhs.max_bitrate() == rhs.max_bitrate() &&
      -
      225  lhs.avg_bitrate() == rhs.avg_bitrate() &&
      -
      226  lhs.decoder_specific_info() == rhs.decoder_specific_info();
      -
      227 }
      -
      228 
      -
      229 inline bool operator==(const ElementaryStreamDescriptor& lhs,
      -
      230  const ElementaryStreamDescriptor& rhs) {
      -
      231  return lhs.es_descriptor == rhs.es_descriptor;
      -
      232 }
      -
      233 
      -
      234 inline bool operator==(const DTSSpecific& lhs,
      -
      235  const DTSSpecific& rhs) {
      -
      236  return lhs.sampling_frequency == rhs.sampling_frequency &&
      -
      237  lhs.max_bitrate == rhs.max_bitrate &&
      -
      238  lhs.avg_bitrate == rhs.avg_bitrate &&
      -
      239  lhs.pcm_sample_depth == rhs.pcm_sample_depth &&
      -
      240  lhs.extra_data == rhs.extra_data;
      -
      241 }
      -
      242 
      -
      243 inline bool operator==(const AC3Specific& lhs,
      -
      244  const AC3Specific& rhs) {
      -
      245  return lhs.data == rhs.data;
      -
      246 }
      -
      247 
      -
      248 inline bool operator==(const EC3Specific& lhs,
      -
      249  const EC3Specific& rhs) {
      -
      250  return lhs.data == rhs.data;
      -
      251 }
      -
      252 
      -
      253 inline bool operator==(const AudioSampleEntry& lhs,
      -
      254  const AudioSampleEntry& rhs) {
      -
      255  return lhs.format == rhs.format &&
      -
      256  lhs.data_reference_index == rhs.data_reference_index &&
      -
      257  lhs.channelcount == rhs.channelcount &&
      -
      258  lhs.samplesize == rhs.samplesize && lhs.samplerate == rhs.samplerate &&
      -
      259  lhs.sinf == rhs.sinf && lhs.esds == rhs.esds && lhs.ddts == rhs.ddts &&
      -
      260  lhs.dac3 == rhs.dac3 && lhs.dec3 == rhs.dec3;
      -
      261 }
      -
      262 
      -
      263 inline bool operator==(const WebVTTConfigurationBox& lhs,
      -
      264  const WebVTTConfigurationBox& rhs) {
      -
      265  return lhs.config == rhs.config;
      -
      266 }
      -
      267 
      -
      268 inline bool operator==(const WebVTTSourceLabelBox& lhs,
      -
      269  const WebVTTSourceLabelBox& rhs) {
      -
      270  return lhs.source_label == rhs.source_label;
      -
      271 }
      -
      272 
      -
      273 inline bool operator==(const TextSampleEntry& lhs, const TextSampleEntry& rhs) {
      -
      274  return lhs.config == rhs.config && lhs.label == rhs.label;
      -
      275 }
      -
      276 
      -
      277 inline bool operator==(const MediaHeader& lhs, const MediaHeader& rhs) {
      -
      278  return lhs.creation_time == rhs.creation_time &&
      -
      279  lhs.modification_time == rhs.modification_time &&
      -
      280  lhs.timescale == rhs.timescale && lhs.duration == rhs.duration &&
      -
      281  lhs.language == rhs.language;
      -
      282 }
      -
      283 
      -
      284 inline bool operator==(const VideoMediaHeader& lhs,
      -
      285  const VideoMediaHeader& rhs) {
      -
      286  return lhs.graphicsmode == rhs.graphicsmode &&
      -
      287  lhs.opcolor_red == rhs.opcolor_red &&
      -
      288  lhs.opcolor_green == rhs.opcolor_green &&
      -
      289  lhs.opcolor_blue == rhs.opcolor_blue;
      -
      290 }
      -
      291 
      -
      292 inline bool operator==(const SoundMediaHeader& lhs,
      -
      293  const SoundMediaHeader& rhs) {
      -
      294  return lhs.balance == rhs.balance;
      -
      295 }
      -
      296 
      -
      297 inline bool operator==(const SubtitleMediaHeader& lhs,
      -
      298  const SubtitleMediaHeader& rhs) {
      -
      299  return true;
      -
      300 }
      -
      301 
      -
      302 inline bool operator==(const DataEntryUrl& lhs, const DataEntryUrl& rhs) {
      -
      303  return lhs.flags == rhs.flags && lhs.location == rhs.location;
      -
      304 }
      -
      305 
      -
      306 inline bool operator==(const DataReference& lhs, const DataReference& rhs) {
      -
      307  return lhs.data_entry == rhs.data_entry;
      -
      308 }
      -
      309 
      -
      310 inline bool operator==(const DataInformation& lhs, const DataInformation& rhs) {
      -
      311  return lhs.dref == rhs.dref;
      -
      312 }
      -
      313 
      -
      314 inline bool operator==(const MediaInformation& lhs,
      -
      315  const MediaInformation& rhs) {
      -
      316  return lhs.dinf == rhs.dinf && lhs.sample_table == rhs.sample_table &&
      -
      317  lhs.vmhd == rhs.vmhd && lhs.smhd == rhs.smhd;
      -
      318 }
      -
      319 
      -
      320 inline bool operator==(const Media& lhs, const Media& rhs) {
      -
      321  return lhs.header == rhs.header && lhs.handler == rhs.handler &&
      -
      322  lhs.information == rhs.information;
      -
      323 }
      -
      324 
      -
      325 inline bool operator==(const Track& lhs, const Track& rhs) {
      -
      326  return lhs.header == rhs.header && lhs.media == rhs.media &&
      -
      327  lhs.edit == rhs.edit && lhs.sample_encryption == rhs.sample_encryption;
      -
      328 }
      -
      329 
      -
      330 inline bool operator==(const MovieExtendsHeader& lhs,
      -
      331  const MovieExtendsHeader& rhs) {
      -
      332  return lhs.fragment_duration == rhs.fragment_duration;
      -
      333 }
      -
      334 
      -
      335 inline bool operator==(const TrackExtends& lhs, const TrackExtends& rhs) {
      -
      336  return lhs.track_id == rhs.track_id &&
      -
      337  lhs.default_sample_description_index ==
      -
      338  rhs.default_sample_description_index &&
      -
      339  lhs.default_sample_duration == rhs.default_sample_duration &&
      -
      340  lhs.default_sample_size == rhs.default_sample_size &&
      -
      341  lhs.default_sample_flags == rhs.default_sample_flags;
      -
      342 }
      -
      343 
      -
      344 inline bool operator==(const MovieExtends& lhs, const MovieExtends& rhs) {
      -
      345  return lhs.header == rhs.header && lhs.tracks == rhs.tracks;
      -
      346 }
      -
      347 
      -
      348 inline bool operator==(const Movie& lhs, const Movie& rhs) {
      -
      349  return lhs.header == rhs.header && lhs.extends == rhs.extends &&
      -
      350  lhs.tracks == rhs.tracks && lhs.pssh == rhs.pssh;
      -
      351 }
      -
      352 
      -
      353 inline bool operator==(const TrackFragmentDecodeTime& lhs,
      -
      354  const TrackFragmentDecodeTime& rhs) {
      -
      355  return lhs.decode_time == rhs.decode_time;
      -
      356 }
      -
      357 
      -
      358 inline bool operator==(const MovieFragmentHeader& lhs,
      -
      359  const MovieFragmentHeader& rhs) {
      -
      360  return lhs.sequence_number == rhs.sequence_number;
      -
      361 }
      -
      362 
      -
      363 inline bool operator==(const TrackFragmentHeader& lhs,
      -
      364  const TrackFragmentHeader& rhs) {
      -
      365  return lhs.flags == rhs.flags && lhs.track_id == rhs.track_id &&
      -
      366  lhs.sample_description_index == rhs.sample_description_index &&
      -
      367  lhs.default_sample_duration == rhs.default_sample_duration &&
      -
      368  lhs.default_sample_size == rhs.default_sample_size &&
      -
      369  lhs.default_sample_flags == rhs.default_sample_flags;
      -
      370 }
      -
      371 
      -
      372 inline bool operator==(const TrackFragmentRun& lhs,
      -
      373  const TrackFragmentRun& rhs) {
      -
      374  return lhs.flags == rhs.flags && lhs.sample_count == rhs.sample_count &&
      -
      375  lhs.data_offset == rhs.data_offset &&
      -
      376  lhs.sample_flags == rhs.sample_flags &&
      -
      377  lhs.sample_sizes == rhs.sample_sizes &&
      -
      378  lhs.sample_durations == rhs.sample_durations &&
      -
      379  lhs.sample_composition_time_offsets ==
      -
      380  rhs.sample_composition_time_offsets;
      -
      381 }
      -
      382 
      -
      383 inline bool operator==(const SampleToGroupEntry& lhs,
      -
      384  const SampleToGroupEntry& rhs) {
      -
      385  return lhs.sample_count == rhs.sample_count &&
      -
      386  lhs.group_description_index == rhs.group_description_index;
      -
      387 }
      -
      388 
      -
      389 inline bool operator==(const SampleToGroup& lhs,
      -
      390  const SampleToGroup& rhs) {
      -
      391  return lhs.grouping_type == rhs.grouping_type &&
      -
      392  lhs.grouping_type_parameter == rhs.grouping_type_parameter &&
      -
      393  lhs.entries == rhs.entries;
      -
      394 }
      -
      395 
      -
      396 inline bool operator==(const CencSampleEncryptionInfoEntry& lhs,
      -
      397  const CencSampleEncryptionInfoEntry& rhs) {
      -
      398  return lhs.is_encrypted == rhs.is_encrypted &&
      -
      399  lhs.iv_size == rhs.iv_size &&
      -
      400  lhs.key_id == rhs.key_id;
      -
      401 }
      -
      402 
      -
      403 inline bool operator==(const SampleGroupDescription& lhs,
      -
      404  const SampleGroupDescription& rhs) {
      -
      405  return lhs.grouping_type == rhs.grouping_type &&
      -
      406  lhs.entries == rhs.entries;
      +
      68  return lhs.default_is_protected == rhs.default_is_protected &&
      +
      69  lhs.default_per_sample_iv_size == rhs.default_per_sample_iv_size &&
      +
      70  lhs.default_kid == rhs.default_kid &&
      +
      71  lhs.default_crypt_byte_block == rhs.default_crypt_byte_block &&
      +
      72  lhs.default_skip_byte_block == rhs.default_skip_byte_block &&
      +
      73  lhs.default_constant_iv == rhs.default_constant_iv;
      +
      74 }
      +
      75 
      +
      76 inline bool operator==(const SchemeInfo& lhs, const SchemeInfo& rhs) {
      +
      77  return lhs.track_encryption == rhs.track_encryption;
      +
      78 }
      +
      79 
      +
      80 inline bool operator==(const ProtectionSchemeInfo& lhs,
      +
      81  const ProtectionSchemeInfo& rhs) {
      +
      82  return lhs.format == rhs.format && lhs.type == rhs.type &&
      +
      83  lhs.info == rhs.info;
      +
      84 }
      +
      85 
      +
      86 inline bool operator==(const MovieHeader& lhs, const MovieHeader& rhs) {
      +
      87  return lhs.creation_time == rhs.creation_time &&
      +
      88  lhs.modification_time == rhs.modification_time &&
      +
      89  lhs.timescale == rhs.timescale && lhs.duration == rhs.duration &&
      +
      90  lhs.rate == rhs.rate && lhs.volume == rhs.volume &&
      +
      91  lhs.next_track_id == rhs.next_track_id;
      +
      92 }
      +
      93 
      +
      94 inline bool operator==(const TrackHeader& lhs, const TrackHeader& rhs) {
      +
      95  return lhs.creation_time == rhs.creation_time &&
      +
      96  lhs.modification_time == rhs.modification_time &&
      +
      97  lhs.track_id == rhs.track_id && lhs.duration == rhs.duration &&
      +
      98  lhs.layer == rhs.layer && lhs.alternate_group == rhs.alternate_group &&
      +
      99  lhs.volume == rhs.volume && lhs.width == rhs.width &&
      +
      100  lhs.height == rhs.height;
      +
      101 }
      +
      102 
      +
      103 inline bool operator==(const SampleDescription& lhs,
      +
      104  const SampleDescription& rhs) {
      +
      105  return lhs.type == rhs.type && lhs.video_entries == rhs.video_entries &&
      +
      106  lhs.audio_entries == rhs.audio_entries;
      +
      107 }
      +
      108 
      +
      109 inline bool operator==(const DecodingTime& lhs, const DecodingTime& rhs) {
      +
      110  return lhs.sample_count == rhs.sample_count &&
      +
      111  lhs.sample_delta == rhs.sample_delta;
      +
      112 }
      +
      113 
      +
      114 inline bool operator==(const DecodingTimeToSample& lhs,
      +
      115  const DecodingTimeToSample& rhs) {
      +
      116  return lhs.decoding_time == rhs.decoding_time;
      +
      117 }
      +
      118 
      +
      119 inline bool operator==(const CompositionOffset& lhs,
      +
      120  const CompositionOffset& rhs) {
      +
      121  return lhs.sample_count == rhs.sample_count &&
      +
      122  lhs.sample_offset == rhs.sample_offset;
      +
      123 }
      +
      124 
      +
      125 inline bool operator==(const CompositionTimeToSample& lhs,
      +
      126  const CompositionTimeToSample& rhs) {
      +
      127  return lhs.composition_offset == rhs.composition_offset;
      +
      128 }
      +
      129 
      +
      130 inline bool operator==(const ChunkInfo& lhs, const ChunkInfo& rhs) {
      +
      131  return lhs.first_chunk == rhs.first_chunk &&
      +
      132  lhs.samples_per_chunk == rhs.samples_per_chunk &&
      +
      133  lhs.sample_description_index == rhs.sample_description_index;
      +
      134 }
      +
      135 
      +
      136 inline bool operator==(const SampleToChunk& lhs, const SampleToChunk& rhs) {
      +
      137  return lhs.chunk_info == rhs.chunk_info;
      +
      138 }
      +
      139 
      +
      140 inline bool operator==(const SampleSize& lhs, const SampleSize& rhs) {
      +
      141  return lhs.sample_size == rhs.sample_size &&
      +
      142  lhs.sample_count == rhs.sample_count && lhs.sizes == rhs.sizes;
      +
      143 }
      +
      144 
      +
      145 inline bool operator==(const CompactSampleSize& lhs,
      +
      146  const CompactSampleSize& rhs) {
      +
      147  return lhs.field_size == rhs.field_size && lhs.sizes == rhs.sizes;
      +
      148 }
      +
      149 
      +
      150 inline bool operator==(const ChunkLargeOffset& lhs,
      +
      151  const ChunkLargeOffset& rhs) {
      +
      152  return lhs.offsets == rhs.offsets;
      +
      153 }
      +
      154 
      +
      155 inline bool operator==(const SyncSample& lhs, const SyncSample& rhs) {
      +
      156  return lhs.sample_number == rhs.sample_number;
      +
      157 }
      +
      158 
      +
      159 inline bool operator==(const SampleTable& lhs, const SampleTable& rhs) {
      +
      160  return lhs.description == rhs.description &&
      +
      161  lhs.decoding_time_to_sample == rhs.decoding_time_to_sample &&
      +
      162  lhs.composition_time_to_sample == rhs.composition_time_to_sample &&
      +
      163  lhs.sample_to_chunk == rhs.sample_to_chunk &&
      +
      164  lhs.sample_size == rhs.sample_size &&
      +
      165  lhs.chunk_large_offset == rhs.chunk_large_offset &&
      +
      166  lhs.sync_sample == rhs.sync_sample;
      +
      167 }
      +
      168 
      +
      169 inline bool operator==(const EditListEntry& lhs, const EditListEntry& rhs) {
      +
      170  return lhs.segment_duration == rhs.segment_duration &&
      +
      171  lhs.media_time == rhs.media_time &&
      +
      172  lhs.media_rate_integer == rhs.media_rate_integer &&
      +
      173  lhs.media_rate_fraction == rhs.media_rate_fraction;
      +
      174 }
      +
      175 
      +
      176 inline bool operator==(const EditList& lhs, const EditList& rhs) {
      +
      177  return lhs.edits == rhs.edits;
      +
      178 }
      +
      179 
      +
      180 inline bool operator==(const Edit& lhs, const Edit& rhs) {
      +
      181  return lhs.list == rhs.list;
      +
      182 }
      +
      183 
      +
      184 inline bool operator==(const HandlerReference& lhs,
      +
      185  const HandlerReference& rhs) {
      +
      186  return lhs.handler_type == rhs.handler_type;
      +
      187 }
      +
      188 
      +
      189 inline bool operator==(const Language& lhs,
      +
      190  const Language& rhs) {
      +
      191  return lhs.code == rhs.code;
      +
      192 }
      +
      193 
      +
      194 inline bool operator==(const PrivFrame& lhs, const PrivFrame& rhs) {
      +
      195  return lhs.owner == rhs.owner && lhs.value == rhs.value;
      +
      196 }
      +
      197 
      +
      198 inline bool operator==(const ID3v2& lhs, const ID3v2& rhs) {
      +
      199  return lhs.language == rhs.language && lhs.private_frame == rhs.private_frame;
      +
      200 }
      +
      201 
      +
      202 inline bool operator==(const Metadata& lhs, const Metadata& rhs) {
      +
      203  return lhs.handler == rhs.handler && lhs.id3v2 == rhs.id3v2;
      +
      204 }
      +
      205 
      +
      206 inline bool operator==(const CodecConfigurationRecord& lhs,
      +
      207  const CodecConfigurationRecord& rhs) {
      +
      208  return lhs.data == rhs.data;
      +
      209 }
      +
      210 
      +
      211 inline bool operator==(const PixelAspectRatio& lhs,
      +
      212  const PixelAspectRatio& rhs) {
      +
      213  return lhs.h_spacing == rhs.h_spacing && lhs.v_spacing == rhs.v_spacing;
      +
      214 }
      +
      215 
      +
      216 inline bool operator==(const VideoSampleEntry& lhs,
      +
      217  const VideoSampleEntry& rhs) {
      +
      218  return lhs.format == rhs.format &&
      +
      219  lhs.data_reference_index == rhs.data_reference_index &&
      +
      220  lhs.width == rhs.width && lhs.height == rhs.height &&
      +
      221  lhs.pixel_aspect == rhs.pixel_aspect && lhs.sinf == rhs.sinf &&
      +
      222  lhs.codec_config_record == rhs.codec_config_record;
      +
      223 }
      +
      224 
      +
      225 inline bool operator==(const ESDescriptor& lhs, const ESDescriptor& rhs) {
      +
      226  return lhs.esid() == rhs.esid() && lhs.object_type() == rhs.object_type() &&
      +
      227  lhs.max_bitrate() == rhs.max_bitrate() &&
      +
      228  lhs.avg_bitrate() == rhs.avg_bitrate() &&
      +
      229  lhs.decoder_specific_info() == rhs.decoder_specific_info();
      +
      230 }
      +
      231 
      +
      232 inline bool operator==(const ElementaryStreamDescriptor& lhs,
      +
      233  const ElementaryStreamDescriptor& rhs) {
      +
      234  return lhs.es_descriptor == rhs.es_descriptor;
      +
      235 }
      +
      236 
      +
      237 inline bool operator==(const DTSSpecific& lhs,
      +
      238  const DTSSpecific& rhs) {
      +
      239  return lhs.sampling_frequency == rhs.sampling_frequency &&
      +
      240  lhs.max_bitrate == rhs.max_bitrate &&
      +
      241  lhs.avg_bitrate == rhs.avg_bitrate &&
      +
      242  lhs.pcm_sample_depth == rhs.pcm_sample_depth &&
      +
      243  lhs.extra_data == rhs.extra_data;
      +
      244 }
      +
      245 
      +
      246 inline bool operator==(const AC3Specific& lhs,
      +
      247  const AC3Specific& rhs) {
      +
      248  return lhs.data == rhs.data;
      +
      249 }
      +
      250 
      +
      251 inline bool operator==(const EC3Specific& lhs,
      +
      252  const EC3Specific& rhs) {
      +
      253  return lhs.data == rhs.data;
      +
      254 }
      +
      255 
      +
      256 inline bool operator==(const AudioSampleEntry& lhs,
      +
      257  const AudioSampleEntry& rhs) {
      +
      258  return lhs.format == rhs.format &&
      +
      259  lhs.data_reference_index == rhs.data_reference_index &&
      +
      260  lhs.channelcount == rhs.channelcount &&
      +
      261  lhs.samplesize == rhs.samplesize && lhs.samplerate == rhs.samplerate &&
      +
      262  lhs.sinf == rhs.sinf && lhs.esds == rhs.esds && lhs.ddts == rhs.ddts &&
      +
      263  lhs.dac3 == rhs.dac3 && lhs.dec3 == rhs.dec3;
      +
      264 }
      +
      265 
      +
      266 inline bool operator==(const WebVTTConfigurationBox& lhs,
      +
      267  const WebVTTConfigurationBox& rhs) {
      +
      268  return lhs.config == rhs.config;
      +
      269 }
      +
      270 
      +
      271 inline bool operator==(const WebVTTSourceLabelBox& lhs,
      +
      272  const WebVTTSourceLabelBox& rhs) {
      +
      273  return lhs.source_label == rhs.source_label;
      +
      274 }
      +
      275 
      +
      276 inline bool operator==(const TextSampleEntry& lhs, const TextSampleEntry& rhs) {
      +
      277  return lhs.config == rhs.config && lhs.label == rhs.label;
      +
      278 }
      +
      279 
      +
      280 inline bool operator==(const MediaHeader& lhs, const MediaHeader& rhs) {
      +
      281  return lhs.creation_time == rhs.creation_time &&
      +
      282  lhs.modification_time == rhs.modification_time &&
      +
      283  lhs.timescale == rhs.timescale && lhs.duration == rhs.duration &&
      +
      284  lhs.language == rhs.language;
      +
      285 }
      +
      286 
      +
      287 inline bool operator==(const VideoMediaHeader& lhs,
      +
      288  const VideoMediaHeader& rhs) {
      +
      289  return lhs.graphicsmode == rhs.graphicsmode &&
      +
      290  lhs.opcolor_red == rhs.opcolor_red &&
      +
      291  lhs.opcolor_green == rhs.opcolor_green &&
      +
      292  lhs.opcolor_blue == rhs.opcolor_blue;
      +
      293 }
      +
      294 
      +
      295 inline bool operator==(const SoundMediaHeader& lhs,
      +
      296  const SoundMediaHeader& rhs) {
      +
      297  return lhs.balance == rhs.balance;
      +
      298 }
      +
      299 
      +
      300 inline bool operator==(const SubtitleMediaHeader& lhs,
      +
      301  const SubtitleMediaHeader& rhs) {
      +
      302  return true;
      +
      303 }
      +
      304 
      +
      305 inline bool operator==(const DataEntryUrl& lhs, const DataEntryUrl& rhs) {
      +
      306  return lhs.flags == rhs.flags && lhs.location == rhs.location;
      +
      307 }
      +
      308 
      +
      309 inline bool operator==(const DataReference& lhs, const DataReference& rhs) {
      +
      310  return lhs.data_entry == rhs.data_entry;
      +
      311 }
      +
      312 
      +
      313 inline bool operator==(const DataInformation& lhs, const DataInformation& rhs) {
      +
      314  return lhs.dref == rhs.dref;
      +
      315 }
      +
      316 
      +
      317 inline bool operator==(const MediaInformation& lhs,
      +
      318  const MediaInformation& rhs) {
      +
      319  return lhs.dinf == rhs.dinf && lhs.sample_table == rhs.sample_table &&
      +
      320  lhs.vmhd == rhs.vmhd && lhs.smhd == rhs.smhd;
      +
      321 }
      +
      322 
      +
      323 inline bool operator==(const Media& lhs, const Media& rhs) {
      +
      324  return lhs.header == rhs.header && lhs.handler == rhs.handler &&
      +
      325  lhs.information == rhs.information;
      +
      326 }
      +
      327 
      +
      328 inline bool operator==(const Track& lhs, const Track& rhs) {
      +
      329  return lhs.header == rhs.header && lhs.media == rhs.media &&
      +
      330  lhs.edit == rhs.edit && lhs.sample_encryption == rhs.sample_encryption;
      +
      331 }
      +
      332 
      +
      333 inline bool operator==(const MovieExtendsHeader& lhs,
      +
      334  const MovieExtendsHeader& rhs) {
      +
      335  return lhs.fragment_duration == rhs.fragment_duration;
      +
      336 }
      +
      337 
      +
      338 inline bool operator==(const TrackExtends& lhs, const TrackExtends& rhs) {
      +
      339  return lhs.track_id == rhs.track_id &&
      +
      340  lhs.default_sample_description_index ==
      +
      341  rhs.default_sample_description_index &&
      +
      342  lhs.default_sample_duration == rhs.default_sample_duration &&
      +
      343  lhs.default_sample_size == rhs.default_sample_size &&
      +
      344  lhs.default_sample_flags == rhs.default_sample_flags;
      +
      345 }
      +
      346 
      +
      347 inline bool operator==(const MovieExtends& lhs, const MovieExtends& rhs) {
      +
      348  return lhs.header == rhs.header && lhs.tracks == rhs.tracks;
      +
      349 }
      +
      350 
      +
      351 inline bool operator==(const Movie& lhs, const Movie& rhs) {
      +
      352  return lhs.header == rhs.header && lhs.extends == rhs.extends &&
      +
      353  lhs.tracks == rhs.tracks && lhs.pssh == rhs.pssh;
      +
      354 }
      +
      355 
      +
      356 inline bool operator==(const TrackFragmentDecodeTime& lhs,
      +
      357  const TrackFragmentDecodeTime& rhs) {
      +
      358  return lhs.decode_time == rhs.decode_time;
      +
      359 }
      +
      360 
      +
      361 inline bool operator==(const MovieFragmentHeader& lhs,
      +
      362  const MovieFragmentHeader& rhs) {
      +
      363  return lhs.sequence_number == rhs.sequence_number;
      +
      364 }
      +
      365 
      +
      366 inline bool operator==(const TrackFragmentHeader& lhs,
      +
      367  const TrackFragmentHeader& rhs) {
      +
      368  return lhs.flags == rhs.flags && lhs.track_id == rhs.track_id &&
      +
      369  lhs.sample_description_index == rhs.sample_description_index &&
      +
      370  lhs.default_sample_duration == rhs.default_sample_duration &&
      +
      371  lhs.default_sample_size == rhs.default_sample_size &&
      +
      372  lhs.default_sample_flags == rhs.default_sample_flags;
      +
      373 }
      +
      374 
      +
      375 inline bool operator==(const TrackFragmentRun& lhs,
      +
      376  const TrackFragmentRun& rhs) {
      +
      377  return lhs.flags == rhs.flags && lhs.sample_count == rhs.sample_count &&
      +
      378  lhs.data_offset == rhs.data_offset &&
      +
      379  lhs.sample_flags == rhs.sample_flags &&
      +
      380  lhs.sample_sizes == rhs.sample_sizes &&
      +
      381  lhs.sample_durations == rhs.sample_durations &&
      +
      382  lhs.sample_composition_time_offsets ==
      +
      383  rhs.sample_composition_time_offsets;
      +
      384 }
      +
      385 
      +
      386 inline bool operator==(const SampleToGroupEntry& lhs,
      +
      387  const SampleToGroupEntry& rhs) {
      +
      388  return lhs.sample_count == rhs.sample_count &&
      +
      389  lhs.group_description_index == rhs.group_description_index;
      +
      390 }
      +
      391 
      +
      392 inline bool operator==(const SampleToGroup& lhs,
      +
      393  const SampleToGroup& rhs) {
      +
      394  return lhs.grouping_type == rhs.grouping_type &&
      +
      395  lhs.grouping_type_parameter == rhs.grouping_type_parameter &&
      +
      396  lhs.entries == rhs.entries;
      +
      397 }
      +
      398 
      +
      399 inline bool operator==(const CencSampleEncryptionInfoEntry& lhs,
      +
      400  const CencSampleEncryptionInfoEntry& rhs) {
      +
      401  return lhs.is_protected == rhs.is_protected &&
      +
      402  lhs.per_sample_iv_size == rhs.per_sample_iv_size &&
      +
      403  lhs.key_id == rhs.key_id &&
      +
      404  lhs.crypt_byte_block == rhs.crypt_byte_block &&
      +
      405  lhs.skip_byte_block == rhs.skip_byte_block &&
      +
      406  lhs.constant_iv == rhs.constant_iv;
      407 }
      408 
      -
      409 inline bool operator==(const TrackFragment& lhs, const TrackFragment& rhs) {
      -
      410  return lhs.header == rhs.header && lhs.runs == rhs.runs &&
      -
      411  lhs.decode_time == rhs.decode_time &&
      -
      412  lhs.auxiliary_offset == rhs.auxiliary_offset &&
      -
      413  lhs.auxiliary_size == rhs.auxiliary_size &&
      -
      414  lhs.sample_encryption == rhs.sample_encryption;
      -
      415 }
      -
      416 
      -
      417 inline bool operator==(const MovieFragment& lhs, const MovieFragment& rhs) {
      -
      418  return lhs.header == rhs.header && lhs.tracks == rhs.tracks &&
      -
      419  lhs.pssh == rhs.pssh;
      -
      420 }
      -
      421 
      -
      422 inline bool operator==(const SegmentReference& lhs,
      -
      423  const SegmentReference& rhs) {
      -
      424  return lhs.reference_type == rhs.reference_type &&
      -
      425  lhs.referenced_size == rhs.referenced_size &&
      -
      426  lhs.subsegment_duration == rhs.subsegment_duration &&
      -
      427  lhs.starts_with_sap == rhs.starts_with_sap &&
      -
      428  lhs.sap_type == rhs.sap_type &&
      -
      429  lhs.sap_delta_time == rhs.sap_delta_time;
      -
      430 }
      -
      431 
      -
      432 inline bool operator==(const SegmentIndex& lhs, const SegmentIndex& rhs) {
      -
      433  return lhs.reference_id == rhs.reference_id &&
      -
      434  lhs.timescale == rhs.timescale &&
      -
      435  lhs.earliest_presentation_time == rhs.earliest_presentation_time &&
      -
      436  lhs.first_offset == rhs.first_offset &&
      -
      437  lhs.references == rhs.references;
      -
      438 }
      -
      439 
      -
      440 inline bool operator==(const CueSourceIDBox& lhs,
      -
      441  const CueSourceIDBox& rhs) {
      -
      442  return lhs.source_id == rhs.source_id;
      -
      443 }
      -
      444 
      -
      445 inline bool operator==(const CueTimeBox& lhs,
      -
      446  const CueTimeBox& rhs) {
      -
      447  return lhs.cue_current_time == rhs.cue_current_time;
      -
      448 }
      -
      449 
      -
      450 inline bool operator==(const CueIDBox& lhs,
      -
      451  const CueIDBox& rhs) {
      -
      452  return lhs.cue_id == rhs.cue_id;
      -
      453 }
      -
      454 
      -
      455 inline bool operator==(const CueSettingsBox& lhs,
      -
      456  const CueSettingsBox& rhs) {
      -
      457  return lhs.settings == rhs.settings;
      -
      458 }
      -
      459 
      -
      460 inline bool operator==(const CuePayloadBox& lhs,
      -
      461  const CuePayloadBox& rhs) {
      -
      462  return lhs.cue_text == rhs.cue_text;
      -
      463 }
      -
      464 
      -
      465 inline bool operator==(const VTTEmptyCueBox& lhs, const VTTEmptyCueBox& rhs) {
      -
      466  return true;
      -
      467 }
      -
      468 
      -
      469 inline bool operator==(const VTTAdditionalTextBox& lhs,
      -
      470  const VTTAdditionalTextBox& rhs) {
      -
      471  return lhs.cue_additional_text == rhs.cue_additional_text;
      -
      472 }
      -
      473 
      -
      474 inline bool operator==(const VTTCueBox& lhs,
      -
      475  const VTTCueBox& rhs) {
      -
      476  return lhs.cue_source_id == rhs.cue_source_id && lhs.cue_id == rhs.cue_id &&
      -
      477  lhs.cue_time == rhs.cue_time && lhs.cue_settings == rhs.cue_settings &&
      -
      478  lhs.cue_payload == rhs.cue_payload;
      -
      479 }
      -
      480 
      -
      481 } // namespace mp4
      -
      482 } // namespace media
      -
      483 } // namespace edash_packager
      -
      484 
      -
      485 #endif // MEDIA_FORMATS_MP4_BOX_DEFINITIONS_COMPARISON_H_
      +
      409 inline bool operator==(const SampleGroupDescription& lhs,
      +
      410  const SampleGroupDescription& rhs) {
      +
      411  return lhs.grouping_type == rhs.grouping_type &&
      +
      412  lhs.entries == rhs.entries;
      +
      413 }
      +
      414 
      +
      415 inline bool operator==(const TrackFragment& lhs, const TrackFragment& rhs) {
      +
      416  return lhs.header == rhs.header && lhs.runs == rhs.runs &&
      +
      417  lhs.decode_time == rhs.decode_time &&
      +
      418  lhs.auxiliary_offset == rhs.auxiliary_offset &&
      +
      419  lhs.auxiliary_size == rhs.auxiliary_size &&
      +
      420  lhs.sample_encryption == rhs.sample_encryption;
      +
      421 }
      +
      422 
      +
      423 inline bool operator==(const MovieFragment& lhs, const MovieFragment& rhs) {
      +
      424  return lhs.header == rhs.header && lhs.tracks == rhs.tracks &&
      +
      425  lhs.pssh == rhs.pssh;
      +
      426 }
      +
      427 
      +
      428 inline bool operator==(const SegmentReference& lhs,
      +
      429  const SegmentReference& rhs) {
      +
      430  return lhs.reference_type == rhs.reference_type &&
      +
      431  lhs.referenced_size == rhs.referenced_size &&
      +
      432  lhs.subsegment_duration == rhs.subsegment_duration &&
      +
      433  lhs.starts_with_sap == rhs.starts_with_sap &&
      +
      434  lhs.sap_type == rhs.sap_type &&
      +
      435  lhs.sap_delta_time == rhs.sap_delta_time;
      +
      436 }
      +
      437 
      +
      438 inline bool operator==(const SegmentIndex& lhs, const SegmentIndex& rhs) {
      +
      439  return lhs.reference_id == rhs.reference_id &&
      +
      440  lhs.timescale == rhs.timescale &&
      +
      441  lhs.earliest_presentation_time == rhs.earliest_presentation_time &&
      +
      442  lhs.first_offset == rhs.first_offset &&
      +
      443  lhs.references == rhs.references;
      +
      444 }
      +
      445 
      +
      446 inline bool operator==(const CueSourceIDBox& lhs,
      +
      447  const CueSourceIDBox& rhs) {
      +
      448  return lhs.source_id == rhs.source_id;
      +
      449 }
      +
      450 
      +
      451 inline bool operator==(const CueTimeBox& lhs,
      +
      452  const CueTimeBox& rhs) {
      +
      453  return lhs.cue_current_time == rhs.cue_current_time;
      +
      454 }
      +
      455 
      +
      456 inline bool operator==(const CueIDBox& lhs,
      +
      457  const CueIDBox& rhs) {
      +
      458  return lhs.cue_id == rhs.cue_id;
      +
      459 }
      +
      460 
      +
      461 inline bool operator==(const CueSettingsBox& lhs,
      +
      462  const CueSettingsBox& rhs) {
      +
      463  return lhs.settings == rhs.settings;
      +
      464 }
      +
      465 
      +
      466 inline bool operator==(const CuePayloadBox& lhs,
      +
      467  const CuePayloadBox& rhs) {
      +
      468  return lhs.cue_text == rhs.cue_text;
      +
      469 }
      +
      470 
      +
      471 inline bool operator==(const VTTEmptyCueBox& lhs, const VTTEmptyCueBox& rhs) {
      +
      472  return true;
      +
      473 }
      +
      474 
      +
      475 inline bool operator==(const VTTAdditionalTextBox& lhs,
      +
      476  const VTTAdditionalTextBox& rhs) {
      +
      477  return lhs.cue_additional_text == rhs.cue_additional_text;
      +
      478 }
      +
      479 
      +
      480 inline bool operator==(const VTTCueBox& lhs,
      +
      481  const VTTCueBox& rhs) {
      +
      482  return lhs.cue_source_id == rhs.cue_source_id && lhs.cue_id == rhs.cue_id &&
      +
      483  lhs.cue_time == rhs.cue_time && lhs.cue_settings == rhs.cue_settings &&
      +
      484  lhs.cue_payload == rhs.cue_payload;
      +
      485 }
      +
      486 
      +
      487 } // namespace mp4
      +
      488 } // namespace media
      +
      489 } // namespace edash_packager
      +
      490 
      +
      491 #endif // MEDIA_FORMATS_MP4_BOX_DEFINITIONS_COMPARISON_H_
      diff --git a/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html b/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html index 64b75b9166..d5d73474cf 100644 --- a/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html +++ b/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html b/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html index 3c755bc433..a0a4f35379 100644 --- a/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html +++ b/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html @@ -142,7 +142,7 @@ Additional Inherited Members diff --git a/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html b/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html index f1ef116e1f..416938c3c6 100644 --- a/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html +++ b/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html @@ -276,7 +276,7 @@ int slice_beta_offset_div2 diff --git a/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html b/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html index 466996f927..b5703a7237 100644 --- a/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html +++ b/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html b/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html index 6b17c4ba74..19dc985abc 100644 --- a/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html +++ b/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html @@ -199,7 +199,7 @@ An empty scoped_refptr if there was unexpected values in the provided parameters diff --git a/docs/de/d9b/structedash__packager_1_1media_1_1H264Sps.html b/docs/de/d9b/structedash__packager_1_1media_1_1H264Sps.html index 17426788c0..24c5719b04 100644 --- a/docs/de/d9b/structedash__packager_1_1media_1_1H264Sps.html +++ b/docs/de/d9b/structedash__packager_1_1media_1_1H264Sps.html @@ -242,7 +242,7 @@ int chroma_array_type< diff --git a/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html b/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html index 5a78e4529b..64691ac499 100644 --- a/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html +++ b/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html b/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html index 73ffce024b..9acc856416 100644 --- a/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html +++ b/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html @@ -109,7 +109,7 @@ virtual void addWebVTTCue< diff --git a/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html b/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html index 10d121b05d..07d5186c43 100644 --- a/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html +++ b/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html @@ -151,7 +151,7 @@ Protected Member Functions diff --git a/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html b/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html index fd9874a447..2d09af45b3 100644 --- a/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html +++ b/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html b/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html index 3d46b0a389..197a17bec9 100644 --- a/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html +++ b/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html b/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html index e3c76c09f7..bc8a7be66f 100644 --- a/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html +++ b/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dad/validate__flag_8cc_source.html b/docs/de/dad/validate__flag_8cc_source.html index 18252fbe3a..91f2154b63 100644 --- a/docs/de/dad/validate__flag_8cc_source.html +++ b/docs/de/dad/validate__flag_8cc_source.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html b/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html index 0f4a631cda..f64964e7f6 100644 --- a/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html +++ b/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html @@ -181,7 +181,7 @@ bool IsDTS () const diff --git a/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html b/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html index a6e1e31c17..2161e637eb 100644 --- a/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html +++ b/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dc1/demuxer_8h_source.html b/docs/de/dc1/demuxer_8h_source.html index c724173bd7..3d3d146f6f 100644 --- a/docs/de/dc1/demuxer_8h_source.html +++ b/docs/de/dc1/demuxer_8h_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html b/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html index 3274e347d7..8cbc498e7d 100644 --- a/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html +++ b/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html @@ -171,7 +171,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 179 of file box_definitions.cc.

      +

      Definition at line 182 of file box_definitions.cc.

      @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/de/dcb/ts__segmenter_8h_source.html b/docs/de/dcb/ts__segmenter_8h_source.html index db36d7c437..729e6d7a54 100644 --- a/docs/de/dcb/ts__segmenter_8h_source.html +++ b/docs/de/dcb/ts__segmenter_8h_source.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dcc/mock__mpd__notifier_8cc_source.html b/docs/de/dcc/mock__mpd__notifier_8cc_source.html index 5eafeae28c..291894aa34 100644 --- a/docs/de/dcc/mock__mpd__notifier_8cc_source.html +++ b/docs/de/dcc/mock__mpd__notifier_8cc_source.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dcf/file__closer_8h_source.html b/docs/de/dcf/file__closer_8h_source.html index 478f71c905..ee0bd4efc5 100644 --- a/docs/de/dcf/file__closer_8h_source.html +++ b/docs/de/dcf/file__closer_8h_source.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html b/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html index 7daa2daee0..81ec4cd784 100644 --- a/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html +++ b/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dd6/content__protection__element_8h_source.html b/docs/de/dd6/content__protection__element_8h_source.html index cc4206d785..329a38bd0c 100644 --- a/docs/de/dd6/content__protection__element_8h_source.html +++ b/docs/de/dd6/content__protection__element_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dd6/muxer__listener__test__helper_8cc_source.html b/docs/de/dd6/muxer__listener__test__helper_8cc_source.html index 82c53b84af..6a330c7c87 100644 --- a/docs/de/dd6/muxer__listener__test__helper_8cc_source.html +++ b/docs/de/dd6/muxer__listener__test__helper_8cc_source.html @@ -221,7 +221,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html b/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html index 11d49e710b..21dc961141 100644 --- a/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html +++ b/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html @@ -142,7 +142,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 529 of file box_definitions.h.

      +

      Definition at line 536 of file box_definitions.h.

      Member Function Documentation

      @@ -168,7 +168,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1766 of file box_definitions.cc.

      +

      Definition at line 1798 of file box_definitions.cc.

      @@ -179,7 +179,7 @@ Additional Inherited Members diff --git a/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html b/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html index 4ccd400d97..3e6d2e4cc3 100644 --- a/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html +++ b/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfa/muxer__listener_8h_source.html b/docs/de/dfa/muxer__listener_8h_source.html index 323daf5b4d..3b3f429c2d 100644 --- a/docs/de/dfa/muxer__listener_8h_source.html +++ b/docs/de/dfa/muxer__listener_8h_source.html @@ -198,7 +198,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html b/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html index b907e53ace..27e2cde198 100644 --- a/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html +++ b/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html b/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html index 4735e12a50..9ba22e7ece 100644 --- a/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html +++ b/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfd/stream__info_8cc_source.html b/docs/de/dfd/stream__info_8cc_source.html index 82934913f8..d65cb3d601 100644 --- a/docs/de/dfd/stream__info_8cc_source.html +++ b/docs/de/dfd/stream__info_8cc_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html b/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html index 0020156fe5..543127af6c 100644 --- a/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html +++ b/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d1a/offset__byte__queue_8cc_source.html b/docs/df/d1a/offset__byte__queue_8cc_source.html index e9614e4a8c..381cf2814e 100644 --- a/docs/df/d1a/offset__byte__queue_8cc_source.html +++ b/docs/df/d1a/offset__byte__queue_8cc_source.html @@ -164,7 +164,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d1c/composition__offset__iterator_8h_source.html b/docs/df/d1c/composition__offset__iterator_8h_source.html index 36e5b9d362..3789122902 100644 --- a/docs/df/d1c/composition__offset__iterator_8h_source.html +++ b/docs/df/d1c/composition__offset__iterator_8h_source.html @@ -140,14 +140,14 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      CompositionOffsetIterator(const CompositionTimeToSample &composition_time_to_sample)
      Create CompositionOffsetIterator from composition time to sample box.
      - + diff --git a/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html b/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html index 3b8229d6d8..f52212ce4f 100644 --- a/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html +++ b/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html b/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html index 075ea1aa8f..ed1777cdc7 100644 --- a/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html +++ b/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html @@ -175,7 +175,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 621 of file box_definitions.h.

      +

      Definition at line 628 of file box_definitions.h.

      Member Function Documentation

      @@ -201,7 +201,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 2017 of file box_definitions.cc.

      +

      Definition at line 2049 of file box_definitions.cc.

      @@ -212,7 +212,7 @@ Additional Inherited Members diff --git a/docs/df/d22/validate__flag_8h_source.html b/docs/df/d22/validate__flag_8h_source.html index 7cf95fbf48..cc59405f13 100644 --- a/docs/df/d22/validate__flag_8h_source.html +++ b/docs/df/d22/validate__flag_8h_source.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d2f/structedash__packager_1_1media_1_1mp4_1_1Language.html b/docs/df/d2f/structedash__packager_1_1media_1_1mp4_1_1Language.html index 9bbdec8aa5..e9a86acce9 100644 --- a/docs/df/d2f/structedash__packager_1_1media_1_1mp4_1_1Language.html +++ b/docs/df/d2f/structedash__packager_1_1media_1_1mp4_1_1Language.html @@ -112,7 +112,7 @@ std::string code<

      Detailed Description

      -

      Definition at line 226 of file box_definitions.h.

      +

      Definition at line 233 of file box_definitions.h.


      The documentation for this struct was generated from the following files:
      • media/formats/mp4/box_definitions.h
      • media/formats/mp4/box_definitions.cc
      • @@ -120,7 +120,7 @@ std::string code< diff --git a/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html b/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html index ed0ea36d7c..8d3b049d2b 100644 --- a/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html +++ b/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html @@ -208,7 +208,7 @@ Static Public Attributes diff --git a/docs/df/d31/muxer__util_8cc_source.html b/docs/df/d31/muxer__util_8cc_source.html index 2578a2b34d..5980f3f910 100644 --- a/docs/df/d31/muxer__util_8cc_source.html +++ b/docs/df/d31/muxer__util_8cc_source.html @@ -247,7 +247,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d32/audio__stream__info_8h_source.html b/docs/df/d32/audio__stream__info_8h_source.html index 392e8436ec..d99dbe42aa 100644 --- a/docs/df/d32/audio__stream__info_8h_source.html +++ b/docs/df/d32/audio__stream__info_8h_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html b/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html index 03e2d5386e..acfb54b01c 100644 --- a/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html +++ b/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html b/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html index 903032268c..11a53c502b 100644 --- a/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html +++ b/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html @@ -116,7 +116,7 @@ int size () const diff --git a/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html b/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html index e7c38c7c1a..a3d1a44090 100644 --- a/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html +++ b/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d4e/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter.html b/docs/df/d4e/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter.html index d0672fd359..10dbce0c69 100644 --- a/docs/df/d4e/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter.html +++ b/docs/df/d4e/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter.html @@ -277,7 +277,7 @@ double cluster_length_sec< diff --git a/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html b/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html index f706969b7f..97e7722731 100644 --- a/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html +++ b/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html b/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html index 4d86dcb8cc..3aa23b636d 100644 --- a/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html +++ b/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html b/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html index 9534edb623..ad76bdf817 100644 --- a/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html +++ b/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html @@ -166,7 +166,7 @@ Additional Inherited Members

        Detailed Description

        -

        Definition at line 322 of file box_definitions.h.

        +

        Definition at line 329 of file box_definitions.h.

        Member Function Documentation

        @@ -192,7 +192,7 @@ Additional Inherited Members

        Implements edash_packager::media::mp4::Box.

        -

        Definition at line 1455 of file box_definitions.cc.

        +

        Definition at line 1487 of file box_definitions.cc.

        @@ -203,7 +203,7 @@ Additional Inherited Members diff --git a/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html b/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html index 51a250899e..d1f6fafef2 100644 --- a/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html +++ b/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html @@ -157,7 +157,7 @@ Additional Inherited Members

        Detailed Description

        -

        Definition at line 276 of file box_definitions.h.

        +

        Definition at line 283 of file box_definitions.h.

        Member Function Documentation

        @@ -183,7 +183,7 @@ Additional Inherited Members

        Implements edash_packager::media::mp4::Box.

        -

        Definition at line 1237 of file box_definitions.cc.

        +

        Definition at line 1269 of file box_definitions.cc.

        @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/df/d6e/structedash__packager_1_1media_1_1mp4_1_1Language-members.html b/docs/df/d6e/structedash__packager_1_1media_1_1mp4_1_1Language-members.html index 09a2a4ba54..c2fac3fe14 100644 --- a/docs/df/d6e/structedash__packager_1_1media_1_1mp4_1_1Language-members.html +++ b/docs/df/d6e/structedash__packager_1_1media_1_1mp4_1_1Language-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html b/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html index 3ad45463bf..c627122292 100644 --- a/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html +++ b/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html @@ -145,7 +145,7 @@ Additional Inherited Members

        Detailed Description

        -

        Definition at line 413 of file box_definitions.h.

        +

        Definition at line 420 of file box_definitions.h.

        Member Function Documentation

        @@ -171,7 +171,7 @@ Additional Inherited Members

        Implements edash_packager::media::mp4::Box.

        -

        Definition at line 708 of file box_definitions.cc.

        +

        Definition at line 740 of file box_definitions.cc.

        @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/df/d7d/webm__info__parser_8cc_source.html b/docs/df/d7d/webm__info__parser_8cc_source.html index ad8abcc9b3..5320bc9f8e 100644 --- a/docs/df/d7d/webm__info__parser_8cc_source.html +++ b/docs/df/d7d/webm__info__parser_8cc_source.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html b/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html index b976fee986..bb3de426de 100644 --- a/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html +++ b/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html @@ -145,7 +145,7 @@ Additional Inherited Members

        Detailed Description

        -

        Definition at line 585 of file box_definitions.h.

        +

        Definition at line 592 of file box_definitions.h.

        Member Function Documentation

        @@ -171,7 +171,7 @@ Additional Inherited Members

        Implements edash_packager::media::mp4::Box.

        -

        Definition at line 1943 of file box_definitions.cc.

        +

        Definition at line 1975 of file box_definitions.cc.

        @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/df/d89/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser.html b/docs/df/d89/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser.html index 774f9d31a9..7aa739540d 100644 --- a/docs/df/d89/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser.html +++ b/docs/df/d89/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser.html @@ -128,7 +128,7 @@ int cluster_count () c diff --git a/docs/df/d8a/vp9__parser_8h_source.html b/docs/df/d8a/vp9__parser_8h_source.html index 955eec90ed..8abba5c7dc 100644 --- a/docs/df/d8a/vp9__parser_8h_source.html +++ b/docs/df/d8a/vp9__parser_8h_source.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d8a/vpx__parser_8h_source.html b/docs/df/d8a/vpx__parser_8h_source.html index ccd2b31375..dac6f54d92 100644 --- a/docs/df/d8a/vpx__parser_8h_source.html +++ b/docs/df/d8a/vpx__parser_8h_source.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d96/xml__node_8cc_source.html b/docs/df/d96/xml__node_8cc_source.html index 07ac661f11..ccb656c5e4 100644 --- a/docs/df/d96/xml__node_8cc_source.html +++ b/docs/df/d96/xml__node_8cc_source.html @@ -492,7 +492,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html b/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html index 5cac203485..04289d332e 100644 --- a/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html +++ b/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/da9/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html b/docs/df/da9/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html index f7f8589cdf..644233e416 100644 --- a/docs/df/da9/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html +++ b/docs/df/da9/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html @@ -136,7 +136,7 @@ Additional Inherited Members

        Detailed Description

        -

        Definition at line 348 of file box_definitions.h.

        +

        Definition at line 355 of file box_definitions.h.

        Member Function Documentation

        @@ -162,7 +162,7 @@ Additional Inherited Members

        Implements edash_packager::media::mp4::Box.

        -

        Definition at line 1534 of file box_definitions.cc.

        +

        Definition at line 1566 of file box_definitions.cc.

        @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/df/dad/decrypt__config_8h_source.html b/docs/df/dad/decrypt__config_8h_source.html index 340619356f..d7bbe17c6e 100644 --- a/docs/df/dad/decrypt__config_8h_source.html +++ b/docs/df/dad/decrypt__config_8h_source.html @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html b/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html index 1fa47a6d19..e716b2fd28 100644 --- a/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html +++ b/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html @@ -362,7 +362,7 @@ template<typename T > diff --git a/docs/df/db8/structedash__packager_1_1media_1_1mp4_1_1AC3Specific-members.html b/docs/df/db8/structedash__packager_1_1media_1_1mp4_1_1AC3Specific-members.html index 04788e512d..2550271730 100644 --- a/docs/df/db8/structedash__packager_1_1media_1_1mp4_1_1AC3Specific-members.html +++ b/docs/df/db8/structedash__packager_1_1media_1_1mp4_1_1AC3Specific-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html b/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html index 82ae12dd8a..50910e90f5 100644 --- a/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html +++ b/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html b/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html index 1a635bffc1..ed1742de80 100644 --- a/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html +++ b/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html b/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html index 4f68cb24c8..02a5e535fa 100644 --- a/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html +++ b/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dd2/mpd__utils_8h_source.html b/docs/df/dd2/mpd__utils_8h_source.html index d65a3af5ae..332e4a6326 100644 --- a/docs/df/dd2/mpd__utils_8h_source.html +++ b/docs/df/dd2/mpd__utils_8h_source.html @@ -175,7 +175,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dda/structedash__packager_1_1media_1_1Cue.html b/docs/df/dda/structedash__packager_1_1media_1_1Cue.html index bcf2165ba2..d542852cfd 100644 --- a/docs/df/dda/structedash__packager_1_1media_1_1Cue.html +++ b/docs/df/dda/structedash__packager_1_1media_1_1Cue.html @@ -125,7 +125,7 @@ std::vector< std::string >  diff --git a/docs/df/ddc/webm_2segmenter_8h_source.html b/docs/df/ddc/webm_2segmenter_8h_source.html index cf4791fe84..a3db9806a3 100644 --- a/docs/df/ddc/webm_2segmenter_8h_source.html +++ b/docs/df/ddc/webm_2segmenter_8h_source.html @@ -250,7 +250,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html b/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html index d3678885c0..16d7c37038 100644 --- a/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html +++ b/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html @@ -301,7 +301,7 @@ void AppendInt (int64_ diff --git a/docs/df/dde/ts__section__psi_8cc_source.html b/docs/df/dde/ts__section__psi_8cc_source.html index 063370efb1..e439d75b9f 100644 --- a/docs/df/dde/ts__section__psi_8cc_source.html +++ b/docs/df/dde/ts__section__psi_8cc_source.html @@ -228,7 +228,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html b/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html index 7ea1c3d26e..d805ba77cd 100644 --- a/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html +++ b/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de3/text__track__config_8cc_source.html b/docs/df/de3/text__track__config_8cc_source.html index 92f339c3c1..0b8dc74730 100644 --- a/docs/df/de3/text__track__config_8cc_source.html +++ b/docs/df/de3/text__track__config_8cc_source.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de6/classedash__packager_1_1media_1_1mp2t_1_1PesPacket-members.html b/docs/df/de6/classedash__packager_1_1media_1_1mp2t_1_1PesPacket-members.html index c4cc65953f..a54824e187 100644 --- a/docs/df/de6/classedash__packager_1_1media_1_1mp2t_1_1PesPacket-members.html +++ b/docs/df/de6/classedash__packager_1_1media_1_1mp2t_1_1PesPacket-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html b/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html index e86098b321..5b814cdd0d 100644 --- a/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html +++ b/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html @@ -177,7 +177,7 @@ virtual void OnNewSegment< diff --git a/docs/df/de9/segment__info_8h_source.html b/docs/df/de9/segment__info_8h_source.html index ed25cd477a..958de748d2 100644 --- a/docs/df/de9/segment__info_8h_source.html +++ b/docs/df/de9/segment__info_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html b/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html index 6e2197795c..1bf283df0e 100644 --- a/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html +++ b/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html b/docs/df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html index 81eb847225..72d30cf51e 100644 --- a/docs/df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html +++ b/docs/df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html @@ -231,7 +231,7 @@ void  diff --git a/docs/df/df4/classedash__packager_1_1media_1_1SeekHead.html b/docs/df/df4/classedash__packager_1_1media_1_1SeekHead.html index 15e65e8135..38c940c010 100644 --- a/docs/df/df4/classedash__packager_1_1media_1_1SeekHead.html +++ b/docs/df/df4/classedash__packager_1_1media_1_1SeekHead.html @@ -148,7 +148,7 @@ void set_tracks_pos (u diff --git a/docs/df/df8/classedash__packager_1_1media_1_1Nalu-members.html b/docs/df/df8/classedash__packager_1_1media_1_1Nalu-members.html index c05f7d3564..66860370fe 100644 --- a/docs/df/df8/classedash__packager_1_1media_1_1Nalu-members.html +++ b/docs/df/df8/classedash__packager_1_1media_1_1Nalu-members.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html b/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html index 69a867e714..d9b5774900 100644 --- a/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html +++ b/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dir_2618cd273dea54f184e42d7a562af818.html b/docs/dir_2618cd273dea54f184e42d7a562af818.html index ae44690edf..a95479bc6a 100644 --- a/docs/dir_2618cd273dea54f184e42d7a562af818.html +++ b/docs/dir_2618cd273dea54f184e42d7a562af818.html @@ -140,7 +140,7 @@ Files diff --git a/docs/dir_279fd47bebb21302c25cfb685e84c359.html b/docs/dir_279fd47bebb21302c25cfb685e84c359.html index 237cf73694..e2b0cf6002 100644 --- a/docs/dir_279fd47bebb21302c25cfb685e84c359.html +++ b/docs/dir_279fd47bebb21302c25cfb685e84c359.html @@ -119,7 +119,7 @@ Files diff --git a/docs/dir_2eceb70145328c029a5f43350007537a.html b/docs/dir_2eceb70145328c029a5f43350007537a.html index b3dd5f6229..fdfd6dbdd2 100644 --- a/docs/dir_2eceb70145328c029a5f43350007537a.html +++ b/docs/dir_2eceb70145328c029a5f43350007537a.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html b/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html index ac791158d2..3097b9862e 100644 --- a/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html +++ b/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html @@ -99,7 +99,7 @@ Directories diff --git a/docs/dir_3e9291fd7a18fdecc763294cb2628910.html b/docs/dir_3e9291fd7a18fdecc763294cb2628910.html index 4eb34c647a..0370456a0e 100644 --- a/docs/dir_3e9291fd7a18fdecc763294cb2628910.html +++ b/docs/dir_3e9291fd7a18fdecc763294cb2628910.html @@ -169,7 +169,7 @@ Files diff --git a/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html b/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html index 530e202403..49aaee50cc 100644 --- a/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html +++ b/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html b/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html index 60dab58df6..895df3ab42 100644 --- a/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html +++ b/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html @@ -181,7 +181,7 @@ Files diff --git a/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html b/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html index b9f1805746..8834629285 100644 --- a/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html +++ b/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html @@ -153,7 +153,7 @@ Files diff --git a/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html b/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html index fa9bc9ccc9..6274440a6b 100644 --- a/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html +++ b/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html @@ -101,7 +101,7 @@ Directories diff --git a/docs/dir_679a6f4e9fa092b388fc986148018f2a.html b/docs/dir_679a6f4e9fa092b388fc986148018f2a.html index 595bc38af8..1e55fa8c37 100644 --- a/docs/dir_679a6f4e9fa092b388fc986148018f2a.html +++ b/docs/dir_679a6f4e9fa092b388fc986148018f2a.html @@ -95,7 +95,7 @@ Files diff --git a/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html b/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html index 762898c9c2..c878b3310c 100644 --- a/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html +++ b/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_89dd766eb2df7d7257dbe806a34404af.html b/docs/dir_89dd766eb2df7d7257dbe806a34404af.html index 26930c155a..5d8e17c420 100644 --- a/docs/dir_89dd766eb2df7d7257dbe806a34404af.html +++ b/docs/dir_89dd766eb2df7d7257dbe806a34404af.html @@ -93,7 +93,7 @@ Directories diff --git a/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html b/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html index 782b439c4b..363d89b331 100644 --- a/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html +++ b/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html @@ -109,7 +109,7 @@ Files diff --git a/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html b/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html index d63479178b..1d17779682 100644 --- a/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html +++ b/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html @@ -245,7 +245,7 @@ Files diff --git a/docs/dir_d422163b96683743ed3963d4aac17747.html b/docs/dir_d422163b96683743ed3963d4aac17747.html index d4265a84b4..ef291146ef 100644 --- a/docs/dir_d422163b96683743ed3963d4aac17747.html +++ b/docs/dir_d422163b96683743ed3963d4aac17747.html @@ -131,7 +131,7 @@ Files diff --git a/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html b/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html index 3d9cf6f4a0..1475233841 100644 --- a/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html +++ b/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html b/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html index 8b68854388..329f1c876a 100644 --- a/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html +++ b/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html @@ -151,7 +151,7 @@ Files diff --git a/docs/files.html b/docs/files.html index 3b792f0981..647b8d05a4 100644 --- a/docs/files.html +++ b/docs/files.html @@ -414,7 +414,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions.html b/docs/functions.html index 1333374f9d..d93d8a5f73 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -233,7 +233,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_b.html b/docs/functions_b.html index 73cbc9d318..fe410025e7 100644 --- a/docs/functions_b.html +++ b/docs/functions_b.html @@ -238,7 +238,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_c.html b/docs/functions_c.html index c708dc1363..b993331379 100644 --- a/docs/functions_c.html +++ b/docs/functions_c.html @@ -234,7 +234,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_d.html b/docs/functions_d.html index 372262280b..989e7cf7c3 100644 --- a/docs/functions_d.html +++ b/docs/functions_d.html @@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_e.html b/docs/functions_e.html index a0f158e779..0d1e17b4bf 100644 --- a/docs/functions_e.html +++ b/docs/functions_e.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_eval.html b/docs/functions_eval.html index b4a5d21d16..f4b43651b7 100644 --- a/docs/functions_eval.html +++ b/docs/functions_eval.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_f.html b/docs/functions_f.html index 4948a8ddf0..535d897db5 100644 --- a/docs/functions_f.html +++ b/docs/functions_f.html @@ -193,7 +193,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func.html b/docs/functions_func.html index 8e0540fe55..6372335d5f 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -233,7 +233,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_b.html b/docs/functions_func_b.html index 389ec3e993..fc57eb4e76 100644 --- a/docs/functions_func_b.html +++ b/docs/functions_func_b.html @@ -235,7 +235,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_c.html b/docs/functions_func_c.html index 86f68815cd..fb714ac705 100644 --- a/docs/functions_func_c.html +++ b/docs/functions_func_c.html @@ -234,7 +234,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_d.html b/docs/functions_func_d.html index 0423523eb6..88d4076a6e 100644 --- a/docs/functions_func_d.html +++ b/docs/functions_func_d.html @@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_e.html b/docs/functions_func_e.html index 605e7d61ed..8f44627c5e 100644 --- a/docs/functions_func_e.html +++ b/docs/functions_func_e.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_f.html b/docs/functions_func_f.html index 068bd0ae5e..50025b7653 100644 --- a/docs/functions_func_f.html +++ b/docs/functions_func_f.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_g.html b/docs/functions_func_g.html index 0d80414bfa..1ed970e736 100644 --- a/docs/functions_func_g.html +++ b/docs/functions_func_g.html @@ -258,7 +258,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_h.html b/docs/functions_func_h.html index 40f9ffaee7..e94a016e4c 100644 --- a/docs/functions_func_h.html +++ b/docs/functions_func_h.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_i.html b/docs/functions_func_i.html index e684a1a1bb..625f8a9005 100644 --- a/docs/functions_func_i.html +++ b/docs/functions_func_i.html @@ -212,7 +212,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_k.html b/docs/functions_func_k.html index 777036c289..f7ee8862a2 100644 --- a/docs/functions_func_k.html +++ b/docs/functions_func_k.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_l.html b/docs/functions_func_l.html index 6aa8e33d8e..ca0b79606e 100644 --- a/docs/functions_func_l.html +++ b/docs/functions_func_l.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_m.html b/docs/functions_func_m.html index d43ce35578..9579f37a9a 100644 --- a/docs/functions_func_m.html +++ b/docs/functions_func_m.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_n.html b/docs/functions_func_n.html index 8bbd5e5169..bcb77be86d 100644 --- a/docs/functions_func_n.html +++ b/docs/functions_func_n.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_o.html b/docs/functions_func_o.html index c471f24a82..72d5336eaa 100644 --- a/docs/functions_func_o.html +++ b/docs/functions_func_o.html @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_p.html b/docs/functions_func_p.html index 15f5103ef3..0f76e81717 100644 --- a/docs/functions_func_p.html +++ b/docs/functions_func_p.html @@ -219,7 +219,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_r.html b/docs/functions_func_r.html index 57bfca226a..490ec9b989 100644 --- a/docs/functions_func_r.html +++ b/docs/functions_func_r.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_s.html b/docs/functions_func_s.html index 0277a0f040..3337321e81 100644 --- a/docs/functions_func_s.html +++ b/docs/functions_func_s.html @@ -276,7 +276,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_t.html b/docs/functions_func_t.html index f07d30c544..8796d9c940 100644 --- a/docs/functions_func_t.html +++ b/docs/functions_func_t.html @@ -177,7 +177,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_u.html b/docs/functions_func_u.html index 5a387d4b32..4bbdf0b566 100644 --- a/docs/functions_func_u.html +++ b/docs/functions_func_u.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_v.html b/docs/functions_func_v.html index 89bcaad241..720f4e36d9 100644 --- a/docs/functions_func_v.html +++ b/docs/functions_func_v.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_w.html b/docs/functions_func_w.html index 205b27964c..5df81cbb79 100644 --- a/docs/functions_func_w.html +++ b/docs/functions_func_w.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_x.html b/docs/functions_func_x.html index 0bc03821b2..9a5d7f61a9 100644 --- a/docs/functions_func_x.html +++ b/docs/functions_func_x.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_~.html b/docs/functions_func_~.html index 72280ccf09..7612cbe1df 100644 --- a/docs/functions_func_~.html +++ b/docs/functions_func_~.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_g.html b/docs/functions_g.html index 04fcddb326..43372767f4 100644 --- a/docs/functions_g.html +++ b/docs/functions_g.html @@ -258,7 +258,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_h.html b/docs/functions_h.html index 42ee808809..b1aac8ec57 100644 --- a/docs/functions_h.html +++ b/docs/functions_h.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_i.html b/docs/functions_i.html index 53d2cb40ed..8b063632c8 100644 --- a/docs/functions_i.html +++ b/docs/functions_i.html @@ -215,7 +215,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_k.html b/docs/functions_k.html index db6fafc003..03e06a5933 100644 --- a/docs/functions_k.html +++ b/docs/functions_k.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_l.html b/docs/functions_l.html index 8d1acfada9..8519411e3f 100644 --- a/docs/functions_l.html +++ b/docs/functions_l.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_m.html b/docs/functions_m.html index df07fe1285..70bb5bf1d5 100644 --- a/docs/functions_m.html +++ b/docs/functions_m.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_n.html b/docs/functions_n.html index be84a61565..34440935f4 100644 --- a/docs/functions_n.html +++ b/docs/functions_n.html @@ -177,7 +177,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_o.html b/docs/functions_o.html index 9d93d7dd27..bb7a5c19ab 100644 --- a/docs/functions_o.html +++ b/docs/functions_o.html @@ -164,7 +164,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_p.html b/docs/functions_p.html index 5282981369..4f042fa5be 100644 --- a/docs/functions_p.html +++ b/docs/functions_p.html @@ -225,7 +225,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_r.html b/docs/functions_r.html index 68bd9e37ef..2c51bb9534 100644 --- a/docs/functions_r.html +++ b/docs/functions_r.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_s.html b/docs/functions_s.html index 0b399fa963..0d77e60c83 100644 --- a/docs/functions_s.html +++ b/docs/functions_s.html @@ -291,7 +291,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_t.html b/docs/functions_t.html index d7f4d2660d..674ad0bbb6 100644 --- a/docs/functions_t.html +++ b/docs/functions_t.html @@ -180,7 +180,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_type.html b/docs/functions_type.html index 10ee7d8b02..b0bbc36cff 100644 --- a/docs/functions_type.html +++ b/docs/functions_type.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_u.html b/docs/functions_u.html index fa595a75f6..e1dcbedfb7 100644 --- a/docs/functions_u.html +++ b/docs/functions_u.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_v.html b/docs/functions_v.html index 4e45e5689c..11326e7ecf 100644 --- a/docs/functions_v.html +++ b/docs/functions_v.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_vars.html b/docs/functions_vars.html index 7365bf6106..4105e21c2c 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_w.html b/docs/functions_w.html index 61090351c2..0dbe188db7 100644 --- a/docs/functions_w.html +++ b/docs/functions_w.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_x.html b/docs/functions_x.html index 4b4d27daea..773b29f092 100644 --- a/docs/functions_x.html +++ b/docs/functions_x.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_~.html b/docs/functions_~.html index 0bf6a93455..44c23776a9 100644 --- a/docs/functions_~.html +++ b/docs/functions_~.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/hierarchy.html b/docs/hierarchy.html index e2fca6c83d..3aa608d8cf 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -358,7 +358,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/index.html b/docs/index.html index 78ee4664c0..4ab099ef7d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -81,7 +81,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html index ae279737cf..9dcaae3152 100644 --- a/docs/namespacemembers.html +++ b/docs/namespacemembers.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html index cec846e3f6..e2ef1daff3 100644 --- a/docs/namespacemembers_func.html +++ b/docs/namespacemembers_func.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespaces.html b/docs/namespaces.html index 730fed8cdf..d31acbd673 100644 --- a/docs/namespaces.html +++ b/docs/namespaces.html @@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');