diff --git a/docs/annotated.html b/docs/annotated.html index e269f5bff4..66b883fd20 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -371,7 +371,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/classes.html b/docs/classes.html index ef52a98b41..56a66ee3f9 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/d0/d00/structshaka_1_1media_1_1mp4_1_1HandlerReference-members.html b/docs/d0/d00/structshaka_1_1media_1_1mp4_1_1HandlerReference-members.html index fd68d6064d..4c0521a7ab 100644 --- a/docs/d0/d00/structshaka_1_1media_1_1mp4_1_1HandlerReference-members.html +++ b/docs/d0/d00/structshaka_1_1media_1_1mp4_1_1HandlerReference-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d04/classshaka_1_1media_1_1RsaRequestSigner-members.html b/docs/d0/d04/classshaka_1_1media_1_1RsaRequestSigner-members.html index 31c5398305..30e3f4d8ce 100644 --- a/docs/d0/d04/classshaka_1_1media_1_1RsaRequestSigner-members.html +++ b/docs/d0/d04/classshaka_1_1media_1_1RsaRequestSigner-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d06/mpd__flags_8cc_source.html b/docs/d0/d06/mpd__flags_8cc_source.html index e538b28f2d..bcda7feea0 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/d0e/classshaka_1_1media_1_1HttpKeyFetcher-members.html b/docs/d0/d0e/classshaka_1_1media_1_1HttpKeyFetcher-members.html index fdc56f75db..cb49803a1d 100644 --- a/docs/d0/d0e/classshaka_1_1media_1_1HttpKeyFetcher-members.html +++ b/docs/d0/d0e/classshaka_1_1media_1_1HttpKeyFetcher-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d0e/hevc__decoder__configuration__record_8h_source.html b/docs/d0/d0e/hevc__decoder__configuration__record_8h_source.html index 5f97a33967..2e129efff6 100644 --- a/docs/d0/d0e/hevc__decoder__configuration__record_8h_source.html +++ b/docs/d0/d0e/hevc__decoder__configuration__record_8h_source.html @@ -138,7 +138,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 286ec06b1e..985880313a 100644 --- a/docs/d0/d0e/muxer__options_8h_source.html +++ b/docs/d0/d0e/muxer__options_8h_source.html @@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d0f/classshaka_1_1media_1_1mp2t_1_1TsSectionPmt-members.html b/docs/d0/d0f/classshaka_1_1media_1_1mp2t_1_1TsSectionPmt-members.html index 692cba872f..397b019c1d 100644 --- a/docs/d0/d0f/classshaka_1_1media_1_1mp2t_1_1TsSectionPmt-members.html +++ b/docs/d0/d0f/classshaka_1_1media_1_1mp2t_1_1TsSectionPmt-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html b/docs/d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html index cd5d745ed0..6271860b6b 100644 --- a/docs/d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html +++ b/docs/d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html @@ -121,7 +121,7 @@ uint32_t height diff --git a/docs/d0/d1e/classshaka_1_1media_1_1H265ByteToUnitStreamConverter-members.html b/docs/d0/d1e/classshaka_1_1media_1_1H265ByteToUnitStreamConverter-members.html index 00267cb970..cfc3a4bed0 100644 --- a/docs/d0/d1e/classshaka_1_1media_1_1H265ByteToUnitStreamConverter-members.html +++ b/docs/d0/d1e/classshaka_1_1media_1_1H265ByteToUnitStreamConverter-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d1f/structshaka_1_1media_1_1mp4_1_1VTTCueBox-members.html b/docs/d0/d1f/structshaka_1_1media_1_1mp4_1_1VTTCueBox-members.html index acad1e164b..e47d704100 100644 --- a/docs/d0/d1f/structshaka_1_1media_1_1mp4_1_1VTTCueBox-members.html +++ b/docs/d0/d1f/structshaka_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/d26/classshaka_1_1media_1_1mp2t_1_1TsSectionPat.html b/docs/d0/d26/classshaka_1_1media_1_1mp2t_1_1TsSectionPat.html index 8e6e8f0874..5314a655c5 100644 --- a/docs/d0/d26/classshaka_1_1media_1_1mp2t_1_1TsSectionPat.html +++ b/docs/d0/d26/classshaka_1_1media_1_1mp2t_1_1TsSectionPat.html @@ -155,7 +155,7 @@ void Reset () override diff --git a/docs/d0/d27/structshaka_1_1media_1_1MuxerOptions.html b/docs/d0/d27/structshaka_1_1media_1_1MuxerOptions.html index 5c4c25240a..5b1fb08e89 100644 --- a/docs/d0/d27/structshaka_1_1media_1_1MuxerOptions.html +++ b/docs/d0/d27/structshaka_1_1media_1_1MuxerOptions.html @@ -291,7 +291,7 @@ bool webm_subsample_encryp diff --git a/docs/d0/d30/mock__mpd__notifier_8h_source.html b/docs/d0/d30/mock__mpd__notifier_8h_source.html index 7b03291c8a..b9a21d4fac 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 b8a590917d..c428df9f7f 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/d33/classshaka_1_1MockRepresentation.html b/docs/d0/d33/classshaka_1_1MockRepresentation.html index dc7a59f5d1..fbf40cf091 100644 --- a/docs/d0/d33/classshaka_1_1MockRepresentation.html +++ b/docs/d0/d33/classshaka_1_1MockRepresentation.html @@ -160,7 +160,7 @@ Additional Inherited Members diff --git a/docs/d0/d35/es__descriptor_8cc_source.html b/docs/d0/d35/es__descriptor_8cc_source.html index 72f2de9a4c..4103049fbb 100644 --- a/docs/d0/d35/es__descriptor_8cc_source.html +++ b/docs/d0/d35/es__descriptor_8cc_source.html @@ -285,7 +285,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d3a/hls__notify__muxer__listener_8cc_source.html b/docs/d0/d3a/hls__notify__muxer__listener_8cc_source.html index 64e4e9c2d3..120e611fb0 100644 --- a/docs/d0/d3a/hls__notify__muxer__listener_8cc_source.html +++ b/docs/d0/d3a/hls__notify__muxer__listener_8cc_source.html @@ -220,7 +220,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 e864ac9255..63abdfaa06 100644 --- a/docs/d0/d3a/webm__constants_8h_source.html +++ b/docs/d0/d3a/webm__constants_8h_source.html @@ -318,7 +318,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d3c/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html b/docs/d0/d3c/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html index 28a947a2da..4a84a6297c 100644 --- a/docs/d0/d3c/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html +++ b/docs/d0/d3c/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d0/d42/aes__cryptor_8h_source.html b/docs/d0/d42/aes__cryptor_8h_source.html index 8ae2788d4f..d41668ab88 100644 --- a/docs/d0/d42/aes__cryptor_8h_source.html +++ b/docs/d0/d42/aes__cryptor_8h_source.html @@ -215,7 +215,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 6c3bddd780..c5c34a09f5 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 c47a4e3443..06b130512f 100644 --- a/docs/d0/d46/fourccs_8h_source.html +++ b/docs/d0/d46/fourccs_8h_source.html @@ -248,7 +248,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 9e8efc9f52..f14c3156c5 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 @@ -237,7 +237,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d4b/structshaka_1_1media_1_1mp4_1_1MediaInformation-members.html b/docs/d0/d4b/structshaka_1_1media_1_1mp4_1_1MediaInformation-members.html index 92512fb0a6..5f87d33b9f 100644 --- a/docs/d0/d4b/structshaka_1_1media_1_1mp4_1_1MediaInformation-members.html +++ b/docs/d0/d4b/structshaka_1_1media_1_1mp4_1_1MediaInformation-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html b/docs/d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html index 0059fba41a..03a1452c8b 100644 --- a/docs/d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html +++ b/docs/d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html @@ -131,7 +131,7 @@ int64_t GetFramesToTarget< diff --git a/docs/d0/d4e/libcrypto__threading_8cc_source.html b/docs/d0/d4e/libcrypto__threading_8cc_source.html index a55f329189..e10ae47613 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/classshaka_1_1media_1_1mp2t_1_1TsMuxer-members.html b/docs/d0/d53/classshaka_1_1media_1_1mp2t_1_1TsMuxer-members.html index ea0950639e..270d7017de 100644 --- a/docs/d0/d53/classshaka_1_1media_1_1mp2t_1_1TsMuxer-members.html +++ b/docs/d0/d53/classshaka_1_1media_1_1mp2t_1_1TsMuxer-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d5b/classshaka_1_1media_1_1MpdNotifyMuxerListener-members.html b/docs/d0/d5b/classshaka_1_1media_1_1MpdNotifyMuxerListener-members.html index 3e38af4500..2660fe647f 100644 --- a/docs/d0/d5b/classshaka_1_1media_1_1MpdNotifyMuxerListener-members.html +++ b/docs/d0/d5b/classshaka_1_1media_1_1MpdNotifyMuxerListener-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d66/classshaka_1_1media_1_1ThreadedIoFile.html b/docs/d0/d66/classshaka_1_1media_1_1ThreadedIoFile.html index 8a4391d3ef..6e43c7b954 100644 --- a/docs/d0/d66/classshaka_1_1media_1_1ThreadedIoFile.html +++ b/docs/d0/d66/classshaka_1_1media_1_1ThreadedIoFile.html @@ -438,7 +438,7 @@ Additional Inherited Members diff --git a/docs/d0/d6a/classshaka_1_1media_1_1StreamDescriptorCompareFn-members.html b/docs/d0/d6a/classshaka_1_1media_1_1StreamDescriptorCompareFn-members.html index c82f7be9a1..ce429e401d 100644 --- a/docs/d0/d6a/classshaka_1_1media_1_1StreamDescriptorCompareFn-members.html +++ b/docs/d0/d6a/classshaka_1_1media_1_1StreamDescriptorCompareFn-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d73/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry.html b/docs/d0/d73/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry.html index f45522b1dc..4f17a90ddb 100644 --- a/docs/d0/d73/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry.html +++ b/docs/d0/d73/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry.html @@ -197,7 +197,7 @@ Additional Inherited Members diff --git a/docs/d0/d7c/structshaka_1_1media_1_1mp4_1_1SampleToGroup.html b/docs/d0/d7c/structshaka_1_1media_1_1mp4_1_1SampleToGroup.html index 32d1d69f02..25056b1df7 100644 --- a/docs/d0/d7c/structshaka_1_1media_1_1mp4_1_1SampleToGroup.html +++ b/docs/d0/d7c/structshaka_1_1media_1_1mp4_1_1SampleToGroup.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d0/d7d/decryptor__source_8h_source.html b/docs/d0/d7d/decryptor__source_8h_source.html index 8b87bb4992..3e50311268 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/d80/classshaka_1_1media_1_1AesCbcEncryptor-members.html b/docs/d0/d80/classshaka_1_1media_1_1AesCbcEncryptor-members.html index 46caf44a32..e8bfa55324 100644 --- a/docs/d0/d80/classshaka_1_1media_1_1AesCbcEncryptor-members.html +++ b/docs/d0/d80/classshaka_1_1media_1_1AesCbcEncryptor-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d80/classshaka_1_1media_1_1Status-members.html b/docs/d0/d80/classshaka_1_1media_1_1Status-members.html index 95b6d893fe..f3c383fd42 100644 --- a/docs/d0/d80/classshaka_1_1media_1_1Status-members.html +++ b/docs/d0/d80/classshaka_1_1media_1_1Status-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d93/classshaka_1_1media_1_1Status.html b/docs/d0/d93/classshaka_1_1media_1_1Status.html index eb5819ee15..b5352de04c 100644 --- a/docs/d0/d93/classshaka_1_1media_1_1Status.html +++ b/docs/d0/d93/classshaka_1_1media_1_1Status.html @@ -302,7 +302,7 @@ static const diff --git a/docs/d0/d9a/structshaka_1_1media_1_1mp4_1_1Movie.html b/docs/d0/d9a/structshaka_1_1media_1_1mp4_1_1Movie.html index f38d0bb3e2..d58885ac57 100644 --- a/docs/d0/d9a/structshaka_1_1media_1_1mp4_1_1Movie.html +++ b/docs/d0/d9a/structshaka_1_1media_1_1mp4_1_1Movie.html @@ -186,7 +186,7 @@ Additional Inherited Members diff --git a/docs/d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html b/docs/d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html index aac6eec9c3..b6bf42dace 100644 --- a/docs/d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html +++ b/docs/d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html @@ -329,7 +329,7 @@ static const size_t  diff --git a/docs/d0/da2/classshaka_1_1media_1_1RequestSigner-members.html b/docs/d0/da2/classshaka_1_1media_1_1RequestSigner-members.html index d49952702f..d2ed6bb256 100644 --- a/docs/d0/da2/classshaka_1_1media_1_1RequestSigner-members.html +++ b/docs/d0/da2/classshaka_1_1media_1_1RequestSigner-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/da2/structshaka_1_1xml_1_1XmlDeleter-members.html b/docs/d0/da2/structshaka_1_1xml_1_1XmlDeleter-members.html index 5aba69346c..8aa26c30f1 100644 --- a/docs/d0/da2/structshaka_1_1xml_1_1XmlDeleter-members.html +++ b/docs/d0/da2/structshaka_1_1xml_1_1XmlDeleter-members.html @@ -102,7 +102,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 a723e43153..0666df528f 100644 --- a/docs/d0/da6/stream__descriptor_8cc_source.html +++ b/docs/d0/da6/stream__descriptor_8cc_source.html @@ -295,7 +295,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dab/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html b/docs/d0/dab/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html index 02254dbdce..08b7f47e18 100644 --- a/docs/d0/dab/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html +++ b/docs/d0/dab/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html @@ -259,7 +259,7 @@ void set_progress_target diff --git a/docs/d0/dac/classshaka_1_1media_1_1FixedKeySource.html b/docs/d0/dac/classshaka_1_1media_1_1FixedKeySource.html index 21389a83a3..41a8ddf29c 100644 --- a/docs/d0/dac/classshaka_1_1media_1_1FixedKeySource.html +++ b/docs/d0/dac/classshaka_1_1media_1_1FixedKeySource.html @@ -480,7 +480,7 @@ Additional Inherited Members diff --git a/docs/d0/dbd/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html b/docs/d0/dbd/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html index 6597836183..c7f4d9c853 100644 --- a/docs/d0/dbd/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html +++ b/docs/d0/dbd/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dc1/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html b/docs/d0/dc1/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html index 5c8acef7cb..fa9ea81b14 100644 --- a/docs/d0/dc1/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html +++ b/docs/d0/dc1/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dc8/classshaka_1_1xml_1_1AdaptationSetXmlNode-members.html b/docs/d0/dc8/classshaka_1_1xml_1_1AdaptationSetXmlNode-members.html index 5c96f9fb29..196eb1fed0 100644 --- a/docs/d0/dc8/classshaka_1_1xml_1_1AdaptationSetXmlNode-members.html +++ b/docs/d0/dc8/classshaka_1_1xml_1_1AdaptationSetXmlNode-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html b/docs/d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html index 537a8db790..c5011ae0c3 100644 --- a/docs/d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html +++ b/docs/d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html @@ -224,7 +224,7 @@ Static Public Member Functions diff --git a/docs/d0/dd0/structshaka_1_1media_1_1mp4_1_1CueSettingsBox.html b/docs/d0/dd0/structshaka_1_1media_1_1mp4_1_1CueSettingsBox.html index 1079cb384d..6170b7d2a8 100644 --- a/docs/d0/dd0/structshaka_1_1media_1_1mp4_1_1CueSettingsBox.html +++ b/docs/d0/dd0/structshaka_1_1media_1_1mp4_1_1CueSettingsBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d0/dd4/classshaka_1_1media_1_1ProtectionSystemSpecificInfo.html b/docs/d0/dd4/classshaka_1_1media_1_1ProtectionSystemSpecificInfo.html index 9a3e506894..5aae35ce7a 100644 --- a/docs/d0/dd4/classshaka_1_1media_1_1ProtectionSystemSpecificInfo.html +++ b/docs/d0/dd4/classshaka_1_1media_1_1ProtectionSystemSpecificInfo.html @@ -222,7 +222,7 @@ Static Public Member Functions diff --git a/docs/d0/dd6/webm__crypto__helpers_8cc_source.html b/docs/d0/dd6/webm__crypto__helpers_8cc_source.html index 77cc4df2c4..32f61a7c14 100644 --- a/docs/d0/dd6/webm__crypto__helpers_8cc_source.html +++ b/docs/d0/dd6/webm__crypto__helpers_8cc_source.html @@ -205,7 +205,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dd8/classshaka_1_1media_1_1AesCtrEncryptor.html b/docs/d0/dd8/classshaka_1_1media_1_1AesCtrEncryptor.html index 61d5d1b134..6041a36473 100644 --- a/docs/d0/dd8/classshaka_1_1media_1_1AesCtrEncryptor.html +++ b/docs/d0/dd8/classshaka_1_1media_1_1AesCtrEncryptor.html @@ -165,7 +165,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/d0/dee/segmenter__test__base_8h_source.html b/docs/d0/dee/segmenter__test__base_8h_source.html index b7db39653b..0fb135048a 100644 --- a/docs/d0/dee/segmenter__test__base_8h_source.html +++ b/docs/d0/dee/segmenter__test__base_8h_source.html @@ -216,7 +216,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 74bfcf3b1b..71efd8966c 100644 --- a/docs/d0/df3/packager__util_8cc_source.html +++ b/docs/d0/df3/packager__util_8cc_source.html @@ -334,7 +334,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dfc/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry-members.html b/docs/d0/dfc/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry-members.html index 90fd24eed6..33b347bbbd 100644 --- a/docs/d0/dfc/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry-members.html +++ b/docs/d0/dfc/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry-members.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d0a/classshaka_1_1media_1_1MkvWriter.html b/docs/d1/d0a/classshaka_1_1media_1_1MkvWriter.html index cf612c3a3a..2ff9142cf9 100644 --- a/docs/d1/d0a/classshaka_1_1media_1_1MkvWriter.html +++ b/docs/d1/d0a/classshaka_1_1media_1_1MkvWriter.html @@ -376,7 +376,7 @@ Public Member Functions diff --git a/docs/d1/d0a/structshaka_1_1media_1_1H264Sps.html b/docs/d1/d0a/structshaka_1_1media_1_1H264Sps.html index 014d1f44e4..2fdd8a535d 100644 --- a/docs/d1/d0a/structshaka_1_1media_1_1H264Sps.html +++ b/docs/d1/d0a/structshaka_1_1media_1_1H264Sps.html @@ -242,7 +242,7 @@ int chroma_array_type< diff --git a/docs/d1/d0b/hevc__decoder__configuration__record_8cc_source.html b/docs/d1/d0b/hevc__decoder__configuration__record_8cc_source.html index 2514df2932..4de352c8bd 100644 --- a/docs/d1/d0b/hevc__decoder__configuration__record_8cc_source.html +++ b/docs/d1/d0b/hevc__decoder__configuration__record_8cc_source.html @@ -256,7 +256,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d12/classshaka_1_1media_1_1mp2t_1_1EsParserH264-members.html b/docs/d1/d12/classshaka_1_1media_1_1mp2t_1_1EsParserH264-members.html index 8ef522821f..5ce749967c 100644 --- a/docs/d1/d12/classshaka_1_1media_1_1mp2t_1_1EsParserH264-members.html +++ b/docs/d1/d12/classshaka_1_1media_1_1mp2t_1_1EsParserH264-members.html @@ -109,7 +109,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 70b922d4e6..82a9c13a6b 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/d1c/two__pass__single__segment__segmenter_8cc_source.html b/docs/d1/d1c/two__pass__single__segment__segmenter_8cc_source.html index 8f0301515e..17a0eb560d 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 @@ -277,7 +277,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 96d0b618f1..2c29ba47ab 100644 --- a/docs/d1/d1d/muxer__flags_8cc_source.html +++ b/docs/d1/d1d/muxer__flags_8cc_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d1f/classshaka_1_1media_1_1KeySource.html b/docs/d1/d1f/classshaka_1_1media_1_1KeySource.html index 759766c068..0ca89cdb46 100644 --- a/docs/d1/d1f/classshaka_1_1media_1_1KeySource.html +++ b/docs/d1/d1f/classshaka_1_1media_1_1KeySource.html @@ -407,7 +407,7 @@ static std::string  diff --git a/docs/d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html b/docs/d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html index 6bc49e9867..9b2958b62a 100644 --- a/docs/d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html +++ b/docs/d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html @@ -235,7 +235,7 @@ Public Member Functions diff --git a/docs/d1/d27/key__fetcher_8h_source.html b/docs/d1/d27/key__fetcher_8h_source.html index 01a7460a97..7f5a4960e4 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/classshaka_1_1media_1_1mp2t_1_1AdtsHeader-members.html b/docs/d1/d28/classshaka_1_1media_1_1mp2t_1_1AdtsHeader-members.html index 3d97221b09..92442b1e9e 100644 --- a/docs/d1/d28/classshaka_1_1media_1_1mp2t_1_1AdtsHeader-members.html +++ b/docs/d1/d28/classshaka_1_1media_1_1mp2t_1_1AdtsHeader-members.html @@ -105,7 +105,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 f05bb8a018..a0c231a4d5 100644 --- a/docs/d1/d2a/decryptor__source_8cc_source.html +++ b/docs/d1/d2a/decryptor__source_8cc_source.html @@ -209,7 +209,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d2c/structshaka_1_1media_1_1mp4_1_1DataReference-members.html b/docs/d1/d2c/structshaka_1_1media_1_1mp4_1_1DataReference-members.html index 402592fd74..7cd9b8e5f0 100644 --- a/docs/d1/d2c/structshaka_1_1media_1_1mp4_1_1DataReference-members.html +++ b/docs/d1/d2c/structshaka_1_1media_1_1mp4_1_1DataReference-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html b/docs/d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html index ac968cff6b..768e0a2923 100644 --- a/docs/d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html +++ b/docs/d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html @@ -385,7 +385,7 @@ class BoxBuffer diff --git a/docs/d1/d2f/webvtt__media__parser_8cc_source.html b/docs/d1/d2f/webvtt__media__parser_8cc_source.html index b6943ef10d..91683d51c5 100644 --- a/docs/d1/d2f/webvtt__media__parser_8cc_source.html +++ b/docs/d1/d2f/webvtt__media__parser_8cc_source.html @@ -488,7 +488,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d30/classshaka_1_1media_1_1mp2t_1_1TsSectionPes.html b/docs/d1/d30/classshaka_1_1media_1_1mp2t_1_1TsSectionPes.html index 3f057305bc..ca9e2c4af3 100644 --- a/docs/d1/d30/classshaka_1_1media_1_1mp2t_1_1TsSectionPes.html +++ b/docs/d1/d30/classshaka_1_1media_1_1mp2t_1_1TsSectionPes.html @@ -142,7 +142,7 @@ Additional Inherited Members diff --git a/docs/d1/d31/classshaka_1_1xml_1_1XmlNode.html b/docs/d1/d31/classshaka_1_1xml_1_1XmlNode.html index 0c3582e91a..d2ac71a66a 100644 --- a/docs/d1/d31/classshaka_1_1xml_1_1XmlNode.html +++ b/docs/d1/d31/classshaka_1_1xml_1_1XmlNode.html @@ -419,7 +419,7 @@ bool  diff --git a/docs/d1/d34/structshaka_1_1media_1_1SubsampleEntry.html b/docs/d1/d34/structshaka_1_1media_1_1SubsampleEntry.html index f6385cf24e..2d841ea80a 100644 --- a/docs/d1/d34/structshaka_1_1media_1_1SubsampleEntry.html +++ b/docs/d1/d34/structshaka_1_1media_1_1SubsampleEntry.html @@ -122,7 +122,7 @@ uint32_t cipher_bytes< diff --git a/docs/d1/d37/es__parser__h264_8h_source.html b/docs/d1/d37/es__parser__h264_8h_source.html index f675150f69..11b303e760 100644 --- a/docs/d1/d37/es__parser__h264_8h_source.html +++ b/docs/d1/d37/es__parser__h264_8h_source.html @@ -152,7 +152,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 ebd86fccb4..6958e44793 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/d3e/structshaka_1_1media_1_1mp4_1_1MovieExtends.html b/docs/d1/d3e/structshaka_1_1media_1_1mp4_1_1MovieExtends.html index 67c9e583bc..5e6e479bf9 100644 --- a/docs/d1/d3e/structshaka_1_1media_1_1mp4_1_1MovieExtends.html +++ b/docs/d1/d3e/structshaka_1_1media_1_1mp4_1_1MovieExtends.html @@ -176,7 +176,7 @@ Additional Inherited Members diff --git a/docs/d1/d40/classshaka_1_1MpdWriter-members.html b/docs/d1/d40/classshaka_1_1MpdWriter-members.html index ea48c494f3..c89b6b56d4 100644 --- a/docs/d1/d40/classshaka_1_1MpdWriter-members.html +++ b/docs/d1/d40/classshaka_1_1MpdWriter-members.html @@ -102,7 +102,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 de8dceff44..17b4411c98 100644 --- a/docs/d1/d45/decoding__time__iterator_8cc_source.html +++ b/docs/d1/d45/decoding__time__iterator_8cc_source.html @@ -168,7 +168,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d48/text__track__config_8h_source.html b/docs/d1/d48/text__track__config_8h_source.html index f6d33fb869..683c6ef959 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/d4f/classshaka_1_1media_1_1OffsetByteQueue-members.html b/docs/d1/d4f/classshaka_1_1media_1_1OffsetByteQueue-members.html index eb6ee3bc51..2d4dc8322e 100644 --- a/docs/d1/d4f/classshaka_1_1media_1_1OffsetByteQueue-members.html +++ b/docs/d1/d4f/classshaka_1_1media_1_1OffsetByteQueue-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d5a/structshaka_1_1media_1_1EncryptionKey-members.html b/docs/d1/d5a/structshaka_1_1media_1_1EncryptionKey-members.html index 4006ecc198..399c809ed9 100644 --- a/docs/d1/d5a/structshaka_1_1media_1_1EncryptionKey-members.html +++ b/docs/d1/d5a/structshaka_1_1media_1_1EncryptionKey-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d6e/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader.html b/docs/d1/d6e/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader.html index 72ecba8c68..eab19b81a8 100644 --- a/docs/d1/d6e/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader.html +++ b/docs/d1/d6e/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader.html @@ -222,7 +222,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 421c7f9ecc..f2948eb834 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 2e2308413e..c0b96b0905 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/d74/mp2t__media__parser_8cc_source.html b/docs/d1/d74/mp2t__media__parser_8cc_source.html index b2edc564db..52f46afa48 100644 --- a/docs/d1/d74/mp2t__media__parser_8cc_source.html +++ b/docs/d1/d74/mp2t__media__parser_8cc_source.html @@ -537,7 +537,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html b/docs/d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html index d7507d1690..05033f606f 100644 --- a/docs/d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html +++ b/docs/d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html @@ -152,7 +152,7 @@ int64_t  diff --git a/docs/d1/d7d/webm__video__client_8cc_source.html b/docs/d1/d7d/webm__video__client_8cc_source.html index cf2fcde67b..fe7987e1f9 100644 --- a/docs/d1/d7d/webm__video__client_8cc_source.html +++ b/docs/d1/d7d/webm__video__client_8cc_source.html @@ -270,7 +270,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d81/structshaka_1_1media_1_1H265ReferencePictureSet-members.html b/docs/d1/d81/structshaka_1_1media_1_1H265ReferencePictureSet-members.html index e810438e9b..0be0e39d9f 100644 --- a/docs/d1/d81/structshaka_1_1media_1_1H265ReferencePictureSet-members.html +++ b/docs/d1/d81/structshaka_1_1media_1_1H265ReferencePictureSet-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d82/adts__constants_8h_source.html b/docs/d1/d82/adts__constants_8h_source.html index 05ab2587f6..397945235c 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/d82/classshaka_1_1media_1_1WebMParserClient-members.html b/docs/d1/d82/classshaka_1_1media_1_1WebMParserClient-members.html index 95a2304653..5591831b7e 100644 --- a/docs/d1/d82/classshaka_1_1media_1_1WebMParserClient-members.html +++ b/docs/d1/d82/classshaka_1_1media_1_1WebMParserClient-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d86/classshaka_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html b/docs/d1/d86/classshaka_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html index 82ded5279b..9bfffb94b8 100644 --- a/docs/d1/d86/classshaka_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html +++ b/docs/d1/d86/classshaka_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html @@ -124,7 +124,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 446aa6fc99..dcf1f98c2c 100644 --- a/docs/d1/d8e/webm__audio__client_8cc_source.html +++ b/docs/d1/d8e/webm__audio__client_8cc_source.html @@ -214,7 +214,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d91/classshaka_1_1media_1_1H26xBitReader-members.html b/docs/d1/d91/classshaka_1_1media_1_1H26xBitReader-members.html index 3479b58986..06f2e087aa 100644 --- a/docs/d1/d91/classshaka_1_1media_1_1H26xBitReader-members.html +++ b/docs/d1/d91/classshaka_1_1media_1_1H26xBitReader-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d9d/classshaka_1_1media_1_1ByteQueue-members.html b/docs/d1/d9d/classshaka_1_1media_1_1ByteQueue-members.html index a80975758e..0dc33ce45a 100644 --- a/docs/d1/d9d/classshaka_1_1media_1_1ByteQueue-members.html +++ b/docs/d1/d9d/classshaka_1_1media_1_1ByteQueue-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d9d/tracks__builder_8h_source.html b/docs/d1/d9d/tracks__builder_8h_source.html index cc60081699..c31c9a1a00 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/d9e/structshaka_1_1media_1_1mp4_1_1CodecConfiguration-members.html b/docs/d1/d9e/structshaka_1_1media_1_1mp4_1_1CodecConfiguration-members.html index cf8f468be3..1b50d6302a 100644 --- a/docs/d1/d9e/structshaka_1_1media_1_1mp4_1_1CodecConfiguration-members.html +++ b/docs/d1/d9e/structshaka_1_1media_1_1mp4_1_1CodecConfiguration-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html b/docs/d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html index 10252c10fb..fa20a458e9 100644 --- a/docs/d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html +++ b/docs/d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html @@ -589,7 +589,7 @@ bool ReadWriteInt64 (i diff --git a/docs/d1/da1/structshaka_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html b/docs/d1/da1/structshaka_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html index ef25b8018c..84a308c573 100644 --- a/docs/d1/da1/structshaka_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html +++ b/docs/d1/da1/structshaka_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html @@ -116,7 +116,7 @@ scoped_refptr< diff --git a/docs/d1/da2/classshaka_1_1media_1_1NalUnitToByteStreamConverter-members.html b/docs/d1/da2/classshaka_1_1media_1_1NalUnitToByteStreamConverter-members.html index 48128061e8..5affb16b65 100644 --- a/docs/d1/da2/classshaka_1_1media_1_1NalUnitToByteStreamConverter-members.html +++ b/docs/d1/da2/classshaka_1_1media_1_1NalUnitToByteStreamConverter-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html b/docs/d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html index dd5a5bfef8..792520c03e 100644 --- a/docs/d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html +++ b/docs/d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html @@ -306,7 +306,7 @@ bool video_full_range_flag diff --git a/docs/d1/dad/classshaka_1_1media_1_1Demuxer-members.html b/docs/d1/dad/classshaka_1_1media_1_1Demuxer-members.html index d679cdb692..48b988810c 100644 --- a/docs/d1/dad/classshaka_1_1media_1_1Demuxer-members.html +++ b/docs/d1/dad/classshaka_1_1media_1_1Demuxer-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/db0/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader.html b/docs/d1/db0/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader.html index a6d50eebb7..253c915ef8 100644 --- a/docs/d1/db0/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader.html +++ b/docs/d1/db0/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader.html @@ -191,7 +191,7 @@ Additional Inherited Members diff --git a/docs/d1/db2/decoder__configuration__record_8h_source.html b/docs/d1/db2/decoder__configuration__record_8h_source.html index 53415a817a..be7b3d59b5 100644 --- a/docs/d1/db2/decoder__configuration__record_8h_source.html +++ b/docs/d1/db2/decoder__configuration__record_8h_source.html @@ -166,7 +166,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 5fdeb0e6db..4300e880c9 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/dcb/encrypting__fragmenter_8h_source.html b/docs/d1/dcb/encrypting__fragmenter_8h_source.html index 5d24a79988..4e74621e48 100644 --- a/docs/d1/dcb/encrypting__fragmenter_8h_source.html +++ b/docs/d1/dcb/encrypting__fragmenter_8h_source.html @@ -195,7 +195,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dd5/classshaka_1_1media_1_1Cluster.html b/docs/d1/dd5/classshaka_1_1media_1_1Cluster.html index 588609cbb8..8aa8888445 100644 --- a/docs/d1/dd5/classshaka_1_1media_1_1Cluster.html +++ b/docs/d1/dd5/classshaka_1_1media_1_1Cluster.html @@ -116,7 +116,7 @@ int size () const diff --git a/docs/d1/dd6/structshaka_1_1media_1_1mp4_1_1DataInformation-members.html b/docs/d1/dd6/structshaka_1_1media_1_1mp4_1_1DataInformation-members.html index b9572eb896..4cd860ef9f 100644 --- a/docs/d1/dd6/structshaka_1_1media_1_1mp4_1_1DataInformation-members.html +++ b/docs/d1/dd6/structshaka_1_1media_1_1mp4_1_1DataInformation-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/de2/classshaka_1_1media_1_1VideoStreamInfo-members.html b/docs/d1/de2/classshaka_1_1media_1_1VideoStreamInfo-members.html index aea582822d..b25d7009b5 100644 --- a/docs/d1/de2/classshaka_1_1media_1_1VideoStreamInfo-members.html +++ b/docs/d1/de2/classshaka_1_1media_1_1VideoStreamInfo-members.html @@ -125,7 +125,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 5fdf7dcdbe..1a80a81cb8 100644 --- a/docs/d1/de2/composition__offset__iterator_8cc_source.html +++ b/docs/d1/de2/composition__offset__iterator_8cc_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/de4/classshaka_1_1media_1_1KeyFetcher-members.html b/docs/d1/de4/classshaka_1_1media_1_1KeyFetcher-members.html index 93a2482cf8..e13fc8f6a4 100644 --- a/docs/d1/de4/classshaka_1_1media_1_1KeyFetcher-members.html +++ b/docs/d1/de4/classshaka_1_1media_1_1KeyFetcher-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html b/docs/d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html index c95da702eb..6415d8053c 100644 --- a/docs/d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html +++ b/docs/d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html @@ -197,7 +197,7 @@ Additional Inherited Members diff --git a/docs/d1/de7/structshaka_1_1media_1_1H265ReferencePictureListModifications-members.html b/docs/d1/de7/structshaka_1_1media_1_1H265ReferencePictureListModifications-members.html index 3e8c972dae..163f1ab332 100644 --- a/docs/d1/de7/structshaka_1_1media_1_1H265ReferencePictureListModifications-members.html +++ b/docs/d1/de7/structshaka_1_1media_1_1H265ReferencePictureListModifications-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/de9/classshaka_1_1media_1_1ProgressListener-members.html b/docs/d1/de9/classshaka_1_1media_1_1ProgressListener-members.html index a330937e70..a690ffa1a1 100644 --- a/docs/d1/de9/classshaka_1_1media_1_1ProgressListener-members.html +++ b/docs/d1/de9/classshaka_1_1media_1_1ProgressListener-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html b/docs/d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html index 78d990de2b..7ece626278 100644 --- a/docs/d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html +++ b/docs/d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html @@ -468,7 +468,7 @@ template<typename T > diff --git a/docs/d1/dee/structshaka_1_1media_1_1mp4_1_1SampleTable.html b/docs/d1/dee/structshaka_1_1media_1_1mp4_1_1SampleTable.html index f4f4f2b48a..7555d9a3bc 100644 --- a/docs/d1/dee/structshaka_1_1media_1_1mp4_1_1SampleTable.html +++ b/docs/d1/dee/structshaka_1_1media_1_1mp4_1_1SampleTable.html @@ -198,7 +198,7 @@ Additional Inherited Members diff --git a/docs/d1/df0/aes__encryptor_8h_source.html b/docs/d1/df0/aes__encryptor_8h_source.html index 68117db884..9b7c95a92f 100644 --- a/docs/d1/df0/aes__encryptor_8h_source.html +++ b/docs/d1/df0/aes__encryptor_8h_source.html @@ -194,7 +194,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/df3/structshaka_1_1MpdOptions.html b/docs/d1/df3/structshaka_1_1MpdOptions.html index 134efd43b2..f154962b9b 100644 --- a/docs/d1/df3/structshaka_1_1MpdOptions.html +++ b/docs/d1/df3/structshaka_1_1MpdOptions.html @@ -127,7 +127,7 @@ double suggested_presentat diff --git a/docs/d1/df5/nalu__reader_8cc_source.html b/docs/d1/df5/nalu__reader_8cc_source.html index ab111ecde6..6cf87023a5 100644 --- a/docs/d1/df5/nalu__reader_8cc_source.html +++ b/docs/d1/df5/nalu__reader_8cc_source.html @@ -434,7 +434,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/df9/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader-members.html b/docs/d1/df9/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader-members.html index 9d6decbb1f..a279dece00 100644 --- a/docs/d1/df9/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader-members.html +++ b/docs/d1/df9/structshaka_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/d02/timestamp_8h_source.html b/docs/d2/d02/timestamp_8h_source.html index 2a7880a52d..67e2f80470 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/d0b/classshaka_1_1media_1_1SeekHead-members.html b/docs/d2/d0b/classshaka_1_1media_1_1SeekHead-members.html index 2da8a1eae6..fe91d3ceaf 100644 --- a/docs/d2/d0b/classshaka_1_1media_1_1SeekHead-members.html +++ b/docs/d2/d0b/classshaka_1_1media_1_1SeekHead-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d0f/classshaka_1_1MpdBuilder-members.html b/docs/d2/d0f/classshaka_1_1MpdBuilder-members.html index ed1f3ed2b3..2553da8c04 100644 --- a/docs/d2/d0f/classshaka_1_1MpdBuilder-members.html +++ b/docs/d2/d0f/classshaka_1_1MpdBuilder-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d0f/structshaka_1_1media_1_1wvm_1_1PrevSampleData.html b/docs/d2/d0f/structshaka_1_1media_1_1wvm_1_1PrevSampleData.html index 6f7561a1a3..1f0aa71616 100644 --- a/docs/d2/d0f/structshaka_1_1media_1_1wvm_1_1PrevSampleData.html +++ b/docs/d2/d0f/structshaka_1_1media_1_1wvm_1_1PrevSampleData.html @@ -132,7 +132,7 @@ int64_t video_sample_durat diff --git a/docs/d2/d11/classshaka_1_1media_1_1MuxerListener-members.html b/docs/d2/d11/classshaka_1_1media_1_1MuxerListener-members.html index 0bfe0a3c4c..5a98e67419 100644 --- a/docs/d2/d11/classshaka_1_1media_1_1MuxerListener-members.html +++ b/docs/d2/d11/classshaka_1_1media_1_1MuxerListener-members.html @@ -109,7 +109,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 2fed9bc0c7..9011cffbab 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 7ca32567a4..37f61c715a 100644 --- a/docs/d2/d23/threaded__io__file_8cc_source.html +++ b/docs/d2/d23/threaded__io__file_8cc_source.html @@ -317,7 +317,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 944f9d4bc2..c3f98dea55 100644 --- a/docs/d2/d24/packager__util_8h_source.html +++ b/docs/d2/d24/packager__util_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d29/classshaka_1_1media_1_1mp4_1_1KeyRotationFragmenter.html b/docs/d2/d29/classshaka_1_1media_1_1mp4_1_1KeyRotationFragmenter.html index 054b1dfb4a..2a11f98827 100644 --- a/docs/d2/d29/classshaka_1_1media_1_1mp4_1_1KeyRotationFragmenter.html +++ b/docs/d2/d29/classshaka_1_1media_1_1mp4_1_1KeyRotationFragmenter.html @@ -328,7 +328,7 @@ void set_encryption_key diff --git a/docs/d2/d30/tracks__builder_8cc_source.html b/docs/d2/d30/tracks__builder_8cc_source.html index e85a422e55..2d55b4c18e 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 4c36309402..f2d4d3dbc7 100644 --- a/docs/d2/d33/video__slice__header__parser_8h_source.html +++ b/docs/d2/d33/video__slice__header__parser_8h_source.html @@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d35/classshaka_1_1media_1_1WidevineKeySource-members.html b/docs/d2/d35/classshaka_1_1media_1_1WidevineKeySource-members.html index 47245a4948..d915ed3d4f 100644 --- a/docs/d2/d35/classshaka_1_1media_1_1WidevineKeySource-members.html +++ b/docs/d2/d35/classshaka_1_1media_1_1WidevineKeySource-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d3c/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html b/docs/d2/d3c/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html index 0e8fe9a8de..0d481d350b 100644 --- a/docs/d2/d3c/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html +++ b/docs/d2/d3c/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html @@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d45/program__map__table__writer_8cc_source.html b/docs/d2/d45/program__map__table__writer_8cc_source.html index fbcf4a7cdb..6256fd302c 100644 --- a/docs/d2/d45/program__map__table__writer_8cc_source.html +++ b/docs/d2/d45/program__map__table__writer_8cc_source.html @@ -500,7 +500,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 3577c3a1fb..590596860f 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 546b8634dd..4fca8866a1 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/d4f/structshaka_1_1Element-members.html b/docs/d2/d4f/structshaka_1_1Element-members.html index 6ee54db1ef..227d157f2d 100644 --- a/docs/d2/d4f/structshaka_1_1Element-members.html +++ b/docs/d2/d4f/structshaka_1_1Element-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d51/classshaka_1_1MockMpdNotifier-members.html b/docs/d2/d51/classshaka_1_1MockMpdNotifier-members.html index a3a424e8b1..021440eb3b 100644 --- a/docs/d2/d51/classshaka_1_1MockMpdNotifier-members.html +++ b/docs/d2/d51/classshaka_1_1MockMpdNotifier-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d59/structshaka_1_1media_1_1H264SliceHeader.html b/docs/d2/d59/structshaka_1_1media_1_1H264SliceHeader.html index 2e870c493b..80a7edd6a1 100644 --- a/docs/d2/d59/structshaka_1_1media_1_1H264SliceHeader.html +++ b/docs/d2/d59/structshaka_1_1media_1_1H264SliceHeader.html @@ -276,7 +276,7 @@ int slice_beta_offset_div2 diff --git a/docs/d2/d5b/classshaka_1_1media_1_1KeySource-members.html b/docs/d2/d5b/classshaka_1_1media_1_1KeySource-members.html index 647d31e54e..186c94ce29 100644 --- a/docs/d2/d5b/classshaka_1_1media_1_1KeySource-members.html +++ b/docs/d2/d5b/classshaka_1_1media_1_1KeySource-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d5c/classshaka_1_1SimpleMpdNotifier-members.html b/docs/d2/d5c/classshaka_1_1SimpleMpdNotifier-members.html index a94248f369..197dbf5591 100644 --- a/docs/d2/d5c/classshaka_1_1SimpleMpdNotifier-members.html +++ b/docs/d2/d5c/classshaka_1_1SimpleMpdNotifier-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d61/structshaka_1_1media_1_1H264ModificationOfPicNum-members.html b/docs/d2/d61/structshaka_1_1media_1_1H264ModificationOfPicNum-members.html index d6eadecb52..338e2ee957 100644 --- a/docs/d2/d61/structshaka_1_1media_1_1H264ModificationOfPicNum-members.html +++ b/docs/d2/d61/structshaka_1_1media_1_1H264ModificationOfPicNum-members.html @@ -99,7 +99,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 12187ec6db..d4a15fcfc7 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/d62/structshaka_1_1media_1_1mp4_1_1Movie-members.html b/docs/d2/d62/structshaka_1_1media_1_1mp4_1_1Movie-members.html index ea2e91be25..0af2d803b8 100644 --- a/docs/d2/d62/structshaka_1_1media_1_1mp4_1_1Movie-members.html +++ b/docs/d2/d62/structshaka_1_1media_1_1mp4_1_1Movie-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d6a/classshaka_1_1media_1_1AesCryptor-members.html b/docs/d2/d6a/classshaka_1_1media_1_1AesCryptor-members.html index 3a79ab0c3a..58263a07d9 100644 --- a/docs/d2/d6a/classshaka_1_1media_1_1AesCryptor-members.html +++ b/docs/d2/d6a/classshaka_1_1media_1_1AesCryptor-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d6f/classBandwidthEstimator.html b/docs/d2/d6f/classBandwidthEstimator.html index a817826fe7..0ea88edcb7 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/d70/structshaka_1_1media_1_1mp4_1_1SchemeInfo.html b/docs/d2/d70/structshaka_1_1media_1_1mp4_1_1SchemeInfo.html index bb2f19c06c..7f73cc38b1 100644 --- a/docs/d2/d70/structshaka_1_1media_1_1mp4_1_1SchemeInfo.html +++ b/docs/d2/d70/structshaka_1_1media_1_1mp4_1_1SchemeInfo.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d2/d7b/classshaka_1_1DashIopMpdNotifier-members.html b/docs/d2/d7b/classshaka_1_1DashIopMpdNotifier-members.html index c205ad96d3..644cdd67e3 100644 --- a/docs/d2/d7b/classshaka_1_1DashIopMpdNotifier-members.html +++ b/docs/d2/d7b/classshaka_1_1DashIopMpdNotifier-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html index 95875e74bc..d558819e6b 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 015d384614..fa3175a8b5 100644 --- a/docs/d2/d7e/aac__audio__specific__config_8h_source.html +++ b/docs/d2/d7e/aac__audio__specific__config_8h_source.html @@ -164,7 +164,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d7f/structshaka_1_1media_1_1mp4_1_1CuePayloadBox.html b/docs/d2/d7f/structshaka_1_1media_1_1mp4_1_1CuePayloadBox.html index 30ac3cb446..8c5282830f 100644 --- a/docs/d2/d7f/structshaka_1_1media_1_1mp4_1_1CuePayloadBox.html +++ b/docs/d2/d7f/structshaka_1_1media_1_1mp4_1_1CuePayloadBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d2/d8a/hls__notify__muxer__listener_8h_source.html b/docs/d2/d8a/hls__notify__muxer__listener_8h_source.html index c83db199ff..dcdee865e3 100644 --- a/docs/d2/d8a/hls__notify__muxer__listener_8h_source.html +++ b/docs/d2/d8a/hls__notify__muxer__listener_8h_source.html @@ -175,7 +175,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d91/structshaka_1_1media_1_1mp4_1_1CuePayloadBox-members.html b/docs/d2/d91/structshaka_1_1media_1_1mp4_1_1CuePayloadBox-members.html index 70d3ea4f73..2fa8044412 100644 --- a/docs/d2/d91/structshaka_1_1media_1_1mp4_1_1CuePayloadBox-members.html +++ b/docs/d2/d91/structshaka_1_1media_1_1mp4_1_1CuePayloadBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d92/box__reader_8h_source.html b/docs/d2/d92/box__reader_8h_source.html index abce5efc8c..7eeeeeb578 100644 --- a/docs/d2/d92/box__reader_8h_source.html +++ b/docs/d2/d92/box__reader_8h_source.html @@ -246,7 +246,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html b/docs/d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html index d64965307c..7d0a1d8125 100644 --- a/docs/d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html +++ b/docs/d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html @@ -387,7 +387,7 @@ const std::vector< uint8_t > &  diff --git a/docs/d2/d95/structshaka_1_1media_1_1StreamDescriptor.html b/docs/d2/d95/structshaka_1_1media_1_1StreamDescriptor.html index 46f22902c3..9b32671c03 100644 --- a/docs/d2/d95/structshaka_1_1media_1_1StreamDescriptor.html +++ b/docs/d2/d95/structshaka_1_1media_1_1StreamDescriptor.html @@ -140,7 +140,7 @@ std::string hls_playlist_n diff --git a/docs/d2/da6/threaded__io__file_8h_source.html b/docs/d2/da6/threaded__io__file_8h_source.html index 797cf21548..8527b75cb0 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 31e165bb15..2fa0452d2f 100644 --- a/docs/d2/da8/mp4_2segmenter_8cc_source.html +++ b/docs/d2/da8/mp4_2segmenter_8cc_source.html @@ -601,7 +601,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/da9/classshaka_1_1media_1_1BufferWriter-members.html b/docs/d2/da9/classshaka_1_1media_1_1BufferWriter-members.html index 56071021b6..63eadbf6d5 100644 --- a/docs/d2/da9/classshaka_1_1media_1_1BufferWriter-members.html +++ b/docs/d2/da9/classshaka_1_1media_1_1BufferWriter-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dae/classshaka_1_1MockAdaptationSet-members.html b/docs/d2/dae/classshaka_1_1MockAdaptationSet-members.html index 2a657b60c5..67a5c3bb78 100644 --- a/docs/d2/dae/classshaka_1_1MockAdaptationSet-members.html +++ b/docs/d2/dae/classshaka_1_1MockAdaptationSet-members.html @@ -126,7 +126,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 911216564c..b24715f3df 100644 --- a/docs/d2/dae/webm__muxer_8cc_source.html +++ b/docs/d2/dae/webm__muxer_8cc_source.html @@ -225,7 +225,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/db1/structshaka_1_1media_1_1mp4_1_1SampleToGroup-members.html b/docs/d2/db1/structshaka_1_1media_1_1mp4_1_1SampleToGroup-members.html index 3f0552c5ba..7f2ff7cfa9 100644 --- a/docs/d2/db1/structshaka_1_1media_1_1mp4_1_1SampleToGroup-members.html +++ b/docs/d2/db1/structshaka_1_1media_1_1mp4_1_1SampleToGroup-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/db6/structshaka_1_1media_1_1mp4_1_1FileType-members.html b/docs/d2/db6/structshaka_1_1media_1_1mp4_1_1FileType-members.html index a91f2bee97..addf6016a5 100644 --- a/docs/d2/db6/structshaka_1_1media_1_1mp4_1_1FileType-members.html +++ b/docs/d2/db6/structshaka_1_1media_1_1mp4_1_1FileType-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/db8/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox-members.html b/docs/d2/db8/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox-members.html index 9b86dd248c..81cdd7d6b1 100644 --- a/docs/d2/db8/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox-members.html +++ b/docs/d2/db8/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dba/classshaka_1_1media_1_1SegmentTestBase.html b/docs/d2/dba/classshaka_1_1media_1_1SegmentTestBase.html index bacd290883..109a184a8f 100644 --- a/docs/d2/dba/classshaka_1_1media_1_1SegmentTestBase.html +++ b/docs/d2/dba/classshaka_1_1media_1_1SegmentTestBase.html @@ -180,7 +180,7 @@ bool single_segment_ diff --git a/docs/d2/dc3/structshaka_1_1media_1_1mp4_1_1Track-members.html b/docs/d2/dc3/structshaka_1_1media_1_1mp4_1_1Track-members.html index e85476ca7b..f9f6c21723 100644 --- a/docs/d2/dc3/structshaka_1_1media_1_1mp4_1_1Track-members.html +++ b/docs/d2/dc3/structshaka_1_1media_1_1mp4_1_1Track-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dc7/structshaka_1_1MpdOptions-members.html b/docs/d2/dc7/structshaka_1_1MpdOptions-members.html index 9fd0879223..24d21a7f6d 100644 --- a/docs/d2/dc7/structshaka_1_1MpdOptions-members.html +++ b/docs/d2/dc7/structshaka_1_1MpdOptions-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dcd/program__map__table__writer_8h_source.html b/docs/d2/dcd/program__map__table__writer_8h_source.html index 04c0cd01d1..382a447857 100644 --- a/docs/d2/dcd/program__map__table__writer_8h_source.html +++ b/docs/d2/dcd/program__map__table__writer_8h_source.html @@ -190,7 +190,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dcd/structshaka_1_1media_1_1mp4_1_1EditList-members.html b/docs/d2/dcd/structshaka_1_1media_1_1mp4_1_1EditList-members.html index 7ea594e96b..41edc2b413 100644 --- a/docs/d2/dcd/structshaka_1_1media_1_1mp4_1_1EditList-members.html +++ b/docs/d2/dcd/structshaka_1_1media_1_1mp4_1_1EditList-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html b/docs/d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html index 9f5437f983..96aa50ab05 100644 --- a/docs/d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html +++ b/docs/d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html @@ -277,7 +277,7 @@ double cluster_length_sec< diff --git a/docs/d2/dd6/mkv__writer_8h_source.html b/docs/d2/dd6/mkv__writer_8h_source.html index 040f13e72b..6ae310ab08 100644 --- a/docs/d2/dd6/mkv__writer_8h_source.html +++ b/docs/d2/dd6/mkv__writer_8h_source.html @@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html b/docs/d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html index c9ea733831..a059c03341 100644 --- a/docs/d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html +++ b/docs/d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
diff --git a/docs/d2/de3/classshaka_1_1media_1_1mp2t_1_1TsSectionPmt.html b/docs/d2/de3/classshaka_1_1media_1_1mp2t_1_1TsSectionPmt.html index 2ca21bc3a4..208f1e5ca6 100644 --- a/docs/d2/de3/classshaka_1_1media_1_1mp2t_1_1TsSectionPmt.html +++ b/docs/d2/de3/classshaka_1_1media_1_1mp2t_1_1TsSectionPmt.html @@ -155,7 +155,7 @@ void Reset () override diff --git a/docs/d2/de6/packager__main_8cc_source.html b/docs/d2/de6/packager__main_8cc_source.html index 2c03eb65c1..29878386c6 100644 --- a/docs/d2/de6/packager__main_8cc_source.html +++ b/docs/d2/de6/packager__main_8cc_source.html @@ -691,7 +691,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/de7/classshaka_1_1media_1_1TextStreamInfo-members.html b/docs/d2/de7/classshaka_1_1media_1_1TextStreamInfo-members.html index 1ca01a1b59..f413191756 100644 --- a/docs/d2/de7/classshaka_1_1media_1_1TextStreamInfo-members.html +++ b/docs/d2/de7/classshaka_1_1media_1_1TextStreamInfo-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/de7/structshaka_1_1media_1_1mp4_1_1Edit-members.html b/docs/d2/de7/structshaka_1_1media_1_1mp4_1_1Edit-members.html index 42a2591042..27c2db455f 100644 --- a/docs/d2/de7/structshaka_1_1media_1_1mp4_1_1Edit-members.html +++ b/docs/d2/de7/structshaka_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/de9/mock__muxer__listener_8h_source.html b/docs/d2/de9/mock__muxer__listener_8h_source.html index 1565df03c1..5779891eab 100644 --- a/docs/d2/de9/mock__muxer__listener_8h_source.html +++ b/docs/d2/de9/mock__muxer__listener_8h_source.html @@ -163,7 +163,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 c8a0e23fa6..1afcf6ff38 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/classshaka_1_1media_1_1mp2t_1_1TsSectionPes-members.html b/docs/d2/dee/classshaka_1_1media_1_1mp2t_1_1TsSectionPes-members.html index 8b5feb2be3..a069e68803 100644 --- a/docs/d2/dee/classshaka_1_1media_1_1mp2t_1_1TsSectionPes-members.html +++ b/docs/d2/dee/classshaka_1_1media_1_1mp2t_1_1TsSectionPes-members.html @@ -108,7 +108,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 b043b7e42d..b0da3d3463 100644 --- a/docs/d2/dee/pes__packet__generator_8cc_source.html +++ b/docs/d2/dee/pes__packet__generator_8cc_source.html @@ -328,7 +328,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/df8/classshaka_1_1media_1_1SegmentTestBase_1_1ClusterParser.html b/docs/d2/df8/classshaka_1_1media_1_1SegmentTestBase_1_1ClusterParser.html index bbafdf2183..5d95e17feb 100644 --- a/docs/d2/df8/classshaka_1_1media_1_1SegmentTestBase_1_1ClusterParser.html +++ b/docs/d2/df8/classshaka_1_1media_1_1SegmentTestBase_1_1ClusterParser.html @@ -128,7 +128,7 @@ int cluster_count () c diff --git a/docs/d2/dfc/classshaka_1_1media_1_1MkvWriter-members.html b/docs/d2/dfc/classshaka_1_1media_1_1MkvWriter-members.html index 55fa250e4c..4765d2ca29 100644 --- a/docs/d2/dfc/classshaka_1_1media_1_1MkvWriter-members.html +++ b/docs/d2/dfc/classshaka_1_1media_1_1MkvWriter-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dfd/adts__header_8h_source.html b/docs/d2/dfd/adts__header_8h_source.html index 02959621ff..beb585698c 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/d3/d07/classshaka_1_1media_1_1mp4_1_1BoxReader-members.html b/docs/d3/d07/classshaka_1_1media_1_1mp4_1_1BoxReader-members.html index c05691f79f..bbcd2d3810 100644 --- a/docs/d3/d07/classshaka_1_1media_1_1mp4_1_1BoxReader-members.html +++ b/docs/d3/d07/classshaka_1_1media_1_1mp4_1_1BoxReader-members.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d09/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator-members.html b/docs/d3/d09/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator-members.html index 3b01eb6c05..fca1c7d765 100644 --- a/docs/d3/d09/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator-members.html +++ b/docs/d3/d09/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d0a/classshaka_1_1media_1_1MediaParser.html b/docs/d3/d0a/classshaka_1_1media_1_1MediaParser.html index d03496e6f5..a25b5c0db6 100644 --- a/docs/d3/d0a/classshaka_1_1media_1_1MediaParser.html +++ b/docs/d3/d0a/classshaka_1_1media_1_1MediaParser.html @@ -298,7 +298,7 @@ Public Member Functions diff --git a/docs/d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html b/docs/d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html index 7806cabbf3..48178b867a 100644 --- a/docs/d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html +++ b/docs/d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html @@ -336,7 +336,7 @@ Static Public Member Functions diff --git a/docs/d3/d12/classshaka_1_1media_1_1LibcryptoThreading-members.html b/docs/d3/d12/classshaka_1_1media_1_1LibcryptoThreading-members.html index e9a1cddda6..e03807166b 100644 --- a/docs/d3/d12/classshaka_1_1media_1_1LibcryptoThreading-members.html +++ b/docs/d3/d12/classshaka_1_1media_1_1LibcryptoThreading-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d15/udp__file__win_8cc_source.html b/docs/d3/d15/udp__file__win_8cc_source.html index 014498e78d..a2f5bc93a0 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/d18/classshaka_1_1media_1_1mp2t_1_1TsSectionPat-members.html b/docs/d3/d18/classshaka_1_1media_1_1mp2t_1_1TsSectionPat-members.html index ed622ff7f8..05719be913 100644 --- a/docs/d3/d18/classshaka_1_1media_1_1mp2t_1_1TsSectionPat-members.html +++ b/docs/d3/d18/classshaka_1_1media_1_1mp2t_1_1TsSectionPat-members.html @@ -113,7 +113,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 f9bd7240f5..e67b0e6344 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/d35/video__slice__header__parser_8cc_source.html b/docs/d3/d35/video__slice__header__parser_8cc_source.html index 55a33ccd1b..7c063f6344 100644 --- a/docs/d3/d35/video__slice__header__parser_8cc_source.html +++ b/docs/d3/d35/video__slice__header__parser_8cc_source.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d47/structshaka_1_1media_1_1mp4_1_1PrivFrame.html b/docs/d3/d47/structshaka_1_1media_1_1mp4_1_1PrivFrame.html index 04fa51349f..df009195ec 100644 --- a/docs/d3/d47/structshaka_1_1media_1_1mp4_1_1PrivFrame.html +++ b/docs/d3/d47/structshaka_1_1media_1_1mp4_1_1PrivFrame.html @@ -129,7 +129,7 @@ std::string value diff --git a/docs/d3/d51/classshaka_1_1media_1_1LibcryptoThreading.html b/docs/d3/d51/classshaka_1_1media_1_1LibcryptoThreading.html index eefdcc742d..760592df14 100644 --- a/docs/d3/d51/classshaka_1_1media_1_1LibcryptoThreading.html +++ b/docs/d3/d51/classshaka_1_1media_1_1LibcryptoThreading.html @@ -108,7 +108,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 2ee6697a14..4b7f21a3a1 100644 --- a/docs/d3/d56/decrypt__config_8cc_source.html +++ b/docs/d3/d56/decrypt__config_8cc_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d61/classshaka_1_1media_1_1File.html b/docs/d3/d61/classshaka_1_1media_1_1File.html index d046e0f5d0..af626a4563 100644 --- a/docs/d3/d61/classshaka_1_1media_1_1File.html +++ b/docs/d3/d61/classshaka_1_1media_1_1File.html @@ -811,7 +811,7 @@ class ThreadedIoFile diff --git a/docs/d3/d62/continuity__counter_8h_source.html b/docs/d3/d62/continuity__counter_8h_source.html index b2f0478b08..050d4b9cb7 100644 --- a/docs/d3/d62/continuity__counter_8h_source.html +++ b/docs/d3/d62/continuity__counter_8h_source.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d62/rcheck_8h_source.html b/docs/d3/d62/rcheck_8h_source.html index 65d4596bcb..3ca7d8c092 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/d66/structshaka_1_1media_1_1mp4_1_1DataEntryUrl-members.html b/docs/d3/d66/structshaka_1_1media_1_1mp4_1_1DataEntryUrl-members.html index 309fe91cac..1d3127080f 100644 --- a/docs/d3/d66/structshaka_1_1media_1_1mp4_1_1DataEntryUrl-members.html +++ b/docs/d3/d66/structshaka_1_1media_1_1mp4_1_1DataEntryUrl-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d67/classshaka_1_1media_1_1WebMVideoClient.html b/docs/d3/d67/classshaka_1_1media_1_1WebMVideoClient.html index 79e52631d7..de0b9b008d 100644 --- a/docs/d3/d67/classshaka_1_1media_1_1WebMVideoClient.html +++ b/docs/d3/d67/classshaka_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/d3/d6b/fixed__key__source_8cc_source.html b/docs/d3/d6b/fixed__key__source_8cc_source.html index a75ca877c6..fecef463ea 100644 --- a/docs/d3/d6b/fixed__key__source_8cc_source.html +++ b/docs/d3/d6b/fixed__key__source_8cc_source.html @@ -247,7 +247,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d71/classshaka_1_1media_1_1mp2t_1_1TsMuxer.html b/docs/d3/d71/classshaka_1_1media_1_1mp2t_1_1TsMuxer.html index 5b70f34817..7bf7655190 100644 --- a/docs/d3/d71/classshaka_1_1media_1_1mp2t_1_1TsMuxer.html +++ b/docs/d3/d71/classshaka_1_1media_1_1mp2t_1_1TsMuxer.html @@ -178,7 +178,7 @@ FourCC protection_scheme diff --git a/docs/d3/d72/fixed__key__source_8h_source.html b/docs/d3/d72/fixed__key__source_8h_source.html index f149309017..ed4be7e789 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/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html b/docs/d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html index 8a564c8dc9..9f9a214a5a 100644 --- a/docs/d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html +++ b/docs/d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html @@ -182,7 +182,7 @@ FourCC protection_scheme diff --git a/docs/d3/d75/classshaka_1_1media_1_1AesEncryptor.html b/docs/d3/d75/classshaka_1_1media_1_1AesEncryptor.html index 9a9a4f501b..e41396bbf5 100644 --- a/docs/d3/d75/classshaka_1_1media_1_1AesEncryptor.html +++ b/docs/d3/d75/classshaka_1_1media_1_1AesEncryptor.html @@ -236,7 +236,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/d3/d75/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html b/docs/d3/d75/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html index ac23e6e1b8..0674a2852d 100644 --- a/docs/d3/d75/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html +++ b/docs/d3/d75/classshaka_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/d76/muxer__flags_8h_source.html b/docs/d3/d76/muxer__flags_8h_source.html index 36e8dcfda8..466384f212 100644 --- a/docs/d3/d76/muxer__flags_8h_source.html +++ b/docs/d3/d76/muxer__flags_8h_source.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d77/structshaka_1_1media_1_1mp4_1_1TextSampleEntry-members.html b/docs/d3/d77/structshaka_1_1media_1_1mp4_1_1TextSampleEntry-members.html index d4be03d5a0..b3890901ce 100644 --- a/docs/d3/d77/structshaka_1_1media_1_1mp4_1_1TextSampleEntry-members.html +++ b/docs/d3/d77/structshaka_1_1media_1_1mp4_1_1TextSampleEntry-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d7b/classshaka_1_1media_1_1RsaPublicKey-members.html b/docs/d3/d7b/classshaka_1_1media_1_1RsaPublicKey-members.html index fc846cdcff..7a3c3e4ab0 100644 --- a/docs/d3/d7b/classshaka_1_1media_1_1RsaPublicKey-members.html +++ b/docs/d3/d7b/classshaka_1_1media_1_1RsaPublicKey-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html b/docs/d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html index cef6465b95..047a762b56 100644 --- a/docs/d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html +++ b/docs/d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html @@ -223,7 +223,7 @@ An empty scoped_refptr if there was unexpected values in the provided parameters diff --git a/docs/d3/d80/muxer__util_8h_source.html b/docs/d3/d80/muxer__util_8h_source.html index b3d0cdb817..061f5c05aa 100644 --- a/docs/d3/d80/muxer__util_8h_source.html +++ b/docs/d3/d80/muxer__util_8h_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d87/structshaka_1_1media_1_1mp4_1_1SampleToChunk.html b/docs/d3/d87/structshaka_1_1media_1_1mp4_1_1SampleToChunk.html index 0af8578884..2a2dd9e31f 100644 --- a/docs/d3/d87/structshaka_1_1media_1_1mp4_1_1SampleToChunk.html +++ b/docs/d3/d87/structshaka_1_1media_1_1mp4_1_1SampleToChunk.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d3/d8b/structshaka_1_1media_1_1FileCloser.html b/docs/d3/d8b/structshaka_1_1media_1_1FileCloser.html index e4fae4cd34..0ed4fc217b 100644 --- a/docs/d3/d8b/structshaka_1_1media_1_1FileCloser.html +++ b/docs/d3/d8b/structshaka_1_1media_1_1FileCloser.html @@ -112,7 +112,7 @@ void operator() ( diff --git a/docs/d3/d8d/webm__audio__client_8h_source.html b/docs/d3/d8d/webm__audio__client_8h_source.html index 6d6b37e0b4..02610fe500 100644 --- a/docs/d3/d8d/webm__audio__client_8h_source.html +++ b/docs/d3/d8d/webm__audio__client_8h_source.html @@ -144,7 +144,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 7c446d2203..7f81c87ef9 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/d91/classshaka_1_1media_1_1H264Parser.html b/docs/d3/d91/classshaka_1_1media_1_1H264Parser.html index 7a09e9b776..7808b4964a 100644 --- a/docs/d3/d91/classshaka_1_1media_1_1H264Parser.html +++ b/docs/d3/d91/classshaka_1_1media_1_1H264Parser.html @@ -135,7 +135,7 @@ Result ParseSEI (const diff --git a/docs/d3/da0/ec3__audio__util_8h_source.html b/docs/d3/da0/ec3__audio__util_8h_source.html index 4fb3cb8916..49c8a0e613 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/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html b/docs/d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html index a2093ae42f..cd329270fe 100644 --- a/docs/d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html +++ b/docs/d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html @@ -293,7 +293,7 @@ double cluster_length_sec< diff --git a/docs/d3/da2/structshaka_1_1media_1_1mp4_1_1SchemeType.html b/docs/d3/da2/structshaka_1_1media_1_1mp4_1_1SchemeType.html index 3ac67e9afd..d45c6146ab 100644 --- a/docs/d3/da2/structshaka_1_1media_1_1mp4_1_1SchemeType.html +++ b/docs/d3/da2/structshaka_1_1media_1_1mp4_1_1SchemeType.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d3/dad/structshaka_1_1media_1_1mp4_1_1ID3v2.html b/docs/d3/dad/structshaka_1_1media_1_1mp4_1_1ID3v2.html index 1acb486a6b..b4b4f7908d 100644 --- a/docs/d3/dad/structshaka_1_1media_1_1mp4_1_1ID3v2.html +++ b/docs/d3/dad/structshaka_1_1media_1_1mp4_1_1ID3v2.html @@ -189,7 +189,7 @@ Additional Inherited Members diff --git a/docs/d3/db4/classshaka_1_1media_1_1WebMWebVTTParser-members.html b/docs/d3/db4/classshaka_1_1media_1_1WebMWebVTTParser-members.html index 3c13228919..fbe5509971 100644 --- a/docs/d3/db4/classshaka_1_1media_1_1WebMWebVTTParser-members.html +++ b/docs/d3/db4/classshaka_1_1media_1_1WebMWebVTTParser-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/db5/structshaka_1_1media_1_1mp4_1_1Track.html b/docs/d3/db5/structshaka_1_1media_1_1mp4_1_1Track.html index 3f5b44d794..f3cc6d336a 100644 --- a/docs/d3/db5/structshaka_1_1media_1_1mp4_1_1Track.html +++ b/docs/d3/db5/structshaka_1_1media_1_1mp4_1_1Track.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d3/db6/webm__parser_8cc_source.html b/docs/d3/db6/webm__parser_8cc_source.html index f6d9aeba88..62aa07323f 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 e17061582a..90295efa50 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/dbe/demuxer_8cc_source.html b/docs/d3/dbe/demuxer_8cc_source.html index 72e40bf077..deb3e51c4e 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/dbe/structshaka_1_1media_1_1mp4_1_1EditList.html b/docs/d3/dbe/structshaka_1_1media_1_1mp4_1_1EditList.html index 49c6b04349..5fe45db397 100644 --- a/docs/d3/dbe/structshaka_1_1media_1_1mp4_1_1EditList.html +++ b/docs/d3/dbe/structshaka_1_1media_1_1mp4_1_1EditList.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html b/docs/d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html index 802ba7ca06..a7ada4baa7 100644 --- a/docs/d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html +++ b/docs/d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
diff --git a/docs/d3/dd0/classshaka_1_1MpdNotifier.html b/docs/d3/dd0/classshaka_1_1MpdNotifier.html index 85466a8c51..1c668d7d31 100644 --- a/docs/d3/dd0/classshaka_1_1MpdNotifier.html +++ b/docs/d3/dd0/classshaka_1_1MpdNotifier.html @@ -472,7 +472,7 @@ Public Member Functions diff --git a/docs/d3/dd0/structshaka_1_1media_1_1mp4_1_1SegmentType.html b/docs/d3/dd0/structshaka_1_1media_1_1mp4_1_1SegmentType.html index 75ff4e57bb..16844a6c5c 100644 --- a/docs/d3/dd0/structshaka_1_1media_1_1mp4_1_1SegmentType.html +++ b/docs/d3/dd0/structshaka_1_1media_1_1mp4_1_1SegmentType.html @@ -177,7 +177,7 @@ std::vector< FourCC > < diff --git a/docs/d3/de4/seek__head_8h_source.html b/docs/d3/de4/seek__head_8h_source.html index 54d9f8fd93..1693539215 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/de9/classshaka_1_1media_1_1mp4_1_1BoxBuffer-members.html b/docs/d3/de9/classshaka_1_1media_1_1mp4_1_1BoxBuffer-members.html index cde25c6a9a..a57a79086f 100644 --- a/docs/d3/de9/classshaka_1_1media_1_1mp4_1_1BoxBuffer-members.html +++ b/docs/d3/de9/classshaka_1_1media_1_1mp4_1_1BoxBuffer-members.html @@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/de9/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription-members.html b/docs/d3/de9/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription-members.html index 0b167c977e..0556df2a2a 100644 --- a/docs/d3/de9/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription-members.html +++ b/docs/d3/de9/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/df1/box__reader_8cc_source.html b/docs/d3/df1/box__reader_8cc_source.html index 8c3d71a38c..5a9d011997 100644 --- a/docs/d3/df1/box__reader_8cc_source.html +++ b/docs/d3/df1/box__reader_8cc_source.html @@ -260,7 +260,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html b/docs/d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html index 6eeb30feab..a962c74fa7 100644 --- a/docs/d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html +++ b/docs/d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html @@ -297,7 +297,7 @@ AES_KEY * mutable_aes_key< 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 cef562d32f..66aca8fd29 100644 --- a/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html +++ b/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html @@ -95,196 +95,198 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
6 
7 #include "packager/media/formats/mp4/multi_segment_segmenter.h"
8 
-
9 #include "packager/base/strings/string_number_conversions.h"
-
10 #include "packager/base/strings/string_util.h"
-
11 #include "packager/media/base/buffer_writer.h"
-
12 #include "packager/media/base/media_stream.h"
-
13 #include "packager/media/base/muxer_options.h"
-
14 #include "packager/media/base/muxer_util.h"
-
15 #include "packager/media/event/muxer_listener.h"
-
16 #include "packager/media/file/file.h"
-
17 #include "packager/media/formats/mp4/box_definitions.h"
-
18 
-
19 namespace shaka {
-
20 namespace media {
-
21 namespace mp4 {
-
22 
-
23 MultiSegmentSegmenter::MultiSegmentSegmenter(const MuxerOptions& options,
-
24  std::unique_ptr<FileType> ftyp,
-
25  std::unique_ptr<Movie> moov)
-
26  : Segmenter(options, std::move(ftyp), std::move(moov)),
-
27  styp_(new SegmentType),
-
28  num_segments_(0) {
-
29  // Use the same brands for styp as ftyp.
-
30  styp_->major_brand = Segmenter::ftyp()->major_brand;
-
31  styp_->compatible_brands = Segmenter::ftyp()->compatible_brands;
-
32 }
-
33 
-
34 MultiSegmentSegmenter::~MultiSegmentSegmenter() {}
+
9 #include <algorithm>
+
10 
+
11 #include "packager/base/strings/string_number_conversions.h"
+
12 #include "packager/base/strings/string_util.h"
+
13 #include "packager/media/base/buffer_writer.h"
+
14 #include "packager/media/base/media_stream.h"
+
15 #include "packager/media/base/muxer_options.h"
+
16 #include "packager/media/base/muxer_util.h"
+
17 #include "packager/media/event/muxer_listener.h"
+
18 #include "packager/media/file/file.h"
+
19 #include "packager/media/formats/mp4/box_definitions.h"
+
20 
+
21 namespace shaka {
+
22 namespace media {
+
23 namespace mp4 {
+
24 
+
25 MultiSegmentSegmenter::MultiSegmentSegmenter(const MuxerOptions& options,
+
26  std::unique_ptr<FileType> ftyp,
+
27  std::unique_ptr<Movie> moov)
+
28  : Segmenter(options, std::move(ftyp), std::move(moov)),
+
29  styp_(new SegmentType),
+
30  num_segments_(0) {
+
31  // Use the same brands for styp as ftyp.
+
32  styp_->major_brand = Segmenter::ftyp()->major_brand;
+
33  styp_->compatible_brands = Segmenter::ftyp()->compatible_brands;
+
34 }
35 
-
36 bool MultiSegmentSegmenter::GetInitRange(size_t* offset, size_t* size) {
-
37  DLOG(INFO) << "MultiSegmentSegmenter outputs init segment: "
-
38  << options().output_file_name;
-
39  return false;
-
40 }
-
41 
-
42 bool MultiSegmentSegmenter::GetIndexRange(size_t* offset, size_t* size) {
-
43  DLOG(INFO) << "MultiSegmentSegmenter does not have index range.";
-
44  return false;
-
45 }
-
46 
-
47 Status MultiSegmentSegmenter::DoInitialize() {
-
48  DCHECK(ftyp());
-
49  DCHECK(moov());
-
50  // Generate the output file with init segment.
-
51  File* file = File::Open(options().output_file_name.c_str(), "w");
-
52  if (file == NULL) {
-
53  return Status(error::FILE_FAILURE,
-
54  "Cannot open file for write " + options().output_file_name);
-
55  }
-
56  std::unique_ptr<BufferWriter> buffer(new BufferWriter);
-
57  ftyp()->Write(buffer.get());
-
58  moov()->Write(buffer.get());
-
59  Status status = buffer->WriteToFile(file);
-
60  if (!file->Close()) {
-
61  LOG(WARNING) << "Failed to close the file properly: "
-
62  << options().output_file_name;
-
63  }
-
64  return status;
-
65 }
-
66 
-
67 Status MultiSegmentSegmenter::DoFinalize() {
-
68  SetComplete();
-
69  return Status::OK;
-
70 }
-
71 
-
72 Status MultiSegmentSegmenter::DoFinalizeSegment() {
-
73  DCHECK(sidx());
-
74  // earliest_presentation_time is the earliest presentation time of any
-
75  // access unit in the reference stream in the first subsegment.
-
76  // It will be re-calculated later when subsegments are finalized.
-
77  sidx()->earliest_presentation_time =
-
78  sidx()->references[0].earliest_presentation_time;
-
79 
-
80  if (options().num_subsegments_per_sidx <= 0)
-
81  return WriteSegment();
-
82 
-
83  // sidx() contains pre-generated segment references with one reference per
-
84  // fragment. Calculate |num_fragments_per_subsegment| and combine
-
85  // pre-generated references into final subsegment references.
-
86  uint32_t num_fragments = sidx()->references.size();
-
87  uint32_t num_fragments_per_subsegment =
-
88  (num_fragments - 1) / options().num_subsegments_per_sidx + 1;
-
89  if (num_fragments_per_subsegment <= 1)
-
90  return WriteSegment();
-
91 
-
92  uint32_t frag_index = 0;
-
93  uint32_t subseg_index = 0;
-
94  std::vector<SegmentReference>& refs = sidx()->references;
-
95  uint64_t first_sap_time =
-
96  refs[0].sap_delta_time + refs[0].earliest_presentation_time;
-
97  for (uint32_t i = 1; i < num_fragments; ++i) {
-
98  refs[subseg_index].referenced_size += refs[i].referenced_size;
-
99  refs[subseg_index].subsegment_duration += refs[i].subsegment_duration;
-
100  refs[subseg_index].earliest_presentation_time =
-
101  std::min(refs[subseg_index].earliest_presentation_time,
-
102  refs[i].earliest_presentation_time);
-
103  if (refs[subseg_index].sap_type == SegmentReference::TypeUnknown &&
-
104  refs[i].sap_type != SegmentReference::TypeUnknown) {
-
105  refs[subseg_index].sap_type = refs[i].sap_type;
-
106  first_sap_time =
-
107  refs[i].sap_delta_time + refs[i].earliest_presentation_time;
-
108  }
-
109  if (++frag_index >= num_fragments_per_subsegment) {
-
110  // Calculate sap delta time w.r.t. sidx_->earliest_presentation_time.
-
111  if (refs[subseg_index].sap_type != SegmentReference::TypeUnknown) {
-
112  refs[subseg_index].sap_delta_time =
-
113  first_sap_time - refs[subseg_index].earliest_presentation_time;
-
114  }
-
115  if (++i >= num_fragments)
-
116  break;
-
117  refs[++subseg_index] = refs[i];
-
118  first_sap_time =
-
119  refs[i].sap_delta_time + refs[i].earliest_presentation_time;
-
120  frag_index = 1;
-
121  }
-
122  }
-
123 
-
124  refs.resize(options().num_subsegments_per_sidx);
+
36 MultiSegmentSegmenter::~MultiSegmentSegmenter() {}
+
37 
+
38 bool MultiSegmentSegmenter::GetInitRange(size_t* offset, size_t* size) {
+
39  DLOG(INFO) << "MultiSegmentSegmenter outputs init segment: "
+
40  << options().output_file_name;
+
41  return false;
+
42 }
+
43 
+
44 bool MultiSegmentSegmenter::GetIndexRange(size_t* offset, size_t* size) {
+
45  DLOG(INFO) << "MultiSegmentSegmenter does not have index range.";
+
46  return false;
+
47 }
+
48 
+
49 Status MultiSegmentSegmenter::DoInitialize() {
+
50  DCHECK(ftyp());
+
51  DCHECK(moov());
+
52  // Generate the output file with init segment.
+
53  File* file = File::Open(options().output_file_name.c_str(), "w");
+
54  if (file == NULL) {
+
55  return Status(error::FILE_FAILURE,
+
56  "Cannot open file for write " + options().output_file_name);
+
57  }
+
58  std::unique_ptr<BufferWriter> buffer(new BufferWriter);
+
59  ftyp()->Write(buffer.get());
+
60  moov()->Write(buffer.get());
+
61  Status status = buffer->WriteToFile(file);
+
62  if (!file->Close()) {
+
63  LOG(WARNING) << "Failed to close the file properly: "
+
64  << options().output_file_name;
+
65  }
+
66  return status;
+
67 }
+
68 
+
69 Status MultiSegmentSegmenter::DoFinalize() {
+
70  SetComplete();
+
71  return Status::OK;
+
72 }
+
73 
+
74 Status MultiSegmentSegmenter::DoFinalizeSegment() {
+
75  DCHECK(sidx());
+
76  // earliest_presentation_time is the earliest presentation time of any
+
77  // access unit in the reference stream in the first subsegment.
+
78  // It will be re-calculated later when subsegments are finalized.
+
79  sidx()->earliest_presentation_time =
+
80  sidx()->references[0].earliest_presentation_time;
+
81 
+
82  if (options().num_subsegments_per_sidx <= 0)
+
83  return WriteSegment();
+
84 
+
85  // sidx() contains pre-generated segment references with one reference per
+
86  // fragment. Calculate |num_fragments_per_subsegment| and combine
+
87  // pre-generated references into final subsegment references.
+
88  uint32_t num_fragments = sidx()->references.size();
+
89  uint32_t num_fragments_per_subsegment =
+
90  (num_fragments - 1) / options().num_subsegments_per_sidx + 1;
+
91  if (num_fragments_per_subsegment <= 1)
+
92  return WriteSegment();
+
93 
+
94  uint32_t frag_index = 0;
+
95  uint32_t subseg_index = 0;
+
96  std::vector<SegmentReference>& refs = sidx()->references;
+
97  uint64_t first_sap_time =
+
98  refs[0].sap_delta_time + refs[0].earliest_presentation_time;
+
99  for (uint32_t i = 1; i < num_fragments; ++i) {
+
100  refs[subseg_index].referenced_size += refs[i].referenced_size;
+
101  refs[subseg_index].subsegment_duration += refs[i].subsegment_duration;
+
102  refs[subseg_index].earliest_presentation_time =
+
103  std::min(refs[subseg_index].earliest_presentation_time,
+
104  refs[i].earliest_presentation_time);
+
105  if (refs[subseg_index].sap_type == SegmentReference::TypeUnknown &&
+
106  refs[i].sap_type != SegmentReference::TypeUnknown) {
+
107  refs[subseg_index].sap_type = refs[i].sap_type;
+
108  first_sap_time =
+
109  refs[i].sap_delta_time + refs[i].earliest_presentation_time;
+
110  }
+
111  if (++frag_index >= num_fragments_per_subsegment) {
+
112  // Calculate sap delta time w.r.t. sidx_->earliest_presentation_time.
+
113  if (refs[subseg_index].sap_type != SegmentReference::TypeUnknown) {
+
114  refs[subseg_index].sap_delta_time =
+
115  first_sap_time - refs[subseg_index].earliest_presentation_time;
+
116  }
+
117  if (++i >= num_fragments)
+
118  break;
+
119  refs[++subseg_index] = refs[i];
+
120  first_sap_time =
+
121  refs[i].sap_delta_time + refs[i].earliest_presentation_time;
+
122  frag_index = 1;
+
123  }
+
124  }
125 
-
126  // earliest_presentation_time is the earliest presentation time of any
-
127  // access unit in the reference stream in the first subsegment.
-
128  sidx()->earliest_presentation_time = refs[0].earliest_presentation_time;
-
129 
-
130  return WriteSegment();
-
131 }
-
132 
-
133 Status MultiSegmentSegmenter::WriteSegment() {
-
134  DCHECK(sidx());
-
135  DCHECK(fragment_buffer());
-
136  DCHECK(styp_);
-
137 
-
138  std::unique_ptr<BufferWriter> buffer(new BufferWriter());
-
139  File* file;
-
140  std::string file_name;
-
141  if (options().segment_template.empty()) {
-
142  // Append the segment to output file if segment template is not specified.
-
143  file_name = options().output_file_name.c_str();
-
144  file = File::Open(file_name.c_str(), "a");
-
145  if (file == NULL) {
-
146  return Status(
-
147  error::FILE_FAILURE,
-
148  "Cannot open file for append " + options().output_file_name);
-
149  }
-
150  } else {
-
151  file_name = GetSegmentName(options().segment_template,
-
152  sidx()->earliest_presentation_time,
-
153  num_segments_++, options().bandwidth);
-
154  file = File::Open(file_name.c_str(), "w");
-
155  if (file == NULL) {
-
156  return Status(error::FILE_FAILURE,
-
157  "Cannot open file for write " + file_name);
-
158  }
-
159  styp_->Write(buffer.get());
-
160  }
-
161 
-
162  // If num_subsegments_per_sidx is negative, no SIDX box is generated.
-
163  if (options().num_subsegments_per_sidx >= 0)
-
164  sidx()->Write(buffer.get());
-
165 
-
166  const size_t segment_size = buffer->Size() + fragment_buffer()->Size();
-
167  DCHECK_NE(segment_size, 0u);
-
168 
-
169  Status status = buffer->WriteToFile(file);
-
170  if (status.ok())
-
171  status = fragment_buffer()->WriteToFile(file);
-
172 
-
173  if (!file->Close())
-
174  LOG(WARNING) << "Failed to close the file properly: " << file_name;
-
175 
-
176  if (!status.ok())
-
177  return status;
-
178 
-
179  uint64_t segment_duration = 0;
-
180  // ISO/IEC 23009-1:2012: the value shall be identical to sum of the the
-
181  // values of all Subsegment_duration fields in the first ‘sidx’ box.
-
182  for (size_t i = 0; i < sidx()->references.size(); ++i)
-
183  segment_duration += sidx()->references[i].subsegment_duration;
-
184 
-
185  UpdateProgress(segment_duration);
-
186  if (muxer_listener()) {
-
187  muxer_listener()->OnSampleDurationReady(sample_duration());
-
188  muxer_listener()->OnNewSegment(file_name,
-
189  sidx()->earliest_presentation_time,
-
190  segment_duration, segment_size);
-
191  }
-
192 
-
193  return Status::OK;
-
194 }
-
195 
-
196 } // namespace mp4
-
197 } // namespace media
-
198 } // namespace shaka
+
126  refs.resize(options().num_subsegments_per_sidx);
+
127 
+
128  // earliest_presentation_time is the earliest presentation time of any
+
129  // access unit in the reference stream in the first subsegment.
+
130  sidx()->earliest_presentation_time = refs[0].earliest_presentation_time;
+
131 
+
132  return WriteSegment();
+
133 }
+
134 
+
135 Status MultiSegmentSegmenter::WriteSegment() {
+
136  DCHECK(sidx());
+
137  DCHECK(fragment_buffer());
+
138  DCHECK(styp_);
+
139 
+
140  std::unique_ptr<BufferWriter> buffer(new BufferWriter());
+
141  File* file;
+
142  std::string file_name;
+
143  if (options().segment_template.empty()) {
+
144  // Append the segment to output file if segment template is not specified.
+
145  file_name = options().output_file_name.c_str();
+
146  file = File::Open(file_name.c_str(), "a");
+
147  if (file == NULL) {
+
148  return Status(
+
149  error::FILE_FAILURE,
+
150  "Cannot open file for append " + options().output_file_name);
+
151  }
+
152  } else {
+
153  file_name = GetSegmentName(options().segment_template,
+
154  sidx()->earliest_presentation_time,
+
155  num_segments_++, options().bandwidth);
+
156  file = File::Open(file_name.c_str(), "w");
+
157  if (file == NULL) {
+
158  return Status(error::FILE_FAILURE,
+
159  "Cannot open file for write " + file_name);
+
160  }
+
161  styp_->Write(buffer.get());
+
162  }
+
163 
+
164  // If num_subsegments_per_sidx is negative, no SIDX box is generated.
+
165  if (options().num_subsegments_per_sidx >= 0)
+
166  sidx()->Write(buffer.get());
+
167 
+
168  const size_t segment_size = buffer->Size() + fragment_buffer()->Size();
+
169  DCHECK_NE(segment_size, 0u);
+
170 
+
171  Status status = buffer->WriteToFile(file);
+
172  if (status.ok())
+
173  status = fragment_buffer()->WriteToFile(file);
+
174 
+
175  if (!file->Close())
+
176  LOG(WARNING) << "Failed to close the file properly: " << file_name;
+
177 
+
178  if (!status.ok())
+
179  return status;
+
180 
+
181  uint64_t segment_duration = 0;
+
182  // ISO/IEC 23009-1:2012: the value shall be identical to sum of the the
+
183  // values of all Subsegment_duration fields in the first ‘sidx’ box.
+
184  for (size_t i = 0; i < sidx()->references.size(); ++i)
+
185  segment_duration += sidx()->references[i].subsegment_duration;
+
186 
+
187  UpdateProgress(segment_duration);
+
188  if (muxer_listener()) {
+
189  muxer_listener()->OnSampleDurationReady(sample_duration());
+
190  muxer_listener()->OnNewSegment(file_name,
+
191  sidx()->earliest_presentation_time,
+
192  segment_duration, segment_size);
+
193  }
+
194 
+
195  return Status::OK;
+
196 }
+
197 
+
198 } // namespace mp4
+
199 } // namespace media
+
200 } // namespace shaka
virtual void OnNewSegment(const std::string &segment_name, uint64_t start_time, uint64_t duration, uint64_t segment_file_size)=0
virtual bool Open()=0
Internal open. Should not be used directly.
void UpdateProgress(uint64_t progress)
Update segmentation progress using ProgressListener.
Definition: segmenter.cc:389
@@ -295,8 +297,8 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
Define an abstract file interface.
Definition: file.h:24
uint32_t sample_duration() const
Definition: segmenter.h:101
-
bool GetInitRange(size_t *offset, size_t *size) override
-
bool GetIndexRange(size_t *offset, size_t *size) override
+
bool GetInitRange(size_t *offset, size_t *size) override
+
bool GetIndexRange(size_t *offset, size_t *size) override
void Write(BufferWriter *writer)
Definition: box.cc:25
@@ -304,7 +306,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d08/classshaka_1_1media_1_1mp4_1_1MP4MediaParser-members.html b/docs/d4/d08/classshaka_1_1media_1_1mp4_1_1MP4MediaParser-members.html index ce7bb27ff6..0191774b7d 100644 --- a/docs/d4/d08/classshaka_1_1media_1_1mp4_1_1MP4MediaParser-members.html +++ b/docs/d4/d08/classshaka_1_1media_1_1mp4_1_1MP4MediaParser-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d0b/classshaka_1_1media_1_1TextTrack.html b/docs/d4/d0b/classshaka_1_1media_1_1TextTrack.html index 0eaa93c746..3b66c1a866 100644 --- a/docs/d4/d0b/classshaka_1_1media_1_1TextTrack.html +++ b/docs/d4/d0b/classshaka_1_1media_1_1TextTrack.html @@ -109,7 +109,7 @@ virtual void addWebVTTCue< diff --git a/docs/d4/d14/classshaka_1_1media_1_1WebVttMediaParser-members.html b/docs/d4/d14/classshaka_1_1media_1_1WebVttMediaParser-members.html index 6939c1080f..1296f197d2 100644 --- a/docs/d4/d14/classshaka_1_1media_1_1WebVttMediaParser-members.html +++ b/docs/d4/d14/classshaka_1_1media_1_1WebVttMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d18/structshaka_1_1media_1_1mp4_1_1EditListEntry.html b/docs/d4/d18/structshaka_1_1media_1_1mp4_1_1EditListEntry.html index b5fccc338e..e0b6b38935 100644 --- a/docs/d4/d18/structshaka_1_1media_1_1mp4_1_1EditListEntry.html +++ b/docs/d4/d18/structshaka_1_1media_1_1mp4_1_1EditListEntry.html @@ -118,7 +118,7 @@ int16_t media_rate_fractio diff --git a/docs/d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html b/docs/d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html index bb1adb6726..f0f8f23294 100644 --- a/docs/d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html +++ b/docs/d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html @@ -235,7 +235,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/d4/d20/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html b/docs/d4/d20/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html index 91fa25109f..e0896fc46c 100644 --- a/docs/d4/d20/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html +++ b/docs/d4/d20/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d2c/structshaka_1_1media_1_1mp4_1_1ID3v2-members.html b/docs/d4/d2c/structshaka_1_1media_1_1mp4_1_1ID3v2-members.html index 12295becf6..70f2f2ec15 100644 --- a/docs/d4/d2c/structshaka_1_1media_1_1mp4_1_1ID3v2-members.html +++ b/docs/d4/d2c/structshaka_1_1media_1_1mp4_1_1ID3v2-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d33/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html b/docs/d4/d33/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html index 8a8f47376e..4202a4ad94 100644 --- a/docs/d4/d33/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html +++ b/docs/d4/d33/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d4/d37/io__cache_8cc_source.html b/docs/d4/d37/io__cache_8cc_source.html index bcc8fdec15..34551b39ae 100644 --- a/docs/d4/d37/io__cache_8cc_source.html +++ b/docs/d4/d37/io__cache_8cc_source.html @@ -254,7 +254,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d3a/structshaka_1_1media_1_1H264Sps-members.html b/docs/d4/d3a/structshaka_1_1media_1_1H264Sps-members.html index df77cbd3a6..324a08aaf2 100644 --- a/docs/d4/d3a/structshaka_1_1media_1_1H264Sps-members.html +++ b/docs/d4/d3a/structshaka_1_1media_1_1H264Sps-members.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d4a/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html b/docs/d4/d4a/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html index 3703125315..a2f171c2d4 100644 --- a/docs/d4/d4a/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html +++ b/docs/d4/d4a/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d4c/structshaka_1_1media_1_1H264WeightingFactors.html b/docs/d4/d4c/structshaka_1_1media_1_1H264WeightingFactors.html index bb9b187f5b..25f9fdfc9d 100644 --- a/docs/d4/d4c/structshaka_1_1media_1_1H264WeightingFactors.html +++ b/docs/d4/d4c/structshaka_1_1media_1_1H264WeightingFactors.html @@ -124,7 +124,7 @@ int chroma_offset [32] diff --git a/docs/d4/d58/classshaka_1_1media_1_1Nalu-members.html b/docs/d4/d58/classshaka_1_1media_1_1Nalu-members.html index ac157a5e84..e0542b5bda 100644 --- a/docs/d4/d58/classshaka_1_1media_1_1Nalu-members.html +++ b/docs/d4/d58/classshaka_1_1media_1_1Nalu-members.html @@ -157,7 +157,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html b/docs/d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html index 3cc7d40276..fda17c0f96 100644 --- a/docs/d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html +++ b/docs/d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html @@ -111,7 +111,7 @@ static void  diff --git a/docs/d4/d5c/classshaka_1_1media_1_1DecryptConfig-members.html b/docs/d4/d5c/classshaka_1_1media_1_1DecryptConfig-members.html index 729565a24c..618ab5b06a 100644 --- a/docs/d4/d5c/classshaka_1_1media_1_1DecryptConfig-members.html +++ b/docs/d4/d5c/classshaka_1_1media_1_1DecryptConfig-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d5d/classshaka_1_1media_1_1UdpFile-members.html b/docs/d4/d5d/classshaka_1_1media_1_1UdpFile-members.html index 369748c295..168a51207a 100644 --- a/docs/d4/d5d/classshaka_1_1media_1_1UdpFile-members.html +++ b/docs/d4/d5d/classshaka_1_1media_1_1UdpFile-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d70/classshaka_1_1DashIopMpdNotifier.html b/docs/d4/d70/classshaka_1_1DashIopMpdNotifier.html index 29ece44cba..1953b20abb 100644 --- a/docs/d4/d70/classshaka_1_1DashIopMpdNotifier.html +++ b/docs/d4/d70/classshaka_1_1DashIopMpdNotifier.html @@ -473,7 +473,7 @@ class DashIopMpdNotifierTe diff --git a/docs/d4/d70/structshaka_1_1SegmentInfo-members.html b/docs/d4/d70/structshaka_1_1SegmentInfo-members.html index ddc01ceb2c..8cc83e54fc 100644 --- a/docs/d4/d70/structshaka_1_1SegmentInfo-members.html +++ b/docs/d4/d70/structshaka_1_1SegmentInfo-members.html @@ -99,7 +99,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 aa5a136f03..9027b5d7cc 100644 --- a/docs/d4/d87/nalu__reader_8h_source.html +++ b/docs/d4/d87/nalu__reader_8h_source.html @@ -297,7 +297,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html b/docs/d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html index fa7625fd0a..d460b0e8eb 100644 --- a/docs/d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html +++ b/docs/d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html @@ -171,7 +171,7 @@ void  diff --git a/docs/d4/d8d/structshaka_1_1media_1_1mp4_1_1EC3Specific.html b/docs/d4/d8d/structshaka_1_1media_1_1mp4_1_1EC3Specific.html index 3fa1f7a86c..928aca4a51 100644 --- a/docs/d4/d8d/structshaka_1_1media_1_1mp4_1_1EC3Specific.html +++ b/docs/d4/d8d/structshaka_1_1media_1_1mp4_1_1EC3Specific.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d4/da7/segmenter__test__base_8cc_source.html b/docs/d4/da7/segmenter__test__base_8cc_source.html index 1414e234ba..fe9618cd5a 100644 --- a/docs/d4/da7/segmenter__test__base_8cc_source.html +++ b/docs/d4/da7/segmenter__test__base_8cc_source.html @@ -289,7 +289,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
200 
201 } // namespace media
202 } // namespace shaka
- +
VideoStreamInfo * CreateVideoStreamInfo() const
Creates a video stream info object for testing.
@@ -310,7 +310,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html b/docs/d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html index bb9a463301..97f2bc8448 100644 --- a/docs/d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html +++ b/docs/d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html @@ -250,7 +250,7 @@ Additional Inherited Members diff --git a/docs/d4/db1/structshaka_1_1media_1_1mp4_1_1CompactSampleSize-members.html b/docs/d4/db1/structshaka_1_1media_1_1mp4_1_1CompactSampleSize-members.html index 14bdb4af14..2925d52c73 100644 --- a/docs/d4/db1/structshaka_1_1media_1_1mp4_1_1CompactSampleSize-members.html +++ b/docs/d4/db1/structshaka_1_1media_1_1mp4_1_1CompactSampleSize-members.html @@ -114,7 +114,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 6b9bb147ab..46d81d5723 100644 --- a/docs/d4/db2/cluster__builder_8h_source.html +++ b/docs/d4/db2/cluster__builder_8h_source.html @@ -181,7 +181,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/db4/classshaka_1_1MpdNotifierFactory.html b/docs/d4/db4/classshaka_1_1MpdNotifierFactory.html index 36d3552d1b..bff19a7bf3 100644 --- a/docs/d4/db4/classshaka_1_1MpdNotifierFactory.html +++ b/docs/d4/db4/classshaka_1_1MpdNotifierFactory.html @@ -113,7 +113,7 @@ virtual std::unique_ptr
diff --git a/docs/d4/db9/structshaka_1_1media_1_1mp4_1_1MediaHeader.html b/docs/d4/db9/structshaka_1_1media_1_1mp4_1_1MediaHeader.html index 26416e6943..3d62a53738 100644 --- a/docs/d4/db9/structshaka_1_1media_1_1mp4_1_1MediaHeader.html +++ b/docs/d4/db9/structshaka_1_1media_1_1mp4_1_1MediaHeader.html @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/d4/dc8/classshaka_1_1media_1_1mp2t_1_1AacProgramMapTableWriter.html b/docs/d4/dc8/classshaka_1_1media_1_1mp2t_1_1AacProgramMapTableWriter.html index e501b385f3..673059f7d2 100644 --- a/docs/d4/dc8/classshaka_1_1media_1_1mp2t_1_1AacProgramMapTableWriter.html +++ b/docs/d4/dc8/classshaka_1_1media_1_1mp2t_1_1AacProgramMapTableWriter.html @@ -140,7 +140,7 @@ static const uint8_t kElem diff --git a/docs/d4/dd3/bit__reader_8h_source.html b/docs/d4/dd3/bit__reader_8h_source.html index 180ba05f9c..d2398c8490 100644 --- a/docs/d4/dd3/bit__reader_8h_source.html +++ b/docs/d4/dd3/bit__reader_8h_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dd4/structshaka_1_1media_1_1mp4_1_1FullBox-members.html b/docs/d4/dd4/structshaka_1_1media_1_1mp4_1_1FullBox-members.html index c2bd3b6695..1412d494b6 100644 --- a/docs/d4/dd4/structshaka_1_1media_1_1mp4_1_1FullBox-members.html +++ b/docs/d4/dd4/structshaka_1_1media_1_1mp4_1_1FullBox-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/ddb/classshaka_1_1media_1_1MemoryFile-members.html b/docs/d4/ddb/classshaka_1_1media_1_1MemoryFile-members.html index d7229b8f7d..7ed555d176 100644 --- a/docs/d4/ddb/classshaka_1_1media_1_1MemoryFile-members.html +++ b/docs/d4/ddb/classshaka_1_1media_1_1MemoryFile-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dde/webvtt__util_8h_source.html b/docs/d4/dde/webvtt__util_8h_source.html index 98b36f3642..d5ed3960cd 100644 --- a/docs/d4/dde/webvtt__util_8h_source.html +++ b/docs/d4/dde/webvtt__util_8h_source.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/de3/structshaka_1_1media_1_1mp4_1_1DataReference.html b/docs/d4/de3/structshaka_1_1media_1_1mp4_1_1DataReference.html index 3e8d80f267..8663a7fc17 100644 --- a/docs/d4/de3/structshaka_1_1media_1_1mp4_1_1DataReference.html +++ b/docs/d4/de3/structshaka_1_1media_1_1mp4_1_1DataReference.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d4/de6/classshaka_1_1media_1_1ProgressListener.html b/docs/d4/de6/classshaka_1_1media_1_1ProgressListener.html index 3b297a4402..882b224ae3 100644 --- a/docs/d4/de6/classshaka_1_1media_1_1ProgressListener.html +++ b/docs/d4/de6/classshaka_1_1media_1_1ProgressListener.html @@ -146,7 +146,7 @@ Public Member Functions diff --git a/docs/d4/de7/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html b/docs/d4/de7/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html index 0fedfdf552..01e0b08701 100644 --- a/docs/d4/de7/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html +++ b/docs/d4/de7/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dec/hls__flags_8h_source.html b/docs/d4/dec/hls__flags_8h_source.html index fcaf868b24..464a8d8a15 100644 --- a/docs/d4/dec/hls__flags_8h_source.html +++ b/docs/d4/dec/hls__flags_8h_source.html @@ -105,7 +105,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 c6d3713f54..4841b13973 100644 --- a/docs/d4/df5/request__signer_8cc_source.html +++ b/docs/d4/df5/request__signer_8cc_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/df9/structshaka_1_1media_1_1mp4_1_1SegmentIndex.html b/docs/d4/df9/structshaka_1_1media_1_1mp4_1_1SegmentIndex.html index 7119618d32..297ca5729a 100644 --- a/docs/d4/df9/structshaka_1_1media_1_1mp4_1_1SegmentIndex.html +++ b/docs/d4/df9/structshaka_1_1media_1_1mp4_1_1SegmentIndex.html @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/d4/dfa/structshaka_1_1media_1_1mp4_1_1AC3Specific.html b/docs/d4/dfa/structshaka_1_1media_1_1mp4_1_1AC3Specific.html index 3904e179ef..37bcd13097 100644 --- a/docs/d4/dfa/structshaka_1_1media_1_1mp4_1_1AC3Specific.html +++ b/docs/d4/dfa/structshaka_1_1media_1_1mp4_1_1AC3Specific.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d4/dfd/structshaka_1_1media_1_1H265Sps.html b/docs/d4/dfd/structshaka_1_1media_1_1H265Sps.html index 3e0f189dd1..62810a8d0f 100644 --- a/docs/d4/dfd/structshaka_1_1media_1_1H265Sps.html +++ b/docs/d4/dfd/structshaka_1_1media_1_1H265Sps.html @@ -256,7 +256,7 @@ bool vui_parameters_presen diff --git a/docs/d4/dff/webm__media__parser_8cc_source.html b/docs/d4/dff/webm__media__parser_8cc_source.html index 9c7d258cc9..9be67963f7 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/d03/structshaka_1_1media_1_1mp4_1_1FileType.html b/docs/d5/d03/structshaka_1_1media_1_1mp4_1_1FileType.html index fdf5462d7b..9c381e0e54 100644 --- a/docs/d5/d03/structshaka_1_1media_1_1mp4_1_1FileType.html +++ b/docs/d5/d03/structshaka_1_1media_1_1mp4_1_1FileType.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d5/d05/structshaka_1_1media_1_1mp4_1_1OriginalFormat.html b/docs/d5/d05/structshaka_1_1media_1_1mp4_1_1OriginalFormat.html index 250601b043..b6ed2af0c6 100644 --- a/docs/d5/d05/structshaka_1_1media_1_1mp4_1_1OriginalFormat.html +++ b/docs/d5/d05/structshaka_1_1media_1_1mp4_1_1OriginalFormat.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d5/d09/structshaka_1_1media_1_1mp4_1_1CueIDBox.html b/docs/d5/d09/structshaka_1_1media_1_1mp4_1_1CueIDBox.html index ed34dac4fe..6ef726384e 100644 --- a/docs/d5/d09/structshaka_1_1media_1_1mp4_1_1CueIDBox.html +++ b/docs/d5/d09/structshaka_1_1media_1_1mp4_1_1CueIDBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d5/d11/classshaka_1_1media_1_1WebMInfoParser-members.html b/docs/d5/d11/classshaka_1_1media_1_1WebMInfoParser-members.html index 76b82af2c6..3abb7414f5 100644 --- a/docs/d5/d11/classshaka_1_1media_1_1WebMInfoParser-members.html +++ b/docs/d5/d11/classshaka_1_1media_1_1WebMInfoParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d11/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html b/docs/d5/d11/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html index e040fd8cca..00bffaed1d 100644 --- a/docs/d5/d11/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html +++ b/docs/d5/d11/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d5/d13/classshaka_1_1media_1_1ESDescriptor.html b/docs/d5/d13/classshaka_1_1media_1_1ESDescriptor.html index 97b4a21162..f3472fb4f8 100644 --- a/docs/d5/d13/classshaka_1_1media_1_1ESDescriptor.html +++ b/docs/d5/d13/classshaka_1_1media_1_1ESDescriptor.html @@ -181,7 +181,7 @@ bool IsDTS () const diff --git a/docs/d5/d15/producer__consumer__queue_8h_source.html b/docs/d5/d15/producer__consumer__queue_8h_source.html index a3ebfba896..cc9acdd95c 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/d1a/ts__section_8h_source.html b/docs/d5/d1a/ts__section_8h_source.html index f30b73606c..f37687ea8a 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/d26/classshaka_1_1media_1_1mp4_1_1TrackRunIterator-members.html b/docs/d5/d26/classshaka_1_1media_1_1mp4_1_1TrackRunIterator-members.html index 57b7d213ab..620ead82de 100644 --- a/docs/d5/d26/classshaka_1_1media_1_1mp4_1_1TrackRunIterator-members.html +++ b/docs/d5/d26/classshaka_1_1media_1_1mp4_1_1TrackRunIterator-members.html @@ -122,7 +122,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 7a3697e351..49c8e7910e 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/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html b/docs/d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html index 0f271b8025..56d91e4bb5 100644 --- a/docs/d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html +++ b/docs/d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html @@ -501,7 +501,7 @@ template<class T > diff --git a/docs/d5/d3b/structshaka_1_1media_1_1mp4_1_1Media-members.html b/docs/d5/d3b/structshaka_1_1media_1_1mp4_1_1Media-members.html index 9293f4c02d..5a2809cacf 100644 --- a/docs/d5/d3b/structshaka_1_1media_1_1mp4_1_1Media-members.html +++ b/docs/d5/d3b/structshaka_1_1media_1_1mp4_1_1Media-members.html @@ -111,7 +111,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 e938d53c38..4886907418 100644 --- a/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html +++ b/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html @@ -158,7 +158,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d4b/classshaka_1_1media_1_1mp2t_1_1TsSectionPsi-members.html b/docs/d5/d4b/classshaka_1_1media_1_1mp2t_1_1TsSectionPsi-members.html index d1e30c76b3..1cc1e65fcc 100644 --- a/docs/d5/d4b/classshaka_1_1media_1_1mp2t_1_1TsSectionPsi-members.html +++ b/docs/d5/d4b/classshaka_1_1media_1_1mp2t_1_1TsSectionPsi-members.html @@ -110,7 +110,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 78e98da3d5..5ac6a70c3b 100644 --- a/docs/d5/d4d/box_8cc_source.html +++ b/docs/d5/d4d/box_8cc_source.html @@ -195,7 +195,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 1af1994f1f..480a9ccd28 100644 --- a/docs/d5/d52/ts__section__pes_8h_source.html +++ b/docs/d5/d52/ts__section__pes_8h_source.html @@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d53/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html b/docs/d5/d53/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html index 89d47db724..ddca5ea9ca 100644 --- a/docs/d5/d53/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html +++ b/docs/d5/d53/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d57/classshaka_1_1RepresentationStateChangeListener-members.html b/docs/d5/d57/classshaka_1_1RepresentationStateChangeListener-members.html index ea52abea33..fef7acbb8b 100644 --- a/docs/d5/d57/classshaka_1_1RepresentationStateChangeListener-members.html +++ b/docs/d5/d57/classshaka_1_1RepresentationStateChangeListener-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d59/classshaka_1_1MockRepresentation-members.html b/docs/d5/d59/classshaka_1_1MockRepresentation-members.html index 3eb6b2c72d..53158f3fb5 100644 --- a/docs/d5/d59/classshaka_1_1MockRepresentation-members.html +++ b/docs/d5/d59/classshaka_1_1MockRepresentation-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d5c/continuity__counter_8cc_source.html b/docs/d5/d5c/continuity__counter_8cc_source.html index f3ca99aefa..5f4133801a 100644 --- a/docs/d5/d5c/continuity__counter_8cc_source.html +++ b/docs/d5/d5c/continuity__counter_8cc_source.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d63/classshaka_1_1media_1_1mp2t_1_1EsParserH265.html b/docs/d5/d63/classshaka_1_1media_1_1mp2t_1_1EsParserH265.html index 3c1ae90a31..dc7ff911f5 100644 --- a/docs/d5/d63/classshaka_1_1media_1_1mp2t_1_1EsParserH265.html +++ b/docs/d5/d63/classshaka_1_1media_1_1mp2t_1_1EsParserH265.html @@ -161,7 +161,7 @@ const
diff --git a/docs/d5/d63/network__util_8cc_source.html b/docs/d5/d63/network__util_8cc_source.html index 15e2455dec..a705cbebd9 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/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html b/docs/d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html index 28c872f131..9eb2d8f93c 100644 --- a/docs/d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html +++ b/docs/d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html @@ -229,7 +229,7 @@ class NalUnitToByteStreamC diff --git a/docs/d5/d6f/vlog__flags_8cc_source.html b/docs/d5/d6f/vlog__flags_8cc_source.html index cc30eeb736..7e366426d1 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/d72/avc__decoder__configuration__record_8cc_source.html b/docs/d5/d72/avc__decoder__configuration__record_8cc_source.html index 41a0dc08a3..9b1489b3be 100644 --- a/docs/d5/d72/avc__decoder__configuration__record_8cc_source.html +++ b/docs/d5/d72/avc__decoder__configuration__record_8cc_source.html @@ -202,7 +202,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d7b/box__definitions_8h_source.html b/docs/d5/d7b/box__definitions_8h_source.html index a796d32493..0330afa4b1 100644 --- a/docs/d5/d7b/box__definitions_8h_source.html +++ b/docs/d5/d7b/box__definitions_8h_source.html @@ -1000,7 +1000,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d86/structshaka_1_1media_1_1mp4_1_1MediaInformation.html b/docs/d5/d86/structshaka_1_1media_1_1mp4_1_1MediaInformation.html index bbdbf44d13..317cc8884d 100644 --- a/docs/d5/d86/structshaka_1_1media_1_1mp4_1_1MediaInformation.html +++ b/docs/d5/d86/structshaka_1_1media_1_1mp4_1_1MediaInformation.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d5/d89/widevine__key__source_8cc_source.html b/docs/d5/d89/widevine__key__source_8cc_source.html index 7ba311ed3d..2502089909 100644 --- a/docs/d5/d89/widevine__key__source_8cc_source.html +++ b/docs/d5/d89/widevine__key__source_8cc_source.html @@ -725,7 +725,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d8c/structshaka_1_1media_1_1mp4_1_1CompositionOffset.html b/docs/d5/d8c/structshaka_1_1media_1_1mp4_1_1CompositionOffset.html index 1641905df6..38b30ace71 100644 --- a/docs/d5/d8c/structshaka_1_1media_1_1mp4_1_1CompositionOffset.html +++ b/docs/d5/d8c/structshaka_1_1media_1_1mp4_1_1CompositionOffset.html @@ -112,7 +112,7 @@ int64_t sample_offset< diff --git a/docs/d5/d8f/webm__cluster__parser_8cc_source.html b/docs/d5/d8f/webm__cluster__parser_8cc_source.html index 3dcc3175f9..283820291b 100644 --- a/docs/d5/d8f/webm__cluster__parser_8cc_source.html +++ b/docs/d5/d8f/webm__cluster__parser_8cc_source.html @@ -93,635 +93,636 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
4 
5 #include "packager/media/formats/webm/webm_cluster_parser.h"
6 
-
7 #include <vector>
-
8 
-
9 #include "packager/base/logging.h"
-
10 #include "packager/base/sys_byteorder.h"
-
11 #include "packager/media/base/decrypt_config.h"
-
12 #include "packager/media/base/timestamp.h"
-
13 #include "packager/media/codecs/vp8_parser.h"
-
14 #include "packager/media/codecs/vp9_parser.h"
-
15 #include "packager/media/codecs/webvtt_util.h"
-
16 #include "packager/media/formats/webm/webm_constants.h"
-
17 #include "packager/media/formats/webm/webm_crypto_helpers.h"
-
18 #include "packager/media/formats/webm/webm_webvtt_parser.h"
-
19 
-
20 namespace shaka {
-
21 namespace media {
-
22 namespace {
-
23 
-
24 const int64_t kMicrosecondsPerMillisecond = 1000;
-
25 
-
26 } // namespace
-
27 
- -
29  int64_t timecode_scale,
-
30  scoped_refptr<AudioStreamInfo> audio_stream_info,
-
31  scoped_refptr<VideoStreamInfo> video_stream_info,
-
32  int64_t audio_default_duration,
-
33  int64_t video_default_duration,
-
34  const WebMTracksParser::TextTracks& text_tracks,
-
35  const std::set<int64_t>& ignored_tracks,
-
36  const std::string& audio_encryption_key_id,
-
37  const std::string& video_encryption_key_id,
-
38  const MediaParser::NewSampleCB& new_sample_cb,
-
39  const MediaParser::InitCB& init_cb,
-
40  KeySource* decryption_key_source)
-
41  : timecode_multiplier_(timecode_scale / 1000.0),
-
42  audio_stream_info_(audio_stream_info),
-
43  video_stream_info_(video_stream_info),
-
44  ignored_tracks_(ignored_tracks),
-
45  audio_encryption_key_id_(audio_encryption_key_id),
-
46  video_encryption_key_id_(video_encryption_key_id),
-
47  parser_(kWebMIdCluster, this),
-
48  initialized_(false),
-
49  init_cb_(init_cb),
-
50  cluster_start_time_(kNoTimestamp),
-
51  audio_(audio_stream_info ? audio_stream_info->track_id() : -1,
-
52  false,
-
53  audio_default_duration,
-
54  new_sample_cb),
-
55  video_(video_stream_info ? video_stream_info->track_id() : -1,
-
56  true,
-
57  video_default_duration,
-
58  new_sample_cb) {
-
59  if (decryption_key_source)
-
60  decryptor_source_.reset(new DecryptorSource(decryption_key_source));
-
61  for (WebMTracksParser::TextTracks::const_iterator it = text_tracks.begin();
-
62  it != text_tracks.end();
-
63  ++it) {
-
64  text_track_map_.insert(std::make_pair(
-
65  it->first, Track(it->first, false, kNoTimestamp, new_sample_cb)));
-
66  }
-
67 }
-
68 
-
69 WebMClusterParser::~WebMClusterParser() {}
-
70 
- -
72  last_block_timecode_ = -1;
-
73  cluster_timecode_ = -1;
-
74  cluster_start_time_ = kNoTimestamp;
-
75  cluster_ended_ = false;
-
76  parser_.Reset();
-
77  audio_.Reset();
-
78  video_.Reset();
-
79  ResetTextTracks();
-
80 }
-
81 
- -
83  // Estimate the duration of the last frame if necessary.
-
84  bool audio_result = audio_.ApplyDurationEstimateIfNeeded();
-
85  bool video_result = video_.ApplyDurationEstimateIfNeeded();
-
86  Reset();
-
87  return audio_result && video_result;
-
88 }
-
89 
-
90 int WebMClusterParser::Parse(const uint8_t* buf, int size) {
-
91  int result = parser_.Parse(buf, size);
-
92 
-
93  if (result < 0) {
-
94  cluster_ended_ = false;
-
95  return result;
-
96  }
-
97 
-
98  cluster_ended_ = parser_.IsParsingComplete();
-
99  if (cluster_ended_) {
-
100  // If there were no buffers in this cluster, set the cluster start time to
-
101  // be the |cluster_timecode_|.
-
102  if (cluster_start_time_ == kNoTimestamp) {
-
103  // If the cluster did not even have a |cluster_timecode_|, signal parse
-
104  // error.
-
105  if (cluster_timecode_ < 0)
-
106  return -1;
-
107 
-
108  cluster_start_time_ = cluster_timecode_ * timecode_multiplier_;
-
109  }
-
110 
-
111  // Reset the parser if we're done parsing so that
-
112  // it is ready to accept another cluster on the next
-
113  // call.
-
114  parser_.Reset();
-
115 
-
116  last_block_timecode_ = -1;
-
117  cluster_timecode_ = -1;
-
118  }
-
119 
-
120  return result;
-
121 }
-
122 
-
123 WebMParserClient* WebMClusterParser::OnListStart(int id) {
-
124  if (id == kWebMIdCluster) {
-
125  cluster_timecode_ = -1;
-
126  cluster_start_time_ = kNoTimestamp;
-
127  } else if (id == kWebMIdBlockGroup) {
-
128  block_data_.reset();
-
129  block_data_size_ = -1;
-
130  block_duration_ = -1;
-
131  discard_padding_ = -1;
-
132  discard_padding_set_ = false;
-
133  reference_block_set_ = false;
-
134  } else if (id == kWebMIdBlockAdditions) {
-
135  block_add_id_ = -1;
-
136  block_additional_data_.reset();
-
137  block_additional_data_size_ = 0;
-
138  }
-
139 
-
140  return this;
-
141 }
-
142 
-
143 bool WebMClusterParser::OnListEnd(int id) {
-
144  if (id != kWebMIdBlockGroup)
-
145  return true;
-
146 
-
147  // Make sure the BlockGroup actually had a Block.
-
148  if (block_data_size_ == -1) {
-
149  LOG(ERROR) << "Block missing from BlockGroup.";
-
150  return false;
-
151  }
-
152 
-
153  bool result = ParseBlock(
-
154  false, block_data_.get(), block_data_size_, block_additional_data_.get(),
-
155  block_additional_data_size_, block_duration_,
-
156  discard_padding_set_ ? discard_padding_ : 0, reference_block_set_);
-
157  block_data_.reset();
-
158  block_data_size_ = -1;
-
159  block_duration_ = -1;
-
160  block_add_id_ = -1;
-
161  block_additional_data_.reset();
-
162  block_additional_data_size_ = 0;
-
163  discard_padding_ = -1;
-
164  discard_padding_set_ = false;
-
165  reference_block_set_ = false;
-
166  return result;
-
167 }
-
168 
-
169 bool WebMClusterParser::OnUInt(int id, int64_t val) {
-
170  int64_t* dst;
-
171  switch (id) {
-
172  case kWebMIdTimecode:
-
173  dst = &cluster_timecode_;
-
174  break;
-
175  case kWebMIdBlockDuration:
-
176  dst = &block_duration_;
-
177  break;
-
178  case kWebMIdBlockAddID:
-
179  dst = &block_add_id_;
-
180  break;
-
181  default:
-
182  return true;
-
183  }
-
184  if (*dst != -1)
-
185  return false;
-
186  *dst = val;
-
187  return true;
-
188 }
-
189 
-
190 bool WebMClusterParser::ParseBlock(bool is_simple_block,
-
191  const uint8_t* buf,
-
192  int size,
-
193  const uint8_t* additional,
-
194  int additional_size,
-
195  int duration,
-
196  int64_t discard_padding,
-
197  bool reference_block_set) {
-
198  if (size < 4)
-
199  return false;
-
200 
-
201  // Return an error if the trackNum > 127. We just aren't
-
202  // going to support large track numbers right now.
-
203  if (!(buf[0] & 0x80)) {
-
204  LOG(ERROR) << "TrackNumber over 127 not supported";
-
205  return false;
-
206  }
-
207 
-
208  int track_num = buf[0] & 0x7f;
-
209  int timecode = buf[1] << 8 | buf[2];
-
210  int flags = buf[3] & 0xff;
-
211  int lacing = (flags >> 1) & 0x3;
-
212 
-
213  if (lacing) {
-
214  LOG(ERROR) << "Lacing " << lacing << " is not supported yet.";
-
215  return false;
-
216  }
-
217 
-
218  // Sign extend negative timecode offsets.
-
219  if (timecode & 0x8000)
-
220  timecode |= ~0xffff;
-
221 
-
222  // The first bit of the flags is set when a SimpleBlock contains only
-
223  // keyframes. If this is a Block, then keyframe is inferred by the absence of
-
224  // the ReferenceBlock Element.
-
225  // http://www.matroska.org/technical/specs/index.html
-
226  bool is_key_frame =
-
227  is_simple_block ? (flags & 0x80) != 0 : !reference_block_set;
-
228 
-
229  const uint8_t* frame_data = buf + 4;
-
230  int frame_size = size - (frame_data - buf);
-
231  return OnBlock(is_simple_block, track_num, timecode, duration, frame_data,
-
232  frame_size, additional, additional_size, discard_padding,
-
233  is_key_frame);
-
234 }
-
235 
-
236 bool WebMClusterParser::OnBinary(int id, const uint8_t* data, int size) {
-
237  switch (id) {
-
238  case kWebMIdSimpleBlock:
-
239  return ParseBlock(true, data, size, NULL, 0, -1, 0, false);
-
240 
-
241  case kWebMIdBlock:
-
242  if (block_data_) {
-
243  LOG(ERROR) << "More than 1 Block in a BlockGroup is not "
-
244  "supported.";
-
245  return false;
-
246  }
-
247  block_data_.reset(new uint8_t[size]);
-
248  memcpy(block_data_.get(), data, size);
-
249  block_data_size_ = size;
-
250  return true;
-
251 
-
252  case kWebMIdBlockAdditional: {
-
253  uint64_t block_add_id = base::HostToNet64(block_add_id_);
-
254  if (block_additional_data_) {
-
255  // TODO: Technically, more than 1 BlockAdditional is allowed as per
-
256  // matroska spec. But for now we don't have a use case to support
-
257  // parsing of such files. Take a look at this again when such a case
-
258  // arises.
-
259  LOG(ERROR) << "More than 1 BlockAdditional in a "
-
260  "BlockGroup is not supported.";
-
261  return false;
-
262  }
-
263  // First 8 bytes of side_data in DecoderBuffer is the BlockAddID
-
264  // element's value in Big Endian format. This is done to mimic ffmpeg
-
265  // demuxer's behavior.
-
266  block_additional_data_size_ = size + sizeof(block_add_id);
-
267  block_additional_data_.reset(new uint8_t[block_additional_data_size_]);
-
268  memcpy(block_additional_data_.get(), &block_add_id,
-
269  sizeof(block_add_id));
-
270  memcpy(block_additional_data_.get() + 8, data, size);
-
271  return true;
-
272  }
-
273  case kWebMIdDiscardPadding: {
-
274  if (discard_padding_set_ || size <= 0 || size > 8)
-
275  return false;
-
276  discard_padding_set_ = true;
-
277 
-
278  // Read in the big-endian integer.
-
279  discard_padding_ = static_cast<int8_t>(data[0]);
-
280  for (int i = 1; i < size; ++i)
-
281  discard_padding_ = (discard_padding_ << 8) | data[i];
-
282 
-
283  return true;
-
284  }
-
285  case kWebMIdReferenceBlock:
-
286  // We use ReferenceBlock to determine whether the current Block contains a
-
287  // keyframe or not. Other than that, we don't care about the value of the
-
288  // ReferenceBlock element itself.
-
289  reference_block_set_ = true;
-
290  return true;
-
291  default:
-
292  return true;
-
293  }
-
294 }
-
295 
-
296 bool WebMClusterParser::OnBlock(bool is_simple_block,
-
297  int track_num,
-
298  int timecode,
-
299  int block_duration,
-
300  const uint8_t* data,
-
301  int size,
-
302  const uint8_t* additional,
-
303  int additional_size,
-
304  int64_t discard_padding,
-
305  bool is_key_frame) {
-
306  DCHECK_GE(size, 0);
-
307  if (cluster_timecode_ == -1) {
-
308  LOG(ERROR) << "Got a block before cluster timecode.";
-
309  return false;
-
310  }
-
311 
-
312  // TODO: Should relative negative timecode offsets be rejected? Or only when
-
313  // the absolute timecode is negative? See http://crbug.com/271794
-
314  if (timecode < 0) {
-
315  LOG(ERROR) << "Got a block with negative timecode offset " << timecode;
-
316  return false;
-
317  }
-
318 
-
319  if (last_block_timecode_ != -1 && timecode < last_block_timecode_) {
-
320  LOG(ERROR) << "Got a block with a timecode before the previous block.";
-
321  return false;
-
322  }
-
323 
-
324  Track* track = NULL;
-
325  StreamType stream_type = kStreamUnknown;
-
326  std::string encryption_key_id;
-
327  if (track_num == audio_.track_num()) {
-
328  track = &audio_;
-
329  encryption_key_id = audio_encryption_key_id_;
-
330  stream_type = kStreamAudio;
-
331  } else if (track_num == video_.track_num()) {
-
332  track = &video_;
-
333  encryption_key_id = video_encryption_key_id_;
-
334  stream_type = kStreamVideo;
-
335  } else if (ignored_tracks_.find(track_num) != ignored_tracks_.end()) {
-
336  return true;
-
337  } else if (Track* const text_track = FindTextTrack(track_num)) {
-
338  if (is_simple_block) // BlockGroup is required for WebVTT cues
-
339  return false;
-
340  if (block_duration < 0) // not specified
-
341  return false;
-
342  track = text_track;
-
343  stream_type = kStreamText;
-
344  } else {
-
345  LOG(ERROR) << "Unexpected track number " << track_num;
-
346  return false;
-
347  }
-
348  DCHECK_NE(stream_type, kStreamUnknown);
-
349 
-
350  last_block_timecode_ = timecode;
-
351 
-
352  int64_t timestamp = (cluster_timecode_ + timecode) * timecode_multiplier_;
-
353 
-
354  scoped_refptr<MediaSample> buffer;
-
355  if (stream_type != kStreamText) {
-
356  // Every encrypted Block has a signal byte and IV prepended to it. Current
-
357  // encrypted WebM request for comments specification is here
-
358  // http://wiki.webmproject.org/encryption/webm-encryption-rfc
-
359  std::unique_ptr<DecryptConfig> decrypt_config;
-
360  int data_offset = 0;
-
361  if (!encryption_key_id.empty() &&
-
362  !WebMCreateDecryptConfig(
-
363  data, size,
-
364  reinterpret_cast<const uint8_t*>(encryption_key_id.data()),
-
365  encryption_key_id.size(),
-
366  &decrypt_config, &data_offset)) {
-
367  return false;
-
368  }
-
369 
-
370  buffer = MediaSample::CopyFrom(data + data_offset, size - data_offset,
-
371  additional, additional_size, is_key_frame);
-
372 
-
373  if (decrypt_config) {
-
374  if (!decryptor_source_) {
-
375  LOG(ERROR) << "Encrypted media sample encountered, but decryption is "
-
376  "not enabled";
-
377  return false;
-
378  }
-
379  if (!decryptor_source_->DecryptSampleBuffer(decrypt_config.get(),
-
380  buffer->writable_data(),
-
381  buffer->data_size())) {
-
382  LOG(ERROR) << "Cannot decrypt samples";
-
383  return false;
-
384  }
-
385  }
-
386  } else {
-
387  std::string id, settings, content;
-
388  WebMWebVTTParser::Parse(data, size, &id, &settings, &content);
-
389 
-
390  std::vector<uint8_t> side_data;
-
391  MakeSideData(id.begin(), id.end(),
-
392  settings.begin(), settings.end(),
-
393  &side_data);
-
394 
-
395  buffer = MediaSample::CopyFrom(
-
396  reinterpret_cast<const uint8_t*>(content.data()), content.length(),
-
397  &side_data[0], side_data.size(), true);
-
398  }
-
399 
-
400  buffer->set_dts(timestamp);
-
401  buffer->set_pts(timestamp);
-
402  if (cluster_start_time_ == kNoTimestamp)
-
403  cluster_start_time_ = timestamp;
-
404  buffer->set_duration(block_duration > 0
-
405  ? (block_duration * timecode_multiplier_)
-
406  : kNoTimestamp);
-
407 
-
408  if (!init_cb_.is_null() && !initialized_) {
-
409  std::vector<scoped_refptr<StreamInfo>> streams;
-
410  if (audio_stream_info_)
-
411  streams.push_back(audio_stream_info_);
-
412  if (video_stream_info_) {
-
413  if (stream_type == kStreamVideo) {
-
414  std::unique_ptr<VPxParser> vpx_parser;
-
415  switch (video_stream_info_->codec()) {
-
416  case kCodecVP8:
-
417  vpx_parser.reset(new VP8Parser);
-
418  break;
-
419  case kCodecVP9:
-
420  vpx_parser.reset(new VP9Parser);
-
421  break;
-
422  default:
-
423  NOTIMPLEMENTED() << "Unsupported codec "
-
424  << video_stream_info_->codec();
-
425  return false;
-
426  }
-
427  std::vector<VPxFrameInfo> vpx_frames;
-
428  if (!vpx_parser->Parse(buffer->data(), buffer->data_size(),
-
429  &vpx_frames)) {
-
430  LOG(ERROR) << "Failed to parse vpx frame.";
-
431  return false;
-
432  }
-
433  if (vpx_frames.size() != 1u || !vpx_frames[0].is_keyframe) {
-
434  LOG(ERROR) << "The first frame should be a key frame.";
-
435  return false;
-
436  }
-
437 
-
438  VPCodecConfigurationRecord codec_config;
-
439  if (!video_stream_info_->codec_config().empty())
-
440  codec_config.ParseWebM(video_stream_info_->codec_config());
-
441  codec_config.MergeFrom(vpx_parser->codec_config());
-
442 
-
443  video_stream_info_->set_codec_string(
-
444  codec_config.GetCodecString(video_stream_info_->codec()));
-
445  std::vector<uint8_t> config_serialized;
-
446  codec_config.WriteMP4(&config_serialized);
-
447  video_stream_info_->set_codec_config(config_serialized);
-
448  streams.push_back(video_stream_info_);
-
449  init_cb_.Run(streams);
-
450  initialized_ = true;
-
451  }
-
452  } else {
-
453  init_cb_.Run(streams);
-
454  initialized_ = true;
-
455  }
-
456  }
-
457 
-
458  return track->EmitBuffer(buffer);
-
459 }
-
460 
-
461 WebMClusterParser::Track::Track(int track_num,
-
462  bool is_video,
-
463  int64_t default_duration,
-
464  const MediaParser::NewSampleCB& new_sample_cb)
-
465  : track_num_(track_num),
-
466  is_video_(is_video),
-
467  default_duration_(default_duration),
-
468  estimated_next_frame_duration_(kNoTimestamp),
-
469  new_sample_cb_(new_sample_cb) {
-
470  DCHECK(default_duration_ == kNoTimestamp || default_duration_ > 0);
-
471 }
-
472 
-
473 WebMClusterParser::Track::~Track() {}
-
474 
-
475 bool WebMClusterParser::Track::EmitBuffer(
-
476  const scoped_refptr<MediaSample>& buffer) {
-
477  DVLOG(2) << "EmitBuffer() : " << track_num_
-
478  << " ts " << buffer->pts()
-
479  << " dur " << buffer->duration()
-
480  << " kf " << buffer->is_key_frame()
-
481  << " size " << buffer->data_size();
-
482 
-
483  if (last_added_buffer_missing_duration_.get()) {
-
484  int64_t derived_duration =
-
485  buffer->pts() - last_added_buffer_missing_duration_->pts();
-
486  last_added_buffer_missing_duration_->set_duration(derived_duration);
-
487 
-
488  DVLOG(2) << "EmitBuffer() : applied derived duration to held-back buffer : "
-
489  << " ts "
-
490  << last_added_buffer_missing_duration_->pts()
-
491  << " dur "
-
492  << last_added_buffer_missing_duration_->duration()
-
493  << " kf " << last_added_buffer_missing_duration_->is_key_frame()
-
494  << " size " << last_added_buffer_missing_duration_->data_size();
-
495  scoped_refptr<MediaSample> updated_buffer =
-
496  last_added_buffer_missing_duration_;
-
497  last_added_buffer_missing_duration_ = NULL;
-
498  if (!EmitBufferHelp(updated_buffer))
-
499  return false;
-
500  }
-
501 
-
502  if (buffer->duration() == kNoTimestamp) {
-
503  last_added_buffer_missing_duration_ = buffer;
-
504  DVLOG(2) << "EmitBuffer() : holding back buffer that is missing duration";
-
505  return true;
-
506  }
-
507 
-
508  return EmitBufferHelp(buffer);
-
509 }
-
510 
-
511 bool WebMClusterParser::Track::ApplyDurationEstimateIfNeeded() {
-
512  if (!last_added_buffer_missing_duration_.get())
-
513  return true;
-
514 
-
515  int64_t estimated_duration = GetDurationEstimate();
-
516  last_added_buffer_missing_duration_->set_duration(estimated_duration);
-
517 
-
518  VLOG(1) << "Track " << track_num_ << ": Estimating WebM block duration to be "
-
519  << estimated_duration / 1000
-
520  << "ms for the last (Simple)Block in the Cluster for this Track. Use "
-
521  "BlockGroups with BlockDurations at the end of each Track in a "
-
522  "Cluster to avoid estimation.";
-
523 
-
524  DVLOG(2) << " new dur : ts " << last_added_buffer_missing_duration_->pts()
-
525  << " dur " << last_added_buffer_missing_duration_->duration()
-
526  << " kf " << last_added_buffer_missing_duration_->is_key_frame()
-
527  << " size " << last_added_buffer_missing_duration_->data_size();
-
528 
-
529  // Don't use the applied duration as a future estimation (don't use
-
530  // EmitBufferHelp() here.)
-
531  if (!new_sample_cb_.Run(track_num_, last_added_buffer_missing_duration_))
-
532  return false;
-
533  last_added_buffer_missing_duration_ = NULL;
-
534  return true;
-
535 }
-
536 
-
537 void WebMClusterParser::Track::Reset() {
-
538  last_added_buffer_missing_duration_ = NULL;
-
539 }
-
540 
-
541 bool WebMClusterParser::Track::EmitBufferHelp(
-
542  const scoped_refptr<MediaSample>& buffer) {
-
543  DCHECK(!last_added_buffer_missing_duration_.get());
-
544 
-
545  int64_t duration = buffer->duration();
-
546  if (duration < 0 || duration == kNoTimestamp) {
-
547  LOG(ERROR) << "Invalid buffer duration: " << duration;
-
548  return false;
-
549  }
-
550 
-
551  // The estimated frame duration is the maximum non-zero duration since the
-
552  // last initialization segment.
-
553  if (duration > 0) {
-
554  int64_t orig_duration_estimate = estimated_next_frame_duration_;
-
555  if (estimated_next_frame_duration_ == kNoTimestamp) {
-
556  estimated_next_frame_duration_ = duration;
-
557  } else {
-
558  estimated_next_frame_duration_ =
-
559  std::max(duration, estimated_next_frame_duration_);
-
560  }
-
561 
-
562  if (orig_duration_estimate != estimated_next_frame_duration_) {
-
563  DVLOG(3) << "Updated duration estimate:"
-
564  << orig_duration_estimate
-
565  << " -> "
-
566  << estimated_next_frame_duration_
-
567  << " at timestamp: "
-
568  << buffer->dts();
-
569  }
-
570  }
-
571 
-
572  return new_sample_cb_.Run(track_num_, buffer);
-
573 }
-
574 
-
575 int64_t WebMClusterParser::Track::GetDurationEstimate() {
-
576  int64_t duration = kNoTimestamp;
-
577  if (default_duration_ != kNoTimestamp) {
-
578  duration = default_duration_;
-
579  DVLOG(3) << __FUNCTION__ << " : using track default duration " << duration;
-
580  } else if (estimated_next_frame_duration_ != kNoTimestamp) {
-
581  duration = estimated_next_frame_duration_;
-
582  DVLOG(3) << __FUNCTION__ << " : using estimated duration " << duration;
-
583  } else {
-
584  if (is_video_) {
-
585  duration = kDefaultVideoBufferDurationInMs * kMicrosecondsPerMillisecond;
-
586  } else {
-
587  duration = kDefaultAudioBufferDurationInMs * kMicrosecondsPerMillisecond;
-
588  }
-
589  DVLOG(3) << __FUNCTION__ << " : using hardcoded default duration "
-
590  << duration;
-
591  }
-
592 
-
593  DCHECK_GT(duration, 0);
-
594  DCHECK_NE(duration, kNoTimestamp);
-
595  return duration;
-
596 }
-
597 
-
598 void WebMClusterParser::ResetTextTracks() {
-
599  for (TextTrackMap::iterator it = text_track_map_.begin();
-
600  it != text_track_map_.end();
-
601  ++it) {
-
602  it->second.Reset();
-
603  }
-
604 }
-
605 
-
606 WebMClusterParser::Track*
-
607 WebMClusterParser::FindTextTrack(int track_num) {
-
608  const TextTrackMap::iterator it = text_track_map_.find(track_num);
-
609 
-
610  if (it == text_track_map_.end())
-
611  return NULL;
-
612 
-
613  return &it->second;
-
614 }
-
615 
-
616 } // namespace media
-
617 } // namespace shaka
+
7 #include <algorithm>
+
8 #include <vector>
+
9 
+
10 #include "packager/base/logging.h"
+
11 #include "packager/base/sys_byteorder.h"
+
12 #include "packager/media/base/decrypt_config.h"
+
13 #include "packager/media/base/timestamp.h"
+
14 #include "packager/media/codecs/vp8_parser.h"
+
15 #include "packager/media/codecs/vp9_parser.h"
+
16 #include "packager/media/codecs/webvtt_util.h"
+
17 #include "packager/media/formats/webm/webm_constants.h"
+
18 #include "packager/media/formats/webm/webm_crypto_helpers.h"
+
19 #include "packager/media/formats/webm/webm_webvtt_parser.h"
+
20 
+
21 namespace shaka {
+
22 namespace media {
+
23 namespace {
+
24 
+
25 const int64_t kMicrosecondsPerMillisecond = 1000;
+
26 
+
27 } // namespace
+
28 
+ +
30  int64_t timecode_scale,
+
31  scoped_refptr<AudioStreamInfo> audio_stream_info,
+
32  scoped_refptr<VideoStreamInfo> video_stream_info,
+
33  int64_t audio_default_duration,
+
34  int64_t video_default_duration,
+
35  const WebMTracksParser::TextTracks& text_tracks,
+
36  const std::set<int64_t>& ignored_tracks,
+
37  const std::string& audio_encryption_key_id,
+
38  const std::string& video_encryption_key_id,
+
39  const MediaParser::NewSampleCB& new_sample_cb,
+
40  const MediaParser::InitCB& init_cb,
+
41  KeySource* decryption_key_source)
+
42  : timecode_multiplier_(timecode_scale / 1000.0),
+
43  audio_stream_info_(audio_stream_info),
+
44  video_stream_info_(video_stream_info),
+
45  ignored_tracks_(ignored_tracks),
+
46  audio_encryption_key_id_(audio_encryption_key_id),
+
47  video_encryption_key_id_(video_encryption_key_id),
+
48  parser_(kWebMIdCluster, this),
+
49  initialized_(false),
+
50  init_cb_(init_cb),
+
51  cluster_start_time_(kNoTimestamp),
+
52  audio_(audio_stream_info ? audio_stream_info->track_id() : -1,
+
53  false,
+
54  audio_default_duration,
+
55  new_sample_cb),
+
56  video_(video_stream_info ? video_stream_info->track_id() : -1,
+
57  true,
+
58  video_default_duration,
+
59  new_sample_cb) {
+
60  if (decryption_key_source)
+
61  decryptor_source_.reset(new DecryptorSource(decryption_key_source));
+
62  for (WebMTracksParser::TextTracks::const_iterator it = text_tracks.begin();
+
63  it != text_tracks.end();
+
64  ++it) {
+
65  text_track_map_.insert(std::make_pair(
+
66  it->first, Track(it->first, false, kNoTimestamp, new_sample_cb)));
+
67  }
+
68 }
+
69 
+
70 WebMClusterParser::~WebMClusterParser() {}
+
71 
+ +
73  last_block_timecode_ = -1;
+
74  cluster_timecode_ = -1;
+
75  cluster_start_time_ = kNoTimestamp;
+
76  cluster_ended_ = false;
+
77  parser_.Reset();
+
78  audio_.Reset();
+
79  video_.Reset();
+
80  ResetTextTracks();
+
81 }
+
82 
+ +
84  // Estimate the duration of the last frame if necessary.
+
85  bool audio_result = audio_.ApplyDurationEstimateIfNeeded();
+
86  bool video_result = video_.ApplyDurationEstimateIfNeeded();
+
87  Reset();
+
88  return audio_result && video_result;
+
89 }
+
90 
+
91 int WebMClusterParser::Parse(const uint8_t* buf, int size) {
+
92  int result = parser_.Parse(buf, size);
+
93 
+
94  if (result < 0) {
+
95  cluster_ended_ = false;
+
96  return result;
+
97  }
+
98 
+
99  cluster_ended_ = parser_.IsParsingComplete();
+
100  if (cluster_ended_) {
+
101  // If there were no buffers in this cluster, set the cluster start time to
+
102  // be the |cluster_timecode_|.
+
103  if (cluster_start_time_ == kNoTimestamp) {
+
104  // If the cluster did not even have a |cluster_timecode_|, signal parse
+
105  // error.
+
106  if (cluster_timecode_ < 0)
+
107  return -1;
+
108 
+
109  cluster_start_time_ = cluster_timecode_ * timecode_multiplier_;
+
110  }
+
111 
+
112  // Reset the parser if we're done parsing so that
+
113  // it is ready to accept another cluster on the next
+
114  // call.
+
115  parser_.Reset();
+
116 
+
117  last_block_timecode_ = -1;
+
118  cluster_timecode_ = -1;
+
119  }
+
120 
+
121  return result;
+
122 }
+
123 
+
124 WebMParserClient* WebMClusterParser::OnListStart(int id) {
+
125  if (id == kWebMIdCluster) {
+
126  cluster_timecode_ = -1;
+
127  cluster_start_time_ = kNoTimestamp;
+
128  } else if (id == kWebMIdBlockGroup) {
+
129  block_data_.reset();
+
130  block_data_size_ = -1;
+
131  block_duration_ = -1;
+
132  discard_padding_ = -1;
+
133  discard_padding_set_ = false;
+
134  reference_block_set_ = false;
+
135  } else if (id == kWebMIdBlockAdditions) {
+
136  block_add_id_ = -1;
+
137  block_additional_data_.reset();
+
138  block_additional_data_size_ = 0;
+
139  }
+
140 
+
141  return this;
+
142 }
+
143 
+
144 bool WebMClusterParser::OnListEnd(int id) {
+
145  if (id != kWebMIdBlockGroup)
+
146  return true;
+
147 
+
148  // Make sure the BlockGroup actually had a Block.
+
149  if (block_data_size_ == -1) {
+
150  LOG(ERROR) << "Block missing from BlockGroup.";
+
151  return false;
+
152  }
+
153 
+
154  bool result = ParseBlock(
+
155  false, block_data_.get(), block_data_size_, block_additional_data_.get(),
+
156  block_additional_data_size_, block_duration_,
+
157  discard_padding_set_ ? discard_padding_ : 0, reference_block_set_);
+
158  block_data_.reset();
+
159  block_data_size_ = -1;
+
160  block_duration_ = -1;
+
161  block_add_id_ = -1;
+
162  block_additional_data_.reset();
+
163  block_additional_data_size_ = 0;
+
164  discard_padding_ = -1;
+
165  discard_padding_set_ = false;
+
166  reference_block_set_ = false;
+
167  return result;
+
168 }
+
169 
+
170 bool WebMClusterParser::OnUInt(int id, int64_t val) {
+
171  int64_t* dst;
+
172  switch (id) {
+
173  case kWebMIdTimecode:
+
174  dst = &cluster_timecode_;
+
175  break;
+
176  case kWebMIdBlockDuration:
+
177  dst = &block_duration_;
+
178  break;
+
179  case kWebMIdBlockAddID:
+
180  dst = &block_add_id_;
+
181  break;
+
182  default:
+
183  return true;
+
184  }
+
185  if (*dst != -1)
+
186  return false;
+
187  *dst = val;
+
188  return true;
+
189 }
+
190 
+
191 bool WebMClusterParser::ParseBlock(bool is_simple_block,
+
192  const uint8_t* buf,
+
193  int size,
+
194  const uint8_t* additional,
+
195  int additional_size,
+
196  int duration,
+
197  int64_t discard_padding,
+
198  bool reference_block_set) {
+
199  if (size < 4)
+
200  return false;
+
201 
+
202  // Return an error if the trackNum > 127. We just aren't
+
203  // going to support large track numbers right now.
+
204  if (!(buf[0] & 0x80)) {
+
205  LOG(ERROR) << "TrackNumber over 127 not supported";
+
206  return false;
+
207  }
+
208 
+
209  int track_num = buf[0] & 0x7f;
+
210  int timecode = buf[1] << 8 | buf[2];
+
211  int flags = buf[3] & 0xff;
+
212  int lacing = (flags >> 1) & 0x3;
+
213 
+
214  if (lacing) {
+
215  LOG(ERROR) << "Lacing " << lacing << " is not supported yet.";
+
216  return false;
+
217  }
+
218 
+
219  // Sign extend negative timecode offsets.
+
220  if (timecode & 0x8000)
+
221  timecode |= ~0xffff;
+
222 
+
223  // The first bit of the flags is set when a SimpleBlock contains only
+
224  // keyframes. If this is a Block, then keyframe is inferred by the absence of
+
225  // the ReferenceBlock Element.
+
226  // http://www.matroska.org/technical/specs/index.html
+
227  bool is_key_frame =
+
228  is_simple_block ? (flags & 0x80) != 0 : !reference_block_set;
+
229 
+
230  const uint8_t* frame_data = buf + 4;
+
231  int frame_size = size - (frame_data - buf);
+
232  return OnBlock(is_simple_block, track_num, timecode, duration, frame_data,
+
233  frame_size, additional, additional_size, discard_padding,
+
234  is_key_frame);
+
235 }
+
236 
+
237 bool WebMClusterParser::OnBinary(int id, const uint8_t* data, int size) {
+
238  switch (id) {
+
239  case kWebMIdSimpleBlock:
+
240  return ParseBlock(true, data, size, NULL, 0, -1, 0, false);
+
241 
+
242  case kWebMIdBlock:
+
243  if (block_data_) {
+
244  LOG(ERROR) << "More than 1 Block in a BlockGroup is not "
+
245  "supported.";
+
246  return false;
+
247  }
+
248  block_data_.reset(new uint8_t[size]);
+
249  memcpy(block_data_.get(), data, size);
+
250  block_data_size_ = size;
+
251  return true;
+
252 
+
253  case kWebMIdBlockAdditional: {
+
254  uint64_t block_add_id = base::HostToNet64(block_add_id_);
+
255  if (block_additional_data_) {
+
256  // TODO: Technically, more than 1 BlockAdditional is allowed as per
+
257  // matroska spec. But for now we don't have a use case to support
+
258  // parsing of such files. Take a look at this again when such a case
+
259  // arises.
+
260  LOG(ERROR) << "More than 1 BlockAdditional in a "
+
261  "BlockGroup is not supported.";
+
262  return false;
+
263  }
+
264  // First 8 bytes of side_data in DecoderBuffer is the BlockAddID
+
265  // element's value in Big Endian format. This is done to mimic ffmpeg
+
266  // demuxer's behavior.
+
267  block_additional_data_size_ = size + sizeof(block_add_id);
+
268  block_additional_data_.reset(new uint8_t[block_additional_data_size_]);
+
269  memcpy(block_additional_data_.get(), &block_add_id,
+
270  sizeof(block_add_id));
+
271  memcpy(block_additional_data_.get() + 8, data, size);
+
272  return true;
+
273  }
+
274  case kWebMIdDiscardPadding: {
+
275  if (discard_padding_set_ || size <= 0 || size > 8)
+
276  return false;
+
277  discard_padding_set_ = true;
+
278 
+
279  // Read in the big-endian integer.
+
280  discard_padding_ = static_cast<int8_t>(data[0]);
+
281  for (int i = 1; i < size; ++i)
+
282  discard_padding_ = (discard_padding_ << 8) | data[i];
+
283 
+
284  return true;
+
285  }
+
286  case kWebMIdReferenceBlock:
+
287  // We use ReferenceBlock to determine whether the current Block contains a
+
288  // keyframe or not. Other than that, we don't care about the value of the
+
289  // ReferenceBlock element itself.
+
290  reference_block_set_ = true;
+
291  return true;
+
292  default:
+
293  return true;
+
294  }
+
295 }
+
296 
+
297 bool WebMClusterParser::OnBlock(bool is_simple_block,
+
298  int track_num,
+
299  int timecode,
+
300  int block_duration,
+
301  const uint8_t* data,
+
302  int size,
+
303  const uint8_t* additional,
+
304  int additional_size,
+
305  int64_t discard_padding,
+
306  bool is_key_frame) {
+
307  DCHECK_GE(size, 0);
+
308  if (cluster_timecode_ == -1) {
+
309  LOG(ERROR) << "Got a block before cluster timecode.";
+
310  return false;
+
311  }
+
312 
+
313  // TODO: Should relative negative timecode offsets be rejected? Or only when
+
314  // the absolute timecode is negative? See http://crbug.com/271794
+
315  if (timecode < 0) {
+
316  LOG(ERROR) << "Got a block with negative timecode offset " << timecode;
+
317  return false;
+
318  }
+
319 
+
320  if (last_block_timecode_ != -1 && timecode < last_block_timecode_) {
+
321  LOG(ERROR) << "Got a block with a timecode before the previous block.";
+
322  return false;
+
323  }
+
324 
+
325  Track* track = NULL;
+
326  StreamType stream_type = kStreamUnknown;
+
327  std::string encryption_key_id;
+
328  if (track_num == audio_.track_num()) {
+
329  track = &audio_;
+
330  encryption_key_id = audio_encryption_key_id_;
+
331  stream_type = kStreamAudio;
+
332  } else if (track_num == video_.track_num()) {
+
333  track = &video_;
+
334  encryption_key_id = video_encryption_key_id_;
+
335  stream_type = kStreamVideo;
+
336  } else if (ignored_tracks_.find(track_num) != ignored_tracks_.end()) {
+
337  return true;
+
338  } else if (Track* const text_track = FindTextTrack(track_num)) {
+
339  if (is_simple_block) // BlockGroup is required for WebVTT cues
+
340  return false;
+
341  if (block_duration < 0) // not specified
+
342  return false;
+
343  track = text_track;
+
344  stream_type = kStreamText;
+
345  } else {
+
346  LOG(ERROR) << "Unexpected track number " << track_num;
+
347  return false;
+
348  }
+
349  DCHECK_NE(stream_type, kStreamUnknown);
+
350 
+
351  last_block_timecode_ = timecode;
+
352 
+
353  int64_t timestamp = (cluster_timecode_ + timecode) * timecode_multiplier_;
+
354 
+
355  scoped_refptr<MediaSample> buffer;
+
356  if (stream_type != kStreamText) {
+
357  // Every encrypted Block has a signal byte and IV prepended to it. Current
+
358  // encrypted WebM request for comments specification is here
+
359  // http://wiki.webmproject.org/encryption/webm-encryption-rfc
+
360  std::unique_ptr<DecryptConfig> decrypt_config;
+
361  int data_offset = 0;
+
362  if (!encryption_key_id.empty() &&
+
363  !WebMCreateDecryptConfig(
+
364  data, size,
+
365  reinterpret_cast<const uint8_t*>(encryption_key_id.data()),
+
366  encryption_key_id.size(),
+
367  &decrypt_config, &data_offset)) {
+
368  return false;
+
369  }
+
370 
+
371  buffer = MediaSample::CopyFrom(data + data_offset, size - data_offset,
+
372  additional, additional_size, is_key_frame);
+
373 
+
374  if (decrypt_config) {
+
375  if (!decryptor_source_) {
+
376  LOG(ERROR) << "Encrypted media sample encountered, but decryption is "
+
377  "not enabled";
+
378  return false;
+
379  }
+
380  if (!decryptor_source_->DecryptSampleBuffer(decrypt_config.get(),
+
381  buffer->writable_data(),
+
382  buffer->data_size())) {
+
383  LOG(ERROR) << "Cannot decrypt samples";
+
384  return false;
+
385  }
+
386  }
+
387  } else {
+
388  std::string id, settings, content;
+
389  WebMWebVTTParser::Parse(data, size, &id, &settings, &content);
+
390 
+
391  std::vector<uint8_t> side_data;
+
392  MakeSideData(id.begin(), id.end(),
+
393  settings.begin(), settings.end(),
+
394  &side_data);
+
395 
+
396  buffer = MediaSample::CopyFrom(
+
397  reinterpret_cast<const uint8_t*>(content.data()), content.length(),
+
398  &side_data[0], side_data.size(), true);
+
399  }
+
400 
+
401  buffer->set_dts(timestamp);
+
402  buffer->set_pts(timestamp);
+
403  if (cluster_start_time_ == kNoTimestamp)
+
404  cluster_start_time_ = timestamp;
+
405  buffer->set_duration(block_duration > 0
+
406  ? (block_duration * timecode_multiplier_)
+
407  : kNoTimestamp);
+
408 
+
409  if (!init_cb_.is_null() && !initialized_) {
+
410  std::vector<scoped_refptr<StreamInfo>> streams;
+
411  if (audio_stream_info_)
+
412  streams.push_back(audio_stream_info_);
+
413  if (video_stream_info_) {
+
414  if (stream_type == kStreamVideo) {
+
415  std::unique_ptr<VPxParser> vpx_parser;
+
416  switch (video_stream_info_->codec()) {
+
417  case kCodecVP8:
+
418  vpx_parser.reset(new VP8Parser);
+
419  break;
+
420  case kCodecVP9:
+
421  vpx_parser.reset(new VP9Parser);
+
422  break;
+
423  default:
+
424  NOTIMPLEMENTED() << "Unsupported codec "
+
425  << video_stream_info_->codec();
+
426  return false;
+
427  }
+
428  std::vector<VPxFrameInfo> vpx_frames;
+
429  if (!vpx_parser->Parse(buffer->data(), buffer->data_size(),
+
430  &vpx_frames)) {
+
431  LOG(ERROR) << "Failed to parse vpx frame.";
+
432  return false;
+
433  }
+
434  if (vpx_frames.size() != 1u || !vpx_frames[0].is_keyframe) {
+
435  LOG(ERROR) << "The first frame should be a key frame.";
+
436  return false;
+
437  }
+
438 
+
439  VPCodecConfigurationRecord codec_config;
+
440  if (!video_stream_info_->codec_config().empty())
+
441  codec_config.ParseWebM(video_stream_info_->codec_config());
+
442  codec_config.MergeFrom(vpx_parser->codec_config());
+
443 
+
444  video_stream_info_->set_codec_string(
+
445  codec_config.GetCodecString(video_stream_info_->codec()));
+
446  std::vector<uint8_t> config_serialized;
+
447  codec_config.WriteMP4(&config_serialized);
+
448  video_stream_info_->set_codec_config(config_serialized);
+
449  streams.push_back(video_stream_info_);
+
450  init_cb_.Run(streams);
+
451  initialized_ = true;
+
452  }
+
453  } else {
+
454  init_cb_.Run(streams);
+
455  initialized_ = true;
+
456  }
+
457  }
+
458 
+
459  return track->EmitBuffer(buffer);
+
460 }
+
461 
+
462 WebMClusterParser::Track::Track(int track_num,
+
463  bool is_video,
+
464  int64_t default_duration,
+
465  const MediaParser::NewSampleCB& new_sample_cb)
+
466  : track_num_(track_num),
+
467  is_video_(is_video),
+
468  default_duration_(default_duration),
+
469  estimated_next_frame_duration_(kNoTimestamp),
+
470  new_sample_cb_(new_sample_cb) {
+
471  DCHECK(default_duration_ == kNoTimestamp || default_duration_ > 0);
+
472 }
+
473 
+
474 WebMClusterParser::Track::~Track() {}
+
475 
+
476 bool WebMClusterParser::Track::EmitBuffer(
+
477  const scoped_refptr<MediaSample>& buffer) {
+
478  DVLOG(2) << "EmitBuffer() : " << track_num_
+
479  << " ts " << buffer->pts()
+
480  << " dur " << buffer->duration()
+
481  << " kf " << buffer->is_key_frame()
+
482  << " size " << buffer->data_size();
+
483 
+
484  if (last_added_buffer_missing_duration_.get()) {
+
485  int64_t derived_duration =
+
486  buffer->pts() - last_added_buffer_missing_duration_->pts();
+
487  last_added_buffer_missing_duration_->set_duration(derived_duration);
+
488 
+
489  DVLOG(2) << "EmitBuffer() : applied derived duration to held-back buffer : "
+
490  << " ts "
+
491  << last_added_buffer_missing_duration_->pts()
+
492  << " dur "
+
493  << last_added_buffer_missing_duration_->duration()
+
494  << " kf " << last_added_buffer_missing_duration_->is_key_frame()
+
495  << " size " << last_added_buffer_missing_duration_->data_size();
+
496  scoped_refptr<MediaSample> updated_buffer =
+
497  last_added_buffer_missing_duration_;
+
498  last_added_buffer_missing_duration_ = NULL;
+
499  if (!EmitBufferHelp(updated_buffer))
+
500  return false;
+
501  }
+
502 
+
503  if (buffer->duration() == kNoTimestamp) {
+
504  last_added_buffer_missing_duration_ = buffer;
+
505  DVLOG(2) << "EmitBuffer() : holding back buffer that is missing duration";
+
506  return true;
+
507  }
+
508 
+
509  return EmitBufferHelp(buffer);
+
510 }
+
511 
+
512 bool WebMClusterParser::Track::ApplyDurationEstimateIfNeeded() {
+
513  if (!last_added_buffer_missing_duration_.get())
+
514  return true;
+
515 
+
516  int64_t estimated_duration = GetDurationEstimate();
+
517  last_added_buffer_missing_duration_->set_duration(estimated_duration);
+
518 
+
519  VLOG(1) << "Track " << track_num_ << ": Estimating WebM block duration to be "
+
520  << estimated_duration / 1000
+
521  << "ms for the last (Simple)Block in the Cluster for this Track. Use "
+
522  "BlockGroups with BlockDurations at the end of each Track in a "
+
523  "Cluster to avoid estimation.";
+
524 
+
525  DVLOG(2) << " new dur : ts " << last_added_buffer_missing_duration_->pts()
+
526  << " dur " << last_added_buffer_missing_duration_->duration()
+
527  << " kf " << last_added_buffer_missing_duration_->is_key_frame()
+
528  << " size " << last_added_buffer_missing_duration_->data_size();
+
529 
+
530  // Don't use the applied duration as a future estimation (don't use
+
531  // EmitBufferHelp() here.)
+
532  if (!new_sample_cb_.Run(track_num_, last_added_buffer_missing_duration_))
+
533  return false;
+
534  last_added_buffer_missing_duration_ = NULL;
+
535  return true;
+
536 }
+
537 
+
538 void WebMClusterParser::Track::Reset() {
+
539  last_added_buffer_missing_duration_ = NULL;
+
540 }
+
541 
+
542 bool WebMClusterParser::Track::EmitBufferHelp(
+
543  const scoped_refptr<MediaSample>& buffer) {
+
544  DCHECK(!last_added_buffer_missing_duration_.get());
+
545 
+
546  int64_t duration = buffer->duration();
+
547  if (duration < 0 || duration == kNoTimestamp) {
+
548  LOG(ERROR) << "Invalid buffer duration: " << duration;
+
549  return false;
+
550  }
+
551 
+
552  // The estimated frame duration is the maximum non-zero duration since the
+
553  // last initialization segment.
+
554  if (duration > 0) {
+
555  int64_t orig_duration_estimate = estimated_next_frame_duration_;
+
556  if (estimated_next_frame_duration_ == kNoTimestamp) {
+
557  estimated_next_frame_duration_ = duration;
+
558  } else {
+
559  estimated_next_frame_duration_ =
+
560  std::max(duration, estimated_next_frame_duration_);
+
561  }
+
562 
+
563  if (orig_duration_estimate != estimated_next_frame_duration_) {
+
564  DVLOG(3) << "Updated duration estimate:"
+
565  << orig_duration_estimate
+
566  << " -> "
+
567  << estimated_next_frame_duration_
+
568  << " at timestamp: "
+
569  << buffer->dts();
+
570  }
+
571  }
+
572 
+
573  return new_sample_cb_.Run(track_num_, buffer);
+
574 }
+
575 
+
576 int64_t WebMClusterParser::Track::GetDurationEstimate() {
+
577  int64_t duration = kNoTimestamp;
+
578  if (default_duration_ != kNoTimestamp) {
+
579  duration = default_duration_;
+
580  DVLOG(3) << __FUNCTION__ << " : using track default duration " << duration;
+
581  } else if (estimated_next_frame_duration_ != kNoTimestamp) {
+
582  duration = estimated_next_frame_duration_;
+
583  DVLOG(3) << __FUNCTION__ << " : using estimated duration " << duration;
+
584  } else {
+
585  if (is_video_) {
+
586  duration = kDefaultVideoBufferDurationInMs * kMicrosecondsPerMillisecond;
+
587  } else {
+
588  duration = kDefaultAudioBufferDurationInMs * kMicrosecondsPerMillisecond;
+
589  }
+
590  DVLOG(3) << __FUNCTION__ << " : using hardcoded default duration "
+
591  << duration;
+
592  }
+
593 
+
594  DCHECK_GT(duration, 0);
+
595  DCHECK_NE(duration, kNoTimestamp);
+
596  return duration;
+
597 }
+
598 
+
599 void WebMClusterParser::ResetTextTracks() {
+
600  for (TextTrackMap::iterator it = text_track_map_.begin();
+
601  it != text_track_map_.end();
+
602  ++it) {
+
603  it->second.Reset();
+
604  }
+
605 }
+
606 
+
607 WebMClusterParser::Track*
+
608 WebMClusterParser::FindTextTrack(int track_num) {
+
609  const TextTrackMap::iterator it = text_track_map_.find(track_num);
+
610 
+
611  if (it == text_track_map_.end())
+
612  return NULL;
+
613 
+
614  return &it->second;
+
615 }
+
616 
+
617 } // namespace media
+
618 } // namespace shaka
base::Callback< void(const std::vector< scoped_refptr< StreamInfo > > &stream_info)> InitCB
Definition: media_parser.h:34
-
int Parse(const uint8_t *buf, int size)
+
int Parse(const uint8_t *buf, int size)
void Reset()
Resets the state of the parser so it can start parsing a new list.
Definition: webm_parser.cc:714
int Parse(const uint8_t *buf, int size)
Definition: webm_parser.cc:719
-
bool Flush() WARN_UNUSED_RESULT
+
bool Flush() WARN_UNUSED_RESULT
static void Parse(const uint8_t *payload, int payload_size, std::string *id, std::string *settings, std::string *content)
Utility function to parse the WebVTT cue from a byte stream.
base::Callback< bool(uint32_t track_id, const scoped_refptr< MediaSample > &media_sample)> NewSampleCB
Definition: media_parser.h:43
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:30
static scoped_refptr< MediaSample > CopyFrom(const uint8_t *data, size_t size, bool is_key_frame)
Definition: media_sample.cc:45
-
WebMClusterParser(int64_t timecode_scale, scoped_refptr< AudioStreamInfo > audio_stream_info, scoped_refptr< VideoStreamInfo > video_stream_info, int64_t audio_default_duration, int64_t video_default_duration, const WebMTracksParser::TextTracks &text_tracks, const std::set< int64_t > &ignored_tracks, const std::string &audio_encryption_key_id, const std::string &video_encryption_key_id, const MediaParser::NewSampleCB &new_sample_cb, const MediaParser::InitCB &init_cb, KeySource *decryption_key_source)
+
WebMClusterParser(int64_t timecode_scale, scoped_refptr< AudioStreamInfo > audio_stream_info, scoped_refptr< VideoStreamInfo > video_stream_info, int64_t audio_default_duration, int64_t video_default_duration, const WebMTracksParser::TextTracks &text_tracks, const std::set< int64_t > &ignored_tracks, const std::string &audio_encryption_key_id, const std::string &video_encryption_key_id, const MediaParser::NewSampleCB &new_sample_cb, const MediaParser::InitCB &init_cb, KeySource *decryption_key_source)
DecryptorSource wraps KeySource and is responsible for decryptor management.
-
void Reset()
Resets the parser state so it can accept a new cluster.
+
void Reset()
Resets the parser state so it can accept a new cluster.
diff --git a/docs/d5/d91/es__parser__adts_8cc_source.html b/docs/d5/d91/es__parser__adts_8cc_source.html index f784823e14..62642c7396 100644 --- a/docs/d5/d91/es__parser__adts_8cc_source.html +++ b/docs/d5/d91/es__parser__adts_8cc_source.html @@ -95,266 +95,267 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
6 
7 #include <stdint.h>
8 
-
9 #include <list>
-
10 
-
11 #include "packager/base/logging.h"
-
12 #include "packager/base/strings/string_number_conversions.h"
-
13 #include "packager/media/base/audio_timestamp_helper.h"
-
14 #include "packager/media/base/bit_reader.h"
-
15 #include "packager/media/base/media_sample.h"
-
16 #include "packager/media/base/timestamp.h"
-
17 #include "packager/media/formats/mp2t/adts_header.h"
-
18 #include "packager/media/formats/mp2t/mp2t_common.h"
-
19 #include "packager/media/formats/mpeg/adts_constants.h"
-
20 
-
21 namespace shaka {
-
22 namespace media {
-
23 
-
24 // Return true if buf corresponds to an ADTS syncword.
-
25 // |buf| size must be at least 2.
-
26 static bool isAdtsSyncWord(const uint8_t* buf) {
-
27  return (buf[0] == 0xff) && ((buf[1] & 0xf6) == 0xf0);
-
28 }
-
29 
-
30 // Look for an ADTS syncword.
-
31 // |new_pos| returns
-
32 // - either the byte position of the ADTS frame (if found)
-
33 // - or the byte position of 1st byte that was not processed (if not found).
-
34 // In every case, the returned value in |new_pos| is such that new_pos >= pos
-
35 // |frame_sz| returns the size of the ADTS frame (if found).
-
36 // Return whether a syncword was found.
-
37 static bool LookForSyncWord(const uint8_t* raw_es,
-
38  int raw_es_size,
-
39  int pos,
-
40  int* new_pos,
-
41  int* frame_sz) {
-
42  DCHECK_GE(pos, 0);
-
43  DCHECK_LE(pos, raw_es_size);
-
44 
-
45  int max_offset = raw_es_size - kAdtsHeaderMinSize;
-
46  if (pos >= max_offset) {
-
47  // Do not change the position if:
-
48  // - max_offset < 0: not enough bytes to get a full header
-
49  // Since pos >= 0, this is a subcase of the next condition.
-
50  // - pos >= max_offset: might be the case after reading one full frame,
-
51  // |pos| is then incremented by the frame size and might then point
-
52  // to the end of the buffer.
-
53  *new_pos = pos;
-
54  return false;
-
55  }
-
56 
-
57  for (int offset = pos; offset < max_offset; offset++) {
-
58  const uint8_t* cur_buf = &raw_es[offset];
-
59 
-
60  if (!isAdtsSyncWord(cur_buf))
-
61  // The first 12 bits must be 1.
-
62  // The layer field (2 bits) must be set to 0.
-
63  continue;
-
64 
-
65  int frame_size =
-
66  mp2t::AdtsHeader::GetAdtsFrameSize(cur_buf, kAdtsHeaderMinSize);
-
67  if (frame_size < kAdtsHeaderMinSize) {
-
68  // Too short to be an ADTS frame.
-
69  continue;
-
70  }
-
71 
-
72  // Check whether there is another frame
-
73  // |size| apart from the current one.
-
74  int remaining_size = raw_es_size - offset;
-
75  if (remaining_size >= frame_size + 2 &&
-
76  !isAdtsSyncWord(&cur_buf[frame_size])) {
-
77  continue;
-
78  }
-
79 
-
80  *new_pos = offset;
-
81  *frame_sz = frame_size;
-
82  return true;
-
83  }
-
84 
-
85  *new_pos = max_offset;
-
86  return false;
-
87 }
-
88 
-
89 namespace mp2t {
-
90 
-
91 EsParserAdts::EsParserAdts(uint32_t pid,
-
92  const NewStreamInfoCB& new_stream_info_cb,
-
93  const EmitSampleCB& emit_sample_cb,
-
94  bool sbr_in_mimetype)
-
95  : EsParser(pid),
-
96  new_stream_info_cb_(new_stream_info_cb),
-
97  emit_sample_cb_(emit_sample_cb),
-
98  sbr_in_mimetype_(sbr_in_mimetype) {
-
99 }
-
100 
-
101 EsParserAdts::~EsParserAdts() {
-
102 }
-
103 
-
104 bool EsParserAdts::Parse(const uint8_t* buf,
-
105  int size,
-
106  int64_t pts,
-
107  int64_t dts) {
-
108  int raw_es_size;
-
109  const uint8_t* raw_es;
-
110 
-
111  // The incoming PTS applies to the access unit that comes just after
-
112  // the beginning of |buf|.
-
113  if (pts != kNoTimestamp) {
-
114  es_byte_queue_.Peek(&raw_es, &raw_es_size);
-
115  pts_list_.push_back(EsPts(raw_es_size, pts));
-
116  }
-
117 
-
118  // Copy the input data to the ES buffer.
-
119  es_byte_queue_.Push(buf, size);
-
120  es_byte_queue_.Peek(&raw_es, &raw_es_size);
-
121 
-
122  // Look for every ADTS frame in the ES buffer starting at offset = 0
-
123  int es_position = 0;
-
124  int frame_size;
-
125  while (LookForSyncWord(raw_es, raw_es_size, es_position,
-
126  &es_position, &frame_size)) {
-
127  const uint8_t* frame_ptr = raw_es + es_position;
-
128  DVLOG(LOG_LEVEL_ES)
-
129  << "ADTS syncword @ pos=" << es_position
-
130  << " frame_size=" << frame_size;
-
131  DVLOG(LOG_LEVEL_ES)
-
132  << "ADTS header: "
-
133  << base::HexEncode(frame_ptr, kAdtsHeaderMinSize);
-
134 
-
135  // Do not process the frame if this one is a partial frame.
-
136  int remaining_size = raw_es_size - es_position;
-
137  if (frame_size > remaining_size)
-
138  break;
-
139 
-
140  size_t header_size = AdtsHeader::GetAdtsHeaderSize(frame_ptr, frame_size);
-
141 
-
142  // Update the audio configuration if needed.
-
143  DCHECK_GE(frame_size, kAdtsHeaderMinSize);
-
144  if (!UpdateAudioConfiguration(frame_ptr, frame_size))
-
145  return false;
-
146 
-
147  // Get the PTS & the duration of this access unit.
-
148  while (!pts_list_.empty() &&
-
149  pts_list_.front().first <= es_position) {
-
150  audio_timestamp_helper_->SetBaseTimestamp(pts_list_.front().second);
-
151  pts_list_.pop_front();
-
152  }
-
153 
-
154  int64_t current_pts = audio_timestamp_helper_->GetTimestamp();
-
155  int64_t frame_duration =
-
156  audio_timestamp_helper_->GetFrameDuration(kSamplesPerAACFrame);
-
157 
-
158  // Emit an audio frame.
-
159  bool is_key_frame = true;
-
160 
-
161  scoped_refptr<MediaSample> sample =
- -
163  frame_ptr + header_size,
-
164  frame_size - header_size,
-
165  is_key_frame);
-
166  sample->set_pts(current_pts);
-
167  sample->set_dts(current_pts);
-
168  sample->set_duration(frame_duration);
-
169  emit_sample_cb_.Run(pid(), sample);
-
170 
-
171  // Update the PTS of the next frame.
-
172  audio_timestamp_helper_->AddFrames(kSamplesPerAACFrame);
-
173 
-
174  // Skip the current frame.
-
175  es_position += frame_size;
-
176  }
-
177 
-
178  // Discard all the bytes that have been processed.
-
179  DiscardEs(es_position);
-
180 
-
181  return true;
-
182 }
-
183 
-
184 void EsParserAdts::Flush() {
-
185 }
-
186 
-
187 void EsParserAdts::Reset() {
-
188  es_byte_queue_.Reset();
-
189  pts_list_.clear();
-
190  last_audio_decoder_config_ = scoped_refptr<AudioStreamInfo>();
-
191 }
-
192 
-
193 bool EsParserAdts::UpdateAudioConfiguration(const uint8_t* adts_frame,
-
194  size_t adts_frame_size) {
-
195  const uint8_t kAacSampleSizeBits(16);
-
196 
-
197  AdtsHeader adts_header;
-
198  if (!adts_header.Parse(adts_frame, adts_frame_size)) {
-
199  LOG(ERROR) << "Error parsing ADTS frame header.";
-
200  return false;
-
201  }
-
202  std::vector<uint8_t> audio_specific_config;
-
203  if (!adts_header.GetAudioSpecificConfig(&audio_specific_config))
-
204  return false;
-
205 
-
206  if (last_audio_decoder_config_) {
-
207  // Verify that the audio decoder config has not changed.
-
208  if (last_audio_decoder_config_->codec_config() == audio_specific_config) {
-
209  // Audio configuration has not changed.
-
210  return true;
-
211  }
-
212  NOTIMPLEMENTED() << "Varying audio configurations are not supported.";
-
213  return false;
-
214  }
-
215 
-
216  // The following code is written according to ISO 14496 Part 3 Table 1.11 and
-
217  // Table 1.22. (Table 1.11 refers to the capping to 48000, Table 1.22 refers
-
218  // to SBR doubling the AAC sample rate.)
-
219  int samples_per_second = adts_header.GetSamplingFrequency();
-
220  int extended_samples_per_second = sbr_in_mimetype_
-
221  ? std::min(2 * samples_per_second, 48000)
-
222  : samples_per_second;
-
223 
-
224  last_audio_decoder_config_ = scoped_refptr<StreamInfo>(new AudioStreamInfo(
-
225  pid(), kMpeg2Timescale, kInfiniteDuration, kCodecAAC,
-
226  AudioStreamInfo::GetCodecString(kCodecAAC, adts_header.GetObjectType()),
-
227  audio_specific_config.data(), audio_specific_config.size(),
-
228  kAacSampleSizeBits, adts_header.GetNumChannels(),
-
229  extended_samples_per_second, 0 /* seek preroll */, 0 /* codec delay */,
-
230  0 /* max bitrate */, 0 /* avg bitrate */, std::string(), false));
-
231 
-
232  DVLOG(1) << "Sampling frequency: " << samples_per_second;
-
233  DVLOG(1) << "Extended sampling frequency: " << extended_samples_per_second;
-
234  DVLOG(1) << "Channel config: " << adts_header.GetNumChannels();
-
235  DVLOG(1) << "Object type: " << adts_header.GetObjectType();
-
236  // Reset the timestamp helper to use a new sampling frequency.
-
237  if (audio_timestamp_helper_) {
-
238  int64_t base_timestamp = audio_timestamp_helper_->GetTimestamp();
-
239  audio_timestamp_helper_.reset(
-
240  new AudioTimestampHelper(kMpeg2Timescale, samples_per_second));
-
241  audio_timestamp_helper_->SetBaseTimestamp(base_timestamp);
-
242  } else {
-
243  audio_timestamp_helper_.reset(
-
244  new AudioTimestampHelper(kMpeg2Timescale, extended_samples_per_second));
-
245  }
-
246 
-
247  // Audio config notification.
-
248  new_stream_info_cb_.Run(last_audio_decoder_config_);
-
249 
-
250  return true;
-
251 }
-
252 
-
253 void EsParserAdts::DiscardEs(int nbytes) {
-
254  DCHECK_GE(nbytes, 0);
-
255  if (nbytes <= 0)
-
256  return;
-
257 
-
258  // Adjust the ES position of each PTS.
-
259  for (EsPtsList::iterator it = pts_list_.begin(); it != pts_list_.end(); ++it)
-
260  it->first -= nbytes;
-
261 
-
262  // Discard |nbytes| of ES.
-
263  es_byte_queue_.Pop(nbytes);
-
264 }
-
265 
-
266 } // namespace mp2t
-
267 } // namespace media
-
268 } // namespace shaka
+
9 #include <algorithm>
+
10 #include <list>
+
11 
+
12 #include "packager/base/logging.h"
+
13 #include "packager/base/strings/string_number_conversions.h"
+
14 #include "packager/media/base/audio_timestamp_helper.h"
+
15 #include "packager/media/base/bit_reader.h"
+
16 #include "packager/media/base/media_sample.h"
+
17 #include "packager/media/base/timestamp.h"
+
18 #include "packager/media/formats/mp2t/adts_header.h"
+
19 #include "packager/media/formats/mp2t/mp2t_common.h"
+
20 #include "packager/media/formats/mpeg/adts_constants.h"
+
21 
+
22 namespace shaka {
+
23 namespace media {
+
24 
+
25 // Return true if buf corresponds to an ADTS syncword.
+
26 // |buf| size must be at least 2.
+
27 static bool isAdtsSyncWord(const uint8_t* buf) {
+
28  return (buf[0] == 0xff) && ((buf[1] & 0xf6) == 0xf0);
+
29 }
+
30 
+
31 // Look for an ADTS syncword.
+
32 // |new_pos| returns
+
33 // - either the byte position of the ADTS frame (if found)
+
34 // - or the byte position of 1st byte that was not processed (if not found).
+
35 // In every case, the returned value in |new_pos| is such that new_pos >= pos
+
36 // |frame_sz| returns the size of the ADTS frame (if found).
+
37 // Return whether a syncword was found.
+
38 static bool LookForSyncWord(const uint8_t* raw_es,
+
39  int raw_es_size,
+
40  int pos,
+
41  int* new_pos,
+
42  int* frame_sz) {
+
43  DCHECK_GE(pos, 0);
+
44  DCHECK_LE(pos, raw_es_size);
+
45 
+
46  int max_offset = raw_es_size - kAdtsHeaderMinSize;
+
47  if (pos >= max_offset) {
+
48  // Do not change the position if:
+
49  // - max_offset < 0: not enough bytes to get a full header
+
50  // Since pos >= 0, this is a subcase of the next condition.
+
51  // - pos >= max_offset: might be the case after reading one full frame,
+
52  // |pos| is then incremented by the frame size and might then point
+
53  // to the end of the buffer.
+
54  *new_pos = pos;
+
55  return false;
+
56  }
+
57 
+
58  for (int offset = pos; offset < max_offset; offset++) {
+
59  const uint8_t* cur_buf = &raw_es[offset];
+
60 
+
61  if (!isAdtsSyncWord(cur_buf))
+
62  // The first 12 bits must be 1.
+
63  // The layer field (2 bits) must be set to 0.
+
64  continue;
+
65 
+
66  int frame_size =
+
67  mp2t::AdtsHeader::GetAdtsFrameSize(cur_buf, kAdtsHeaderMinSize);
+
68  if (frame_size < kAdtsHeaderMinSize) {
+
69  // Too short to be an ADTS frame.
+
70  continue;
+
71  }
+
72 
+
73  // Check whether there is another frame
+
74  // |size| apart from the current one.
+
75  int remaining_size = raw_es_size - offset;
+
76  if (remaining_size >= frame_size + 2 &&
+
77  !isAdtsSyncWord(&cur_buf[frame_size])) {
+
78  continue;
+
79  }
+
80 
+
81  *new_pos = offset;
+
82  *frame_sz = frame_size;
+
83  return true;
+
84  }
+
85 
+
86  *new_pos = max_offset;
+
87  return false;
+
88 }
+
89 
+
90 namespace mp2t {
+
91 
+
92 EsParserAdts::EsParserAdts(uint32_t pid,
+
93  const NewStreamInfoCB& new_stream_info_cb,
+
94  const EmitSampleCB& emit_sample_cb,
+
95  bool sbr_in_mimetype)
+
96  : EsParser(pid),
+
97  new_stream_info_cb_(new_stream_info_cb),
+
98  emit_sample_cb_(emit_sample_cb),
+
99  sbr_in_mimetype_(sbr_in_mimetype) {
+
100 }
+
101 
+
102 EsParserAdts::~EsParserAdts() {
+
103 }
+
104 
+
105 bool EsParserAdts::Parse(const uint8_t* buf,
+
106  int size,
+
107  int64_t pts,
+
108  int64_t dts) {
+
109  int raw_es_size;
+
110  const uint8_t* raw_es;
+
111 
+
112  // The incoming PTS applies to the access unit that comes just after
+
113  // the beginning of |buf|.
+
114  if (pts != kNoTimestamp) {
+
115  es_byte_queue_.Peek(&raw_es, &raw_es_size);
+
116  pts_list_.push_back(EsPts(raw_es_size, pts));
+
117  }
+
118 
+
119  // Copy the input data to the ES buffer.
+
120  es_byte_queue_.Push(buf, size);
+
121  es_byte_queue_.Peek(&raw_es, &raw_es_size);
+
122 
+
123  // Look for every ADTS frame in the ES buffer starting at offset = 0
+
124  int es_position = 0;
+
125  int frame_size;
+
126  while (LookForSyncWord(raw_es, raw_es_size, es_position,
+
127  &es_position, &frame_size)) {
+
128  const uint8_t* frame_ptr = raw_es + es_position;
+
129  DVLOG(LOG_LEVEL_ES)
+
130  << "ADTS syncword @ pos=" << es_position
+
131  << " frame_size=" << frame_size;
+
132  DVLOG(LOG_LEVEL_ES)
+
133  << "ADTS header: "
+
134  << base::HexEncode(frame_ptr, kAdtsHeaderMinSize);
+
135 
+
136  // Do not process the frame if this one is a partial frame.
+
137  int remaining_size = raw_es_size - es_position;
+
138  if (frame_size > remaining_size)
+
139  break;
+
140 
+
141  size_t header_size = AdtsHeader::GetAdtsHeaderSize(frame_ptr, frame_size);
+
142 
+
143  // Update the audio configuration if needed.
+
144  DCHECK_GE(frame_size, kAdtsHeaderMinSize);
+
145  if (!UpdateAudioConfiguration(frame_ptr, frame_size))
+
146  return false;
+
147 
+
148  // Get the PTS & the duration of this access unit.
+
149  while (!pts_list_.empty() &&
+
150  pts_list_.front().first <= es_position) {
+
151  audio_timestamp_helper_->SetBaseTimestamp(pts_list_.front().second);
+
152  pts_list_.pop_front();
+
153  }
+
154 
+
155  int64_t current_pts = audio_timestamp_helper_->GetTimestamp();
+
156  int64_t frame_duration =
+
157  audio_timestamp_helper_->GetFrameDuration(kSamplesPerAACFrame);
+
158 
+
159  // Emit an audio frame.
+
160  bool is_key_frame = true;
+
161 
+
162  scoped_refptr<MediaSample> sample =
+ +
164  frame_ptr + header_size,
+
165  frame_size - header_size,
+
166  is_key_frame);
+
167  sample->set_pts(current_pts);
+
168  sample->set_dts(current_pts);
+
169  sample->set_duration(frame_duration);
+
170  emit_sample_cb_.Run(pid(), sample);
+
171 
+
172  // Update the PTS of the next frame.
+
173  audio_timestamp_helper_->AddFrames(kSamplesPerAACFrame);
+
174 
+
175  // Skip the current frame.
+
176  es_position += frame_size;
+
177  }
+
178 
+
179  // Discard all the bytes that have been processed.
+
180  DiscardEs(es_position);
+
181 
+
182  return true;
+
183 }
+
184 
+
185 void EsParserAdts::Flush() {
+
186 }
+
187 
+
188 void EsParserAdts::Reset() {
+
189  es_byte_queue_.Reset();
+
190  pts_list_.clear();
+
191  last_audio_decoder_config_ = scoped_refptr<AudioStreamInfo>();
+
192 }
+
193 
+
194 bool EsParserAdts::UpdateAudioConfiguration(const uint8_t* adts_frame,
+
195  size_t adts_frame_size) {
+
196  const uint8_t kAacSampleSizeBits(16);
+
197 
+
198  AdtsHeader adts_header;
+
199  if (!adts_header.Parse(adts_frame, adts_frame_size)) {
+
200  LOG(ERROR) << "Error parsing ADTS frame header.";
+
201  return false;
+
202  }
+
203  std::vector<uint8_t> audio_specific_config;
+
204  if (!adts_header.GetAudioSpecificConfig(&audio_specific_config))
+
205  return false;
+
206 
+
207  if (last_audio_decoder_config_) {
+
208  // Verify that the audio decoder config has not changed.
+
209  if (last_audio_decoder_config_->codec_config() == audio_specific_config) {
+
210  // Audio configuration has not changed.
+
211  return true;
+
212  }
+
213  NOTIMPLEMENTED() << "Varying audio configurations are not supported.";
+
214  return false;
+
215  }
+
216 
+
217  // The following code is written according to ISO 14496 Part 3 Table 1.11 and
+
218  // Table 1.22. (Table 1.11 refers to the capping to 48000, Table 1.22 refers
+
219  // to SBR doubling the AAC sample rate.)
+
220  int samples_per_second = adts_header.GetSamplingFrequency();
+
221  int extended_samples_per_second = sbr_in_mimetype_
+
222  ? std::min(2 * samples_per_second, 48000)
+
223  : samples_per_second;
+
224 
+
225  last_audio_decoder_config_ = scoped_refptr<StreamInfo>(new AudioStreamInfo(
+
226  pid(), kMpeg2Timescale, kInfiniteDuration, kCodecAAC,
+
227  AudioStreamInfo::GetCodecString(kCodecAAC, adts_header.GetObjectType()),
+
228  audio_specific_config.data(), audio_specific_config.size(),
+
229  kAacSampleSizeBits, adts_header.GetNumChannels(),
+
230  extended_samples_per_second, 0 /* seek preroll */, 0 /* codec delay */,
+
231  0 /* max bitrate */, 0 /* avg bitrate */, std::string(), false));
+
232 
+
233  DVLOG(1) << "Sampling frequency: " << samples_per_second;
+
234  DVLOG(1) << "Extended sampling frequency: " << extended_samples_per_second;
+
235  DVLOG(1) << "Channel config: " << adts_header.GetNumChannels();
+
236  DVLOG(1) << "Object type: " << adts_header.GetObjectType();
+
237  // Reset the timestamp helper to use a new sampling frequency.
+
238  if (audio_timestamp_helper_) {
+
239  int64_t base_timestamp = audio_timestamp_helper_->GetTimestamp();
+
240  audio_timestamp_helper_.reset(
+
241  new AudioTimestampHelper(kMpeg2Timescale, samples_per_second));
+
242  audio_timestamp_helper_->SetBaseTimestamp(base_timestamp);
+
243  } else {
+
244  audio_timestamp_helper_.reset(
+
245  new AudioTimestampHelper(kMpeg2Timescale, extended_samples_per_second));
+
246  }
+
247 
+
248  // Audio config notification.
+
249  new_stream_info_cb_.Run(last_audio_decoder_config_);
+
250 
+
251  return true;
+
252 }
+
253 
+
254 void EsParserAdts::DiscardEs(int nbytes) {
+
255  DCHECK_GE(nbytes, 0);
+
256  if (nbytes <= 0)
+
257  return;
+
258 
+
259  // Adjust the ES position of each PTS.
+
260  for (EsPtsList::iterator it = pts_list_.begin(); it != pts_list_.end(); ++it)
+
261  it->first -= nbytes;
+
262 
+
263  // Discard |nbytes| of ES.
+
264  es_byte_queue_.Pop(nbytes);
+
265 }
+
266 
+
267 } // namespace mp2t
+
268 } // namespace media
+
269 } // namespace shaka
void Push(const uint8_t *data, int size)
Append new bytes to the end of the queue.
Definition: byte_queue.cc:29
void Pop(int count)
Definition: byte_queue.cc:70
static size_t GetAdtsFrameSize(const uint8_t *data, size_t num_bytes)
Definition: adts_header.cc:23
@@ -366,7 +367,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d95/structshaka_1_1media_1_1mp4_1_1EditListEntry-members.html b/docs/d5/d95/structshaka_1_1media_1_1mp4_1_1EditListEntry-members.html index 5c19e7a29e..87c1e98061 100644 --- a/docs/d5/d95/structshaka_1_1media_1_1mp4_1_1EditListEntry-members.html +++ b/docs/d5/d95/structshaka_1_1media_1_1mp4_1_1EditListEntry-members.html @@ -100,7 +100,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 9b332beb01..383fc1e990 100644 --- a/docs/d5/d98/encryptor_8cc_source.html +++ b/docs/d5/d98/encryptor_8cc_source.html @@ -191,7 +191,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
102  return Status(error::MUXER_FAILURE,
103  "Maximum number of VPx encryption partitions exceeded.");
104  }
-
105  uint8_t num_partitions =
+
105  size_t num_partitions =
106  vpx_frames.size() == 1 ? 1 : vpx_frames.size() * 2;
107  size_t header_size = kWebMSignalByteSize + iv_size +
108  kWebMNumPartitionsSize +
@@ -202,102 +202,103 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
113  sample_data[0] = kWebMEncryptedSignal | kWebMPartitionedSignal;
114  memcpy(sample_data + kWebMSignalByteSize, encryptor_->iv().data(),
115  iv_size);
-
116  sample_data[kWebMSignalByteSize + kWebMIvSize] = num_partitions;
-
117  uint32_t partition_offset = 0;
-
118  BufferWriter offsets_buffer(kWebMPartitionOffsetSize * num_partitions);
-
119  for (const auto& vpx_frame : vpx_frames) {
-
120  uint32_t encrypted_size =
-
121  vpx_frame.frame_size - vpx_frame.uncompressed_header_size;
-
122  encrypted_size -= encrypted_size % kAesBlockSize;
-
123  uint32_t clear_size = vpx_frame.frame_size - encrypted_size;
-
124  partition_offset += clear_size;
-
125  offsets_buffer.AppendInt(partition_offset);
-
126  if (encrypted_size > 0) {
-
127  uint8_t* encrypted_ptr = sample_data + header_size + partition_offset;
-
128  if (!encryptor_->Crypt(encrypted_ptr, encrypted_size, encrypted_ptr)) {
-
129  return Status(error::MUXER_FAILURE, "Failed to encrypt the frame.");
-
130  }
-
131  partition_offset += encrypted_size;
-
132  }
-
133  if (num_partitions > 1) {
-
134  offsets_buffer.AppendInt(partition_offset);
-
135  }
-
136  }
-
137  DCHECK_EQ(num_partitions * kWebMPartitionOffsetSize,
-
138  offsets_buffer.Size());
-
139  memcpy(sample_data + kWebMSignalByteSize + kWebMIvSize +
-
140  kWebMNumPartitionsSize,
-
141  offsets_buffer.Buffer(), offsets_buffer.Size());
-
142  } else {
-
143  // Use whole-frame encryption: | signal_byte(1) | iv | enc_data |
-
144 
-
145  sample->resize_data(sample_size + iv_size + kWebMSignalByteSize);
-
146  uint8_t* sample_data = sample->writable_data();
-
147 
-
148  // Encrypt the data in-place.
-
149  if (!encryptor_->Crypt(sample_data, sample_size, sample_data)) {
-
150  return Status(error::MUXER_FAILURE, "Failed to encrypt the frame.");
-
151  }
-
152 
-
153  // First move the sample data to after the IV; then write the IV and
-
154  // signal byte.
-
155  memmove(sample_data + iv_size + kWebMSignalByteSize, sample_data,
-
156  sample_size);
-
157  sample_data[0] = kWebMEncryptedSignal;
-
158  memcpy(sample_data + 1, encryptor_->iv().data(), iv_size);
-
159  }
-
160  encryptor_->UpdateIv();
-
161  } else {
-
162  // Clear sample: | signal_byte(0) | data |
-
163  sample->resize_data(sample_size + 1);
-
164  uint8_t* sample_data = sample->writable_data();
-
165  memmove(sample_data + 1, sample_data, sample_size);
-
166  sample_data[0] = 0x00;
-
167  }
-
168 
-
169  return Status::OK;
-
170 }
-
171 
-
172 Status Encryptor::CreateEncryptor(MuxerListener* muxer_listener,
-
173  KeySource::TrackType track_type,
-
174  Codec codec,
-
175  KeySource* key_source,
-
176  bool webm_subsample_encryption) {
-
177  std::unique_ptr<EncryptionKey> encryption_key(new EncryptionKey());
-
178  Status status = key_source->GetKey(track_type, encryption_key.get());
-
179  if (!status.ok())
-
180  return status;
-
181  if (encryption_key->iv.empty()) {
-
182  if (!AesCryptor::GenerateRandomIv(FOURCC_cenc, &encryption_key->iv))
-
183  return Status(error::INTERNAL_ERROR, "Failed to generate random iv.");
-
184  }
-
185  DCHECK_EQ(kWebMIvSize, encryption_key->iv.size());
-
186  std::unique_ptr<AesCtrEncryptor> encryptor(new AesCtrEncryptor());
-
187  const bool initialized =
-
188  encryptor->InitializeWithIv(encryption_key->key, encryption_key->iv);
-
189  if (!initialized)
-
190  return Status(error::INTERNAL_ERROR, "Failed to create the encryptor.");
-
191 
-
192  if (webm_subsample_encryption && codec == kCodecVP9) {
-
193  // Allocate VP9 parser to do subsample encryption of VP9.
-
194  vpx_parser_.reset(new VP9Parser);
-
195  }
-
196 
-
197  if (muxer_listener) {
-
198  const bool kInitialEncryptionInfo = true;
-
199  muxer_listener->OnEncryptionInfoReady(
-
200  kInitialEncryptionInfo, FOURCC_cenc, encryption_key->key_id,
-
201  encryptor->iv(), encryption_key->key_system_info);
-
202  }
-
203 
-
204  key_ = std::move(encryption_key);
-
205  encryptor_ = std::move(encryptor);
-
206  return Status::OK;
-
207 }
-
208 
-
209 } // namespace webm
-
210 } // namespace media
-
211 } // namespace shaka
+
116  sample_data[kWebMSignalByteSize + kWebMIvSize] =
+
117  static_cast<uint8_t>(num_partitions);
+
118  uint32_t partition_offset = 0;
+
119  BufferWriter offsets_buffer(kWebMPartitionOffsetSize * num_partitions);
+
120  for (const auto& vpx_frame : vpx_frames) {
+
121  uint32_t encrypted_size =
+
122  vpx_frame.frame_size - vpx_frame.uncompressed_header_size;
+
123  encrypted_size -= encrypted_size % kAesBlockSize;
+
124  uint32_t clear_size = vpx_frame.frame_size - encrypted_size;
+
125  partition_offset += clear_size;
+
126  offsets_buffer.AppendInt(partition_offset);
+
127  if (encrypted_size > 0) {
+
128  uint8_t* encrypted_ptr = sample_data + header_size + partition_offset;
+
129  if (!encryptor_->Crypt(encrypted_ptr, encrypted_size, encrypted_ptr)) {
+
130  return Status(error::MUXER_FAILURE, "Failed to encrypt the frame.");
+
131  }
+
132  partition_offset += encrypted_size;
+
133  }
+
134  if (num_partitions > 1) {
+
135  offsets_buffer.AppendInt(partition_offset);
+
136  }
+
137  }
+
138  DCHECK_EQ(num_partitions * kWebMPartitionOffsetSize,
+
139  offsets_buffer.Size());
+
140  memcpy(sample_data + kWebMSignalByteSize + kWebMIvSize +
+
141  kWebMNumPartitionsSize,
+
142  offsets_buffer.Buffer(), offsets_buffer.Size());
+
143  } else {
+
144  // Use whole-frame encryption: | signal_byte(1) | iv | enc_data |
+
145 
+
146  sample->resize_data(sample_size + iv_size + kWebMSignalByteSize);
+
147  uint8_t* sample_data = sample->writable_data();
+
148 
+
149  // Encrypt the data in-place.
+
150  if (!encryptor_->Crypt(sample_data, sample_size, sample_data)) {
+
151  return Status(error::MUXER_FAILURE, "Failed to encrypt the frame.");
+
152  }
+
153 
+
154  // First move the sample data to after the IV; then write the IV and
+
155  // signal byte.
+
156  memmove(sample_data + iv_size + kWebMSignalByteSize, sample_data,
+
157  sample_size);
+
158  sample_data[0] = kWebMEncryptedSignal;
+
159  memcpy(sample_data + 1, encryptor_->iv().data(), iv_size);
+
160  }
+
161  encryptor_->UpdateIv();
+
162  } else {
+
163  // Clear sample: | signal_byte(0) | data |
+
164  sample->resize_data(sample_size + 1);
+
165  uint8_t* sample_data = sample->writable_data();
+
166  memmove(sample_data + 1, sample_data, sample_size);
+
167  sample_data[0] = 0x00;
+
168  }
+
169 
+
170  return Status::OK;
+
171 }
+
172 
+
173 Status Encryptor::CreateEncryptor(MuxerListener* muxer_listener,
+
174  KeySource::TrackType track_type,
+
175  Codec codec,
+
176  KeySource* key_source,
+
177  bool webm_subsample_encryption) {
+
178  std::unique_ptr<EncryptionKey> encryption_key(new EncryptionKey());
+
179  Status status = key_source->GetKey(track_type, encryption_key.get());
+
180  if (!status.ok())
+
181  return status;
+
182  if (encryption_key->iv.empty()) {
+
183  if (!AesCryptor::GenerateRandomIv(FOURCC_cenc, &encryption_key->iv))
+
184  return Status(error::INTERNAL_ERROR, "Failed to generate random iv.");
+
185  }
+
186  DCHECK_EQ(kWebMIvSize, encryption_key->iv.size());
+
187  std::unique_ptr<AesCtrEncryptor> encryptor(new AesCtrEncryptor());
+
188  const bool initialized =
+
189  encryptor->InitializeWithIv(encryption_key->key, encryption_key->iv);
+
190  if (!initialized)
+
191  return Status(error::INTERNAL_ERROR, "Failed to create the encryptor.");
+
192 
+
193  if (webm_subsample_encryption && codec == kCodecVP9) {
+
194  // Allocate VP9 parser to do subsample encryption of VP9.
+
195  vpx_parser_.reset(new VP9Parser);
+
196  }
+
197 
+
198  if (muxer_listener) {
+
199  const bool kInitialEncryptionInfo = true;
+
200  muxer_listener->OnEncryptionInfoReady(
+
201  kInitialEncryptionInfo, FOURCC_cenc, encryption_key->key_id,
+
202  encryptor->iv(), encryption_key->key_system_info);
+
203  }
+
204 
+
205  key_ = std::move(encryption_key);
+
206  encryptor_ = std::move(encryptor);
+
207  return Status::OK;
+
208 }
+
209 
+
210 } // namespace webm
+
211 } // namespace media
+
212 } // namespace shaka
virtual void OnEncryptionInfoReady(bool is_initial_encryption_info, FourCC protection_scheme, const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< ProtectionSystemSpecificInfo > &key_system_info)=0
Status AddTrackInfo(mkvmuxer::Track *track)
Definition: encryptor.cc:71
@@ -316,7 +317,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d9b/vp__codec__configuration__record_8h_source.html b/docs/d5/d9b/vp__codec__configuration__record_8h_source.html index fe135d3955..ec620f1aee 100644 --- a/docs/d5/d9b/vp__codec__configuration__record_8h_source.html +++ b/docs/d5/d9b/vp__codec__configuration__record_8h_source.html @@ -224,7 +224,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d9d/structshaka_1_1media_1_1H265ReferencePictureListModifications.html b/docs/d5/d9d/structshaka_1_1media_1_1H265ReferencePictureListModifications.html index 42479397c1..2594f2695c 100644 --- a/docs/d5/d9d/structshaka_1_1media_1_1H265ReferencePictureListModifications.html +++ b/docs/d5/d9d/structshaka_1_1media_1_1H265ReferencePictureListModifications.html @@ -119,7 +119,7 @@ std::vector< int > l diff --git a/docs/d5/da4/aes__encryptor_8cc_source.html b/docs/d5/da4/aes__encryptor_8cc_source.html index 59e6476851..fbb960f099 100644 --- a/docs/d5/da4/aes__encryptor_8cc_source.html +++ b/docs/d5/da4/aes__encryptor_8cc_source.html @@ -297,7 +297,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dad/structshaka_1_1media_1_1H265ReferencePictureSet.html b/docs/d5/dad/structshaka_1_1media_1_1H265ReferencePictureSet.html index 680263954a..81fe591d70 100644 --- a/docs/d5/dad/structshaka_1_1media_1_1H265ReferencePictureSet.html +++ b/docs/d5/dad/structshaka_1_1media_1_1H265ReferencePictureSet.html @@ -127,7 +127,7 @@ int num_delta_pocs diff --git a/docs/d5/db1/classshaka_1_1media_1_1StreamInfo.html b/docs/d5/db1/classshaka_1_1media_1_1StreamInfo.html index 3980f6611c..e3554330a8 100644 --- a/docs/d5/db1/classshaka_1_1media_1_1StreamInfo.html +++ b/docs/d5/db1/classshaka_1_1media_1_1StreamInfo.html @@ -235,7 +235,7 @@ class base::RefCountedThre diff --git a/docs/d5/db9/classshaka_1_1media_1_1mp2t_1_1EsParserH264.html b/docs/d5/db9/classshaka_1_1media_1_1mp2t_1_1EsParserH264.html index 2922793e73..2aac20f143 100644 --- a/docs/d5/db9/classshaka_1_1media_1_1mp2t_1_1EsParserH264.html +++ b/docs/d5/db9/classshaka_1_1media_1_1mp2t_1_1EsParserH264.html @@ -161,7 +161,7 @@ const
diff --git a/docs/d5/dba/ts__packet_8cc_source.html b/docs/d5/dba/ts__packet_8cc_source.html index de026a2740..f46548716f 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 0670c40097..dead10252b 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/dc8/structshaka_1_1media_1_1mp4_1_1TrackFragment-members.html b/docs/d5/dc8/structshaka_1_1media_1_1mp4_1_1TrackFragment-members.html index f0e1baab5a..beb6f6d092 100644 --- a/docs/d5/dc8/structshaka_1_1media_1_1mp4_1_1TrackFragment-members.html +++ b/docs/d5/dc8/structshaka_1_1media_1_1mp4_1_1TrackFragment-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dca/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html b/docs/d5/dca/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html index fa6dfa61a2..8e3dc35b19 100644 --- a/docs/d5/dca/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html +++ b/docs/d5/dca/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html @@ -182,7 +182,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 114da84a23..2dc435cc98 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/dda/ts__section__psi_8h_source.html b/docs/d5/dda/ts__section__psi_8h_source.html index 5617145e63..662da60612 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 7b90963010..84a5d37982 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/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html b/docs/d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html index b21e650ff2..9dc4b3825b 100644 --- a/docs/d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html +++ b/docs/d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html @@ -307,7 +307,7 @@ class PesPacketGeneratorTe diff --git a/docs/d5/dec/classshaka_1_1media_1_1WebMParserClient.html b/docs/d5/dec/classshaka_1_1media_1_1WebMParserClient.html index cef00119fa..d66650a32d 100644 --- a/docs/d5/dec/classshaka_1_1media_1_1WebMParserClient.html +++ b/docs/d5/dec/classshaka_1_1media_1_1WebMParserClient.html @@ -151,7 +151,7 @@ Protected Member Functions diff --git a/docs/d5/dec/decoder__configuration__record_8cc_source.html b/docs/d5/dec/decoder__configuration__record_8cc_source.html index 35e0178043..d15f10797a 100644 --- a/docs/d5/dec/decoder__configuration__record_8cc_source.html +++ b/docs/d5/dec/decoder__configuration__record_8cc_source.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dec/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html b/docs/d5/dec/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html index 638e7dd869..bb5fd69402 100644 --- a/docs/d5/dec/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html +++ b/docs/d5/dec/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html @@ -109,7 +109,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 8cd84fd4b9..47cf8c646c 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/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html b/docs/d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html index 46c5704afe..524f9d3c59 100644 --- a/docs/d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html +++ b/docs/d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html @@ -535,7 +535,7 @@ Additional Inherited Members diff --git a/docs/d5/dfa/classshaka_1_1media_1_1MediaParser-members.html b/docs/d5/dfa/classshaka_1_1media_1_1MediaParser-members.html index 0ae2c195b0..d0055f77ab 100644 --- a/docs/d5/dfa/classshaka_1_1media_1_1MediaParser-members.html +++ b/docs/d5/dfa/classshaka_1_1media_1_1MediaParser-members.html @@ -103,7 +103,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 f7026a6c65..f5c412817c 100644 --- a/docs/d5/dfc/file_8cc_source.html +++ b/docs/d5/dfc/file_8cc_source.html @@ -366,7 +366,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
virtual int64_t Write(const void *buffer, uint64_t length)=0
Define an abstract file interface.
Definition: file.h:24
static File * Open(const char *file_name, const char *mode)
Definition: file.cc:141
-
static void Delete(const std::string &file_name)
Definition: memory_file.cc:134
+
static void Delete(const std::string &file_name)
Definition: memory_file.cc:135
virtual int64_t Read(void *buffer, uint64_t length)=0
static int64_t CopyFile(File *source, File *destination)
Definition: file.cc:232
static int64_t GetFileSize(const char *file_name)
Definition: file.cc:176
@@ -376,7 +376,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d03/classshaka_1_1media_1_1AesCbcDecryptor-members.html b/docs/d6/d03/classshaka_1_1media_1_1AesCbcDecryptor-members.html index 91f4e5afed..09501a080f 100644 --- a/docs/d6/d03/classshaka_1_1media_1_1AesCbcDecryptor-members.html +++ b/docs/d6/d03/classshaka_1_1media_1_1AesCbcDecryptor-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d09/aes__pattern__cryptor_8h_source.html b/docs/d6/d09/aes__pattern__cryptor_8h_source.html index 75c7efadeb..f1445de9c1 100644 --- a/docs/d6/d09/aes__pattern__cryptor_8h_source.html +++ b/docs/d6/d09/aes__pattern__cryptor_8h_source.html @@ -149,7 +149,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 fdd3f409a2..9cb1ef691a 100644 --- a/docs/d6/d16/text__stream__info_8cc_source.html +++ b/docs/d6/d16/text__stream__info_8cc_source.html @@ -124,7 +124,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 2064ee39a4..c043450634 100644 --- a/docs/d6/d17/es__parser__h264_8cc_source.html +++ b/docs/d6/d17/es__parser__h264_8cc_source.html @@ -258,7 +258,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d1a/structshaka_1_1media_1_1mp4_1_1MovieHeader.html b/docs/d6/d1a/structshaka_1_1media_1_1mp4_1_1MovieHeader.html index 347b273950..fa2d64f8b3 100644 --- a/docs/d6/d1a/structshaka_1_1media_1_1mp4_1_1MovieHeader.html +++ b/docs/d6/d1a/structshaka_1_1media_1_1mp4_1_1MovieHeader.html @@ -200,7 +200,7 @@ Additional Inherited Members diff --git a/docs/d6/d1a/ts__packet__writer__util_8cc_source.html b/docs/d6/d1a/ts__packet__writer__util_8cc_source.html index 5d0864f0fe..5d9525ae9d 100644 --- a/docs/d6/d1a/ts__packet__writer__util_8cc_source.html +++ b/docs/d6/d1a/ts__packet__writer__util_8cc_source.html @@ -255,7 +255,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html b/docs/d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html index cb4d43590b..7dd7c4dd68 100644 --- a/docs/d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html +++ b/docs/d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html @@ -146,7 +146,7 @@ bool is_encrypted diff --git a/docs/d6/d2e/mpd__notifier__util_8cc_source.html b/docs/d6/d2e/mpd__notifier__util_8cc_source.html index 6529b29259..69e90058b1 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/d32/classshaka_1_1media_1_1TextTrack-members.html b/docs/d6/d32/classshaka_1_1media_1_1TextTrack-members.html index 97d55e31ba..8ccc16b465 100644 --- a/docs/d6/d32/classshaka_1_1media_1_1TextTrack-members.html +++ b/docs/d6/d32/classshaka_1_1media_1_1TextTrack-members.html @@ -98,7 +98,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 db4958d366..bccf27f70a 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/d3b/chunk__info__iterator_8cc_source.html b/docs/d6/d3b/chunk__info__iterator_8cc_source.html index 1603501aa8..56c6c3a570 100644 --- a/docs/d6/d3b/chunk__info__iterator_8cc_source.html +++ b/docs/d6/d3b/chunk__info__iterator_8cc_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d41/encrypting__fragmenter_8cc_source.html b/docs/d6/d41/encrypting__fragmenter_8cc_source.html index 9a630e6920..1a18a95622 100644 --- a/docs/d6/d41/encrypting__fragmenter_8cc_source.html +++ b/docs/d6/d41/encrypting__fragmenter_8cc_source.html @@ -499,7 +499,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 9bfefdc7bd..f177b5527e 100644 --- a/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html +++ b/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html @@ -188,7 +188,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 8248dfa874..a3660617bb 100644 --- a/docs/d6/d55/aes__cryptor_8cc_source.html +++ b/docs/d6/d55/aes__cryptor_8cc_source.html @@ -231,7 +231,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html b/docs/d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html index 0439de0f35..6f70715dd0 100644 --- a/docs/d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html +++ b/docs/d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html @@ -244,7 +244,7 @@ void  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 8f2983a38e..a983ef45ca 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/d60/classshaka_1_1media_1_1VPCodecConfigurationRecord-members.html b/docs/d6/d60/classshaka_1_1media_1_1VPCodecConfigurationRecord-members.html index 18b924fdfe..36e0e45dce 100644 --- a/docs/d6/d60/classshaka_1_1media_1_1VPCodecConfigurationRecord-members.html +++ b/docs/d6/d60/classshaka_1_1media_1_1VPCodecConfigurationRecord-members.html @@ -134,7 +134,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 ce3f8f2d89..32e0cf91f8 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/d6e/ts__section__pes_8cc_source.html b/docs/d6/d6e/ts__section__pes_8cc_source.html index 69a136f7d3..ffdd740ddc 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 07553d51e2..fd7bdaea0e 100644 --- a/docs/d6/d71/scoped__xml__ptr_8h_source.html +++ b/docs/d6/d71/scoped__xml__ptr_8h_source.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 9c21bc7410..bdfee34bf1 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/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html b/docs/d6/d79/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html index 11e95c4997..cb5f8c15ff 100644 --- a/docs/d6/d79/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html +++ b/docs/d6/d79/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d6/d7b/webm__tracks__parser_8h_source.html b/docs/d6/d7b/webm__tracks__parser_8h_source.html index a682e5643f..9dc590092a 100644 --- a/docs/d6/d7b/webm__tracks__parser_8h_source.html +++ b/docs/d6/d7b/webm__tracks__parser_8h_source.html @@ -201,7 +201,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d7c/structshaka_1_1media_1_1mp4_1_1AC3Specific-members.html b/docs/d6/d7c/structshaka_1_1media_1_1mp4_1_1AC3Specific-members.html index 6cf941210d..3063b958ba 100644 --- a/docs/d6/d7c/structshaka_1_1media_1_1mp4_1_1AC3Specific-members.html +++ b/docs/d6/d7c/structshaka_1_1media_1_1mp4_1_1AC3Specific-members.html @@ -109,7 +109,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 7e8e253d59..70b199dd22 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 66183a0a9d..e7b3852f74 100644 --- a/docs/d6/d8a/vp9__parser_8cc_source.html +++ b/docs/d6/d8a/vp9__parser_8cc_source.html @@ -660,7 +660,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d8f/classshaka_1_1xml_1_1RepresentationBaseXmlNode-members.html b/docs/d6/d8f/classshaka_1_1xml_1_1RepresentationBaseXmlNode-members.html index 5a20d239a9..e6d6885cba 100644 --- a/docs/d6/d8f/classshaka_1_1xml_1_1RepresentationBaseXmlNode-members.html +++ b/docs/d6/d8f/classshaka_1_1xml_1_1RepresentationBaseXmlNode-members.html @@ -111,7 +111,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 869c31573e..c669b1b6b1 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/d9f/hls__flags_8cc_source.html b/docs/d6/d9f/hls__flags_8cc_source.html index 01705a42ea..73377c192a 100644 --- a/docs/d6/d9f/hls__flags_8cc_source.html +++ b/docs/d6/d9f/hls__flags_8cc_source.html @@ -107,7 +107,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 cd5a33bbd3..9593b27bee 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/mpd__builder_8h_source.html b/docs/d6/da3/mpd__builder_8h_source.html index ff459019ee..64b6b6d70e 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/da4/classshaka_1_1media_1_1AVCDecoderConfigurationRecord-members.html b/docs/d6/da4/classshaka_1_1media_1_1AVCDecoderConfigurationRecord-members.html index df81cff1b2..88af06a5c2 100644 --- a/docs/d6/da4/classshaka_1_1media_1_1AVCDecoderConfigurationRecord-members.html +++ b/docs/d6/da4/classshaka_1_1media_1_1AVCDecoderConfigurationRecord-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/da6/structshaka_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html b/docs/d6/da6/structshaka_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html index 8f9fcf6457..e7a61318f4 100644 --- a/docs/d6/da6/structshaka_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html +++ b/docs/d6/da6/structshaka_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/da9/classshaka_1_1media_1_1BitReader.html b/docs/d6/da9/classshaka_1_1media_1_1BitReader.html index d87ba5f7ab..b5423395ca 100644 --- a/docs/d6/da9/classshaka_1_1media_1_1BitReader.html +++ b/docs/d6/da9/classshaka_1_1media_1_1BitReader.html @@ -365,7 +365,7 @@ template<typename T > diff --git a/docs/d6/daa/structshaka_1_1media_1_1mp4_1_1VTTCueBox.html b/docs/d6/daa/structshaka_1_1media_1_1mp4_1_1VTTCueBox.html index 1f1715372d..345a46e82b 100644 --- a/docs/d6/daa/structshaka_1_1media_1_1mp4_1_1VTTCueBox.html +++ b/docs/d6/daa/structshaka_1_1media_1_1mp4_1_1VTTCueBox.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d6/db1/classshaka_1_1media_1_1MediaStream-members.html b/docs/d6/db1/classshaka_1_1media_1_1MediaStream-members.html index 3b6e83ae85..6ac0038be8 100644 --- a/docs/d6/db1/classshaka_1_1media_1_1MediaStream-members.html +++ b/docs/d6/db1/classshaka_1_1media_1_1MediaStream-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html b/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html index 7ded5202be..b2f9220a83 100644 --- a/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html +++ b/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html @@ -429,7 +429,7 @@ void set_language (con diff --git a/docs/d6/db1/structshaka_1_1media_1_1VideoStreamInfoParameters-members.html b/docs/d6/db1/structshaka_1_1media_1_1VideoStreamInfoParameters-members.html index 9d79508b5f..3a2463e6eb 100644 --- a/docs/d6/db1/structshaka_1_1media_1_1VideoStreamInfoParameters-members.html +++ b/docs/d6/db1/structshaka_1_1media_1_1VideoStreamInfoParameters-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dc7/classshaka_1_1media_1_1mp2t_1_1EsParserH26x-members.html b/docs/d6/dc7/classshaka_1_1media_1_1mp2t_1_1EsParserH26x-members.html index 9cc4747897..dcb4470f7e 100644 --- a/docs/d6/dc7/classshaka_1_1media_1_1mp2t_1_1EsParserH26x-members.html +++ b/docs/d6/dc7/classshaka_1_1media_1_1mp2t_1_1EsParserH26x-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dc8/mkv__writer_8cc_source.html b/docs/d6/dc8/mkv__writer_8cc_source.html index 739e1c3845..0b6ceb7820 100644 --- a/docs/d6/dc8/mkv__writer_8cc_source.html +++ b/docs/d6/dc8/mkv__writer_8cc_source.html @@ -195,7 +195,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html b/docs/d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html index d83164a1be..98b2207d23 100644 --- a/docs/d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html +++ b/docs/d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html @@ -250,7 +250,7 @@ std::vector< diff --git a/docs/d6/dcc/classshaka_1_1media_1_1VP9Parser-members.html b/docs/d6/dcc/classshaka_1_1media_1_1VP9Parser-members.html index c4236b761a..ea5de3ea2f 100644 --- a/docs/d6/dcc/classshaka_1_1media_1_1VP9Parser-members.html +++ b/docs/d6/dcc/classshaka_1_1media_1_1VP9Parser-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dce/structshaka_1_1media_1_1mp4_1_1SegmentReference-members.html b/docs/d6/dce/structshaka_1_1media_1_1mp4_1_1SegmentReference-members.html index b96390b3d3..6fb2ffe3e5 100644 --- a/docs/d6/dce/structshaka_1_1media_1_1mp4_1_1SegmentReference-members.html +++ b/docs/d6/dce/structshaka_1_1media_1_1mp4_1_1SegmentReference-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dcf/classshaka_1_1media_1_1mp2t_1_1EsParserAdts.html b/docs/d6/dcf/classshaka_1_1media_1_1mp2t_1_1EsParserAdts.html index abfeace8d9..cfb82150de 100644 --- a/docs/d6/dcf/classshaka_1_1media_1_1mp2t_1_1EsParserAdts.html +++ b/docs/d6/dcf/classshaka_1_1media_1_1mp2t_1_1EsParserAdts.html @@ -148,7 +148,7 @@ const scoped_refptr
diff --git a/docs/d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html b/docs/d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html index 7c4f7cea84..3174894db5 100644 --- a/docs/d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html +++ b/docs/d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html @@ -127,7 +127,7 @@ union { diff --git a/docs/d6/dde/structshaka_1_1media_1_1H265VuiParameters-members.html b/docs/d6/dde/structshaka_1_1media_1_1H265VuiParameters-members.html index e90b3463ec..1c92c94d3f 100644 --- a/docs/d6/dde/structshaka_1_1media_1_1H265VuiParameters-members.html +++ b/docs/d6/dde/structshaka_1_1media_1_1H265VuiParameters-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de4/structshaka_1_1media_1_1mp4_1_1CueTimeBox-members.html b/docs/d6/de4/structshaka_1_1media_1_1mp4_1_1CueTimeBox-members.html index f8fef625d6..5e17400a6b 100644 --- a/docs/d6/de4/structshaka_1_1media_1_1mp4_1_1CueTimeBox-members.html +++ b/docs/d6/de4/structshaka_1_1media_1_1mp4_1_1CueTimeBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de7/structshaka_1_1media_1_1VPxFrameInfo-members.html b/docs/d6/de7/structshaka_1_1media_1_1VPxFrameInfo-members.html index 3b3c5909e7..0c705df711 100644 --- a/docs/d6/de7/structshaka_1_1media_1_1VPxFrameInfo-members.html +++ b/docs/d6/de7/structshaka_1_1media_1_1VPxFrameInfo-members.html @@ -101,7 +101,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 747e0b4ba9..867cbe8432 100644 --- a/docs/d6/de8/local__file_8cc_source.html +++ b/docs/d6/de8/local__file_8cc_source.html @@ -211,7 +211,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 e37c44c5a8..1da774363c 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 2258647cbd..13e3de28eb 100644 --- a/docs/d6/de9/ts__segmenter_8cc_source.html +++ b/docs/d6/de9/ts__segmenter_8cc_source.html @@ -313,7 +313,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/ded/ts__packet_8h_source.html b/docs/d6/ded/ts__packet_8h_source.html index 0a5a2d9511..faca2960bd 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 0724cbe643..f63d3af27a 100644 --- a/docs/d6/def/sync__sample__iterator_8cc_source.html +++ b/docs/d6/def/sync__sample__iterator_8cc_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dff/classshaka_1_1media_1_1Nalu.html b/docs/d6/dff/classshaka_1_1media_1_1Nalu.html index aac0a88b56..371ee8dd41 100644 --- a/docs/d6/dff/classshaka_1_1media_1_1Nalu.html +++ b/docs/d6/dff/classshaka_1_1media_1_1Nalu.html @@ -240,7 +240,7 @@ bool can_start_access_unit diff --git a/docs/d7/d01/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription.html b/docs/d7/d01/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription.html index 67967fb64a..3d59f12d45 100644 --- a/docs/d7/d01/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription.html +++ b/docs/d7/d01/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription.html @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/d7/d07/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader.html b/docs/d7/d07/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader.html index 745d03b57b..32b70801ad 100644 --- a/docs/d7/d07/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader.html +++ b/docs/d7/d07/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader.html @@ -182,7 +182,7 @@ Additional Inherited Members 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 32a8daad27..d426500931 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/d12/media__parser_8h_source.html b/docs/d7/d12/media__parser_8h_source.html index ff9b00b902..ee69ef059a 100644 --- a/docs/d7/d12/media__parser_8h_source.html +++ b/docs/d7/d12/media__parser_8h_source.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d15/mpd__notifier_8h_source.html b/docs/d7/d15/mpd__notifier_8h_source.html index b514c741ad..6f877c11a8 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/d16/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry-members.html b/docs/d7/d16/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry-members.html index ea2ef53d0a..9f6e9c8fd5 100644 --- a/docs/d7/d16/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry-members.html +++ b/docs/d7/d16/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d22/libcrypto__threading_8h_source.html b/docs/d7/d22/libcrypto__threading_8h_source.html index feaef8bdf4..66d9c8ce8e 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/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html b/docs/d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html index 69e22b86c8..b49ad92a3a 100644 --- a/docs/d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html +++ b/docs/d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html @@ -177,7 +177,7 @@ Public Member Functions diff --git a/docs/d7/d29/structshaka_1_1media_1_1H265Sps-members.html b/docs/d7/d29/structshaka_1_1media_1_1H265Sps-members.html index eae918350a..891e683ca1 100644 --- a/docs/d7/d29/structshaka_1_1media_1_1H265Sps-members.html +++ b/docs/d7/d29/structshaka_1_1media_1_1H265Sps-members.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d29/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html b/docs/d7/d29/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html index d56f85f430..c92424c973 100644 --- a/docs/d7/d29/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html +++ b/docs/d7/d29/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d36/classshaka_1_1media_1_1ContentEncoding-members.html b/docs/d7/d36/classshaka_1_1media_1_1ContentEncoding-members.html index 714d32ea49..da6965f1f1 100644 --- a/docs/d7/d36/classshaka_1_1media_1_1ContentEncoding-members.html +++ b/docs/d7/d36/classshaka_1_1media_1_1ContentEncoding-members.html @@ -132,7 +132,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 66d81d220e..25b2ca061f 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/d42/structshaka_1_1media_1_1mp4_1_1SampleSize.html b/docs/d7/d42/structshaka_1_1media_1_1mp4_1_1SampleSize.html index 0aa758ddbe..0de7916c41 100644 --- a/docs/d7/d42/structshaka_1_1media_1_1mp4_1_1SampleSize.html +++ b/docs/d7/d42/structshaka_1_1media_1_1mp4_1_1SampleSize.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d7/d44/structshaka_1_1media_1_1mp4_1_1SampleEncryption-members.html b/docs/d7/d44/structshaka_1_1media_1_1mp4_1_1SampleEncryption-members.html index 0d8aba7972..dbd3669516 100644 --- a/docs/d7/d44/structshaka_1_1media_1_1mp4_1_1SampleEncryption-members.html +++ b/docs/d7/d44/structshaka_1_1media_1_1mp4_1_1SampleEncryption-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d46/classshaka_1_1media_1_1WebMListParser-members.html b/docs/d7/d46/classshaka_1_1media_1_1WebMListParser-members.html index c60d79fc3f..23dd899384 100644 --- a/docs/d7/d46/classshaka_1_1media_1_1WebMListParser-members.html +++ b/docs/d7/d46/classshaka_1_1media_1_1WebMListParser-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d54/classshaka_1_1media_1_1H26xByteToUnitStreamConverter-members.html b/docs/d7/d54/classshaka_1_1media_1_1H26xByteToUnitStreamConverter-members.html index d5b2db1b34..d81cc138cf 100644 --- a/docs/d7/d54/classshaka_1_1media_1_1H26xByteToUnitStreamConverter-members.html +++ b/docs/d7/d54/classshaka_1_1media_1_1H26xByteToUnitStreamConverter-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d59/classshaka_1_1media_1_1DecryptorSource.html b/docs/d7/d59/classshaka_1_1media_1_1DecryptorSource.html index 5f4212c3d9..9dbf0054e0 100644 --- a/docs/d7/d59/classshaka_1_1media_1_1DecryptorSource.html +++ b/docs/d7/d59/classshaka_1_1media_1_1DecryptorSource.html @@ -119,7 +119,7 @@ bool DecryptSampleBuffer diff --git a/docs/d7/d6d/classshaka_1_1media_1_1MediaSample.html b/docs/d7/d6d/classshaka_1_1media_1_1MediaSample.html index e410d7431b..d64cd49a67 100644 --- a/docs/d7/d6d/classshaka_1_1media_1_1MediaSample.html +++ b/docs/d7/d6d/classshaka_1_1media_1_1MediaSample.html @@ -411,7 +411,7 @@ class base::RefCountedThre diff --git a/docs/d7/d75/structshaka_1_1media_1_1mp4_1_1MediaHeader-members.html b/docs/d7/d75/structshaka_1_1media_1_1mp4_1_1MediaHeader-members.html index 8d82c6d661..af1d5807ee 100644 --- a/docs/d7/d75/structshaka_1_1media_1_1mp4_1_1MediaHeader-members.html +++ b/docs/d7/d75/structshaka_1_1media_1_1mp4_1_1MediaHeader-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d78/structshaka_1_1media_1_1H264SEIMessage-members.html b/docs/d7/d78/structshaka_1_1media_1_1H264SEIMessage-members.html index 425b6556ab..bc1aa6378a 100644 --- a/docs/d7/d78/structshaka_1_1media_1_1H264SEIMessage-members.html +++ b/docs/d7/d78/structshaka_1_1media_1_1H264SEIMessage-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d7a/classshaka_1_1media_1_1UdpFile.html b/docs/d7/d7a/classshaka_1_1media_1_1UdpFile.html index 6f664eb728..5bf1a31383 100644 --- a/docs/d7/d7a/classshaka_1_1media_1_1UdpFile.html +++ b/docs/d7/d7a/classshaka_1_1media_1_1UdpFile.html @@ -463,7 +463,7 @@ Additional Inherited Members diff --git a/docs/d7/d7c/vlog__flags_8h_source.html b/docs/d7/d7c/vlog__flags_8h_source.html index 7ad1847230..9ccc671869 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/d87/video__stream__info_8h_source.html b/docs/d7/d87/video__stream__info_8h_source.html index d09d06b3a0..982a53c75e 100644 --- a/docs/d7/d87/video__stream__info_8h_source.html +++ b/docs/d7/d87/video__stream__info_8h_source.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d9c/structshaka_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html b/docs/d7/d9c/structshaka_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html index d452665f36..f334ab9cc6 100644 --- a/docs/d7/d9c/structshaka_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html +++ b/docs/d7/d9c/structshaka_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html @@ -112,7 +112,7 @@ int delta_poc_msb_cycle_lt diff --git a/docs/d7/d9d/progress__listener_8h_source.html b/docs/d7/d9d/progress__listener_8h_source.html index f7ca37e2cb..b5c7aebcc4 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 efc8a5ef40..9465e9eaec 100644 --- a/docs/d7/da4/track__run__iterator_8h_source.html +++ b/docs/d7/da4/track__run__iterator_8h_source.html @@ -195,7 +195,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dae/structshaka_1_1media_1_1mp4_1_1MediaData.html b/docs/d7/dae/structshaka_1_1media_1_1mp4_1_1MediaData.html index 4fc0173545..37a47b4f7e 100644 --- a/docs/d7/dae/structshaka_1_1media_1_1mp4_1_1MediaData.html +++ b/docs/d7/dae/structshaka_1_1media_1_1mp4_1_1MediaData.html @@ -173,7 +173,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 8d5ed7df29..e3eea29a7b 100644 --- a/docs/d7/db0/mpd__writer_8h_source.html +++ b/docs/d7/db0/mpd__writer_8h_source.html @@ -183,7 +183,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/db7/structshaka_1_1media_1_1mp4_1_1SampleToChunk-members.html b/docs/d7/db7/structshaka_1_1media_1_1mp4_1_1SampleToChunk-members.html index 093385cbed..0a5a8caaf1 100644 --- a/docs/d7/db7/structshaka_1_1media_1_1mp4_1_1SampleToChunk-members.html +++ b/docs/d7/db7/structshaka_1_1media_1_1mp4_1_1SampleToChunk-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dc3/structshaka_1_1media_1_1mp4_1_1TextSampleEntry.html b/docs/d7/dc3/structshaka_1_1media_1_1mp4_1_1TextSampleEntry.html index 19fb1db9d7..386bb8b5df 100644 --- a/docs/d7/dc3/structshaka_1_1media_1_1mp4_1_1TextSampleEntry.html +++ b/docs/d7/dc3/structshaka_1_1media_1_1mp4_1_1TextSampleEntry.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d7/dc6/byte__queue_8h_source.html b/docs/d7/dc6/byte__queue_8h_source.html index e03f6c0258..03cf27d00b 100644 --- a/docs/d7/dc6/byte__queue_8h_source.html +++ b/docs/d7/dc6/byte__queue_8h_source.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd0/mpd__notifier__util_8h_source.html b/docs/d7/dd0/mpd__notifier__util_8h_source.html index 5796584be6..819808a3ac 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/dd4/request__signer_8h_source.html b/docs/d7/dd4/request__signer_8h_source.html index 4ae9800221..ab1bed1a21 100644 --- a/docs/d7/dd4/request__signer_8h_source.html +++ b/docs/d7/dd4/request__signer_8h_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html b/docs/d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html index 8eb5cb9df4..bc744f5d96 100644 --- a/docs/d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html +++ b/docs/d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html @@ -156,7 +156,7 @@ track_id, const scoped_refptr

Implements shaka::media::MediaParser.

-

Definition at line 117 of file mp4_media_parser.cc.

+

Definition at line 118 of file mp4_media_parser.cc.

@@ -208,7 +208,7 @@ track_id, const scoped_refptr

Implements shaka::media::MediaParser.

-

Definition at line 94 of file mp4_media_parser.cc.

+

Definition at line 95 of file mp4_media_parser.cc.

@@ -234,7 +234,7 @@ track_id, const scoped_refptr
Returns
true if successful, false otherwise.
-

Definition at line 158 of file mp4_media_parser.cc.

+

Definition at line 159 of file mp4_media_parser.cc.

@@ -274,7 +274,7 @@ track_id, const scoped_refptr

Implements shaka::media::MediaParser.

-

Definition at line 124 of file mp4_media_parser.cc.

+

Definition at line 125 of file mp4_media_parser.cc.

@@ -285,7 +285,7 @@ track_id, const scoped_refptr
diff --git a/docs/d7/dd6/key__source_8cc_source.html b/docs/d7/dd6/key__source_8cc_source.html index 54ff3430ce..c9e83dc76d 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/dda/classshaka_1_1media_1_1ByteQueue.html b/docs/d7/dda/classshaka_1_1media_1_1ByteQueue.html index 951fc09df2..7469e486f0 100644 --- a/docs/d7/dda/classshaka_1_1media_1_1ByteQueue.html +++ b/docs/d7/dda/classshaka_1_1media_1_1ByteQueue.html @@ -177,7 +177,7 @@ void  diff --git a/docs/d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html b/docs/d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html index 3003eb5c99..0d82e3c713 100644 --- a/docs/d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html +++ b/docs/d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html b/docs/d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html index 36062c7cf1..93efe3c014 100644 --- a/docs/d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html +++ b/docs/d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html @@ -311,7 +311,7 @@ KeyFetcher implementation overrides. diff --git a/docs/d7/de0/structshaka_1_1media_1_1mp4_1_1SampleToGroupEntry.html b/docs/d7/de0/structshaka_1_1media_1_1mp4_1_1SampleToGroupEntry.html index 3fc95b8fcb..0b9e8041ff 100644 --- a/docs/d7/de0/structshaka_1_1media_1_1mp4_1_1SampleToGroupEntry.html +++ b/docs/d7/de0/structshaka_1_1media_1_1mp4_1_1SampleToGroupEntry.html @@ -120,7 +120,7 @@ uint32_t group_description 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 ee2fe2d2ae..8dc20d4edd 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/dee/mpd__generator_8cc_source.html b/docs/d7/dee/mpd__generator_8cc_source.html index fc34765e86..5a549cf21c 100644 --- a/docs/d7/dee/mpd__generator_8cc_source.html +++ b/docs/d7/dee/mpd__generator_8cc_source.html @@ -228,7 +228,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 52c0dcea33..5246ac08e6 100644 --- a/docs/d7/def/mp4__media__parser_8cc_source.html +++ b/docs/d7/def/mp4__media__parser_8cc_source.html @@ -93,769 +93,770 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
4 
5 #include "packager/media/formats/mp4/mp4_media_parser.h"
6 
-
7 #include <limits>
-
8 
-
9 #include "packager/base/callback.h"
-
10 #include "packager/base/callback_helpers.h"
-
11 #include "packager/base/logging.h"
-
12 #include "packager/base/memory/ref_counted.h"
-
13 #include "packager/base/strings/string_number_conversions.h"
-
14 #include "packager/media/base/audio_stream_info.h"
-
15 #include "packager/media/base/buffer_reader.h"
-
16 #include "packager/media/base/decrypt_config.h"
-
17 #include "packager/media/base/key_source.h"
-
18 #include "packager/media/base/macros.h"
-
19 #include "packager/media/base/media_sample.h"
-
20 #include "packager/media/base/rcheck.h"
-
21 #include "packager/media/base/video_stream_info.h"
-
22 #include "packager/media/codecs/avc_decoder_configuration_record.h"
-
23 #include "packager/media/codecs/es_descriptor.h"
-
24 #include "packager/media/codecs/hevc_decoder_configuration_record.h"
-
25 #include "packager/media/codecs/vp_codec_configuration_record.h"
-
26 #include "packager/media/file/file.h"
-
27 #include "packager/media/file/file_closer.h"
-
28 #include "packager/media/formats/mp4/box_definitions.h"
-
29 #include "packager/media/formats/mp4/box_reader.h"
-
30 #include "packager/media/formats/mp4/track_run_iterator.h"
-
31 
-
32 namespace shaka {
-
33 namespace media {
-
34 namespace mp4 {
-
35 namespace {
-
36 
-
37 uint64_t Rescale(uint64_t time_in_old_scale,
-
38  uint32_t old_scale,
-
39  uint32_t new_scale) {
-
40  return (static_cast<double>(time_in_old_scale) / old_scale) * new_scale;
-
41 }
-
42 
-
43 Codec FourCCToCodec(FourCC fourcc) {
-
44  switch (fourcc) {
-
45  case FOURCC_avc1:
-
46  return kCodecH264;
-
47  case FOURCC_hev1:
-
48  return kCodecHEV1;
-
49  case FOURCC_hvc1:
-
50  return kCodecHVC1;
-
51  case FOURCC_vp08:
-
52  return kCodecVP8;
-
53  case FOURCC_vp09:
-
54  return kCodecVP9;
-
55  case FOURCC_vp10:
-
56  return kCodecVP10;
-
57  case FOURCC_Opus:
-
58  return kCodecOpus;
-
59  case FOURCC_dtsc:
-
60  return kCodecDTSC;
-
61  case FOURCC_dtsh:
-
62  return kCodecDTSH;
-
63  case FOURCC_dtsl:
-
64  return kCodecDTSL;
-
65  case FOURCC_dtse:
-
66  return kCodecDTSE;
-
67  case FOURCC_dtsp:
-
68  return kCodecDTSP;
-
69  case FOURCC_dtsm:
-
70  return kCodecDTSM;
-
71  case FOURCC_ac_3:
-
72  return kCodecAC3;
-
73  case FOURCC_ec_3:
-
74  return kCodecEAC3;
-
75  default:
-
76  return kUnknownCodec;
-
77  }
-
78 }
-
79 
-
80 // Default DTS audio number of channels for 5.1 channel layout.
-
81 const uint8_t kDtsAudioNumChannels = 6;
-
82 const uint64_t kNanosecondsPerSecond = 1000000000ull;
-
83 
-
84 } // namespace
-
85 
-
86 MP4MediaParser::MP4MediaParser()
-
87  : state_(kWaitingForInit),
-
88  decryption_key_source_(NULL),
-
89  moof_head_(0),
-
90  mdat_tail_(0) {}
-
91 
-
92 MP4MediaParser::~MP4MediaParser() {}
-
93 
-
94 void MP4MediaParser::Init(const InitCB& init_cb,
-
95  const NewSampleCB& new_sample_cb,
-
96  KeySource* decryption_key_source) {
-
97  DCHECK_EQ(state_, kWaitingForInit);
-
98  DCHECK(init_cb_.is_null());
-
99  DCHECK(!init_cb.is_null());
-
100  DCHECK(!new_sample_cb.is_null());
-
101 
-
102  ChangeState(kParsingBoxes);
-
103  init_cb_ = init_cb;
-
104  new_sample_cb_ = new_sample_cb;
-
105  decryption_key_source_ = decryption_key_source;
-
106  if (decryption_key_source)
-
107  decryptor_source_.reset(new DecryptorSource(decryption_key_source));
-
108 }
-
109 
-
110 void MP4MediaParser::Reset() {
-
111  queue_.Reset();
-
112  runs_.reset();
-
113  moof_head_ = 0;
-
114  mdat_tail_ = 0;
-
115 }
-
116 
- -
118  DCHECK_NE(state_, kWaitingForInit);
-
119  Reset();
-
120  ChangeState(kParsingBoxes);
-
121  return true;
-
122 }
-
123 
-
124 bool MP4MediaParser::Parse(const uint8_t* buf, int size) {
-
125  DCHECK_NE(state_, kWaitingForInit);
-
126 
-
127  if (state_ == kError)
-
128  return false;
-
129 
-
130  queue_.Push(buf, size);
-
131 
-
132  bool result, err = false;
-
133 
-
134  do {
-
135  if (state_ == kParsingBoxes) {
-
136  result = ParseBox(&err);
-
137  } else {
-
138  DCHECK_EQ(kEmittingSamples, state_);
-
139  result = EnqueueSample(&err);
-
140  if (result) {
-
141  int64_t max_clear = runs_->GetMaxClearOffset() + moof_head_;
-
142  err = !ReadAndDiscardMDATsUntil(max_clear);
-
143  }
-
144  }
-
145  } while (result && !err);
-
146 
-
147  if (err) {
-
148  DLOG(ERROR) << "Error while parsing MP4";
-
149  moov_.reset();
-
150  Reset();
-
151  ChangeState(kError);
-
152  return false;
-
153  }
-
154 
-
155  return true;
-
156 }
-
157 
-
158 bool MP4MediaParser::LoadMoov(const std::string& file_path) {
-
159  std::unique_ptr<File, FileCloser> file(
-
160  File::OpenWithNoBuffering(file_path.c_str(), "r"));
-
161  if (!file) {
-
162  LOG(ERROR) << "Unable to open media file '" << file_path << "'";
-
163  return false;
-
164  }
-
165  if (!file->Seek(0)) {
-
166  LOG(WARNING) << "Filesystem does not support seeking on file '" << file_path
-
167  << "'";
-
168  return false;
-
169  }
-
170 
-
171  uint64_t file_position(0);
-
172  bool mdat_seen(false);
-
173  while (true) {
-
174  const uint32_t kBoxHeaderReadSize(16);
-
175  std::vector<uint8_t> buffer(kBoxHeaderReadSize);
-
176  int64_t bytes_read = file->Read(&buffer[0], kBoxHeaderReadSize);
-
177  if (bytes_read == 0) {
-
178  LOG(ERROR) << "Could not find 'moov' box in file '" << file_path << "'";
-
179  return false;
-
180  }
-
181  if (bytes_read < kBoxHeaderReadSize) {
-
182  LOG(ERROR) << "Error reading media file '" << file_path << "'";
-
183  return false;
-
184  }
-
185  uint64_t box_size;
-
186  FourCC box_type;
-
187  bool err;
-
188  if (!BoxReader::StartBox(&buffer[0], kBoxHeaderReadSize, &box_type,
-
189  &box_size, &err)) {
-
190  LOG(ERROR) << "Could not start box from file '" << file_path << "'";
-
191  return false;
-
192  }
-
193  if (box_type == FOURCC_mdat) {
-
194  mdat_seen = true;
-
195  } else if (box_type == FOURCC_moov) {
-
196  if (!mdat_seen) {
-
197  // 'moov' is before 'mdat'. Nothing to do.
-
198  break;
-
199  }
-
200  // 'mdat' before 'moov'. Read and parse 'moov'.
-
201  if (!Parse(&buffer[0], bytes_read)) {
-
202  LOG(ERROR) << "Error parsing mp4 file '" << file_path << "'";
-
203  return false;
-
204  }
-
205  uint64_t bytes_to_read = box_size - bytes_read;
-
206  buffer.resize(bytes_to_read);
-
207  while (bytes_to_read > 0) {
-
208  bytes_read = file->Read(&buffer[0], bytes_to_read);
-
209  if (bytes_read <= 0) {
-
210  LOG(ERROR) << "Error reading 'moov' contents from file '" << file_path
-
211  << "'";
-
212  return false;
-
213  }
-
214  if (!Parse(&buffer[0], bytes_read)) {
-
215  LOG(ERROR) << "Error parsing mp4 file '" << file_path << "'";
-
216  return false;
-
217  }
-
218  bytes_to_read -= bytes_read;
-
219  }
-
220  queue_.Reset(); // So that we don't need to adjust data offsets.
-
221  mdat_tail_ = 0; // So it will skip boxes until mdat.
-
222  break; // Done.
-
223  }
-
224  file_position += box_size;
-
225  if (!file->Seek(file_position)) {
-
226  LOG(ERROR) << "Error skipping box in mp4 file '" << file_path << "'";
-
227  return false;
-
228  }
-
229  }
-
230  return true;
-
231 }
-
232 
-
233 bool MP4MediaParser::ParseBox(bool* err) {
-
234  const uint8_t* buf;
-
235  int size;
-
236  queue_.Peek(&buf, &size);
-
237  if (!size)
-
238  return false;
-
239 
-
240  std::unique_ptr<BoxReader> reader(BoxReader::ReadBox(buf, size, err));
-
241  if (reader.get() == NULL)
-
242  return false;
-
243 
-
244  if (reader->type() == FOURCC_mdat) {
-
245  // The code ends up here only if a MOOV box is not yet seen.
-
246  DCHECK(!moov_);
-
247 
-
248  NOTIMPLEMENTED() << " Files with MDAT before MOOV is not supported yet.";
-
249  *err = true;
-
250  return false;
-
251  }
-
252 
-
253  // Set up mdat offset for ReadMDATsUntil().
-
254  mdat_tail_ = queue_.head() + reader->size();
-
255 
-
256  if (reader->type() == FOURCC_moov) {
-
257  *err = !ParseMoov(reader.get());
-
258  } else if (reader->type() == FOURCC_moof) {
-
259  moof_head_ = queue_.head();
-
260  *err = !ParseMoof(reader.get());
-
261 
-
262  // Return early to avoid evicting 'moof' data from queue. Auxiliary info may
-
263  // be located anywhere in the file, including inside the 'moof' itself.
-
264  // (Since 'default-base-is-moof' is mandated, no data references can come
-
265  // before the head of the 'moof', so keeping this box around is sufficient.)
-
266  return !(*err);
-
267  } else {
-
268  VLOG(2) << "Skipping top-level box: " << FourCCToString(reader->type());
-
269  }
-
270 
-
271  queue_.Pop(reader->size());
-
272  return !(*err);
-
273 }
-
274 
-
275 bool MP4MediaParser::ParseMoov(BoxReader* reader) {
-
276  if (moov_)
-
277  return true; // Already parsed the 'moov' box.
-
278 
-
279  moov_.reset(new Movie);
-
280  RCHECK(moov_->Parse(reader));
-
281  runs_.reset();
-
282 
-
283  std::vector<scoped_refptr<StreamInfo> > streams;
-
284 
-
285  for (std::vector<Track>::const_iterator track = moov_->tracks.begin();
-
286  track != moov_->tracks.end(); ++track) {
-
287  const uint32_t timescale = track->media.header.timescale;
-
288 
-
289  // Calculate duration (based on timescale).
-
290  uint64_t duration = 0;
-
291  if (track->media.header.duration > 0) {
-
292  duration = track->media.header.duration;
-
293  } else if (moov_->extends.header.fragment_duration > 0) {
-
294  DCHECK(moov_->header.timescale != 0);
-
295  duration = Rescale(moov_->extends.header.fragment_duration,
-
296  moov_->header.timescale,
-
297  timescale);
-
298  } else if (moov_->header.duration > 0 &&
-
299  moov_->header.duration != std::numeric_limits<uint64_t>::max()) {
-
300  DCHECK(moov_->header.timescale != 0);
-
301  duration =
-
302  Rescale(moov_->header.duration, moov_->header.timescale, timescale);
-
303  }
-
304 
-
305  const SampleDescription& samp_descr =
-
306  track->media.information.sample_table.description;
-
307 
-
308  size_t desc_idx = 0;
-
309 
-
310  // Read sample description index from mvex if it exists otherwise read
-
311  // from the first entry in Sample To Chunk box.
-
312  if (moov_->extends.tracks.size() > 0) {
-
313  for (size_t t = 0; t < moov_->extends.tracks.size(); t++) {
-
314  const TrackExtends& trex = moov_->extends.tracks[t];
-
315  if (trex.track_id == track->header.track_id) {
-
316  desc_idx = trex.default_sample_description_index;
-
317  break;
-
318  }
-
319  }
-
320  } else {
-
321  const std::vector<ChunkInfo>& chunk_info =
-
322  track->media.information.sample_table.sample_to_chunk.chunk_info;
-
323  RCHECK(chunk_info.size() > 0);
-
324  desc_idx = chunk_info[0].sample_description_index;
-
325  }
-
326  RCHECK(desc_idx > 0);
-
327  desc_idx -= 1; // BMFF descriptor index is one-based
-
328 
-
329  if (samp_descr.type == kAudio) {
-
330  RCHECK(!samp_descr.audio_entries.empty());
-
331 
-
332  // It is not uncommon to find otherwise-valid files with incorrect sample
-
333  // description indices, so we fail gracefully in that case.
-
334  if (desc_idx >= samp_descr.audio_entries.size())
-
335  desc_idx = 0;
-
336 
-
337  const AudioSampleEntry& entry = samp_descr.audio_entries[desc_idx];
-
338  const FourCC actual_format = entry.GetActualFormat();
-
339  Codec codec = FourCCToCodec(actual_format);
-
340  uint8_t num_channels = 0;
-
341  uint32_t sampling_frequency = 0;
-
342  uint64_t codec_delay_ns = 0;
-
343  uint8_t audio_object_type = 0;
-
344  uint32_t max_bitrate = 0;
-
345  uint32_t avg_bitrate = 0;
-
346  std::vector<uint8_t> codec_config;
-
347 
-
348  switch (actual_format) {
-
349  case FOURCC_mp4a:
-
350  // Check if it is MPEG4 AAC defined in ISO 14496 Part 3 or
-
351  // supported MPEG2 AAC variants.
-
352  if (entry.esds.es_descriptor.IsAAC()) {
-
353  codec = kCodecAAC;
-
354  const AACAudioSpecificConfig& aac_audio_specific_config =
-
355  entry.esds.aac_audio_specific_config;
-
356  num_channels = aac_audio_specific_config.num_channels();
-
357  sampling_frequency = aac_audio_specific_config.frequency();
-
358  audio_object_type = aac_audio_specific_config.audio_object_type();
-
359  codec_config = entry.esds.es_descriptor.decoder_specific_info();
-
360  break;
-
361  } else if (entry.esds.es_descriptor.IsDTS()) {
-
362  ObjectType audio_type = entry.esds.es_descriptor.object_type();
-
363  switch (audio_type) {
-
364  case kDTSC:
-
365  codec = kCodecDTSC;
-
366  break;
-
367  case kDTSE:
-
368  codec = kCodecDTSE;
-
369  break;
-
370  case kDTSH:
-
371  codec = kCodecDTSH;
-
372  break;
-
373  case kDTSL:
-
374  codec = kCodecDTSL;
-
375  break;
-
376  default:
-
377  LOG(ERROR) << "Unsupported audio type " << audio_type
-
378  << " in stsd box.";
-
379  return false;
-
380  }
-
381  num_channels = entry.esds.aac_audio_specific_config.num_channels();
-
382  // For dts audio in esds, current supported number of channels is 6
-
383  // as the only supported channel layout is 5.1.
-
384  if (num_channels != kDtsAudioNumChannels) {
-
385  LOG(ERROR) << "Unsupported channel count " << num_channels
-
386  << " for audio type " << audio_type << ".";
-
387  return false;
-
388  }
-
389  sampling_frequency = entry.samplerate;
-
390  max_bitrate = entry.esds.es_descriptor.max_bitrate();
-
391  avg_bitrate = entry.esds.es_descriptor.avg_bitrate();
-
392  } else {
-
393  LOG(ERROR) << "Unsupported audio format 0x" << std::hex
-
394  << actual_format << " in stsd box.";
-
395  return false;
-
396  }
-
397  break;
-
398  case FOURCC_dtsc:
-
399  FALLTHROUGH_INTENDED;
-
400  case FOURCC_dtsh:
-
401  FALLTHROUGH_INTENDED;
-
402  case FOURCC_dtsl:
-
403  FALLTHROUGH_INTENDED;
-
404  case FOURCC_dtse:
-
405  FALLTHROUGH_INTENDED;
-
406  case FOURCC_dtsm:
-
407  codec_config = entry.ddts.extra_data;
-
408  max_bitrate = entry.ddts.max_bitrate;
-
409  avg_bitrate = entry.ddts.avg_bitrate;
-
410  num_channels = entry.channelcount;
-
411  sampling_frequency = entry.samplerate;
-
412  break;
-
413  case FOURCC_ac_3:
-
414  codec_config = entry.dac3.data;
-
415  num_channels = entry.channelcount;
-
416  sampling_frequency = entry.samplerate;
-
417  break;
-
418  case FOURCC_ec_3:
-
419  codec_config = entry.dec3.data;
-
420  num_channels = entry.channelcount;
-
421  sampling_frequency = entry.samplerate;
-
422  break;
-
423  case FOURCC_Opus:
-
424  codec_config = entry.dops.opus_identification_header;
-
425  num_channels = entry.channelcount;
-
426  sampling_frequency = entry.samplerate;
-
427  RCHECK(sampling_frequency != 0);
-
428  codec_delay_ns =
-
429  entry.dops.preskip * kNanosecondsPerSecond / sampling_frequency;
-
430  break;
-
431  default:
-
432  LOG(ERROR) << "Unsupported audio format 0x" << std::hex
-
433  << actual_format << " in stsd box.";
-
434  return false;
-
435  }
-
436 
-
437  // Extract possible seek preroll.
-
438  uint64_t seek_preroll_ns = 0;
-
439  for (const auto& sample_group_description :
-
440  track->media.information.sample_table.sample_group_descriptions) {
-
441  if (sample_group_description.grouping_type != FOURCC_roll)
-
442  continue;
-
443  const auto& audio_roll_recovery_entries =
-
444  sample_group_description.audio_roll_recovery_entries;
-
445  if (audio_roll_recovery_entries.size() != 1) {
-
446  LOG(WARNING) << "Unexpected number of entries in "
-
447  "SampleGroupDescription table with grouping type "
-
448  "'roll'.";
-
449  break;
-
450  }
-
451  const int16_t roll_distance_in_samples =
-
452  audio_roll_recovery_entries[0].roll_distance;
-
453  if (roll_distance_in_samples < 0) {
-
454  RCHECK(sampling_frequency != 0);
-
455  seek_preroll_ns = kNanosecondsPerSecond *
-
456  (-roll_distance_in_samples) / sampling_frequency;
-
457  } else {
-
458  LOG(WARNING)
-
459  << "Roll distance is supposed to be negative, but seeing "
-
460  << roll_distance_in_samples;
-
461  }
-
462  break;
-
463  }
-
464 
-
465  const bool is_encrypted =
-
466  entry.sinf.info.track_encryption.default_is_protected == 1;
-
467  DVLOG(1) << "is_audio_track_encrypted_: " << is_encrypted;
-
468  streams.push_back(new AudioStreamInfo(
-
469  track->header.track_id, timescale, duration, codec,
-
470  AudioStreamInfo::GetCodecString(codec, audio_object_type),
-
471  codec_config.data(), codec_config.size(), entry.samplesize,
-
472  num_channels, sampling_frequency, seek_preroll_ns, codec_delay_ns,
-
473  max_bitrate, avg_bitrate, track->media.header.language.code,
-
474  is_encrypted));
-
475  }
-
476 
-
477  if (samp_descr.type == kVideo) {
-
478  RCHECK(!samp_descr.video_entries.empty());
-
479  if (desc_idx >= samp_descr.video_entries.size())
-
480  desc_idx = 0;
-
481  const VideoSampleEntry& entry = samp_descr.video_entries[desc_idx];
-
482 
-
483  uint32_t coded_width = entry.width;
-
484  uint32_t coded_height = entry.height;
-
485  uint32_t pixel_width = entry.pixel_aspect.h_spacing;
-
486  uint32_t pixel_height = entry.pixel_aspect.v_spacing;
-
487  if (pixel_width == 0 && pixel_height == 0) {
-
488  pixel_width = 1;
-
489  pixel_height = 1;
-
490  }
-
491  std::string codec_string;
-
492  uint8_t nalu_length_size = 0;
-
493 
-
494  const FourCC actual_format = entry.GetActualFormat();
-
495  const Codec video_codec = FourCCToCodec(actual_format);
-
496  switch (actual_format) {
-
497  case FOURCC_avc1: {
-
498  AVCDecoderConfigurationRecord avc_config;
-
499  if (!avc_config.Parse(entry.codec_configuration.data)) {
-
500  LOG(ERROR) << "Failed to parse avcc.";
-
501  return false;
-
502  }
-
503  codec_string = avc_config.GetCodecString();
-
504  nalu_length_size = avc_config.nalu_length_size();
-
505 
-
506  if (coded_width != avc_config.coded_width() ||
-
507  coded_height != avc_config.coded_height()) {
-
508  LOG(WARNING) << "Resolution in VisualSampleEntry (" << coded_width
-
509  << "," << coded_height
-
510  << ") does not match with resolution in "
-
511  "AVCDecoderConfigurationRecord ("
-
512  << avc_config.coded_width() << ","
-
513  << avc_config.coded_height()
-
514  << "). Use AVCDecoderConfigurationRecord.";
-
515  coded_width = avc_config.coded_width();
-
516  coded_height = avc_config.coded_height();
-
517  }
-
518 
-
519  if (pixel_width != avc_config.pixel_width() ||
-
520  pixel_height != avc_config.pixel_height()) {
-
521  LOG_IF(WARNING, pixel_width != 1 || pixel_height != 1)
-
522  << "Pixel aspect ratio in PASP box (" << pixel_width << ","
-
523  << pixel_height
-
524  << ") does not match with SAR in AVCDecoderConfigurationRecord "
-
525  "("
-
526  << avc_config.pixel_width() << "," << avc_config.pixel_height()
-
527  << "). Use AVCDecoderConfigurationRecord.";
-
528  pixel_width = avc_config.pixel_width();
-
529  pixel_height = avc_config.pixel_height();
-
530  }
-
531  break;
-
532  }
-
533  case FOURCC_hev1:
-
534  case FOURCC_hvc1: {
-
535  HEVCDecoderConfigurationRecord hevc_config;
-
536  if (!hevc_config.Parse(entry.codec_configuration.data)) {
-
537  LOG(ERROR) << "Failed to parse hevc.";
-
538  return false;
-
539  }
-
540  codec_string = hevc_config.GetCodecString(video_codec);
-
541  nalu_length_size = hevc_config.nalu_length_size();
-
542  break;
-
543  }
-
544  case FOURCC_vp08:
-
545  case FOURCC_vp09:
-
546  case FOURCC_vp10: {
-
547  VPCodecConfigurationRecord vp_config;
-
548  if (!vp_config.ParseMP4(entry.codec_configuration.data)) {
-
549  LOG(ERROR) << "Failed to parse vpcc.";
-
550  return false;
-
551  }
-
552  codec_string = vp_config.GetCodecString(video_codec);
-
553  break;
-
554  }
-
555  default:
-
556  LOG(ERROR) << "Unsupported video format "
-
557  << FourCCToString(actual_format) << " in stsd box.";
-
558  return false;
-
559  }
-
560 
-
561  const bool is_encrypted =
-
562  entry.sinf.info.track_encryption.default_is_protected == 1;
-
563  DVLOG(1) << "is_video_track_encrypted_: " << is_encrypted;
-
564  streams.push_back(new VideoStreamInfo(
-
565  track->header.track_id, timescale, duration, video_codec,
-
566  codec_string, entry.codec_configuration.data.data(),
-
567  entry.codec_configuration.data.size(), coded_width, coded_height,
-
568  pixel_width, pixel_height,
-
569  0, // trick_play_rate
-
570  nalu_length_size, track->media.header.language.code, is_encrypted));
-
571  }
-
572  }
-
573 
-
574  init_cb_.Run(streams);
-
575  if (!FetchKeysIfNecessary(moov_->pssh))
-
576  return false;
-
577  runs_.reset(new TrackRunIterator(moov_.get()));
-
578  RCHECK(runs_->Init());
-
579  ChangeState(kEmittingSamples);
-
580  return true;
-
581 }
-
582 
-
583 bool MP4MediaParser::ParseMoof(BoxReader* reader) {
-
584  // Must already have initialization segment.
-
585  RCHECK(moov_.get());
-
586  MovieFragment moof;
-
587  RCHECK(moof.Parse(reader));
-
588  if (!runs_)
-
589  runs_.reset(new TrackRunIterator(moov_.get()));
-
590  RCHECK(runs_->Init(moof));
-
591  if (!FetchKeysIfNecessary(moof.pssh))
-
592  return false;
-
593  ChangeState(kEmittingSamples);
-
594  return true;
-
595 }
-
596 
-
597 bool MP4MediaParser::FetchKeysIfNecessary(
-
598  const std::vector<ProtectionSystemSpecificHeader>& headers) {
-
599  if (headers.empty())
-
600  return true;
-
601 
-
602  // An error will be returned later if the samples need to be decrypted.
-
603  if (!decryption_key_source_)
-
604  return true;
-
605 
-
606  Status status;
-
607  for (std::vector<ProtectionSystemSpecificHeader>::const_iterator iter =
-
608  headers.begin(); iter != headers.end(); ++iter) {
-
609  status = decryption_key_source_->FetchKeys(iter->raw_box);
-
610  if (!status.ok()) {
-
611  // If there is an error, try using the next PSSH box and report if none
-
612  // work.
-
613  VLOG(1) << "Unable to fetch decryption keys: " << status
-
614  << ", trying the next PSSH box";
-
615  continue;
-
616  }
-
617  return true;
-
618  }
-
619 
-
620  if (!status.ok()) {
-
621  LOG(ERROR) << "Error fetching decryption keys: " << status;
-
622  return false;
-
623  }
-
624 
-
625  LOG(ERROR) << "No viable 'pssh' box found for content decryption.";
-
626  return false;
-
627 }
-
628 
-
629 bool MP4MediaParser::EnqueueSample(bool* err) {
-
630  if (!runs_->IsRunValid()) {
-
631  // Remain in kEnqueueingSamples state, discarding data, until the end of
-
632  // the current 'mdat' box has been appended to the queue.
-
633  if (!queue_.Trim(mdat_tail_))
-
634  return false;
-
635 
-
636  ChangeState(kParsingBoxes);
-
637  return true;
-
638  }
-
639 
-
640  if (!runs_->IsSampleValid()) {
-
641  runs_->AdvanceRun();
-
642  return true;
-
643  }
-
644 
-
645  DCHECK(!(*err));
-
646 
-
647  const uint8_t* buf;
-
648  int buf_size;
-
649  queue_.Peek(&buf, &buf_size);
-
650  if (!buf_size)
-
651  return false;
-
652 
-
653  // Skip this entire track if it is not audio nor video.
-
654  if (!runs_->is_audio() && !runs_->is_video())
-
655  runs_->AdvanceRun();
-
656 
-
657  // Attempt to cache the auxiliary information first. Aux info is usually
-
658  // placed in a contiguous block before the sample data, rather than being
-
659  // interleaved. If we didn't cache it, this would require that we retain the
-
660  // start of the segment buffer while reading samples. Aux info is typically
-
661  // quite small compared to sample data, so this pattern is useful on
-
662  // memory-constrained devices where the source buffer consumes a substantial
-
663  // portion of the total system memory.
-
664  if (runs_->AuxInfoNeedsToBeCached()) {
-
665  queue_.PeekAt(runs_->aux_info_offset() + moof_head_, &buf, &buf_size);
-
666  if (buf_size < runs_->aux_info_size())
-
667  return false;
-
668  *err = !runs_->CacheAuxInfo(buf, buf_size);
-
669  return !*err;
-
670  }
-
671 
-
672  int64_t sample_offset = runs_->sample_offset() + moof_head_;
-
673  queue_.PeekAt(sample_offset, &buf, &buf_size);
-
674  if (buf_size < runs_->sample_size()) {
-
675  if (sample_offset < queue_.head()) {
-
676  LOG(ERROR) << "Incorrect sample offset " << sample_offset
-
677  << " < " << queue_.head();
-
678  *err = true;
-
679  }
-
680  return false;
-
681  }
-
682 
-
683  scoped_refptr<MediaSample> stream_sample(MediaSample::CopyFrom(
-
684  buf, runs_->sample_size(), runs_->is_keyframe()));
-
685  if (runs_->is_encrypted()) {
-
686  if (!decryptor_source_) {
-
687  *err = true;
-
688  LOG(ERROR) << "Encrypted media sample encountered, but decryption is not "
-
689  "enabled";
-
690  return false;
-
691  }
-
692 
-
693  std::unique_ptr<DecryptConfig> decrypt_config = runs_->GetDecryptConfig();
-
694  if (!decrypt_config ||
-
695  !decryptor_source_->DecryptSampleBuffer(decrypt_config.get(),
-
696  stream_sample->writable_data(),
-
697  stream_sample->data_size())) {
-
698  *err = true;
-
699  LOG(ERROR) << "Cannot decrypt samples.";
-
700  return false;
-
701  }
-
702  }
-
703 
-
704  stream_sample->set_dts(runs_->dts());
-
705  stream_sample->set_pts(runs_->cts());
-
706  stream_sample->set_duration(runs_->duration());
-
707 
-
708  DVLOG(3) << "Pushing frame: "
-
709  << ", key=" << runs_->is_keyframe()
-
710  << ", dur=" << runs_->duration()
-
711  << ", dts=" << runs_->dts()
-
712  << ", cts=" << runs_->cts()
-
713  << ", size=" << runs_->sample_size();
-
714 
-
715  if (!new_sample_cb_.Run(runs_->track_id(), stream_sample)) {
-
716  *err = true;
-
717  LOG(ERROR) << "Failed to process the sample.";
-
718  return false;
-
719  }
-
720 
-
721  runs_->AdvanceSample();
-
722  return true;
-
723 }
-
724 
-
725 bool MP4MediaParser::ReadAndDiscardMDATsUntil(const int64_t offset) {
-
726  bool err = false;
-
727  while (mdat_tail_ < offset) {
-
728  const uint8_t* buf;
-
729  int size;
-
730  queue_.PeekAt(mdat_tail_, &buf, &size);
-
731 
-
732  FourCC type;
-
733  uint64_t box_sz;
-
734  if (!BoxReader::StartBox(buf, size, &type, &box_sz, &err))
-
735  break;
-
736 
-
737  mdat_tail_ += box_sz;
-
738  }
-
739  queue_.Trim(std::min(mdat_tail_, offset));
-
740  return !err;
-
741 }
-
742 
-
743 void MP4MediaParser::ChangeState(State new_state) {
-
744  DVLOG(2) << "Changing state: " << new_state;
-
745  state_ = new_state;
-
746 }
-
747 
-
748 } // namespace mp4
-
749 } // namespace media
-
750 } // namespace shaka
+
7 #include <algorithm>
+
8 #include <limits>
+
9 
+
10 #include "packager/base/callback.h"
+
11 #include "packager/base/callback_helpers.h"
+
12 #include "packager/base/logging.h"
+
13 #include "packager/base/memory/ref_counted.h"
+
14 #include "packager/base/strings/string_number_conversions.h"
+
15 #include "packager/media/base/audio_stream_info.h"
+
16 #include "packager/media/base/buffer_reader.h"
+
17 #include "packager/media/base/decrypt_config.h"
+
18 #include "packager/media/base/key_source.h"
+
19 #include "packager/media/base/macros.h"
+
20 #include "packager/media/base/media_sample.h"
+
21 #include "packager/media/base/rcheck.h"
+
22 #include "packager/media/base/video_stream_info.h"
+
23 #include "packager/media/codecs/avc_decoder_configuration_record.h"
+
24 #include "packager/media/codecs/es_descriptor.h"
+
25 #include "packager/media/codecs/hevc_decoder_configuration_record.h"
+
26 #include "packager/media/codecs/vp_codec_configuration_record.h"
+
27 #include "packager/media/file/file.h"
+
28 #include "packager/media/file/file_closer.h"
+
29 #include "packager/media/formats/mp4/box_definitions.h"
+
30 #include "packager/media/formats/mp4/box_reader.h"
+
31 #include "packager/media/formats/mp4/track_run_iterator.h"
+
32 
+
33 namespace shaka {
+
34 namespace media {
+
35 namespace mp4 {
+
36 namespace {
+
37 
+
38 uint64_t Rescale(uint64_t time_in_old_scale,
+
39  uint32_t old_scale,
+
40  uint32_t new_scale) {
+
41  return (static_cast<double>(time_in_old_scale) / old_scale) * new_scale;
+
42 }
+
43 
+
44 Codec FourCCToCodec(FourCC fourcc) {
+
45  switch (fourcc) {
+
46  case FOURCC_avc1:
+
47  return kCodecH264;
+
48  case FOURCC_hev1:
+
49  return kCodecHEV1;
+
50  case FOURCC_hvc1:
+
51  return kCodecHVC1;
+
52  case FOURCC_vp08:
+
53  return kCodecVP8;
+
54  case FOURCC_vp09:
+
55  return kCodecVP9;
+
56  case FOURCC_vp10:
+
57  return kCodecVP10;
+
58  case FOURCC_Opus:
+
59  return kCodecOpus;
+
60  case FOURCC_dtsc:
+
61  return kCodecDTSC;
+
62  case FOURCC_dtsh:
+
63  return kCodecDTSH;
+
64  case FOURCC_dtsl:
+
65  return kCodecDTSL;
+
66  case FOURCC_dtse:
+
67  return kCodecDTSE;
+
68  case FOURCC_dtsp:
+
69  return kCodecDTSP;
+
70  case FOURCC_dtsm:
+
71  return kCodecDTSM;
+
72  case FOURCC_ac_3:
+
73  return kCodecAC3;
+
74  case FOURCC_ec_3:
+
75  return kCodecEAC3;
+
76  default:
+
77  return kUnknownCodec;
+
78  }
+
79 }
+
80 
+
81 // Default DTS audio number of channels for 5.1 channel layout.
+
82 const uint8_t kDtsAudioNumChannels = 6;
+
83 const uint64_t kNanosecondsPerSecond = 1000000000ull;
+
84 
+
85 } // namespace
+
86 
+
87 MP4MediaParser::MP4MediaParser()
+
88  : state_(kWaitingForInit),
+
89  decryption_key_source_(NULL),
+
90  moof_head_(0),
+
91  mdat_tail_(0) {}
+
92 
+
93 MP4MediaParser::~MP4MediaParser() {}
+
94 
+
95 void MP4MediaParser::Init(const InitCB& init_cb,
+
96  const NewSampleCB& new_sample_cb,
+
97  KeySource* decryption_key_source) {
+
98  DCHECK_EQ(state_, kWaitingForInit);
+
99  DCHECK(init_cb_.is_null());
+
100  DCHECK(!init_cb.is_null());
+
101  DCHECK(!new_sample_cb.is_null());
+
102 
+
103  ChangeState(kParsingBoxes);
+
104  init_cb_ = init_cb;
+
105  new_sample_cb_ = new_sample_cb;
+
106  decryption_key_source_ = decryption_key_source;
+
107  if (decryption_key_source)
+
108  decryptor_source_.reset(new DecryptorSource(decryption_key_source));
+
109 }
+
110 
+
111 void MP4MediaParser::Reset() {
+
112  queue_.Reset();
+
113  runs_.reset();
+
114  moof_head_ = 0;
+
115  mdat_tail_ = 0;
+
116 }
+
117 
+ +
119  DCHECK_NE(state_, kWaitingForInit);
+
120  Reset();
+
121  ChangeState(kParsingBoxes);
+
122  return true;
+
123 }
+
124 
+
125 bool MP4MediaParser::Parse(const uint8_t* buf, int size) {
+
126  DCHECK_NE(state_, kWaitingForInit);
+
127 
+
128  if (state_ == kError)
+
129  return false;
+
130 
+
131  queue_.Push(buf, size);
+
132 
+
133  bool result, err = false;
+
134 
+
135  do {
+
136  if (state_ == kParsingBoxes) {
+
137  result = ParseBox(&err);
+
138  } else {
+
139  DCHECK_EQ(kEmittingSamples, state_);
+
140  result = EnqueueSample(&err);
+
141  if (result) {
+
142  int64_t max_clear = runs_->GetMaxClearOffset() + moof_head_;
+
143  err = !ReadAndDiscardMDATsUntil(max_clear);
+
144  }
+
145  }
+
146  } while (result && !err);
+
147 
+
148  if (err) {
+
149  DLOG(ERROR) << "Error while parsing MP4";
+
150  moov_.reset();
+
151  Reset();
+
152  ChangeState(kError);
+
153  return false;
+
154  }
+
155 
+
156  return true;
+
157 }
+
158 
+
159 bool MP4MediaParser::LoadMoov(const std::string& file_path) {
+
160  std::unique_ptr<File, FileCloser> file(
+
161  File::OpenWithNoBuffering(file_path.c_str(), "r"));
+
162  if (!file) {
+
163  LOG(ERROR) << "Unable to open media file '" << file_path << "'";
+
164  return false;
+
165  }
+
166  if (!file->Seek(0)) {
+
167  LOG(WARNING) << "Filesystem does not support seeking on file '" << file_path
+
168  << "'";
+
169  return false;
+
170  }
+
171 
+
172  uint64_t file_position(0);
+
173  bool mdat_seen(false);
+
174  while (true) {
+
175  const uint32_t kBoxHeaderReadSize(16);
+
176  std::vector<uint8_t> buffer(kBoxHeaderReadSize);
+
177  int64_t bytes_read = file->Read(&buffer[0], kBoxHeaderReadSize);
+
178  if (bytes_read == 0) {
+
179  LOG(ERROR) << "Could not find 'moov' box in file '" << file_path << "'";
+
180  return false;
+
181  }
+
182  if (bytes_read < kBoxHeaderReadSize) {
+
183  LOG(ERROR) << "Error reading media file '" << file_path << "'";
+
184  return false;
+
185  }
+
186  uint64_t box_size;
+
187  FourCC box_type;
+
188  bool err;
+
189  if (!BoxReader::StartBox(&buffer[0], kBoxHeaderReadSize, &box_type,
+
190  &box_size, &err)) {
+
191  LOG(ERROR) << "Could not start box from file '" << file_path << "'";
+
192  return false;
+
193  }
+
194  if (box_type == FOURCC_mdat) {
+
195  mdat_seen = true;
+
196  } else if (box_type == FOURCC_moov) {
+
197  if (!mdat_seen) {
+
198  // 'moov' is before 'mdat'. Nothing to do.
+
199  break;
+
200  }
+
201  // 'mdat' before 'moov'. Read and parse 'moov'.
+
202  if (!Parse(&buffer[0], bytes_read)) {
+
203  LOG(ERROR) << "Error parsing mp4 file '" << file_path << "'";
+
204  return false;
+
205  }
+
206  uint64_t bytes_to_read = box_size - bytes_read;
+
207  buffer.resize(bytes_to_read);
+
208  while (bytes_to_read > 0) {
+
209  bytes_read = file->Read(&buffer[0], bytes_to_read);
+
210  if (bytes_read <= 0) {
+
211  LOG(ERROR) << "Error reading 'moov' contents from file '" << file_path
+
212  << "'";
+
213  return false;
+
214  }
+
215  if (!Parse(&buffer[0], bytes_read)) {
+
216  LOG(ERROR) << "Error parsing mp4 file '" << file_path << "'";
+
217  return false;
+
218  }
+
219  bytes_to_read -= bytes_read;
+
220  }
+
221  queue_.Reset(); // So that we don't need to adjust data offsets.
+
222  mdat_tail_ = 0; // So it will skip boxes until mdat.
+
223  break; // Done.
+
224  }
+
225  file_position += box_size;
+
226  if (!file->Seek(file_position)) {
+
227  LOG(ERROR) << "Error skipping box in mp4 file '" << file_path << "'";
+
228  return false;
+
229  }
+
230  }
+
231  return true;
+
232 }
+
233 
+
234 bool MP4MediaParser::ParseBox(bool* err) {
+
235  const uint8_t* buf;
+
236  int size;
+
237  queue_.Peek(&buf, &size);
+
238  if (!size)
+
239  return false;
+
240 
+
241  std::unique_ptr<BoxReader> reader(BoxReader::ReadBox(buf, size, err));
+
242  if (reader.get() == NULL)
+
243  return false;
+
244 
+
245  if (reader->type() == FOURCC_mdat) {
+
246  // The code ends up here only if a MOOV box is not yet seen.
+
247  DCHECK(!moov_);
+
248 
+
249  NOTIMPLEMENTED() << " Files with MDAT before MOOV is not supported yet.";
+
250  *err = true;
+
251  return false;
+
252  }
+
253 
+
254  // Set up mdat offset for ReadMDATsUntil().
+
255  mdat_tail_ = queue_.head() + reader->size();
+
256 
+
257  if (reader->type() == FOURCC_moov) {
+
258  *err = !ParseMoov(reader.get());
+
259  } else if (reader->type() == FOURCC_moof) {
+
260  moof_head_ = queue_.head();
+
261  *err = !ParseMoof(reader.get());
+
262 
+
263  // Return early to avoid evicting 'moof' data from queue. Auxiliary info may
+
264  // be located anywhere in the file, including inside the 'moof' itself.
+
265  // (Since 'default-base-is-moof' is mandated, no data references can come
+
266  // before the head of the 'moof', so keeping this box around is sufficient.)
+
267  return !(*err);
+
268  } else {
+
269  VLOG(2) << "Skipping top-level box: " << FourCCToString(reader->type());
+
270  }
+
271 
+
272  queue_.Pop(reader->size());
+
273  return !(*err);
+
274 }
+
275 
+
276 bool MP4MediaParser::ParseMoov(BoxReader* reader) {
+
277  if (moov_)
+
278  return true; // Already parsed the 'moov' box.
+
279 
+
280  moov_.reset(new Movie);
+
281  RCHECK(moov_->Parse(reader));
+
282  runs_.reset();
+
283 
+
284  std::vector<scoped_refptr<StreamInfo> > streams;
+
285 
+
286  for (std::vector<Track>::const_iterator track = moov_->tracks.begin();
+
287  track != moov_->tracks.end(); ++track) {
+
288  const uint32_t timescale = track->media.header.timescale;
+
289 
+
290  // Calculate duration (based on timescale).
+
291  uint64_t duration = 0;
+
292  if (track->media.header.duration > 0) {
+
293  duration = track->media.header.duration;
+
294  } else if (moov_->extends.header.fragment_duration > 0) {
+
295  DCHECK(moov_->header.timescale != 0);
+
296  duration = Rescale(moov_->extends.header.fragment_duration,
+
297  moov_->header.timescale,
+
298  timescale);
+
299  } else if (moov_->header.duration > 0 &&
+
300  moov_->header.duration != std::numeric_limits<uint64_t>::max()) {
+
301  DCHECK(moov_->header.timescale != 0);
+
302  duration =
+
303  Rescale(moov_->header.duration, moov_->header.timescale, timescale);
+
304  }
+
305 
+
306  const SampleDescription& samp_descr =
+
307  track->media.information.sample_table.description;
+
308 
+
309  size_t desc_idx = 0;
+
310 
+
311  // Read sample description index from mvex if it exists otherwise read
+
312  // from the first entry in Sample To Chunk box.
+
313  if (moov_->extends.tracks.size() > 0) {
+
314  for (size_t t = 0; t < moov_->extends.tracks.size(); t++) {
+
315  const TrackExtends& trex = moov_->extends.tracks[t];
+
316  if (trex.track_id == track->header.track_id) {
+
317  desc_idx = trex.default_sample_description_index;
+
318  break;
+
319  }
+
320  }
+
321  } else {
+
322  const std::vector<ChunkInfo>& chunk_info =
+
323  track->media.information.sample_table.sample_to_chunk.chunk_info;
+
324  RCHECK(chunk_info.size() > 0);
+
325  desc_idx = chunk_info[0].sample_description_index;
+
326  }
+
327  RCHECK(desc_idx > 0);
+
328  desc_idx -= 1; // BMFF descriptor index is one-based
+
329 
+
330  if (samp_descr.type == kAudio) {
+
331  RCHECK(!samp_descr.audio_entries.empty());
+
332 
+
333  // It is not uncommon to find otherwise-valid files with incorrect sample
+
334  // description indices, so we fail gracefully in that case.
+
335  if (desc_idx >= samp_descr.audio_entries.size())
+
336  desc_idx = 0;
+
337 
+
338  const AudioSampleEntry& entry = samp_descr.audio_entries[desc_idx];
+
339  const FourCC actual_format = entry.GetActualFormat();
+
340  Codec codec = FourCCToCodec(actual_format);
+
341  uint8_t num_channels = 0;
+
342  uint32_t sampling_frequency = 0;
+
343  uint64_t codec_delay_ns = 0;
+
344  uint8_t audio_object_type = 0;
+
345  uint32_t max_bitrate = 0;
+
346  uint32_t avg_bitrate = 0;
+
347  std::vector<uint8_t> codec_config;
+
348 
+
349  switch (actual_format) {
+
350  case FOURCC_mp4a:
+
351  // Check if it is MPEG4 AAC defined in ISO 14496 Part 3 or
+
352  // supported MPEG2 AAC variants.
+
353  if (entry.esds.es_descriptor.IsAAC()) {
+
354  codec = kCodecAAC;
+
355  const AACAudioSpecificConfig& aac_audio_specific_config =
+
356  entry.esds.aac_audio_specific_config;
+
357  num_channels = aac_audio_specific_config.num_channels();
+
358  sampling_frequency = aac_audio_specific_config.frequency();
+
359  audio_object_type = aac_audio_specific_config.audio_object_type();
+
360  codec_config = entry.esds.es_descriptor.decoder_specific_info();
+
361  break;
+
362  } else if (entry.esds.es_descriptor.IsDTS()) {
+
363  ObjectType audio_type = entry.esds.es_descriptor.object_type();
+
364  switch (audio_type) {
+
365  case kDTSC:
+
366  codec = kCodecDTSC;
+
367  break;
+
368  case kDTSE:
+
369  codec = kCodecDTSE;
+
370  break;
+
371  case kDTSH:
+
372  codec = kCodecDTSH;
+
373  break;
+
374  case kDTSL:
+
375  codec = kCodecDTSL;
+
376  break;
+
377  default:
+
378  LOG(ERROR) << "Unsupported audio type " << audio_type
+
379  << " in stsd box.";
+
380  return false;
+
381  }
+
382  num_channels = entry.esds.aac_audio_specific_config.num_channels();
+
383  // For dts audio in esds, current supported number of channels is 6
+
384  // as the only supported channel layout is 5.1.
+
385  if (num_channels != kDtsAudioNumChannels) {
+
386  LOG(ERROR) << "Unsupported channel count " << num_channels
+
387  << " for audio type " << audio_type << ".";
+
388  return false;
+
389  }
+
390  sampling_frequency = entry.samplerate;
+
391  max_bitrate = entry.esds.es_descriptor.max_bitrate();
+
392  avg_bitrate = entry.esds.es_descriptor.avg_bitrate();
+
393  } else {
+
394  LOG(ERROR) << "Unsupported audio format 0x" << std::hex
+
395  << actual_format << " in stsd box.";
+
396  return false;
+
397  }
+
398  break;
+
399  case FOURCC_dtsc:
+
400  FALLTHROUGH_INTENDED;
+
401  case FOURCC_dtsh:
+
402  FALLTHROUGH_INTENDED;
+
403  case FOURCC_dtsl:
+
404  FALLTHROUGH_INTENDED;
+
405  case FOURCC_dtse:
+
406  FALLTHROUGH_INTENDED;
+
407  case FOURCC_dtsm:
+
408  codec_config = entry.ddts.extra_data;
+
409  max_bitrate = entry.ddts.max_bitrate;
+
410  avg_bitrate = entry.ddts.avg_bitrate;
+
411  num_channels = entry.channelcount;
+
412  sampling_frequency = entry.samplerate;
+
413  break;
+
414  case FOURCC_ac_3:
+
415  codec_config = entry.dac3.data;
+
416  num_channels = entry.channelcount;
+
417  sampling_frequency = entry.samplerate;
+
418  break;
+
419  case FOURCC_ec_3:
+
420  codec_config = entry.dec3.data;
+
421  num_channels = entry.channelcount;
+
422  sampling_frequency = entry.samplerate;
+
423  break;
+
424  case FOURCC_Opus:
+
425  codec_config = entry.dops.opus_identification_header;
+
426  num_channels = entry.channelcount;
+
427  sampling_frequency = entry.samplerate;
+
428  RCHECK(sampling_frequency != 0);
+
429  codec_delay_ns =
+
430  entry.dops.preskip * kNanosecondsPerSecond / sampling_frequency;
+
431  break;
+
432  default:
+
433  LOG(ERROR) << "Unsupported audio format 0x" << std::hex
+
434  << actual_format << " in stsd box.";
+
435  return false;
+
436  }
+
437 
+
438  // Extract possible seek preroll.
+
439  uint64_t seek_preroll_ns = 0;
+
440  for (const auto& sample_group_description :
+
441  track->media.information.sample_table.sample_group_descriptions) {
+
442  if (sample_group_description.grouping_type != FOURCC_roll)
+
443  continue;
+
444  const auto& audio_roll_recovery_entries =
+
445  sample_group_description.audio_roll_recovery_entries;
+
446  if (audio_roll_recovery_entries.size() != 1) {
+
447  LOG(WARNING) << "Unexpected number of entries in "
+
448  "SampleGroupDescription table with grouping type "
+
449  "'roll'.";
+
450  break;
+
451  }
+
452  const int16_t roll_distance_in_samples =
+
453  audio_roll_recovery_entries[0].roll_distance;
+
454  if (roll_distance_in_samples < 0) {
+
455  RCHECK(sampling_frequency != 0);
+
456  seek_preroll_ns = kNanosecondsPerSecond *
+
457  (-roll_distance_in_samples) / sampling_frequency;
+
458  } else {
+
459  LOG(WARNING)
+
460  << "Roll distance is supposed to be negative, but seeing "
+
461  << roll_distance_in_samples;
+
462  }
+
463  break;
+
464  }
+
465 
+
466  const bool is_encrypted =
+
467  entry.sinf.info.track_encryption.default_is_protected == 1;
+
468  DVLOG(1) << "is_audio_track_encrypted_: " << is_encrypted;
+
469  streams.push_back(new AudioStreamInfo(
+
470  track->header.track_id, timescale, duration, codec,
+
471  AudioStreamInfo::GetCodecString(codec, audio_object_type),
+
472  codec_config.data(), codec_config.size(), entry.samplesize,
+
473  num_channels, sampling_frequency, seek_preroll_ns, codec_delay_ns,
+
474  max_bitrate, avg_bitrate, track->media.header.language.code,
+
475  is_encrypted));
+
476  }
+
477 
+
478  if (samp_descr.type == kVideo) {
+
479  RCHECK(!samp_descr.video_entries.empty());
+
480  if (desc_idx >= samp_descr.video_entries.size())
+
481  desc_idx = 0;
+
482  const VideoSampleEntry& entry = samp_descr.video_entries[desc_idx];
+
483 
+
484  uint32_t coded_width = entry.width;
+
485  uint32_t coded_height = entry.height;
+
486  uint32_t pixel_width = entry.pixel_aspect.h_spacing;
+
487  uint32_t pixel_height = entry.pixel_aspect.v_spacing;
+
488  if (pixel_width == 0 && pixel_height == 0) {
+
489  pixel_width = 1;
+
490  pixel_height = 1;
+
491  }
+
492  std::string codec_string;
+
493  uint8_t nalu_length_size = 0;
+
494 
+
495  const FourCC actual_format = entry.GetActualFormat();
+
496  const Codec video_codec = FourCCToCodec(actual_format);
+
497  switch (actual_format) {
+
498  case FOURCC_avc1: {
+
499  AVCDecoderConfigurationRecord avc_config;
+
500  if (!avc_config.Parse(entry.codec_configuration.data)) {
+
501  LOG(ERROR) << "Failed to parse avcc.";
+
502  return false;
+
503  }
+
504  codec_string = avc_config.GetCodecString();
+
505  nalu_length_size = avc_config.nalu_length_size();
+
506 
+
507  if (coded_width != avc_config.coded_width() ||
+
508  coded_height != avc_config.coded_height()) {
+
509  LOG(WARNING) << "Resolution in VisualSampleEntry (" << coded_width
+
510  << "," << coded_height
+
511  << ") does not match with resolution in "
+
512  "AVCDecoderConfigurationRecord ("
+
513  << avc_config.coded_width() << ","
+
514  << avc_config.coded_height()
+
515  << "). Use AVCDecoderConfigurationRecord.";
+
516  coded_width = avc_config.coded_width();
+
517  coded_height = avc_config.coded_height();
+
518  }
+
519 
+
520  if (pixel_width != avc_config.pixel_width() ||
+
521  pixel_height != avc_config.pixel_height()) {
+
522  LOG_IF(WARNING, pixel_width != 1 || pixel_height != 1)
+
523  << "Pixel aspect ratio in PASP box (" << pixel_width << ","
+
524  << pixel_height
+
525  << ") does not match with SAR in AVCDecoderConfigurationRecord "
+
526  "("
+
527  << avc_config.pixel_width() << "," << avc_config.pixel_height()
+
528  << "). Use AVCDecoderConfigurationRecord.";
+
529  pixel_width = avc_config.pixel_width();
+
530  pixel_height = avc_config.pixel_height();
+
531  }
+
532  break;
+
533  }
+
534  case FOURCC_hev1:
+
535  case FOURCC_hvc1: {
+
536  HEVCDecoderConfigurationRecord hevc_config;
+
537  if (!hevc_config.Parse(entry.codec_configuration.data)) {
+
538  LOG(ERROR) << "Failed to parse hevc.";
+
539  return false;
+
540  }
+
541  codec_string = hevc_config.GetCodecString(video_codec);
+
542  nalu_length_size = hevc_config.nalu_length_size();
+
543  break;
+
544  }
+
545  case FOURCC_vp08:
+
546  case FOURCC_vp09:
+
547  case FOURCC_vp10: {
+
548  VPCodecConfigurationRecord vp_config;
+
549  if (!vp_config.ParseMP4(entry.codec_configuration.data)) {
+
550  LOG(ERROR) << "Failed to parse vpcc.";
+
551  return false;
+
552  }
+
553  codec_string = vp_config.GetCodecString(video_codec);
+
554  break;
+
555  }
+
556  default:
+
557  LOG(ERROR) << "Unsupported video format "
+
558  << FourCCToString(actual_format) << " in stsd box.";
+
559  return false;
+
560  }
+
561 
+
562  const bool is_encrypted =
+
563  entry.sinf.info.track_encryption.default_is_protected == 1;
+
564  DVLOG(1) << "is_video_track_encrypted_: " << is_encrypted;
+
565  streams.push_back(new VideoStreamInfo(
+
566  track->header.track_id, timescale, duration, video_codec,
+
567  codec_string, entry.codec_configuration.data.data(),
+
568  entry.codec_configuration.data.size(), coded_width, coded_height,
+
569  pixel_width, pixel_height,
+
570  0, // trick_play_rate
+
571  nalu_length_size, track->media.header.language.code, is_encrypted));
+
572  }
+
573  }
+
574 
+
575  init_cb_.Run(streams);
+
576  if (!FetchKeysIfNecessary(moov_->pssh))
+
577  return false;
+
578  runs_.reset(new TrackRunIterator(moov_.get()));
+
579  RCHECK(runs_->Init());
+
580  ChangeState(kEmittingSamples);
+
581  return true;
+
582 }
+
583 
+
584 bool MP4MediaParser::ParseMoof(BoxReader* reader) {
+
585  // Must already have initialization segment.
+
586  RCHECK(moov_.get());
+
587  MovieFragment moof;
+
588  RCHECK(moof.Parse(reader));
+
589  if (!runs_)
+
590  runs_.reset(new TrackRunIterator(moov_.get()));
+
591  RCHECK(runs_->Init(moof));
+
592  if (!FetchKeysIfNecessary(moof.pssh))
+
593  return false;
+
594  ChangeState(kEmittingSamples);
+
595  return true;
+
596 }
+
597 
+
598 bool MP4MediaParser::FetchKeysIfNecessary(
+
599  const std::vector<ProtectionSystemSpecificHeader>& headers) {
+
600  if (headers.empty())
+
601  return true;
+
602 
+
603  // An error will be returned later if the samples need to be decrypted.
+
604  if (!decryption_key_source_)
+
605  return true;
+
606 
+
607  Status status;
+
608  for (std::vector<ProtectionSystemSpecificHeader>::const_iterator iter =
+
609  headers.begin(); iter != headers.end(); ++iter) {
+
610  status = decryption_key_source_->FetchKeys(iter->raw_box);
+
611  if (!status.ok()) {
+
612  // If there is an error, try using the next PSSH box and report if none
+
613  // work.
+
614  VLOG(1) << "Unable to fetch decryption keys: " << status
+
615  << ", trying the next PSSH box";
+
616  continue;
+
617  }
+
618  return true;
+
619  }
+
620 
+
621  if (!status.ok()) {
+
622  LOG(ERROR) << "Error fetching decryption keys: " << status;
+
623  return false;
+
624  }
+
625 
+
626  LOG(ERROR) << "No viable 'pssh' box found for content decryption.";
+
627  return false;
+
628 }
+
629 
+
630 bool MP4MediaParser::EnqueueSample(bool* err) {
+
631  if (!runs_->IsRunValid()) {
+
632  // Remain in kEnqueueingSamples state, discarding data, until the end of
+
633  // the current 'mdat' box has been appended to the queue.
+
634  if (!queue_.Trim(mdat_tail_))
+
635  return false;
+
636 
+
637  ChangeState(kParsingBoxes);
+
638  return true;
+
639  }
+
640 
+
641  if (!runs_->IsSampleValid()) {
+
642  runs_->AdvanceRun();
+
643  return true;
+
644  }
+
645 
+
646  DCHECK(!(*err));
+
647 
+
648  const uint8_t* buf;
+
649  int buf_size;
+
650  queue_.Peek(&buf, &buf_size);
+
651  if (!buf_size)
+
652  return false;
+
653 
+
654  // Skip this entire track if it is not audio nor video.
+
655  if (!runs_->is_audio() && !runs_->is_video())
+
656  runs_->AdvanceRun();
+
657 
+
658  // Attempt to cache the auxiliary information first. Aux info is usually
+
659  // placed in a contiguous block before the sample data, rather than being
+
660  // interleaved. If we didn't cache it, this would require that we retain the
+
661  // start of the segment buffer while reading samples. Aux info is typically
+
662  // quite small compared to sample data, so this pattern is useful on
+
663  // memory-constrained devices where the source buffer consumes a substantial
+
664  // portion of the total system memory.
+
665  if (runs_->AuxInfoNeedsToBeCached()) {
+
666  queue_.PeekAt(runs_->aux_info_offset() + moof_head_, &buf, &buf_size);
+
667  if (buf_size < runs_->aux_info_size())
+
668  return false;
+
669  *err = !runs_->CacheAuxInfo(buf, buf_size);
+
670  return !*err;
+
671  }
+
672 
+
673  int64_t sample_offset = runs_->sample_offset() + moof_head_;
+
674  queue_.PeekAt(sample_offset, &buf, &buf_size);
+
675  if (buf_size < runs_->sample_size()) {
+
676  if (sample_offset < queue_.head()) {
+
677  LOG(ERROR) << "Incorrect sample offset " << sample_offset
+
678  << " < " << queue_.head();
+
679  *err = true;
+
680  }
+
681  return false;
+
682  }
+
683 
+
684  scoped_refptr<MediaSample> stream_sample(MediaSample::CopyFrom(
+
685  buf, runs_->sample_size(), runs_->is_keyframe()));
+
686  if (runs_->is_encrypted()) {
+
687  if (!decryptor_source_) {
+
688  *err = true;
+
689  LOG(ERROR) << "Encrypted media sample encountered, but decryption is not "
+
690  "enabled";
+
691  return false;
+
692  }
+
693 
+
694  std::unique_ptr<DecryptConfig> decrypt_config = runs_->GetDecryptConfig();
+
695  if (!decrypt_config ||
+
696  !decryptor_source_->DecryptSampleBuffer(decrypt_config.get(),
+
697  stream_sample->writable_data(),
+
698  stream_sample->data_size())) {
+
699  *err = true;
+
700  LOG(ERROR) << "Cannot decrypt samples.";
+
701  return false;
+
702  }
+
703  }
+
704 
+
705  stream_sample->set_dts(runs_->dts());
+
706  stream_sample->set_pts(runs_->cts());
+
707  stream_sample->set_duration(runs_->duration());
+
708 
+
709  DVLOG(3) << "Pushing frame: "
+
710  << ", key=" << runs_->is_keyframe()
+
711  << ", dur=" << runs_->duration()
+
712  << ", dts=" << runs_->dts()
+
713  << ", cts=" << runs_->cts()
+
714  << ", size=" << runs_->sample_size();
+
715 
+
716  if (!new_sample_cb_.Run(runs_->track_id(), stream_sample)) {
+
717  *err = true;
+
718  LOG(ERROR) << "Failed to process the sample.";
+
719  return false;
+
720  }
+
721 
+
722  runs_->AdvanceSample();
+
723  return true;
+
724 }
+
725 
+
726 bool MP4MediaParser::ReadAndDiscardMDATsUntil(const int64_t offset) {
+
727  bool err = false;
+
728  while (mdat_tail_ < offset) {
+
729  const uint8_t* buf;
+
730  int size;
+
731  queue_.PeekAt(mdat_tail_, &buf, &size);
+
732 
+
733  FourCC type;
+
734  uint64_t box_sz;
+
735  if (!BoxReader::StartBox(buf, size, &type, &box_sz, &err))
+
736  break;
+
737 
+
738  mdat_tail_ += box_sz;
+
739  }
+
740  queue_.Trim(std::min(mdat_tail_, offset));
+
741  return !err;
+
742 }
+
743 
+
744 void MP4MediaParser::ChangeState(State new_state) {
+
745  DVLOG(2) << "Changing state: " << new_state;
+
746  state_ = new_state;
+
747 }
+
748 
+
749 } // namespace mp4
+
750 } // namespace media
+
751 } // namespace shaka
void PeekAt(int64_t offset, const uint8_t **buf, int *size)
static File * OpenWithNoBuffering(const char *file_name, const char *mode)
Definition: file.cc:152
-
bool Flush() override WARN_UNUSED_RESULT
+
bool Flush() override WARN_UNUSED_RESULT
bool Trim(int64_t max_offset)
-
bool Parse(const uint8_t *buf, int size) override WARN_UNUSED_RESULT
+
bool Parse(const uint8_t *buf, int size) override WARN_UNUSED_RESULT
virtual Status FetchKeys(const std::vector< uint8_t > &pssh_box)=0
static std::string GetCodecString(Codec codec, uint8_t audio_object_type)
-
bool LoadMoov(const std::string &file_path)
+
bool LoadMoov(const std::string &file_path)
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:30
static scoped_refptr< MediaSample > CopyFrom(const uint8_t *data, size_t size, bool is_key_frame)
Definition: media_sample.cc:45
-
void Init(const InitCB &init_cb, const NewSampleCB &new_sample_cb, KeySource *decryption_key_source) override
+
void Init(const InitCB &init_cb, const NewSampleCB &new_sample_cb, KeySource *decryption_key_source) override
DecryptorSource wraps KeySource and is responsible for decryptor management.
static bool StartBox(const uint8_t *buf, const size_t buf_size, FourCC *type, uint64_t *box_size, bool *err) WARN_UNUSED_RESULT
Definition: box_reader.cc:55
static BoxReader * ReadBox(const uint8_t *buf, const size_t buf_size, bool *err)
Definition: box_reader.cc:37
diff --git a/docs/d7/df9/byte__queue_8cc_source.html b/docs/d7/df9/byte__queue_8cc_source.html index bb758ee6d0..c98b88cf15 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/d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html b/docs/d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html index d1e2c9feda..741206c77d 100644 --- a/docs/d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html +++ b/docs/d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html @@ -171,7 +171,7 @@ static const size_t kUnitS diff --git a/docs/d8/d08/classshaka_1_1media_1_1WebMClusterParser-members.html b/docs/d8/d08/classshaka_1_1media_1_1WebMClusterParser-members.html index 8f55f7635b..b7c0a6dce8 100644 --- a/docs/d8/d08/classshaka_1_1media_1_1WebMClusterParser-members.html +++ b/docs/d8/d08/classshaka_1_1media_1_1WebMClusterParser-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d08/classshaka_1_1media_1_1mp2t_1_1TsWriter-members.html b/docs/d8/d08/classshaka_1_1media_1_1mp2t_1_1TsWriter-members.html index a286f7fdcc..87455b3563 100644 --- a/docs/d8/d08/classshaka_1_1media_1_1mp2t_1_1TsWriter-members.html +++ b/docs/d8/d08/classshaka_1_1media_1_1mp2t_1_1TsWriter-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d08/structshaka_1_1media_1_1mp4_1_1MovieHeader-members.html b/docs/d8/d08/structshaka_1_1media_1_1mp4_1_1MovieHeader-members.html index 2532bb6a34..def4be0f15 100644 --- a/docs/d8/d08/structshaka_1_1media_1_1mp4_1_1MovieHeader-members.html +++ b/docs/d8/d08/structshaka_1_1media_1_1mp4_1_1MovieHeader-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d0d/media__sample_8cc_source.html b/docs/d8/d0d/media__sample_8cc_source.html index 447d2a64e3..9e4d9571de 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/d12/structshaka_1_1media_1_1mp4_1_1DecodingTime.html b/docs/d8/d12/structshaka_1_1media_1_1mp4_1_1DecodingTime.html index 06292e723c..cd503db904 100644 --- a/docs/d8/d12/structshaka_1_1media_1_1mp4_1_1DecodingTime.html +++ b/docs/d8/d12/structshaka_1_1media_1_1mp4_1_1DecodingTime.html @@ -112,7 +112,7 @@ uint32_t sample_delta< diff --git a/docs/d8/d12/structshaka_1_1media_1_1mp4_1_1PrivFrame-members.html b/docs/d8/d12/structshaka_1_1media_1_1mp4_1_1PrivFrame-members.html index 88ba46e4a8..e003411bce 100644 --- a/docs/d8/d12/structshaka_1_1media_1_1mp4_1_1PrivFrame-members.html +++ b/docs/d8/d12/structshaka_1_1media_1_1mp4_1_1PrivFrame-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d13/classshaka_1_1media_1_1BitReader-members.html b/docs/d8/d13/classshaka_1_1media_1_1BitReader-members.html index f544b6b214..ee9d529cc6 100644 --- a/docs/d8/d13/classshaka_1_1media_1_1BitReader-members.html +++ b/docs/d8/d13/classshaka_1_1media_1_1BitReader-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d14/classshaka_1_1media_1_1VP8Parser.html b/docs/d8/d14/classshaka_1_1media_1_1VP8Parser.html index e5ee6ed271..d51b8ba419 100644 --- a/docs/d8/d14/classshaka_1_1media_1_1VP8Parser.html +++ b/docs/d8/d14/classshaka_1_1media_1_1VP8Parser.html @@ -235,7 +235,7 @@ Additional Inherited Members diff --git a/docs/d8/d16/structshaka_1_1media_1_1MuxerOptions-members.html b/docs/d8/d16/structshaka_1_1media_1_1MuxerOptions-members.html index e2c462c8f8..a9b6c5b9e9 100644 --- a/docs/d8/d16/structshaka_1_1media_1_1MuxerOptions-members.html +++ b/docs/d8/d16/structshaka_1_1media_1_1MuxerOptions-members.html @@ -110,7 +110,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 731ee6c7c9..a390d70ba3 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/d20/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html b/docs/d8/d20/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html index bd59387db5..e489c3c2b2 100644 --- a/docs/d8/d20/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html +++ b/docs/d8/d20/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d8/d23/structshaka_1_1media_1_1SubsampleEntry-members.html b/docs/d8/d23/structshaka_1_1media_1_1SubsampleEntry-members.html index 46a57d191f..b34e3dd99f 100644 --- a/docs/d8/d23/structshaka_1_1media_1_1SubsampleEntry-members.html +++ b/docs/d8/d23/structshaka_1_1media_1_1SubsampleEntry-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d28/es__parser__h265_8h_source.html b/docs/d8/d28/es__parser__h265_8h_source.html index 5ea14c75c9..4f0e494356 100644 --- a/docs/d8/d28/es__parser__h265_8h_source.html +++ b/docs/d8/d28/es__parser__h265_8h_source.html @@ -155,7 +155,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 c1ea738060..2033fc81de 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/d3e/classshaka_1_1media_1_1StreamDescriptorCompareFn.html b/docs/d8/d3e/classshaka_1_1media_1_1StreamDescriptorCompareFn.html index e3bf857d90..9974191d25 100644 --- a/docs/d8/d3e/classshaka_1_1media_1_1StreamDescriptorCompareFn.html +++ b/docs/d8/d3e/classshaka_1_1media_1_1StreamDescriptorCompareFn.html @@ -109,7 +109,7 @@ bool operator() (const diff --git a/docs/d8/d4d/aes__decryptor_8h_source.html b/docs/d8/d4d/aes__decryptor_8h_source.html index 3e0cbf6c5c..20ab073004 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/d5b/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry.html b/docs/d8/d5b/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry.html index d85c63ebfb..6eecc37aa3 100644 --- a/docs/d8/d5b/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry.html +++ b/docs/d8/d5b/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry.html @@ -206,7 +206,7 @@ Additional Inherited Members diff --git a/docs/d8/d5c/classshaka_1_1media_1_1MediaStream.html b/docs/d8/d5c/classshaka_1_1media_1_1MediaStream.html index d4946c8270..199b166562 100644 --- a/docs/d8/d5c/classshaka_1_1media_1_1MediaStream.html +++ b/docs/d8/d5c/classshaka_1_1media_1_1MediaStream.html @@ -225,7 +225,7 @@ const scoped_refptr< diff --git a/docs/d8/d6a/classshaka_1_1media_1_1ClusterBuilder-members.html b/docs/d8/d6a/classshaka_1_1media_1_1ClusterBuilder-members.html index d981dea1c7..473f5a1891 100644 --- a/docs/d8/d6a/classshaka_1_1media_1_1ClusterBuilder-members.html +++ b/docs/d8/d6a/classshaka_1_1media_1_1ClusterBuilder-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d6d/structshaka_1_1media_1_1mp4_1_1DataInformation.html b/docs/d8/d6d/structshaka_1_1media_1_1mp4_1_1DataInformation.html index 2c178a11a6..3351e77b20 100644 --- a/docs/d8/d6d/structshaka_1_1media_1_1mp4_1_1DataInformation.html +++ b/docs/d8/d6d/structshaka_1_1media_1_1mp4_1_1DataInformation.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d8/d70/structshaka_1_1media_1_1mp4_1_1Metadata-members.html b/docs/d8/d70/structshaka_1_1media_1_1mp4_1_1Metadata-members.html index 308eecf60c..7f12350483 100644 --- a/docs/d8/d70/structshaka_1_1media_1_1mp4_1_1Metadata-members.html +++ b/docs/d8/d70/structshaka_1_1media_1_1mp4_1_1Metadata-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d74/classshaka_1_1media_1_1TracksBuilder.html b/docs/d8/d74/classshaka_1_1media_1_1TracksBuilder.html index c587a969f2..27ce60ad0f 100644 --- a/docs/d8/d74/classshaka_1_1media_1_1TracksBuilder.html +++ b/docs/d8/d74/classshaka_1_1media_1_1TracksBuilder.html @@ -123,7 +123,7 @@ std::vector< uint8_t >  diff --git a/docs/d8/d86/classshaka_1_1media_1_1WebMTracksParser.html b/docs/d8/d86/classshaka_1_1media_1_1WebMTracksParser.html index 74207e7f75..76e9075156 100644 --- a/docs/d8/d86/classshaka_1_1media_1_1WebMTracksParser.html +++ b/docs/d8/d86/classshaka_1_1media_1_1WebMTracksParser.html @@ -225,7 +225,7 @@ The number of bytes parsed on success. diff --git a/docs/d8/d88/structshaka_1_1media_1_1mp4_1_1MovieExtends-members.html b/docs/d8/d88/structshaka_1_1media_1_1mp4_1_1MovieExtends-members.html index 14cc85d039..20cf92ca67 100644 --- a/docs/d8/d88/structshaka_1_1media_1_1mp4_1_1MovieExtends-members.html +++ b/docs/d8/d88/structshaka_1_1media_1_1mp4_1_1MovieExtends-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d8e/classshaka_1_1AdaptationSet.html b/docs/d8/d8e/classshaka_1_1AdaptationSet.html index 047de22c95..daf34b6af4 100644 --- a/docs/d8/d8e/classshaka_1_1AdaptationSet.html +++ b/docs/d8/d8e/classshaka_1_1AdaptationSet.html @@ -582,7 +582,7 @@ template<MpdBuilder::MpdType type> diff --git a/docs/d8/d91/classshaka_1_1media_1_1AesCtrEncryptor-members.html b/docs/d8/d91/classshaka_1_1media_1_1AesCtrEncryptor-members.html index 0e08bf83fc..fe4d01421d 100644 --- a/docs/d8/d91/classshaka_1_1media_1_1AesCtrEncryptor-members.html +++ b/docs/d8/d91/classshaka_1_1media_1_1AesCtrEncryptor-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d92/classshaka_1_1media_1_1AesRequestSigner-members.html b/docs/d8/d92/classshaka_1_1media_1_1AesRequestSigner-members.html index 5496bb2252..2cc6e1d96c 100644 --- a/docs/d8/d92/classshaka_1_1media_1_1AesRequestSigner-members.html +++ b/docs/d8/d92/classshaka_1_1media_1_1AesRequestSigner-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d92/structshaka_1_1media_1_1H264DecRefPicMarking-members.html b/docs/d8/d92/structshaka_1_1media_1_1H264DecRefPicMarking-members.html index 30da691fff..3a5db379cd 100644 --- a/docs/d8/d92/structshaka_1_1media_1_1H264DecRefPicMarking-members.html +++ b/docs/d8/d92/structshaka_1_1media_1_1H264DecRefPicMarking-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d93/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html b/docs/d8/d93/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html index 1f3be64af3..12b4f23f71 100644 --- a/docs/d8/d93/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html +++ b/docs/d8/d93/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d94/adts__constants_8cc_source.html b/docs/d8/d94/adts__constants_8cc_source.html index 947fbb94b4..00651e6e0f 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/pes__packet_8h_source.html b/docs/d8/d94/pes__packet_8h_source.html index 14b7655a80..4abb67119e 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/d99/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html b/docs/d8/d99/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html index 9cc8d608e8..8d6117c4a4 100644 --- a/docs/d8/d99/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html +++ b/docs/d8/d99/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html @@ -109,7 +109,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 6bccc8aca4..89989c4d67 100644 --- a/docs/d8/d9a/fragmenter_8cc_source.html +++ b/docs/d8/d9a/fragmenter_8cc_source.html @@ -300,7 +300,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d9c/webm__tracks__parser_8cc_source.html b/docs/d8/d9c/webm__tracks__parser_8cc_source.html index 9c0dc6f5c2..d6853f3a5f 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 8406216266..9775801127 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/da3/classshaka_1_1media_1_1DecryptorSource-members.html b/docs/d8/da3/classshaka_1_1media_1_1DecryptorSource-members.html index a312551e58..549459fbd6 100644 --- a/docs/d8/da3/classshaka_1_1media_1_1DecryptorSource-members.html +++ b/docs/d8/da3/classshaka_1_1media_1_1DecryptorSource-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/da5/structshaka_1_1media_1_1mp4_1_1SampleSize-members.html b/docs/d8/da5/structshaka_1_1media_1_1mp4_1_1SampleSize-members.html index 88a0d088ec..9c8535deea 100644 --- a/docs/d8/da5/structshaka_1_1media_1_1mp4_1_1SampleSize-members.html +++ b/docs/d8/da5/structshaka_1_1media_1_1mp4_1_1SampleSize-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/da6/classshaka_1_1media_1_1NaluReader-members.html b/docs/d8/da6/classshaka_1_1media_1_1NaluReader-members.html index d7d67eadc7..8a3b8c6c05 100644 --- a/docs/d8/da6/classshaka_1_1media_1_1NaluReader-members.html +++ b/docs/d8/da6/classshaka_1_1media_1_1NaluReader-members.html @@ -105,7 +105,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 7fedc0b2cb..cbac9203a5 100644 --- a/docs/d8/daa/stream__info_8h_source.html +++ b/docs/d8/daa/stream__info_8h_source.html @@ -205,7 +205,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/daf/namespaceshaka.html b/docs/d8/daf/namespaceshaka.html index 18ae20ae18..afa595a2c9 100644 --- a/docs/d8/daf/namespaceshaka.html +++ b/docs/d8/daf/namespaceshaka.html @@ -566,7 +566,7 @@ const char kPsshElementNam diff --git a/docs/d8/db7/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html b/docs/d8/db7/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html index f712e64891..dd0b956764 100644 --- a/docs/d8/db7/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html +++ b/docs/d8/db7/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html @@ -209,7 +209,7 @@ void set_progress_targetImplements shaka::media::mp4::Segmenter.

-

Definition at line 42 of file multi_segment_segmenter.cc.

+

Definition at line 44 of file multi_segment_segmenter.cc.

@@ -248,7 +248,7 @@ void set_progress_targetImplements shaka::media::mp4::Segmenter.

-

Definition at line 36 of file multi_segment_segmenter.cc.

+

Definition at line 38 of file multi_segment_segmenter.cc.

@@ -259,7 +259,7 @@ void set_progress_target diff --git a/docs/d8/db9/classshaka_1_1media_1_1WebMContentEncodingsClient-members.html b/docs/d8/db9/classshaka_1_1media_1_1WebMContentEncodingsClient-members.html index d620d92094..ce47de6849 100644 --- a/docs/d8/db9/classshaka_1_1media_1_1WebMContentEncodingsClient-members.html +++ b/docs/d8/db9/classshaka_1_1media_1_1WebMContentEncodingsClient-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dc3/structshaka_1_1media_1_1mp4_1_1CueTimeBox.html b/docs/d8/dc3/structshaka_1_1media_1_1mp4_1_1CueTimeBox.html index 5248c1db12..55cbe178d0 100644 --- a/docs/d8/dc3/structshaka_1_1media_1_1mp4_1_1CueTimeBox.html +++ b/docs/d8/dc3/structshaka_1_1media_1_1mp4_1_1CueTimeBox.html @@ -173,7 +173,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 25fd28b0fa..2ec8c99dfb 100644 --- a/docs/d8/dca/ts__writer_8h_source.html +++ b/docs/d8/dca/ts__writer_8h_source.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dcd/structshaka_1_1media_1_1mp4_1_1DecodingTime-members.html b/docs/d8/dcd/structshaka_1_1media_1_1mp4_1_1DecodingTime-members.html index 8a8d88a75c..1dfd3f8ba5 100644 --- a/docs/d8/dcd/structshaka_1_1media_1_1mp4_1_1DecodingTime-members.html +++ b/docs/d8/dcd/structshaka_1_1media_1_1mp4_1_1DecodingTime-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dcd/structshaka_1_1media_1_1mp4_1_1TrackExtends-members.html b/docs/d8/dcd/structshaka_1_1media_1_1mp4_1_1TrackExtends-members.html index 75056f433a..832f1d6ebe 100644 --- a/docs/d8/dcd/structshaka_1_1media_1_1mp4_1_1TrackExtends-members.html +++ b/docs/d8/dcd/structshaka_1_1media_1_1mp4_1_1TrackExtends-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dd6/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter.html b/docs/d8/dd6/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter.html index 7ae7dc3028..fcd24c9a4f 100644 --- a/docs/d8/dd6/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter.html +++ b/docs/d8/dd6/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter.html @@ -129,7 +129,7 @@ Public Member Functions diff --git a/docs/d8/dd6/structshaka_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html b/docs/d8/dd6/structshaka_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html index e527343b77..010723d45a 100644 --- a/docs/d8/dd6/structshaka_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html +++ b/docs/d8/dd6/structshaka_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html @@ -135,7 +135,7 @@ std::vector< uint8_t >  diff --git a/docs/d8/de1/classshaka_1_1SimpleMpdNotifier.html b/docs/d8/de1/classshaka_1_1SimpleMpdNotifier.html index 944e9060ea..40b151d6c6 100644 --- a/docs/d8/de1/classshaka_1_1SimpleMpdNotifier.html +++ b/docs/d8/de1/classshaka_1_1SimpleMpdNotifier.html @@ -471,7 +471,7 @@ class SimpleMpdNotifierTes diff --git a/docs/d8/de6/webm__crypto__helpers_8h_source.html b/docs/d8/de6/webm__crypto__helpers_8h_source.html index 44d97cdea9..a6a5c67b49 100644 --- a/docs/d8/de6/webm__crypto__helpers_8h_source.html +++ b/docs/d8/de6/webm__crypto__helpers_8h_source.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/deb/classshaka_1_1media_1_1mp2t_1_1EsParser-members.html b/docs/d8/deb/classshaka_1_1media_1_1mp2t_1_1EsParser-members.html index 998e8c9405..9dbf768269 100644 --- a/docs/d8/deb/classshaka_1_1media_1_1mp2t_1_1EsParser-members.html +++ b/docs/d8/deb/classshaka_1_1media_1_1mp2t_1_1EsParser-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dee/classshaka_1_1media_1_1AudioTimestampHelper-members.html b/docs/d8/dee/classshaka_1_1media_1_1AudioTimestampHelper-members.html index 0fe8f9600e..1c4533d4da 100644 --- a/docs/d8/dee/classshaka_1_1media_1_1AudioTimestampHelper-members.html +++ b/docs/d8/dee/classshaka_1_1media_1_1AudioTimestampHelper-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dee/classshaka_1_1media_1_1VPxParser-members.html b/docs/d8/dee/classshaka_1_1media_1_1VPxParser-members.html index 3061ac84e2..8fb1ef0b15 100644 --- a/docs/d8/dee/classshaka_1_1media_1_1VPxParser-members.html +++ b/docs/d8/dee/classshaka_1_1media_1_1VPxParser-members.html @@ -101,7 +101,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 602f2fd826..929db014ac 100644 --- a/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html +++ b/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html @@ -181,7 +181,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/df7/classshaka_1_1media_1_1SegmentTestBase-members.html b/docs/d8/df7/classshaka_1_1media_1_1SegmentTestBase-members.html index f398872c01..6691ab43bb 100644 --- a/docs/d8/df7/classshaka_1_1media_1_1SegmentTestBase-members.html +++ b/docs/d8/df7/classshaka_1_1media_1_1SegmentTestBase-members.html @@ -115,7 +115,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 4fbdfde9a4..b86d76fe5c 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 @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d00/structshaka_1_1media_1_1OnMediaEndParameters-members.html b/docs/d9/d00/structshaka_1_1media_1_1OnMediaEndParameters-members.html index 3ecf06ad51..35ef934883 100644 --- a/docs/d9/d00/structshaka_1_1media_1_1OnMediaEndParameters-members.html +++ b/docs/d9/d00/structshaka_1_1media_1_1OnMediaEndParameters-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 7c88b81c7d..01fa412332 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 f81cc8d555..5602e44024 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/d0b/classshaka_1_1media_1_1HlsNotifyMuxerListener-members.html b/docs/d9/d0b/classshaka_1_1media_1_1HlsNotifyMuxerListener-members.html index 8de6622efa..436ed3984c 100644 --- a/docs/d9/d0b/classshaka_1_1media_1_1HlsNotifyMuxerListener-members.html +++ b/docs/d9/d0b/classshaka_1_1media_1_1HlsNotifyMuxerListener-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html b/docs/d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html index 767c7926e1..d9280143ae 100644 --- a/docs/d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html +++ b/docs/d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html @@ -218,7 +218,7 @@ Static Public Member Functions diff --git a/docs/d9/d13/classshaka_1_1media_1_1BufferReader.html b/docs/d9/d13/classshaka_1_1media_1_1BufferReader.html index 7afcb0dd88..60c6c2c7c2 100644 --- a/docs/d9/d13/classshaka_1_1media_1_1BufferReader.html +++ b/docs/d9/d13/classshaka_1_1media_1_1BufferReader.html @@ -276,7 +276,7 @@ bool ReadNBytesInto8s diff --git a/docs/d9/d15/key__rotation__fragmenter_8cc_source.html b/docs/d9/d15/key__rotation__fragmenter_8cc_source.html index 6155f2e06c..72b89ae0ef 100644 --- a/docs/d9/d15/key__rotation__fragmenter_8cc_source.html +++ b/docs/d9/d15/key__rotation__fragmenter_8cc_source.html @@ -244,7 +244,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d1f/structshaka_1_1media_1_1mp4_1_1MovieFragment.html b/docs/d9/d1f/structshaka_1_1media_1_1mp4_1_1MovieFragment.html index e606f97ad9..b2c8ac4e4e 100644 --- a/docs/d9/d1f/structshaka_1_1media_1_1mp4_1_1MovieFragment.html +++ b/docs/d9/d1f/structshaka_1_1media_1_1mp4_1_1MovieFragment.html @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/d9/d26/classshaka_1_1media_1_1AesEncryptor-members.html b/docs/d9/d26/classshaka_1_1media_1_1AesEncryptor-members.html index fa3dab111b..a042ddc855 100644 --- a/docs/d9/d26/classshaka_1_1media_1_1AesEncryptor-members.html +++ b/docs/d9/d26/classshaka_1_1media_1_1AesEncryptor-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html b/docs/d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html index 65aef7bf0c..be700d2341 100644 --- a/docs/d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html +++ b/docs/d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html @@ -430,7 +430,7 @@ void set_progress_target diff --git a/docs/d9/d36/classshaka_1_1media_1_1TracksBuilder-members.html b/docs/d9/d36/classshaka_1_1media_1_1TracksBuilder-members.html index dcd9e9b574..d798a40f44 100644 --- a/docs/d9/d36/classshaka_1_1media_1_1TracksBuilder-members.html +++ b/docs/d9/d36/classshaka_1_1media_1_1TracksBuilder-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d3a/classshaka_1_1media_1_1File-members.html b/docs/d9/d3a/classshaka_1_1media_1_1File-members.html index 6e4a7a43dd..cb254c26d4 100644 --- a/docs/d9/d3a/classshaka_1_1media_1_1File-members.html +++ b/docs/d9/d3a/classshaka_1_1media_1_1File-members.html @@ -116,7 +116,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 fd4d530b82..179c0c3bb8 100644 --- a/docs/d9/d3b/webm__content__encodings_8h_source.html +++ b/docs/d9/d3b/webm__content__encodings_8h_source.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html b/docs/d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html index a909e53093..450227500b 100644 --- a/docs/d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html +++ b/docs/d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html @@ -166,7 +166,7 @@ Additional Inherited Members diff --git a/docs/d9/d3e/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox.html b/docs/d9/d3e/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox.html index 80d888c0bb..24a52b76a0 100644 --- a/docs/d9/d3e/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox.html +++ b/docs/d9/d3e/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html b/docs/d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html index c0a19611be..96ef5c65b7 100644 --- a/docs/d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html +++ b/docs/d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html @@ -320,7 +320,7 @@ Public Member Functions diff --git a/docs/d9/d66/classshaka_1_1media_1_1mp2t_1_1EsParserAdts-members.html b/docs/d9/d66/classshaka_1_1media_1_1mp2t_1_1EsParserAdts-members.html index d175c987e9..b344f272ae 100644 --- a/docs/d9/d66/classshaka_1_1media_1_1mp2t_1_1EsParserAdts-members.html +++ b/docs/d9/d66/classshaka_1_1media_1_1mp2t_1_1EsParserAdts-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d67/structshaka_1_1media_1_1H265VuiParameters.html b/docs/d9/d67/structshaka_1_1media_1_1H265VuiParameters.html index 415496b807..38a4824306 100644 --- a/docs/d9/d67/structshaka_1_1media_1_1H265VuiParameters.html +++ b/docs/d9/d67/structshaka_1_1media_1_1H265VuiParameters.html @@ -131,7 +131,7 @@ int min_spatial_segmentati diff --git a/docs/d9/d6a/structshaka_1_1media_1_1H264SliceHeader-members.html b/docs/d9/d6a/structshaka_1_1media_1_1H264SliceHeader-members.html index c3b287fac4..de3b3a25b6 100644 --- a/docs/d9/d6a/structshaka_1_1media_1_1H264SliceHeader-members.html +++ b/docs/d9/d6a/structshaka_1_1media_1_1H264SliceHeader-members.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d76/ts__muxer_8cc_source.html b/docs/d9/d76/ts__muxer_8cc_source.html index 5acfff639d..29a4770885 100644 --- a/docs/d9/d76/ts__muxer_8cc_source.html +++ b/docs/d9/d76/ts__muxer_8cc_source.html @@ -155,7 +155,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d81/classshaka_1_1media_1_1ClosureThread-members.html b/docs/d9/d81/classshaka_1_1media_1_1ClosureThread-members.html index 904f80c71b..a012ca899d 100644 --- a/docs/d9/d81/classshaka_1_1media_1_1ClosureThread-members.html +++ b/docs/d9/d81/classshaka_1_1media_1_1ClosureThread-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d86/limits_8h_source.html b/docs/d9/d86/limits_8h_source.html index 4fd06af6ba..3480cd0255 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/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html b/docs/d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html index 1637a50ebe..1d84f58214 100644 --- a/docs/d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html +++ b/docs/d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html @@ -152,7 +152,7 @@ Additional Inherited Members diff --git a/docs/d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html b/docs/d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html index 21a185189c..dd222a1d98 100644 --- a/docs/d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html +++ b/docs/d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d9/d90/classshaka_1_1media_1_1ProtectionSystemSpecificInfo-members.html b/docs/d9/d90/classshaka_1_1media_1_1ProtectionSystemSpecificInfo-members.html index 995dbeea2d..fc090cc0ca 100644 --- a/docs/d9/d90/classshaka_1_1media_1_1ProtectionSystemSpecificInfo-members.html +++ b/docs/d9/d90/classshaka_1_1media_1_1ProtectionSystemSpecificInfo-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d90/text__track_8h_source.html b/docs/d9/d90/text__track_8h_source.html index 2346f08b16..ec346fc5dd 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 cdee614ddd..642f86ab5e 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/da4/stream__descriptor_8h_source.html b/docs/d9/da4/stream__descriptor_8h_source.html index c8abc3af24..c1e0f27fda 100644 --- a/docs/d9/da4/stream__descriptor_8h_source.html +++ b/docs/d9/da4/stream__descriptor_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html b/docs/d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html index 4366f99a9a..8bbe5f4dd6 100644 --- a/docs/d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html +++ b/docs/d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html @@ -513,7 +513,7 @@ Additional Inherited Members diff --git a/docs/d9/da6/structshaka_1_1media_1_1Cue-members.html b/docs/d9/da6/structshaka_1_1media_1_1Cue-members.html index a840811737..0c7075da73 100644 --- a/docs/d9/da6/structshaka_1_1media_1_1Cue-members.html +++ b/docs/d9/da6/structshaka_1_1media_1_1Cue-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/da7/classshaka_1_1media_1_1mp4_1_1Segmenter-members.html b/docs/d9/da7/classshaka_1_1media_1_1mp4_1_1Segmenter-members.html index 52101e11aa..b7882e95eb 100644 --- a/docs/d9/da7/classshaka_1_1media_1_1mp4_1_1Segmenter-members.html +++ b/docs/d9/da7/classshaka_1_1media_1_1mp4_1_1Segmenter-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/db2/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html b/docs/d9/db2/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html index dc4c762721..5c7ad291b6 100644 --- a/docs/d9/db2/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html +++ b/docs/d9/db2/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/db9/content__protection__element_8cc_source.html b/docs/d9/db9/content__protection__element_8cc_source.html index 47edf1c1dc..ef24a5130b 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 1773c640fb..1e981515cd 100644 --- a/docs/d9/db9/muxer_8cc_source.html +++ b/docs/d9/db9/muxer_8cc_source.html @@ -220,7 +220,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dbd/classshaka_1_1media_1_1MemoryFile.html b/docs/d9/dbd/classshaka_1_1media_1_1MemoryFile.html index bd58b02d9b..fbb2dffed0 100644 --- a/docs/d9/dbd/classshaka_1_1media_1_1MemoryFile.html +++ b/docs/d9/dbd/classshaka_1_1media_1_1MemoryFile.html @@ -198,7 +198,7 @@ bool shaka::media::File.

-

Definition at line 62 of file memory_file.cc.

+

Definition at line 63 of file memory_file.cc.

@@ -225,7 +225,7 @@ bool 

Deletes the memory file data with the given file_name. Any objects open with that file name will be in an undefined state.

-

Definition at line 134 of file memory_file.cc.

+

Definition at line 135 of file memory_file.cc.

@@ -251,7 +251,7 @@ bool 

Deletes all memory file data created. This assumes that there are no MemoryFile objects alive. Any alive objects will be in an undefined state.

-

Definition at line 130 of file memory_file.cc.

+

Definition at line 131 of file memory_file.cc.

@@ -280,7 +280,7 @@ bool shaka::media::File.

-

Definition at line 95 of file memory_file.cc.

+

Definition at line 96 of file memory_file.cc.

@@ -327,7 +327,7 @@ bool shaka::media::File.

-

Definition at line 67 of file memory_file.cc.

+

Definition at line 68 of file memory_file.cc.

@@ -363,7 +363,7 @@ bool shaka::media::File.

-

Definition at line 99 of file memory_file.cc.

+

Definition at line 100 of file memory_file.cc.

@@ -391,7 +391,7 @@ bool shaka::media::File.

-

Definition at line 90 of file memory_file.cc.

+

Definition at line 91 of file memory_file.cc.

@@ -427,7 +427,7 @@ bool shaka::media::File.

-

Definition at line 107 of file memory_file.cc.

+

Definition at line 108 of file memory_file.cc.

@@ -474,7 +474,7 @@ bool shaka::media::File.

-

Definition at line 79 of file memory_file.cc.

+

Definition at line 80 of file memory_file.cc.

@@ -485,7 +485,7 @@ bool  diff --git a/docs/d9/dc4/classshaka_1_1media_1_1BufferReader-members.html b/docs/d9/dc4/classshaka_1_1media_1_1BufferReader-members.html index 5602e977aa..0a9996d4e7 100644 --- a/docs/d9/dc4/classshaka_1_1media_1_1BufferReader-members.html +++ b/docs/d9/dc4/classshaka_1_1media_1_1BufferReader-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dc4/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html b/docs/d9/dc4/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html index 47d7a88585..e53647a003 100644 --- a/docs/d9/dc4/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html +++ b/docs/d9/dc4/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html @@ -104,7 +104,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 4a90dbdf17..bbb002550b 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/webm__video__client_8h_source.html b/docs/d9/dcc/webm__video__client_8h_source.html index 6a1d54b7dd..27dd00d5d7 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 dadb5a921e..fc2e826e38 100644 --- a/docs/d9/de3/muxer__listener__internal_8cc_source.html +++ b/docs/d9/de3/muxer__listener__internal_8cc_source.html @@ -348,7 +348,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/de6/classshaka_1_1media_1_1LocalFile.html b/docs/d9/de6/classshaka_1_1media_1_1LocalFile.html index dbfdcc75b5..509771896a 100644 --- a/docs/d9/de6/classshaka_1_1media_1_1LocalFile.html +++ b/docs/d9/de6/classshaka_1_1media_1_1LocalFile.html @@ -502,7 +502,7 @@ bool  diff --git a/docs/d9/dea/classshaka_1_1media_1_1FixedKeySource-members.html b/docs/d9/dea/classshaka_1_1media_1_1FixedKeySource-members.html index 5e591d9878..b833c6defe 100644 --- a/docs/d9/dea/classshaka_1_1media_1_1FixedKeySource-members.html +++ b/docs/d9/dea/classshaka_1_1media_1_1FixedKeySource-members.html @@ -116,7 +116,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 7cea60e225..40d2b287f3 100644 --- a/docs/d9/ded/aac__audio__specific__config_8cc_source.html +++ b/docs/d9/ded/aac__audio__specific__config_8cc_source.html @@ -358,7 +358,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/df8/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html b/docs/d9/df8/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html index 6de4a12622..ce4c86c259 100644 --- a/docs/d9/df8/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html +++ b/docs/d9/df8/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html b/docs/d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html index e525ec6ad3..b180282176 100644 --- a/docs/d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html +++ b/docs/d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html @@ -242,7 +242,7 @@ false if max_offset > diff --git a/docs/d9/dff/structshaka_1_1media_1_1H264ModificationOfPicNum.html b/docs/d9/dff/structshaka_1_1media_1_1H264ModificationOfPicNum.html index ad19d7cf7f..0f1a85ce8f 100644 --- a/docs/d9/dff/structshaka_1_1media_1_1H264ModificationOfPicNum.html +++ b/docs/d9/dff/structshaka_1_1media_1_1H264ModificationOfPicNum.html @@ -119,7 +119,7 @@ union { diff --git a/docs/da/d04/audio__stream__info_8cc_source.html b/docs/da/d04/audio__stream__info_8cc_source.html index 4f2d7234cb..37fff5b0ae 100644 --- a/docs/da/d04/audio__stream__info_8cc_source.html +++ b/docs/da/d04/audio__stream__info_8cc_source.html @@ -223,7 +223,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d10/classshaka_1_1media_1_1mp2t_1_1EsParser.html b/docs/da/d10/classshaka_1_1media_1_1mp2t_1_1EsParser.html index f1f96fbe3e..5591c5f5d9 100644 --- a/docs/da/d10/classshaka_1_1media_1_1mp2t_1_1EsParser.html +++ b/docs/da/d10/classshaka_1_1media_1_1mp2t_1_1EsParser.html @@ -146,7 +146,7 @@ uint32_t pid () diff --git a/docs/da/d1a/structshaka_1_1media_1_1mp4_1_1Language.html b/docs/da/d1a/structshaka_1_1media_1_1mp4_1_1Language.html index a73c466c9d..1cd2666bc5 100644 --- a/docs/da/d1a/structshaka_1_1media_1_1mp4_1_1Language.html +++ b/docs/da/d1a/structshaka_1_1media_1_1mp4_1_1Language.html @@ -120,7 +120,7 @@ std::string code< diff --git a/docs/da/d1c/classshaka_1_1media_1_1mp2t_1_1TsSection.html b/docs/da/d1c/classshaka_1_1media_1_1mp2t_1_1TsSection.html index d5500501c5..27581c7b25 100644 --- a/docs/da/d1c/classshaka_1_1media_1_1mp2t_1_1TsSection.html +++ b/docs/da/d1c/classshaka_1_1media_1_1mp2t_1_1TsSection.html @@ -141,7 +141,7 @@ virtual void Reset ()= diff --git a/docs/da/d22/key__rotation__fragmenter_8h_source.html b/docs/da/d22/key__rotation__fragmenter_8h_source.html index 58a72b7f99..2fced24634 100644 --- a/docs/da/d22/key__rotation__fragmenter_8h_source.html +++ b/docs/da/d22/key__rotation__fragmenter_8h_source.html @@ -156,7 +156,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d23/classshaka_1_1media_1_1mp2t_1_1EsParserH26x.html b/docs/da/d23/classshaka_1_1media_1_1mp2t_1_1EsParserH26x.html index 4ebe1f2b5a..dfa4f3301c 100644 --- a/docs/da/d23/classshaka_1_1media_1_1mp2t_1_1EsParserH26x.html +++ b/docs/da/d23/classshaka_1_1media_1_1mp2t_1_1EsParserH26x.html @@ -159,7 +159,7 @@ const scoped_refptr
diff --git a/docs/da/d23/ts__muxer_8h_source.html b/docs/da/d23/ts__muxer_8h_source.html index 123630cda3..623ad561fa 100644 --- a/docs/da/d23/ts__muxer_8h_source.html +++ b/docs/da/d23/ts__muxer_8h_source.html @@ -137,7 +137,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 f4404e8de0..a6cd3bfc7a 100644 --- a/docs/da/d24/h265__parser_8h_source.html +++ b/docs/da/d24/h265__parser_8h_source.html @@ -450,7 +450,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d2a/text__stream__info_8h_source.html b/docs/da/d2a/text__stream__info_8h_source.html index 97ba6da134..e54797f7cc 100644 --- a/docs/da/d2a/text__stream__info_8h_source.html +++ b/docs/da/d2a/text__stream__info_8h_source.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d2d/classshaka_1_1media_1_1webm_1_1WebMMuxer-members.html b/docs/da/d2d/classshaka_1_1media_1_1webm_1_1WebMMuxer-members.html index 36d29e9816..5154afe83c 100644 --- a/docs/da/d2d/classshaka_1_1media_1_1webm_1_1WebMMuxer-members.html +++ b/docs/da/d2d/classshaka_1_1media_1_1webm_1_1WebMMuxer-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d3e/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio-members.html b/docs/da/d3e/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio-members.html index 2d28805046..6b9a87fcfe 100644 --- a/docs/da/d3e/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio-members.html +++ b/docs/da/d3e/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio-members.html @@ -110,7 +110,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 14e3915b4e..351ab3199f 100644 --- a/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html +++ b/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html @@ -135,15 +135,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
62 
63 #endif // MEDIA_FORMATS_MP4_MULTI_SEGMENT_SEGMENTER_H_
This structure contains the list of configuration options for Muxer.
Definition: muxer_options.h:18
-
bool GetInitRange(size_t *offset, size_t *size) override
-
bool GetIndexRange(size_t *offset, size_t *size) override
+
bool GetInitRange(size_t *offset, size_t *size) override
+
bool GetIndexRange(size_t *offset, size_t *size) override
diff --git a/docs/da/d43/structshaka_1_1ContentProtectionElement.html b/docs/da/d43/structshaka_1_1ContentProtectionElement.html index aeaf25e192..4d008f4d7a 100644 --- a/docs/da/d43/structshaka_1_1ContentProtectionElement.html +++ b/docs/da/d43/structshaka_1_1ContentProtectionElement.html @@ -123,7 +123,7 @@ std::vector< El diff --git a/docs/da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html b/docs/da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html index 3e33c36938..cdf14ad5d7 100644 --- a/docs/da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html +++ b/docs/da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html @@ -313,7 +313,7 @@ Static Public Member Functions diff --git a/docs/da/d50/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader.html b/docs/da/d50/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader.html index 19a9047949..2b56ac159f 100644 --- a/docs/da/d50/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader.html +++ b/docs/da/d50/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/da/d53/es__parser__h265_8cc_source.html b/docs/da/d53/es__parser__h265_8cc_source.html index 48ab771857..75c1db214b 100644 --- a/docs/da/d53/es__parser__h265_8cc_source.html +++ b/docs/da/d53/es__parser__h265_8cc_source.html @@ -256,7 +256,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d59/structshaka_1_1media_1_1mp4_1_1CompactSampleSize.html b/docs/da/d59/structshaka_1_1media_1_1mp4_1_1CompactSampleSize.html index c5355e99a8..1369cf0c20 100644 --- a/docs/da/d59/structshaka_1_1media_1_1mp4_1_1CompactSampleSize.html +++ b/docs/da/d59/structshaka_1_1media_1_1mp4_1_1CompactSampleSize.html @@ -185,7 +185,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 d0bbf5ff5d..c2b1cc4c48 100644 --- a/docs/da/d5c/widevine__key__source_8h_source.html +++ b/docs/da/d5c/widevine__key__source_8h_source.html @@ -222,7 +222,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d5e/classshaka_1_1media_1_1H264VideoSliceHeaderParser-members.html b/docs/da/d5e/classshaka_1_1media_1_1H264VideoSliceHeaderParser-members.html index 9a1863bf11..55ae1b19bd 100644 --- a/docs/da/d5e/classshaka_1_1media_1_1H264VideoSliceHeaderParser-members.html +++ b/docs/da/d5e/classshaka_1_1media_1_1H264VideoSliceHeaderParser-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d60/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html b/docs/da/d60/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html index 711e1be842..96d05a2c54 100644 --- a/docs/da/d60/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html +++ b/docs/da/d60/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d64/classshaka_1_1media_1_1mp2t_1_1H264ProgramMapTableWriter-members.html b/docs/da/d64/classshaka_1_1media_1_1mp2t_1_1H264ProgramMapTableWriter-members.html index 3a76ea7fcb..6d6449e40d 100644 --- a/docs/da/d64/classshaka_1_1media_1_1mp2t_1_1H264ProgramMapTableWriter-members.html +++ b/docs/da/d64/classshaka_1_1media_1_1mp2t_1_1H264ProgramMapTableWriter-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d6e/structshaka_1_1media_1_1mp4_1_1AudioRollRecoveryEntry.html b/docs/da/d6e/structshaka_1_1media_1_1mp4_1_1AudioRollRecoveryEntry.html index 4a67eb05a6..a711ba68ce 100644 --- a/docs/da/d6e/structshaka_1_1media_1_1mp4_1_1AudioRollRecoveryEntry.html +++ b/docs/da/d6e/structshaka_1_1media_1_1mp4_1_1AudioRollRecoveryEntry.html @@ -120,7 +120,7 @@ int16_t roll_distance< 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 e3453f3879..ad2b25224c 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/d85/classshaka_1_1media_1_1mp2t_1_1TsSegmenter-members.html b/docs/da/d85/classshaka_1_1media_1_1mp2t_1_1TsSegmenter-members.html index 34d6d42b5a..1793a53477 100644 --- a/docs/da/d85/classshaka_1_1media_1_1mp2t_1_1TsSegmenter-members.html +++ b/docs/da/d85/classshaka_1_1media_1_1mp2t_1_1TsSegmenter-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d88/mp4__muxer_8cc_source.html b/docs/da/d88/mp4__muxer_8cc_source.html index ce9bd375c4..e545600a88 100644 --- a/docs/da/d88/mp4__muxer_8cc_source.html +++ b/docs/da/d88/mp4__muxer_8cc_source.html @@ -503,7 +503,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d8b/classshaka_1_1media_1_1WebMMediaParser-members.html b/docs/da/d8b/classshaka_1_1media_1_1WebMMediaParser-members.html index 96d291f410..bea97e24d2 100644 --- a/docs/da/d8b/classshaka_1_1media_1_1WebMMediaParser-members.html +++ b/docs/da/d8b/classshaka_1_1media_1_1WebMMediaParser-members.html @@ -105,7 +105,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 1d9da9553d..f7f2959c3e 100644 --- a/docs/da/d8e/container__names_8cc_source.html +++ b/docs/da/d8e/container__names_8cc_source.html @@ -1863,7 +1863,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d9b/structshaka_1_1media_1_1mp4_1_1CompositionOffset-members.html b/docs/da/d9b/structshaka_1_1media_1_1mp4_1_1CompositionOffset-members.html index b39ac69a4f..177cafecf7 100644 --- a/docs/da/d9b/structshaka_1_1media_1_1mp4_1_1CompositionOffset-members.html +++ b/docs/da/d9b/structshaka_1_1media_1_1mp4_1_1CompositionOffset-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d9d/structshaka_1_1media_1_1mp4_1_1EC3Specific-members.html b/docs/da/d9d/structshaka_1_1media_1_1mp4_1_1EC3Specific-members.html index 7654f52484..e3a49dbd91 100644 --- a/docs/da/d9d/structshaka_1_1media_1_1mp4_1_1EC3Specific-members.html +++ b/docs/da/d9d/structshaka_1_1media_1_1mp4_1_1EC3Specific-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d9f/classshaka_1_1MpdNotifierFactory-members.html b/docs/da/d9f/classshaka_1_1MpdNotifierFactory-members.html index b675aa6c9e..b88e4f3de7 100644 --- a/docs/da/d9f/classshaka_1_1MpdNotifierFactory-members.html +++ b/docs/da/d9f/classshaka_1_1MpdNotifierFactory-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d9f/classshaka_1_1media_1_1MockMuxerListener-members.html b/docs/da/d9f/classshaka_1_1media_1_1MockMuxerListener-members.html index dc04d7abb5..e9a6cd6c7a 100644 --- a/docs/da/d9f/classshaka_1_1media_1_1MockMuxerListener-members.html +++ b/docs/da/d9f/classshaka_1_1media_1_1MockMuxerListener-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/da1/classshaka_1_1media_1_1mp2t_1_1TsPacket.html b/docs/da/da1/classshaka_1_1media_1_1mp2t_1_1TsPacket.html index b80c1ba9eb..51fd506e9c 100644 --- a/docs/da/da1/classshaka_1_1media_1_1mp2t_1_1TsPacket.html +++ b/docs/da/da1/classshaka_1_1media_1_1mp2t_1_1TsPacket.html @@ -145,7 +145,7 @@ static const int kPacketSi diff --git a/docs/da/db2/classshaka_1_1Representation-members.html b/docs/da/db2/classshaka_1_1Representation-members.html index 9dff34d5f6..f80d6abf77 100644 --- a/docs/da/db2/classshaka_1_1Representation-members.html +++ b/docs/da/db2/classshaka_1_1Representation-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dbb/structshaka_1_1media_1_1mp4_1_1HandlerReference.html b/docs/da/dbb/structshaka_1_1media_1_1mp4_1_1HandlerReference.html index d6ad3e2449..1fb0e56fcd 100644 --- a/docs/da/dbb/structshaka_1_1media_1_1mp4_1_1HandlerReference.html +++ b/docs/da/dbb/structshaka_1_1media_1_1mp4_1_1HandlerReference.html @@ -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 5f8911b8a4..bbdebbfd54 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/dc4/structshaka_1_1media_1_1mp4_1_1TrackHeader.html b/docs/da/dc4/structshaka_1_1media_1_1mp4_1_1TrackHeader.html index 741c235fe5..17a61f66ac 100644 --- a/docs/da/dc4/structshaka_1_1media_1_1mp4_1_1TrackHeader.html +++ b/docs/da/dc4/structshaka_1_1media_1_1mp4_1_1TrackHeader.html @@ -215,7 +215,7 @@ Additional Inherited Members diff --git a/docs/da/dcb/es__descriptor_8h_source.html b/docs/da/dcb/es__descriptor_8h_source.html index 973a3f4254..970d07db72 100644 --- a/docs/da/dcb/es__descriptor_8h_source.html +++ b/docs/da/dcb/es__descriptor_8h_source.html @@ -183,7 +183,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dd0/structshaka_1_1media_1_1mp4_1_1Edit.html b/docs/da/dd0/structshaka_1_1media_1_1mp4_1_1Edit.html index 42e0278da5..496287e750 100644 --- a/docs/da/dd0/structshaka_1_1media_1_1mp4_1_1Edit.html +++ b/docs/da/dd0/structshaka_1_1media_1_1mp4_1_1Edit.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/da/dd0/webm__info__parser_8h_source.html b/docs/da/dd0/webm__info__parser_8h_source.html index 44297133df..07ef132557 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 6fd6f5ab82..18c7e68868 100644 --- a/docs/da/dd1/fragmenter_8h_source.html +++ b/docs/da/dd1/fragmenter_8h_source.html @@ -205,7 +205,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dd2/classshaka_1_1media_1_1mp2t_1_1TsPacket-members.html b/docs/da/dd2/classshaka_1_1media_1_1mp2t_1_1TsPacket-members.html index b9aededd5a..f0e43d18aa 100644 --- a/docs/da/dd2/classshaka_1_1media_1_1mp2t_1_1TsPacket-members.html +++ b/docs/da/dd2/classshaka_1_1media_1_1mp2t_1_1TsPacket-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dd6/classshaka_1_1media_1_1H264ByteToUnitStreamConverter-members.html b/docs/da/dd6/classshaka_1_1media_1_1H264ByteToUnitStreamConverter-members.html index 61b2f50c35..e04e3e50c9 100644 --- a/docs/da/dd6/classshaka_1_1media_1_1H264ByteToUnitStreamConverter-members.html +++ b/docs/da/dd6/classshaka_1_1media_1_1H264ByteToUnitStreamConverter-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dd8/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html b/docs/da/dd8/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html index 895565e8f4..2b7cf99434 100644 --- a/docs/da/dd8/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html +++ b/docs/da/dd8/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dda/structshaka_1_1media_1_1H264SEIRecoveryPoint-members.html b/docs/da/dda/structshaka_1_1media_1_1H264SEIRecoveryPoint-members.html index f35e89cc35..fb5b51ee1f 100644 --- a/docs/da/dda/structshaka_1_1media_1_1H264SEIRecoveryPoint-members.html +++ b/docs/da/dda/structshaka_1_1media_1_1H264SEIRecoveryPoint-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/ddd/classshaka_1_1media_1_1WidevineKeySource.html b/docs/da/ddd/classshaka_1_1media_1_1WidevineKeySource.html index a05176107a..166781543f 100644 --- a/docs/da/ddd/classshaka_1_1media_1_1WidevineKeySource.html +++ b/docs/da/ddd/classshaka_1_1media_1_1WidevineKeySource.html @@ -550,7 +550,7 @@ static std::string  diff --git a/docs/da/ddf/structshaka_1_1media_1_1mp4_1_1SampleDescription-members.html b/docs/da/ddf/structshaka_1_1media_1_1mp4_1_1SampleDescription-members.html index 48fb15481c..ac40aa4b0f 100644 --- a/docs/da/ddf/structshaka_1_1media_1_1mp4_1_1SampleDescription-members.html +++ b/docs/da/ddf/structshaka_1_1media_1_1mp4_1_1SampleDescription-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/de2/mock__mpd__builder_8cc_source.html b/docs/da/de2/mock__mpd__builder_8cc_source.html index 070932157e..6a09b32bf5 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/classshaka_1_1media_1_1WebMClusterParser.html b/docs/da/de4/classshaka_1_1media_1_1WebMClusterParser.html index ba3293d0b2..4bbee849f7 100644 --- a/docs/da/de4/classshaka_1_1media_1_1WebMClusterParser.html +++ b/docs/da/de4/classshaka_1_1media_1_1WebMClusterParser.html @@ -274,7 +274,7 @@ Additional Inherited Members -

Definition at line 28 of file webm_cluster_parser.cc.

+

Definition at line 29 of file webm_cluster_parser.cc.

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

Flush data currently in the parser and reset the parser so it can accept a new cluster.

Returns
true on success, false otherwise.
-

Definition at line 82 of file webm_cluster_parser.cc.

+

Definition at line 83 of file webm_cluster_parser.cc.

@@ -354,7 +354,7 @@ Additional Inherited Members
The number of bytes parsed on success.
-

Definition at line 90 of file webm_cluster_parser.cc.

+

Definition at line 91 of file webm_cluster_parser.cc.

@@ -365,7 +365,7 @@ The number of bytes parsed on success. diff --git a/docs/da/de6/structshaka_1_1media_1_1mp4_1_1SchemeType-members.html b/docs/da/de6/structshaka_1_1media_1_1mp4_1_1SchemeType-members.html index 0e11eab28b..dfdeaebf57 100644 --- a/docs/da/de6/structshaka_1_1media_1_1mp4_1_1SchemeType-members.html +++ b/docs/da/de6/structshaka_1_1media_1_1mp4_1_1SchemeType-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/de8/classshaka_1_1media_1_1AudioStreamInfo-members.html b/docs/da/de8/classshaka_1_1media_1_1AudioStreamInfo-members.html index 50c12abb0a..dccda4afaf 100644 --- a/docs/da/de8/classshaka_1_1media_1_1AudioStreamInfo-members.html +++ b/docs/da/de8/classshaka_1_1media_1_1AudioStreamInfo-members.html @@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/de9/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html b/docs/da/de9/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html index aaab5519a4..6bfc96d86a 100644 --- a/docs/da/de9/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html +++ b/docs/da/de9/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html @@ -179,7 +179,7 @@ Additional Inherited Members diff --git a/docs/da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html b/docs/da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html index aff973c6a0..a4e8e2f4dc 100644 --- a/docs/da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html +++ b/docs/da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html @@ -152,7 +152,7 @@ int64_t  diff --git a/docs/da/df4/aes__decryptor_8cc_source.html b/docs/da/df4/aes__decryptor_8cc_source.html index de21c46387..86275a2d9e 100644 --- a/docs/da/df4/aes__decryptor_8cc_source.html +++ b/docs/da/df4/aes__decryptor_8cc_source.html @@ -96,7 +96,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
7 #include "packager/media/base/aes_decryptor.h"
8 
9 #include <openssl/aes.h>
-
10 
+
10 #include <algorithm>
11 #include "packager/base/logging.h"
12 
13 namespace {
@@ -258,7 +258,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/df5/structshaka_1_1media_1_1mp4_1_1SampleDescription.html b/docs/da/df5/structshaka_1_1media_1_1mp4_1_1SampleDescription.html index fbf3b33a13..617577b142 100644 --- a/docs/da/df5/structshaka_1_1media_1_1mp4_1_1SampleDescription.html +++ b/docs/da/df5/structshaka_1_1media_1_1mp4_1_1SampleDescription.html @@ -191,7 +191,7 @@ Additional Inherited Members diff --git a/docs/da/df9/classshaka_1_1media_1_1AesPatternCryptor-members.html b/docs/da/df9/classshaka_1_1media_1_1AesPatternCryptor-members.html index f15ed19bc3..73c8217c51 100644 --- a/docs/da/df9/classshaka_1_1media_1_1AesPatternCryptor-members.html +++ b/docs/da/df9/classshaka_1_1media_1_1AesPatternCryptor-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d05/structshaka_1_1media_1_1H265SliceHeader.html b/docs/db/d05/structshaka_1_1media_1_1H265SliceHeader.html index 84c1f107ab..a12150fd99 100644 --- a/docs/db/d05/structshaka_1_1media_1_1H265SliceHeader.html +++ b/docs/db/d05/structshaka_1_1media_1_1H265SliceHeader.html @@ -236,7 +236,7 @@ std::vector< int > e diff --git a/docs/db/d11/structshaka_1_1media_1_1mp4_1_1CodecConfiguration.html b/docs/db/d11/structshaka_1_1media_1_1mp4_1_1CodecConfiguration.html index 0bb7e09d3c..8a61cf5758 100644 --- a/docs/db/d11/structshaka_1_1media_1_1mp4_1_1CodecConfiguration.html +++ b/docs/db/d11/structshaka_1_1media_1_1mp4_1_1CodecConfiguration.html @@ -176,7 +176,7 @@ Additional Inherited Members diff --git a/docs/db/d14/classshaka_1_1media_1_1H265Parser-members.html b/docs/db/d14/classshaka_1_1media_1_1H265Parser-members.html index cec001e160..13a96c7d95 100644 --- a/docs/db/d14/classshaka_1_1media_1_1H265Parser-members.html +++ b/docs/db/d14/classshaka_1_1media_1_1H265Parser-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d14/structshaka_1_1media_1_1H264WeightingFactors-members.html b/docs/db/d14/structshaka_1_1media_1_1H264WeightingFactors-members.html index a39b2887c1..3a5054e94c 100644 --- a/docs/db/d14/structshaka_1_1media_1_1H264WeightingFactors-members.html +++ b/docs/db/d14/structshaka_1_1media_1_1H264WeightingFactors-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d21/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader.html b/docs/db/d21/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader.html index e32c6a7342..7cbe72962a 100644 --- a/docs/db/d21/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader.html +++ b/docs/db/d21/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader.html @@ -175,7 +175,7 @@ uint32_t flags diff --git a/docs/db/d30/classshaka_1_1media_1_1mp4_1_1MP4Muxer.html b/docs/db/d30/classshaka_1_1media_1_1mp4_1_1MP4Muxer.html index 78b6d8864f..9cdd16dee9 100644 --- a/docs/db/d30/classshaka_1_1media_1_1mp4_1_1MP4Muxer.html +++ b/docs/db/d30/classshaka_1_1media_1_1mp4_1_1MP4Muxer.html @@ -179,7 +179,7 @@ FourCC protection_scheme 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 f64a68b329..372c2f5cd0 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 44f1970060..7a00630ff6 100644 --- a/docs/db/d31/track__run__iterator_8cc_source.html +++ b/docs/db/d31/track__run__iterator_8cc_source.html @@ -767,7 +767,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d38/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html b/docs/db/d38/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html index 70eb505225..14a4584a5e 100644 --- a/docs/db/d38/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html +++ b/docs/db/d38/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d3b/classshaka_1_1media_1_1VideoSliceHeaderParser-members.html b/docs/db/d3b/classshaka_1_1media_1_1VideoSliceHeaderParser-members.html index a784c60610..5ee0db6593 100644 --- a/docs/db/d3b/classshaka_1_1media_1_1VideoSliceHeaderParser-members.html +++ b/docs/db/d3b/classshaka_1_1media_1_1VideoSliceHeaderParser-members.html @@ -100,7 +100,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 e59a7ad91a..28dcb7fbc2 100644 --- a/docs/db/d45/mpd__notify__muxer__listener_8h_source.html +++ b/docs/db/d45/mpd__notify__muxer__listener_8h_source.html @@ -189,7 +189,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d4b/classshaka_1_1MockAdaptationSet.html b/docs/db/d4b/classshaka_1_1MockAdaptationSet.html index 42ee0015aa..bd2a1c7cde 100644 --- a/docs/db/d4b/classshaka_1_1MockAdaptationSet.html +++ b/docs/db/d4b/classshaka_1_1MockAdaptationSet.html @@ -183,7 +183,7 @@ Additional Inherited Members diff --git a/docs/db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html b/docs/db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html index 0bdc852cd7..277e809067 100644 --- a/docs/db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html +++ b/docs/db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html @@ -225,7 +225,7 @@ Public Member Functions diff --git a/docs/db/d51/mp2t__media__parser_8h_source.html b/docs/db/d51/mp2t__media__parser_8h_source.html index 7f4d261343..964bae5342 100644 --- a/docs/db/d51/mp2t__media__parser_8h_source.html +++ b/docs/db/d51/mp2t__media__parser_8h_source.html @@ -192,7 +192,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 bb833e414e..c67bd72a9c 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 @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d5a/classshaka_1_1media_1_1VP9Parser.html b/docs/db/d5a/classshaka_1_1media_1_1VP9Parser.html index a30eefdcb0..4669fb8b44 100644 --- a/docs/db/d5a/classshaka_1_1media_1_1VP9Parser.html +++ b/docs/db/d5a/classshaka_1_1media_1_1VP9Parser.html @@ -238,7 +238,7 @@ Additional Inherited Members diff --git a/docs/db/d60/mpd__options_8h_source.html b/docs/db/d60/mpd__options_8h_source.html index 14813a0cd1..595cffc273 100644 --- a/docs/db/d60/mpd__options_8h_source.html +++ b/docs/db/d60/mpd__options_8h_source.html @@ -126,7 +126,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 24f73f8d91..3b06653f48 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/d66/structshaka_1_1media_1_1mp4_1_1SegmentType-members.html b/docs/db/d66/structshaka_1_1media_1_1mp4_1_1SegmentType-members.html index 1487cc47dc..53e5cf5189 100644 --- a/docs/db/d66/structshaka_1_1media_1_1mp4_1_1SegmentType-members.html +++ b/docs/db/d66/structshaka_1_1media_1_1mp4_1_1SegmentType-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d71/http__key__fetcher_8h_source.html b/docs/db/d71/http__key__fetcher_8h_source.html index 20310e0604..eb527d66c5 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/d74/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord-members.html b/docs/db/d74/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord-members.html index f5cf6c3d71..95c7c57bd2 100644 --- a/docs/db/d74/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord-members.html +++ b/docs/db/d74/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d75/classshaka_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html b/docs/db/d75/classshaka_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html index 17484dfff5..51e799fd40 100644 --- a/docs/db/d75/classshaka_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html +++ b/docs/db/d75/classshaka_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html @@ -130,7 +130,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d78/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter-members.html b/docs/db/d78/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter-members.html index 0bf0226e5e..08b9d90e97 100644 --- a/docs/db/d78/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter-members.html +++ b/docs/db/d78/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d7e/muxer__options_8cc_source.html b/docs/db/d7e/muxer__options_8cc_source.html index 028f4885e6..6896a71915 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/d84/classshaka_1_1media_1_1AACAudioSpecificConfig-members.html b/docs/db/d84/classshaka_1_1media_1_1AACAudioSpecificConfig-members.html index 20c419e522..f37491fd64 100644 --- a/docs/db/d84/classshaka_1_1media_1_1AACAudioSpecificConfig-members.html +++ b/docs/db/d84/classshaka_1_1media_1_1AACAudioSpecificConfig-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d86/classshaka_1_1media_1_1NaluReader.html b/docs/db/d86/classshaka_1_1media_1_1NaluReader.html index ab342f8580..3831862ab3 100644 --- a/docs/db/d86/classshaka_1_1media_1_1NaluReader.html +++ b/docs/db/d86/classshaka_1_1media_1_1NaluReader.html @@ -228,7 +228,7 @@ static bool FindStartCode< diff --git a/docs/db/d8f/mp4__muxer_8h_source.html b/docs/db/d8f/mp4__muxer_8h_source.html index 6d99642ba0..7eabd4fb14 100644 --- a/docs/db/d8f/mp4__muxer_8h_source.html +++ b/docs/db/d8f/mp4__muxer_8h_source.html @@ -173,7 +173,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d94/classshaka_1_1media_1_1ClusterBuilder.html b/docs/db/d94/classshaka_1_1media_1_1ClusterBuilder.html index 2255901dea..6ae21b2b26 100644 --- a/docs/db/d94/classshaka_1_1media_1_1ClusterBuilder.html +++ b/docs/db/d94/classshaka_1_1media_1_1ClusterBuilder.html @@ -125,7 +125,7 @@ std::unique_ptr< diff --git a/docs/db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html b/docs/db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html index 78946e14ae..33317e05f9 100644 --- a/docs/db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html +++ b/docs/db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html @@ -339,7 +339,7 @@ template<typename T > diff --git a/docs/db/d95/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset.html b/docs/db/d95/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset.html index 330abe2f13..ed1b8e5cef 100644 --- a/docs/db/d95/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset.html +++ b/docs/db/d95/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/db/d96/wvm__media__parser_8h_source.html b/docs/db/d96/wvm__media__parser_8h_source.html index 7c7b41d708..d41cd4cf20 100644 --- a/docs/db/d96/wvm__media__parser_8h_source.html +++ b/docs/db/d96/wvm__media__parser_8h_source.html @@ -362,7 +362,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/da4/classBandwidthEstimator-members.html b/docs/db/da4/classBandwidthEstimator-members.html index 162cf23992..42071a3c23 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/da6/memory__file_8h_source.html b/docs/db/da6/memory__file_8h_source.html index ae108769d0..044220d38d 100644 --- a/docs/db/da6/memory__file_8h_source.html +++ b/docs/db/da6/memory__file_8h_source.html @@ -138,23 +138,23 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
59 
60 #endif // MEDIA_FILE_MEDIA_FILE_H_
61 
- -
int64_t Size() override
Definition: memory_file.cc:90
-
int64_t Read(void *buffer, uint64_t length) override
Definition: memory_file.cc:67
-
int64_t Write(const void *buffer, uint64_t length) override
Definition: memory_file.cc:79
+ +
int64_t Size() override
Definition: memory_file.cc:91
+
int64_t Read(void *buffer, uint64_t length) override
Definition: memory_file.cc:68
+
int64_t Write(const void *buffer, uint64_t length) override
Definition: memory_file.cc:80
Define an abstract file interface.
Definition: file.h:24
-
bool Tell(uint64_t *position) override
Definition: memory_file.cc:107
-
static void Delete(const std::string &file_name)
Definition: memory_file.cc:134
-
bool Open() override
Internal open. Should not be used directly.
Definition: memory_file.cc:112
-
bool Seek(uint64_t position) override
Definition: memory_file.cc:99
+
bool Tell(uint64_t *position) override
Definition: memory_file.cc:108
+
static void Delete(const std::string &file_name)
Definition: memory_file.cc:135
+
bool Open() override
Internal open. Should not be used directly.
Definition: memory_file.cc:113
+
bool Seek(uint64_t position) override
Definition: memory_file.cc:100
const std::string & file_name() const
Definition: file.h:91
-
bool Flush() override
Definition: memory_file.cc:95
-
bool Close() override
Definition: memory_file.cc:62
+
bool Flush() override
Definition: memory_file.cc:96
+
bool Close() override
Definition: memory_file.cc:63
diff --git a/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html b/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html index 960a2418e9..4dd3ddbb19 100644 --- a/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html +++ b/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html @@ -282,7 +282,7 @@ void set_language (con diff --git a/docs/db/dae/classshaka_1_1media_1_1WebMInfoParser.html b/docs/db/dae/classshaka_1_1media_1_1WebMInfoParser.html index b4f7a3d9ef..3653e165ed 100644 --- a/docs/db/dae/classshaka_1_1media_1_1WebMInfoParser.html +++ b/docs/db/dae/classshaka_1_1media_1_1WebMInfoParser.html @@ -175,7 +175,7 @@ The number of bytes parsed on success. diff --git a/docs/db/dae/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader-members.html b/docs/db/dae/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader-members.html index 44bf31f773..f3110fc482 100644 --- a/docs/db/dae/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader-members.html +++ b/docs/db/dae/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/db1/structshaka_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html b/docs/db/db1/structshaka_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html index 3527c53de0..5cbf349179 100644 --- a/docs/db/db1/structshaka_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html +++ b/docs/db/db1/structshaka_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/db8/structshaka_1_1media_1_1OnMediaEndParameters.html b/docs/db/db8/structshaka_1_1media_1_1OnMediaEndParameters.html index 66af7f4222..03d2a3c77c 100644 --- a/docs/db/db8/structshaka_1_1media_1_1OnMediaEndParameters.html +++ b/docs/db/db8/structshaka_1_1media_1_1OnMediaEndParameters.html @@ -130,7 +130,7 @@ uint64_t file_size diff --git a/docs/db/db8/structshaka_1_1media_1_1mp4_1_1TrackEncryption.html b/docs/db/db8/structshaka_1_1media_1_1mp4_1_1TrackEncryption.html index 8a7e99b399..c4de25d8f2 100644 --- a/docs/db/db8/structshaka_1_1media_1_1mp4_1_1TrackEncryption.html +++ b/docs/db/db8/structshaka_1_1media_1_1mp4_1_1TrackEncryption.html @@ -197,7 +197,7 @@ Additional Inherited Members diff --git a/docs/db/dcb/classshaka_1_1media_1_1VPxParser.html b/docs/db/dcb/classshaka_1_1media_1_1VPxParser.html index bf30444706..19246f3a0a 100644 --- a/docs/db/dcb/classshaka_1_1media_1_1VPxParser.html +++ b/docs/db/dcb/classshaka_1_1media_1_1VPxParser.html @@ -205,7 +205,7 @@ Protected Member Functions diff --git a/docs/db/dcc/classshaka_1_1media_1_1webm_1_1Encryptor-members.html b/docs/db/dcc/classshaka_1_1media_1_1webm_1_1Encryptor-members.html index 3110bf7b59..8284df0bfd 100644 --- a/docs/db/dcc/classshaka_1_1media_1_1webm_1_1Encryptor-members.html +++ b/docs/db/dcc/classshaka_1_1media_1_1webm_1_1Encryptor-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dcd/classshaka_1_1MpdWriter.html b/docs/db/dcd/classshaka_1_1MpdWriter.html index 16b6ad39ac..a13c712a10 100644 --- a/docs/db/dcd/classshaka_1_1MpdWriter.html +++ b/docs/db/dcd/classshaka_1_1MpdWriter.html @@ -123,7 +123,7 @@ class MpdWriterTest diff --git a/docs/db/dcd/structshaka_1_1media_1_1mp4_1_1DTSSpecific-members.html b/docs/db/dcd/structshaka_1_1media_1_1mp4_1_1DTSSpecific-members.html index 02867b1d26..2190f64c71 100644 --- a/docs/db/dcd/structshaka_1_1media_1_1mp4_1_1DTSSpecific-members.html +++ b/docs/db/dcd/structshaka_1_1media_1_1mp4_1_1DTSSpecific-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html b/docs/db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html index 9d7e9e3127..b6d1712814 100644 --- a/docs/db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html +++ b/docs/db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html @@ -531,7 +531,7 @@ Additional Inherited Members diff --git a/docs/db/dd2/chunk__info__iterator_8h_source.html b/docs/db/dd2/chunk__info__iterator_8h_source.html index bb50ce830b..589a40efc0 100644 --- a/docs/db/dd2/chunk__info__iterator_8h_source.html +++ b/docs/db/dd2/chunk__info__iterator_8h_source.html @@ -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 dddc1588b9..211a8576bc 100644 --- a/docs/db/dd9/sync__sample__iterator_8h_source.html +++ b/docs/db/dd9/sync__sample__iterator_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dde/h265__parser_8cc_source.html b/docs/db/dde/h265__parser_8cc_source.html index ecd798a52e..24d3958099 100644 --- a/docs/db/dde/h265__parser_8cc_source.html +++ b/docs/db/dde/h265__parser_8cc_source.html @@ -1221,7 +1221,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 6a272ca7dd..c79958e592 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 47b616738c..35c5cd12d8 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/structshaka_1_1media_1_1H265SliceHeader-members.html b/docs/db/df2/structshaka_1_1media_1_1H265SliceHeader-members.html index 7e0175a69a..8858518304 100644 --- a/docs/db/df2/structshaka_1_1media_1_1H265SliceHeader-members.html +++ b/docs/db/df2/structshaka_1_1media_1_1H265SliceHeader-members.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/df6/classshaka_1_1media_1_1Cluster-members.html b/docs/db/df6/classshaka_1_1media_1_1Cluster-members.html index 49117bc2fa..cdddb2294f 100644 --- a/docs/db/df6/classshaka_1_1media_1_1Cluster-members.html +++ b/docs/db/df6/classshaka_1_1media_1_1Cluster-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/df6/muxer_8h_source.html b/docs/db/df6/muxer_8h_source.html index 3c058dcc17..a720d5856d 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/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html b/docs/db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html index 071e812da6..8f7e293321 100644 --- a/docs/db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html +++ b/docs/db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html @@ -171,7 +171,7 @@ static const size_t kUnitS diff --git a/docs/db/dfb/mpd__utils_8cc_source.html b/docs/db/dfb/mpd__utils_8cc_source.html index fa44cc4d6f..193055f5c7 100644 --- a/docs/db/dfb/mpd__utils_8cc_source.html +++ b/docs/db/dfb/mpd__utils_8cc_source.html @@ -444,7 +444,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 7a1d1e9090..887cbbd51e 100644 --- a/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html +++ b/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html @@ -274,7 +274,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dff/structshaka_1_1media_1_1mp4_1_1ChunkInfo-members.html b/docs/db/dff/structshaka_1_1media_1_1mp4_1_1ChunkInfo-members.html index e0c2c671ea..a8c2a51718 100644 --- a/docs/db/dff/structshaka_1_1media_1_1mp4_1_1ChunkInfo-members.html +++ b/docs/db/dff/structshaka_1_1media_1_1mp4_1_1ChunkInfo-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d02/classshaka_1_1media_1_1IoCache-members.html b/docs/dc/d02/classshaka_1_1media_1_1IoCache-members.html index 210f633bbf..f632133fa5 100644 --- a/docs/dc/d02/classshaka_1_1media_1_1IoCache-members.html +++ b/docs/dc/d02/classshaka_1_1media_1_1IoCache-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html b/docs/dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html index 7ce4afe8a9..493c9f9cac 100644 --- a/docs/dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html +++ b/docs/dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html @@ -138,7 +138,7 @@ static const uint8_t kElem diff --git a/docs/dc/d06/classshaka_1_1media_1_1StreamInfo-members.html b/docs/dc/d06/classshaka_1_1media_1_1StreamInfo-members.html index 3ad80020cf..c506b548e1 100644 --- a/docs/dc/d06/classshaka_1_1media_1_1StreamInfo-members.html +++ b/docs/dc/d06/classshaka_1_1media_1_1StreamInfo-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d0b/classshaka_1_1media_1_1ESDescriptor-members.html b/docs/dc/d0b/classshaka_1_1media_1_1ESDescriptor-members.html index c066db9145..bd4eff3e6f 100644 --- a/docs/dc/d0b/classshaka_1_1media_1_1ESDescriptor-members.html +++ b/docs/dc/d0b/classshaka_1_1media_1_1ESDescriptor-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d16/classshaka_1_1media_1_1SeekHead.html b/docs/dc/d16/classshaka_1_1media_1_1SeekHead.html index b8aec6a55b..1262128452 100644 --- a/docs/dc/d16/classshaka_1_1media_1_1SeekHead.html +++ b/docs/dc/d16/classshaka_1_1media_1_1SeekHead.html @@ -148,7 +148,7 @@ void set_tracks_pos (u diff --git a/docs/dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html b/docs/dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html index 20e35da312..739de0b2ed 100644 --- a/docs/dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html +++ b/docs/dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
diff --git a/docs/dc/d18/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html b/docs/dc/d18/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html index 9daa8e5247..558f0f4a61 100644 --- a/docs/dc/d18/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html +++ b/docs/dc/d18/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d19/box_8h_source.html b/docs/dc/d19/box_8h_source.html index 2d3682f86e..81d22ab744 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 69af3188e3..d92070cea6 100644 --- a/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html +++ b/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html @@ -394,7 +394,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 ad97195a63..57d820a118 100644 --- a/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html +++ b/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html @@ -166,7 +166,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 cd153216e7..6133b90eb8 100644 --- a/docs/dc/d3c/webm__cluster__parser_8h_source.html +++ b/docs/dc/d3c/webm__cluster__parser_8h_source.html @@ -290,18 +290,18 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
base::Callback< void(const std::vector< scoped_refptr< StreamInfo > > &stream_info)> InitCB
Definition: media_parser.h:34
-
int Parse(const uint8_t *buf, int size)
-
bool Flush() WARN_UNUSED_RESULT
+
int Parse(const uint8_t *buf, int size)
+
bool Flush() WARN_UNUSED_RESULT
base::Callback< bool(uint32_t track_id, const scoped_refptr< MediaSample > &media_sample)> NewSampleCB
Definition: media_parser.h:43
-
WebMClusterParser(int64_t timecode_scale, scoped_refptr< AudioStreamInfo > audio_stream_info, scoped_refptr< VideoStreamInfo > video_stream_info, int64_t audio_default_duration, int64_t video_default_duration, const WebMTracksParser::TextTracks &text_tracks, const std::set< int64_t > &ignored_tracks, const std::string &audio_encryption_key_id, const std::string &video_encryption_key_id, const MediaParser::NewSampleCB &new_sample_cb, const MediaParser::InitCB &init_cb, KeySource *decryption_key_source)
+
WebMClusterParser(int64_t timecode_scale, scoped_refptr< AudioStreamInfo > audio_stream_info, scoped_refptr< VideoStreamInfo > video_stream_info, int64_t audio_default_duration, int64_t video_default_duration, const WebMTracksParser::TextTracks &text_tracks, const std::set< int64_t > &ignored_tracks, const std::string &audio_encryption_key_id, const std::string &video_encryption_key_id, const MediaParser::NewSampleCB &new_sample_cb, const MediaParser::InitCB &init_cb, KeySource *decryption_key_source)
-
void Reset()
Resets the parser state so it can accept a new cluster.
+
void Reset()
Resets the parser state so it can accept a new cluster.
diff --git a/docs/dc/d3f/key__source_8h_source.html b/docs/dc/d3f/key__source_8h_source.html index 86b2824a32..fd964e1bb7 100644 --- a/docs/dc/d3f/key__source_8h_source.html +++ b/docs/dc/d3f/key__source_8h_source.html @@ -168,7 +168,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d40/classshaka_1_1xml_1_1XmlNode-members.html b/docs/dc/d40/classshaka_1_1xml_1_1XmlNode-members.html index 09b5b3a2d0..4eba38d1e9 100644 --- a/docs/dc/d40/classshaka_1_1xml_1_1XmlNode-members.html +++ b/docs/dc/d40/classshaka_1_1xml_1_1XmlNode-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d41/classshaka_1_1media_1_1BufferWriter.html b/docs/dc/d41/classshaka_1_1media_1_1BufferWriter.html index a7430710e5..17b9c9bfd1 100644 --- a/docs/dc/d41/classshaka_1_1media_1_1BufferWriter.html +++ b/docs/dc/d41/classshaka_1_1media_1_1BufferWriter.html @@ -301,7 +301,7 @@ void AppendInt (int64_ diff --git a/docs/dc/d4a/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html b/docs/dc/d4a/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html index 21853140b0..49ebfe3b38 100644 --- a/docs/dc/d4a/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html +++ b/docs/dc/d4a/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d4f/structshaka_1_1media_1_1mp4_1_1TrackHeader-members.html b/docs/dc/d4f/structshaka_1_1media_1_1mp4_1_1TrackHeader-members.html index 817d88d4b2..f1617e9f03 100644 --- a/docs/dc/d4f/structshaka_1_1media_1_1mp4_1_1TrackHeader-members.html +++ b/docs/dc/d4f/structshaka_1_1media_1_1mp4_1_1TrackHeader-members.html @@ -125,7 +125,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 06489345b6..a17a1ad205 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 @@ -226,7 +226,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 6203f2f5d1..55516c9d40 100644 --- a/docs/dc/d52/decoding__time__iterator_8h_source.html +++ b/docs/dc/d52/decoding__time__iterator_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d53/webm_2segmenter_8cc_source.html b/docs/dc/d53/webm_2segmenter_8cc_source.html index 90aa3e73d2..cb9765ce7b 100644 --- a/docs/dc/d53/webm_2segmenter_8cc_source.html +++ b/docs/dc/d53/webm_2segmenter_8cc_source.html @@ -557,7 +557,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d54/structshaka_1_1media_1_1H264DecRefPicMarking.html b/docs/dc/d54/structshaka_1_1media_1_1H264DecRefPicMarking.html index 0d19f440e0..a30cf9380b 100644 --- a/docs/dc/d54/structshaka_1_1media_1_1H264DecRefPicMarking.html +++ b/docs/dc/d54/structshaka_1_1media_1_1H264DecRefPicMarking.html @@ -121,7 +121,7 @@ int max_long_term_frame_id diff --git a/docs/dc/d58/webm__media__parser_8h_source.html b/docs/dc/d58/webm__media__parser_8h_source.html index 4466274418..cdca22e83b 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/d5c/classshaka_1_1MockMpdNotifier.html b/docs/dc/d5c/classshaka_1_1MockMpdNotifier.html index 5d74c4ec3c..1aabb59d4c 100644 --- a/docs/dc/d5c/classshaka_1_1MockMpdNotifier.html +++ b/docs/dc/d5c/classshaka_1_1MockMpdNotifier.html @@ -160,7 +160,7 @@ Public Member Functions diff --git a/docs/dc/d69/structshaka_1_1media_1_1mp4_1_1CueSettingsBox-members.html b/docs/dc/d69/structshaka_1_1media_1_1mp4_1_1CueSettingsBox-members.html index e9879bf765..055e5bdef1 100644 --- a/docs/dc/d69/structshaka_1_1media_1_1mp4_1_1CueSettingsBox-members.html +++ b/docs/dc/d69/structshaka_1_1media_1_1mp4_1_1CueSettingsBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d6f/classshaka_1_1media_1_1webm_1_1Segmenter-members.html b/docs/dc/d6f/classshaka_1_1media_1_1webm_1_1Segmenter-members.html index 0e1056fe5e..131e7950fa 100644 --- a/docs/dc/d6f/classshaka_1_1media_1_1webm_1_1Segmenter-members.html +++ b/docs/dc/d6f/classshaka_1_1media_1_1webm_1_1Segmenter-members.html @@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d71/classshaka_1_1media_1_1mp2t_1_1TsSection-members.html b/docs/dc/d71/classshaka_1_1media_1_1mp2t_1_1TsSection-members.html index 8de37f636d..7e4a7aa24f 100644 --- a/docs/dc/d71/classshaka_1_1media_1_1mp2t_1_1TsSection-members.html +++ b/docs/dc/d71/classshaka_1_1media_1_1mp2t_1_1TsSection-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d73/classshaka_1_1media_1_1MockMuxerListener.html b/docs/dc/d73/classshaka_1_1media_1_1MockMuxerListener.html index 16b6e7bdca..437fe207f2 100644 --- a/docs/dc/d73/classshaka_1_1media_1_1MockMuxerListener.html +++ b/docs/dc/d73/classshaka_1_1media_1_1MockMuxerListener.html @@ -157,7 +157,7 @@ Additional Inherited Members diff --git a/docs/dc/d7b/closure__thread_8cc_source.html b/docs/dc/d7b/closure__thread_8cc_source.html index c342b67f58..a6c92d6dda 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 75b33e2e5f..de8dedb96f 100644 --- a/docs/dc/d7b/h264__parser_8cc_source.html +++ b/docs/dc/d7b/h264__parser_8cc_source.html @@ -1264,7 +1264,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d86/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html b/docs/dc/d86/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html index 155e3c4219..1dbe978476 100644 --- a/docs/dc/d86/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html +++ b/docs/dc/d86/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d8f/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader.html b/docs/dc/d8f/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader.html index a52d93dcb5..8fceedf16e 100644 --- a/docs/dc/d8f/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader.html +++ b/docs/dc/d8f/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/dc/da0/structshaka_1_1media_1_1mp4_1_1DTSSpecific.html b/docs/dc/da0/structshaka_1_1media_1_1mp4_1_1DTSSpecific.html index a433c3d36d..49422d7942 100644 --- a/docs/dc/da0/structshaka_1_1media_1_1mp4_1_1DTSSpecific.html +++ b/docs/dc/da0/structshaka_1_1media_1_1mp4_1_1DTSSpecific.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/dc/da1/classshaka_1_1MpdBuilder.html b/docs/dc/da1/classshaka_1_1MpdBuilder.html index 6369b24b6e..de5df2b96c 100644 --- a/docs/dc/da1/classshaka_1_1MpdBuilder.html +++ b/docs/dc/da1/classshaka_1_1MpdBuilder.html @@ -385,7 +385,7 @@ class DynamicMpdBuilderTes diff --git a/docs/dc/da6/classshaka_1_1media_1_1ContentEncoding.html b/docs/dc/da6/classshaka_1_1media_1_1ContentEncoding.html index 8084725ed2..9d3d8a6f13 100644 --- a/docs/dc/da6/classshaka_1_1media_1_1ContentEncoding.html +++ b/docs/dc/da6/classshaka_1_1media_1_1ContentEncoding.html @@ -208,7 +208,7 @@ Static Public Attributes diff --git a/docs/dc/dbd/structshaka_1_1media_1_1FileCloser-members.html b/docs/dc/dbd/structshaka_1_1media_1_1FileCloser-members.html index 2934413ee0..70e16e04a9 100644 --- a/docs/dc/dbd/structshaka_1_1media_1_1FileCloser-members.html +++ b/docs/dc/dbd/structshaka_1_1media_1_1FileCloser-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dbf/box__buffer_8h_source.html b/docs/dc/dbf/box__buffer_8h_source.html index 132a7c4ddb..03eb099546 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/dc1/classshaka_1_1xml_1_1RepresentationXmlNode-members.html b/docs/dc/dc1/classshaka_1_1xml_1_1RepresentationXmlNode-members.html index 316af444c0..79a224a697 100644 --- a/docs/dc/dc1/classshaka_1_1xml_1_1RepresentationXmlNode-members.html +++ b/docs/dc/dc1/classshaka_1_1xml_1_1RepresentationXmlNode-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dca/classshaka_1_1media_1_1WebMListParser.html b/docs/dc/dca/classshaka_1_1media_1_1WebMListParser.html index cd46f7d757..b32216d5c6 100644 --- a/docs/dc/dca/classshaka_1_1media_1_1WebMListParser.html +++ b/docs/dc/dca/classshaka_1_1media_1_1WebMListParser.html @@ -210,7 +210,7 @@ void  diff --git a/docs/dc/dd9/rsa__key_8cc_source.html b/docs/dc/dd9/rsa__key_8cc_source.html index bb6019dd92..aed847acd8 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/structshaka_1_1media_1_1mp4_1_1Media.html b/docs/dc/ddf/structshaka_1_1media_1_1mp4_1_1Media.html index e08607dc01..7d2f2b016f 100644 --- a/docs/dc/ddf/structshaka_1_1media_1_1mp4_1_1Media.html +++ b/docs/dc/ddf/structshaka_1_1media_1_1mp4_1_1Media.html @@ -179,7 +179,7 @@ Additional Inherited Members diff --git a/docs/dc/ddf/udp__file__posix_8cc_source.html b/docs/dc/ddf/udp__file__posix_8cc_source.html index 63c67bc103..68f3c525ac 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/structshaka_1_1SegmentInfo.html b/docs/dc/de1/structshaka_1_1SegmentInfo.html index 6245637b0d..bcaa99273c 100644 --- a/docs/dc/de1/structshaka_1_1SegmentInfo.html +++ b/docs/dc/de1/structshaka_1_1SegmentInfo.html @@ -118,7 +118,7 @@ uint64_t repeat diff --git a/docs/dc/deb/classshaka_1_1media_1_1mp4_1_1Fragmenter-members.html b/docs/dc/deb/classshaka_1_1media_1_1mp4_1_1Fragmenter-members.html index f63dad9262..5588b21faf 100644 --- a/docs/dc/deb/classshaka_1_1media_1_1mp4_1_1Fragmenter-members.html +++ b/docs/dc/deb/classshaka_1_1media_1_1mp4_1_1Fragmenter-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 8d8290f349..1df3c62ed3 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 6b17381798..09a7b38507 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/df0/classshaka_1_1media_1_1ClosureThread.html b/docs/dc/df0/classshaka_1_1media_1_1ClosureThread.html index c15884228c..01f43ede73 100644 --- a/docs/dc/df0/classshaka_1_1media_1_1ClosureThread.html +++ b/docs/dc/df0/classshaka_1_1media_1_1ClosureThread.html @@ -179,7 +179,7 @@ void  diff --git a/docs/dc/df2/classshaka_1_1media_1_1WebVttMediaParser.html b/docs/dc/df2/classshaka_1_1media_1_1WebVttMediaParser.html index 5505cf56cb..cb1e0acb49 100644 --- a/docs/dc/df2/classshaka_1_1media_1_1WebVttMediaParser.html +++ b/docs/dc/df2/classshaka_1_1media_1_1WebVttMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
diff --git a/docs/dc/df3/classshaka_1_1media_1_1mp4_1_1EncryptingFragmenter.html b/docs/dc/df3/classshaka_1_1media_1_1mp4_1_1EncryptingFragmenter.html index 29099196c3..a47a263664 100644 --- a/docs/dc/df3/classshaka_1_1media_1_1mp4_1_1EncryptingFragmenter.html +++ b/docs/dc/df3/classshaka_1_1media_1_1mp4_1_1EncryptingFragmenter.html @@ -405,7 +405,7 @@ void set_encryption_key diff --git a/docs/dc/df4/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html b/docs/dc/df4/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html index d282c4b33a..056491d63d 100644 --- a/docs/dc/df4/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html +++ b/docs/dc/df4/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/df7/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun-members.html b/docs/dc/df7/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun-members.html index 810aa59e6b..ad6931d23a 100644 --- a/docs/dc/df7/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun-members.html +++ b/docs/dc/df7/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun-members.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/df8/closure__thread_8h_source.html b/docs/dc/df8/closure__thread_8h_source.html index 415fe9f04d..be2e6b634f 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/dd/d06/structshaka_1_1media_1_1mp4_1_1ChunkOffset.html b/docs/dd/d06/structshaka_1_1media_1_1mp4_1_1ChunkOffset.html index 7724108d80..12732c670e 100644 --- a/docs/dd/d06/structshaka_1_1media_1_1mp4_1_1ChunkOffset.html +++ b/docs/dd/d06/structshaka_1_1media_1_1mp4_1_1ChunkOffset.html @@ -180,7 +180,7 @@ uint32_t flags diff --git a/docs/dd/d11/mpd__builder_8cc_source.html b/docs/dd/d11/mpd__builder_8cc_source.html index 7c6f848d49..b5142051b5 100644 --- a/docs/dd/d11/mpd__builder_8cc_source.html +++ b/docs/dd/d11/mpd__builder_8cc_source.html @@ -1508,7 +1508,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 e9f6ff2d83..eb3fc71f86 100644 --- a/docs/dd/d12/mpd__writer_8cc_source.html +++ b/docs/dd/d12/mpd__writer_8cc_source.html @@ -221,7 +221,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d13/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html b/docs/dd/d13/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html index c898a45f61..aee1f3c933 100644 --- a/docs/dd/d13/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html +++ b/docs/dd/d13/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/dd/d17/classshaka_1_1media_1_1Demuxer.html b/docs/dd/d17/classshaka_1_1media_1_1Demuxer.html index 6c4e149e80..94e96bc685 100644 --- a/docs/dd/d17/classshaka_1_1media_1_1Demuxer.html +++ b/docs/dd/d17/classshaka_1_1media_1_1Demuxer.html @@ -295,7 +295,7 @@ Public Member Functions diff --git a/docs/dd/d18/es__parser__adts_8h_source.html b/docs/dd/d18/es__parser__adts_8h_source.html index 8cb8432286..1ab078e6e0 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 bc7c0b1b33..7b0ffca5c4 100644 --- a/docs/dd/d19/video__stream__info_8cc_source.html +++ b/docs/dd/d19/video__stream__info_8cc_source.html @@ -180,7 +180,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d30/wvm__media__parser_8cc_source.html b/docs/dd/d30/wvm__media__parser_8cc_source.html index 19e276f69f..b4dad20aec 100644 --- a/docs/dd/d30/wvm__media__parser_8cc_source.html +++ b/docs/dd/d30/wvm__media__parser_8cc_source.html @@ -1265,7 +1265,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 5a739082b5..379ac0f360 100644 --- a/docs/dd/d3b/mp4_2segmenter_8h_source.html +++ b/docs/dd/d3b/mp4_2segmenter_8h_source.html @@ -220,7 +220,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d3f/structshaka_1_1media_1_1mp4_1_1SyncSample.html b/docs/dd/d3f/structshaka_1_1media_1_1mp4_1_1SyncSample.html index 2162118133..39d47ae855 100644 --- a/docs/dd/d3f/structshaka_1_1media_1_1mp4_1_1SyncSample.html +++ b/docs/dd/d3f/structshaka_1_1media_1_1mp4_1_1SyncSample.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/dd/d42/encryptor_8h_source.html b/docs/dd/d42/encryptor_8h_source.html index d7cdfb69ba..f7a268798e 100644 --- a/docs/dd/d42/encryptor_8h_source.html +++ b/docs/dd/d42/encryptor_8h_source.html @@ -161,7 +161,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 50169f00ff..008542e31c 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/d4d/structshaka_1_1media_1_1mp4_1_1MovieFragment-members.html b/docs/dd/d4d/structshaka_1_1media_1_1mp4_1_1MovieFragment-members.html index 71487bf636..1afcfba60a 100644 --- a/docs/dd/d4d/structshaka_1_1media_1_1mp4_1_1MovieFragment-members.html +++ b/docs/dd/d4d/structshaka_1_1media_1_1mp4_1_1MovieFragment-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d53/structshaka_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html b/docs/dd/d53/structshaka_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html index d34559876b..dbc87b49ff 100644 --- a/docs/dd/d53/structshaka_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html +++ b/docs/dd/d53/structshaka_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d54/widevine__encryption__flags_8h_source.html b/docs/dd/d54/widevine__encryption__flags_8h_source.html index f25770b15f..36bf76c2b0 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/d59/classshaka_1_1media_1_1mp2t_1_1EsParserH265-members.html b/docs/dd/d59/classshaka_1_1media_1_1mp2t_1_1EsParserH265-members.html index 0029214f0e..8d256885e8 100644 --- a/docs/dd/d59/classshaka_1_1media_1_1mp2t_1_1EsParserH265-members.html +++ b/docs/dd/d59/classshaka_1_1media_1_1mp2t_1_1EsParserH265-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d59/structshaka_1_1media_1_1mp4_1_1SchemeInfo-members.html b/docs/dd/d59/structshaka_1_1media_1_1mp4_1_1SchemeInfo-members.html index 122fb9e1ed..a00caad551 100644 --- a/docs/dd/d59/structshaka_1_1media_1_1mp4_1_1SchemeInfo-members.html +++ b/docs/dd/d59/structshaka_1_1media_1_1mp4_1_1SchemeInfo-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d64/structshaka_1_1media_1_1mp4_1_1SyncSample-members.html b/docs/dd/d64/structshaka_1_1media_1_1mp4_1_1SyncSample-members.html index 51f363d020..8656614c5b 100644 --- a/docs/dd/d64/structshaka_1_1media_1_1mp4_1_1SyncSample-members.html +++ b/docs/dd/d64/structshaka_1_1media_1_1mp4_1_1SyncSample-members.html @@ -113,7 +113,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 2011c8c3a9..ed8b890148 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 fcb31cfd47..0c8667880f 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 @@ -177,7 +177,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d6e/classshaka_1_1media_1_1H265VideoSliceHeaderParser-members.html b/docs/dd/d6e/classshaka_1_1media_1_1H265VideoSliceHeaderParser-members.html index 185b80f0dd..054bd307ef 100644 --- a/docs/dd/d6e/classshaka_1_1media_1_1H265VideoSliceHeaderParser-members.html +++ b/docs/dd/d6e/classshaka_1_1media_1_1H265VideoSliceHeaderParser-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d71/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio.html b/docs/dd/d71/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio.html index e3e0001deb..d19051f1cf 100644 --- a/docs/dd/d71/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio.html +++ b/docs/dd/d71/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio.html @@ -176,7 +176,7 @@ Additional Inherited Members diff --git a/docs/dd/d7a/classshaka_1_1media_1_1MuxerListener.html b/docs/dd/d7a/classshaka_1_1media_1_1MuxerListener.html index 038e5165b1..4163a7e5d9 100644 --- a/docs/dd/d7a/classshaka_1_1media_1_1MuxerListener.html +++ b/docs/dd/d7a/classshaka_1_1media_1_1MuxerListener.html @@ -469,7 +469,7 @@ Public Member Functions diff --git a/docs/dd/d7c/classshaka_1_1media_1_1IoCache.html b/docs/dd/d7c/classshaka_1_1media_1_1IoCache.html index f120704361..60c55c2d5f 100644 --- a/docs/dd/d7c/classshaka_1_1media_1_1IoCache.html +++ b/docs/dd/d7c/classshaka_1_1media_1_1IoCache.html @@ -297,7 +297,7 @@ void  diff --git a/docs/dd/d80/media__sample_8h_source.html b/docs/dd/d80/media__sample_8h_source.html index ed8b778d6e..895274eeeb 100644 --- a/docs/dd/d80/media__sample_8h_source.html +++ b/docs/dd/d80/media__sample_8h_source.html @@ -259,7 +259,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 aa7955ae9b..27d6894ad5 100644 --- a/docs/dd/d87/memory__file_8cc_source.html +++ b/docs/dd/d87/memory__file_8cc_source.html @@ -97,151 +97,152 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
8 
9 #include <string.h> // for memcpy
10 
-
11 #include <map>
-
12 #include <memory>
-
13 
-
14 #include "packager/base/logging.h"
-
15 
-
16 namespace shaka {
-
17 namespace media {
-
18 namespace {
-
19 
-
20 // A helper filesystem object. This holds the data for the memory files.
-
21 class FileSystem {
-
22  public:
-
23  ~FileSystem() {}
-
24 
-
25  static FileSystem* Instance() {
-
26  if (!g_file_system_)
-
27  g_file_system_.reset(new FileSystem());
-
28 
-
29  return g_file_system_.get();
-
30  }
-
31 
-
32  bool Exists(const std::string& file_name) const {
-
33  return files_.find(file_name) != files_.end();
-
34  }
-
35 
-
36  std::vector<uint8_t>* GetFile(const std::string& file_name) {
-
37  return &files_[file_name];
-
38  }
-
39 
-
40  void Delete(const std::string& file_name) { files_.erase(file_name); }
-
41 
-
42  void DeleteAll() { files_.clear(); }
-
43 
-
44  private:
-
45  FileSystem() {}
-
46 
-
47  static std::unique_ptr<FileSystem> g_file_system_;
-
48 
-
49  std::map<std::string, std::vector<uint8_t> > files_;
-
50  DISALLOW_COPY_AND_ASSIGN(FileSystem);
-
51 };
-
52 
-
53 std::unique_ptr<FileSystem> FileSystem::g_file_system_;
-
54 
-
55 } // namespace
-
56 
-
57 MemoryFile::MemoryFile(const std::string& file_name, const std::string& mode)
-
58  : File(file_name), mode_(mode), file_(NULL), position_(0) {}
-
59 
-
60 MemoryFile::~MemoryFile() {}
-
61 
- -
63  delete this;
-
64  return true;
-
65 }
-
66 
-
67 int64_t MemoryFile::Read(void* buffer, uint64_t length) {
-
68  const uint64_t size = Size();
-
69  DCHECK_LE(position_, size);
-
70  if (position_ >= size)
-
71  return 0;
-
72 
-
73  const uint64_t bytes_to_read = std::min(length, size - position_);
-
74  memcpy(buffer, &(*file_)[position_], bytes_to_read);
-
75  position_ += bytes_to_read;
-
76  return bytes_to_read;
-
77 }
-
78 
-
79 int64_t MemoryFile::Write(const void* buffer, uint64_t length) {
-
80  const uint64_t size = Size();
-
81  if (size < position_ + length) {
-
82  file_->resize(position_ + length);
-
83  }
-
84 
-
85  memcpy(&(*file_)[position_], buffer, length);
-
86  position_ += length;
-
87  return length;
-
88 }
-
89 
-
90 int64_t MemoryFile::Size() {
-
91  DCHECK(file_);
-
92  return file_->size();
-
93 }
-
94 
- -
96  return true;
-
97 }
-
98 
-
99 bool MemoryFile::Seek(uint64_t position) {
-
100  if (Size() < static_cast<int64_t>(position))
-
101  return false;
-
102 
-
103  position_ = position;
-
104  return true;
-
105 }
-
106 
-
107 bool MemoryFile::Tell(uint64_t* position) {
-
108  *position = position_;
-
109  return true;
-
110 }
-
111 
- -
113  FileSystem* file_system = FileSystem::Instance();
-
114  if (mode_ == "r") {
-
115  if (!file_system->Exists(file_name()))
-
116  return false;
-
117  } else if (mode_ == "w") {
-
118  file_system->Delete(file_name());
-
119  } else {
-
120  NOTIMPLEMENTED() << "File mode " << mode_ << " not supported by MemoryFile";
-
121  return false;
-
122  }
-
123 
-
124  file_ = file_system->GetFile(file_name());
-
125  DCHECK(file_);
-
126  position_ = 0;
-
127  return true;
-
128 }
-
129 
- -
131  FileSystem::Instance()->DeleteAll();
-
132 }
-
133 
-
134 void MemoryFile::Delete(const std::string& file_name) {
-
135  FileSystem::Instance()->Delete(file_name);
-
136 }
-
137 
-
138 } // namespace media
-
139 } // namespace shaka
-
140 
- -
int64_t Size() override
Definition: memory_file.cc:90
-
int64_t Read(void *buffer, uint64_t length) override
Definition: memory_file.cc:67
-
int64_t Write(const void *buffer, uint64_t length) override
Definition: memory_file.cc:79
-
bool Tell(uint64_t *position) override
Definition: memory_file.cc:107
-
static void Delete(const std::string &file_name)
Definition: memory_file.cc:134
-
bool Open() override
Internal open. Should not be used directly.
Definition: memory_file.cc:112
-
bool Seek(uint64_t position) override
Definition: memory_file.cc:99
+
11 #include <algorithm>
+
12 #include <map>
+
13 #include <memory>
+
14 
+
15 #include "packager/base/logging.h"
+
16 
+
17 namespace shaka {
+
18 namespace media {
+
19 namespace {
+
20 
+
21 // A helper filesystem object. This holds the data for the memory files.
+
22 class FileSystem {
+
23  public:
+
24  ~FileSystem() {}
+
25 
+
26  static FileSystem* Instance() {
+
27  if (!g_file_system_)
+
28  g_file_system_.reset(new FileSystem());
+
29 
+
30  return g_file_system_.get();
+
31  }
+
32 
+
33  bool Exists(const std::string& file_name) const {
+
34  return files_.find(file_name) != files_.end();
+
35  }
+
36 
+
37  std::vector<uint8_t>* GetFile(const std::string& file_name) {
+
38  return &files_[file_name];
+
39  }
+
40 
+
41  void Delete(const std::string& file_name) { files_.erase(file_name); }
+
42 
+
43  void DeleteAll() { files_.clear(); }
+
44 
+
45  private:
+
46  FileSystem() {}
+
47 
+
48  static std::unique_ptr<FileSystem> g_file_system_;
+
49 
+
50  std::map<std::string, std::vector<uint8_t> > files_;
+
51  DISALLOW_COPY_AND_ASSIGN(FileSystem);
+
52 };
+
53 
+
54 std::unique_ptr<FileSystem> FileSystem::g_file_system_;
+
55 
+
56 } // namespace
+
57 
+
58 MemoryFile::MemoryFile(const std::string& file_name, const std::string& mode)
+
59  : File(file_name), mode_(mode), file_(NULL), position_(0) {}
+
60 
+
61 MemoryFile::~MemoryFile() {}
+
62 
+ +
64  delete this;
+
65  return true;
+
66 }
+
67 
+
68 int64_t MemoryFile::Read(void* buffer, uint64_t length) {
+
69  const uint64_t size = Size();
+
70  DCHECK_LE(position_, size);
+
71  if (position_ >= size)
+
72  return 0;
+
73 
+
74  const uint64_t bytes_to_read = std::min(length, size - position_);
+
75  memcpy(buffer, &(*file_)[position_], bytes_to_read);
+
76  position_ += bytes_to_read;
+
77  return bytes_to_read;
+
78 }
+
79 
+
80 int64_t MemoryFile::Write(const void* buffer, uint64_t length) {
+
81  const uint64_t size = Size();
+
82  if (size < position_ + length) {
+
83  file_->resize(position_ + length);
+
84  }
+
85 
+
86  memcpy(&(*file_)[position_], buffer, length);
+
87  position_ += length;
+
88  return length;
+
89 }
+
90 
+
91 int64_t MemoryFile::Size() {
+
92  DCHECK(file_);
+
93  return file_->size();
+
94 }
+
95 
+ +
97  return true;
+
98 }
+
99 
+
100 bool MemoryFile::Seek(uint64_t position) {
+
101  if (Size() < static_cast<int64_t>(position))
+
102  return false;
+
103 
+
104  position_ = position;
+
105  return true;
+
106 }
+
107 
+
108 bool MemoryFile::Tell(uint64_t* position) {
+
109  *position = position_;
+
110  return true;
+
111 }
+
112 
+ +
114  FileSystem* file_system = FileSystem::Instance();
+
115  if (mode_ == "r") {
+
116  if (!file_system->Exists(file_name()))
+
117  return false;
+
118  } else if (mode_ == "w") {
+
119  file_system->Delete(file_name());
+
120  } else {
+
121  NOTIMPLEMENTED() << "File mode " << mode_ << " not supported by MemoryFile";
+
122  return false;
+
123  }
+
124 
+
125  file_ = file_system->GetFile(file_name());
+
126  DCHECK(file_);
+
127  position_ = 0;
+
128  return true;
+
129 }
+
130 
+ +
132  FileSystem::Instance()->DeleteAll();
+
133 }
+
134 
+
135 void MemoryFile::Delete(const std::string& file_name) {
+
136  FileSystem::Instance()->Delete(file_name);
+
137 }
+
138 
+
139 } // namespace media
+
140 } // namespace shaka
+
141 
+ +
int64_t Size() override
Definition: memory_file.cc:91
+
int64_t Read(void *buffer, uint64_t length) override
Definition: memory_file.cc:68
+
int64_t Write(const void *buffer, uint64_t length) override
Definition: memory_file.cc:80
+
bool Tell(uint64_t *position) override
Definition: memory_file.cc:108
+
static void Delete(const std::string &file_name)
Definition: memory_file.cc:135
+
bool Open() override
Internal open. Should not be used directly.
Definition: memory_file.cc:113
+
bool Seek(uint64_t position) override
Definition: memory_file.cc:100
const std::string & file_name() const
Definition: file.h:91
-
bool Flush() override
Definition: memory_file.cc:95
-
bool Close() override
Definition: memory_file.cc:62
+
bool Flush() override
Definition: memory_file.cc:96
+
bool Close() override
Definition: memory_file.cc:63
diff --git a/docs/dd/d88/pes__packet__generator_8h_source.html b/docs/dd/d88/pes__packet__generator_8h_source.html index 1f09035f60..1601153d56 100644 --- a/docs/dd/d88/pes__packet__generator_8h_source.html +++ b/docs/dd/d88/pes__packet__generator_8h_source.html @@ -174,7 +174,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 e14dd39175..42123d88c9 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/d8d/structshaka_1_1media_1_1mp4_1_1SegmentIndex-members.html b/docs/dd/d8d/structshaka_1_1media_1_1mp4_1_1SegmentIndex-members.html index 2fbdeb71f0..409d48a998 100644 --- a/docs/dd/d8d/structshaka_1_1media_1_1mp4_1_1SegmentIndex-members.html +++ b/docs/dd/d8d/structshaka_1_1media_1_1mp4_1_1SegmentIndex-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d98/ts__packet__writer__util_8h_source.html b/docs/dd/d98/ts__packet__writer__util_8h_source.html index 1f62842a0e..ec072eba32 100644 --- a/docs/dd/d98/ts__packet__writer__util_8h_source.html +++ b/docs/dd/d98/ts__packet__writer__util_8h_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d9a/audio__timestamp__helper_8h_source.html b/docs/dd/d9a/audio__timestamp__helper_8h_source.html index d6d87a320f..f5271236a9 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/d9b/structshaka_1_1media_1_1mp4_1_1SegmentReference.html b/docs/dd/d9b/structshaka_1_1media_1_1mp4_1_1SegmentReference.html index 56325f7baf..06e98436af 100644 --- a/docs/dd/d9b/structshaka_1_1media_1_1mp4_1_1SegmentReference.html +++ b/docs/dd/d9b/structshaka_1_1media_1_1mp4_1_1SegmentReference.html @@ -143,7 +143,7 @@ uint64_t earliest_presenta diff --git a/docs/dd/d9d/classshaka_1_1MpdNotifier-members.html b/docs/dd/d9d/classshaka_1_1MpdNotifier-members.html index 2db225c366..ff4f7cd963 100644 --- a/docs/dd/d9d/classshaka_1_1MpdNotifier-members.html +++ b/docs/dd/d9d/classshaka_1_1MpdNotifier-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/da4/structshaka_1_1xml_1_1XmlDeleter.html b/docs/dd/da4/structshaka_1_1xml_1_1XmlDeleter.html index 580836e88b..45662af68f 100644 --- a/docs/dd/da4/structshaka_1_1xml_1_1XmlDeleter.html +++ b/docs/dd/da4/structshaka_1_1xml_1_1XmlDeleter.html @@ -127,7 +127,7 @@ void operator() (xmlCh diff --git a/docs/dd/da5/classshaka_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html b/docs/dd/da5/classshaka_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html index 24ae97ecaa..91f8a80f7c 100644 --- a/docs/dd/da5/classshaka_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html +++ b/docs/dd/da5/classshaka_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html @@ -217,7 +217,7 @@ double cluster_length_sec< 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 2fa852b8d2..f2595ca4fb 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 @@ -180,7 +180,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dab/webm__muxer_8h_source.html b/docs/dd/dab/webm__muxer_8h_source.html index 22be34cf41..0da0a25039 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/dae/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html b/docs/dd/dae/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html index 82303eaea2..ca3f62cf80 100644 --- a/docs/dd/dae/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html +++ b/docs/dd/dae/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/db0/classshaka_1_1media_1_1WebMAudioClient-members.html b/docs/dd/db0/classshaka_1_1media_1_1WebMAudioClient-members.html index bafafa9fee..fae4e49591 100644 --- a/docs/dd/db0/classshaka_1_1media_1_1WebMAudioClient-members.html +++ b/docs/dd/db0/classshaka_1_1media_1_1WebMAudioClient-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/db3/structshaka_1_1media_1_1mp4_1_1SampleTable-members.html b/docs/dd/db3/structshaka_1_1media_1_1mp4_1_1SampleTable-members.html index 89ad0acb05..02751bbe93 100644 --- a/docs/dd/db3/structshaka_1_1media_1_1mp4_1_1SampleTable-members.html +++ b/docs/dd/db3/structshaka_1_1media_1_1mp4_1_1SampleTable-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html b/docs/dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html index fd279422ea..677b715940 100644 --- a/docs/dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html +++ b/docs/dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html @@ -156,7 +156,7 @@ Protected Member Functions diff --git a/docs/dd/dbc/buffer__reader_8cc_source.html b/docs/dd/dbc/buffer__reader_8cc_source.html index 41b1576afa..01ac098ecc 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/structshaka_1_1media_1_1EncryptionKey.html b/docs/dd/dbd/structshaka_1_1media_1_1EncryptionKey.html index 9c7f4b3e54..8f9f64cb0d 100644 --- a/docs/dd/dbd/structshaka_1_1media_1_1EncryptionKey.html +++ b/docs/dd/dbd/structshaka_1_1media_1_1EncryptionKey.html @@ -120,7 +120,7 @@ std::vector< uint8_t >  diff --git a/docs/dd/dbd/structshaka_1_1media_1_1mp4_1_1TrackEncryption-members.html b/docs/dd/dbd/structshaka_1_1media_1_1mp4_1_1TrackEncryption-members.html index 34fa2b91b2..e64c34385f 100644 --- a/docs/dd/dbd/structshaka_1_1media_1_1mp4_1_1TrackEncryption-members.html +++ b/docs/dd/dbd/structshaka_1_1media_1_1mp4_1_1TrackEncryption-members.html @@ -118,7 +118,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 28e2e507bb..01439fbf34 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/dc1/structshaka_1_1media_1_1mp4_1_1FullBox.html b/docs/dd/dc1/structshaka_1_1media_1_1mp4_1_1FullBox.html index b2b149126b..12e639b332 100644 --- a/docs/dd/dc1/structshaka_1_1media_1_1mp4_1_1FullBox.html +++ b/docs/dd/dc1/structshaka_1_1media_1_1mp4_1_1FullBox.html @@ -245,7 +245,7 @@ Protected Member Functions diff --git a/docs/dd/dc4/classshaka_1_1media_1_1ProducerConsumerQueue-members.html b/docs/dd/dc4/classshaka_1_1media_1_1ProducerConsumerQueue-members.html index 04b21baa14..b96ada718d 100644 --- a/docs/dd/dc4/classshaka_1_1media_1_1ProducerConsumerQueue-members.html +++ b/docs/dd/dc4/classshaka_1_1media_1_1ProducerConsumerQueue-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html b/docs/dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html index 51c9524ddb..e52092d71c 100644 --- a/docs/dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html +++ b/docs/dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html @@ -427,7 +427,7 @@ virtual Sta diff --git a/docs/dd/dca/structshaka_1_1media_1_1mp4_1_1OriginalFormat-members.html b/docs/dd/dca/structshaka_1_1media_1_1mp4_1_1OriginalFormat-members.html index 2e8881182d..47c20b594b 100644 --- a/docs/dd/dca/structshaka_1_1media_1_1mp4_1_1OriginalFormat-members.html +++ b/docs/dd/dca/structshaka_1_1media_1_1mp4_1_1OriginalFormat-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dce/structshaka_1_1media_1_1Cue.html b/docs/dd/dce/structshaka_1_1media_1_1Cue.html index 71d5da1c4e..0d2844d92c 100644 --- a/docs/dd/dce/structshaka_1_1media_1_1Cue.html +++ b/docs/dd/dce/structshaka_1_1media_1_1Cue.html @@ -125,7 +125,7 @@ std::vector< std::string >  diff --git a/docs/dd/dd2/buffer__writer_8h_source.html b/docs/dd/dd2/buffer__writer_8h_source.html index e27d438283..f0cc7526ed 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 fbad8e4372..5399e9622b 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/dd6/classshaka_1_1media_1_1WebMVideoClient-members.html b/docs/dd/dd6/classshaka_1_1media_1_1WebMVideoClient-members.html index 5c6befd79c..59714f590a 100644 --- a/docs/dd/dd6/classshaka_1_1media_1_1WebMVideoClient-members.html +++ b/docs/dd/dd6/classshaka_1_1media_1_1WebMVideoClient-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dd8/mock__muxer__listener_8cc_source.html b/docs/dd/dd8/mock__muxer__listener_8cc_source.html index 0f4e2fe0d2..6a6caa0f7a 100644 --- a/docs/dd/dd8/mock__muxer__listener_8cc_source.html +++ b/docs/dd/dd8/mock__muxer__listener_8cc_source.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dd9/structshaka_1_1media_1_1mp4_1_1Box-members.html b/docs/dd/dd9/structshaka_1_1media_1_1mp4_1_1Box-members.html index 38984a5218..1bc6781c44 100644 --- a/docs/dd/dd9/structshaka_1_1media_1_1mp4_1_1Box-members.html +++ b/docs/dd/dd9/structshaka_1_1media_1_1mp4_1_1Box-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html b/docs/dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html index 06da85265e..32f4e0b327 100644 --- a/docs/dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html +++ b/docs/dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html @@ -150,7 +150,7 @@ virtual int64_t  diff --git a/docs/dd/de7/structshaka_1_1media_1_1H265Pps-members.html b/docs/dd/de7/structshaka_1_1media_1_1H265Pps-members.html index d12e19e4e7..37ccb4a9e4 100644 --- a/docs/dd/de7/structshaka_1_1media_1_1H265Pps-members.html +++ b/docs/dd/de7/structshaka_1_1media_1_1H265Pps-members.html @@ -137,7 +137,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 5d075285e0..e355757d20 100644 --- a/docs/dd/de7/xml__node_8h_source.html +++ b/docs/dd/de7/xml__node_8h_source.html @@ -231,7 +231,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 7f311a8ea5..6c3be184a2 100644 --- a/docs/dd/dee/box__definitions_8cc_source.html +++ b/docs/dd/dee/box__definitions_8cc_source.html @@ -2944,7 +2944,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 101a9b03e3..073b0fb66c 100644 --- a/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html +++ b/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/df5/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun.html b/docs/dd/df5/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun.html index 8cc196a68b..e9ed9d2153 100644 --- a/docs/dd/df5/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun.html +++ b/docs/dd/df5/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun.html @@ -212,7 +212,7 @@ Additional Inherited Members diff --git a/docs/dd/df6/structshaka_1_1media_1_1mp4_1_1Metadata.html b/docs/dd/df6/structshaka_1_1media_1_1mp4_1_1Metadata.html index bfc99caaf5..511ecc46c0 100644 --- a/docs/dd/df6/structshaka_1_1media_1_1mp4_1_1Metadata.html +++ b/docs/dd/df6/structshaka_1_1media_1_1mp4_1_1Metadata.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/de/d0f/local__file_8h_source.html b/docs/de/d0f/local__file_8h_source.html index 3c4898a1b3..3fd4e2d9bd 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 c1fec0d89c..c3e4c3ac5d 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 c3752a041c..b7d4de707d 100644 --- a/docs/de/d13/ts__writer_8cc_source.html +++ b/docs/de/d13/ts__writer_8cc_source.html @@ -361,7 +361,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 7034f38552..f713b7f19b 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/d16/classshaka_1_1media_1_1TextTrackConfig-members.html b/docs/de/d16/classshaka_1_1media_1_1TextTrackConfig-members.html index 3d51108179..9c5bb8025b 100644 --- a/docs/de/d16/classshaka_1_1media_1_1TextTrackConfig-members.html +++ b/docs/de/d16/classshaka_1_1media_1_1TextTrackConfig-members.html @@ -103,7 +103,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 8f249ac593..537dbd74b5 100644 --- a/docs/de/d17/cluster__builder_8cc_source.html +++ b/docs/de/d17/cluster__builder_8cc_source.html @@ -346,7 +346,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d1a/classshaka_1_1media_1_1wvm_1_1WvmMediaParser-members.html b/docs/de/d1a/classshaka_1_1media_1_1wvm_1_1WvmMediaParser-members.html index 6e315b92bd..f0845e89b8 100644 --- a/docs/de/d1a/classshaka_1_1media_1_1wvm_1_1WvmMediaParser-members.html +++ b/docs/de/d1a/classshaka_1_1media_1_1wvm_1_1WvmMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 a445cf3e7e..3050efa666 100644 --- a/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html +++ b/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html @@ -336,7 +336,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d22/aes__pattern__cryptor_8cc_source.html b/docs/de/d22/aes__pattern__cryptor_8cc_source.html index f89bdad0cb..ed6e26bc4b 100644 --- a/docs/de/d22/aes__pattern__cryptor_8cc_source.html +++ b/docs/de/d22/aes__pattern__cryptor_8cc_source.html @@ -198,7 +198,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d27/classshaka_1_1media_1_1mp2t_1_1H264ProgramMapTableWriter.html b/docs/de/d27/classshaka_1_1media_1_1mp2t_1_1H264ProgramMapTableWriter.html index c72a923f30..cb9f0de50b 100644 --- a/docs/de/d27/classshaka_1_1media_1_1mp2t_1_1H264ProgramMapTableWriter.html +++ b/docs/de/d27/classshaka_1_1media_1_1mp2t_1_1H264ProgramMapTableWriter.html @@ -140,7 +140,7 @@ static const uint8_t kElem diff --git a/docs/de/d29/structshaka_1_1media_1_1mp4_1_1TrackExtends.html b/docs/de/d29/structshaka_1_1media_1_1mp4_1_1TrackExtends.html index 16c9ff123a..02d9443608 100644 --- a/docs/de/d29/structshaka_1_1media_1_1mp4_1_1TrackExtends.html +++ b/docs/de/d29/structshaka_1_1media_1_1mp4_1_1TrackExtends.html @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/de/d33/classshaka_1_1media_1_1WebMTracksParser-members.html b/docs/de/d33/classshaka_1_1media_1_1WebMTracksParser-members.html index e5e7700975..02693e17cb 100644 --- a/docs/de/d33/classshaka_1_1media_1_1WebMTracksParser-members.html +++ b/docs/de/d33/classshaka_1_1media_1_1WebMTracksParser-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d33/structshaka_1_1media_1_1H265Pps.html b/docs/de/d33/structshaka_1_1media_1_1H265Pps.html index 53e5ce7df7..405f92e0a8 100644 --- a/docs/de/d33/structshaka_1_1media_1_1H265Pps.html +++ b/docs/de/d33/structshaka_1_1media_1_1H265Pps.html @@ -224,7 +224,7 @@ bool chroma_qp_offset_list diff --git a/docs/de/d34/offset__byte__queue_8h_source.html b/docs/de/d34/offset__byte__queue_8h_source.html index 7334a0bd04..4c27475ab9 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 f0118e33b1..20b7c4726e 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 @@ -162,7 +162,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 abc9c2fa9f..b52355e2ba 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 2305612214..ec7ec25b16 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/d3e/classshaka_1_1media_1_1H264Parser-members.html b/docs/de/d3e/classshaka_1_1media_1_1H264Parser-members.html index ec4af4cdc0..ea43929776 100644 --- a/docs/de/d3e/classshaka_1_1media_1_1H264Parser-members.html +++ b/docs/de/d3e/classshaka_1_1media_1_1H264Parser-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d43/classshaka_1_1media_1_1mp2t_1_1PesPacket-members.html b/docs/de/d43/classshaka_1_1media_1_1mp2t_1_1PesPacket-members.html index 4132a496da..a263822ac3 100644 --- a/docs/de/d43/classshaka_1_1media_1_1mp2t_1_1PesPacket-members.html +++ b/docs/de/d43/classshaka_1_1media_1_1mp2t_1_1PesPacket-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d49/classshaka_1_1media_1_1DecryptConfig.html b/docs/de/d49/classshaka_1_1media_1_1DecryptConfig.html index 212cfdbee5..1f0f0343d7 100644 --- a/docs/de/d49/classshaka_1_1media_1_1DecryptConfig.html +++ b/docs/de/d49/classshaka_1_1media_1_1DecryptConfig.html @@ -249,7 +249,7 @@ static const size_t  diff --git a/docs/de/d4a/muxer__listener__internal_8h_source.html b/docs/de/d4a/muxer__listener__internal_8h_source.html index c379a006de..06063df279 100644 --- a/docs/de/d4a/muxer__listener__internal_8h_source.html +++ b/docs/de/d4a/muxer__listener__internal_8h_source.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d52/classshaka_1_1Representation.html b/docs/de/d52/classshaka_1_1Representation.html index d90c744fd5..39c5885b07 100644 --- a/docs/de/d52/classshaka_1_1Representation.html +++ b/docs/de/d52/classshaka_1_1Representation.html @@ -456,7 +456,7 @@ template<MpdBuilder::MpdType type> diff --git a/docs/de/d55/structshaka_1_1media_1_1mp4_1_1Language-members.html b/docs/de/d55/structshaka_1_1media_1_1mp4_1_1Language-members.html index 7d94367250..78fae701bd 100644 --- a/docs/de/d55/structshaka_1_1media_1_1mp4_1_1Language-members.html +++ b/docs/de/d55/structshaka_1_1media_1_1mp4_1_1Language-members.html @@ -99,7 +99,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 5ddcb51d7d..496b514035 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 d4c62337a3..5a80a1565e 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/d60/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter-members.html b/docs/de/d60/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter-members.html index 096b58da2b..f151107ce1 100644 --- a/docs/de/d60/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter-members.html +++ b/docs/de/d60/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html b/docs/de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html index 4164e89ad0..ba430d436e 100644 --- a/docs/de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html +++ b/docs/de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html @@ -257,7 +257,7 @@ void  diff --git a/docs/de/d6c/structshaka_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html b/docs/de/d6c/structshaka_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html index 113dd32e62..886a749436 100644 --- a/docs/de/d6c/structshaka_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html +++ b/docs/de/d6c/structshaka_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d6e/language__utils_8h_source.html b/docs/de/d6e/language__utils_8h_source.html index 67db377db8..bd619beff2 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 54b15a70ee..cf654c10b5 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/webm__content__encodings__client_8cc_source.html b/docs/de/d77/webm__content__encodings__client_8cc_source.html index 388b88cb14..621c801e55 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 6beb2b272c..079a3c5029 100644 --- a/docs/de/d7b/mp4__media__parser_8h_source.html +++ b/docs/de/d7b/mp4__media__parser_8h_source.html @@ -192,19 +192,19 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
112 #endif // MEDIA_FORMATS_MP4_MP4_MEDIA_PARSER_H_
base::Callback< void(const std::vector< scoped_refptr< StreamInfo > > &stream_info)> InitCB
Definition: media_parser.h:34
-
bool Flush() override WARN_UNUSED_RESULT
-
bool Parse(const uint8_t *buf, int size) override WARN_UNUSED_RESULT
+
bool Flush() override WARN_UNUSED_RESULT
+
bool Parse(const uint8_t *buf, int size) override WARN_UNUSED_RESULT
Class for reading MP4 boxes.
Definition: box_reader.h:24
base::Callback< bool(uint32_t track_id, const scoped_refptr< MediaSample > &media_sample)> NewSampleCB
Definition: media_parser.h:43
-
bool LoadMoov(const std::string &file_path)
+
bool LoadMoov(const std::string &file_path)
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:30
-
void Init(const InitCB &init_cb, const NewSampleCB &new_sample_cb, KeySource *decryption_key_source) override
+
void Init(const InitCB &init_cb, const NewSampleCB &new_sample_cb, KeySource *decryption_key_source) override
diff --git a/docs/de/d7e/classshaka_1_1media_1_1mp2t_1_1TsSectionPsi.html b/docs/de/d7e/classshaka_1_1media_1_1mp2t_1_1TsSectionPsi.html index ab746208d1..ffaa972571 100644 --- a/docs/de/d7e/classshaka_1_1media_1_1mp2t_1_1TsSectionPsi.html +++ b/docs/de/d7e/classshaka_1_1media_1_1mp2t_1_1TsSectionPsi.html @@ -147,7 +147,7 @@ Additional Inherited Members diff --git a/docs/de/d83/box__definitions__comparison_8h_source.html b/docs/de/d83/box__definitions__comparison_8h_source.html index 4ee52ef2e2..ca56025564 100644 --- a/docs/de/d83/box__definitions__comparison_8h_source.html +++ b/docs/de/d83/box__definitions__comparison_8h_source.html @@ -592,7 +592,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d83/classshaka_1_1media_1_1LocalFile-members.html b/docs/de/d83/classshaka_1_1media_1_1LocalFile-members.html index e628019563..6520d32afa 100644 --- a/docs/de/d83/classshaka_1_1media_1_1LocalFile-members.html +++ b/docs/de/d83/classshaka_1_1media_1_1LocalFile-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d87/structshaka_1_1media_1_1wvm_1_1PrevSampleData-members.html b/docs/de/d87/structshaka_1_1media_1_1wvm_1_1PrevSampleData-members.html index 710f62f522..cd579d9a3e 100644 --- a/docs/de/d87/structshaka_1_1media_1_1wvm_1_1PrevSampleData-members.html +++ b/docs/de/d87/structshaka_1_1media_1_1wvm_1_1PrevSampleData-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d8d/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html b/docs/de/d8d/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html index 8c2b8ead09..3315f602a0 100644 --- a/docs/de/d8d/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html +++ b/docs/de/d8d/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d93/classshaka_1_1media_1_1VP8Parser-members.html b/docs/de/d93/classshaka_1_1media_1_1VP8Parser-members.html index f943ed4ab6..a92c20b1f3 100644 --- a/docs/de/d93/classshaka_1_1media_1_1VP8Parser-members.html +++ b/docs/de/d93/classshaka_1_1media_1_1VP8Parser-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/da9/structshaka_1_1Element.html b/docs/de/da9/structshaka_1_1Element.html index 18b7a18e81..0344f890ff 100644 --- a/docs/de/da9/structshaka_1_1Element.html +++ b/docs/de/da9/structshaka_1_1Element.html @@ -120,7 +120,7 @@ std::vector< El diff --git a/docs/de/dab/es__parser__h26x_8cc_source.html b/docs/de/dab/es__parser__h26x_8cc_source.html index 83a994994a..a3e29531e3 100644 --- a/docs/de/dab/es__parser__h26x_8cc_source.html +++ b/docs/de/dab/es__parser__h26x_8cc_source.html @@ -414,7 +414,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 6b9fbbdcf6..a632b41652 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/db3/classshaka_1_1media_1_1TextTrackConfig.html b/docs/de/db3/classshaka_1_1media_1_1TextTrackConfig.html index 7a60cdf960..2d9b2e8ec1 100644 --- a/docs/de/db3/classshaka_1_1media_1_1TextTrackConfig.html +++ b/docs/de/db3/classshaka_1_1media_1_1TextTrackConfig.html @@ -125,7 +125,7 @@ const std::string & id diff --git a/docs/de/db4/classshaka_1_1media_1_1H26xBitReader.html b/docs/de/db4/classshaka_1_1media_1_1H26xBitReader.html index 2ecd07ff30..b4ea62077f 100644 --- a/docs/de/db4/classshaka_1_1media_1_1H26xBitReader.html +++ b/docs/de/db4/classshaka_1_1media_1_1H26xBitReader.html @@ -134,7 +134,7 @@ size_t NumEmulationPrevent diff --git a/docs/de/dc1/demuxer_8h_source.html b/docs/de/dc1/demuxer_8h_source.html index 58c3e8b18b..eabea0775c 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/dc2/classshaka_1_1media_1_1H265Parser.html b/docs/de/dc2/classshaka_1_1media_1_1H265Parser.html index 50e4bd7c06..1264b583a0 100644 --- a/docs/de/dc2/classshaka_1_1media_1_1H265Parser.html +++ b/docs/de/dc2/classshaka_1_1media_1_1H265Parser.html @@ -256,7 +256,7 @@ Public Member Functions diff --git a/docs/de/dc9/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html b/docs/de/dc9/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html index 85d5ec7fd5..7ab24a9719 100644 --- a/docs/de/dc9/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html +++ b/docs/de/dc9/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dcb/ts__segmenter_8h_source.html b/docs/de/dcb/ts__segmenter_8h_source.html index 4ef848a45c..edb66b1470 100644 --- a/docs/de/dcb/ts__segmenter_8h_source.html +++ b/docs/de/dcb/ts__segmenter_8h_source.html @@ -211,7 +211,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 ddba8f5134..37180c06b5 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 0773427b2b..11470d387a 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/dd6/content__protection__element_8h_source.html b/docs/de/dd6/content__protection__element_8h_source.html index fdcba5e0bc..d01bd34fc8 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 7bb33a9fc5..d61f2f5f96 100644 --- a/docs/de/dd6/muxer__listener__test__helper_8cc_source.html +++ b/docs/de/dd6/muxer__listener__test__helper_8cc_source.html @@ -209,7 +209,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/ddd/classshaka_1_1media_1_1Muxer-members.html b/docs/de/ddd/classshaka_1_1media_1_1Muxer-members.html index 8786630996..dbb21afd37 100644 --- a/docs/de/ddd/classshaka_1_1media_1_1Muxer-members.html +++ b/docs/de/ddd/classshaka_1_1media_1_1Muxer-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html b/docs/de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html index 1544cd2b52..733f383d17 100644 --- a/docs/de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html +++ b/docs/de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html @@ -256,7 +256,7 @@ void  diff --git a/docs/de/ddf/structshaka_1_1media_1_1mp4_1_1MediaData-members.html b/docs/de/ddf/structshaka_1_1media_1_1mp4_1_1MediaData-members.html index 70cf5e6f0a..77c8b267c5 100644 --- a/docs/de/ddf/structshaka_1_1media_1_1mp4_1_1MediaData-members.html +++ b/docs/de/ddf/structshaka_1_1media_1_1mp4_1_1MediaData-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html b/docs/de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html index 4dfe9a68e7..cb57dc1ba8 100644 --- a/docs/de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html +++ b/docs/de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html @@ -333,7 +333,7 @@ void  diff --git a/docs/de/de0/classshaka_1_1media_1_1mp4_1_1MP4Muxer-members.html b/docs/de/de0/classshaka_1_1media_1_1mp4_1_1MP4Muxer-members.html index ecbbb7290e..7cef9ab41f 100644 --- a/docs/de/de0/classshaka_1_1media_1_1mp4_1_1MP4Muxer-members.html +++ b/docs/de/de0/classshaka_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/de4/structshaka_1_1media_1_1H264Pps.html b/docs/de/de4/structshaka_1_1media_1_1H264Pps.html index fc1df0ba1d..d113dfc0fe 100644 --- a/docs/de/de4/structshaka_1_1media_1_1H264Pps.html +++ b/docs/de/de4/structshaka_1_1media_1_1H264Pps.html @@ -167,7 +167,7 @@ int second_chroma_qp_index diff --git a/docs/de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html b/docs/de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html index 1d403202bd..c91e9741ed 100644 --- a/docs/de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html +++ b/docs/de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html @@ -216,7 +216,7 @@ static const size_t kUnitS diff --git a/docs/de/def/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample.html b/docs/de/def/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample.html index bfd2414d66..85366a1d4f 100644 --- a/docs/de/def/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample.html +++ b/docs/de/def/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html b/docs/de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html index 89ca86f14e..2e89f89af4 100644 --- a/docs/de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html +++ b/docs/de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html @@ -412,7 +412,7 @@ bool is_keyframe () co diff --git a/docs/de/dfa/classshaka_1_1media_1_1webm_1_1Encryptor.html b/docs/de/dfa/classshaka_1_1media_1_1webm_1_1Encryptor.html index f3bba5a4c4..49ef400ddc 100644 --- a/docs/de/dfa/classshaka_1_1media_1_1webm_1_1Encryptor.html +++ b/docs/de/dfa/classshaka_1_1media_1_1webm_1_1Encryptor.html @@ -215,7 +215,7 @@ Public Member Functions diff --git a/docs/de/dfa/muxer__listener_8h_source.html b/docs/de/dfa/muxer__listener_8h_source.html index 4fb7405ab6..f0995f81b7 100644 --- a/docs/de/dfa/muxer__listener_8h_source.html +++ b/docs/de/dfa/muxer__listener_8h_source.html @@ -173,7 +173,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfa/structshaka_1_1media_1_1mp4_1_1OpusSpecific.html b/docs/de/dfa/structshaka_1_1media_1_1mp4_1_1OpusSpecific.html index 8f9c069860..648acf694c 100644 --- a/docs/de/dfa/structshaka_1_1media_1_1mp4_1_1OpusSpecific.html +++ b/docs/de/dfa/structshaka_1_1media_1_1mp4_1_1OpusSpecific.html @@ -176,7 +176,7 @@ Additional Inherited Members diff --git a/docs/de/dfd/stream__info_8cc_source.html b/docs/de/dfd/stream__info_8cc_source.html index 9f1d78b194..188d5c8cb7 100644 --- a/docs/de/dfd/stream__info_8cc_source.html +++ b/docs/de/dfd/stream__info_8cc_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d05/vp__codec__configuration__record_8cc_source.html b/docs/df/d05/vp__codec__configuration__record_8cc_source.html index 70613155b4..5f8e55aa82 100644 --- a/docs/df/d05/vp__codec__configuration__record_8cc_source.html +++ b/docs/df/d05/vp__codec__configuration__record_8cc_source.html @@ -360,7 +360,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 9c1b5ca0f3..5030a30e89 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/classshaka_1_1media_1_1MediaSample-members.html b/docs/df/d1c/classshaka_1_1media_1_1MediaSample-members.html index ebf4540d63..fac6ef68d3 100644 --- a/docs/df/d1c/classshaka_1_1media_1_1MediaSample-members.html +++ b/docs/df/d1c/classshaka_1_1media_1_1MediaSample-members.html @@ -123,7 +123,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 d32e130c2b..2e2888fec8 100644 --- a/docs/df/d1c/composition__offset__iterator_8h_source.html +++ b/docs/df/d1c/composition__offset__iterator_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d21/classshaka_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html b/docs/df/d21/classshaka_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html index 554e52264a..0c7acd3d4b 100644 --- a/docs/df/d21/classshaka_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html +++ b/docs/df/d21/classshaka_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d22/validate__flag_8h_source.html b/docs/df/d22/validate__flag_8h_source.html index 79e738777e..6a7cfd5d1d 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/d2a/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html b/docs/df/d2a/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html index 2cd219a7c2..db97b47e86 100644 --- a/docs/df/d2a/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html +++ b/docs/df/d2a/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html b/docs/df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html index 96fbe3dac9..2636bd38c9 100644 --- a/docs/df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html +++ b/docs/df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html @@ -279,7 +279,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/df/d31/muxer__util_8cc_source.html b/docs/df/d31/muxer__util_8cc_source.html index eeaf370352..9182eef99c 100644 --- a/docs/df/d31/muxer__util_8cc_source.html +++ b/docs/df/d31/muxer__util_8cc_source.html @@ -264,7 +264,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 35803801a5..dfa8c04262 100644 --- a/docs/df/d32/audio__stream__info_8h_source.html +++ b/docs/df/d32/audio__stream__info_8h_source.html @@ -164,7 +164,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d33/classshaka_1_1AdaptationSet-members.html b/docs/df/d33/classshaka_1_1AdaptationSet-members.html index 06e080f1b7..d65cefe25c 100644 --- a/docs/df/d33/classshaka_1_1AdaptationSet-members.html +++ b/docs/df/d33/classshaka_1_1AdaptationSet-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d38/structshaka_1_1media_1_1mp4_1_1ChunkInfo.html b/docs/df/d38/structshaka_1_1media_1_1mp4_1_1ChunkInfo.html index dfeffec0fe..5567886e27 100644 --- a/docs/df/d38/structshaka_1_1media_1_1mp4_1_1ChunkInfo.html +++ b/docs/df/d38/structshaka_1_1media_1_1mp4_1_1ChunkInfo.html @@ -115,7 +115,7 @@ uint32_t sample_descriptio diff --git a/docs/df/d38/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html b/docs/df/d38/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html index 4870b48b03..ff84db45b1 100644 --- a/docs/df/d38/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html +++ b/docs/df/d38/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d3c/classshaka_1_1media_1_1RequestSigner.html b/docs/df/d3c/classshaka_1_1media_1_1RequestSigner.html index cb8a02ec3a..9a7185777b 100644 --- a/docs/df/d3c/classshaka_1_1media_1_1RequestSigner.html +++ b/docs/df/d3c/classshaka_1_1media_1_1RequestSigner.html @@ -180,7 +180,7 @@ Protected Member Functions diff --git a/docs/df/d46/classshaka_1_1media_1_1Muxer.html b/docs/df/d46/classshaka_1_1media_1_1Muxer.html index b30c054dae..534b07671a 100644 --- a/docs/df/d46/classshaka_1_1media_1_1Muxer.html +++ b/docs/df/d46/classshaka_1_1media_1_1Muxer.html @@ -342,7 +342,7 @@ class MediaStream diff --git a/docs/df/d46/classshaka_1_1media_1_1ThreadedIoFile-members.html b/docs/df/d46/classshaka_1_1media_1_1ThreadedIoFile-members.html index 21ba519377..731341bfdb 100644 --- a/docs/df/d46/classshaka_1_1media_1_1ThreadedIoFile-members.html +++ b/docs/df/d46/classshaka_1_1media_1_1ThreadedIoFile-members.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d50/classshaka_1_1media_1_1mp2t_1_1AacProgramMapTableWriter-members.html b/docs/df/d50/classshaka_1_1media_1_1mp2t_1_1AacProgramMapTableWriter-members.html index 0cbbc06afb..32ac9d2f47 100644 --- a/docs/df/d50/classshaka_1_1media_1_1mp2t_1_1AacProgramMapTableWriter-members.html +++ b/docs/df/d50/classshaka_1_1media_1_1mp2t_1_1AacProgramMapTableWriter-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d51/classshaka_1_1media_1_1RsaPrivateKey-members.html b/docs/df/d51/classshaka_1_1media_1_1RsaPrivateKey-members.html index 4302132bd0..3b7b0cde4b 100644 --- a/docs/df/d51/classshaka_1_1media_1_1RsaPrivateKey-members.html +++ b/docs/df/d51/classshaka_1_1media_1_1RsaPrivateKey-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d51/classshaka_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html b/docs/df/d51/classshaka_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html index 42e951bdb2..014d58bcf0 100644 --- a/docs/df/d51/classshaka_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html +++ b/docs/df/d51/classshaka_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d60/classshaka_1_1MockMpdBuilder.html b/docs/df/d60/classshaka_1_1MockMpdBuilder.html index 0159bbdb89..10c0020284 100644 --- a/docs/df/d60/classshaka_1_1MockMpdBuilder.html +++ b/docs/df/d60/classshaka_1_1MockMpdBuilder.html @@ -153,7 +153,7 @@ Additional Inherited Members diff --git a/docs/df/d63/structshaka_1_1media_1_1mp4_1_1AudioRollRecoveryEntry-members.html b/docs/df/d63/structshaka_1_1media_1_1mp4_1_1AudioRollRecoveryEntry-members.html index 60bc39c4bb..10f58fec4f 100644 --- a/docs/df/d63/structshaka_1_1media_1_1mp4_1_1AudioRollRecoveryEntry-members.html +++ b/docs/df/d63/structshaka_1_1media_1_1mp4_1_1AudioRollRecoveryEntry-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d66/classshaka_1_1media_1_1KeyFetcher.html b/docs/df/d66/classshaka_1_1media_1_1KeyFetcher.html index a5ad0583fa..cc077041f0 100644 --- a/docs/df/d66/classshaka_1_1media_1_1KeyFetcher.html +++ b/docs/df/d66/classshaka_1_1media_1_1KeyFetcher.html @@ -177,7 +177,7 @@ Public Member Functions diff --git a/docs/df/d6a/classshaka_1_1MockMpdBuilder-members.html b/docs/df/d6a/classshaka_1_1MockMpdBuilder-members.html index f885a27ce5..ddb159255b 100644 --- a/docs/df/d6a/classshaka_1_1MockMpdBuilder-members.html +++ b/docs/df/d6a/classshaka_1_1MockMpdBuilder-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d6a/structshaka_1_1media_1_1mp4_1_1OpusSpecific-members.html b/docs/df/d6a/structshaka_1_1media_1_1mp4_1_1OpusSpecific-members.html index 09908fd76f..d7b90b5929 100644 --- a/docs/df/d6a/structshaka_1_1media_1_1mp4_1_1OpusSpecific-members.html +++ b/docs/df/d6a/structshaka_1_1media_1_1mp4_1_1OpusSpecific-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d7b/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample.html b/docs/df/d7b/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample.html index 5d1f24718f..08fd981ba5 100644 --- a/docs/df/d7b/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample.html +++ b/docs/df/d7b/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/df/d7b/structshaka_1_1media_1_1mp4_1_1TrackFragment.html b/docs/df/d7b/structshaka_1_1media_1_1mp4_1_1TrackFragment.html index ce1f8bebcd..fcc3011da2 100644 --- a/docs/df/d7b/structshaka_1_1media_1_1mp4_1_1TrackFragment.html +++ b/docs/df/d7b/structshaka_1_1media_1_1mp4_1_1TrackFragment.html @@ -198,7 +198,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 16c80fc78d..4aaae21034 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/d82/classshaka_1_1media_1_1DecoderConfigurationRecord-members.html b/docs/df/d82/classshaka_1_1media_1_1DecoderConfigurationRecord-members.html index ba4736a3ff..5eb1138b34 100644 --- a/docs/df/d82/classshaka_1_1media_1_1DecoderConfigurationRecord-members.html +++ b/docs/df/d82/classshaka_1_1media_1_1DecoderConfigurationRecord-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d87/classshaka_1_1media_1_1AesCryptor.html b/docs/df/d87/classshaka_1_1media_1_1AesCryptor.html index 0d51539b1d..ca5f29e12e 100644 --- a/docs/df/d87/classshaka_1_1media_1_1AesCryptor.html +++ b/docs/df/d87/classshaka_1_1media_1_1AesCryptor.html @@ -424,7 +424,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/df/d8a/structshaka_1_1media_1_1mp4_1_1DataEntryUrl.html b/docs/df/d8a/structshaka_1_1media_1_1mp4_1_1DataEntryUrl.html index 0f6184fc19..880374c5fe 100644 --- a/docs/df/d8a/structshaka_1_1media_1_1mp4_1_1DataEntryUrl.html +++ b/docs/df/d8a/structshaka_1_1media_1_1mp4_1_1DataEntryUrl.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/df/d8a/vp9__parser_8h_source.html b/docs/df/d8a/vp9__parser_8h_source.html index d66bdba2fc..366b2368ed 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 1893f1419d..5b573b5738 100644 --- a/docs/df/d8a/vpx__parser_8h_source.html +++ b/docs/df/d8a/vpx__parser_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d8c/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html b/docs/df/d8c/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html index e70bdb78d3..a78d374148 100644 --- a/docs/df/d8c/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html +++ b/docs/df/d8c/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d8d/es__parser__h26x_8h_source.html b/docs/df/d8d/es__parser__h26x_8h_source.html index 6adc0b31eb..ce6d3baf70 100644 --- a/docs/df/d8d/es__parser__h26x_8h_source.html +++ b/docs/df/d8d/es__parser__h26x_8h_source.html @@ -222,7 +222,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d94/classshaka_1_1RepresentationStateChangeListener.html b/docs/df/d94/classshaka_1_1RepresentationStateChangeListener.html index 77eef991ac..177fb5d3e7 100644 --- a/docs/df/d94/classshaka_1_1RepresentationStateChangeListener.html +++ b/docs/df/d94/classshaka_1_1RepresentationStateChangeListener.html @@ -195,7 +195,7 @@ Public Member Functions diff --git a/docs/df/d96/xml__node_8cc_source.html b/docs/df/d96/xml__node_8cc_source.html index 2418e693ff..b4309a9628 100644 --- a/docs/df/d96/xml__node_8cc_source.html +++ b/docs/df/d96/xml__node_8cc_source.html @@ -488,7 +488,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d9a/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html b/docs/df/d9a/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html index 8dcfa285ed..9f6b098752 100644 --- a/docs/df/d9a/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html +++ b/docs/df/d9a/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html b/docs/df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html index 760294bf9f..d9a183e519 100644 --- a/docs/df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html +++ b/docs/df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html @@ -311,7 +311,7 @@ Additional Inherited Members diff --git a/docs/df/da0/structshaka_1_1media_1_1mp4_1_1ChunkOffset-members.html b/docs/df/da0/structshaka_1_1media_1_1mp4_1_1ChunkOffset-members.html index 9f3f35495c..e9d68b9d42 100644 --- a/docs/df/da0/structshaka_1_1media_1_1mp4_1_1ChunkOffset-members.html +++ b/docs/df/da0/structshaka_1_1media_1_1mp4_1_1ChunkOffset-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/da5/structshaka_1_1media_1_1mp4_1_1CueIDBox-members.html b/docs/df/da5/structshaka_1_1media_1_1mp4_1_1CueIDBox-members.html index 20d5439e69..66c02d46f6 100644 --- a/docs/df/da5/structshaka_1_1media_1_1mp4_1_1CueIDBox-members.html +++ b/docs/df/da5/structshaka_1_1media_1_1mp4_1_1CueIDBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dad/decrypt__config_8h_source.html b/docs/df/dad/decrypt__config_8h_source.html index 1934e963ce..ecd5015c40 100644 --- a/docs/df/dad/decrypt__config_8h_source.html +++ b/docs/df/dad/decrypt__config_8h_source.html @@ -168,7 +168,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/db8/structshaka_1_1media_1_1StreamDescriptor-members.html b/docs/df/db8/structshaka_1_1media_1_1StreamDescriptor-members.html index 850bb281a8..3655ede1d4 100644 --- a/docs/df/db8/structshaka_1_1media_1_1StreamDescriptor-members.html +++ b/docs/df/db8/structshaka_1_1media_1_1StreamDescriptor-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dc7/avc__decoder__configuration__record_8h_source.html b/docs/df/dc7/avc__decoder__configuration__record_8h_source.html index 2b19565a72..07da38025b 100644 --- a/docs/df/dc7/avc__decoder__configuration__record_8h_source.html +++ b/docs/df/dc7/avc__decoder__configuration__record_8h_source.html @@ -153,7 +153,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 8f0ada26d4..f4f87b14cd 100644 --- a/docs/df/dd2/mpd__utils_8h_source.html +++ b/docs/df/dd2/mpd__utils_8h_source.html @@ -174,7 +174,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dd2/structshaka_1_1media_1_1H264Pps-members.html b/docs/df/dd2/structshaka_1_1media_1_1H264Pps-members.html index e3f571e9c3..d2b8c5bac5 100644 --- a/docs/df/dd2/structshaka_1_1media_1_1H264Pps-members.html +++ b/docs/df/dd2/structshaka_1_1media_1_1H264Pps-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/ddc/webm_2segmenter_8h_source.html b/docs/df/ddc/webm_2segmenter_8h_source.html index 4976015ab8..26985c40a9 100644 --- a/docs/df/ddc/webm_2segmenter_8h_source.html +++ b/docs/df/ddc/webm_2segmenter_8h_source.html @@ -251,7 +251,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dde/ts__section__psi_8cc_source.html b/docs/df/dde/ts__section__psi_8cc_source.html index 3141229a95..eb1d356244 100644 --- a/docs/df/dde/ts__section__psi_8cc_source.html +++ b/docs/df/dde/ts__section__psi_8cc_source.html @@ -95,140 +95,142 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
6 
7 #include <stdint.h>
8 
-
9 #include "packager/base/logging.h"
-
10 #include "packager/media/base/bit_reader.h"
-
11 #include "packager/media/formats/mp2t/mp2t_common.h"
-
12 
-
13 static bool IsCrcValid(const uint8_t* buf, int size) {
-
14  uint32_t crc = 0xffffffffu;
-
15  const uint32_t kCrcPoly = 0x4c11db7;
-
16 
-
17  for (int k = 0; k < size; k++) {
-
18  int nbits = 8;
-
19  uint32_t data_msb_aligned = buf[k];
-
20  data_msb_aligned <<= (32 - nbits);
-
21 
-
22  while (nbits > 0) {
-
23  if ((data_msb_aligned ^ crc) & 0x80000000) {
-
24  crc <<= 1;
-
25  crc ^= kCrcPoly;
-
26  } else {
-
27  crc <<= 1;
-
28  }
-
29 
-
30  data_msb_aligned <<= 1;
-
31  nbits--;
-
32  }
-
33  }
-
34 
-
35  return (crc == 0);
-
36 }
-
37 
-
38 namespace shaka {
-
39 namespace media {
-
40 namespace mp2t {
-
41 
-
42 TsSectionPsi::TsSectionPsi()
-
43  : wait_for_pusi_(true),
-
44  leading_bytes_to_discard_(0) {
-
45 }
-
46 
-
47 TsSectionPsi::~TsSectionPsi() {
-
48 }
-
49 
-
50 bool TsSectionPsi::Parse(bool payload_unit_start_indicator,
-
51  const uint8_t* buf,
-
52  int size) {
-
53  // Ignore partial PSI.
-
54  if (wait_for_pusi_ && !payload_unit_start_indicator)
-
55  return true;
-
56 
-
57  if (payload_unit_start_indicator) {
-
58  // Reset the state of the PSI section.
-
59  ResetPsiState();
-
60 
-
61  // Update the state.
-
62  wait_for_pusi_ = false;
-
63  DCHECK_GE(size, 1);
-
64  int pointer_field = buf[0];
-
65  leading_bytes_to_discard_ = pointer_field;
-
66  buf++;
-
67  size--;
-
68  }
-
69 
-
70  // Discard some leading bytes if needed.
-
71  if (leading_bytes_to_discard_ > 0) {
-
72  int nbytes_to_discard = std::min(leading_bytes_to_discard_, size);
-
73  buf += nbytes_to_discard;
-
74  size -= nbytes_to_discard;
-
75  leading_bytes_to_discard_ -= nbytes_to_discard;
-
76  }
-
77  if (size == 0)
-
78  return true;
-
79 
-
80  // Add the data to the parser state.
-
81  psi_byte_queue_.Push(buf, size);
-
82  int raw_psi_size;
-
83  const uint8_t* raw_psi;
-
84  psi_byte_queue_.Peek(&raw_psi, &raw_psi_size);
-
85 
-
86  // Check whether we have enough data to start parsing.
-
87  if (raw_psi_size < 3)
-
88  return true;
-
89  int section_length =
-
90  ((static_cast<int>(raw_psi[1]) << 8) |
-
91  (static_cast<int>(raw_psi[2]))) & 0xfff;
-
92  if (section_length >= 1021)
-
93  return false;
-
94  int psi_length = section_length + 3;
-
95  if (raw_psi_size < psi_length) {
-
96  // Don't throw an error when there is not enough data,
-
97  // just wait for more data to come.
-
98  return true;
-
99  }
-
100 
-
101  // There should not be any trailing bytes after a PMT.
-
102  // Instead, the pointer field should be used to stuff bytes.
-
103  DVLOG_IF(1, raw_psi_size > psi_length)
-
104  << "Trailing bytes after a PSI section: "
-
105  << psi_length << " vs " << raw_psi_size;
-
106 
-
107  // Verify the CRC.
-
108  RCHECK(IsCrcValid(raw_psi, psi_length));
-
109 
-
110  // Parse the PSI section.
-
111  BitReader bit_reader(raw_psi, raw_psi_size);
-
112  bool status = ParsePsiSection(&bit_reader);
-
113  if (status)
-
114  ResetPsiState();
-
115 
-
116  return status;
-
117 }
-
118 
-
119 void TsSectionPsi::Flush() {
-
120 }
-
121 
-
122 void TsSectionPsi::Reset() {
-
123  ResetPsiSection();
-
124  ResetPsiState();
-
125 }
-
126 
-
127 void TsSectionPsi::ResetPsiState() {
-
128  wait_for_pusi_ = true;
-
129  psi_byte_queue_.Reset();
-
130  leading_bytes_to_discard_ = 0;
-
131 }
-
132 
-
133 } // namespace mp2t
-
134 } // namespace media
-
135 } // namespace shaka
+
9 #include <algorithm>
+
10 
+
11 #include "packager/base/logging.h"
+
12 #include "packager/media/base/bit_reader.h"
+
13 #include "packager/media/formats/mp2t/mp2t_common.h"
+
14 
+
15 static bool IsCrcValid(const uint8_t* buf, int size) {
+
16  uint32_t crc = 0xffffffffu;
+
17  const uint32_t kCrcPoly = 0x4c11db7;
+
18 
+
19  for (int k = 0; k < size; k++) {
+
20  int nbits = 8;
+
21  uint32_t data_msb_aligned = buf[k];
+
22  data_msb_aligned <<= (32 - nbits);
+
23 
+
24  while (nbits > 0) {
+
25  if ((data_msb_aligned ^ crc) & 0x80000000) {
+
26  crc <<= 1;
+
27  crc ^= kCrcPoly;
+
28  } else {
+
29  crc <<= 1;
+
30  }
+
31 
+
32  data_msb_aligned <<= 1;
+
33  nbits--;
+
34  }
+
35  }
+
36 
+
37  return (crc == 0);
+
38 }
+
39 
+
40 namespace shaka {
+
41 namespace media {
+
42 namespace mp2t {
+
43 
+
44 TsSectionPsi::TsSectionPsi()
+
45  : wait_for_pusi_(true),
+
46  leading_bytes_to_discard_(0) {
+
47 }
+
48 
+
49 TsSectionPsi::~TsSectionPsi() {
+
50 }
+
51 
+
52 bool TsSectionPsi::Parse(bool payload_unit_start_indicator,
+
53  const uint8_t* buf,
+
54  int size) {
+
55  // Ignore partial PSI.
+
56  if (wait_for_pusi_ && !payload_unit_start_indicator)
+
57  return true;
+
58 
+
59  if (payload_unit_start_indicator) {
+
60  // Reset the state of the PSI section.
+
61  ResetPsiState();
+
62 
+
63  // Update the state.
+
64  wait_for_pusi_ = false;
+
65  DCHECK_GE(size, 1);
+
66  int pointer_field = buf[0];
+
67  leading_bytes_to_discard_ = pointer_field;
+
68  buf++;
+
69  size--;
+
70  }
+
71 
+
72  // Discard some leading bytes if needed.
+
73  if (leading_bytes_to_discard_ > 0) {
+
74  int nbytes_to_discard = std::min(leading_bytes_to_discard_, size);
+
75  buf += nbytes_to_discard;
+
76  size -= nbytes_to_discard;
+
77  leading_bytes_to_discard_ -= nbytes_to_discard;
+
78  }
+
79  if (size == 0)
+
80  return true;
+
81 
+
82  // Add the data to the parser state.
+
83  psi_byte_queue_.Push(buf, size);
+
84  int raw_psi_size;
+
85  const uint8_t* raw_psi;
+
86  psi_byte_queue_.Peek(&raw_psi, &raw_psi_size);
+
87 
+
88  // Check whether we have enough data to start parsing.
+
89  if (raw_psi_size < 3)
+
90  return true;
+
91  int section_length =
+
92  ((static_cast<int>(raw_psi[1]) << 8) |
+
93  (static_cast<int>(raw_psi[2]))) & 0xfff;
+
94  if (section_length >= 1021)
+
95  return false;
+
96  int psi_length = section_length + 3;
+
97  if (raw_psi_size < psi_length) {
+
98  // Don't throw an error when there is not enough data,
+
99  // just wait for more data to come.
+
100  return true;
+
101  }
+
102 
+
103  // There should not be any trailing bytes after a PMT.
+
104  // Instead, the pointer field should be used to stuff bytes.
+
105  DVLOG_IF(1, raw_psi_size > psi_length)
+
106  << "Trailing bytes after a PSI section: "
+
107  << psi_length << " vs " << raw_psi_size;
+
108 
+
109  // Verify the CRC.
+
110  RCHECK(IsCrcValid(raw_psi, psi_length));
+
111 
+
112  // Parse the PSI section.
+
113  BitReader bit_reader(raw_psi, raw_psi_size);
+
114  bool status = ParsePsiSection(&bit_reader);
+
115  if (status)
+
116  ResetPsiState();
+
117 
+
118  return status;
+
119 }
+
120 
+
121 void TsSectionPsi::Flush() {
+
122 }
+
123 
+
124 void TsSectionPsi::Reset() {
+
125  ResetPsiSection();
+
126  ResetPsiState();
+
127 }
+
128 
+
129 void TsSectionPsi::ResetPsiState() {
+
130  wait_for_pusi_ = true;
+
131  psi_byte_queue_.Reset();
+
132  leading_bytes_to_discard_ = 0;
+
133 }
+
134 
+
135 } // namespace mp2t
+
136 } // namespace media
+
137 } // namespace shaka
void Push(const uint8_t *data, int size)
Append new bytes to the end of the queue.
Definition: byte_queue.cc:29
void Reset()
Reset the queue to the empty state.
Definition: byte_queue.cc:24
void Peek(const uint8_t **data, int *size) const
Definition: byte_queue.cc:63
diff --git a/docs/df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html b/docs/df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html index b0c06c2b03..13aceca687 100644 --- a/docs/df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html +++ b/docs/df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html @@ -118,7 +118,7 @@ int changing_slice_group_i diff --git a/docs/df/de3/text__track__config_8cc_source.html b/docs/df/de3/text__track__config_8cc_source.html index bf237b2bed..155cfadfe6 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/de9/segment__info_8h_source.html b/docs/df/de9/segment__info_8h_source.html index c7f3c5333d..42422a7195 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/df1/structshaka_1_1ContentProtectionElement-members.html b/docs/df/df1/structshaka_1_1ContentProtectionElement-members.html index 6b033b331e..5e7b8172a6 100644 --- a/docs/df/df1/structshaka_1_1ContentProtectionElement-members.html +++ b/docs/df/df1/structshaka_1_1ContentProtectionElement-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dir_0494b8c96e3190a776d2b97ade9c8ddf.html b/docs/dir_0494b8c96e3190a776d2b97ade9c8ddf.html index 366eb2149a..4c7a8c5bcc 100644 --- a/docs/dir_0494b8c96e3190a776d2b97ade9c8ddf.html +++ b/docs/dir_0494b8c96e3190a776d2b97ade9c8ddf.html @@ -165,7 +165,7 @@ Files diff --git a/docs/dir_2618cd273dea54f184e42d7a562af818.html b/docs/dir_2618cd273dea54f184e42d7a562af818.html index 03e0c0b0e6..3c4a67f9e6 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 4cac52d334..b11cb5e3db 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 0a43cb400d..937c271695 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 8b491de593..3f7a18138e 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 cf581cace2..f9925f10d9 100644 --- a/docs/dir_3e9291fd7a18fdecc763294cb2628910.html +++ b/docs/dir_3e9291fd7a18fdecc763294cb2628910.html @@ -157,7 +157,7 @@ Files diff --git a/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html b/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html index 2c00b6e0cd..d952db69d0 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 270777241d..83eccd5800 100644 --- a/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html +++ b/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html @@ -181,7 +181,7 @@ Files diff --git a/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html b/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html index d2aafd844c..8cba4389fa 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 5e1dba40ee..2d3e6becf7 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 f69912cab8..d94bf34993 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 38fe890177..5892312369 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 98fec3edb7..0ee9f7ba8a 100644 --- a/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html +++ b/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html @@ -117,7 +117,7 @@ Files diff --git a/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html b/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html index 5061effe29..409f7e130e 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 e20fac26b7..5b7a023c50 100644 --- a/docs/dir_d422163b96683743ed3963d4aac17747.html +++ b/docs/dir_d422163b96683743ed3963d4aac17747.html @@ -135,7 +135,7 @@ Files diff --git a/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html b/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html index ea432b8684..73d45599a1 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 1d2dfa12a3..22f066ec6a 100644 --- a/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html +++ b/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html @@ -171,7 +171,7 @@ Files diff --git a/docs/files.html b/docs/files.html index af98c5e391..386de81844 100644 --- a/docs/files.html +++ b/docs/files.html @@ -430,7 +430,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions.html b/docs/functions.html index f4f44d4396..e5e89df679 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -240,7 +240,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_b.html b/docs/functions_b.html index 1ba87d4734..cb3ec12b3f 100644 --- a/docs/functions_b.html +++ b/docs/functions_b.html @@ -240,7 +240,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_c.html b/docs/functions_c.html index 0bba2d673c..c6f34cbc44 100644 --- a/docs/functions_c.html +++ b/docs/functions_c.html @@ -241,7 +241,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_d.html b/docs/functions_d.html index a6eef08f92..33a5f934bf 100644 --- a/docs/functions_d.html +++ b/docs/functions_d.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_e.html b/docs/functions_e.html index e766edf081..d069f2d04c 100644 --- a/docs/functions_e.html +++ b/docs/functions_e.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_enum.html b/docs/functions_enum.html index be8038e73c..557b3899c0 100644 --- a/docs/functions_enum.html +++ b/docs/functions_enum.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_eval.html b/docs/functions_eval.html index bbf030e2dc..18213480b8 100644 --- a/docs/functions_eval.html +++ b/docs/functions_eval.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_f.html b/docs/functions_f.html index f210432890..94ad784bb3 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 573f807f9f..181397be60 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -240,7 +240,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_b.html b/docs/functions_func_b.html index d9dbbe6db7..0de7b54378 100644 --- a/docs/functions_func_b.html +++ b/docs/functions_func_b.html @@ -237,7 +237,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_c.html b/docs/functions_func_c.html index 27994c6537..05a3af6fec 100644 --- a/docs/functions_func_c.html +++ b/docs/functions_func_c.html @@ -241,7 +241,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_d.html b/docs/functions_func_d.html index cac019d5ee..e6162d253b 100644 --- a/docs/functions_func_d.html +++ b/docs/functions_func_d.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_e.html b/docs/functions_func_e.html index 7ec32b12f0..e7c3a1a5b7 100644 --- a/docs/functions_func_e.html +++ b/docs/functions_func_e.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_f.html b/docs/functions_func_f.html index 17c455aa20..dadf2089b1 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 f9dd54a335..a25561a031 100644 --- a/docs/functions_func_g.html +++ b/docs/functions_func_g.html @@ -259,7 +259,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_h.html b/docs/functions_func_h.html index 4b5b94b48e..8da31a5b52 100644 --- a/docs/functions_func_h.html +++ b/docs/functions_func_h.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_i.html b/docs/functions_func_i.html index 2b9281437a..6d8e12c2dc 100644 --- a/docs/functions_func_i.html +++ b/docs/functions_func_i.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_k.html b/docs/functions_func_k.html index a27ec1e88f..07deaba1c4 100644 --- a/docs/functions_func_k.html +++ b/docs/functions_func_k.html @@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_l.html b/docs/functions_func_l.html index e99af7376a..5e0b2722f0 100644 --- a/docs/functions_func_l.html +++ b/docs/functions_func_l.html @@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_m.html b/docs/functions_func_m.html index ae286ef01c..deb4823418 100644 --- a/docs/functions_func_m.html +++ b/docs/functions_func_m.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_n.html b/docs/functions_func_n.html index 53cb73c5f5..19df1a71ed 100644 --- a/docs/functions_func_n.html +++ b/docs/functions_func_n.html @@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_o.html b/docs/functions_func_o.html index 933e4fa7c6..cfabfcdd8f 100644 --- a/docs/functions_func_o.html +++ b/docs/functions_func_o.html @@ -193,7 +193,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_p.html b/docs/functions_func_p.html index 2ec02c3698..2c88eb361e 100644 --- a/docs/functions_func_p.html +++ b/docs/functions_func_p.html @@ -228,7 +228,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_r.html b/docs/functions_func_r.html index 39b57b96a0..e035f5b238 100644 --- a/docs/functions_func_r.html +++ b/docs/functions_func_r.html @@ -201,7 +201,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_s.html b/docs/functions_func_s.html index cfefa7a85c..0903fab232 100644 --- a/docs/functions_func_s.html +++ b/docs/functions_func_s.html @@ -285,7 +285,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_t.html b/docs/functions_func_t.html index 6d112cf60e..fb1d652f51 100644 --- a/docs/functions_func_t.html +++ b/docs/functions_func_t.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_u.html b/docs/functions_func_u.html index 6f0efa3725..a21dc0e794 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 db5403ce16..f4143d750c 100644 --- a/docs/functions_func_v.html +++ b/docs/functions_func_v.html @@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_w.html b/docs/functions_func_w.html index b68770f693..841f0a0fae 100644 --- a/docs/functions_func_w.html +++ b/docs/functions_func_w.html @@ -182,7 +182,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_x.html b/docs/functions_func_x.html index e1e838fb60..ac2dd7bdc5 100644 --- a/docs/functions_func_x.html +++ b/docs/functions_func_x.html @@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_~.html b/docs/functions_func_~.html index 4019b6f33d..cc576a017b 100644 --- a/docs/functions_func_~.html +++ b/docs/functions_func_~.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_g.html b/docs/functions_g.html index 18764aaefb..2563e81994 100644 --- a/docs/functions_g.html +++ b/docs/functions_g.html @@ -259,7 +259,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_h.html b/docs/functions_h.html index f0933bd468..45ab8aa90a 100644 --- a/docs/functions_h.html +++ b/docs/functions_h.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_i.html b/docs/functions_i.html index da53a34c73..9397f7dbdd 100644 --- a/docs/functions_i.html +++ b/docs/functions_i.html @@ -213,7 +213,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_k.html b/docs/functions_k.html index 9325dfd3e9..f2d187e926 100644 --- a/docs/functions_k.html +++ b/docs/functions_k.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_l.html b/docs/functions_l.html index d4cd095fa9..f17efc25b7 100644 --- a/docs/functions_l.html +++ b/docs/functions_l.html @@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_m.html b/docs/functions_m.html index d482c90f3d..790a729da1 100644 --- a/docs/functions_m.html +++ b/docs/functions_m.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_n.html b/docs/functions_n.html index 41bc9ede91..c2e200719e 100644 --- a/docs/functions_n.html +++ b/docs/functions_n.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_o.html b/docs/functions_o.html index 5b3bb42e60..bcb5e80304 100644 --- a/docs/functions_o.html +++ b/docs/functions_o.html @@ -196,7 +196,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_p.html b/docs/functions_p.html index 949fe51362..92fab0b219 100644 --- a/docs/functions_p.html +++ b/docs/functions_p.html @@ -234,7 +234,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_r.html b/docs/functions_r.html index 99aa48fc96..5a6dc02667 100644 --- a/docs/functions_r.html +++ b/docs/functions_r.html @@ -201,7 +201,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_s.html b/docs/functions_s.html index 0445cdc621..395229efe1 100644 --- a/docs/functions_s.html +++ b/docs/functions_s.html @@ -300,7 +300,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_t.html b/docs/functions_t.html index a14b133f9f..14c99c027e 100644 --- a/docs/functions_t.html +++ b/docs/functions_t.html @@ -182,7 +182,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_type.html b/docs/functions_type.html index 43f07cc406..cb0086d9db 100644 --- a/docs/functions_type.html +++ b/docs/functions_type.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_u.html b/docs/functions_u.html index f9de8e3b5f..cab77e346d 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 8d50603ade..2e32859e3b 100644 --- a/docs/functions_v.html +++ b/docs/functions_v.html @@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_vars.html b/docs/functions_vars.html index b3b5982c7d..211473dbb9 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_w.html b/docs/functions_w.html index 581269844b..14f15810ce 100644 --- a/docs/functions_w.html +++ b/docs/functions_w.html @@ -182,7 +182,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_x.html b/docs/functions_x.html index f145062884..5e800e11d2 100644 --- a/docs/functions_x.html +++ b/docs/functions_x.html @@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_~.html b/docs/functions_~.html index 925d38b7cb..f37f7623be 100644 --- a/docs/functions_~.html +++ b/docs/functions_~.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/hierarchy.html b/docs/hierarchy.html index ab1ae7d1c4..0576e74f7b 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -368,7 +368,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/index.html b/docs/index.html index c011c4d216..df865bf107 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 3e001184b2..75cd292dea 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 528029a144..34bf2dca3f 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 daffd8250b..0bcb3ba935 100644 --- a/docs/namespaces.html +++ b/docs/namespaces.html @@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');