diff --git a/docs/annotated.html b/docs/annotated.html index a303b19504..43938ed0b6 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -382,7 +382,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/classes.html b/docs/classes.html index 878a33c6b5..aee2206af0 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -181,7 +181,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 78263f6a69..53ab8b3898 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 d7e9379e0e..fdb14e0019 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 15e3725b24..f852b52556 100644 --- a/docs/d0/d06/mpd__flags_8cc_source.html +++ b/docs/d0/d06/mpd__flags_8cc_source.html @@ -148,7 +148,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 af6f8e9d83..724f7a5bd5 100644 --- a/docs/d0/d0e/classshaka_1_1media_1_1HttpKeyFetcher-members.html +++ b/docs/d0/d0e/classshaka_1_1media_1_1HttpKeyFetcher-members.html @@ -106,7 +106,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 56abec6d7a..af4e9f0e42 100644 --- a/docs/d0/d0e/hevc__decoder__configuration__record_8h_source.html +++ b/docs/d0/d0e/hevc__decoder__configuration__record_8h_source.html @@ -139,7 +139,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 52e3d78636..41f27d2aa4 100644 --- a/docs/d0/d0e/muxer__options_8h_source.html +++ b/docs/d0/d0e/muxer__options_8h_source.html @@ -140,7 +140,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 b6c5ff38ec..54cf11dad1 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 7bf0f66d88..128db4983a 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/d17/structshaka_1_1media_1_1StreamData-members.html b/docs/d0/d17/structshaka_1_1media_1_1StreamData-members.html index 2e590600fb..33a9723164 100644 --- a/docs/d0/d17/structshaka_1_1media_1_1StreamData-members.html +++ b/docs/d0/d17/structshaka_1_1media_1_1StreamData-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d1a/text__sample_8h_source.html b/docs/d0/d1a/text__sample_8h_source.html index ae40103319..00f3a524bf 100644 --- a/docs/d0/d1a/text__sample_8h_source.html +++ b/docs/d0/d1a/text__sample_8h_source.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 436e574c37..a75137f9b3 100644 --- a/docs/d0/d1e/classshaka_1_1media_1_1H265ByteToUnitStreamConverter-members.html +++ b/docs/d0/d1e/classshaka_1_1media_1_1H265ByteToUnitStreamConverter-members.html @@ -108,7 +108,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 1b7b86bcc4..7c24cbcea1 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 07211f484f..faccc16098 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 71c59de7d1..84214ad703 100644 --- a/docs/d0/d27/structshaka_1_1media_1_1MuxerOptions.html +++ b/docs/d0/d27/structshaka_1_1media_1_1MuxerOptions.html @@ -206,7 +206,7 @@ bool mp4_include_pssh_in_s diff --git a/docs/d0/d30/mock__mpd__notifier_8h_source.html b/docs/d0/d30/mock__mpd__notifier_8h_source.html index 509b62c477..92819316ee 100644 --- a/docs/d0/d30/mock__mpd__notifier_8h_source.html +++ b/docs/d0/d30/mock__mpd__notifier_8h_source.html @@ -149,7 +149,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 342f235682..7d245e4c6d 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 b96ed85222..3ed24370bb 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 249a3c34ff..c3d888f1a3 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 a23fe91eb3..cea62dacbb 100644 --- a/docs/d0/d3a/hls__notify__muxer__listener_8cc_source.html +++ b/docs/d0/d3a/hls__notify__muxer__listener_8cc_source.html @@ -237,7 +237,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 020685d0a0..61728cd8da 100644 --- a/docs/d0/d3a/webm__constants_8h_source.html +++ b/docs/d0/d3a/webm__constants_8h_source.html @@ -333,7 +333,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 f374523a6b..f679e78085 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 b2032d092c..b59d1907c8 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 d80b33ea97..495ed5452a 100644 --- a/docs/d0/d42/widevine__encryption__flags_8cc_source.html +++ b/docs/d0/d42/widevine__encryption__flags_8cc_source.html @@ -273,7 +273,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 125a55dff3..f1a0a9a240 100644 --- a/docs/d0/d46/fourccs_8h_source.html +++ b/docs/d0/d46/fourccs_8h_source.html @@ -257,7 +257,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d48/structshaka_1_1media_1_1SegmentInfo-members.html b/docs/d0/d48/structshaka_1_1media_1_1SegmentInfo-members.html index a67e7a03e5..2558679895 100644 --- a/docs/d0/d48/structshaka_1_1media_1_1SegmentInfo-members.html +++ b/docs/d0/d48/structshaka_1_1media_1_1SegmentInfo-members.html @@ -101,7 +101,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 30881310da..2060bea4da 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 5f5852c4aa..366c8e568e 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/d4c/structshaka_1_1media_1_1StreamData.html b/docs/d0/d4c/structshaka_1_1media_1_1StreamData.html index 12f0f090e5..c5df7f55d9 100644 --- a/docs/d0/d4c/structshaka_1_1media_1_1StreamData.html +++ b/docs/d0/d4c/structshaka_1_1media_1_1StreamData.html @@ -130,7 +130,7 @@ std::shared_ptr< diff --git a/docs/d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html b/docs/d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html index 530c595fed..a5fe33e98a 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 ddfb795753..d1504e6c43 100644 --- a/docs/d0/d4e/libcrypto__threading_8cc_source.html +++ b/docs/d0/d4e/libcrypto__threading_8cc_source.html @@ -142,7 +142,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 86d4bfbf6c..216603b637 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 @@ -132,7 +132,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 e608b82603..95bb39910e 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 9aa6647ee4..9a2e55741d 100644 --- a/docs/d0/d66/classshaka_1_1media_1_1ThreadedIoFile.html +++ b/docs/d0/d66/classshaka_1_1media_1_1ThreadedIoFile.html @@ -167,6 +167,8 @@ Additional Inherited Members   static bool ReadFileToString (const char *file_name, std::string *contents)   +static bool WriteFileAtomically (const char *file_name, const std::string &contents) +  static bool Copy (const char *from_file_name, const char *to_file_name)   static int64_t CopyFile (File *source, File *destination) @@ -438,7 +440,7 @@ Additional Inherited Members 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 6a0f6db313..7d375e9e0a 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 dd7a6921f6..4e58fc7270 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 41fa86173f..17b6fbb6b6 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 b4a968ca22..4422db736d 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/d9a/structshaka_1_1media_1_1mp4_1_1Movie.html b/docs/d0/d9a/structshaka_1_1media_1_1mp4_1_1Movie.html index b297ea7344..2dc112b32f 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 536234ba6d..4ed4a8327d 100644 --- a/docs/d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html +++ b/docs/d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html @@ -344,7 +344,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 4ac5c8f6e8..4f310c6f8f 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 73660af02b..3fb01baa9a 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 0e225cb9b6..78415c2e71 100644 --- a/docs/d0/da6/stream__descriptor_8cc_source.html +++ b/docs/d0/da6/stream__descriptor_8cc_source.html @@ -265,7 +265,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 5ed8ed8024..dc7ecfddae 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 @@ -261,7 +261,7 @@ void set_progress_target diff --git a/docs/d0/dac/classshaka_1_1media_1_1EncryptionHandler-members.html b/docs/d0/dac/classshaka_1_1media_1_1EncryptionHandler-members.html index 7b6463cb07..77d4995b13 100644 --- a/docs/d0/dac/classshaka_1_1media_1_1EncryptionHandler-members.html +++ b/docs/d0/dac/classshaka_1_1media_1_1EncryptionHandler-members.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dac/classshaka_1_1media_1_1FixedKeySource.html b/docs/d0/dac/classshaka_1_1media_1_1FixedKeySource.html index 609c5a0917..177d14797f 100644 --- a/docs/d0/dac/classshaka_1_1media_1_1FixedKeySource.html +++ b/docs/d0/dac/classshaka_1_1media_1_1FixedKeySource.html @@ -391,7 +391,7 @@ Static Public Member Functions diff --git a/docs/d0/dae/file__util_8h_source.html b/docs/d0/dae/file__util_8h_source.html index 40bf268de6..41d2cf41cf 100644 --- a/docs/d0/dae/file__util_8h_source.html +++ b/docs/d0/dae/file__util_8h_source.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 562abb71d6..81a2000580 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/dc0/structshaka_1_1media_1_1SegmentInfo.html b/docs/d0/dc0/structshaka_1_1media_1_1SegmentInfo.html index e613b43bc5..5b9f74eab1 100644 --- a/docs/d0/dc0/structshaka_1_1media_1_1SegmentInfo.html +++ b/docs/d0/dc0/structshaka_1_1media_1_1SegmentInfo.html @@ -121,7 +121,7 @@ std::shared_ptr< 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 4a7fee3bc5..3abc17559e 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 74904d82d5..bf50d8d216 100644 --- a/docs/d0/dc8/classshaka_1_1xml_1_1AdaptationSetXmlNode-members.html +++ b/docs/d0/dc8/classshaka_1_1xml_1_1AdaptationSetXmlNode-members.html @@ -116,7 +116,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 9aeb309ac7..cf735c6aa6 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 1fde0f2067..8b9e740597 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 d4b30fe88c..ee2136f2b0 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 c4ddfa6faa..9071f773bd 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 22f593352b..fb2d203151 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 27e89e5b45..eac2dd66a6 100644 --- a/docs/d0/dee/segmenter__test__base_8h_source.html +++ b/docs/d0/dee/segmenter__test__base_8h_source.html @@ -213,7 +213,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 01fb4e5e26..04857caf28 100644 --- a/docs/d0/df3/packager__util_8cc_source.html +++ b/docs/d0/df3/packager__util_8cc_source.html @@ -351,7 +351,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 ab189b668d..c02c985c61 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 2e8f1050b8..179e5b2729 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 @@ Status  diff --git a/docs/d1/d0a/structshaka_1_1media_1_1H264Sps.html b/docs/d1/d0a/structshaka_1_1media_1_1H264Sps.html index 01ea960f91..19412d16eb 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 f3fbc8ef0f..5081ee9e5a 100644 --- a/docs/d1/d0b/hevc__decoder__configuration__record_8cc_source.html +++ b/docs/d1/d0b/hevc__decoder__configuration__record_8cc_source.html @@ -245,7 +245,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 a31d43c932..36b89578f1 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/d1c/two__pass__single__segment__segmenter_8cc_source.html b/docs/d1/d1c/two__pass__single__segment__segmenter_8cc_source.html index 6c2cff24a3..b619e27dd7 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 @@ -278,11 +278,11 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
189 } // namespace shaka
virtual bool Open()=0
Internal open. Should not be used directly.
bool TempFilePath(const std::string &temp_dir, std::string *temp_file_path)
Definition: file_util.cc:27
-
static bool Delete(const char *file_name)
Definition: file.cc:163
+
static bool Delete(const char *file_name)
Definition: file.cc:181
diff --git a/docs/d1/d1d/muxer__flags_8cc_source.html b/docs/d1/d1d/muxer__flags_8cc_source.html index ba9152a031..8f482ae131 100644 --- a/docs/d1/d1d/muxer__flags_8cc_source.html +++ b/docs/d1/d1d/muxer__flags_8cc_source.html @@ -142,7 +142,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 41732709b9..008c129bb0 100644 --- a/docs/d1/d1f/classshaka_1_1media_1_1KeySource.html +++ b/docs/d1/d1f/classshaka_1_1media_1_1KeySource.html @@ -320,7 +320,7 @@ Public Member Functions 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 b699b42748..8876c4c91c 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/d25/classshaka_1_1media_1_1MediaHandlerTestBase-members.html b/docs/d1/d25/classshaka_1_1media_1_1MediaHandlerTestBase-members.html index b47617f067..d766bdbf5b 100644 --- a/docs/d1/d25/classshaka_1_1media_1_1MediaHandlerTestBase-members.html +++ b/docs/d1/d25/classshaka_1_1media_1_1MediaHandlerTestBase-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d27/key__fetcher_8h_source.html b/docs/d1/d27/key__fetcher_8h_source.html index 900f209542..a7c6bab216 100644 --- a/docs/d1/d27/key__fetcher_8h_source.html +++ b/docs/d1/d27/key__fetcher_8h_source.html @@ -125,7 +125,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 3aa3390795..9ec4e7da46 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 cad6516957..3d174587bb 100644 --- a/docs/d1/d2a/decryptor__source_8cc_source.html +++ b/docs/d1/d2a/decryptor__source_8cc_source.html @@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d2b/file__util_8cc_source.html b/docs/d1/d2b/file__util_8cc_source.html index d2cb59efe2..4c661a11fa 100644 --- a/docs/d1/d2b/file__util_8cc_source.html +++ b/docs/d1/d2b/file__util_8cc_source.html @@ -135,7 +135,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 82a7bdca7d..962255cd52 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 478c0a94e3..9349723cb6 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 2d826cf0b2..cf38d9702b 100644 --- a/docs/d1/d2f/webvtt__media__parser_8cc_source.html +++ b/docs/d1/d2f/webvtt__media__parser_8cc_source.html @@ -408,7 +408,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 eecae3aaa0..dea18e9b79 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 c3fc6b9de4..00a1b5e692 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 4b54395350..2bbbf0909f 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/d36/classshaka_1_1media_1_1FakeMediaHandler.html b/docs/d1/d36/classshaka_1_1media_1_1FakeMediaHandler.html index 254b25ebd9..94f4e63f38 100644 --- a/docs/d1/d36/classshaka_1_1media_1_1FakeMediaHandler.html +++ b/docs/d1/d36/classshaka_1_1media_1_1FakeMediaHandler.html @@ -269,7 +269,7 @@ std::vector< std::unique_ptr
diff --git a/docs/d1/d37/es__parser__h264_8h_source.html b/docs/d1/d37/es__parser__h264_8h_source.html index 7f4e133576..81bee7cfb8 100644 --- a/docs/d1/d37/es__parser__h264_8h_source.html +++ b/docs/d1/d37/es__parser__h264_8h_source.html @@ -150,7 +150,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 5ce30371a4..6f7d36384f 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 f6389355f7..28e8cdfe53 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 0c2f266809..0762559aab 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 778dbd3c4d..028e9b8e2c 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 fd4e6ce9b3..d2adeaeb8f 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 94dc3f5f40..6354442be8 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 daae60ff1a..125a147d81 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 67003330e6..c701db6d5a 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 ec444bb2ec..a2edd28918 100644 --- a/docs/d1/d70/vp8__parser_8cc_source.html +++ b/docs/d1/d70/vp8__parser_8cc_source.html @@ -289,7 +289,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 2865027c33..792d783115 100644 --- a/docs/d1/d72/language__utils_8cc_source.html +++ b/docs/d1/d72/language__utils_8cc_source.html @@ -231,7 +231,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 623b947d15..68b0b7040c 100644 --- a/docs/d1/d74/mp2t__media__parser_8cc_source.html +++ b/docs/d1/d74/mp2t__media__parser_8cc_source.html @@ -535,7 +535,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 c6c2ca2854..d4d08fd282 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 c9123ce0aa..ca35b19c6e 100644 --- a/docs/d1/d7d/webm__video__client_8cc_source.html +++ b/docs/d1/d7d/webm__video__client_8cc_source.html @@ -334,7 +334,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 3058b31613..a2e6cd6c84 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 fd8ebaad44..ec02329834 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 b7e0c9f716..bb42894fc5 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/d8e/webm__audio__client_8cc_source.html b/docs/d1/d8e/webm__audio__client_8cc_source.html index 066b1db9ab..2300dc054b 100644 --- a/docs/d1/d8e/webm__audio__client_8cc_source.html +++ b/docs/d1/d8e/webm__audio__client_8cc_source.html @@ -213,7 +213,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d8f/retired__flags_8h_source.html b/docs/d1/d8f/retired__flags_8h_source.html index 13bf055fb4..fe70b85c46 100644 --- a/docs/d1/d8f/retired__flags_8h_source.html +++ b/docs/d1/d8f/retired__flags_8h_source.html @@ -102,7 +102,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 2cab0cb7f9..50f186b35a 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 1a4e3e2a45..548b675fd4 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 3dedad525e..a99e6bbf55 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 8bc991c624..953b84df50 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 1d858619ed..eef05ca466 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 ff9feaab79..61c46123a6 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 @@ std::shared_ptr< 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 33a43537cc..5de43245ca 100644 --- a/docs/d1/da2/classshaka_1_1media_1_1NalUnitToByteStreamConverter-members.html +++ b/docs/d1/da2/classshaka_1_1media_1_1NalUnitToByteStreamConverter-members.html @@ -102,7 +102,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 3c529e3dd2..5868acd988 100644 --- a/docs/d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html +++ b/docs/d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html @@ -359,7 +359,7 @@ uint8_t chroma_location 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 3b0b5eb0e1..590f4137e8 100644 --- a/docs/d1/dad/classshaka_1_1media_1_1Demuxer-members.html +++ b/docs/d1/dad/classshaka_1_1media_1_1Demuxer-members.html @@ -128,7 +128,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 52e6799199..10d60fd742 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 f1ebe19dc4..fbbf68aa11 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/dbe/classshaka_1_1media_1_1PlayReadyKeySource-members.html b/docs/d1/dbe/classshaka_1_1media_1_1PlayReadyKeySource-members.html index 5528baa076..5e99920bf9 100644 --- a/docs/d1/dbe/classshaka_1_1media_1_1PlayReadyKeySource-members.html +++ b/docs/d1/dbe/classshaka_1_1media_1_1PlayReadyKeySource-members.html @@ -108,7 +108,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 a0326c081f..f28cdb4e5f 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/dd5/classshaka_1_1media_1_1Cluster.html b/docs/d1/dd5/classshaka_1_1media_1_1Cluster.html index f58d3284b8..5c4dd6759e 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 5568adc791..c1e0ff833c 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/dda/structshaka_1_1media_1_1EncryptionConfig-members.html b/docs/d1/dda/structshaka_1_1media_1_1EncryptionConfig-members.html index 82e5a01947..375135e78f 100644 --- a/docs/d1/dda/structshaka_1_1media_1_1EncryptionConfig-members.html +++ b/docs/d1/dda/structshaka_1_1media_1_1EncryptionConfig-members.html @@ -103,7 +103,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 8b02100de4..8e1d69c943 100644 --- a/docs/d1/de2/classshaka_1_1media_1_1VideoStreamInfo-members.html +++ b/docs/d1/de2/classshaka_1_1media_1_1VideoStreamInfo-members.html @@ -139,7 +139,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 4b131a288e..1171ff470a 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 34dcae5985..2163250821 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 f1722f319f..755a4a773f 100644 --- a/docs/d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html +++ b/docs/d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html @@ -201,7 +201,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 fabf57db0e..2932febc1d 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 c04857e4d2..fd63710f0a 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 e4d0fd0e44..4fe87ccebd 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 aebeff2914..5f287d22e6 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 336f4e99b4..17da04a505 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 8366009865..9d4e17b0d5 100644 --- a/docs/d1/df3/structshaka_1_1MpdOptions.html +++ b/docs/d1/df3/structshaka_1_1MpdOptions.html @@ -133,7 +133,7 @@ std::string default_langua diff --git a/docs/d1/df5/nalu__reader_8cc_source.html b/docs/d1/df5/nalu__reader_8cc_source.html index 788f46778b..dae0597cbc 100644 --- a/docs/d1/df5/nalu__reader_8cc_source.html +++ b/docs/d1/df5/nalu__reader_8cc_source.html @@ -574,7 +574,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 c3123ce7f2..8390b97435 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 2a50723a52..2269f9ac74 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 077fa29fdd..114646553a 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 4fb3dbf1f8..6d80cbeb98 100644 --- a/docs/d2/d0f/classshaka_1_1MpdBuilder-members.html +++ b/docs/d2/d0f/classshaka_1_1MpdBuilder-members.html @@ -101,12 +101,11 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); MpdBuilder(const MpdOptions &mpd_options)shaka::MpdBuilderexplicit MpdBuilderTest (defined in shaka::MpdBuilder)shaka::MpdBuilderfriend ToString(std::string *output)shaka::MpdBuildervirtual - WriteMpdToFile(media::File *output_file)shaka::MpdBuilder - ~MpdBuilder() (defined in shaka::MpdBuilder)shaka::MpdBuildervirtual + ~MpdBuilder() (defined in shaka::MpdBuilder)shaka::MpdBuildervirtual 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 b76338920a..f175f4177e 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 df81e83605..7399a5ed7c 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 2003799ca3..841b5038fa 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 6379c5e268..663892e93b 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 d15900572f..da84d0e829 100644 --- a/docs/d2/d24/packager__util_8h_source.html +++ b/docs/d2/d24/packager__util_8h_source.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d30/tracks__builder_8cc_source.html b/docs/d2/d30/tracks__builder_8cc_source.html index 42b7571778..39eea9ebff 100644 --- a/docs/d2/d30/tracks__builder_8cc_source.html +++ b/docs/d2/d30/tracks__builder_8cc_source.html @@ -486,7 +486,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 5e38404a64..22cd07ba20 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 a7fd319bc6..418158e842 100644 --- a/docs/d2/d35/classshaka_1_1media_1_1WidevineKeySource-members.html +++ b/docs/d2/d35/classshaka_1_1media_1_1WidevineKeySource-members.html @@ -108,7 +108,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 d8c5eab307..a7a7ee2bcc 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 3dd45e7f28..6f470bad05 100644 --- a/docs/d2/d45/program__map__table__writer_8cc_source.html +++ b/docs/d2/d45/program__map__table__writer_8cc_source.html @@ -495,7 +495,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 4d36b520b5..2a8e5785e7 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 @@ -486,7 +486,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 7d323a0cb3..f67903b94c 100644 --- a/docs/d2/d4d/file_8h_source.html +++ b/docs/d2/d4d/file_8h_source.html @@ -141,57 +141,61 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
100 
105  static bool ReadFileToString(const char* file_name, std::string* contents);
106 
-
113  static bool Copy(const char* from_file_name, const char* to_file_name);
-
114 
-
119  static int64_t CopyFile(File* source, File* destination);
-
120 
-
126  static int64_t CopyFile(File* source, File* destination, int64_t max_copy);
+
111  static bool WriteFileAtomically(const char* file_name,
+
112  const std::string& contents);
+
113 
+
120  static bool Copy(const char* from_file_name, const char* to_file_name);
+
121 
+
126  static int64_t CopyFile(File* source, File* destination);
127 
-
128  protected:
-
129  explicit File(const std::string& file_name) : file_name_(file_name) {}
-
132  virtual ~File() {}
-
133 
-
135  virtual bool Open() = 0;
-
136 
-
137  private:
-
138  friend class ThreadedIoFile;
-
139 
-
140  // This is a file factory method, it creates a proper file, e.g.
-
141  // LocalFile, MemFile based on prefix.
-
142  static File* Create(const char* file_name, const char* mode);
+
133  static int64_t CopyFile(File* source, File* destination, int64_t max_copy);
+
134 
+
135  protected:
+
136  explicit File(const std::string& file_name) : file_name_(file_name) {}
+
139  virtual ~File() {}
+
140 
+
142  virtual bool Open() = 0;
143 
-
144  static File* CreateInternalFile(const char* file_name, const char* mode);
-
145 
-
146  std::string file_name_;
-
147  DISALLOW_COPY_AND_ASSIGN(File);
-
148 };
-
149 
-
150 } // namespace media
-
151 } // namespace shaka
+
144  private:
+
145  friend class ThreadedIoFile;
+
146 
+
147  // This is a file factory method, it creates a proper file, e.g.
+
148  // LocalFile, MemFile based on prefix.
+
149  static File* Create(const char* file_name, const char* mode);
+
150 
+
151  static File* CreateInternalFile(const char* file_name, const char* mode);
152 
-
153 #endif // PACKAGER_FILE_FILE_H_
+
153  std::string file_name_;
+
154  DISALLOW_COPY_AND_ASSIGN(File);
+
155 };
+
156 
+
157 } // namespace media
+
158 } // namespace shaka
+
159 
+
160 #endif // PACKAGER_FILE_FILE_H_
virtual bool Open()=0
Internal open. Should not be used directly.
-
static File * OpenWithNoBuffering(const char *file_name, const char *mode)
Definition: file.cc:152
-
static bool Copy(const char *from_file_name, const char *to_file_name)
Definition: file.cc:203
+
static File * OpenWithNoBuffering(const char *file_name, const char *mode)
Definition: file.cc:170
+
static bool Copy(const char *from_file_name, const char *to_file_name)
Definition: file.cc:253
virtual int64_t Size()=0
-
virtual ~File()
Definition: file.h:132
+
virtual ~File()
Definition: file.h:139
virtual bool Close()=0
virtual int64_t Write(const void *buffer, uint64_t length)=0
Define an abstract file interface.
Definition: file.h:24
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 CopyFile(File *source, File *destination)
Definition: file.cc:282
virtual bool Tell(uint64_t *position)=0
+
static bool WriteFileAtomically(const char *file_name, const std::string &contents)
Definition: file.cc:217
const std::string & file_name() const
Definition: file.h:91
-
static int64_t GetFileSize(const char *file_name)
Definition: file.cc:176
-
static bool ReadFileToString(const char *file_name, std::string *contents)
Definition: file.cc:185
+
static int64_t GetFileSize(const char *file_name)
Definition: file.cc:190
+
static bool ReadFileToString(const char *file_name, std::string *contents)
Definition: file.cc:199
virtual bool Flush()=0
virtual bool Seek(uint64_t position)=0
Declaration of class which implements a thread-safe circular buffer.
-
static bool Delete(const char *file_name)
Definition: file.cc:163
+
static bool Delete(const char *file_name)
Definition: file.cc:181
diff --git a/docs/d2/d4f/structshaka_1_1Element-members.html b/docs/d2/d4f/structshaka_1_1Element-members.html index 6203e2c782..355c998685 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 e2519717f9..411b0f7829 100644 --- a/docs/d2/d51/classshaka_1_1MockMpdNotifier-members.html +++ b/docs/d2/d51/classshaka_1_1MockMpdNotifier-members.html @@ -116,7 +116,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 79ffde6b05..a96f1619f7 100644 --- a/docs/d2/d59/structshaka_1_1media_1_1H264SliceHeader.html +++ b/docs/d2/d59/structshaka_1_1media_1_1H264SliceHeader.html @@ -264,7 +264,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 8fc2ad5f7a..75c362a22b 100644 --- a/docs/d2/d5b/classshaka_1_1media_1_1KeySource-members.html +++ b/docs/d2/d5b/classshaka_1_1media_1_1KeySource-members.html @@ -102,7 +102,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 fc96946bc8..52f500c57a 100644 --- a/docs/d2/d5c/classshaka_1_1SimpleMpdNotifier-members.html +++ b/docs/d2/d5c/classshaka_1_1SimpleMpdNotifier-members.html @@ -110,7 +110,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 8b6642c9a3..0fa3e0dff5 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 f008e170bb..e244f18837 100644 --- a/docs/d2/d62/simple__mpd__notifier_8h_source.html +++ b/docs/d2/d62/simple__mpd__notifier_8h_source.html @@ -184,7 +184,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 738b451cc1..ee82e9b85f 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 e411439789..c0a99697b9 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 4ddcbf98de..bbd1faf6a3 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 7cdfa10b3f..d2d386c932 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 d80dcc7002..995d2efdbe 100644 --- a/docs/d2/d7b/classshaka_1_1DashIopMpdNotifier-members.html +++ b/docs/d2/d7b/classshaka_1_1DashIopMpdNotifier-members.html @@ -110,7 +110,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 f1a316d57c..98b6e18b0b 100644 --- a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html +++ b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html @@ -217,25 +217,25 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
128 
129 } // namespace shaka
- -
uint32_t id() const
Definition: mpd_builder.h:498
+ +
uint32_t id() const
Definition: mpd_builder.h:486
bool AddContentProtectionElement(uint32_t id, const ContentProtectionElement &content_protection_element) override
void AddContentProtectionElements(const MediaInfo &media_info, Representation *parent)
Definition: mpd_utils.cc:356
bool NotifyNewSegment(uint32_t id, uint64_t start_time, uint64_t duration, uint64_t size) override
-
std::string Uint8VectorToBase64(const std::vector< uint8_t > &input)
Converts uint8 vector into base64 encoded string.
+
std::string Uint8VectorToBase64(const std::vector< uint8_t > &input)
Converts uint8 vector into base64 encoded string.
bool NotifySampleDuration(uint32_t container_id, uint32_t sample_duration) override
bool NotifyEncryptionUpdate(uint32_t container_id, const std::string &drm_uuid, const std::vector< uint8_t > &new_key_id, const std::vector< uint8_t > &new_pssh) override
-
static void MakePathsRelativeToMpd(const std::string &mpd_path, MediaInfo *media_info)
Definition: mpd_builder.cc:653
- -
ContentType GetContentType(const MediaInfo &media_info)
-
bool WriteMpdToFile(const std::string &output_path, MpdBuilder *mpd_builder)
+
static void MakePathsRelativeToMpd(const std::string &mpd_path, MediaInfo *media_info)
Definition: mpd_builder.cc:620
+ +
ContentType GetContentType(const MediaInfo &media_info)
+
bool WriteMpdToFile(const std::string &output_path, MpdBuilder *mpd_builder)
bool NotifyNewContainer(const MediaInfo &media_info, uint32_t *id) override
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 7a230e50c2..440016a5fc 100644 --- a/docs/d2/d7e/aac__audio__specific__config_8h_source.html +++ b/docs/d2/d7e/aac__audio__specific__config_8h_source.html @@ -215,7 +215,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 91a4029586..2bfddadaec 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 8cd0bfb314..5aeafa28f7 100644 --- a/docs/d2/d8a/hls__notify__muxer__listener_8h_source.html +++ b/docs/d2/d8a/hls__notify__muxer__listener_8h_source.html @@ -177,7 +177,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 471e8d9f14..661fdae829 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 a0acf9c178..4066d3cda4 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 dc51b5ed41..6ee160bc81 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/da0/classshaka_1_1media_1_1TrickPlayHandler-members.html b/docs/d2/da0/classshaka_1_1media_1_1TrickPlayHandler-members.html index 93d27510c5..42af2b5ec2 100644 --- a/docs/d2/da0/classshaka_1_1media_1_1TrickPlayHandler-members.html +++ b/docs/d2/da0/classshaka_1_1media_1_1TrickPlayHandler-members.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/da6/threaded__io__file_8h_source.html b/docs/d2/da6/threaded__io__file_8h_source.html index d768a9e536..df2409dbc2 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 0821a39557..99f1ad22bf 100644 --- a/docs/d2/da8/mp4_2segmenter_8cc_source.html +++ b/docs/d2/da8/mp4_2segmenter_8cc_source.html @@ -405,7 +405,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 c1a013100d..bcf0cc5ab4 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 848b8daeff..6753f1de78 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 9b87e77bd1..5af33a7185 100644 --- a/docs/d2/dae/webm__muxer_8cc_source.html +++ b/docs/d2/dae/webm__muxer_8cc_source.html @@ -214,14 +214,14 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
virtual void OnMediaEnd(bool has_init_range, uint64_t init_range_start, uint64_t init_range_end, bool has_index_range, uint64_t index_range_start, uint64_t index_range_end, float duration_seconds, uint64_t file_size)=0
This structure contains the list of configuration options for Muxer.
Definition: muxer_options.h:18
-
static int64_t GetFileSize(const char *file_name)
Definition: file.cc:176
+
static int64_t GetFileSize(const char *file_name)
Definition: file.cc:190
virtual void OnMediaStart(const MuxerOptions &muxer_options, const StreamInfo &stream_info, uint32_t time_scale, ContainerType container_type)=0
WebMMuxer(const MuxerOptions &options)
Create a WebMMuxer object from MuxerOptions.
Definition: webm_muxer.cc:21
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 05949ebb43..62ca72be88 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 dae17d16cd..0d40de4f53 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 030751f070..ef6333731e 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 f069d61a75..3981d5c253 100644 --- a/docs/d2/dba/classshaka_1_1media_1_1SegmentTestBase.html +++ b/docs/d2/dba/classshaka_1_1media_1_1SegmentTestBase.html @@ -183,7 +183,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 274d55c7d5..fb8136dbed 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/media__handler__test__base_8cc_source.html b/docs/d2/dc7/media__handler__test__base_8cc_source.html index 7b0255600a..0073fabee9 100644 --- a/docs/d2/dc7/media__handler__test__base_8cc_source.html +++ b/docs/d2/dc7/media__handler__test__base_8cc_source.html @@ -271,7 +271,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 df6ac5d798..155ec1cd71 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 033e138a8b..ef2cd50012 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 973bd4daa9..c4acbe37df 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/dce/structshaka_1_1media_1_1ChunkingOptions-members.html b/docs/d2/dce/structshaka_1_1media_1_1ChunkingOptions-members.html index ea2eacc5d0..2017daea8e 100644 --- a/docs/d2/dce/structshaka_1_1media_1_1ChunkingOptions-members.html +++ b/docs/d2/dce/structshaka_1_1media_1_1ChunkingOptions-members.html @@ -100,7 +100,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 0d42f676e8..907978876b 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 @@ -280,7 +280,7 @@ uint64_t segment_payload_p diff --git a/docs/d2/dd6/mkv__writer_8h_source.html b/docs/d2/dd6/mkv__writer_8h_source.html index 378990bfdf..9b3280de5e 100644 --- a/docs/d2/dd6/mkv__writer_8h_source.html +++ b/docs/d2/dd6/mkv__writer_8h_source.html @@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dd8/classshaka_1_1media_1_1ChunkingHandler-members.html b/docs/d2/dd8/classshaka_1_1media_1_1ChunkingHandler-members.html index 40bb66edd0..4109b7f40d 100644 --- a/docs/d2/dd8/classshaka_1_1media_1_1ChunkingHandler-members.html +++ b/docs/d2/dd8/classshaka_1_1media_1_1ChunkingHandler-members.html @@ -122,7 +122,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 0b6e87bd54..6375e83671 100644 --- a/docs/d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html +++ b/docs/d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html @@ -257,7 +257,7 @@ std::shared_ptr< diff --git a/docs/d2/de1/webvtt__timestamp_8h_source.html b/docs/d2/de1/webvtt__timestamp_8h_source.html index 652ba7188c..9bc4c561d6 100644 --- a/docs/d2/de1/webvtt__timestamp_8h_source.html +++ b/docs/d2/de1/webvtt__timestamp_8h_source.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 7dcc80d508..1832c14c5f 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 04c10d7814..35367b5bce 100644 --- a/docs/d2/de6/packager__main_8cc_source.html +++ b/docs/d2/de6/packager__main_8cc_source.html @@ -455,13 +455,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
366 #endif // defined(OS_WIN)
base::Optional< StreamDescriptor > ParseStreamDescriptor(const std::string &descriptor_string)
bool ValidateWidevineCryptoFlags()
-
static bool ReadFileToString(const char *file_name, std::string *contents)
Definition: file.cc:185
+
static bool ReadFileToString(const char *file_name, std::string *contents)
Definition: file.cc:199
bool ValidateFixedCryptoFlags()
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 7531ba013e..596c100c18 100644 --- a/docs/d2/de7/classshaka_1_1media_1_1TextStreamInfo-members.html +++ b/docs/d2/de7/classshaka_1_1media_1_1TextStreamInfo-members.html @@ -124,7 +124,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 2ccb414d85..5f83f19a37 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/media__handler_8cc_source.html b/docs/d2/de9/media__handler_8cc_source.html index 121b492eaa..d8f725761d 100644 --- a/docs/d2/de9/media__handler_8cc_source.html +++ b/docs/d2/de9/media__handler_8cc_source.html @@ -181,7 +181,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 5c5e9cd534..acd9bda1fb 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 a576b07c3e..6636aab90b 100644 --- a/docs/d2/deb/es__parser_8h_source.html +++ b/docs/d2/deb/es__parser_8h_source.html @@ -144,7 +144,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 a6fc3450a4..2848c627e9 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 bd59eb251b..ab3aa3b0d5 100644 --- a/docs/d2/dee/pes__packet__generator_8cc_source.html +++ b/docs/d2/dee/pes__packet__generator_8cc_source.html @@ -232,7 +232,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 dc34862f4c..de95f24680 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 @@ -131,7 +131,7 @@ size_t cluster_count ( 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 459d052de0..4c3353f9c7 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 d84ab9de98..02f3fc5e88 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 0e4d41d8e7..ba404f3dbf 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 b35202fec0..b1ac9d470b 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 64194baf41..5b7cbc18b8 100644 --- a/docs/d3/d0a/classshaka_1_1media_1_1MediaParser.html +++ b/docs/d3/d0a/classshaka_1_1media_1_1MediaParser.html @@ -299,7 +299,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 82b51d503a..a59c795ca1 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 2b72450efe..fed5f738be 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/d18/classshaka_1_1media_1_1mp2t_1_1TsSectionPat-members.html b/docs/d3/d18/classshaka_1_1media_1_1mp2t_1_1TsSectionPat-members.html index f33d3dac4d..425c23efe1 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 82e586a649..16bf640771 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 b86b9fd3f5..4453d93c5f 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 b35ccc5fef..8970756a89 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 2b0494335e..3c5b31b995 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 c29fcb2d20..1126a13279 100644 --- a/docs/d3/d56/decrypt__config_8cc_source.html +++ b/docs/d3/d56/decrypt__config_8cc_source.html @@ -136,7 +136,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 61f20fbabb..36d42b0c96 100644 --- a/docs/d3/d61/classshaka_1_1media_1_1File.html +++ b/docs/d3/d61/classshaka_1_1media_1_1File.html @@ -145,6 +145,8 @@ Static Public Member Functions   static bool ReadFileToString (const char *file_name, std::string *contents)   +static bool WriteFileAtomically (const char *file_name, const std::string &contents) +  static bool Copy (const char *from_file_name, const char *to_file_name)   static int64_t CopyFile (File *source, File *destination) @@ -197,7 +199,7 @@ class ThreadedIoFile

Do not call the destructor directly (with the "delete" keyword) nor use std::unique_ptr; instead use Close().

-

Definition at line 132 of file file.h.

+

Definition at line 139 of file file.h.

@@ -270,7 +272,7 @@ class ThreadedIoFile
Returns
true on success, false otherwise.
-

Definition at line 203 of file file.cc.

+

Definition at line 253 of file file.cc.

@@ -315,7 +317,7 @@ class ThreadedIoFile
Returns
Number of bytes written, or a value < 0 on error.
-

Definition at line 232 of file file.cc.

+

Definition at line 282 of file file.cc.

@@ -367,7 +369,7 @@ class ThreadedIoFile
Returns
Number of bytes written, or a value < 0 on error.
-

Definition at line 236 of file file.cc.

+

Definition at line 286 of file file.cc.

@@ -401,7 +403,7 @@ class ThreadedIoFile
Returns
true if successful, false otherwise.
-

Definition at line 163 of file file.cc.

+

Definition at line 181 of file file.cc.

@@ -481,7 +483,7 @@ class ThreadedIoFile
Returns
The size of a file in bytes on success, a value < 0 otherwise. The file will be opened and closed in the process.
-

Definition at line 176 of file file.cc.

+

Definition at line 190 of file file.cc.

@@ -526,7 +528,7 @@ class ThreadedIoFile
Returns
A File pointer on success, false otherwise.
-

Definition at line 141 of file file.cc.

+

Definition at line 159 of file file.cc.

@@ -571,7 +573,7 @@ class ThreadedIoFile
Returns
A File pointer on success, false otherwise.
-

Definition at line 152 of file file.cc.

+

Definition at line 170 of file file.cc.

@@ -661,7 +663,7 @@ class ThreadedIoFile
Returns
true on success, false otherwise.
-

Definition at line 185 of file file.cc.

+

Definition at line 199 of file file.cc.

@@ -802,6 +804,51 @@ class ThreadedIoFileImplemented in shaka::media::ThreadedIoFile, shaka::media::UdpFile, shaka::media::LocalFile, and shaka::media::MemoryFile.

+ + + +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool shaka::media::File::WriteFileAtomically (const char * file_name,
const std::string & contents 
)
+
+static
+
+

Save contents to file_name in an atomic manner.

+
Parameters
+ + + +
file_nameis the destination file name.
contentsis the data to be saved.
+
+
+
Returns
true on success, false otherwise.
+ +

Definition at line 217 of file file.cc.

+

The documentation for this class was generated from the following files:
    @@ -811,7 +858,7 @@ class ThreadedIoFile diff --git a/docs/d3/d62/continuity__counter_8h_source.html b/docs/d3/d62/continuity__counter_8h_source.html index 960754ce65..07591fb1e3 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 61d142e247..82f8115a67 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 32339b740b..1d748e259b 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 05bee12579..fb5ff41008 100644 --- a/docs/d3/d67/classshaka_1_1media_1_1WebMVideoClient.html +++ b/docs/d3/d67/classshaka_1_1media_1_1WebMVideoClient.html @@ -199,7 +199,7 @@ An empty pointer if there was unexpected values in the provided parameters or vi diff --git a/docs/d3/d6b/fixed__key__source_8cc_source.html b/docs/d3/d6b/fixed__key__source_8cc_source.html index 6b119f9635..22a003fd15 100644 --- a/docs/d3/d6b/fixed__key__source_8cc_source.html +++ b/docs/d3/d6b/fixed__key__source_8cc_source.html @@ -224,7 +224,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 78415a3897..789e4ad049 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 @@ -231,7 +231,7 @@ std::pair< std::shared_ptr
    diff --git a/docs/d3/d72/fixed__key__source_8h_source.html b/docs/d3/d72/fixed__key__source_8h_source.html index cb7e13eea1..997036f133 100644 --- a/docs/d3/d72/fixed__key__source_8h_source.html +++ b/docs/d3/d72/fixed__key__source_8h_source.html @@ -157,7 +157,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 3f76470d95..ee5a24051a 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 @@ -235,7 +235,7 @@ std::pair< std::shared_ptr
    diff --git a/docs/d3/d75/classshaka_1_1media_1_1AesEncryptor.html b/docs/d3/d75/classshaka_1_1media_1_1AesEncryptor.html index dcca1ec31c..6d70b7a426 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 a706f962ad..8f60a532a9 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 553ad9c477..b6a2df4355 100644 --- a/docs/d3/d76/muxer__flags_8h_source.html +++ b/docs/d3/d76/muxer__flags_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d77/structshaka_1_1media_1_1mp4_1_1TextSampleEntry-members.html b/docs/d3/d77/structshaka_1_1media_1_1mp4_1_1TextSampleEntry-members.html index 25a3194c65..16a211c1ce 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 fda436d251..40e0e85c36 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 0c9cc65ad6..9ff5f46043 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 pointer if there was unexpected values in the provided parameters or au diff --git a/docs/d3/d80/muxer__util_8h_source.html b/docs/d3/d80/muxer__util_8h_source.html index 6192b8c4e4..db8042024e 100644 --- a/docs/d3/d80/muxer__util_8h_source.html +++ b/docs/d3/d80/muxer__util_8h_source.html @@ -124,7 +124,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 2b8af7b264..023bef23f9 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/d87/trick__play__handler_8cc_source.html b/docs/d3/d87/trick__play__handler_8cc_source.html index 0f043e2996..922a9be795 100644 --- a/docs/d3/d87/trick__play__handler_8cc_source.html +++ b/docs/d3/d87/trick__play__handler_8cc_source.html @@ -322,7 +322,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d8b/structshaka_1_1media_1_1FileCloser.html b/docs/d3/d8b/structshaka_1_1media_1_1FileCloser.html index 162a05ab75..36fe648483 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 9401124ac2..e2712b0b7a 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 b4569dbb4c..c445d991f7 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 5b84e58c0c..2759112100 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/d93/media__handler_8h_source.html b/docs/d3/d93/media__handler_8h_source.html index d9ea504c4e..29edb2a379 100644 --- a/docs/d3/d93/media__handler_8h_source.html +++ b/docs/d3/d93/media__handler_8h_source.html @@ -283,7 +283,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d9c/encryption__handler_8cc_source.html b/docs/d3/d9c/encryption__handler_8cc_source.html index d139c6841b..0851e453d0 100644 --- a/docs/d3/d9c/encryption__handler_8cc_source.html +++ b/docs/d3/d9c/encryption__handler_8cc_source.html @@ -619,7 +619,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/da0/ec3__audio__util_8h_source.html b/docs/d3/da0/ec3__audio__util_8h_source.html index 7646ab7a38..68e1625828 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 a754d08d45..664a7a9891 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 @@ -299,7 +299,7 @@ uint64_t segment_payload_p 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 9250742a2c..f4efc2c4ed 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 235769926e..3329506dd6 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/db3/structshaka_1_1media_1_1EncryptionOptions-members.html b/docs/d3/db3/structshaka_1_1media_1_1EncryptionOptions-members.html index 6cf8dba739..5fcbc074a9 100644 --- a/docs/d3/db3/structshaka_1_1media_1_1EncryptionOptions-members.html +++ b/docs/d3/db3/structshaka_1_1media_1_1EncryptionOptions-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 b5073c03e7..5ab4ee8001 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 0d8beaae4d..fd1a2ece30 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 845149bfca..89126baacb 100644 --- a/docs/d3/db6/webm__parser_8cc_source.html +++ b/docs/d3/db6/webm__parser_8cc_source.html @@ -1088,7 +1088,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 44716fb7f5..e5a473af6c 100644 --- a/docs/d3/dbc/seek__head_8cc_source.html +++ b/docs/d3/dbc/seek__head_8cc_source.html @@ -206,7 +206,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 4cbfcc7a00..2241c02e3b 100644 --- a/docs/d3/dbe/demuxer_8cc_source.html +++ b/docs/d3/dbe/demuxer_8cc_source.html @@ -444,7 +444,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 2b7d15d6e5..b278c4faf1 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 1ba3b8c68a..998be604e1 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 @@ -257,7 +257,7 @@ std::shared_ptr< diff --git a/docs/d3/dd0/classshaka_1_1MpdNotifier.html b/docs/d3/dd0/classshaka_1_1MpdNotifier.html index 40e2206242..a21e17d50f 100644 --- a/docs/d3/dd0/classshaka_1_1MpdNotifier.html +++ b/docs/d3/dd0/classshaka_1_1MpdNotifier.html @@ -500,7 +500,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 8cdef29ac5..cdeaee2b5a 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 51da13c0f6..bd709760ad 100644 --- a/docs/d3/de4/seek__head_8h_source.html +++ b/docs/d3/de4/seek__head_8h_source.html @@ -153,7 +153,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 25601fbb05..be7e86eca3 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 8e125e9492..95dec8823f 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 15dd2a6789..1dcca5bf26 100644 --- a/docs/d3/df1/box__reader_8cc_source.html +++ b/docs/d3/df1/box__reader_8cc_source.html @@ -259,7 +259,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 37500b7f36..3b613bc1a2 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 b8f41368f6..9806b647c3 100644 --- a/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html +++ b/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html @@ -305,7 +305,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 5d3611ee67..047fae5f96 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 1ee4386d71..def4fd36a7 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 374e8b7e20..7b50035476 100644 --- a/docs/d4/d14/classshaka_1_1media_1_1WebVttMediaParser-members.html +++ b/docs/d4/d14/classshaka_1_1media_1_1WebVttMediaParser-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d15/gflags__hex__bytes_8cc_source.html b/docs/d4/d15/gflags__hex__bytes_8cc_source.html index fb2c3275f8..fdd5e17ebb 100644 --- a/docs/d4/d15/gflags__hex__bytes_8cc_source.html +++ b/docs/d4/d15/gflags__hex__bytes_8cc_source.html @@ -115,7 +115,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 3ad12a3697..f4948a16c8 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 7bc77559d4..dc6cf7caef 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 b4da21ff84..f09e8528a7 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 66ba624104..6ab0250cb1 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 1a12b3f781..b7cb937239 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 0b88500836..f3285416a1 100644 --- a/docs/d4/d37/io__cache_8cc_source.html +++ b/docs/d4/d37/io__cache_8cc_source.html @@ -246,7 +246,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 160295be84..fb5462c441 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/d43/classshaka_1_1media_1_1ChunkingHandler.html b/docs/d4/d43/classshaka_1_1media_1_1ChunkingHandler.html index b29e366ddf..728a407251 100644 --- a/docs/d4/d43/classshaka_1_1media_1_1ChunkingHandler.html +++ b/docs/d4/d43/classshaka_1_1media_1_1ChunkingHandler.html @@ -273,7 +273,7 @@ class ChunkingHandlerTest< 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 c75061d53c..639baeaed2 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 ee749a9c97..c263fd1831 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 e92458cd74..73ad9acea3 100644 --- a/docs/d4/d58/classshaka_1_1media_1_1Nalu-members.html +++ b/docs/d4/d58/classshaka_1_1media_1_1Nalu-members.html @@ -159,7 +159,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 533d109c65..6185506dd8 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 1000315953..7d44fd501a 100644 --- a/docs/d4/d5c/classshaka_1_1media_1_1DecryptConfig-members.html +++ b/docs/d4/d5c/classshaka_1_1media_1_1DecryptConfig-members.html @@ -108,7 +108,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 2b88b96629..0b22fd8672 100644 --- a/docs/d4/d5d/classshaka_1_1media_1_1UdpFile-members.html +++ b/docs/d4/d5d/classshaka_1_1media_1_1UdpFile-members.html @@ -112,12 +112,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Tell(uint64_t *position) overrideshaka::media::UdpFilevirtual UdpFile(const char *address_and_port)shaka::media::UdpFileexplicit Write(const void *buffer, uint64_t length) overrideshaka::media::UdpFilevirtual - ~File()shaka::media::Fileinlineprotectedvirtual - ~UdpFile() override (defined in shaka::media::UdpFile)shaka::media::UdpFileprotected + WriteFileAtomically(const char *file_name, const std::string &contents)shaka::media::Filestatic + ~File()shaka::media::Fileinlineprotectedvirtual + ~UdpFile() override (defined in shaka::media::UdpFile)shaka::media::UdpFileprotected diff --git a/docs/d4/d70/classshaka_1_1DashIopMpdNotifier.html b/docs/d4/d70/classshaka_1_1DashIopMpdNotifier.html index c5c4e6a969..d844ad1e12 100644 --- a/docs/d4/d70/classshaka_1_1DashIopMpdNotifier.html +++ b/docs/d4/d70/classshaka_1_1DashIopMpdNotifier.html @@ -475,7 +475,7 @@ class DashIopMpdNotifierTe diff --git a/docs/d4/d70/structshaka_1_1SegmentInfo-members.html b/docs/d4/d70/structshaka_1_1SegmentInfo-members.html index 695f39fd53..0b47ed39a6 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/d83/cue_8cc_source.html b/docs/d4/d83/cue_8cc_source.html index e3b17fd0dd..fb8f6abccf 100644 --- a/docs/d4/d83/cue_8cc_source.html +++ b/docs/d4/d83/cue_8cc_source.html @@ -102,7 +102,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 d14eb570ce..3d5be16dce 100644 --- a/docs/d4/d87/nalu__reader_8h_source.html +++ b/docs/d4/d87/nalu__reader_8h_source.html @@ -320,7 +320,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d87/text__sample_8cc_source.html b/docs/d4/d87/text__sample_8cc_source.html index 6d80f8f064..d788e526cc 100644 --- a/docs/d4/d87/text__sample_8cc_source.html +++ b/docs/d4/d87/text__sample_8cc_source.html @@ -122,7 +122,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 5d661f62db..ef5135ed37 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 0058a3145f..eb2407e3fb 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/d8e/classshaka_1_1media_1_1UdpOptions.html b/docs/d4/d8e/classshaka_1_1media_1_1UdpOptions.html index 49d87d4497..10fc503505 100644 --- a/docs/d4/d8e/classshaka_1_1media_1_1UdpOptions.html +++ b/docs/d4/d8e/classshaka_1_1media_1_1UdpOptions.html @@ -170,7 +170,7 @@ Static Public Member Functions diff --git a/docs/d4/d9b/classshaka_1_1media_1_1MediaHandlerTestBase.html b/docs/d4/d9b/classshaka_1_1media_1_1MediaHandlerTestBase.html index 7d401a429d..b22e313334 100644 --- a/docs/d4/d9b/classshaka_1_1media_1_1MediaHandlerTestBase.html +++ b/docs/d4/d9b/classshaka_1_1media_1_1MediaHandlerTestBase.html @@ -402,7 +402,7 @@ void  diff --git a/docs/d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html b/docs/d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html index dcc660ca0d..e05804e84b 100644 --- a/docs/d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html +++ b/docs/d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html @@ -458,7 +458,7 @@ Static Public Member Functions diff --git a/docs/d4/da7/segmenter__test__base_8cc_source.html b/docs/d4/da7/segmenter__test__base_8cc_source.html index 1bb84ee0aa..62059c9d08 100644 --- a/docs/d4/da7/segmenter__test__base_8cc_source.html +++ b/docs/d4/da7/segmenter__test__base_8cc_source.html @@ -301,7 +301,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    std::string OutputFileName() const
    Gets the file name of the current output file.
    VideoStreamInfo * CreateVideoStreamInfo(uint32_t time_scale) const
    Creates a video stream info object for testing.
    std::shared_ptr< MediaSample > CreateSample(KeyFrameFlag key_frame_flag, uint64_t duration, SideDataFlag side_data_flag)
    Creates a new media sample.
    -
    static bool ReadFileToString(const char *file_name, std::string *contents)
    Definition: file.cc:185
    +
    static bool ReadFileToString(const char *file_name, std::string *contents)
    Definition: file.cc:199
    std::string temp_dir
    Specify temporary directory for intermediate files.
    Definition: muxer_options.h:48
    MuxerOptions CreateMuxerOptions() const
    Creates a Muxer options object for testing.
    static std::shared_ptr< MediaSample > CopyFrom(const uint8_t *data, size_t size, bool is_key_frame)
    Definition: media_sample.cc:45
    @@ -309,7 +309,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 5f725bca2a..b8e18e73e8 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 ee32001d80..2d337198e0 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 e21c280eec..949bbc6e41 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 b30b8a4333..e4cc271625 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 75cf50b971..d86f98d4df 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 62d5da2b35..315f8f1e0b 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 f6a5cf810d..cf4621d7cf 100644 --- a/docs/d4/dd3/bit__reader_8h_source.html +++ b/docs/d4/dd3/bit__reader_8h_source.html @@ -186,7 +186,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 a89f566434..7a6bac0c33 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 1cb9eb70f8..050123cc29 100644 --- a/docs/d4/ddb/classshaka_1_1media_1_1MemoryFile-members.html +++ b/docs/d4/ddb/classshaka_1_1media_1_1MemoryFile-members.html @@ -114,12 +114,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Size() overrideshaka::media::MemoryFilevirtual Tell(uint64_t *position) overrideshaka::media::MemoryFilevirtual Write(const void *buffer, uint64_t length) overrideshaka::media::MemoryFilevirtual - ~File()shaka::media::Fileinlineprotectedvirtual - ~MemoryFile() override (defined in shaka::media::MemoryFile)shaka::media::MemoryFileprotected + WriteFileAtomically(const char *file_name, const std::string &contents)shaka::media::Filestatic + ~File()shaka::media::Fileinlineprotectedvirtual + ~MemoryFile() override (defined in shaka::media::MemoryFile)shaka::media::MemoryFileprotected diff --git a/docs/d4/dde/webvtt__util_8h_source.html b/docs/d4/dde/webvtt__util_8h_source.html index 6568598db8..35ce895096 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 1385043dc6..9a746dc953 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 c79645ad41..eb80e95b73 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 12857082ef..36bbb5741d 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 6aab76ec05..b6d1a450e5 100644 --- a/docs/d4/dec/hls__flags_8h_source.html +++ b/docs/d4/dec/hls__flags_8h_source.html @@ -106,7 +106,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 ad5b7588af..805c2154bc 100644 --- a/docs/d4/df5/request__signer_8cc_source.html +++ b/docs/d4/df5/request__signer_8cc_source.html @@ -168,7 +168,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/df5/webvtt__sample__converter_8cc_source.html b/docs/d4/df5/webvtt__sample__converter_8cc_source.html index 9c9c59cc75..cc3156e6aa 100644 --- a/docs/d4/df5/webvtt__sample__converter_8cc_source.html +++ b/docs/d4/df5/webvtt__sample__converter_8cc_source.html @@ -416,7 +416,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 5fcb129ad9..3975ce07ee 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 3da3be1902..24912002e8 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 a57d49d626..ca794c3b62 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 1efb9d3aa0..1402e9cb01 100644 --- a/docs/d4/dff/webm__media__parser_8cc_source.html +++ b/docs/d4/dff/webm__media__parser_8cc_source.html @@ -367,7 +367,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 2cb4c3b564..9fc81abf8e 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 b024f0f26b..009e6ce3a2 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 929460a3c4..5c861593c3 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 c24b710be9..4bd0be4864 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 840e296a71..f59035f826 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 b74f342b1d..b6f4daeef2 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 9f18ebbeb8..087cf6312d 100644 --- a/docs/d5/d15/producer__consumer__queue_8h_source.html +++ b/docs/d5/d15/producer__consumer__queue_8h_source.html @@ -373,7 +373,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 c37ca326cf..7c603f2579 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 1d2a7088d0..90e6ee39de 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 d020310fbc..a92971ee1e 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 9ea0846a74..df7e75cb28 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 880536a17f..826656f1dd 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 f8c7fc62f6..298fee16ca 100644 --- a/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html +++ b/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html @@ -161,7 +161,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 00d36d2d97..6a59849223 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 de6ce1a362..1180f15ec3 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 1217b93509..14041ff480 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 dd42310cdf..583d5dd4f5 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 a6add5b86d..714201389f 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 9f3e1b6249..b55b7ecb91 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/d5a/webvtt__timestamp_8cc_source.html b/docs/d5/d5a/webvtt__timestamp_8cc_source.html index d99212bcf0..e56a1ae4dc 100644 --- a/docs/d5/d5a/webvtt__timestamp_8cc_source.html +++ b/docs/d5/d5a/webvtt__timestamp_8cc_source.html @@ -164,7 +164,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 a90dfd018d..5c4ca73049 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 688fa3bc8e..4ffd0ad0d8 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 b3063a580a..3230eb9289 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 798cdc54d9..8080518588 100644 --- a/docs/d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html +++ b/docs/d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html @@ -298,7 +298,7 @@ class NalUnitToByteStreamC diff --git a/docs/d5/d6f/vlog__flags_8cc_source.html b/docs/d5/d6f/vlog__flags_8cc_source.html index 08de302dfd..950bc34767 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 dcfb5a53dc..9d1cd25f08 100644 --- a/docs/d5/d72/avc__decoder__configuration__record_8cc_source.html +++ b/docs/d5/d72/avc__decoder__configuration__record_8cc_source.html @@ -205,7 +205,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 4bd915bc7a..bbed6278eb 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 7858a3e76a..db2ae69afc 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 4f80bc2e41..add8f4d0f9 100644 --- a/docs/d5/d89/widevine__key__source_8cc_source.html +++ b/docs/d5/d89/widevine__key__source_8cc_source.html @@ -723,7 +723,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 566dee8711..e8fc444a26 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 c76e802337..e2dfa43ebb 100644 --- a/docs/d5/d8f/webm__cluster__parser_8cc_source.html +++ b/docs/d5/d8f/webm__cluster__parser_8cc_source.html @@ -730,7 +730,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d91/es__parser__adts_8cc_source.html b/docs/d5/d91/es__parser__adts_8cc_source.html index 816ed741c4..90c0957736 100644 --- a/docs/d5/d91/es__parser__adts_8cc_source.html +++ b/docs/d5/d91/es__parser__adts_8cc_source.html @@ -364,7 +364,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 ca9930ebb9..461c6fde46 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 50b9f14d10..2848ce172d 100644 --- a/docs/d5/d98/encryptor_8cc_source.html +++ b/docs/d5/d98/encryptor_8cc_source.html @@ -206,7 +206,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 86a48308c6..6d8cf784f7 100644 --- a/docs/d5/d9b/vp__codec__configuration__record_8h_source.html +++ b/docs/d5/d9b/vp__codec__configuration__record_8h_source.html @@ -317,7 +317,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 75e8c53a11..3e38336d67 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 92d3bdc751..7b9322da66 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 a7580ea489..54738a6050 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 5d7b95f569..db4de1c996 100644 --- a/docs/d5/db1/classshaka_1_1media_1_1StreamInfo.html +++ b/docs/d5/db1/classshaka_1_1media_1_1StreamInfo.html @@ -243,7 +243,7 @@ void set_encryption_config 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 627a1b48ce..89c317d733 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 dcae199bd6..19042bf640 100644 --- a/docs/d5/dba/ts__packet_8cc_source.html +++ b/docs/d5/dba/ts__packet_8cc_source.html @@ -307,7 +307,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 2139dfda3d..64e0856d13 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 8f17f642b8..21355538d1 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 afbc5480a8..b580c20d6a 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 eb14921579..c8efcab8ab 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 3eaf3b7d87..376dd0d07b 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 48edf899a9..462881ee4d 100644 --- a/docs/d5/de0/bit__reader_8cc_source.html +++ b/docs/d5/de0/bit__reader_8cc_source.html @@ -197,7 +197,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 996c7d91d0..a89c71313c 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 @@ -271,7 +271,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 963aa48011..4e2d45f172 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 2c55525228..e9c5038c19 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 c66f175f17..31e12e553c 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 b2c05fcfab..ec2a4a391e 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 7b7a9f495a..774e80266a 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 a787c75065..7836ca083e 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 4a56a25450..d3ab564eca 100644 --- a/docs/d5/dfc/file_8cc_source.html +++ b/docs/d5/dfc/file_8cc_source.html @@ -98,285 +98,337 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    9 #include <gflags/gflags.h>
    10 #include <algorithm>
    11 #include <memory>
    -
    12 #include "packager/base/logging.h"
    -
    13 #include "packager/media/file/local_file.h"
    -
    14 #include "packager/media/file/memory_file.h"
    -
    15 #include "packager/media/file/threaded_io_file.h"
    -
    16 #include "packager/media/file/udp_file.h"
    -
    17 
    -
    18 DEFINE_uint64(io_cache_size,
    -
    19  32ULL << 20,
    -
    20  "Size of the threaded I/O cache, in bytes. Specify 0 to disable "
    -
    21  "threaded I/O.");
    -
    22 DEFINE_uint64(io_block_size,
    -
    23  2ULL << 20,
    -
    24  "Size of the block size used for threaded I/O, in bytes.");
    -
    25 
    -
    26 // Needed for Windows weirdness which somewhere defines CopyFile as CopyFileW.
    -
    27 #ifdef CopyFile
    -
    28 #undef CopyFile
    -
    29 #endif // CopyFile
    -
    30 
    -
    31 namespace shaka {
    -
    32 namespace media {
    -
    33 
    -
    34 const char* kLocalFilePrefix = "file://";
    -
    35 const char* kUdpFilePrefix = "udp://";
    -
    36 const char* kMemoryFilePrefix = "memory://";
    -
    37 
    -
    38 namespace {
    +
    12 #include "packager/base/files/important_file_writer.h"
    +
    13 #include "packager/base/logging.h"
    +
    14 #include "packager/base/strings/string_piece.h"
    +
    15 #include "packager/media/file/local_file.h"
    +
    16 #include "packager/media/file/memory_file.h"
    +
    17 #include "packager/media/file/threaded_io_file.h"
    +
    18 #include "packager/media/file/udp_file.h"
    +
    19 
    +
    20 DEFINE_uint64(io_cache_size,
    +
    21  32ULL << 20,
    +
    22  "Size of the threaded I/O cache, in bytes. Specify 0 to disable "
    +
    23  "threaded I/O.");
    +
    24 DEFINE_uint64(io_block_size,
    +
    25  2ULL << 20,
    +
    26  "Size of the block size used for threaded I/O, in bytes.");
    +
    27 
    +
    28 // Needed for Windows weirdness which somewhere defines CopyFile as CopyFileW.
    +
    29 #ifdef CopyFile
    +
    30 #undef CopyFile
    +
    31 #endif // CopyFile
    +
    32 
    +
    33 namespace shaka {
    +
    34 namespace media {
    +
    35 
    +
    36 const char* kLocalFilePrefix = "file://";
    +
    37 const char* kUdpFilePrefix = "udp://";
    +
    38 const char* kMemoryFilePrefix = "memory://";
    39 
    -
    40 typedef File* (*FileFactoryFunction)(const char* file_name, const char* mode);
    -
    41 typedef bool (*FileDeleteFunction)(const char* file_name);
    -
    42 
    -
    43 struct SupportedTypeInfo {
    -
    44  const char* type;
    -
    45  size_t type_length;
    -
    46  const FileFactoryFunction factory_function;
    -
    47  const FileDeleteFunction delete_function;
    -
    48 };
    -
    49 
    -
    50 File* CreateLocalFile(const char* file_name, const char* mode) {
    -
    51  return new LocalFile(file_name, mode);
    -
    52 }
    -
    53 
    -
    54 bool DeleteLocalFile(const char* file_name) {
    -
    55  return LocalFile::Delete(file_name);
    -
    56 }
    -
    57 
    -
    58 File* CreateUdpFile(const char* file_name, const char* mode) {
    -
    59  if (strcmp(mode, "r")) {
    -
    60  NOTIMPLEMENTED() << "UdpFile only supports read (receive) mode.";
    -
    61  return NULL;
    -
    62  }
    -
    63  return new UdpFile(file_name);
    -
    64 }
    -
    65 
    -
    66 File* CreateMemoryFile(const char* file_name, const char* mode) {
    -
    67  return new MemoryFile(file_name, mode);
    -
    68 }
    -
    69 
    -
    70 bool DeleteMemoryFile(const char* file_name) {
    -
    71  MemoryFile::Delete(file_name);
    -
    72  return true;
    -
    73 }
    -
    74 
    -
    75 static const SupportedTypeInfo kSupportedTypeInfo[] = {
    -
    76  {
    -
    77  kLocalFilePrefix,
    -
    78  strlen(kLocalFilePrefix),
    -
    79  &CreateLocalFile,
    -
    80  &DeleteLocalFile
    -
    81  },
    -
    82  {
    -
    83  kUdpFilePrefix,
    -
    84  strlen(kUdpFilePrefix),
    -
    85  &CreateUdpFile,
    -
    86  NULL
    -
    87  },
    -
    88  {
    -
    89  kMemoryFilePrefix,
    -
    90  strlen(kMemoryFilePrefix),
    -
    91  &CreateMemoryFile,
    -
    92  &DeleteMemoryFile
    +
    40 namespace {
    +
    41 
    +
    42 typedef File* (*FileFactoryFunction)(const char* file_name, const char* mode);
    +
    43 typedef bool (*FileDeleteFunction)(const char* file_name);
    +
    44 typedef bool (*FileAtomicWriteFunction)(const char* file_name,
    +
    45  const std::string& contents);
    +
    46 
    +
    47 struct FileTypeInfo {
    +
    48  const char* type;
    +
    49  size_t type_length;
    +
    50  const FileFactoryFunction factory_function;
    +
    51  const FileDeleteFunction delete_function;
    +
    52  const FileAtomicWriteFunction atomic_write_function;
    +
    53 };
    +
    54 
    +
    55 File* CreateLocalFile(const char* file_name, const char* mode) {
    +
    56  return new LocalFile(file_name, mode);
    +
    57 }
    +
    58 
    +
    59 bool DeleteLocalFile(const char* file_name) {
    +
    60  return LocalFile::Delete(file_name);
    +
    61 }
    +
    62 
    +
    63 bool WriteLocalFileAtomically(const char* file_name,
    +
    64  const std::string& contents) {
    +
    65  return base::ImportantFileWriter::WriteFileAtomically(
    +
    66  base::FilePath::FromUTF8Unsafe(file_name), contents);
    +
    67 }
    +
    68 
    +
    69 File* CreateUdpFile(const char* file_name, const char* mode) {
    +
    70  if (strcmp(mode, "r")) {
    +
    71  NOTIMPLEMENTED() << "UdpFile only supports read (receive) mode.";
    +
    72  return NULL;
    +
    73  }
    +
    74  return new UdpFile(file_name);
    +
    75 }
    +
    76 
    +
    77 File* CreateMemoryFile(const char* file_name, const char* mode) {
    +
    78  return new MemoryFile(file_name, mode);
    +
    79 }
    +
    80 
    +
    81 bool DeleteMemoryFile(const char* file_name) {
    +
    82  MemoryFile::Delete(file_name);
    +
    83  return true;
    +
    84 }
    +
    85 
    +
    86 static const FileTypeInfo kFileTypeInfo[] = {
    +
    87  {
    +
    88  kLocalFilePrefix,
    +
    89  strlen(kLocalFilePrefix),
    +
    90  &CreateLocalFile,
    +
    91  &DeleteLocalFile,
    +
    92  &WriteLocalFileAtomically,
    93  },
    -
    94 };
    -
    95 
    -
    96 } // namespace
    -
    97 
    -
    98 File* File::Create(const char* file_name, const char* mode) {
    -
    99  std::unique_ptr<File, FileCloser> internal_file(
    -
    100  CreateInternalFile(file_name, mode));
    -
    101 
    -
    102  if (!strncmp(file_name, kMemoryFilePrefix, strlen(kMemoryFilePrefix))) {
    -
    103  // Disable caching for memory files.
    -
    104  return internal_file.release();
    -
    105  }
    -
    106 
    -
    107  if (FLAGS_io_cache_size) {
    -
    108  // Enable threaded I/O for "r", "w", and "a" modes only.
    -
    109  if (!strcmp(mode, "r")) {
    -
    110  return new ThreadedIoFile(std::move(internal_file),
    -
    111  ThreadedIoFile::kInputMode, FLAGS_io_cache_size,
    -
    112  FLAGS_io_block_size);
    -
    113  } else if (!strcmp(mode, "w") || !strcmp(mode, "a")) {
    -
    114  return new ThreadedIoFile(std::move(internal_file),
    -
    115  ThreadedIoFile::kOutputMode,
    -
    116  FLAGS_io_cache_size, FLAGS_io_block_size);
    -
    117  }
    -
    118  }
    -
    119 
    -
    120  // Threaded I/O is disabled.
    -
    121  DLOG(WARNING) << "Threaded I/O is disabled. Performance may be decreased.";
    -
    122  return internal_file.release();
    -
    123 }
    +
    94  {
    +
    95  kUdpFilePrefix,
    +
    96  strlen(kUdpFilePrefix),
    +
    97  &CreateUdpFile,
    +
    98  nullptr,
    +
    99  nullptr
    +
    100  },
    +
    101  {
    +
    102  kMemoryFilePrefix,
    +
    103  strlen(kMemoryFilePrefix),
    +
    104  &CreateMemoryFile,
    +
    105  &DeleteMemoryFile,
    +
    106  nullptr
    +
    107  },
    +
    108 };
    +
    109 
    +
    110 const FileTypeInfo* GetFileTypeInfo(base::StringPiece file_name,
    +
    111  base::StringPiece* real_file_name) {
    +
    112  for (const FileTypeInfo& file_type : kFileTypeInfo) {
    +
    113  if (strncmp(file_type.type, file_name.data(), file_type.type_length) == 0) {
    +
    114  *real_file_name = file_name.substr(file_type.type_length);
    +
    115  return &file_type;
    +
    116  }
    +
    117  }
    +
    118  // Otherwise we default to the first file type, which is LocalFile.
    +
    119  *real_file_name = file_name;
    +
    120  return &kFileTypeInfo[0];
    +
    121 }
    +
    122 
    +
    123 } // namespace
    124 
    -
    125 File* File::CreateInternalFile(const char* file_name, const char* mode) {
    -
    126  std::unique_ptr<File, FileCloser> internal_file;
    -
    127  for (size_t i = 0; i < arraysize(kSupportedTypeInfo); ++i) {
    -
    128  const SupportedTypeInfo& type_info = kSupportedTypeInfo[i];
    -
    129  if (strncmp(type_info.type, file_name, type_info.type_length) == 0) {
    -
    130  internal_file.reset(type_info.factory_function(
    -
    131  file_name + type_info.type_length, mode));
    -
    132  }
    -
    133  }
    -
    134  // Otherwise we assume it is a local file
    -
    135  if (!internal_file)
    -
    136  internal_file.reset(CreateLocalFile(file_name, mode));
    -
    137 
    -
    138  return internal_file.release();
    -
    139 }
    -
    140 
    -
    141 File* File::Open(const char* file_name, const char* mode) {
    -
    142  File* file = File::Create(file_name, mode);
    -
    143  if (!file)
    -
    144  return NULL;
    -
    145  if (!file->Open()) {
    -
    146  delete file;
    -
    147  return NULL;
    -
    148  }
    -
    149  return file;
    +
    125 File* File::Create(const char* file_name, const char* mode) {
    +
    126  std::unique_ptr<File, FileCloser> internal_file(
    +
    127  CreateInternalFile(file_name, mode));
    +
    128 
    +
    129  if (!strncmp(file_name, kMemoryFilePrefix, strlen(kMemoryFilePrefix))) {
    +
    130  // Disable caching for memory files.
    +
    131  return internal_file.release();
    +
    132  }
    +
    133 
    +
    134  if (FLAGS_io_cache_size) {
    +
    135  // Enable threaded I/O for "r", "w", and "a" modes only.
    +
    136  if (!strcmp(mode, "r")) {
    +
    137  return new ThreadedIoFile(std::move(internal_file),
    +
    138  ThreadedIoFile::kInputMode, FLAGS_io_cache_size,
    +
    139  FLAGS_io_block_size);
    +
    140  } else if (!strcmp(mode, "w") || !strcmp(mode, "a")) {
    +
    141  return new ThreadedIoFile(std::move(internal_file),
    +
    142  ThreadedIoFile::kOutputMode,
    +
    143  FLAGS_io_cache_size, FLAGS_io_block_size);
    +
    144  }
    +
    145  }
    +
    146 
    +
    147  // Threaded I/O is disabled.
    +
    148  DLOG(WARNING) << "Threaded I/O is disabled. Performance may be decreased.";
    +
    149  return internal_file.release();
    150 }
    151 
    -
    152 File* File::OpenWithNoBuffering(const char* file_name, const char* mode) {
    -
    153  File* file = File::CreateInternalFile(file_name, mode);
    -
    154  if (!file)
    -
    155  return NULL;
    -
    156  if (!file->Open()) {
    -
    157  delete file;
    -
    158  return NULL;
    -
    159  }
    -
    160  return file;
    -
    161 }
    -
    162 
    -
    163 bool File::Delete(const char* file_name) {
    -
    164  for (size_t i = 0; i < arraysize(kSupportedTypeInfo); ++i) {
    -
    165  const SupportedTypeInfo& type_info = kSupportedTypeInfo[i];
    -
    166  if (strncmp(type_info.type, file_name, type_info.type_length) == 0) {
    -
    167  return type_info.delete_function ?
    -
    168  type_info.delete_function(file_name + type_info.type_length) :
    -
    169  false;
    -
    170  }
    -
    171  }
    -
    172  // Otherwise we assume it is a local file
    -
    173  return DeleteLocalFile(file_name);
    -
    174 }
    -
    175 
    -
    176 int64_t File::GetFileSize(const char* file_name) {
    -
    177  File* file = File::Open(file_name, "r");
    -
    178  if (!file)
    -
    179  return -1;
    -
    180  int64_t res = file->Size();
    -
    181  file->Close();
    -
    182  return res;
    -
    183 }
    -
    184 
    -
    185 bool File::ReadFileToString(const char* file_name, std::string* contents) {
    -
    186  DCHECK(contents);
    -
    187 
    -
    188  File* file = File::Open(file_name, "r");
    -
    189  if (!file)
    -
    190  return false;
    -
    191 
    -
    192  const size_t kBufferSize = 0x40000; // 256KB.
    -
    193  std::unique_ptr<char[]> buf(new char[kBufferSize]);
    -
    194 
    -
    195  int64_t len;
    -
    196  while ((len = file->Read(buf.get(), kBufferSize)) > 0)
    -
    197  contents->append(buf.get(), len);
    +
    152 File* File::CreateInternalFile(const char* file_name, const char* mode) {
    +
    153  base::StringPiece real_file_name;
    +
    154  const FileTypeInfo* file_type = GetFileTypeInfo(file_name, &real_file_name);
    +
    155  DCHECK(file_type);
    +
    156  return file_type->factory_function(real_file_name.data(), mode);
    +
    157 }
    +
    158 
    +
    159 File* File::Open(const char* file_name, const char* mode) {
    +
    160  File* file = File::Create(file_name, mode);
    +
    161  if (!file)
    +
    162  return NULL;
    +
    163  if (!file->Open()) {
    +
    164  delete file;
    +
    165  return NULL;
    +
    166  }
    +
    167  return file;
    +
    168 }
    +
    169 
    +
    170 File* File::OpenWithNoBuffering(const char* file_name, const char* mode) {
    +
    171  File* file = File::CreateInternalFile(file_name, mode);
    +
    172  if (!file)
    +
    173  return NULL;
    +
    174  if (!file->Open()) {
    +
    175  delete file;
    +
    176  return NULL;
    +
    177  }
    +
    178  return file;
    +
    179 }
    +
    180 
    +
    181 bool File::Delete(const char* file_name) {
    +
    182  base::StringPiece real_file_name;
    +
    183  const FileTypeInfo* file_type = GetFileTypeInfo(file_name, &real_file_name);
    +
    184  DCHECK(file_type);
    +
    185  return file_type->delete_function
    +
    186  ? file_type->delete_function(real_file_name.data())
    +
    187  : false;
    +
    188 }
    +
    189 
    +
    190 int64_t File::GetFileSize(const char* file_name) {
    +
    191  File* file = File::Open(file_name, "r");
    +
    192  if (!file)
    +
    193  return -1;
    +
    194  int64_t res = file->Size();
    +
    195  file->Close();
    +
    196  return res;
    +
    197 }
    198 
    -
    199  file->Close();
    -
    200  return len == 0;
    -
    201 }
    -
    202 
    -
    203 bool File::Copy(const char* from_file_name, const char* to_file_name) {
    -
    204  std::string content;
    -
    205  if (!ReadFileToString(from_file_name, &content)) {
    -
    206  LOG(ERROR) << "Failed to open file " << from_file_name;
    -
    207  return false;
    -
    208  }
    -
    209 
    -
    210  std::unique_ptr<File, FileCloser> output_file(File::Open(to_file_name, "w"));
    -
    211  if (!output_file) {
    -
    212  LOG(ERROR) << "Failed to write to " << to_file_name;
    -
    213  return false;
    -
    214  }
    -
    215 
    -
    216  uint64_t bytes_left = content.size();
    -
    217  uint64_t total_bytes_written = 0;
    -
    218  const char* content_cstr = content.c_str();
    -
    219  while (bytes_left > total_bytes_written) {
    -
    220  const int64_t bytes_written =
    -
    221  output_file->Write(content_cstr + total_bytes_written, bytes_left);
    -
    222  if (bytes_written < 0) {
    -
    223  LOG(ERROR) << "Failure while writing to " << to_file_name;
    -
    224  return false;
    -
    225  }
    -
    226 
    -
    227  total_bytes_written += bytes_written;
    -
    228  }
    -
    229  return true;
    -
    230 }
    -
    231 
    -
    232 int64_t File::CopyFile(File* source, File* destination) {
    -
    233  return CopyFile(source, destination, kWholeFile);
    -
    234 }
    -
    235 
    -
    236 int64_t File::CopyFile(File* source, File* destination, int64_t max_copy) {
    -
    237  DCHECK(source);
    -
    238  DCHECK(destination);
    -
    239  if (max_copy < 0)
    -
    240  max_copy = std::numeric_limits<int64_t>::max();
    -
    241 
    -
    242  const int64_t kBufferSize = 0x40000; // 256KB.
    -
    243  std::unique_ptr<uint8_t[]> buffer(new uint8_t[kBufferSize]);
    -
    244  int64_t bytes_copied = 0;
    -
    245  while (bytes_copied < max_copy) {
    -
    246  const int64_t size = std::min(kBufferSize, max_copy - bytes_copied);
    -
    247  const int64_t bytes_read = source->Read(buffer.get(), size);
    -
    248  if (bytes_read < 0)
    -
    249  return bytes_read;
    -
    250  if (bytes_read == 0)
    -
    251  break;
    +
    199 bool File::ReadFileToString(const char* file_name, std::string* contents) {
    +
    200  DCHECK(contents);
    +
    201 
    +
    202  File* file = File::Open(file_name, "r");
    +
    203  if (!file)
    +
    204  return false;
    +
    205 
    +
    206  const size_t kBufferSize = 0x40000; // 256KB.
    +
    207  std::unique_ptr<char[]> buf(new char[kBufferSize]);
    +
    208 
    +
    209  int64_t len;
    +
    210  while ((len = file->Read(buf.get(), kBufferSize)) > 0)
    +
    211  contents->append(buf.get(), len);
    +
    212 
    +
    213  file->Close();
    +
    214  return len == 0;
    +
    215 }
    +
    216 
    +
    217 bool File::WriteFileAtomically(const char* file_name, const std::string& contents) {
    +
    218  base::StringPiece real_file_name;
    +
    219  const FileTypeInfo* file_type = GetFileTypeInfo(file_name, &real_file_name);
    +
    220  DCHECK(file_type);
    +
    221  if (file_type->atomic_write_function)
    +
    222  return file_type->atomic_write_function(real_file_name.data(), contents);
    +
    223 
    +
    224  // Provide a default implementation which may not be atomic unfortunately.
    +
    225 
    +
    226  // Skip the warning message for memory files, which is meant for testing
    +
    227  // anyway..
    +
    228  if (strncmp(file_name, kMemoryFilePrefix, strlen(kMemoryFilePrefix)) != 0) {
    +
    229  LOG(WARNING) << "Writing to " << file_name
    +
    230  << " is not guaranteed to be atomic.";
    +
    231  }
    +
    232 
    +
    233  std::unique_ptr<File, FileCloser> file(media::File::Open(file_name, "w"));
    +
    234  if (!file) {
    +
    235  LOG(ERROR) << "Failed to open file " << file_name;
    +
    236  return false;
    +
    237  }
    +
    238  int64_t bytes_written = file->Write(contents.data(), contents.size());
    +
    239  if (bytes_written < 0) {
    +
    240  LOG(ERROR) << "Failed to write to file '" << file_name << "' ("
    +
    241  << bytes_written << ").";
    +
    242  return false;
    +
    243  }
    +
    244  if (static_cast<size_t>(bytes_written) != contents.size()) {
    +
    245  LOG(ERROR) << "Failed to write the whole file to " << file_name
    +
    246  << ". Wrote " << bytes_written << " but expecting "
    +
    247  << contents.size() << " bytes.";
    +
    248  return false;
    +
    249  }
    +
    250  return true;
    +
    251 }
    252 
    -
    253  int64_t total_bytes_written = 0;
    -
    254  while (total_bytes_written < bytes_read) {
    -
    255  const int64_t bytes_written = destination->Write(
    -
    256  buffer.get() + total_bytes_written, bytes_read - total_bytes_written);
    -
    257  if (bytes_written < 0)
    -
    258  return bytes_written;
    +
    253 bool File::Copy(const char* from_file_name, const char* to_file_name) {
    +
    254  std::string content;
    +
    255  if (!ReadFileToString(from_file_name, &content)) {
    +
    256  LOG(ERROR) << "Failed to open file " << from_file_name;
    +
    257  return false;
    +
    258  }
    259 
    -
    260  total_bytes_written += bytes_written;
    -
    261  }
    -
    262 
    -
    263  DCHECK_EQ(total_bytes_written, bytes_read);
    -
    264  bytes_copied += bytes_read;
    -
    265  }
    -
    266 
    -
    267  return bytes_copied;
    -
    268 }
    -
    269 
    -
    270 } // namespace media
    -
    271 } // namespace shaka
    +
    260  std::unique_ptr<File, FileCloser> output_file(File::Open(to_file_name, "w"));
    +
    261  if (!output_file) {
    +
    262  LOG(ERROR) << "Failed to write to " << to_file_name;
    +
    263  return false;
    +
    264  }
    +
    265 
    +
    266  uint64_t bytes_left = content.size();
    +
    267  uint64_t total_bytes_written = 0;
    +
    268  const char* content_cstr = content.c_str();
    +
    269  while (bytes_left > total_bytes_written) {
    +
    270  const int64_t bytes_written =
    +
    271  output_file->Write(content_cstr + total_bytes_written, bytes_left);
    +
    272  if (bytes_written < 0) {
    +
    273  LOG(ERROR) << "Failure while writing to " << to_file_name;
    +
    274  return false;
    +
    275  }
    +
    276 
    +
    277  total_bytes_written += bytes_written;
    +
    278  }
    +
    279  return true;
    +
    280 }
    +
    281 
    +
    282 int64_t File::CopyFile(File* source, File* destination) {
    +
    283  return CopyFile(source, destination, kWholeFile);
    +
    284 }
    +
    285 
    +
    286 int64_t File::CopyFile(File* source, File* destination, int64_t max_copy) {
    +
    287  DCHECK(source);
    +
    288  DCHECK(destination);
    +
    289  if (max_copy < 0)
    +
    290  max_copy = std::numeric_limits<int64_t>::max();
    +
    291 
    +
    292  const int64_t kBufferSize = 0x40000; // 256KB.
    +
    293  std::unique_ptr<uint8_t[]> buffer(new uint8_t[kBufferSize]);
    +
    294  int64_t bytes_copied = 0;
    +
    295  while (bytes_copied < max_copy) {
    +
    296  const int64_t size = std::min(kBufferSize, max_copy - bytes_copied);
    +
    297  const int64_t bytes_read = source->Read(buffer.get(), size);
    +
    298  if (bytes_read < 0)
    +
    299  return bytes_read;
    +
    300  if (bytes_read == 0)
    +
    301  break;
    +
    302 
    +
    303  int64_t total_bytes_written = 0;
    +
    304  while (total_bytes_written < bytes_read) {
    +
    305  const int64_t bytes_written = destination->Write(
    +
    306  buffer.get() + total_bytes_written, bytes_read - total_bytes_written);
    +
    307  if (bytes_written < 0)
    +
    308  return bytes_written;
    +
    309 
    +
    310  total_bytes_written += bytes_written;
    +
    311  }
    +
    312 
    +
    313  DCHECK_EQ(total_bytes_written, bytes_read);
    +
    314  bytes_copied += bytes_read;
    +
    315  }
    +
    316 
    +
    317  return bytes_copied;
    +
    318 }
    +
    319 
    +
    320 } // namespace media
    +
    321 } // namespace shaka
    virtual bool Open()=0
    Internal open. Should not be used directly.
    -
    static File * OpenWithNoBuffering(const char *file_name, const char *mode)
    Definition: file.cc:152
    -
    static bool Copy(const char *from_file_name, const char *to_file_name)
    Definition: file.cc:203
    +
    static File * OpenWithNoBuffering(const char *file_name, const char *mode)
    Definition: file.cc:170
    +
    static bool Copy(const char *from_file_name, const char *to_file_name)
    Definition: file.cc:253
    virtual int64_t Size()=0
    virtual bool Close()=0
    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 File * Open(const char *file_name, const char *mode)
    Definition: file.cc:159
    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
    -
    static bool ReadFileToString(const char *file_name, std::string *contents)
    Definition: file.cc:185
    +
    static int64_t CopyFile(File *source, File *destination)
    Definition: file.cc:282
    +
    static bool WriteFileAtomically(const char *file_name, const std::string &contents)
    Definition: file.cc:217
    +
    const std::string & file_name() const
    Definition: file.h:91
    +
    static int64_t GetFileSize(const char *file_name)
    Definition: file.cc:190
    +
    static bool ReadFileToString(const char *file_name, std::string *contents)
    Definition: file.cc:199
    static bool Delete(const char *file_name)
    Definition: local_file.cc:104
    -
    static bool Delete(const char *file_name)
    Definition: file.cc:163
    +
    static bool Delete(const char *file_name)
    Definition: file.cc:181
    diff --git a/docs/d6/d02/playready__key__encryption__flags_8h_source.html b/docs/d6/d02/playready__key__encryption__flags_8h_source.html index 6c6d738a65..e25a128329 100644 --- a/docs/d6/d02/playready__key__encryption__flags_8h_source.html +++ b/docs/d6/d02/playready__key__encryption__flags_8h_source.html @@ -123,7 +123,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 3d2e79cd30..48c3df4d3a 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 0f8d47c37a..5ded1b3e90 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 b0ec16b3f8..af489d24e0 100644 --- a/docs/d6/d16/text__stream__info_8cc_source.html +++ b/docs/d6/d16/text__stream__info_8cc_source.html @@ -125,7 +125,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 bc75ef8ecd..bcf1e7b4af 100644 --- a/docs/d6/d17/es__parser__h264_8cc_source.html +++ b/docs/d6/d17/es__parser__h264_8cc_source.html @@ -267,7 +267,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 5c074db09d..8335cd13f4 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 3ca8249702..7b2acd6e46 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 751daa126e..1458a23a7f 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 08732f7720..5e57d4fc01 100644 --- a/docs/d6/d2e/mpd__notifier__util_8cc_source.html +++ b/docs/d6/d2e/mpd__notifier__util_8cc_source.html @@ -98,79 +98,61 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    9 #include "packager/base/strings/string_number_conversions.h"
    10 #include "packager/base/strings/string_util.h"
    11 #include "packager/media/file/file.h"
    -
    12 #include "packager/media/file/file_closer.h"
    -
    13 #include "packager/mpd/base/mpd_utils.h"
    -
    14 
    -
    15 namespace shaka {
    -
    16 
    -
    17 using media::File;
    -
    18 using media::FileCloser;
    -
    19 
    -
    20 bool WriteMpdToFile(const std::string& output_path, MpdBuilder* mpd_builder) {
    -
    21  CHECK(!output_path.empty());
    -
    22 
    -
    23  std::string mpd;
    -
    24  if (!mpd_builder->ToString(&mpd)) {
    -
    25  LOG(ERROR) << "Failed to write MPD to string.";
    -
    26  return false;
    -
    27  }
    -
    28 
    -
    29  std::unique_ptr<File, FileCloser> file(File::Open(output_path.c_str(), "w"));
    -
    30  if (!file) {
    -
    31  LOG(ERROR) << "Failed to open file for writing: " << output_path;
    -
    32  return false;
    -
    33  }
    -
    34 
    -
    35  const char* mpd_char_ptr = mpd.data();
    -
    36  size_t mpd_bytes_left = mpd.size();
    -
    37  while (mpd_bytes_left > 0) {
    -
    38  int64_t length = file->Write(mpd_char_ptr, mpd_bytes_left);
    -
    39  if (length <= 0) {
    -
    40  LOG(ERROR) << "Failed to write to file '" << output_path << "' ("
    -
    41  << length << ").";
    -
    42  return false;
    -
    43  }
    -
    44  mpd_char_ptr += length;
    -
    45  mpd_bytes_left -= length;
    -
    46  }
    -
    47  // Release the pointer because Close() destructs itself.
    -
    48  return file.release()->Close();
    -
    49 }
    -
    50 
    -
    51 ContentType GetContentType(const MediaInfo& media_info) {
    -
    52  const bool has_video = media_info.has_video_info();
    -
    53  const bool has_audio = media_info.has_audio_info();
    -
    54  const bool has_text = media_info.has_text_info();
    +
    12 #include "packager/mpd/base/mpd_utils.h"
    +
    13 
    +
    14 namespace shaka {
    +
    15 
    +
    16 bool WriteMpdToFile(const std::string& output_path, MpdBuilder* mpd_builder) {
    +
    17  CHECK(!output_path.empty());
    +
    18 
    +
    19  std::string mpd;
    +
    20  if (!mpd_builder->ToString(&mpd)) {
    +
    21  LOG(ERROR) << "Failed to write MPD to string.";
    +
    22  return false;
    +
    23  }
    +
    24 
    +
    25  if (!media::File::WriteFileAtomically(output_path.c_str(), mpd)) {
    +
    26  LOG(ERROR) << "Failed to write mpd to: " << output_path;
    +
    27  return false;
    +
    28  }
    +
    29  return true;
    +
    30 }
    +
    31 
    +
    32 ContentType GetContentType(const MediaInfo& media_info) {
    +
    33  const bool has_video = media_info.has_video_info();
    +
    34  const bool has_audio = media_info.has_audio_info();
    +
    35  const bool has_text = media_info.has_text_info();
    +
    36 
    +
    37  if (MoreThanOneTrue(has_video, has_audio, has_text)) {
    +
    38  NOTIMPLEMENTED() << "MediaInfo with more than one stream is not supported.";
    +
    39  return kContentTypeUnknown;
    +
    40  }
    +
    41  if (!AtLeastOneTrue(has_video, has_audio, has_text)) {
    +
    42  LOG(ERROR) << "MediaInfo should contain one audio, video, or text stream.";
    +
    43  return kContentTypeUnknown;
    +
    44  }
    +
    45  return has_video ? kContentTypeVideo
    +
    46  : (has_audio ? kContentTypeAudio : kContentTypeText);
    +
    47 }
    +
    48 
    +
    49 std::string Uint8VectorToBase64(const std::vector<uint8_t>& input) {
    +
    50  std::string output;
    +
    51  std::string input_in_string(input.begin(), input.end());
    +
    52  base::Base64Encode(input_in_string, &output);
    +
    53  return output;
    +
    54 }
    55 
    -
    56  if (MoreThanOneTrue(has_video, has_audio, has_text)) {
    -
    57  NOTIMPLEMENTED() << "MediaInfo with more than one stream is not supported.";
    -
    58  return kContentTypeUnknown;
    -
    59  }
    -
    60  if (!AtLeastOneTrue(has_video, has_audio, has_text)) {
    -
    61  LOG(ERROR) << "MediaInfo should contain one audio, video, or text stream.";
    -
    62  return kContentTypeUnknown;
    -
    63  }
    -
    64  return has_video ? kContentTypeVideo
    -
    65  : (has_audio ? kContentTypeAudio : kContentTypeText);
    -
    66 }
    -
    67 
    -
    68 std::string Uint8VectorToBase64(const std::vector<uint8_t>& input) {
    -
    69  std::string output;
    -
    70  std::string input_in_string(input.begin(), input.end());
    -
    71  base::Base64Encode(input_in_string, &output);
    -
    72  return output;
    -
    73 }
    -
    74 
    -
    75 } // namespace shaka
    +
    56 } // namespace shaka
    This class generates DASH MPDs (Media Presentation Descriptions).
    Definition: mpd_builder.h:57
    -
    std::string Uint8VectorToBase64(const std::vector< uint8_t > &input)
    Converts uint8 vector into base64 encoded string.
    -
    virtual bool ToString(std::string *output)
    Definition: mpd_builder.cc:424
    -
    ContentType GetContentType(const MediaInfo &media_info)
    -
    bool WriteMpdToFile(const std::string &output_path, MpdBuilder *mpd_builder)
    +
    std::string Uint8VectorToBase64(const std::vector< uint8_t > &input)
    Converts uint8 vector into base64 encoded string.
    +
    virtual bool ToString(std::string *output)
    Definition: mpd_builder.cc:396
    +
    static bool WriteFileAtomically(const char *file_name, const std::string &contents)
    Definition: file.cc:217
    +
    ContentType GetContentType(const MediaInfo &media_info)
    +
    bool WriteMpdToFile(const std::string &output_path, MpdBuilder *mpd_builder)
    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 5c228acb36..76524ed586 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 832bea33ce..743a901db9 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 4a0f7a3612..0d93d5342e 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/d4c/classshaka_1_1media_1_1EncryptionHandler.html b/docs/d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html index 685d5d772e..63b612ebd9 100644 --- a/docs/d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html +++ b/docs/d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html @@ -264,7 +264,7 @@ class EncryptionHandlerTes 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 6f586487c8..9956ccd9b0 100644 --- a/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html +++ b/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html @@ -181,7 +181,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 6162bfdbad..0a8c5754fd 100644 --- a/docs/d6/d55/aes__cryptor_8cc_source.html +++ b/docs/d6/d55/aes__cryptor_8cc_source.html @@ -227,7 +227,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 98ba54bf19..ade201fce0 100644 --- a/docs/d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html +++ b/docs/d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html @@ -251,7 +251,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 f96986f3e9..69f2c60eab 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 77535b1256..07593390a4 100644 --- a/docs/d6/d60/classshaka_1_1media_1_1VPCodecConfigurationRecord-members.html +++ b/docs/d6/d60/classshaka_1_1media_1_1VPCodecConfigurationRecord-members.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d6a/cue_8h_source.html b/docs/d6/d6a/cue_8h_source.html index e107fd66c6..eeed0d6232 100644 --- a/docs/d6/d6a/cue_8h_source.html +++ b/docs/d6/d6a/cue_8h_source.html @@ -126,7 +126,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 45d85c2dcd..461d65f422 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 f0f0aeb2dc..b79faefce1 100644 --- a/docs/d6/d6e/ts__section__pes_8cc_source.html +++ b/docs/d6/d6e/ts__section__pes_8cc_source.html @@ -407,7 +407,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 448d8ad8d8..3a55372016 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 16100379e2..551ec59c6b 100644 --- a/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html +++ b/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html @@ -215,7 +215,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    bool NotifyNewSegment(uint32_t id, uint64_t start_time, uint64_t duration, uint64_t size) override
    bool NotifyEncryptionUpdate(uint32_t container_id, const std::string &drm_uuid, const std::vector< uint8_t > &new_key_id, const std::vector< uint8_t > &new_pssh) override
    - +
    This class generates DASH MPDs (Media Presentation Descriptions).
    Definition: mpd_builder.h:57
    bool NotifySampleDuration(uint32_t container_id, uint32_t sample_duration) override
    @@ -228,7 +228,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 de1cf166ba..cd686971ea 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 66b8c3df19..e3924c7477 100644 --- a/docs/d6/d7b/webm__tracks__parser_8h_source.html +++ b/docs/d6/d7b/webm__tracks__parser_8h_source.html @@ -205,7 +205,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 ac66955289..2e5b7cb69b 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/d82/structshaka_1_1media_1_1EncryptionOptions.html b/docs/d6/d82/structshaka_1_1media_1_1EncryptionOptions.html index a0b3371428..11836aed00 100644 --- a/docs/d6/d82/structshaka_1_1media_1_1EncryptionOptions.html +++ b/docs/d6/d82/structshaka_1_1media_1_1EncryptionOptions.html @@ -161,7 +161,7 @@ EncryptionParams::EncryptedStreamAttributes
    diff --git a/docs/d6/d86/bandwidth__estimator_8cc_source.html b/docs/d6/d86/bandwidth__estimator_8cc_source.html index ba0f9bc1b7..4a7a00675a 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/classshaka_1_1media_1_1FakeMediaHandler-members.html b/docs/d6/d8a/classshaka_1_1media_1_1FakeMediaHandler-members.html index 6aad563683..211dafe370 100644 --- a/docs/d6/d8a/classshaka_1_1media_1_1FakeMediaHandler-members.html +++ b/docs/d6/d8a/classshaka_1_1media_1_1FakeMediaHandler-members.html @@ -122,7 +122,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 870f31c0f5..93c616fb31 100644 --- a/docs/d6/d8a/vp9__parser_8cc_source.html +++ b/docs/d6/d8a/vp9__parser_8cc_source.html @@ -697,7 +697,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 26c9f450c6..48fcf68d6c 100644 --- a/docs/d6/d8f/classshaka_1_1xml_1_1RepresentationBaseXmlNode-members.html +++ b/docs/d6/d8f/classshaka_1_1xml_1_1RepresentationBaseXmlNode-members.html @@ -113,7 +113,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 79251b2bb8..ea1c4ccd1a 100644 --- a/docs/d6/d9b/h264__parser_8h_source.html +++ b/docs/d6/d9b/h264__parser_8h_source.html @@ -443,7 +443,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 3dae7886f2..2bdedb043d 100644 --- a/docs/d6/d9f/hls__flags_8cc_source.html +++ b/docs/d6/d9f/hls__flags_8cc_source.html @@ -111,7 +111,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 2bbf0be659..b9821bea13 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 a568326a34..cc93156945 100644 --- a/docs/d6/da3/mpd__builder_8h_source.html +++ b/docs/d6/da3/mpd__builder_8h_source.html @@ -148,389 +148,379 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    67 
    72  virtual AdaptationSet* AddAdaptationSet(const std::string& lang);
    73 
    -
    78  bool WriteMpdToFile(media::File* output_file);
    +
    77  // TODO(kqyang): Handle file IO in this class as in HLS media_playlist?
    +
    78  virtual bool ToString(std::string* output);
    79 
    -
    83  virtual bool ToString(std::string* output);
    -
    84 
    -
    90  static void MakePathsRelativeToMpd(const std::string& mpd_path,
    -
    91  MediaInfo* media_info);
    -
    92 
    -
    93  // Inject a |clock| that returns the current time.
    -
    95  void InjectClockForTesting(std::unique_ptr<base::Clock> clock) {
    -
    96  clock_ = std::move(clock);
    -
    97  }
    -
    98 
    -
    99  private:
    -
    100  // LiveMpdBuilderTest needs to set availabilityStartTime so that the test
    -
    101  // doesn't need to depend on current time.
    -
    102  friend class LiveMpdBuilderTest;
    -
    103  template <DashProfile profile>
    -
    104  friend class MpdBuilderTest;
    +
    85  static void MakePathsRelativeToMpd(const std::string& mpd_path,
    +
    86  MediaInfo* media_info);
    +
    87 
    +
    88  // Inject a |clock| that returns the current time.
    +
    90  void InjectClockForTesting(std::unique_ptr<base::Clock> clock) {
    +
    91  clock_ = std::move(clock);
    +
    92  }
    +
    93 
    +
    94  private:
    +
    95  // LiveMpdBuilderTest needs to set availabilityStartTime so that the test
    +
    96  // doesn't need to depend on current time.
    +
    97  friend class LiveMpdBuilderTest;
    +
    98  template <DashProfile profile>
    +
    99  friend class MpdBuilderTest;
    +
    100 
    +
    101  // Returns the document pointer to the MPD. This must be freed by the caller
    +
    102  // using appropriate xmlDocPtr freeing function.
    +
    103  // On failure, this returns NULL.
    +
    104  xmlDocPtr GenerateMpd();
    105 
    -
    106  bool ToStringImpl(std::string* output);
    -
    107 
    -
    108  // This is a helper method for writing out MPDs, called from WriteMpdToFile()
    -
    109  // and ToString().
    -
    110  template <typename OutputType>
    -
    111  bool WriteMpdToOutput(OutputType* output);
    -
    112 
    -
    113  // Returns the document pointer to the MPD. This must be freed by the caller
    -
    114  // using appropriate xmlDocPtr freeing function.
    -
    115  // On failure, this returns NULL.
    -
    116  xmlDocPtr GenerateMpd();
    -
    117 
    -
    118  // Set MPD attributes common to all profiles. Uses non-zero |mpd_options_| to
    -
    119  // set attributes for the MPD.
    -
    120  void AddCommonMpdInfo(xml::XmlNode* mpd_node);
    -
    121 
    -
    122  // Adds 'static' MPD attributes and elements to |mpd_node|. This assumes that
    -
    123  // the first child element is a Period element.
    -
    124  void AddStaticMpdInfo(xml::XmlNode* mpd_node);
    -
    125 
    -
    126  // Same as AddStaticMpdInfo() but for 'dynamic' MPDs.
    -
    127  void AddDynamicMpdInfo(xml::XmlNode* mpd_node);
    -
    128 
    -
    129  float GetStaticMpdDuration(xml::XmlNode* mpd_node);
    -
    130 
    -
    131  // Set MPD attributes for dynamic profile MPD. Uses non-zero |mpd_options_| as
    -
    132  // well as various calculations to set attributes for the MPD.
    -
    133  void SetDynamicMpdAttributes(xml::XmlNode* mpd_node);
    -
    134 
    -
    135  // Gets the earliest, normalized segment timestamp. Returns true if
    -
    136  // successful, false otherwise.
    -
    137  bool GetEarliestTimestamp(double* timestamp_seconds);
    -
    138 
    -
    139  MpdOptions mpd_options_;
    -
    140  std::list<std::unique_ptr<AdaptationSet>> adaptation_sets_;
    -
    141 
    -
    142  std::list<std::string> base_urls_;
    -
    143  std::string availability_start_time_;
    -
    144 
    -
    145  base::AtomicSequenceNumber adaptation_set_counter_;
    -
    146  base::AtomicSequenceNumber representation_counter_;
    -
    147 
    -
    148  // By default, this returns the current time. This can be injected for
    -
    149  // testing.
    -
    150  std::unique_ptr<base::Clock> clock_;
    -
    151 
    -
    152  DISALLOW_COPY_AND_ASSIGN(MpdBuilder);
    -
    153 };
    -
    154 
    - -
    158  public:
    -
    159  // The role for this AdaptationSet. These values are used to add a Role
    -
    160  // element to the AdaptationSet with schemeIdUri=urn:mpeg:dash:role:2011.
    -
    161  // See ISO/IEC 23009-1:2012 section 5.8.5.5.
    -
    162  enum Role {
    -
    163  kRoleCaption,
    -
    164  kRoleSubtitle,
    -
    165  kRoleMain,
    -
    166  kRoleAlternate,
    -
    167  kRoleSupplementary,
    -
    168  kRoleCommentary,
    -
    169  kRoleDub
    -
    170  };
    -
    171 
    -
    172  virtual ~AdaptationSet();
    -
    173 
    -
    180  virtual Representation* AddRepresentation(const MediaInfo& media_info);
    +
    106  // Set MPD attributes common to all profiles. Uses non-zero |mpd_options_| to
    +
    107  // set attributes for the MPD.
    +
    108  void AddCommonMpdInfo(xml::XmlNode* mpd_node);
    +
    109 
    +
    110  // Adds 'static' MPD attributes and elements to |mpd_node|. This assumes that
    +
    111  // the first child element is a Period element.
    +
    112  void AddStaticMpdInfo(xml::XmlNode* mpd_node);
    +
    113 
    +
    114  // Same as AddStaticMpdInfo() but for 'dynamic' MPDs.
    +
    115  void AddDynamicMpdInfo(xml::XmlNode* mpd_node);
    +
    116 
    +
    117  float GetStaticMpdDuration(xml::XmlNode* mpd_node);
    +
    118 
    +
    119  // Set MPD attributes for dynamic profile MPD. Uses non-zero |mpd_options_| as
    +
    120  // well as various calculations to set attributes for the MPD.
    +
    121  void SetDynamicMpdAttributes(xml::XmlNode* mpd_node);
    +
    122 
    +
    123  // Gets the earliest, normalized segment timestamp. Returns true if
    +
    124  // successful, false otherwise.
    +
    125  bool GetEarliestTimestamp(double* timestamp_seconds);
    +
    126 
    +
    127  MpdOptions mpd_options_;
    +
    128  std::list<std::unique_ptr<AdaptationSet>> adaptation_sets_;
    +
    129 
    +
    130  std::list<std::string> base_urls_;
    +
    131  std::string availability_start_time_;
    +
    132 
    +
    133  base::AtomicSequenceNumber adaptation_set_counter_;
    +
    134  base::AtomicSequenceNumber representation_counter_;
    +
    135 
    +
    136  // By default, this returns the current time. This can be injected for
    +
    137  // testing.
    +
    138  std::unique_ptr<base::Clock> clock_;
    +
    139 
    +
    140  DISALLOW_COPY_AND_ASSIGN(MpdBuilder);
    +
    141 };
    +
    142 
    + +
    146  public:
    +
    147  // The role for this AdaptationSet. These values are used to add a Role
    +
    148  // element to the AdaptationSet with schemeIdUri=urn:mpeg:dash:role:2011.
    +
    149  // See ISO/IEC 23009-1:2012 section 5.8.5.5.
    +
    150  enum Role {
    +
    151  kRoleCaption,
    +
    152  kRoleSubtitle,
    +
    153  kRoleMain,
    +
    154  kRoleAlternate,
    +
    155  kRoleSupplementary,
    +
    156  kRoleCommentary,
    +
    157  kRoleDub
    +
    158  };
    +
    159 
    +
    160  virtual ~AdaptationSet();
    +
    161 
    +
    168  virtual Representation* AddRepresentation(const MediaInfo& media_info);
    +
    169 
    +
    179  virtual void AddContentProtectionElement(
    +
    180  const ContentProtectionElement& element);
    181 
    -
    191  virtual void AddContentProtectionElement(
    -
    192  const ContentProtectionElement& element);
    -
    193 
    -
    205  virtual void UpdateContentProtectionPssh(const std::string& drm_uuid,
    -
    206  const std::string& pssh);
    +
    193  virtual void UpdateContentProtectionPssh(const std::string& drm_uuid,
    +
    194  const std::string& pssh);
    +
    195 
    +
    200  virtual void AddRole(Role role);
    +
    201 
    +
    206  xml::scoped_xml_ptr<xmlNode> GetXml();
    207 
    -
    212  virtual void AddRole(Role role);
    -
    213 
    -
    218  xml::scoped_xml_ptr<xmlNode> GetXml();
    -
    219 
    -
    225  virtual void ForceSetSegmentAlignment(bool segment_alignment);
    +
    213  virtual void ForceSetSegmentAlignment(bool segment_alignment);
    +
    214 
    +
    217  void AddAdaptationSetSwitching(uint32_t adaptation_set_id);
    +
    218 
    +
    220  const std::vector<uint32_t>& adaptation_set_switching_ids() const {
    +
    221  return adaptation_set_switching_ids_;
    +
    222  }
    +
    223 
    +
    224  // Must be unique in the Period.
    +
    225  uint32_t id() const { return id_; }
    226 
    -
    229  void AddAdaptationSetSwitching(uint32_t adaptation_set_id);
    -
    230 
    -
    232  const std::vector<uint32_t>& adaptation_set_switching_ids() const {
    -
    233  return adaptation_set_switching_ids_;
    -
    234  }
    -
    235 
    -
    236  // Must be unique in the Period.
    -
    237  uint32_t id() const { return id_; }
    -
    238 
    -
    250  void OnNewSegmentForRepresentation(uint32_t representation_id,
    -
    251  uint64_t start_time,
    -
    252  uint64_t duration);
    -
    253 
    -
    266  void OnSetFrameRateForRepresentation(uint32_t representation_id,
    -
    267  uint32_t frame_duration,
    -
    268  uint32_t timescale);
    -
    269 
    -
    273  virtual void AddTrickPlayReferenceId(uint32_t id);
    -
    274 
    -
    275  protected:
    -
    283  AdaptationSet(uint32_t adaptation_set_id,
    -
    284  const std::string& lang,
    -
    285  const MpdOptions& mpd_options,
    -
    286  base::AtomicSequenceNumber* representation_counter);
    -
    287 
    -
    288  private:
    -
    289  friend class MpdBuilder;
    -
    290  template <DashProfile profile>
    -
    291  friend class MpdBuilderTest;
    -
    292 
    -
    293  // kSegmentAlignmentUnknown means that it is uncertain if the
    -
    294  // (sub)segments are aligned or not.
    -
    295  // kSegmentAlignmentTrue means that it is certain that the all the (current)
    -
    296  // segments added to the adaptation set are aligned.
    -
    297  // kSegmentAlignmentFalse means that it is it is certain that some segments
    -
    298  // are not aligned. This is useful to disable the computation for
    -
    299  // segment alignment, once it is certain that some segments are not aligned.
    -
    300  enum SegmentAligmentStatus {
    -
    301  kSegmentAlignmentUnknown,
    -
    302  kSegmentAlignmentTrue,
    -
    303  kSegmentAlignmentFalse
    -
    304  };
    +
    238  void OnNewSegmentForRepresentation(uint32_t representation_id,
    +
    239  uint64_t start_time,
    +
    240  uint64_t duration);
    +
    241 
    +
    254  void OnSetFrameRateForRepresentation(uint32_t representation_id,
    +
    255  uint32_t frame_duration,
    +
    256  uint32_t timescale);
    +
    257 
    +
    261  virtual void AddTrickPlayReferenceId(uint32_t id);
    +
    262 
    +
    263  protected:
    +
    271  AdaptationSet(uint32_t adaptation_set_id,
    +
    272  const std::string& lang,
    +
    273  const MpdOptions& mpd_options,
    +
    274  base::AtomicSequenceNumber* representation_counter);
    +
    275 
    +
    276  private:
    +
    277  friend class MpdBuilder;
    +
    278  template <DashProfile profile>
    +
    279  friend class MpdBuilderTest;
    +
    280 
    +
    281  // kSegmentAlignmentUnknown means that it is uncertain if the
    +
    282  // (sub)segments are aligned or not.
    +
    283  // kSegmentAlignmentTrue means that it is certain that the all the (current)
    +
    284  // segments added to the adaptation set are aligned.
    +
    285  // kSegmentAlignmentFalse means that it is it is certain that some segments
    +
    286  // are not aligned. This is useful to disable the computation for
    +
    287  // segment alignment, once it is certain that some segments are not aligned.
    +
    288  enum SegmentAligmentStatus {
    +
    289  kSegmentAlignmentUnknown,
    +
    290  kSegmentAlignmentTrue,
    +
    291  kSegmentAlignmentFalse
    +
    292  };
    +
    293 
    +
    294  // This maps Representations (IDs) to a list of start times of the segments.
    +
    295  // e.g.
    +
    296  // If Representation 1 has start time 0, 100, 200 and Representation 2 has
    +
    297  // start times 0, 200, 400, then the map contains:
    +
    298  // 1 -> [0, 100, 200]
    +
    299  // 2 -> [0, 200, 400]
    +
    300  typedef std::map<uint32_t, std::list<uint64_t> > RepresentationTimeline;
    +
    301 
    +
    302  // Gets the earliest, normalized segment timestamp. Returns true if
    +
    303  // successful, false otherwise.
    +
    304  bool GetEarliestTimestamp(double* timestamp_seconds);
    305 
    -
    306  // This maps Representations (IDs) to a list of start times of the segments.
    -
    307  // e.g.
    -
    308  // If Representation 1 has start time 0, 100, 200 and Representation 2 has
    -
    309  // start times 0, 200, 400, then the map contains:
    -
    310  // 1 -> [0, 100, 200]
    -
    311  // 2 -> [0, 200, 400]
    -
    312  typedef std::map<uint32_t, std::list<uint64_t> > RepresentationTimeline;
    -
    313 
    -
    314  // Gets the earliest, normalized segment timestamp. Returns true if
    -
    315  // successful, false otherwise.
    -
    316  bool GetEarliestTimestamp(double* timestamp_seconds);
    -
    317 
    -
    325  void CheckLiveSegmentAlignment(uint32_t representation_id,
    -
    326  uint64_t start_time,
    -
    327  uint64_t duration);
    +
    313  void CheckLiveSegmentAlignment(uint32_t representation_id,
    +
    314  uint64_t start_time,
    +
    315  uint64_t duration);
    +
    316 
    +
    317  // Checks representation_segment_start_times_ and sets segments_aligned_.
    +
    318  // Use this for VOD, do not use for Live.
    +
    319  void CheckVodSegmentAlignment();
    +
    320 
    +
    321  // Records the framerate of a Representation.
    +
    322  void RecordFrameRate(uint32_t frame_duration, uint32_t timescale);
    +
    323 
    +
    324  std::list<ContentProtectionElement> content_protection_elements_;
    +
    325  std::list<std::unique_ptr<Representation>> representations_;
    +
    326 
    +
    327  base::AtomicSequenceNumber* const representation_counter_;
    328 
    -
    329  // Checks representation_segment_start_times_ and sets segments_aligned_.
    -
    330  // Use this for VOD, do not use for Live.
    -
    331  void CheckVodSegmentAlignment();
    +
    329  const uint32_t id_;
    +
    330  const std::string lang_;
    +
    331  const MpdOptions& mpd_options_;
    332 
    -
    333  // Records the framerate of a Representation.
    -
    334  void RecordFrameRate(uint32_t frame_duration, uint32_t timescale);
    +
    333  // The ids of the adaptation sets this adaptation set can switch to.
    +
    334  std::vector<uint32_t> adaptation_set_switching_ids_;
    335 
    -
    336  std::list<ContentProtectionElement> content_protection_elements_;
    -
    337  std::list<std::unique_ptr<Representation>> representations_;
    -
    338 
    -
    339  base::AtomicSequenceNumber* const representation_counter_;
    -
    340 
    -
    341  const uint32_t id_;
    -
    342  const std::string lang_;
    -
    343  const MpdOptions& mpd_options_;
    -
    344 
    -
    345  // The ids of the adaptation sets this adaptation set can switch to.
    -
    346  std::vector<uint32_t> adaptation_set_switching_ids_;
    -
    347 
    -
    348  // Video widths and heights of Representations. Note that this is a set; if
    -
    349  // there is only 1 resolution, then @width & @height should be set, otherwise
    -
    350  // @maxWidth & @maxHeight should be set for DASH IOP.
    -
    351  std::set<uint32_t> video_widths_;
    -
    352  std::set<uint32_t> video_heights_;
    +
    336  // Video widths and heights of Representations. Note that this is a set; if
    +
    337  // there is only 1 resolution, then @width & @height should be set, otherwise
    +
    338  // @maxWidth & @maxHeight should be set for DASH IOP.
    +
    339  std::set<uint32_t> video_widths_;
    +
    340  std::set<uint32_t> video_heights_;
    +
    341 
    +
    342  // Video representations' frame rates.
    +
    343  // The frame rate notation for MPD is <integer>/<integer> (where the
    +
    344  // denominator is optional). This means the frame rate could be non-whole
    +
    345  // rational value, therefore the key is of type double.
    +
    346  // Value is <integer>/<integer> in string form.
    +
    347  // So, key == CalculatedValue(value)
    +
    348  std::map<double, std::string> video_frame_rates_;
    +
    349 
    +
    350  // contentType attribute of AdaptationSet.
    +
    351  // Determined by examining the MediaInfo passed to AddRepresentation().
    +
    352  std::string content_type_;
    353 
    -
    354  // Video representations' frame rates.
    -
    355  // The frame rate notation for MPD is <integer>/<integer> (where the
    -
    356  // denominator is optional). This means the frame rate could be non-whole
    -
    357  // rational value, therefore the key is of type double.
    -
    358  // Value is <integer>/<integer> in string form.
    -
    359  // So, key == CalculatedValue(value)
    -
    360  std::map<double, std::string> video_frame_rates_;
    -
    361 
    -
    362  // contentType attribute of AdaptationSet.
    -
    363  // Determined by examining the MediaInfo passed to AddRepresentation().
    -
    364  std::string content_type_;
    -
    365 
    -
    366  // This does not have to be a set, it could be a list or vector because all we
    -
    367  // really care is whether there is more than one entry.
    -
    368  // Contains one entry if all the Representations have the same picture aspect
    -
    369  // ratio (@par attribute for AdaptationSet).
    -
    370  // There will be more than one entry if there are multiple picture aspect
    -
    371  // ratios.
    -
    372  // The @par attribute should only be set if there is exactly one entry
    -
    373  // in this set.
    -
    374  std::set<std::string> picture_aspect_ratio_;
    -
    375 
    -
    376  // The roles of this AdaptationSet.
    -
    377  std::set<Role> roles_;
    -
    378 
    -
    379  // True iff all the segments are aligned.
    -
    380  SegmentAligmentStatus segments_aligned_;
    -
    381  bool force_set_segment_alignment_;
    -
    382 
    -
    383  // Keeps track of segment start times of Representations.
    -
    384  // For VOD, this will not be cleared, all the segment start times are
    -
    385  // stored in this. This should not out-of-memory for a reasonable length
    -
    386  // video and reasonable subsegment length.
    -
    387  // For Live, the entries are deleted (see CheckLiveSegmentAlignment()
    -
    388  // implementation comment) because storing the entire timeline is not
    -
    389  // reasonable and may cause an out-of-memory problem.
    -
    390  RepresentationTimeline representation_segment_start_times_;
    -
    391 
    -
    392  // Record the reference id for the original adaptation sets the trick play
    -
    393  // stream belongs to. This is a set because the trick play streams may be for
    -
    394  // multiple AdaptationSets (e.g. SD and HD videos in different AdaptationSets
    -
    395  // can share the same trick play stream.)
    -
    396  std::set<uint32_t> trick_play_reference_ids_;
    -
    397 
    -
    398  DISALLOW_COPY_AND_ASSIGN(AdaptationSet);
    -
    399 };
    +
    354  // This does not have to be a set, it could be a list or vector because all we
    +
    355  // really care is whether there is more than one entry.
    +
    356  // Contains one entry if all the Representations have the same picture aspect
    +
    357  // ratio (@par attribute for AdaptationSet).
    +
    358  // There will be more than one entry if there are multiple picture aspect
    +
    359  // ratios.
    +
    360  // The @par attribute should only be set if there is exactly one entry
    +
    361  // in this set.
    +
    362  std::set<std::string> picture_aspect_ratio_;
    +
    363 
    +
    364  // The roles of this AdaptationSet.
    +
    365  std::set<Role> roles_;
    +
    366 
    +
    367  // True iff all the segments are aligned.
    +
    368  SegmentAligmentStatus segments_aligned_;
    +
    369  bool force_set_segment_alignment_;
    +
    370 
    +
    371  // Keeps track of segment start times of Representations.
    +
    372  // For VOD, this will not be cleared, all the segment start times are
    +
    373  // stored in this. This should not out-of-memory for a reasonable length
    +
    374  // video and reasonable subsegment length.
    +
    375  // For Live, the entries are deleted (see CheckLiveSegmentAlignment()
    +
    376  // implementation comment) because storing the entire timeline is not
    +
    377  // reasonable and may cause an out-of-memory problem.
    +
    378  RepresentationTimeline representation_segment_start_times_;
    +
    379 
    +
    380  // Record the reference id for the original adaptation sets the trick play
    +
    381  // stream belongs to. This is a set because the trick play streams may be for
    +
    382  // multiple AdaptationSets (e.g. SD and HD videos in different AdaptationSets
    +
    383  // can share the same trick play stream.)
    +
    384  std::set<uint32_t> trick_play_reference_ids_;
    +
    385 
    +
    386  DISALLOW_COPY_AND_ASSIGN(AdaptationSet);
    +
    387 };
    +
    388 
    + +
    390  public:
    + + +
    393 
    +
    398  virtual void OnNewSegmentForRepresentation(uint64_t start_time,
    +
    399  uint64_t duration) = 0;
    400 
    - -
    402  public:
    - - -
    405 
    -
    410  virtual void OnNewSegmentForRepresentation(uint64_t start_time,
    -
    411  uint64_t duration) = 0;
    -
    412 
    -
    417  virtual void OnSetFrameRateForRepresentation(uint32_t frame_duration,
    -
    418  uint32_t timescale) = 0;
    -
    419 };
    +
    405  virtual void OnSetFrameRateForRepresentation(uint32_t frame_duration,
    +
    406  uint32_t timescale) = 0;
    +
    407 };
    +
    408 
    + +
    412  public:
    +
    413  enum SuppressFlag {
    +
    414  kSuppressWidth = 1,
    +
    415  kSuppressHeight = 2,
    +
    416  kSuppressFrameRate = 4,
    +
    417  };
    +
    418 
    +
    419  virtual ~Representation();
    420 
    - -
    424  public:
    -
    425  enum SuppressFlag {
    -
    426  kSuppressWidth = 1,
    -
    427  kSuppressHeight = 2,
    -
    428  kSuppressFrameRate = 4,
    -
    429  };
    -
    430 
    -
    431  virtual ~Representation();
    -
    432 
    -
    436  bool Init();
    -
    437 
    -
    448  virtual void AddContentProtectionElement(
    -
    449  const ContentProtectionElement& element);
    -
    450 
    -
    462  virtual void UpdateContentProtectionPssh(const std::string& drm_uuid,
    -
    463  const std::string& pssh);
    +
    424  bool Init();
    +
    425 
    +
    436  virtual void AddContentProtectionElement(
    +
    437  const ContentProtectionElement& element);
    +
    438 
    +
    450  virtual void UpdateContentProtectionPssh(const std::string& drm_uuid,
    +
    451  const std::string& pssh);
    +
    452 
    +
    461  virtual void AddNewSegment(uint64_t start_time,
    +
    462  uint64_t duration,
    +
    463  uint64_t size);
    464 
    -
    473  virtual void AddNewSegment(uint64_t start_time,
    -
    474  uint64_t duration,
    -
    475  uint64_t size);
    -
    476 
    -
    482  virtual void SetSampleDuration(uint32_t sample_duration);
    -
    483 
    -
    485  xml::scoped_xml_ptr<xmlNode> GetXml();
    -
    486 
    -
    495  void SuppressOnce(SuppressFlag flag);
    -
    496 
    -
    498  uint32_t id() const { return id_; }
    -
    499 
    -
    500  protected:
    - -
    510  const MediaInfo& media_info,
    -
    511  const MpdOptions& mpd_options,
    -
    512  uint32_t representation_id,
    -
    513  std::unique_ptr<RepresentationStateChangeListener> state_change_listener);
    -
    514 
    -
    515  private:
    -
    516  friend class AdaptationSet;
    -
    517  template <DashProfile profile>
    -
    518  friend class MpdBuilderTest;
    +
    470  virtual void SetSampleDuration(uint32_t sample_duration);
    +
    471 
    +
    473  xml::scoped_xml_ptr<xmlNode> GetXml();
    +
    474 
    +
    483  void SuppressOnce(SuppressFlag flag);
    +
    484 
    +
    486  uint32_t id() const { return id_; }
    +
    487 
    +
    488  protected:
    + +
    498  const MediaInfo& media_info,
    +
    499  const MpdOptions& mpd_options,
    +
    500  uint32_t representation_id,
    +
    501  std::unique_ptr<RepresentationStateChangeListener> state_change_listener);
    +
    502 
    +
    503  private:
    +
    504  friend class AdaptationSet;
    +
    505  template <DashProfile profile>
    +
    506  friend class MpdBuilderTest;
    +
    507 
    +
    508  bool AddLiveInfo(xml::RepresentationXmlNode* representation);
    +
    509 
    +
    510  // Returns true if |media_info_| has required fields to generate a valid
    +
    511  // Representation. Otherwise returns false.
    +
    512  bool HasRequiredMediaInfoFields();
    +
    513 
    +
    514  // Return false if the segment should be considered a new segment. True if the
    +
    515  // segment is contiguous.
    +
    516  bool IsContiguous(uint64_t start_time,
    +
    517  uint64_t duration,
    +
    518  uint64_t size) const;
    519 
    -
    520  bool AddLiveInfo(xml::RepresentationXmlNode* representation);
    -
    521 
    -
    522  // Returns true if |media_info_| has required fields to generate a valid
    -
    523  // Representation. Otherwise returns false.
    -
    524  bool HasRequiredMediaInfoFields();
    -
    525 
    -
    526  // Return false if the segment should be considered a new segment. True if the
    -
    527  // segment is contiguous.
    -
    528  bool IsContiguous(uint64_t start_time,
    -
    529  uint64_t duration,
    -
    530  uint64_t size) const;
    -
    531 
    -
    532  // Remove elements from |segment_infos_| for dynamic live profile. Increments
    -
    533  // |start_number_| by the number of segments removed.
    -
    534  void SlideWindow();
    -
    535 
    -
    536  // Note: Because 'mimeType' is a required field for a valid MPD, these return
    -
    537  // strings.
    -
    538  std::string GetVideoMimeType() const;
    -
    539  std::string GetAudioMimeType() const;
    -
    540  std::string GetTextMimeType() const;
    -
    541 
    -
    542  // Gets the earliest, normalized segment timestamp. Returns true if
    -
    543  // successful, false otherwise.
    -
    544  bool GetEarliestTimestamp(double* timestamp_seconds);
    +
    520  // Remove elements from |segment_infos_| for dynamic live profile. Increments
    +
    521  // |start_number_| by the number of segments removed.
    +
    522  void SlideWindow();
    +
    523 
    +
    524  // Note: Because 'mimeType' is a required field for a valid MPD, these return
    +
    525  // strings.
    +
    526  std::string GetVideoMimeType() const;
    +
    527  std::string GetAudioMimeType() const;
    +
    528  std::string GetTextMimeType() const;
    +
    529 
    +
    530  // Gets the earliest, normalized segment timestamp. Returns true if
    +
    531  // successful, false otherwise.
    +
    532  bool GetEarliestTimestamp(double* timestamp_seconds);
    +
    533 
    +
    534  // Init() checks that only one of VideoInfo, AudioInfo, or TextInfo is set. So
    +
    535  // any logic using this can assume only one set.
    +
    536  MediaInfo media_info_;
    +
    537  std::list<ContentProtectionElement> content_protection_elements_;
    +
    538  std::list<SegmentInfo> segment_infos_;
    +
    539 
    +
    540  const uint32_t id_;
    +
    541  std::string mime_type_;
    +
    542  std::string codecs_;
    +
    543  BandwidthEstimator bandwidth_estimator_;
    +
    544  const MpdOptions& mpd_options_;
    545 
    -
    546  // Init() checks that only one of VideoInfo, AudioInfo, or TextInfo is set. So
    -
    547  // any logic using this can assume only one set.
    -
    548  MediaInfo media_info_;
    -
    549  std::list<ContentProtectionElement> content_protection_elements_;
    -
    550  std::list<SegmentInfo> segment_infos_;
    -
    551 
    -
    552  const uint32_t id_;
    -
    553  std::string mime_type_;
    -
    554  std::string codecs_;
    -
    555  BandwidthEstimator bandwidth_estimator_;
    -
    556  const MpdOptions& mpd_options_;
    -
    557 
    -
    558  // startNumber attribute for SegmentTemplate.
    -
    559  // Starts from 1.
    -
    560  uint32_t start_number_;
    +
    546  // startNumber attribute for SegmentTemplate.
    +
    547  // Starts from 1.
    +
    548  uint32_t start_number_;
    +
    549 
    +
    550  // If this is not null, then Representation is responsible for calling the
    +
    551  // right methods at right timings.
    +
    552  std::unique_ptr<RepresentationStateChangeListener> state_change_listener_;
    +
    553 
    +
    554  // Bit vector for tracking witch attributes should not be output.
    +
    555  int output_suppression_flags_;
    +
    556 
    +
    557  DISALLOW_COPY_AND_ASSIGN(Representation);
    +
    558 };
    +
    559 
    +
    560 } // namespace shaka
    561 
    -
    562  // If this is not null, then Representation is responsible for calling the
    -
    563  // right methods at right timings.
    -
    564  std::unique_ptr<RepresentationStateChangeListener> state_change_listener_;
    -
    565 
    -
    566  // Bit vector for tracking witch attributes should not be output.
    -
    567  int output_suppression_flags_;
    -
    568 
    -
    569  DISALLOW_COPY_AND_ASSIGN(Representation);
    -
    570 };
    -
    571 
    -
    572 } // namespace shaka
    -
    573 
    -
    574 #endif // MPD_BASE_MPD_BUILDER_H_
    -
    void OnSetFrameRateForRepresentation(uint32_t representation_id, uint32_t frame_duration, uint32_t timescale)
    Definition: mpd_builder.cc:891
    +
    562 #endif // MPD_BASE_MPD_BUILDER_H_
    +
    void OnSetFrameRateForRepresentation(uint32_t representation_id, uint32_t frame_duration, uint32_t timescale)
    Definition: mpd_builder.cc:858
    RepresentationType in MPD.
    Definition: xml_node.h:139
    -
    virtual void AddNewSegment(uint64_t start_time, uint64_t duration, uint64_t size)
    +
    virtual void AddNewSegment(uint64_t start_time, uint64_t duration, uint64_t size)
    virtual void OnSetFrameRateForRepresentation(uint32_t frame_duration, uint32_t timescale)=0
    - -
    bool WriteMpdToFile(media::File *output_file)
    Definition: mpd_builder.cc:419
    -
    Representation(const MediaInfo &media_info, const MpdOptions &mpd_options, uint32_t representation_id, std::unique_ptr< RepresentationStateChangeListener > state_change_listener)
    - -
    virtual void SetSampleDuration(uint32_t sample_duration)
    -
    virtual Representation * AddRepresentation(const MediaInfo &media_info)
    Definition: mpd_builder.cc:696
    + +
    Representation(const MediaInfo &media_info, const MpdOptions &mpd_options, uint32_t representation_id, std::unique_ptr< RepresentationStateChangeListener > state_change_listener)
    + +
    virtual void SetSampleDuration(uint32_t sample_duration)
    +
    virtual Representation * AddRepresentation(const MediaInfo &media_info)
    Definition: mpd_builder.cc:663
    This class generates DASH MPDs (Media Presentation Descriptions).
    Definition: mpd_builder.h:57
    -
    uint32_t id() const
    Definition: mpd_builder.h:498
    +
    uint32_t id() const
    Definition: mpd_builder.h:486
    -
    Define an abstract file interface.
    Definition: file.h:24
    -
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    Definition: mpd_builder.cc:742
    +
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    Definition: mpd_builder.cc:709
    -
    virtual void AddTrickPlayReferenceId(uint32_t id)
    Definition: mpd_builder.cc:898
    -
    MpdBuilder(const MpdOptions &mpd_options)
    Definition: mpd_builder.cc:396
    -
    virtual void AddRole(Role role)
    Definition: mpd_builder.cc:754
    -
    void AddBaseUrl(const std::string &base_url)
    Definition: mpd_builder.cc:401
    -
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    Definition: mpd_builder.cc:748
    -
    AdaptationSet(uint32_t adaptation_set_id, const std::string &lang, const MpdOptions &mpd_options, base::AtomicSequenceNumber *representation_counter)
    Definition: mpd_builder.cc:681
    -
    xml::scoped_xml_ptr< xmlNode > GetXml()
    - -
    virtual bool ToString(std::string *output)
    Definition: mpd_builder.cc:424
    -
    void AddAdaptationSetSwitching(uint32_t adaptation_set_id)
    Definition: mpd_builder.cc:869
    -
    const std::vector< uint32_t > & adaptation_set_switching_ids() const
    Definition: mpd_builder.h:232
    -
    virtual void ForceSetSegmentAlignment(bool segment_alignment)
    Definition: mpd_builder.cc:863
    -
    static void MakePathsRelativeToMpd(const std::string &mpd_path, MediaInfo *media_info)
    Definition: mpd_builder.cc:653
    -
    xml::scoped_xml_ptr< xmlNode > GetXml()
    Definition: mpd_builder.cc:764
    -
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    - -
    virtual AdaptationSet * AddAdaptationSet(const std::string &lang)
    Definition: mpd_builder.cc:405
    +
    virtual void AddTrickPlayReferenceId(uint32_t id)
    Definition: mpd_builder.cc:865
    +
    MpdBuilder(const MpdOptions &mpd_options)
    Definition: mpd_builder.cc:373
    +
    virtual void AddRole(Role role)
    Definition: mpd_builder.cc:721
    +
    void AddBaseUrl(const std::string &base_url)
    Definition: mpd_builder.cc:378
    +
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    Definition: mpd_builder.cc:715
    +
    AdaptationSet(uint32_t adaptation_set_id, const std::string &lang, const MpdOptions &mpd_options, base::AtomicSequenceNumber *representation_counter)
    Definition: mpd_builder.cc:648
    +
    xml::scoped_xml_ptr< xmlNode > GetXml()
    + +
    virtual bool ToString(std::string *output)
    Definition: mpd_builder.cc:396
    +
    void AddAdaptationSetSwitching(uint32_t adaptation_set_id)
    Definition: mpd_builder.cc:836
    +
    const std::vector< uint32_t > & adaptation_set_switching_ids() const
    Definition: mpd_builder.h:220
    +
    virtual void ForceSetSegmentAlignment(bool segment_alignment)
    Definition: mpd_builder.cc:830
    +
    static void MakePathsRelativeToMpd(const std::string &mpd_path, MediaInfo *media_info)
    Definition: mpd_builder.cc:620
    +
    xml::scoped_xml_ptr< xmlNode > GetXml()
    Definition: mpd_builder.cc:731
    +
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    + +
    virtual AdaptationSet * AddAdaptationSet(const std::string &lang)
    Definition: mpd_builder.cc:382
    Defines Mpd Options.
    Definition: mpd_options.h:23
    -
    void OnNewSegmentForRepresentation(uint32_t representation_id, uint64_t start_time, uint64_t duration)
    Definition: mpd_builder.cc:880
    -
    void InjectClockForTesting(std::unique_ptr< base::Clock > clock)
    This is for testing.
    Definition: mpd_builder.h:95
    -
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    +
    void OnNewSegmentForRepresentation(uint32_t representation_id, uint64_t start_time, uint64_t duration)
    Definition: mpd_builder.cc:847
    +
    void InjectClockForTesting(std::unique_ptr< base::Clock > clock)
    This is for testing.
    Definition: mpd_builder.h:90
    +
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    virtual void OnNewSegmentForRepresentation(uint64_t start_time, uint64_t duration)=0
    -
    void SuppressOnce(SuppressFlag flag)
    +
    void SuppressOnce(SuppressFlag flag)
    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 ee9745b6c4..27dff1b3f9 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 8a1ec2a475..6f5a9298c0 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 7453c2b8d9..d298ff0386 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 94280401bf..d6d57a8d24 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_1VideoStreamInfo.html b/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html index 0850a0f4d4..8cf2c643c6 100644 --- a/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html +++ b/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html @@ -468,7 +468,7 @@ void set_encryption_config 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 e101873667..4a031d839c 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/dc6/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo-members.html b/docs/d6/dc6/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo-members.html index d3228f2338..3927c9dad9 100644 --- a/docs/d6/dc6/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo-members.html +++ b/docs/d6/dc6/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo-members.html @@ -100,7 +100,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 b49d879e26..3c21dcb815 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 602949d724..43ad534e6a 100644 --- a/docs/d6/dc8/mkv__writer_8cc_source.html +++ b/docs/d6/dc8/mkv__writer_8cc_source.html @@ -186,7 +186,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    int64_t WriteFromFile(File *source)
    Definition: mkv_writer.cc:56
    void ElementStartNotify(mkvmuxer::uint64 element_id, mkvmuxer::int64 position) override
    Definition: mkv_writer.cc:90
    mkvmuxer::int64 Position() const override
    Definition: mkv_writer.cc:71
    -
    static int64_t CopyFile(File *source, File *destination)
    Definition: file.cc:232
    +
    static int64_t CopyFile(File *source, File *destination)
    Definition: file.cc:282
    bool Seekable() const override
    Definition: mkv_writer.cc:86
    Status Open(const std::string &name)
    Definition: mkv_writer.cc:16
    Status Close()
    Closes the file. MUST call Open before calling any other methods.
    Definition: mkv_writer.cc:29
    @@ -194,7 +194,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 9cd8311f72..50a144038b 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 b1bb3e380d..559dddd6e6 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 b1ea1a39c0..b495bf2f2c 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 d47f2151d2..83f1054b19 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 std::shared_ptr
    diff --git a/docs/d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html b/docs/d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html index d6768a4873..cdd8fd4438 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 3792174976..dd1a5df2ac 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 c97e3e09b7..cc4fe57c25 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 8023d9af9c..fa55cc78c7 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 1c0328a0d1..289119a1ae 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 b0632f630b..4ccea86a90 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 13a28f096e..ca7e0d770e 100644 --- a/docs/d6/de9/ts__segmenter_8cc_source.html +++ b/docs/d6/de9/ts__segmenter_8cc_source.html @@ -233,7 +233,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    void SetTsWriterFileOpenedForTesting(bool value)
    Only for testing.
    Definition: ts_segmenter.cc:71
    void InjectTsWriterForTesting(std::unique_ptr< TsWriter > writer)
    Only for testing.
    Definition: ts_segmenter.cc:62
    -
    static int64_t GetFileSize(const char *file_name)
    Definition: file.cc:176
    +
    static int64_t GetFileSize(const char *file_name)
    Definition: file.cc:190
    Status FinalizeSegment(uint64_t start_timestamp, uint64_t duration)
    @@ -241,7 +241,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 d754e316db..1887604643 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 0f9f61b05e..890e971131 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 029e33feeb..ce72b40be2 100644 --- a/docs/d6/dff/classshaka_1_1media_1_1Nalu.html +++ b/docs/d6/dff/classshaka_1_1media_1_1Nalu.html @@ -247,7 +247,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 907aabb703..2e59d65007 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 60ba680824..29e483de47 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 d56d4552df..03056d5007 100644 --- a/docs/d7/d0b/muxer__listener__test__helper_8h_source.html +++ b/docs/d7/d0b/muxer__listener__test__helper_8h_source.html @@ -205,7 +205,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 01c1969038..b278976f11 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 326f6863bd..08a8f5865f 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 c374fa6ea6..fcb0fd26d0 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 969f7c9c01..4e301096d4 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 03fe90bff3..f305912112 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 baec350b9b..3cf51a8b54 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 0e7cfe7d8f..d913e0a3a5 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/d34/structshaka_1_1media_1_1EncryptionConfig.html b/docs/d7/d34/structshaka_1_1media_1_1EncryptionConfig.html index 89d08a92cc..0362409e14 100644 --- a/docs/d7/d34/structshaka_1_1media_1_1EncryptionConfig.html +++ b/docs/d7/d34/structshaka_1_1media_1_1EncryptionConfig.html @@ -128,7 +128,7 @@ std::vector
    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 8130b195b5..dc363a6355 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 bdc1375065..570d7ebe04 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 56cee79c06..3776e71a4c 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 f0e4733bd0..a2ef89cb68 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 319cd93ed8..996241d7ec 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 2a34650a9d..2d279b8172 100644 --- a/docs/d7/d54/classshaka_1_1media_1_1H26xByteToUnitStreamConverter-members.html +++ b/docs/d7/d54/classshaka_1_1media_1_1H26xByteToUnitStreamConverter-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d58/structshaka_1_1media_1_1PeriodInfo.html b/docs/d7/d58/structshaka_1_1media_1_1PeriodInfo.html index 0b2e0b5ee2..78b7272357 100644 --- a/docs/d7/d58/structshaka_1_1media_1_1PeriodInfo.html +++ b/docs/d7/d58/structshaka_1_1media_1_1PeriodInfo.html @@ -99,7 +99,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 d8a8e15827..ed3148d386 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 55a738747c..119eeb9a49 100644 --- a/docs/d7/d6d/classshaka_1_1media_1_1MediaSample.html +++ b/docs/d7/d6d/classshaka_1_1media_1_1MediaSample.html @@ -446,7 +446,7 @@ static std::shared_ptr
    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 7cee619820..ef5c27f162 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 75af8e577c..2a4325cdab 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/d79/chunking__handler_8h_source.html b/docs/d7/d79/chunking__handler_8h_source.html index 404e10ebd8..b86f0cc05d 100644 --- a/docs/d7/d79/chunking__handler_8h_source.html +++ b/docs/d7/d79/chunking__handler_8h_source.html @@ -188,7 +188,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 cd20e288b3..cebc786517 100644 --- a/docs/d7/d7a/classshaka_1_1media_1_1UdpFile.html +++ b/docs/d7/d7a/classshaka_1_1media_1_1UdpFile.html @@ -158,6 +158,8 @@ Additional Inherited Members   static bool ReadFileToString (const char *file_name, std::string *contents)   +static bool WriteFileAtomically (const char *file_name, const std::string &contents) +  static bool Copy (const char *from_file_name, const char *to_file_name)   static int64_t CopyFile (File *source, File *destination) @@ -462,7 +464,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 5f1e1e7962..be848db404 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 3efa53fd3f..7b4c63dece 100644 --- a/docs/d7/d87/video__stream__info_8h_source.html +++ b/docs/d7/d87/video__stream__info_8h_source.html @@ -210,7 +210,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 024b0a1fb0..a1d58e2712 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 3698d79b00..e789a19bd1 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 19e01597db..0894a2b107 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 5d8c5d66b9..0477229daf 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 7d4e0e4201..ca36333eca 100644 --- a/docs/d7/db0/mpd__writer_8h_source.html +++ b/docs/d7/db0/mpd__writer_8h_source.html @@ -182,7 +182,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 e1dfa6e13f..819aabf177 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 1826ede2cf..83f09fbdc4 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 a49319511a..d9ab6877eb 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 bd5178f61d..b5e21ca7c9 100644 --- a/docs/d7/dd0/mpd__notifier__util_8h_source.html +++ b/docs/d7/dd0/mpd__notifier__util_8h_source.html @@ -122,13 +122,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    42 } // namespace shaka
    43 
    44 #endif // MPD_BASE_MPD_NOTIFIER_UTIL_H_
    -
    std::string Uint8VectorToBase64(const std::vector< uint8_t > &input)
    Converts uint8 vector into base64 encoded string.
    -
    ContentType GetContentType(const MediaInfo &media_info)
    -
    bool WriteMpdToFile(const std::string &output_path, MpdBuilder *mpd_builder)
    +
    std::string Uint8VectorToBase64(const std::vector< uint8_t > &input)
    Converts uint8 vector into base64 encoded string.
    +
    ContentType GetContentType(const MediaInfo &media_info)
    +
    bool WriteMpdToFile(const std::string &output_path, MpdBuilder *mpd_builder)
    diff --git a/docs/d7/dd4/request__signer_8h_source.html b/docs/d7/dd4/request__signer_8h_source.html index 8451bc0761..119c47206a 100644 --- a/docs/d7/dd4/request__signer_8h_source.html +++ b/docs/d7/dd4/request__signer_8h_source.html @@ -180,7 +180,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 f2e68fcfbf..e1da7be9af 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 @@ -286,7 +286,7 @@ std::shared_ptr< diff --git a/docs/d7/dd6/key__source_8cc_source.html b/docs/d7/dd6/key__source_8cc_source.html index 9f152a94d1..0285f27114 100644 --- a/docs/d7/dd6/key__source_8cc_source.html +++ b/docs/d7/dd6/key__source_8cc_source.html @@ -113,7 +113,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 ebfa472da0..62a6b31a78 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 8528f1e6f0..c9b0111857 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 f726acb346..714e060981 100644 --- a/docs/d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html +++ b/docs/d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html @@ -399,7 +399,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 df456a719e..eb41323495 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 c7457e3b9c..db2ca65859 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 @@ -138,7 +138,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 c05a06794f..7cbd2eb2bf 100644 --- a/docs/d7/dee/mpd__generator_8cc_source.html +++ b/docs/d7/dee/mpd__generator_8cc_source.html @@ -231,7 +231,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 92580d35b5..6164f523da 100644 --- a/docs/d7/def/mp4__media__parser_8cc_source.html +++ b/docs/d7/def/mp4__media__parser_8cc_source.html @@ -870,7 +870,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    781 } // 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
    +
    static File * OpenWithNoBuffering(const char *file_name, const char *mode)
    Definition: file.cc:170
    bool Flush() override WARN_UNUSED_RESULT
    bool Trim(int64_t max_offset)
    bool Parse(const uint8_t *buf, int size) override WARN_UNUSED_RESULT
    @@ -886,7 +886,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/df9/byte__queue_8cc_source.html b/docs/d7/df9/byte__queue_8cc_source.html index bc2d97e438..4fb743e698 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 0da04b1e0b..7be945a6f4 100644 --- a/docs/d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html +++ b/docs/d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html @@ -233,7 +233,7 @@ void WarnIfNotMatch (i 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 1b1e716a51..0de315a476 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 bbd093057a..39042d5878 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 7c733a58b4..395d5c7fe8 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 2f8575d187..aca2a5647f 100644 --- a/docs/d8/d0d/media__sample_8cc_source.html +++ b/docs/d8/d0d/media__sample_8cc_source.html @@ -221,7 +221,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 de0f05b086..93cb8477ac 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 e0a88dcbc5..b9b463ae74 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 082b7f91bc..7dc669aa53 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 9521fff011..f118d57de7 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 34ddd479db..7f95d989b9 100644 --- a/docs/d8/d16/structshaka_1_1media_1_1MuxerOptions-members.html +++ b/docs/d8/d16/structshaka_1_1media_1_1MuxerOptions-members.html @@ -105,7 +105,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 1b5981211e..7195d083e6 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/d1c/crypto__flags_8cc_source.html b/docs/d8/d1c/crypto__flags_8cc_source.html index b4ad868fe8..f3d598c6de 100644 --- a/docs/d8/d1c/crypto__flags_8cc_source.html +++ b/docs/d8/d1c/crypto__flags_8cc_source.html @@ -105,7 +105,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 59f4ed13b8..66f200325a 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 276b7941a7..3575794f9e 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 99b7e612e7..ea7862ccaf 100644 --- a/docs/d8/d28/es__parser__h265_8h_source.html +++ b/docs/d8/d28/es__parser__h265_8h_source.html @@ -153,7 +153,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 ab08180d25..f3411ec080 100644 --- a/docs/d8/d33/webm__content__encodings__client_8h_source.html +++ b/docs/d8/d33/webm__content__encodings__client_8h_source.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d4d/aes__decryptor_8h_source.html b/docs/d8/d4d/aes__decryptor_8h_source.html index 9ac9852a3f..df77d4a01b 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/d4f/classshaka_1_1media_1_1TextSample-members.html b/docs/d8/d4f/classshaka_1_1media_1_1TextSample-members.html index ef428da762..9cbc3856e7 100644 --- a/docs/d8/d4f/classshaka_1_1media_1_1TextSample-members.html +++ b/docs/d8/d4f/classshaka_1_1media_1_1TextSample-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d53/crypto__flags_8h_source.html b/docs/d8/d53/crypto__flags_8h_source.html index a5b9929be4..c4d0f456e8 100644 --- a/docs/d8/d53/crypto__flags_8h_source.html +++ b/docs/d8/d53/crypto__flags_8h_source.html @@ -108,7 +108,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 b99d6087a5..2286ef94ec 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/d6a/classshaka_1_1media_1_1ClusterBuilder-members.html b/docs/d8/d6a/classshaka_1_1media_1_1ClusterBuilder-members.html index a09a7dcaad..ab50adc985 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 e65853a3d5..2a113ec1ec 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 4348a55d7e..a2bbac7a6f 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 baad413f2c..1aa1260edb 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 2399fe96fd..b3fd0d1c24 100644 --- a/docs/d8/d86/classshaka_1_1media_1_1WebMTracksParser.html +++ b/docs/d8/d86/classshaka_1_1media_1_1WebMTracksParser.html @@ -228,7 +228,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 e10c1f1c45..86acbea08d 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 a83d941aac..4b05aa428e 100644 --- a/docs/d8/d8e/classshaka_1_1AdaptationSet.html +++ b/docs/d8/d8e/classshaka_1_1AdaptationSet.html @@ -169,7 +169,7 @@ template<DashProfile profile>

    Detailed Description

    AdaptationSet class provides methods to add Representations and <ContentProtection> elements to the AdaptationSet element.

    -

    Definition at line 157 of file mpd_builder.h.

    +

    Definition at line 145 of file mpd_builder.h.

    Constructor & Destructor Documentation

    @@ -225,7 +225,7 @@ template<DashProfile profile> -

    Definition at line 681 of file mpd_builder.cc.

    +

    Definition at line 648 of file mpd_builder.cc.

    @@ -252,7 +252,7 @@ template<DashProfile profile>
    Returns
    the ids of the adaptation sets this adaptation set can switch to.
    -

    Definition at line 232 of file mpd_builder.h.

    +

    Definition at line 220 of file mpd_builder.h.

    @@ -277,7 +277,7 @@ template<DashProfile profile> -

    Definition at line 869 of file mpd_builder.cc.

    +

    Definition at line 836 of file mpd_builder.cc.

    @@ -310,7 +310,7 @@ template<DashProfile profile> -

    Definition at line 742 of file mpd_builder.cc.

    +

    Definition at line 709 of file mpd_builder.cc.

    @@ -344,7 +344,7 @@ template<DashProfile profile>
    Returns
    On success, returns a pointer to Representation. Otherwise returns NULL. The returned pointer is owned by the AdaptationSet instance.
    -

    Definition at line 696 of file mpd_builder.cc.

    +

    Definition at line 663 of file mpd_builder.cc.

    @@ -377,7 +377,7 @@ template<DashProfile profile> -

    Definition at line 754 of file mpd_builder.cc.

    +

    Definition at line 721 of file mpd_builder.cc.

    @@ -410,7 +410,7 @@ template<DashProfile profile> -

    Definition at line 898 of file mpd_builder.cc.

    +

    Definition at line 865 of file mpd_builder.cc.

    @@ -443,7 +443,7 @@ template<DashProfile profile> -

    Definition at line 863 of file mpd_builder.cc.

    +

    Definition at line 830 of file mpd_builder.cc.

    @@ -462,7 +462,7 @@ template<DashProfile profile>

    Makes a copy of AdaptationSet xml element with its child Representation and ContentProtection elements.

    Returns
    On success returns a non-NULL scoped_xml_ptr. Otherwise returns a NULL scoped_xml_ptr.
    -

    Definition at line 764 of file mpd_builder.cc.

    +

    Definition at line 731 of file mpd_builder.cc.

    @@ -505,7 +505,7 @@ template<DashProfile profile> -

    Definition at line 880 of file mpd_builder.cc.

    +

    Definition at line 847 of file mpd_builder.cc.

    @@ -547,7 +547,7 @@ template<DashProfile profile> -

    Definition at line 891 of file mpd_builder.cc.

    +

    Definition at line 858 of file mpd_builder.cc.

    @@ -592,7 +592,7 @@ template<DashProfile profile>
    Attention
    This might get removed once DASH IF IOP specification makes a a clear guideline on how to handle key rotation. Also to get this working with shaka-player, this method DOES NOT update the PSSH element. Instead, it removes the element regardless of the content of pssh.
    -

    Definition at line 748 of file mpd_builder.cc.

    +

    Definition at line 715 of file mpd_builder.cc.

    @@ -603,7 +603,7 @@ template<DashProfile profile> 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 54c760af4c..5ba563ccc9 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 22d9177d2d..a196dba964 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 a9b5525ae0..10e2f929ac 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 651627a01a..7a606351b6 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 bfe7e6395f..c8aaba2d65 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 5ac83d0635..893e66e0a3 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 e1dc1bd373..0f994cb2e6 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 205a34f49c..6d9377a34b 100644 --- a/docs/d8/d9a/fragmenter_8cc_source.html +++ b/docs/d8/d9a/fragmenter_8cc_source.html @@ -389,7 +389,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 a5957a62a0..811306aaed 100644 --- a/docs/d8/d9c/webm__tracks__parser_8cc_source.html +++ b/docs/d8/d9c/webm__tracks__parser_8cc_source.html @@ -441,7 +441,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 8e2e160b63..a1cafb73cb 100644 --- a/docs/d8/d9f/udp__file_8h_source.html +++ b/docs/d8/d9f/udp__file_8h_source.html @@ -153,7 +153,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 3d7b0bfb98..f3c76299a6 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 951a900c0a..f0c035164b 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 53a5e4e04c..05355b6230 100644 --- a/docs/d8/da6/classshaka_1_1media_1_1NaluReader-members.html +++ b/docs/d8/da6/classshaka_1_1media_1_1NaluReader-members.html @@ -107,7 +107,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 f68ccff477..431156608a 100644 --- a/docs/d8/daa/stream__info_8h_source.html +++ b/docs/d8/daa/stream__info_8h_source.html @@ -224,7 +224,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/daf/namespaceshaka.html b/docs/d8/daf/namespaceshaka.html index dc30aed00b..e8db46d074 100644 --- a/docs/d8/daf/namespaceshaka.html +++ b/docs/d8/daf/namespaceshaka.html @@ -371,7 +371,7 @@ const char kPsshElementNam
    Returns
    content type of the media_info.
    -

    Definition at line 51 of file mpd_notifier_util.cc.

    +

    Definition at line 32 of file mpd_notifier_util.cc.

    @@ -686,14 +686,14 @@ template<class FlagType > -

    Definition at line 20 of file mpd_notifier_util.cc.

    +

    Definition at line 16 of file mpd_notifier_util.cc.

    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 ff945da7db..dda34eb3cf 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 @@ -261,7 +261,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 6d5d1f0fc5..76195a5119 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/dc2/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo.html b/docs/d8/dc2/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo.html index 628c12ebce..186b9a469e 100644 --- a/docs/d8/dc2/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo.html +++ b/docs/d8/dc2/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo.html @@ -118,7 +118,7 @@ int frame_num = 0 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 be295d352a..dd6571980e 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 e0e75d8675..83e18bf8f8 100644 --- a/docs/d8/dca/ts__writer_8h_source.html +++ b/docs/d8/dca/ts__writer_8h_source.html @@ -164,7 +164,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 843f758e40..8a02e3141f 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 f874299d57..8309430376 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 2c4b53ab79..fdecf227de 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 a3d899731a..0e0f1cffc3 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 f4083266ad..a04ac67586 100644 --- a/docs/d8/de1/classshaka_1_1SimpleMpdNotifier.html +++ b/docs/d8/de1/classshaka_1_1SimpleMpdNotifier.html @@ -473,7 +473,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 ab5284f776..6f28df688d 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 330a14acc3..df6b970789 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/deb/retired__flags_8cc_source.html b/docs/d8/deb/retired__flags_8cc_source.html index 6965844287..7869689353 100644 --- a/docs/d8/deb/retired__flags_8cc_source.html +++ b/docs/d8/deb/retired__flags_8cc_source.html @@ -139,7 +139,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 186fa47c7b..e93fbc8e14 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 ed8215bc7d..8557c4b752 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 45c42d9cf7..66b5cba3bd 100644 --- a/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html +++ b/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html @@ -200,7 +200,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 8394eb0c3c..4b09fd9ae9 100644 --- a/docs/d8/df7/classshaka_1_1media_1_1SegmentTestBase-members.html +++ b/docs/d8/df7/classshaka_1_1media_1_1SegmentTestBase-members.html @@ -116,7 +116,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 e1b86ac5d8..0d213076a9 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 @@ -154,7 +154,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 77a700be29..1cc64cdda1 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 e40ab26c5f..f034165208 100644 --- a/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html +++ b/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html @@ -139,7 +139,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 ba47ad4e63..c31177f532 100644 --- a/docs/d9/d08/mock__mpd__builder_8h_source.html +++ b/docs/d9/d08/mock__mpd__builder_8h_source.html @@ -152,29 +152,29 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    63 } // namespace shaka
    64 
    65 #endif // MPD_BASE_MOCK_MPD_BUILDER_H_
    -
    virtual void AddNewSegment(uint64_t start_time, uint64_t duration, uint64_t size)
    +
    virtual void AddNewSegment(uint64_t start_time, uint64_t duration, uint64_t size)
    - -
    virtual void SetSampleDuration(uint32_t sample_duration)
    -
    virtual Representation * AddRepresentation(const MediaInfo &media_info)
    Definition: mpd_builder.cc:696
    + +
    virtual void SetSampleDuration(uint32_t sample_duration)
    +
    virtual Representation * AddRepresentation(const MediaInfo &media_info)
    Definition: mpd_builder.cc:663
    This class generates DASH MPDs (Media Presentation Descriptions).
    Definition: mpd_builder.h:57
    -
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    Definition: mpd_builder.cc:742
    +
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    Definition: mpd_builder.cc:709
    -
    virtual void AddTrickPlayReferenceId(uint32_t id)
    Definition: mpd_builder.cc:898
    -
    virtual void AddRole(Role role)
    Definition: mpd_builder.cc:754
    -
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    Definition: mpd_builder.cc:748
    -
    virtual bool ToString(std::string *output)
    Definition: mpd_builder.cc:424
    -
    virtual void ForceSetSegmentAlignment(bool segment_alignment)
    Definition: mpd_builder.cc:863
    -
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    - -
    virtual AdaptationSet * AddAdaptationSet(const std::string &lang)
    Definition: mpd_builder.cc:405
    +
    virtual void AddTrickPlayReferenceId(uint32_t id)
    Definition: mpd_builder.cc:865
    +
    virtual void AddRole(Role role)
    Definition: mpd_builder.cc:721
    +
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    Definition: mpd_builder.cc:715
    +
    virtual bool ToString(std::string *output)
    Definition: mpd_builder.cc:396
    +
    virtual void ForceSetSegmentAlignment(bool segment_alignment)
    Definition: mpd_builder.cc:830
    +
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    + +
    virtual AdaptationSet * AddAdaptationSet(const std::string &lang)
    Definition: mpd_builder.cc:382
    -
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    +
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    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 bf5ffd3d4e..70fdfdaa1b 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 93db7600e1..6d08fc44f9 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/d12/chunking__handler_8cc_source.html b/docs/d9/d12/chunking__handler_8cc_source.html index 0c59eb92b5..69fab57d7f 100644 --- a/docs/d9/d12/chunking__handler_8cc_source.html +++ b/docs/d9/d12/chunking__handler_8cc_source.html @@ -356,7 +356,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d13/classshaka_1_1media_1_1BufferReader.html b/docs/d9/d13/classshaka_1_1media_1_1BufferReader.html index 0f78506189..7b0bc913ae 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/d1f/structshaka_1_1media_1_1mp4_1_1MovieFragment.html b/docs/d9/d1f/structshaka_1_1media_1_1mp4_1_1MovieFragment.html index 146efab7a5..7cc43f0cf4 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 5959b9aa31..07a10dd980 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 d0c8acfdca..29513a09d5 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 @@ -434,7 +434,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 922399f637..d81c9e9064 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 5a5856a571..13d3457d99 100644 --- a/docs/d9/d3a/classshaka_1_1media_1_1File-members.html +++ b/docs/d9/d3a/classshaka_1_1media_1_1File-members.html @@ -112,11 +112,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Tell(uint64_t *position)=0shaka::media::Filepure virtual ThreadedIoFile (defined in shaka::media::File)shaka::media::Filefriend Write(const void *buffer, uint64_t length)=0shaka::media::Filepure virtual - ~File()shaka::media::Fileinlineprotectedvirtual + WriteFileAtomically(const char *file_name, const std::string &contents)shaka::media::Filestatic + ~File()shaka::media::Fileinlineprotectedvirtual diff --git a/docs/d9/d3b/webm__content__encodings_8h_source.html b/docs/d9/d3b/webm__content__encodings_8h_source.html index b01fbc8770..150110019f 100644 --- a/docs/d9/d3b/webm__content__encodings_8h_source.html +++ b/docs/d9/d3b/webm__content__encodings_8h_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html b/docs/d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html index d7d7373e84..d4b893a1c3 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 6e78cb5f61..995e6b5c83 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 dfed349f39..ef25475ab3 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 b1ee584b58..756a84c541 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 4631972f7f..96e921767e 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 2c0634feb4..a90037cd24 100644 --- a/docs/d9/d6a/structshaka_1_1media_1_1H264SliceHeader-members.html +++ b/docs/d9/d6a/structshaka_1_1media_1_1H264SliceHeader-members.html @@ -150,7 +150,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 37c6ad0dcb..3e312b2cc9 100644 --- a/docs/d9/d76/ts__muxer_8cc_source.html +++ b/docs/d9/d76/ts__muxer_8cc_source.html @@ -163,7 +163,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 24b46f4837..f07935da46 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 cafea6b66b..affaa95faf 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 5d4f6eed1b..1c59ab42ad 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 e9aeccbf54..1b64594f72 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 6b063aafa4..2a8cb52823 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 6075c92968..1a440cbbac 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/da4/stream__descriptor_8h_source.html b/docs/d9/da4/stream__descriptor_8h_source.html index f7dea6c5ad..b21657d6df 100644 --- a/docs/d9/da4/stream__descriptor_8h_source.html +++ b/docs/d9/da4/stream__descriptor_8h_source.html @@ -113,7 +113,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 1444fba2be..23524bbfb8 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 6a88c7aa91..a8b82e7c31 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 c688a535d6..35afb72f10 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 @@ -117,7 +117,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 8df42e21ab..f4ec772eba 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 a1eeb50317..b4d519442f 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 8f3323a9b5..d7e25137a3 100644 --- a/docs/d9/db9/muxer_8cc_source.html +++ b/docs/d9/db9/muxer_8cc_source.html @@ -181,7 +181,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 4f4af0ab82..2b5e2a5269 100644 --- a/docs/d9/dbd/classshaka_1_1media_1_1MemoryFile.html +++ b/docs/d9/dbd/classshaka_1_1media_1_1MemoryFile.html @@ -148,6 +148,8 @@ Static Public Member Functions   static bool ReadFileToString (const char *file_name, std::string *contents)   +static bool WriteFileAtomically (const char *file_name, const std::string &contents) +  static bool Copy (const char *from_file_name, const char *to_file_name)   static int64_t CopyFile (File *source, File *destination) @@ -485,7 +487,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 c69f71e571..0ddfa07e05 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 ac5b3fd408..3e2ab1dfea 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 2daf24e50b..7b418487de 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 3f4d801171..0eb7e63c3c 100644 --- a/docs/d9/dcc/webm__video__client_8h_source.html +++ b/docs/d9/dcc/webm__video__client_8h_source.html @@ -162,7 +162,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 5fc8ef0c7b..5875e86e39 100644 --- a/docs/d9/de3/muxer__listener__internal_8cc_source.html +++ b/docs/d9/de3/muxer__listener__internal_8cc_source.html @@ -375,7 +375,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 832b7f9769..50a068e941 100644 --- a/docs/d9/de6/classshaka_1_1media_1_1LocalFile.html +++ b/docs/d9/de6/classshaka_1_1media_1_1LocalFile.html @@ -148,6 +148,8 @@ Static Public Member Functions   static bool ReadFileToString (const char *file_name, std::string *contents)   +static bool WriteFileAtomically (const char *file_name, const std::string &contents) +  static bool Copy (const char *from_file_name, const char *to_file_name)   static int64_t CopyFile (File *source, File *destination) @@ -502,7 +504,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 ffefc26c14..a642423f08 100644 --- a/docs/d9/dea/classshaka_1_1media_1_1FixedKeySource-members.html +++ b/docs/d9/dea/classshaka_1_1media_1_1FixedKeySource-members.html @@ -105,7 +105,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 4b54f4621e..7f95d5512a 100644 --- a/docs/d9/ded/aac__audio__specific__config_8cc_source.html +++ b/docs/d9/ded/aac__audio__specific__config_8cc_source.html @@ -363,7 +363,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 b600fc2863..2c8b034f39 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 2383ccbbda..be6d7c56c7 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 1332276cdc..19b4d6cf42 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 8a8e385e4c..951a7384b6 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 fa9cc6b758..5f50dc3400 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 e25675efc4..f841dac0ad 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 ea98af1629..3031bfe7ae 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/d1d/udp__options_8cc_source.html b/docs/da/d1d/udp__options_8cc_source.html index b6f9c11bad..fcf9107cc8 100644 --- a/docs/da/d1d/udp__options_8cc_source.html +++ b/docs/da/d1d/udp__options_8cc_source.html @@ -224,7 +224,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 219ea33484..6a0a00cf7f 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 @@ -164,7 +164,7 @@ const std::shared_ptr
    diff --git a/docs/da/d23/ts__muxer_8h_source.html b/docs/da/d23/ts__muxer_8h_source.html index 33d519e5fb..358c1ceb90 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 1cc0016de0..8dbffff9f9 100644 --- a/docs/da/d24/h265__parser_8h_source.html +++ b/docs/da/d24/h265__parser_8h_source.html @@ -454,7 +454,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 8860937503..8b10e9c426 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 17bd627a20..557231a5a4 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 @@ -132,7 +132,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 dfbb29b4c9..c05a0cbeb1 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 bf6f22f75d..2db3fd0842 100644 --- a/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html +++ b/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d43/structshaka_1_1ContentProtectionElement.html b/docs/da/d43/structshaka_1_1ContentProtectionElement.html index e16d2903a7..fca8bf628f 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 11dab82b79..db9e7174fa 100644 --- a/docs/da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html +++ b/docs/da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html @@ -328,7 +328,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 5beeb15b65..3d07af792e 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 aa9ff712be..72bd18a4ff 100644 --- a/docs/da/d53/es__parser__h265_8cc_source.html +++ b/docs/da/d53/es__parser__h265_8cc_source.html @@ -265,7 +265,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 8d7c5858cd..80a6bfe18b 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 4ee9399c5b..dbfa0a3101 100644 --- a/docs/da/d5c/widevine__key__source_8h_source.html +++ b/docs/da/d5c/widevine__key__source_8h_source.html @@ -224,7 +224,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 9f8d225aac..454c61aba7 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 4853288cdb..ba1360ce83 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 @@ -119,7 +119,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 6551b5d72b..0eae78ccd5 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 fcab24d973..ff40e7d145 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 bdedf78ea5..e477bf1908 100644 --- a/docs/da/d7a/fixed__key__encryption__flags_8h_source.html +++ b/docs/da/d7a/fixed__key__encryption__flags_8h_source.html @@ -121,7 +121,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 831cd796e5..8adfa46d5e 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 @@ -105,7 +105,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 a78098ef82..1412f522a4 100644 --- a/docs/da/d88/mp4__muxer_8cc_source.html +++ b/docs/da/d88/mp4__muxer_8cc_source.html @@ -596,13 +596,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    MP4Muxer(const MuxerOptions &options)
    Create a MP4Muxer object from MuxerOptions.
    Definition: mp4_muxer.cc:109
    This structure contains the list of configuration options for Muxer.
    Definition: muxer_options.h:18
    -
    static int64_t GetFileSize(const char *file_name)
    Definition: file.cc:176
    +
    static int64_t GetFileSize(const char *file_name)
    Definition: file.cc:190
    virtual void OnMediaStart(const MuxerOptions &muxer_options, const StreamInfo &stream_info, uint32_t time_scale, ContainerType container_type)=0
    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 b5a6693285..51a3a20a09 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 2d8fbeed5a..4e7b9bb5da 100644 --- a/docs/da/d8e/container__names_8cc_source.html +++ b/docs/da/d8e/container__names_8cc_source.html @@ -1866,7 +1866,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 92455cf90d..5350df728b 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 3caf14b49f..e6931e9579 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 d893b7b170..3950c0b31d 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 d5104f7d32..c187ccfca0 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 8b2771aae7..d92feaec2a 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 384ae3fa64..7e4952e81c 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 f8dcf549f1..96f4610435 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/dc4/structshaka_1_1media_1_1mp4_1_1TrackHeader.html b/docs/da/dc4/structshaka_1_1media_1_1mp4_1_1TrackHeader.html index c0b687f549..af6d9b9641 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 858fd1d9af..09001017ab 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/playready__key__source_8cc_source.html b/docs/da/dd0/playready__key__source_8cc_source.html index 0e97d072e2..8ef9b39d14 100644 --- a/docs/da/dd0/playready__key__source_8cc_source.html +++ b/docs/da/dd0/playready__key__source_8cc_source.html @@ -440,7 +440,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 f48af42620..86d0d39d22 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 12034666f2..a49f243b12 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 6d1719224b..a564ef5175 100644 --- a/docs/da/dd1/fragmenter_8h_source.html +++ b/docs/da/dd1/fragmenter_8h_source.html @@ -207,7 +207,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 69953566ae..d88ed077d7 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 97c45c327a..07d5a7dd23 100644 --- a/docs/da/dd6/classshaka_1_1media_1_1H264ByteToUnitStreamConverter-members.html +++ b/docs/da/dd6/classshaka_1_1media_1_1H264ByteToUnitStreamConverter-members.html @@ -108,7 +108,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 c9e998495e..0091501b3a 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 56dd9897b6..38eccc2f99 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 45a79f14a2..079d723546 100644 --- a/docs/da/ddd/classshaka_1_1media_1_1WidevineKeySource.html +++ b/docs/da/ddd/classshaka_1_1media_1_1WidevineKeySource.html @@ -458,7 +458,7 @@ void  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 79f57a3563..e2308b32ab 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 ab02836cd5..ecb1aca279 100644 --- a/docs/da/de2/mock__mpd__builder_8cc_source.html +++ b/docs/da/de2/mock__mpd__builder_8cc_source.html @@ -120,7 +120,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 ce4fb7e07b..3c6a921470 100644 --- a/docs/da/de4/classshaka_1_1media_1_1WebMClusterParser.html +++ b/docs/da/de4/classshaka_1_1media_1_1WebMClusterParser.html @@ -372,7 +372,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 3e26df81af..7a439f7ded 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 98ec38fe37..7e89a68428 100644 --- a/docs/da/de8/classshaka_1_1media_1_1AudioStreamInfo-members.html +++ b/docs/da/de8/classshaka_1_1media_1_1AudioStreamInfo-members.html @@ -133,7 +133,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 34d9b18d71..6ffad55175 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 6d25b7cb45..bbebd8dd32 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 baeebe05ee..ac0b3476ed 100644 --- a/docs/da/df4/aes__decryptor_8cc_source.html +++ b/docs/da/df4/aes__decryptor_8cc_source.html @@ -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 3931e8f8b2..ee04e3a7e6 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 e987ecefa5..96bb08ab6d 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/da/dfd/classshaka_1_1media_1_1MediaHandler.html b/docs/da/dfd/classshaka_1_1media_1_1MediaHandler.html index b72f9029b7..417b78edc9 100644 --- a/docs/da/dfd/classshaka_1_1media_1_1MediaHandler.html +++ b/docs/da/dfd/classshaka_1_1media_1_1MediaHandler.html @@ -304,7 +304,7 @@ std::pair< std::shared_ptr
    diff --git a/docs/db/d02/structshaka_1_1media_1_1ChunkingOptions.html b/docs/db/d02/structshaka_1_1media_1_1ChunkingOptions.html index 1b5c5467e4..ee5ded9eca 100644 --- a/docs/db/d02/structshaka_1_1media_1_1ChunkingOptions.html +++ b/docs/db/d02/structshaka_1_1media_1_1ChunkingOptions.html @@ -162,7 +162,7 @@ double  diff --git a/docs/db/d05/structshaka_1_1media_1_1H265SliceHeader.html b/docs/db/d05/structshaka_1_1media_1_1H265SliceHeader.html index a60451a165..7cbc9875fa 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/d0b/webvtt__sample__converter_8h_source.html b/docs/db/d0b/webvtt__sample__converter_8h_source.html index 81e3a94085..b4685e3a90 100644 --- a/docs/db/d0b/webvtt__sample__converter_8h_source.html +++ b/docs/db/d0b/webvtt__sample__converter_8h_source.html @@ -173,7 +173,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 2cf17f2e41..609c7b327c 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 8cf5f8f9a9..18bd01d341 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 d84f567fd7..f120298d8a 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/d1f/classshaka_1_1media_1_1TextSample.html b/docs/db/d1f/classshaka_1_1media_1_1TextSample.html index 4dbbd06473..24ea6d5e94 100644 --- a/docs/db/d1f/classshaka_1_1media_1_1TextSample.html +++ b/docs/db/d1f/classshaka_1_1media_1_1TextSample.html @@ -137,7 +137,7 @@ void AppendPayload (co 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 0d7a2e2ed8..c0442a1e18 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 3be4407ce5..7bdfb8caab 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 @@ -232,7 +232,7 @@ std::pair< std::shared_ptr
    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 7be7fc3907..04af9983e0 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 @@ -163,7 +163,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 b717d2dd05..fa0709e879 100644 --- a/docs/db/d31/track__run__iterator_8cc_source.html +++ b/docs/db/d31/track__run__iterator_8cc_source.html @@ -775,7 +775,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 b269641a1f..ac3ffdb99b 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 @@ -104,7 +104,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 b74d6a7993..d857f0be12 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 577f5d9d1f..6929a79b70 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 7c2dce33be..b1b04e8857 100644 --- a/docs/db/d4b/classshaka_1_1MockAdaptationSet.html +++ b/docs/db/d4b/classshaka_1_1MockAdaptationSet.html @@ -182,7 +182,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 6fb35573cc..3ba666c4b3 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 1032ad9e8e..fff83aee50 100644 --- a/docs/db/d51/mp2t__media__parser_8h_source.html +++ b/docs/db/d51/mp2t__media__parser_8h_source.html @@ -191,7 +191,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 26e728e100..1cd5101add 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 @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d59/media__handler__test__base_8h_source.html b/docs/db/d59/media__handler__test__base_8h_source.html index 78f0afd5a1..b75dcdb417 100644 --- a/docs/db/d59/media__handler__test__base_8h_source.html +++ b/docs/db/d59/media__handler__test__base_8h_source.html @@ -259,7 +259,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 733ceb4f99..0635171a86 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 abdb0b28ec..89b8ed075b 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 04d2214e50..5d6c39f04d 100644 --- a/docs/db/d64/webvtt__media__parser_8h_source.html +++ b/docs/db/d64/webvtt__media__parser_8h_source.html @@ -180,7 +180,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 4d80b82af3..1ccc71305c 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/d66/udp__file_8cc_source.html b/docs/db/d66/udp__file_8cc_source.html index 66c2dce29f..5575c0cf57 100644 --- a/docs/db/d66/udp__file_8cc_source.html +++ b/docs/db/d66/udp__file_8cc_source.html @@ -343,7 +343,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 34db114d8a..abae4a0e71 100644 --- a/docs/db/d71/http__key__fetcher_8h_source.html +++ b/docs/db/d71/http__key__fetcher_8h_source.html @@ -166,7 +166,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 782075ea6e..a31c73fa7b 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 cd1bcb6160..89a5243b26 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 @@ -131,7 +131,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 5caf675fa3..e64af5d81b 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 3988511e35..94047ceb07 100644 --- a/docs/db/d7e/muxer__options_8cc_source.html +++ b/docs/db/d7e/muxer__options_8cc_source.html @@ -106,7 +106,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 cf299eff2d..983a17675a 100644 --- a/docs/db/d84/classshaka_1_1media_1_1AACAudioSpecificConfig-members.html +++ b/docs/db/d84/classshaka_1_1media_1_1AACAudioSpecificConfig-members.html @@ -150,7 +150,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 e9bd380b5c..76c6b1241e 100644 --- a/docs/db/d86/classshaka_1_1media_1_1NaluReader.html +++ b/docs/db/d86/classshaka_1_1media_1_1NaluReader.html @@ -350,7 +350,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 19de826ccf..619b87dcbf 100644 --- a/docs/db/d8f/mp4__muxer_8h_source.html +++ b/docs/db/d8f/mp4__muxer_8h_source.html @@ -178,7 +178,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 4387890fdd..545ae6dfa4 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 0496a37299..215b919419 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 @@ -312,7 +312,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 0da02bb258..b49ecec235 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 d886297f4c..22e36a4082 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 0abae82515..8bcf4cf72b 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 a1c653369c..f9648e7327 100644 --- a/docs/db/da6/memory__file_8h_source.html +++ b/docs/db/da6/memory__file_8h_source.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/da9/classshaka_1_1media_1_1WebVttSampleConverter-members.html b/docs/db/da9/classshaka_1_1media_1_1WebVttSampleConverter-members.html index 20cd116bc7..dee629ab71 100644 --- a/docs/db/da9/classshaka_1_1media_1_1WebVttSampleConverter-members.html +++ b/docs/db/da9/classshaka_1_1media_1_1WebVttSampleConverter-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html b/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html index abe1728c3b..ebbc22095f 100644 --- a/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html +++ b/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html @@ -304,7 +304,7 @@ void set_encryption_config diff --git a/docs/db/dae/classshaka_1_1media_1_1WebMInfoParser.html b/docs/db/dae/classshaka_1_1media_1_1WebMInfoParser.html index 52cc5f09e8..f94c42bfee 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 aada57461e..f5982424b8 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 28ba31bf34..e8a42719a1 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 9461392b10..242a77e6b8 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 50b76a09f2..830d633fc2 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 995e9f04c9..c1c67aad2f 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/dcd/classshaka_1_1MpdWriter.html b/docs/db/dcd/classshaka_1_1MpdWriter.html index 4c3e97d527..d7feca212a 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 315e6953fb..6766bc4f76 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 22db184517..36e1dbd1e2 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 3b179a748f..46766e1365 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 ba902ed7c5..42947f71af 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 fdd6058894..009d6ed8a2 100644 --- a/docs/db/dde/h265__parser_8cc_source.html +++ b/docs/db/dde/h265__parser_8cc_source.html @@ -1213,7 +1213,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dea/classshaka_1_1media_1_1TrickPlayHandler.html b/docs/db/dea/classshaka_1_1media_1_1TrickPlayHandler.html index 04c5c136d3..893b187b40 100644 --- a/docs/db/dea/classshaka_1_1media_1_1TrickPlayHandler.html +++ b/docs/db/dea/classshaka_1_1media_1_1TrickPlayHandler.html @@ -270,7 +270,7 @@ class TrickPlayHandlerTest diff --git a/docs/db/dec/audio__timestamp__helper_8cc_source.html b/docs/db/dec/audio__timestamp__helper_8cc_source.html index 49e66a9470..7bb80b9e27 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 ac3cb0ad3d..d9eed51519 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 138235b398..acd881aaa7 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 9857226e29..ba718bd719 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 a418f77fe7..67723c5f5c 100644 --- a/docs/db/df6/muxer_8h_source.html +++ b/docs/db/df6/muxer_8h_source.html @@ -188,7 +188,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 28036d6ff8..bc9d0bf73a 100644 --- a/docs/db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html +++ b/docs/db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html @@ -233,7 +233,7 @@ void WarnIfNotMatch (i diff --git a/docs/db/dfb/mpd__utils_8cc_source.html b/docs/db/dfb/mpd__utils_8cc_source.html index 581be21cfd..910ea097bc 100644 --- a/docs/db/dfb/mpd__utils_8cc_source.html +++ b/docs/db/dfb/mpd__utils_8cc_source.html @@ -454,15 +454,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    365 
    366 
    367 } // namespace shaka
    - +
    void AddContentProtectionElements(const MediaInfo &media_info, Representation *parent)
    Definition: mpd_utils.cc:356
    bool HexToUUID(const std::string &data, std::string *uuid_format)
    Definition: mpd_utils.cc:191
    std::string DoubleToString(double value)
    Definition: mpd_utils.cc:184
    - + 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 0e58194757..30c650dafc 100644 --- a/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html +++ b/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html @@ -280,7 +280,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 068e79f31d..18f3686bcf 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 3bb83220d1..eebf5dee35 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 e992494566..ef76634da0 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 97e65d49f8..1df68e987c 100644 --- a/docs/dc/d06/classshaka_1_1media_1_1StreamInfo-members.html +++ b/docs/dc/d06/classshaka_1_1media_1_1StreamInfo-members.html @@ -120,7 +120,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 72ec1f93a2..3fd4318305 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 49e25d3272..b64d5f4cc7 100644 --- a/docs/dc/d16/classshaka_1_1media_1_1SeekHead.html +++ b/docs/dc/d16/classshaka_1_1media_1_1SeekHead.html @@ -149,7 +149,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 016b9d9ea3..88a0fa0d69 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 @@ -257,7 +257,7 @@ std::shared_ptr< 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 b093c14e12..4b7eb24786 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 1e6e39c272..285e90bc00 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 be5c6f425a..bf0a160508 100644 --- a/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html +++ b/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html @@ -406,26 +406,26 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    bool NotifyNewSegment(uint32_t id, uint64_t start_time, uint64_t duration, uint64_t size) override
    bool NotifyEncryptionUpdate(uint32_t container_id, const std::string &drm_uuid, const std::vector< uint8_t > &new_key_id, const std::vector< uint8_t > &new_pssh) override
    - -
    virtual Representation * AddRepresentation(const MediaInfo &media_info)
    Definition: mpd_builder.cc:696
    -
    uint32_t id() const
    Definition: mpd_builder.h:498
    + +
    virtual Representation * AddRepresentation(const MediaInfo &media_info)
    Definition: mpd_builder.cc:663
    +
    uint32_t id() const
    Definition: mpd_builder.h:486
    bool NotifySampleDuration(uint32_t container_id, uint32_t sample_duration) override
    void AddContentProtectionElements(const MediaInfo &media_info, Representation *parent)
    Definition: mpd_utils.cc:356
    -
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    Definition: mpd_builder.cc:748
    -
    std::string Uint8VectorToBase64(const std::vector< uint8_t > &input)
    Converts uint8 vector into base64 encoded string.
    -
    virtual void ForceSetSegmentAlignment(bool segment_alignment)
    Definition: mpd_builder.cc:863
    +
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    Definition: mpd_builder.cc:715
    +
    std::string Uint8VectorToBase64(const std::vector< uint8_t > &input)
    Converts uint8 vector into base64 encoded string.
    +
    virtual void ForceSetSegmentAlignment(bool segment_alignment)
    Definition: mpd_builder.cc:830
    bool AddContentProtectionElement(uint32_t id, const ContentProtectionElement &content_protection_element) override
    -
    static void MakePathsRelativeToMpd(const std::string &mpd_path, MediaInfo *media_info)
    Definition: mpd_builder.cc:653
    - -
    ContentType GetContentType(const MediaInfo &media_info)
    +
    static void MakePathsRelativeToMpd(const std::string &mpd_path, MediaInfo *media_info)
    Definition: mpd_builder.cc:620
    + +
    ContentType GetContentType(const MediaInfo &media_info)
    -
    bool WriteMpdToFile(const std::string &output_path, MpdBuilder *mpd_builder)
    +
    bool WriteMpdToFile(const std::string &output_path, MpdBuilder *mpd_builder)
    bool NotifyNewContainer(const MediaInfo &media_info, uint32_t *id) override
    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 76aa46ffde..b1e81094c8 100644 --- a/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html +++ b/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html @@ -165,7 +165,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 ce392bbf20..474423a09f 100644 --- a/docs/dc/d3c/webm__cluster__parser_8h_source.html +++ b/docs/dc/d3c/webm__cluster__parser_8h_source.html @@ -304,7 +304,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d3f/key__source_8h_source.html b/docs/dc/d3f/key__source_8h_source.html index 5b08bd1ea4..a459e7175e 100644 --- a/docs/dc/d3f/key__source_8h_source.html +++ b/docs/dc/d3f/key__source_8h_source.html @@ -158,7 +158,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 24ce295721..3ec7874000 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 8c49341af0..2eeaf54a81 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 5c91836a97..3999933c04 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 63eecf7e9d..db612bed6b 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 88c2d3ae82..087beb8b8f 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 @@ -239,7 +239,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 74199c3b2c..db47f3aca9 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 f55d011e52..bb7f25abac 100644 --- a/docs/dc/d53/webm_2segmenter_8cc_source.html +++ b/docs/dc/d53/webm_2segmenter_8cc_source.html @@ -537,7 +537,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 3661235c21..6c4836ba8d 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 1778d23139..3e537fac17 100644 --- a/docs/dc/d58/webm__media__parser_8h_source.html +++ b/docs/dc/d58/webm__media__parser_8h_source.html @@ -178,7 +178,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 d2f534411b..8f82cfc33b 100644 --- a/docs/dc/d5c/classshaka_1_1MockMpdNotifier.html +++ b/docs/dc/d5c/classshaka_1_1MockMpdNotifier.html @@ -162,7 +162,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 b45dc685f4..03466b4284 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 1af4462c32..4854c0997e 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 e30ee3b31d..746f30def8 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 74c2485226..a849d5d733 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 052a8ecfca..725b8e291c 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 c547f8c0ec..0138e98a6c 100644 --- a/docs/dc/d7b/h264__parser_8cc_source.html +++ b/docs/dc/d7b/h264__parser_8cc_source.html @@ -1256,7 +1256,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 6567d4f238..f63c3e790f 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 a114e0dba9..860fd51454 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 73fe89560c..80882e1cb4 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 b6110a0e5e..f70c6ea061 100644 --- a/docs/dc/da1/classshaka_1_1MpdBuilder.html +++ b/docs/dc/da1/classshaka_1_1MpdBuilder.html @@ -118,8 +118,6 @@ Public Member Functions   virtual AdaptationSetAddAdaptationSet (const std::string &lang)   -bool WriteMpdToFile (media::File *output_file) -  virtual bool ToString (std::string *output)   @@ -176,7 +174,7 @@ template<DashProfile profile> -

    Definition at line 396 of file mpd_builder.cc.

    +

    Definition at line 373 of file mpd_builder.cc.

    @@ -211,7 +209,7 @@ template<DashProfile profile>
    Returns
    The new adaptation set, which is owned by this instance.
    -

    Definition at line 405 of file mpd_builder.cc.

    +

    Definition at line 382 of file mpd_builder.cc.

    @@ -236,7 +234,7 @@ template<DashProfile profile> -

    Definition at line 401 of file mpd_builder.cc.

    +

    Definition at line 378 of file mpd_builder.cc.

    @@ -280,7 +278,7 @@ template<DashProfile profile> -

    Definition at line 653 of file mpd_builder.cc.

    +

    Definition at line 620 of file mpd_builder.cc.

    @@ -314,33 +312,7 @@ template<DashProfile profile>
    Returns
    true on success, false otherwise.
    -

    Definition at line 424 of file mpd_builder.cc.

    - - - - -
    -
    - - - - - - - - -
    bool shaka::MpdBuilder::WriteMpdToFile (media::Fileoutput_file)
    -
    -

    Write the MPD to specified file.

    -
    Parameters
    - - -
    [out]output_fileis MPD destination. output_file will be flushed but not closed.
    -
    -
    -
    Returns
    true on success, false otherwise.
    - -

    Definition at line 419 of file mpd_builder.cc.

    +

    Definition at line 396 of file mpd_builder.cc.

    @@ -351,7 +323,7 @@ template<DashProfile profile> diff --git a/docs/dc/da6/classshaka_1_1media_1_1ContentEncoding.html b/docs/dc/da6/classshaka_1_1media_1_1ContentEncoding.html index 9194aaf64d..310e7961c9 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 353d532057..cb2d8b5b66 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 06d3f2c709..8602653b71 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 9d2baadeed..f63c1093fd 100644 --- a/docs/dc/dc1/classshaka_1_1xml_1_1RepresentationXmlNode-members.html +++ b/docs/dc/dc1/classshaka_1_1xml_1_1RepresentationXmlNode-members.html @@ -119,7 +119,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 2407b4ad87..82e74e0e2f 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 7f1942f689..9618af6409 100644 --- a/docs/dc/dd9/rsa__key_8cc_source.html +++ b/docs/dc/dd9/rsa__key_8cc_source.html @@ -340,7 +340,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 5247dbc0c2..c8d068a89a 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/de1/structshaka_1_1SegmentInfo.html b/docs/dc/de1/structshaka_1_1SegmentInfo.html index 701df5225c..a5aca3beef 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 6f6421734c..33f0e60404 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 @@ -112,7 +112,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 ebcd00892c..19da11da2d 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 @@ -139,7 +139,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 7c095c6a96..bac557c531 100644 --- a/docs/dc/dec/ts__section__pmt_8cc_source.html +++ b/docs/dc/dec/ts__section__pmt_8cc_source.html @@ -208,7 +208,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 0f0e6e8fb7..aec8290810 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 9aaca703b1..be2aa0b10e 100644 --- a/docs/dc/df2/classshaka_1_1media_1_1WebVttMediaParser.html +++ b/docs/dc/df2/classshaka_1_1media_1_1WebVttMediaParser.html @@ -261,7 +261,7 @@ std::shared_ptr< 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 700ef89f91..4c91627f65 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 @@ -129,7 +129,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 8c734059a5..d85cc65f6f 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 97f800ae56..2a8b745ee8 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/d05/encryption__config_8h_source.html b/docs/dd/d05/encryption__config_8h_source.html index 9266da5326..6753f012e8 100644 --- a/docs/dd/d05/encryption__config_8h_source.html +++ b/docs/dd/d05/encryption__config_8h_source.html @@ -120,7 +120,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 789bcacdc4..c231b65237 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 00e8576d2d..8f850799c6 100644 --- a/docs/dd/d11/mpd__builder_8cc_source.html +++ b/docs/dd/d11/mpd__builder_8cc_source.html @@ -275,1278 +275,1243 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    186  return (timeshift_limit - segment_info.start_time) / segment_info.duration;
    187 }
    188 
    -
    189 // Overload this function to support different types of |output|.
    -
    190 // Note that this could be done by call MpdBuilder::ToString() and use the
    -
    191 // result to write to a file, it requires an extra copy.
    -
    192 bool WriteXmlCharArrayToOutput(xmlChar* doc,
    -
    193  int doc_size,
    -
    194  std::string* output) {
    -
    195  DCHECK(doc);
    -
    196  DCHECK(output);
    -
    197  output->assign(doc, doc + doc_size);
    -
    198  return true;
    -
    199 }
    -
    200 
    -
    201 bool WriteXmlCharArrayToOutput(xmlChar* doc,
    -
    202  int doc_size,
    -
    203  media::File* output) {
    -
    204  DCHECK(doc);
    -
    205  DCHECK(output);
    -
    206  if (output->Write(doc, doc_size) < doc_size)
    -
    207  return false;
    -
    208 
    -
    209  return output->Flush();
    -
    210 }
    -
    211 
    -
    212 std::string MakePathRelative(const std::string& path,
    -
    213  const std::string& mpd_dir) {
    -
    214  return (path.find(mpd_dir) == 0) ? path.substr(mpd_dir.size()) : path;
    +
    189 std::string MakePathRelative(const std::string& path,
    +
    190  const std::string& mpd_dir) {
    +
    191  return (path.find(mpd_dir) == 0) ? path.substr(mpd_dir.size()) : path;
    +
    192 }
    +
    193 
    +
    194 // Check whether the video info has width and height.
    +
    195 // DASH IOP also requires several other fields for video representations, namely
    +
    196 // width, height, framerate, and sar.
    +
    197 bool HasRequiredVideoFields(const MediaInfo_VideoInfo& video_info) {
    +
    198  if (!video_info.has_height() || !video_info.has_width()) {
    +
    199  LOG(ERROR)
    +
    200  << "Width and height are required fields for generating a valid MPD.";
    +
    201  return false;
    +
    202  }
    +
    203  // These fields are not required for a valid MPD, but required for DASH IOP
    +
    204  // compliant MPD. MpdBuilder can keep generating MPDs without these fields.
    +
    205  LOG_IF(WARNING, !video_info.has_time_scale())
    +
    206  << "Video info does not contain timescale required for "
    +
    207  "calculating framerate. @frameRate is required for DASH IOP.";
    +
    208  LOG_IF(WARNING, !video_info.has_pixel_width())
    +
    209  << "Video info does not contain pixel_width to calculate the sample "
    +
    210  "aspect ratio required for DASH IOP.";
    +
    211  LOG_IF(WARNING, !video_info.has_pixel_height())
    +
    212  << "Video info does not contain pixel_height to calculate the sample "
    +
    213  "aspect ratio required for DASH IOP.";
    +
    214  return true;
    215 }
    216 
    -
    217 // Check whether the video info has width and height.
    -
    218 // DASH IOP also requires several other fields for video representations, namely
    -
    219 // width, height, framerate, and sar.
    -
    220 bool HasRequiredVideoFields(const MediaInfo_VideoInfo& video_info) {
    -
    221  if (!video_info.has_height() || !video_info.has_width()) {
    -
    222  LOG(ERROR)
    -
    223  << "Width and height are required fields for generating a valid MPD.";
    -
    224  return false;
    -
    225  }
    -
    226  // These fields are not required for a valid MPD, but required for DASH IOP
    -
    227  // compliant MPD. MpdBuilder can keep generating MPDs without these fields.
    -
    228  LOG_IF(WARNING, !video_info.has_time_scale())
    -
    229  << "Video info does not contain timescale required for "
    -
    230  "calculating framerate. @frameRate is required for DASH IOP.";
    -
    231  LOG_IF(WARNING, !video_info.has_pixel_width())
    -
    232  << "Video info does not contain pixel_width to calculate the sample "
    -
    233  "aspect ratio required for DASH IOP.";
    -
    234  LOG_IF(WARNING, !video_info.has_pixel_height())
    -
    235  << "Video info does not contain pixel_height to calculate the sample "
    -
    236  "aspect ratio required for DASH IOP.";
    -
    237  return true;
    -
    238 }
    -
    239 
    -
    240 // Returns the picture aspect ratio string e.g. "16:9", "4:3".
    -
    241 // "Reducing the quotient to minimal form" does not work well in practice as
    -
    242 // there may be some rounding performed in the input, e.g. the resolution of
    -
    243 // 480p is 854:480 for 16:9 aspect ratio, can only be reduced to 427:240.
    -
    244 // The algorithm finds out the pair of integers, num and den, where num / den is
    -
    245 // the closest ratio to scaled_width / scaled_height, by looping den through
    -
    246 // common values.
    -
    247 std::string GetPictureAspectRatio(uint32_t width,
    -
    248  uint32_t height,
    -
    249  uint32_t pixel_width,
    -
    250  uint32_t pixel_height) {
    -
    251  const uint32_t scaled_width = pixel_width * width;
    -
    252  const uint32_t scaled_height = pixel_height * height;
    -
    253  const double par = static_cast<double>(scaled_width) / scaled_height;
    -
    254 
    -
    255  // Typical aspect ratios have par_y less than or equal to 19:
    -
    256  // https://en.wikipedia.org/wiki/List_of_common_resolutions
    -
    257  const uint32_t kLargestPossibleParY = 19;
    -
    258 
    -
    259  uint32_t par_num = 0;
    -
    260  uint32_t par_den = 0;
    -
    261  double min_error = 1.0;
    -
    262  for (uint32_t den = 1; den <= kLargestPossibleParY; ++den) {
    -
    263  uint32_t num = par * den + 0.5;
    -
    264  double error = fabs(par - static_cast<double>(num) / den);
    -
    265  if (error < min_error) {
    -
    266  min_error = error;
    -
    267  par_num = num;
    -
    268  par_den = den;
    -
    269  if (error == 0) break;
    -
    270  }
    -
    271  }
    -
    272  VLOG(2) << "width*pix_width : height*pixel_height (" << scaled_width << ":"
    -
    273  << scaled_height << ") reduced to " << par_num << ":" << par_den
    -
    274  << " with error " << min_error << ".";
    -
    275 
    -
    276  return base::IntToString(par_num) + ":" + base::IntToString(par_den);
    -
    277 }
    -
    278 
    -
    279 // Adds an entry to picture_aspect_ratio if the size of picture_aspect_ratio is
    -
    280 // less than 2 and video_info has both pixel width and pixel height.
    -
    281 void AddPictureAspectRatio(
    -
    282  const MediaInfo::VideoInfo& video_info,
    -
    283  std::set<std::string>* picture_aspect_ratio) {
    -
    284  // If there are more than one entries in picture_aspect_ratio, the @par
    -
    285  // attribute cannot be set, so skip.
    -
    286  if (picture_aspect_ratio->size() > 1)
    -
    287  return;
    -
    288 
    -
    289  if (video_info.width() == 0 || video_info.height() == 0 ||
    -
    290  video_info.pixel_width() == 0 || video_info.pixel_height() == 0) {
    -
    291  // If there is even one Representation without a @sar attribute, @par cannot
    -
    292  // be calculated.
    -
    293  // Just populate the set with at least 2 bogus strings so that further call
    -
    294  // to this function will bail out immediately.
    -
    295  picture_aspect_ratio->insert("bogus");
    -
    296  picture_aspect_ratio->insert("entries");
    -
    297  return;
    -
    298  }
    -
    299 
    -
    300  const std::string par = GetPictureAspectRatio(
    -
    301  video_info.width(), video_info.height(),
    -
    302  video_info.pixel_width(), video_info.pixel_height());
    -
    303  DVLOG(1) << "Setting par as: " << par
    -
    304  << " for video with width: " << video_info.width()
    -
    305  << " height: " << video_info.height()
    -
    306  << " pixel_width: " << video_info.pixel_width() << " pixel_height; "
    -
    307  << video_info.pixel_height();
    -
    308  picture_aspect_ratio->insert(par);
    -
    309 }
    -
    310 
    -
    311 std::string RoleToText(AdaptationSet::Role role) {
    -
    312  // Using switch so that the compiler can detect whether there is a case that's
    -
    313  // not being handled.
    -
    314  switch (role) {
    -
    315  case AdaptationSet::kRoleCaption:
    -
    316  return "caption";
    -
    317  case AdaptationSet::kRoleSubtitle:
    -
    318  return "subtitle";
    -
    319  case AdaptationSet::kRoleMain:
    -
    320  return "main";
    -
    321  case AdaptationSet::kRoleAlternate:
    -
    322  return "alternate";
    -
    323  case AdaptationSet::kRoleSupplementary:
    -
    324  return "supplementary";
    -
    325  case AdaptationSet::kRoleCommentary:
    -
    326  return "commentary";
    -
    327  case AdaptationSet::kRoleDub:
    -
    328  return "dub";
    -
    329  default:
    -
    330  break;
    +
    217 // Returns the picture aspect ratio string e.g. "16:9", "4:3".
    +
    218 // "Reducing the quotient to minimal form" does not work well in practice as
    +
    219 // there may be some rounding performed in the input, e.g. the resolution of
    +
    220 // 480p is 854:480 for 16:9 aspect ratio, can only be reduced to 427:240.
    +
    221 // The algorithm finds out the pair of integers, num and den, where num / den is
    +
    222 // the closest ratio to scaled_width / scaled_height, by looping den through
    +
    223 // common values.
    +
    224 std::string GetPictureAspectRatio(uint32_t width,
    +
    225  uint32_t height,
    +
    226  uint32_t pixel_width,
    +
    227  uint32_t pixel_height) {
    +
    228  const uint32_t scaled_width = pixel_width * width;
    +
    229  const uint32_t scaled_height = pixel_height * height;
    +
    230  const double par = static_cast<double>(scaled_width) / scaled_height;
    +
    231 
    +
    232  // Typical aspect ratios have par_y less than or equal to 19:
    +
    233  // https://en.wikipedia.org/wiki/List_of_common_resolutions
    +
    234  const uint32_t kLargestPossibleParY = 19;
    +
    235 
    +
    236  uint32_t par_num = 0;
    +
    237  uint32_t par_den = 0;
    +
    238  double min_error = 1.0;
    +
    239  for (uint32_t den = 1; den <= kLargestPossibleParY; ++den) {
    +
    240  uint32_t num = par * den + 0.5;
    +
    241  double error = fabs(par - static_cast<double>(num) / den);
    +
    242  if (error < min_error) {
    +
    243  min_error = error;
    +
    244  par_num = num;
    +
    245  par_den = den;
    +
    246  if (error == 0) break;
    +
    247  }
    +
    248  }
    +
    249  VLOG(2) << "width*pix_width : height*pixel_height (" << scaled_width << ":"
    +
    250  << scaled_height << ") reduced to " << par_num << ":" << par_den
    +
    251  << " with error " << min_error << ".";
    +
    252 
    +
    253  return base::IntToString(par_num) + ":" + base::IntToString(par_den);
    +
    254 }
    +
    255 
    +
    256 // Adds an entry to picture_aspect_ratio if the size of picture_aspect_ratio is
    +
    257 // less than 2 and video_info has both pixel width and pixel height.
    +
    258 void AddPictureAspectRatio(
    +
    259  const MediaInfo::VideoInfo& video_info,
    +
    260  std::set<std::string>* picture_aspect_ratio) {
    +
    261  // If there are more than one entries in picture_aspect_ratio, the @par
    +
    262  // attribute cannot be set, so skip.
    +
    263  if (picture_aspect_ratio->size() > 1)
    +
    264  return;
    +
    265 
    +
    266  if (video_info.width() == 0 || video_info.height() == 0 ||
    +
    267  video_info.pixel_width() == 0 || video_info.pixel_height() == 0) {
    +
    268  // If there is even one Representation without a @sar attribute, @par cannot
    +
    269  // be calculated.
    +
    270  // Just populate the set with at least 2 bogus strings so that further call
    +
    271  // to this function will bail out immediately.
    +
    272  picture_aspect_ratio->insert("bogus");
    +
    273  picture_aspect_ratio->insert("entries");
    +
    274  return;
    +
    275  }
    +
    276 
    +
    277  const std::string par = GetPictureAspectRatio(
    +
    278  video_info.width(), video_info.height(),
    +
    279  video_info.pixel_width(), video_info.pixel_height());
    +
    280  DVLOG(1) << "Setting par as: " << par
    +
    281  << " for video with width: " << video_info.width()
    +
    282  << " height: " << video_info.height()
    +
    283  << " pixel_width: " << video_info.pixel_width() << " pixel_height; "
    +
    284  << video_info.pixel_height();
    +
    285  picture_aspect_ratio->insert(par);
    +
    286 }
    +
    287 
    +
    288 std::string RoleToText(AdaptationSet::Role role) {
    +
    289  // Using switch so that the compiler can detect whether there is a case that's
    +
    290  // not being handled.
    +
    291  switch (role) {
    +
    292  case AdaptationSet::kRoleCaption:
    +
    293  return "caption";
    +
    294  case AdaptationSet::kRoleSubtitle:
    +
    295  return "subtitle";
    +
    296  case AdaptationSet::kRoleMain:
    +
    297  return "main";
    +
    298  case AdaptationSet::kRoleAlternate:
    +
    299  return "alternate";
    +
    300  case AdaptationSet::kRoleSupplementary:
    +
    301  return "supplementary";
    +
    302  case AdaptationSet::kRoleCommentary:
    +
    303  return "commentary";
    +
    304  case AdaptationSet::kRoleDub:
    +
    305  return "dub";
    +
    306  default:
    +
    307  break;
    +
    308  }
    +
    309 
    +
    310  NOTREACHED();
    +
    311  return "";
    +
    312 }
    +
    313 
    +
    314 // Spooky static initialization/cleanup of libxml.
    +
    315 class LibXmlInitializer {
    +
    316  public:
    +
    317  LibXmlInitializer() : initialized_(false) {
    +
    318  base::AutoLock lock(lock_);
    +
    319  if (!initialized_) {
    +
    320  xmlInitParser();
    +
    321  initialized_ = true;
    +
    322  }
    +
    323  }
    +
    324 
    +
    325  ~LibXmlInitializer() {
    +
    326  base::AutoLock lock(lock_);
    +
    327  if (initialized_) {
    +
    328  xmlCleanupParser();
    +
    329  initialized_ = false;
    +
    330  }
    331  }
    332 
    -
    333  NOTREACHED();
    -
    334  return "";
    -
    335 }
    +
    333  private:
    +
    334  base::Lock lock_;
    +
    335  bool initialized_;
    336 
    -
    337 // Spooky static initialization/cleanup of libxml.
    -
    338 class LibXmlInitializer {
    -
    339  public:
    -
    340  LibXmlInitializer() : initialized_(false) {
    -
    341  base::AutoLock lock(lock_);
    -
    342  if (!initialized_) {
    -
    343  xmlInitParser();
    -
    344  initialized_ = true;
    -
    345  }
    -
    346  }
    -
    347 
    -
    348  ~LibXmlInitializer() {
    -
    349  base::AutoLock lock(lock_);
    -
    350  if (initialized_) {
    -
    351  xmlCleanupParser();
    -
    352  initialized_ = false;
    -
    353  }
    -
    354  }
    -
    355 
    -
    356  private:
    -
    357  base::Lock lock_;
    -
    358  bool initialized_;
    -
    359 
    -
    360  DISALLOW_COPY_AND_ASSIGN(LibXmlInitializer);
    -
    361 };
    -
    362 
    -
    363 class RepresentationStateChangeListenerImpl
    -
    364  : public RepresentationStateChangeListener {
    -
    365  public:
    -
    366  // |adaptation_set| is not owned by this class.
    -
    367  RepresentationStateChangeListenerImpl(uint32_t representation_id,
    -
    368  AdaptationSet* adaptation_set)
    -
    369  : representation_id_(representation_id), adaptation_set_(adaptation_set) {
    -
    370  DCHECK(adaptation_set_);
    -
    371  }
    -
    372  ~RepresentationStateChangeListenerImpl() override {}
    -
    373 
    -
    374  // RepresentationStateChangeListener implementation.
    -
    375  void OnNewSegmentForRepresentation(uint64_t start_time,
    -
    376  uint64_t duration) override {
    -
    377  adaptation_set_->OnNewSegmentForRepresentation(representation_id_,
    -
    378  start_time, duration);
    -
    379  }
    -
    380 
    -
    381  void OnSetFrameRateForRepresentation(uint32_t frame_duration,
    -
    382  uint32_t timescale) override {
    -
    383  adaptation_set_->OnSetFrameRateForRepresentation(representation_id_,
    -
    384  frame_duration, timescale);
    -
    385  }
    -
    386 
    -
    387  private:
    -
    388  const uint32_t representation_id_;
    -
    389  AdaptationSet* const adaptation_set_;
    -
    390 
    -
    391  DISALLOW_COPY_AND_ASSIGN(RepresentationStateChangeListenerImpl);
    -
    392 };
    -
    393 
    -
    394 } // namespace
    +
    337  DISALLOW_COPY_AND_ASSIGN(LibXmlInitializer);
    +
    338 };
    +
    339 
    +
    340 class RepresentationStateChangeListenerImpl
    +
    341  : public RepresentationStateChangeListener {
    +
    342  public:
    +
    343  // |adaptation_set| is not owned by this class.
    +
    344  RepresentationStateChangeListenerImpl(uint32_t representation_id,
    +
    345  AdaptationSet* adaptation_set)
    +
    346  : representation_id_(representation_id), adaptation_set_(adaptation_set) {
    +
    347  DCHECK(adaptation_set_);
    +
    348  }
    +
    349  ~RepresentationStateChangeListenerImpl() override {}
    +
    350 
    +
    351  // RepresentationStateChangeListener implementation.
    +
    352  void OnNewSegmentForRepresentation(uint64_t start_time,
    +
    353  uint64_t duration) override {
    +
    354  adaptation_set_->OnNewSegmentForRepresentation(representation_id_,
    +
    355  start_time, duration);
    +
    356  }
    +
    357 
    +
    358  void OnSetFrameRateForRepresentation(uint32_t frame_duration,
    +
    359  uint32_t timescale) override {
    +
    360  adaptation_set_->OnSetFrameRateForRepresentation(representation_id_,
    +
    361  frame_duration, timescale);
    +
    362  }
    +
    363 
    +
    364  private:
    +
    365  const uint32_t representation_id_;
    +
    366  AdaptationSet* const adaptation_set_;
    +
    367 
    +
    368  DISALLOW_COPY_AND_ASSIGN(RepresentationStateChangeListenerImpl);
    +
    369 };
    +
    370 
    +
    371 } // namespace
    +
    372 
    + +
    374  : mpd_options_(mpd_options), clock_(new base::DefaultClock()) {}
    +
    375 
    +
    376 MpdBuilder::~MpdBuilder() {}
    +
    377 
    +
    378 void MpdBuilder::AddBaseUrl(const std::string& base_url) {
    +
    379  base_urls_.push_back(base_url);
    +
    380 }
    +
    381 
    +
    382 AdaptationSet* MpdBuilder::AddAdaptationSet(const std::string& lang) {
    +
    383  std::unique_ptr<AdaptationSet> adaptation_set(
    +
    384  new AdaptationSet(adaptation_set_counter_.GetNext(), lang, mpd_options_,
    +
    385  &representation_counter_));
    +
    386  DCHECK(adaptation_set);
    +
    387 
    +
    388  if (!lang.empty() && lang == mpd_options_.default_language) {
    +
    389  adaptation_set->AddRole(AdaptationSet::kRoleMain);
    +
    390  }
    +
    391 
    +
    392  adaptation_sets_.push_back(std::move(adaptation_set));
    +
    393  return adaptation_sets_.back().get();
    +
    394 }
    395 
    - -
    397  : mpd_options_(mpd_options), clock_(new base::DefaultClock()) {}
    -
    398 
    -
    399 MpdBuilder::~MpdBuilder() {}
    -
    400 
    -
    401 void MpdBuilder::AddBaseUrl(const std::string& base_url) {
    -
    402  base_urls_.push_back(base_url);
    -
    403 }
    -
    404 
    -
    405 AdaptationSet* MpdBuilder::AddAdaptationSet(const std::string& lang) {
    -
    406  std::unique_ptr<AdaptationSet> adaptation_set(
    -
    407  new AdaptationSet(adaptation_set_counter_.GetNext(), lang, mpd_options_,
    -
    408  &representation_counter_));
    -
    409  DCHECK(adaptation_set);
    -
    410 
    -
    411  if (!lang.empty() && lang == mpd_options_.default_language) {
    -
    412  adaptation_set->AddRole(AdaptationSet::kRoleMain);
    -
    413  }
    -
    414 
    -
    415  adaptation_sets_.push_back(std::move(adaptation_set));
    -
    416  return adaptation_sets_.back().get();
    -
    417 }
    -
    418 
    - -
    420  DCHECK(output_file);
    -
    421  return WriteMpdToOutput(output_file);
    -
    422 }
    -
    423 
    -
    424 bool MpdBuilder::ToString(std::string* output) {
    -
    425  DCHECK(output);
    -
    426  return WriteMpdToOutput(output);
    -
    427 }
    -
    428 template <typename OutputType>
    -
    429 bool MpdBuilder::WriteMpdToOutput(OutputType* output) {
    -
    430  static LibXmlInitializer lib_xml_initializer;
    -
    431 
    -
    432  xml::scoped_xml_ptr<xmlDoc> doc(GenerateMpd());
    -
    433  if (!doc.get())
    -
    434  return false;
    -
    435 
    -
    436  static const int kNiceFormat = 1;
    -
    437  int doc_str_size = 0;
    -
    438  xmlChar* doc_str = NULL;
    -
    439  xmlDocDumpFormatMemoryEnc(doc.get(), &doc_str, &doc_str_size, "UTF-8",
    -
    440  kNiceFormat);
    -
    441 
    -
    442  bool result = WriteXmlCharArrayToOutput(doc_str, doc_str_size, output);
    -
    443  xmlFree(doc_str);
    -
    444 
    -
    445  // Cleanup, free the doc.
    -
    446  doc.reset();
    -
    447  return result;
    -
    448 }
    -
    449 
    -
    450 xmlDocPtr MpdBuilder::GenerateMpd() {
    -
    451  // Setup nodes.
    -
    452  static const char kXmlVersion[] = "1.0";
    -
    453  xml::scoped_xml_ptr<xmlDoc> doc(xmlNewDoc(BAD_CAST kXmlVersion));
    -
    454  XmlNode mpd("MPD");
    +
    396 bool MpdBuilder::ToString(std::string* output) {
    +
    397  DCHECK(output);
    +
    398  static LibXmlInitializer lib_xml_initializer;
    +
    399 
    +
    400  xml::scoped_xml_ptr<xmlDoc> doc(GenerateMpd());
    +
    401  if (!doc.get())
    +
    402  return false;
    +
    403 
    +
    404  static const int kNiceFormat = 1;
    +
    405  int doc_str_size = 0;
    +
    406  xmlChar* doc_str = nullptr;
    +
    407  xmlDocDumpFormatMemoryEnc(doc.get(), &doc_str, &doc_str_size, "UTF-8",
    +
    408  kNiceFormat);
    +
    409  output->assign(doc_str, doc_str + doc_str_size);
    +
    410  xmlFree(doc_str);
    +
    411 
    +
    412  // Cleanup, free the doc.
    +
    413  doc.reset();
    +
    414  return true;
    +
    415 }
    +
    416 
    +
    417 xmlDocPtr MpdBuilder::GenerateMpd() {
    +
    418  // Setup nodes.
    +
    419  static const char kXmlVersion[] = "1.0";
    +
    420  xml::scoped_xml_ptr<xmlDoc> doc(xmlNewDoc(BAD_CAST kXmlVersion));
    +
    421  XmlNode mpd("MPD");
    +
    422 
    +
    423  // Iterate thru AdaptationSets and add them to one big Period element.
    +
    424  XmlNode period("Period");
    +
    425 
    +
    426  // Always set id=0 for now. Since this class can only generate one Period
    +
    427  // at the moment, just use a constant.
    +
    428  // Required for 'dynamic' MPDs.
    +
    429  period.SetId(0);
    +
    430  for (const std::unique_ptr<AdaptationSet>& adaptation_set :
    +
    431  adaptation_sets_) {
    +
    432  xml::scoped_xml_ptr<xmlNode> child(adaptation_set->GetXml());
    +
    433  if (!child.get() || !period.AddChild(std::move(child)))
    +
    434  return NULL;
    +
    435  }
    +
    436 
    +
    437  // Add baseurls to MPD.
    +
    438  std::list<std::string>::const_iterator base_urls_it = base_urls_.begin();
    +
    439  for (; base_urls_it != base_urls_.end(); ++base_urls_it) {
    +
    440  XmlNode base_url("BaseURL");
    +
    441  base_url.SetContent(*base_urls_it);
    +
    442 
    +
    443  if (!mpd.AddChild(base_url.PassScopedPtr()))
    +
    444  return NULL;
    +
    445  }
    +
    446 
    +
    447  // TODO(kqyang): Should we set @start unconditionally to 0?
    +
    448  if (mpd_options_.mpd_type == MpdType::kDynamic) {
    +
    449  // This is the only Period and it is a regular period.
    +
    450  period.SetStringAttribute("start", "PT0S");
    +
    451  }
    +
    452 
    +
    453  if (!mpd.AddChild(period.PassScopedPtr()))
    +
    454  return NULL;
    455 
    -
    456  // Iterate thru AdaptationSets and add them to one big Period element.
    -
    457  XmlNode period("Period");
    -
    458 
    -
    459  // Always set id=0 for now. Since this class can only generate one Period
    -
    460  // at the moment, just use a constant.
    -
    461  // Required for 'dynamic' MPDs.
    -
    462  period.SetId(0);
    -
    463  for (const std::unique_ptr<AdaptationSet>& adaptation_set :
    -
    464  adaptation_sets_) {
    -
    465  xml::scoped_xml_ptr<xmlNode> child(adaptation_set->GetXml());
    -
    466  if (!child.get() || !period.AddChild(std::move(child)))
    -
    467  return NULL;
    -
    468  }
    -
    469 
    -
    470  // Add baseurls to MPD.
    -
    471  std::list<std::string>::const_iterator base_urls_it = base_urls_.begin();
    -
    472  for (; base_urls_it != base_urls_.end(); ++base_urls_it) {
    -
    473  XmlNode base_url("BaseURL");
    -
    474  base_url.SetContent(*base_urls_it);
    -
    475 
    -
    476  if (!mpd.AddChild(base_url.PassScopedPtr()))
    -
    477  return NULL;
    -
    478  }
    -
    479 
    -
    480  // TODO(kqyang): Should we set @start unconditionally to 0?
    -
    481  if (mpd_options_.mpd_type == MpdType::kDynamic) {
    -
    482  // This is the only Period and it is a regular period.
    -
    483  period.SetStringAttribute("start", "PT0S");
    -
    484  }
    -
    485 
    -
    486  if (!mpd.AddChild(period.PassScopedPtr()))
    -
    487  return NULL;
    +
    456  AddMpdNameSpaceInfo(&mpd);
    +
    457 
    +
    458  static const char kOnDemandProfile[] =
    +
    459  "urn:mpeg:dash:profile:isoff-on-demand:2011";
    +
    460  static const char kLiveProfile[] =
    +
    461  "urn:mpeg:dash:profile:isoff-live:2011";
    +
    462  switch (mpd_options_.dash_profile) {
    +
    463  case DashProfile::kOnDemand:
    +
    464  mpd.SetStringAttribute("profiles", kOnDemandProfile);
    +
    465  break;
    +
    466  case DashProfile::kLive:
    +
    467  mpd.SetStringAttribute("profiles", kLiveProfile);
    +
    468  break;
    +
    469  default:
    +
    470  NOTREACHED() << "Unknown DASH profile: "
    +
    471  << static_cast<int>(mpd_options_.dash_profile);
    +
    472  break;
    +
    473  }
    +
    474 
    +
    475  AddCommonMpdInfo(&mpd);
    +
    476  switch (mpd_options_.mpd_type) {
    +
    477  case MpdType::kStatic:
    +
    478  AddStaticMpdInfo(&mpd);
    +
    479  break;
    +
    480  case MpdType::kDynamic:
    +
    481  AddDynamicMpdInfo(&mpd);
    +
    482  break;
    +
    483  default:
    +
    484  NOTREACHED() << "Unknown MPD type: "
    +
    485  << static_cast<int>(mpd_options_.mpd_type);
    +
    486  break;
    +
    487  }
    488 
    -
    489  AddMpdNameSpaceInfo(&mpd);
    -
    490 
    -
    491  static const char kOnDemandProfile[] =
    -
    492  "urn:mpeg:dash:profile:isoff-on-demand:2011";
    -
    493  static const char kLiveProfile[] =
    -
    494  "urn:mpeg:dash:profile:isoff-live:2011";
    -
    495  switch (mpd_options_.dash_profile) {
    -
    496  case DashProfile::kOnDemand:
    -
    497  mpd.SetStringAttribute("profiles", kOnDemandProfile);
    -
    498  break;
    -
    499  case DashProfile::kLive:
    -
    500  mpd.SetStringAttribute("profiles", kLiveProfile);
    -
    501  break;
    -
    502  default:
    -
    503  NOTREACHED() << "Unknown DASH profile: "
    -
    504  << static_cast<int>(mpd_options_.dash_profile);
    -
    505  break;
    -
    506  }
    -
    507 
    -
    508  AddCommonMpdInfo(&mpd);
    -
    509  switch (mpd_options_.mpd_type) {
    -
    510  case MpdType::kStatic:
    -
    511  AddStaticMpdInfo(&mpd);
    -
    512  break;
    -
    513  case MpdType::kDynamic:
    -
    514  AddDynamicMpdInfo(&mpd);
    -
    515  break;
    -
    516  default:
    -
    517  NOTREACHED() << "Unknown MPD type: "
    -
    518  << static_cast<int>(mpd_options_.mpd_type);
    -
    519  break;
    -
    520  }
    -
    521 
    -
    522  DCHECK(doc);
    -
    523  const std::string version = GetPackagerVersion();
    -
    524  if (!version.empty()) {
    -
    525  std::string version_string =
    -
    526  base::StringPrintf("Generated with %s version %s",
    -
    527  GetPackagerProjectUrl().c_str(), version.c_str());
    -
    528  xml::scoped_xml_ptr<xmlNode> comment(
    -
    529  xmlNewDocComment(doc.get(), BAD_CAST version_string.c_str()));
    -
    530  xmlDocSetRootElement(doc.get(), comment.get());
    -
    531  xmlAddSibling(comment.release(), mpd.Release());
    -
    532  } else {
    -
    533  xmlDocSetRootElement(doc.get(), mpd.Release());
    -
    534  }
    -
    535  return doc.release();
    -
    536 }
    -
    537 
    -
    538 void MpdBuilder::AddCommonMpdInfo(XmlNode* mpd_node) {
    -
    539  if (Positive(mpd_options_.min_buffer_time)) {
    -
    540  mpd_node->SetStringAttribute(
    -
    541  "minBufferTime", SecondsToXmlDuration(mpd_options_.min_buffer_time));
    -
    542  } else {
    -
    543  LOG(ERROR) << "minBufferTime value not specified.";
    -
    544  // TODO(tinskip): Propagate error.
    -
    545  }
    -
    546 }
    -
    547 
    -
    548 void MpdBuilder::AddStaticMpdInfo(XmlNode* mpd_node) {
    -
    549  DCHECK(mpd_node);
    -
    550  DCHECK_EQ(MpdType::kStatic, mpd_options_.mpd_type);
    -
    551 
    -
    552  static const char kStaticMpdType[] = "static";
    -
    553  mpd_node->SetStringAttribute("type", kStaticMpdType);
    -
    554  mpd_node->SetStringAttribute(
    -
    555  "mediaPresentationDuration",
    -
    556  SecondsToXmlDuration(GetStaticMpdDuration(mpd_node)));
    -
    557 }
    -
    558 
    -
    559 void MpdBuilder::AddDynamicMpdInfo(XmlNode* mpd_node) {
    -
    560  DCHECK(mpd_node);
    -
    561  DCHECK_EQ(MpdType::kDynamic, mpd_options_.mpd_type);
    +
    489  DCHECK(doc);
    +
    490  const std::string version = GetPackagerVersion();
    +
    491  if (!version.empty()) {
    +
    492  std::string version_string =
    +
    493  base::StringPrintf("Generated with %s version %s",
    +
    494  GetPackagerProjectUrl().c_str(), version.c_str());
    +
    495  xml::scoped_xml_ptr<xmlNode> comment(
    +
    496  xmlNewDocComment(doc.get(), BAD_CAST version_string.c_str()));
    +
    497  xmlDocSetRootElement(doc.get(), comment.get());
    +
    498  xmlAddSibling(comment.release(), mpd.Release());
    +
    499  } else {
    +
    500  xmlDocSetRootElement(doc.get(), mpd.Release());
    +
    501  }
    +
    502  return doc.release();
    +
    503 }
    +
    504 
    +
    505 void MpdBuilder::AddCommonMpdInfo(XmlNode* mpd_node) {
    +
    506  if (Positive(mpd_options_.min_buffer_time)) {
    +
    507  mpd_node->SetStringAttribute(
    +
    508  "minBufferTime", SecondsToXmlDuration(mpd_options_.min_buffer_time));
    +
    509  } else {
    +
    510  LOG(ERROR) << "minBufferTime value not specified.";
    +
    511  // TODO(tinskip): Propagate error.
    +
    512  }
    +
    513 }
    +
    514 
    +
    515 void MpdBuilder::AddStaticMpdInfo(XmlNode* mpd_node) {
    +
    516  DCHECK(mpd_node);
    +
    517  DCHECK_EQ(MpdType::kStatic, mpd_options_.mpd_type);
    +
    518 
    +
    519  static const char kStaticMpdType[] = "static";
    +
    520  mpd_node->SetStringAttribute("type", kStaticMpdType);
    +
    521  mpd_node->SetStringAttribute(
    +
    522  "mediaPresentationDuration",
    +
    523  SecondsToXmlDuration(GetStaticMpdDuration(mpd_node)));
    +
    524 }
    +
    525 
    +
    526 void MpdBuilder::AddDynamicMpdInfo(XmlNode* mpd_node) {
    +
    527  DCHECK(mpd_node);
    +
    528  DCHECK_EQ(MpdType::kDynamic, mpd_options_.mpd_type);
    +
    529 
    +
    530  static const char kDynamicMpdType[] = "dynamic";
    +
    531  mpd_node->SetStringAttribute("type", kDynamicMpdType);
    +
    532 
    +
    533  // No offset from NOW.
    +
    534  mpd_node->SetStringAttribute("publishTime",
    +
    535  XmlDateTimeNowWithOffset(0, clock_.get()));
    +
    536 
    +
    537  // 'availabilityStartTime' is required for dynamic profile. Calculate if
    +
    538  // not already calculated.
    +
    539  if (availability_start_time_.empty()) {
    +
    540  double earliest_presentation_time;
    +
    541  if (GetEarliestTimestamp(&earliest_presentation_time)) {
    +
    542  availability_start_time_ = XmlDateTimeNowWithOffset(
    +
    543  -std::ceil(earliest_presentation_time), clock_.get());
    +
    544  } else {
    +
    545  LOG(ERROR) << "Could not determine the earliest segment presentation "
    +
    546  "time for availabilityStartTime calculation.";
    +
    547  // TODO(tinskip). Propagate an error.
    +
    548  }
    +
    549  }
    +
    550  if (!availability_start_time_.empty())
    +
    551  mpd_node->SetStringAttribute("availabilityStartTime",
    +
    552  availability_start_time_);
    +
    553 
    +
    554  if (Positive(mpd_options_.minimum_update_period)) {
    +
    555  mpd_node->SetStringAttribute(
    +
    556  "minimumUpdatePeriod",
    +
    557  SecondsToXmlDuration(mpd_options_.minimum_update_period));
    +
    558  } else {
    +
    559  LOG(WARNING) << "The profile is dynamic but no minimumUpdatePeriod "
    +
    560  "specified.";
    +
    561  }
    562 
    -
    563  static const char kDynamicMpdType[] = "dynamic";
    -
    564  mpd_node->SetStringAttribute("type", kDynamicMpdType);
    -
    565 
    -
    566  // No offset from NOW.
    -
    567  mpd_node->SetStringAttribute("publishTime",
    -
    568  XmlDateTimeNowWithOffset(0, clock_.get()));
    -
    569 
    -
    570  // 'availabilityStartTime' is required for dynamic profile. Calculate if
    -
    571  // not already calculated.
    -
    572  if (availability_start_time_.empty()) {
    -
    573  double earliest_presentation_time;
    -
    574  if (GetEarliestTimestamp(&earliest_presentation_time)) {
    -
    575  availability_start_time_ = XmlDateTimeNowWithOffset(
    -
    576  -std::ceil(earliest_presentation_time), clock_.get());
    -
    577  } else {
    -
    578  LOG(ERROR) << "Could not determine the earliest segment presentation "
    -
    579  "time for availabilityStartTime calculation.";
    -
    580  // TODO(tinskip). Propagate an error.
    -
    581  }
    -
    582  }
    -
    583  if (!availability_start_time_.empty())
    -
    584  mpd_node->SetStringAttribute("availabilityStartTime",
    -
    585  availability_start_time_);
    -
    586 
    -
    587  if (Positive(mpd_options_.minimum_update_period)) {
    -
    588  mpd_node->SetStringAttribute(
    -
    589  "minimumUpdatePeriod",
    -
    590  SecondsToXmlDuration(mpd_options_.minimum_update_period));
    -
    591  } else {
    -
    592  LOG(WARNING) << "The profile is dynamic but no minimumUpdatePeriod "
    -
    593  "specified.";
    -
    594  }
    -
    595 
    -
    596  SetIfPositive("timeShiftBufferDepth", mpd_options_.time_shift_buffer_depth,
    -
    597  mpd_node);
    -
    598  SetIfPositive("suggestedPresentationDelay",
    -
    599  mpd_options_.suggested_presentation_delay, mpd_node);
    -
    600 }
    -
    601 
    -
    602 float MpdBuilder::GetStaticMpdDuration(XmlNode* mpd_node) {
    -
    603  DCHECK(mpd_node);
    -
    604  DCHECK_EQ(MpdType::kStatic, mpd_options_.mpd_type);
    -
    605 
    -
    606  xmlNodePtr period_node = FindPeriodNode(mpd_node);
    -
    607  DCHECK(period_node) << "Period element must be a child of mpd_node.";
    -
    608  DCHECK(IsPeriodNode(period_node));
    -
    609 
    -
    610  // TODO(kqyang): Verify if this works for static + live profile.
    -
    611  // Attribute mediaPresentationDuration must be present for 'static' MPD. So
    -
    612  // setting "PT0S" is required even if none of the representaions have duration
    -
    613  // attribute.
    -
    614  float max_duration = 0.0f;
    -
    615  for (xmlNodePtr adaptation_set = xmlFirstElementChild(period_node);
    -
    616  adaptation_set; adaptation_set = xmlNextElementSibling(adaptation_set)) {
    -
    617  for (xmlNodePtr representation = xmlFirstElementChild(adaptation_set);
    -
    618  representation;
    -
    619  representation = xmlNextElementSibling(representation)) {
    -
    620  float duration = 0.0f;
    -
    621  if (GetDurationAttribute(representation, &duration)) {
    -
    622  max_duration = max_duration > duration ? max_duration : duration;
    -
    623 
    -
    624  // 'duration' attribute is there only to help generate MPD, not
    -
    625  // necessary for MPD, remove the attribute.
    -
    626  xmlUnsetProp(representation, BAD_CAST "duration");
    -
    627  }
    -
    628  }
    -
    629  }
    -
    630 
    -
    631  return max_duration;
    -
    632 }
    -
    633 
    -
    634 bool MpdBuilder::GetEarliestTimestamp(double* timestamp_seconds) {
    -
    635  DCHECK(timestamp_seconds);
    -
    636 
    -
    637  double earliest_timestamp(-1);
    -
    638  for (const std::unique_ptr<AdaptationSet>& adaptation_set :
    -
    639  adaptation_sets_) {
    -
    640  double timestamp;
    -
    641  if (adaptation_set->GetEarliestTimestamp(&timestamp) &&
    -
    642  ((earliest_timestamp < 0) || (timestamp < earliest_timestamp))) {
    -
    643  earliest_timestamp = timestamp;
    +
    563  SetIfPositive("timeShiftBufferDepth", mpd_options_.time_shift_buffer_depth,
    +
    564  mpd_node);
    +
    565  SetIfPositive("suggestedPresentationDelay",
    +
    566  mpd_options_.suggested_presentation_delay, mpd_node);
    +
    567 }
    +
    568 
    +
    569 float MpdBuilder::GetStaticMpdDuration(XmlNode* mpd_node) {
    +
    570  DCHECK(mpd_node);
    +
    571  DCHECK_EQ(MpdType::kStatic, mpd_options_.mpd_type);
    +
    572 
    +
    573  xmlNodePtr period_node = FindPeriodNode(mpd_node);
    +
    574  DCHECK(period_node) << "Period element must be a child of mpd_node.";
    +
    575  DCHECK(IsPeriodNode(period_node));
    +
    576 
    +
    577  // TODO(kqyang): Verify if this works for static + live profile.
    +
    578  // Attribute mediaPresentationDuration must be present for 'static' MPD. So
    +
    579  // setting "PT0S" is required even if none of the representaions have duration
    +
    580  // attribute.
    +
    581  float max_duration = 0.0f;
    +
    582  for (xmlNodePtr adaptation_set = xmlFirstElementChild(period_node);
    +
    583  adaptation_set; adaptation_set = xmlNextElementSibling(adaptation_set)) {
    +
    584  for (xmlNodePtr representation = xmlFirstElementChild(adaptation_set);
    +
    585  representation;
    +
    586  representation = xmlNextElementSibling(representation)) {
    +
    587  float duration = 0.0f;
    +
    588  if (GetDurationAttribute(representation, &duration)) {
    +
    589  max_duration = max_duration > duration ? max_duration : duration;
    +
    590 
    +
    591  // 'duration' attribute is there only to help generate MPD, not
    +
    592  // necessary for MPD, remove the attribute.
    +
    593  xmlUnsetProp(representation, BAD_CAST "duration");
    +
    594  }
    +
    595  }
    +
    596  }
    +
    597 
    +
    598  return max_duration;
    +
    599 }
    +
    600 
    +
    601 bool MpdBuilder::GetEarliestTimestamp(double* timestamp_seconds) {
    +
    602  DCHECK(timestamp_seconds);
    +
    603 
    +
    604  double earliest_timestamp(-1);
    +
    605  for (const std::unique_ptr<AdaptationSet>& adaptation_set :
    +
    606  adaptation_sets_) {
    +
    607  double timestamp;
    +
    608  if (adaptation_set->GetEarliestTimestamp(&timestamp) &&
    +
    609  ((earliest_timestamp < 0) || (timestamp < earliest_timestamp))) {
    +
    610  earliest_timestamp = timestamp;
    +
    611  }
    +
    612  }
    +
    613  if (earliest_timestamp < 0)
    +
    614  return false;
    +
    615 
    +
    616  *timestamp_seconds = earliest_timestamp;
    +
    617  return true;
    +
    618 }
    +
    619 
    +
    620 void MpdBuilder::MakePathsRelativeToMpd(const std::string& mpd_path,
    +
    621  MediaInfo* media_info) {
    +
    622  DCHECK(media_info);
    +
    623  const std::string kFileProtocol("file://");
    +
    624  std::string mpd_file_path = (mpd_path.find(kFileProtocol) == 0)
    +
    625  ? mpd_path.substr(kFileProtocol.size())
    +
    626  : mpd_path;
    +
    627 
    +
    628  if (!mpd_file_path.empty()) {
    +
    629  std::string mpd_dir(FilePath::FromUTF8Unsafe(mpd_file_path)
    +
    630  .DirName().AsEndingWithSeparator().AsUTF8Unsafe());
    +
    631  if (!mpd_dir.empty()) {
    +
    632  if (media_info->has_media_file_name()) {
    +
    633  media_info->set_media_file_name(
    +
    634  MakePathRelative(media_info->media_file_name(), mpd_dir));
    +
    635  }
    +
    636  if (media_info->has_init_segment_name()) {
    +
    637  media_info->set_init_segment_name(
    +
    638  MakePathRelative(media_info->init_segment_name(), mpd_dir));
    +
    639  }
    +
    640  if (media_info->has_segment_template()) {
    +
    641  media_info->set_segment_template(
    +
    642  MakePathRelative(media_info->segment_template(), mpd_dir));
    +
    643  }
    644  }
    645  }
    -
    646  if (earliest_timestamp < 0)
    -
    647  return false;
    -
    648 
    -
    649  *timestamp_seconds = earliest_timestamp;
    -
    650  return true;
    -
    651 }
    -
    652 
    -
    653 void MpdBuilder::MakePathsRelativeToMpd(const std::string& mpd_path,
    -
    654  MediaInfo* media_info) {
    -
    655  DCHECK(media_info);
    -
    656  const std::string kFileProtocol("file://");
    -
    657  std::string mpd_file_path = (mpd_path.find(kFileProtocol) == 0)
    -
    658  ? mpd_path.substr(kFileProtocol.size())
    -
    659  : mpd_path;
    +
    646 }
    +
    647 
    +
    648 AdaptationSet::AdaptationSet(uint32_t adaptation_set_id,
    +
    649  const std::string& lang,
    +
    650  const MpdOptions& mpd_options,
    +
    651  base::AtomicSequenceNumber* counter)
    +
    652  : representation_counter_(counter),
    +
    653  id_(adaptation_set_id),
    +
    654  lang_(lang),
    +
    655  mpd_options_(mpd_options),
    +
    656  segments_aligned_(kSegmentAlignmentUnknown),
    +
    657  force_set_segment_alignment_(false) {
    +
    658  DCHECK(counter);
    +
    659 }
    660 
    -
    661  if (!mpd_file_path.empty()) {
    -
    662  std::string mpd_dir(FilePath::FromUTF8Unsafe(mpd_file_path)
    -
    663  .DirName().AsEndingWithSeparator().AsUTF8Unsafe());
    -
    664  if (!mpd_dir.empty()) {
    -
    665  if (media_info->has_media_file_name()) {
    -
    666  media_info->set_media_file_name(
    -
    667  MakePathRelative(media_info->media_file_name(), mpd_dir));
    -
    668  }
    -
    669  if (media_info->has_init_segment_name()) {
    -
    670  media_info->set_init_segment_name(
    -
    671  MakePathRelative(media_info->init_segment_name(), mpd_dir));
    -
    672  }
    -
    673  if (media_info->has_segment_template()) {
    -
    674  media_info->set_segment_template(
    -
    675  MakePathRelative(media_info->segment_template(), mpd_dir));
    -
    676  }
    -
    677  }
    -
    678  }
    -
    679 }
    -
    680 
    -
    681 AdaptationSet::AdaptationSet(uint32_t adaptation_set_id,
    -
    682  const std::string& lang,
    -
    683  const MpdOptions& mpd_options,
    -
    684  base::AtomicSequenceNumber* counter)
    -
    685  : representation_counter_(counter),
    -
    686  id_(adaptation_set_id),
    -
    687  lang_(lang),
    -
    688  mpd_options_(mpd_options),
    -
    689  segments_aligned_(kSegmentAlignmentUnknown),
    -
    690  force_set_segment_alignment_(false) {
    -
    691  DCHECK(counter);
    -
    692 }
    -
    693 
    -
    694 AdaptationSet::~AdaptationSet() {}
    -
    695 
    -
    696 Representation* AdaptationSet::AddRepresentation(const MediaInfo& media_info) {
    -
    697  const uint32_t representation_id = representation_counter_->GetNext();
    -
    698  // Note that AdaptationSet outlive Representation, so this object
    -
    699  // will die before AdaptationSet.
    -
    700  std::unique_ptr<RepresentationStateChangeListener> listener(
    -
    701  new RepresentationStateChangeListenerImpl(representation_id, this));
    -
    702  std::unique_ptr<Representation> representation(new Representation(
    -
    703  media_info, mpd_options_, representation_id, std::move(listener)));
    +
    661 AdaptationSet::~AdaptationSet() {}
    +
    662 
    +
    663 Representation* AdaptationSet::AddRepresentation(const MediaInfo& media_info) {
    +
    664  const uint32_t representation_id = representation_counter_->GetNext();
    +
    665  // Note that AdaptationSet outlive Representation, so this object
    +
    666  // will die before AdaptationSet.
    +
    667  std::unique_ptr<RepresentationStateChangeListener> listener(
    +
    668  new RepresentationStateChangeListenerImpl(representation_id, this));
    +
    669  std::unique_ptr<Representation> representation(new Representation(
    +
    670  media_info, mpd_options_, representation_id, std::move(listener)));
    +
    671 
    +
    672  if (!representation->Init()) {
    +
    673  LOG(ERROR) << "Failed to initialize Representation.";
    +
    674  return NULL;
    +
    675  }
    +
    676 
    +
    677  // For videos, record the width, height, and the frame rate to calculate the
    +
    678  // max {width,height,framerate} required for DASH IOP.
    +
    679  if (media_info.has_video_info()) {
    +
    680  const MediaInfo::VideoInfo& video_info = media_info.video_info();
    +
    681  DCHECK(video_info.has_width());
    +
    682  DCHECK(video_info.has_height());
    +
    683  video_widths_.insert(video_info.width());
    +
    684  video_heights_.insert(video_info.height());
    +
    685 
    +
    686  if (video_info.has_time_scale() && video_info.has_frame_duration())
    +
    687  RecordFrameRate(video_info.frame_duration(), video_info.time_scale());
    +
    688 
    +
    689  AddPictureAspectRatio(video_info, &picture_aspect_ratio_);
    +
    690  }
    +
    691 
    +
    692  if (media_info.has_video_info()) {
    +
    693  content_type_ = "video";
    +
    694  } else if (media_info.has_audio_info()) {
    +
    695  content_type_ = "audio";
    +
    696  } else if (media_info.has_text_info()) {
    +
    697  content_type_ = "text";
    +
    698 
    +
    699  if (media_info.text_info().has_type() &&
    +
    700  (media_info.text_info().type() != MediaInfo::TextInfo::UNKNOWN)) {
    +
    701  roles_.insert(MediaInfoTextTypeToRole(media_info.text_info().type()));
    +
    702  }
    +
    703  }
    704 
    -
    705  if (!representation->Init()) {
    -
    706  LOG(ERROR) << "Failed to initialize Representation.";
    -
    707  return NULL;
    -
    708  }
    -
    709 
    -
    710  // For videos, record the width, height, and the frame rate to calculate the
    -
    711  // max {width,height,framerate} required for DASH IOP.
    -
    712  if (media_info.has_video_info()) {
    -
    713  const MediaInfo::VideoInfo& video_info = media_info.video_info();
    -
    714  DCHECK(video_info.has_width());
    -
    715  DCHECK(video_info.has_height());
    -
    716  video_widths_.insert(video_info.width());
    -
    717  video_heights_.insert(video_info.height());
    -
    718 
    -
    719  if (video_info.has_time_scale() && video_info.has_frame_duration())
    -
    720  RecordFrameRate(video_info.frame_duration(), video_info.time_scale());
    -
    721 
    -
    722  AddPictureAspectRatio(video_info, &picture_aspect_ratio_);
    -
    723  }
    +
    705  representations_.push_back(std::move(representation));
    +
    706  return representations_.back().get();
    +
    707 }
    +
    708 
    + +
    710  const ContentProtectionElement& content_protection_element) {
    +
    711  content_protection_elements_.push_back(content_protection_element);
    +
    712  RemoveDuplicateAttributes(&content_protection_elements_.back());
    +
    713 }
    +
    714 
    +
    715 void AdaptationSet::UpdateContentProtectionPssh(const std::string& drm_uuid,
    +
    716  const std::string& pssh) {
    +
    717  UpdateContentProtectionPsshHelper(drm_uuid, pssh,
    +
    718  &content_protection_elements_);
    +
    719 }
    +
    720 
    +
    721 void AdaptationSet::AddRole(Role role) {
    +
    722  roles_.insert(role);
    +
    723 }
    724 
    -
    725  if (media_info.has_video_info()) {
    -
    726  content_type_ = "video";
    -
    727  } else if (media_info.has_audio_info()) {
    -
    728  content_type_ = "audio";
    -
    729  } else if (media_info.has_text_info()) {
    -
    730  content_type_ = "text";
    -
    731 
    -
    732  if (media_info.text_info().has_type() &&
    -
    733  (media_info.text_info().type() != MediaInfo::TextInfo::UNKNOWN)) {
    -
    734  roles_.insert(MediaInfoTextTypeToRole(media_info.text_info().type()));
    -
    735  }
    -
    736  }
    +
    725 // Creates a copy of <AdaptationSet> xml element, iterate thru all the
    +
    726 // <Representation> (child) elements and add them to the copy.
    +
    727 // Set all the attributes first and then add the children elements so that flags
    +
    728 // can be passed to Representation to avoid setting redundant attributes. For
    +
    729 // example, if AdaptationSet@width is set, then Representation@width is
    +
    730 // redundant and should not be set.
    +
    731 xml::scoped_xml_ptr<xmlNode> AdaptationSet::GetXml() {
    +
    732  AdaptationSetXmlNode adaptation_set;
    +
    733 
    +
    734  bool suppress_representation_width = false;
    +
    735  bool suppress_representation_height = false;
    +
    736  bool suppress_representation_frame_rate = false;
    737 
    -
    738  representations_.push_back(std::move(representation));
    -
    739  return representations_.back().get();
    -
    740 }
    -
    741 
    - -
    743  const ContentProtectionElement& content_protection_element) {
    -
    744  content_protection_elements_.push_back(content_protection_element);
    -
    745  RemoveDuplicateAttributes(&content_protection_elements_.back());
    -
    746 }
    -
    747 
    -
    748 void AdaptationSet::UpdateContentProtectionPssh(const std::string& drm_uuid,
    -
    749  const std::string& pssh) {
    -
    750  UpdateContentProtectionPsshHelper(drm_uuid, pssh,
    -
    751  &content_protection_elements_);
    -
    752 }
    -
    753 
    -
    754 void AdaptationSet::AddRole(Role role) {
    -
    755  roles_.insert(role);
    -
    756 }
    +
    738  adaptation_set.SetId(id_);
    +
    739  adaptation_set.SetStringAttribute("contentType", content_type_);
    +
    740  if (!lang_.empty() && lang_ != "und") {
    +
    741  adaptation_set.SetStringAttribute("lang", LanguageToShortestForm(lang_));
    +
    742  }
    +
    743 
    +
    744  // Note that std::{set,map} are ordered, so the last element is the max value.
    +
    745  if (video_widths_.size() == 1) {
    +
    746  suppress_representation_width = true;
    +
    747  adaptation_set.SetIntegerAttribute("width", *video_widths_.begin());
    +
    748  } else if (video_widths_.size() > 1) {
    +
    749  adaptation_set.SetIntegerAttribute("maxWidth", *video_widths_.rbegin());
    +
    750  }
    +
    751  if (video_heights_.size() == 1) {
    +
    752  suppress_representation_height = true;
    +
    753  adaptation_set.SetIntegerAttribute("height", *video_heights_.begin());
    +
    754  } else if (video_heights_.size() > 1) {
    +
    755  adaptation_set.SetIntegerAttribute("maxHeight", *video_heights_.rbegin());
    +
    756  }
    757 
    -
    758 // Creates a copy of <AdaptationSet> xml element, iterate thru all the
    -
    759 // <Representation> (child) elements and add them to the copy.
    -
    760 // Set all the attributes first and then add the children elements so that flags
    -
    761 // can be passed to Representation to avoid setting redundant attributes. For
    -
    762 // example, if AdaptationSet@width is set, then Representation@width is
    -
    763 // redundant and should not be set.
    -
    764 xml::scoped_xml_ptr<xmlNode> AdaptationSet::GetXml() {
    -
    765  AdaptationSetXmlNode adaptation_set;
    +
    758  if (video_frame_rates_.size() == 1) {
    +
    759  suppress_representation_frame_rate = true;
    +
    760  adaptation_set.SetStringAttribute("frameRate",
    +
    761  video_frame_rates_.begin()->second);
    +
    762  } else if (video_frame_rates_.size() > 1) {
    +
    763  adaptation_set.SetStringAttribute("maxFrameRate",
    +
    764  video_frame_rates_.rbegin()->second);
    +
    765  }
    766 
    -
    767  bool suppress_representation_width = false;
    -
    768  bool suppress_representation_height = false;
    -
    769  bool suppress_representation_frame_rate = false;
    -
    770 
    -
    771  adaptation_set.SetId(id_);
    -
    772  adaptation_set.SetStringAttribute("contentType", content_type_);
    -
    773  if (!lang_.empty() && lang_ != "und") {
    -
    774  adaptation_set.SetStringAttribute("lang", LanguageToShortestForm(lang_));
    -
    775  }
    -
    776 
    -
    777  // Note that std::{set,map} are ordered, so the last element is the max value.
    -
    778  if (video_widths_.size() == 1) {
    -
    779  suppress_representation_width = true;
    -
    780  adaptation_set.SetIntegerAttribute("width", *video_widths_.begin());
    -
    781  } else if (video_widths_.size() > 1) {
    -
    782  adaptation_set.SetIntegerAttribute("maxWidth", *video_widths_.rbegin());
    -
    783  }
    -
    784  if (video_heights_.size() == 1) {
    -
    785  suppress_representation_height = true;
    -
    786  adaptation_set.SetIntegerAttribute("height", *video_heights_.begin());
    -
    787  } else if (video_heights_.size() > 1) {
    -
    788  adaptation_set.SetIntegerAttribute("maxHeight", *video_heights_.rbegin());
    -
    789  }
    -
    790 
    -
    791  if (video_frame_rates_.size() == 1) {
    -
    792  suppress_representation_frame_rate = true;
    -
    793  adaptation_set.SetStringAttribute("frameRate",
    -
    794  video_frame_rates_.begin()->second);
    -
    795  } else if (video_frame_rates_.size() > 1) {
    -
    796  adaptation_set.SetStringAttribute("maxFrameRate",
    -
    797  video_frame_rates_.rbegin()->second);
    +
    767  // Note: must be checked before checking segments_aligned_ (below). So that
    +
    768  // segments_aligned_ is set before checking below.
    +
    769  if (mpd_options_.dash_profile == DashProfile::kOnDemand) {
    +
    770  CheckVodSegmentAlignment();
    +
    771  }
    +
    772 
    +
    773  if (segments_aligned_ == kSegmentAlignmentTrue) {
    +
    774  adaptation_set.SetStringAttribute(
    +
    775  mpd_options_.dash_profile == DashProfile::kOnDemand
    +
    776  ? "subsegmentAlignment"
    +
    777  : "segmentAlignment",
    +
    778  "true");
    +
    779  }
    +
    780 
    +
    781  if (picture_aspect_ratio_.size() == 1)
    +
    782  adaptation_set.SetStringAttribute("par", *picture_aspect_ratio_.begin());
    +
    783 
    +
    784  if (!adaptation_set.AddContentProtectionElements(
    +
    785  content_protection_elements_)) {
    +
    786  return xml::scoped_xml_ptr<xmlNode>();
    +
    787  }
    +
    788 
    +
    789  if (!trick_play_reference_ids_.empty()) {
    +
    790  std::string id_string;
    +
    791  for (uint32_t id : trick_play_reference_ids_) {
    +
    792  id_string += std::to_string(id) + ",";
    +
    793  }
    +
    794  DCHECK(!id_string.empty());
    +
    795  id_string.resize(id_string.size() - 1);
    +
    796  adaptation_set.AddEssentialProperty(
    +
    797  "http://dashif.org/guidelines/trickmode", id_string);
    798  }
    799 
    -
    800  // Note: must be checked before checking segments_aligned_ (below). So that
    -
    801  // segments_aligned_ is set before checking below.
    -
    802  if (mpd_options_.dash_profile == DashProfile::kOnDemand) {
    -
    803  CheckVodSegmentAlignment();
    -
    804  }
    -
    805 
    -
    806  if (segments_aligned_ == kSegmentAlignmentTrue) {
    -
    807  adaptation_set.SetStringAttribute(
    -
    808  mpd_options_.dash_profile == DashProfile::kOnDemand
    -
    809  ? "subsegmentAlignment"
    -
    810  : "segmentAlignment",
    -
    811  "true");
    -
    812  }
    +
    800  std::string switching_ids;
    +
    801  for (uint32_t id : adaptation_set_switching_ids_) {
    +
    802  if (!switching_ids.empty())
    +
    803  switching_ids += ',';
    +
    804  switching_ids += base::UintToString(id);
    +
    805  }
    +
    806  if (!switching_ids.empty()) {
    +
    807  adaptation_set.AddSupplementalProperty(
    +
    808  "urn:mpeg:dash:adaptation-set-switching:2016", switching_ids);
    +
    809  }
    +
    810 
    +
    811  for (AdaptationSet::Role role : roles_)
    +
    812  adaptation_set.AddRoleElement("urn:mpeg:dash:role:2011", RoleToText(role));
    813 
    -
    814  if (picture_aspect_ratio_.size() == 1)
    -
    815  adaptation_set.SetStringAttribute("par", *picture_aspect_ratio_.begin());
    -
    816 
    -
    817  if (!adaptation_set.AddContentProtectionElements(
    -
    818  content_protection_elements_)) {
    -
    819  return xml::scoped_xml_ptr<xmlNode>();
    -
    820  }
    -
    821 
    -
    822  if (!trick_play_reference_ids_.empty()) {
    -
    823  std::string id_string;
    -
    824  for (uint32_t id : trick_play_reference_ids_) {
    -
    825  id_string += std::to_string(id) + ",";
    -
    826  }
    -
    827  DCHECK(!id_string.empty());
    -
    828  id_string.resize(id_string.size() - 1);
    -
    829  adaptation_set.AddEssentialProperty(
    -
    830  "http://dashif.org/guidelines/trickmode", id_string);
    -
    831  }
    -
    832 
    -
    833  std::string switching_ids;
    -
    834  for (uint32_t id : adaptation_set_switching_ids_) {
    -
    835  if (!switching_ids.empty())
    -
    836  switching_ids += ',';
    -
    837  switching_ids += base::UintToString(id);
    -
    838  }
    -
    839  if (!switching_ids.empty()) {
    -
    840  adaptation_set.AddSupplementalProperty(
    -
    841  "urn:mpeg:dash:adaptation-set-switching:2016", switching_ids);
    -
    842  }
    -
    843 
    -
    844  for (AdaptationSet::Role role : roles_)
    -
    845  adaptation_set.AddRoleElement("urn:mpeg:dash:role:2011", RoleToText(role));
    -
    846 
    -
    847  for (const std::unique_ptr<Representation>& representation :
    -
    848  representations_) {
    -
    849  if (suppress_representation_width)
    -
    850  representation->SuppressOnce(Representation::kSuppressWidth);
    -
    851  if (suppress_representation_height)
    -
    852  representation->SuppressOnce(Representation::kSuppressHeight);
    -
    853  if (suppress_representation_frame_rate)
    -
    854  representation->SuppressOnce(Representation::kSuppressFrameRate);
    -
    855  xml::scoped_xml_ptr<xmlNode> child(representation->GetXml());
    -
    856  if (!child || !adaptation_set.AddChild(std::move(child)))
    -
    857  return xml::scoped_xml_ptr<xmlNode>();
    -
    858  }
    -
    859 
    -
    860  return adaptation_set.PassScopedPtr();
    -
    861 }
    -
    862 
    -
    863 void AdaptationSet::ForceSetSegmentAlignment(bool segment_alignment) {
    -
    864  segments_aligned_ =
    -
    865  segment_alignment ? kSegmentAlignmentTrue : kSegmentAlignmentFalse;
    -
    866  force_set_segment_alignment_ = true;
    +
    814  for (const std::unique_ptr<Representation>& representation :
    +
    815  representations_) {
    +
    816  if (suppress_representation_width)
    +
    817  representation->SuppressOnce(Representation::kSuppressWidth);
    +
    818  if (suppress_representation_height)
    +
    819  representation->SuppressOnce(Representation::kSuppressHeight);
    +
    820  if (suppress_representation_frame_rate)
    +
    821  representation->SuppressOnce(Representation::kSuppressFrameRate);
    +
    822  xml::scoped_xml_ptr<xmlNode> child(representation->GetXml());
    +
    823  if (!child || !adaptation_set.AddChild(std::move(child)))
    +
    824  return xml::scoped_xml_ptr<xmlNode>();
    +
    825  }
    +
    826 
    +
    827  return adaptation_set.PassScopedPtr();
    +
    828 }
    +
    829 
    +
    830 void AdaptationSet::ForceSetSegmentAlignment(bool segment_alignment) {
    +
    831  segments_aligned_ =
    +
    832  segment_alignment ? kSegmentAlignmentTrue : kSegmentAlignmentFalse;
    +
    833  force_set_segment_alignment_ = true;
    +
    834 }
    +
    835 
    +
    836 void AdaptationSet::AddAdaptationSetSwitching(uint32_t adaptation_set_id) {
    +
    837  adaptation_set_switching_ids_.push_back(adaptation_set_id);
    +
    838 }
    +
    839 
    +
    840 // Check segmentAlignment for Live here. Storing all start_time and duration
    +
    841 // will out-of-memory because there's no way of knowing when it will end.
    +
    842 // VOD subsegmentAlignment check is *not* done here because it is possible
    +
    843 // that some Representations might not have been added yet (e.g. a thread is
    +
    844 // assigned per muxer so one might run faster than others).
    +
    845 // To be clear, for Live, all Representations should be added before a
    +
    846 // segment is added.
    +
    847 void AdaptationSet::OnNewSegmentForRepresentation(uint32_t representation_id,
    +
    848  uint64_t start_time,
    +
    849  uint64_t duration) {
    +
    850  if (mpd_options_.dash_profile == DashProfile::kLive) {
    +
    851  CheckLiveSegmentAlignment(representation_id, start_time, duration);
    +
    852  } else {
    +
    853  representation_segment_start_times_[representation_id].push_back(
    +
    854  start_time);
    +
    855  }
    +
    856 }
    +
    857 
    + +
    859  uint32_t representation_id,
    +
    860  uint32_t frame_duration,
    +
    861  uint32_t timescale) {
    +
    862  RecordFrameRate(frame_duration, timescale);
    +
    863 }
    +
    864 
    + +
    866  trick_play_reference_ids_.insert(id);
    867 }
    868 
    -
    869 void AdaptationSet::AddAdaptationSetSwitching(uint32_t adaptation_set_id) {
    -
    870  adaptation_set_switching_ids_.push_back(adaptation_set_id);
    -
    871 }
    -
    872 
    -
    873 // Check segmentAlignment for Live here. Storing all start_time and duration
    -
    874 // will out-of-memory because there's no way of knowing when it will end.
    -
    875 // VOD subsegmentAlignment check is *not* done here because it is possible
    -
    876 // that some Representations might not have been added yet (e.g. a thread is
    -
    877 // assigned per muxer so one might run faster than others).
    -
    878 // To be clear, for Live, all Representations should be added before a
    -
    879 // segment is added.
    -
    880 void AdaptationSet::OnNewSegmentForRepresentation(uint32_t representation_id,
    -
    881  uint64_t start_time,
    -
    882  uint64_t duration) {
    -
    883  if (mpd_options_.dash_profile == DashProfile::kLive) {
    -
    884  CheckLiveSegmentAlignment(representation_id, start_time, duration);
    -
    885  } else {
    -
    886  representation_segment_start_times_[representation_id].push_back(
    -
    887  start_time);
    -
    888  }
    -
    889 }
    -
    890 
    - -
    892  uint32_t representation_id,
    -
    893  uint32_t frame_duration,
    -
    894  uint32_t timescale) {
    -
    895  RecordFrameRate(frame_duration, timescale);
    -
    896 }
    -
    897 
    - -
    899  trick_play_reference_ids_.insert(id);
    -
    900 }
    -
    901 
    -
    902 bool AdaptationSet::GetEarliestTimestamp(double* timestamp_seconds) {
    -
    903  DCHECK(timestamp_seconds);
    -
    904 
    -
    905  double earliest_timestamp(-1);
    -
    906  for (const std::unique_ptr<Representation>& representation :
    -
    907  representations_) {
    -
    908  double timestamp;
    -
    909  if (representation->GetEarliestTimestamp(&timestamp) &&
    -
    910  ((earliest_timestamp < 0) || (timestamp < earliest_timestamp))) {
    -
    911  earliest_timestamp = timestamp;
    -
    912  }
    -
    913  }
    -
    914  if (earliest_timestamp < 0)
    -
    915  return false;
    -
    916 
    -
    917  *timestamp_seconds = earliest_timestamp;
    -
    918  return true;
    -
    919 }
    -
    920 
    -
    921 // This implementation assumes that each representations' segments' are
    -
    922 // contiguous.
    -
    923 // Also assumes that all Representations are added before this is called.
    -
    924 // This checks whether the first elements of the lists in
    -
    925 // representation_segment_start_times_ are aligned.
    -
    926 // For example, suppose this method was just called with args rep_id=2
    -
    927 // start_time=1.
    -
    928 // 1 -> [1, 100, 200]
    -
    929 // 2 -> [1]
    -
    930 // The timestamps of the first elements match, so this flags
    -
    931 // segments_aligned_=true.
    -
    932 // Also since the first segment start times match, the first element of all the
    -
    933 // lists are removed, so the map of lists becomes:
    -
    934 // 1 -> [100, 200]
    -
    935 // 2 -> []
    -
    936 // Note that there could be false positives.
    -
    937 // e.g. just got rep_id=3 start_time=1 duration=300, and the duration of the
    -
    938 // whole AdaptationSet is 300.
    -
    939 // 1 -> [1, 100, 200]
    -
    940 // 2 -> [1, 90, 100]
    -
    941 // 3 -> [1]
    -
    942 // They are not aligned but this will be marked as aligned.
    -
    943 // But since this is unlikely to happen in the packager (and to save
    -
    944 // computation), this isn't handled at the moment.
    -
    945 void AdaptationSet::CheckLiveSegmentAlignment(uint32_t representation_id,
    -
    946  uint64_t start_time,
    -
    947  uint64_t /* duration */) {
    -
    948  if (segments_aligned_ == kSegmentAlignmentFalse ||
    -
    949  force_set_segment_alignment_) {
    -
    950  return;
    -
    951  }
    -
    952 
    -
    953  std::list<uint64_t>& representation_start_times =
    -
    954  representation_segment_start_times_[representation_id];
    -
    955  representation_start_times.push_back(start_time);
    -
    956  // There's no way to detemine whether the segments are aligned if some
    -
    957  // representations do not have any segments.
    -
    958  if (representation_segment_start_times_.size() != representations_.size())
    -
    959  return;
    -
    960 
    -
    961  DCHECK(!representation_start_times.empty());
    -
    962  const uint64_t expected_start_time = representation_start_times.front();
    -
    963  for (RepresentationTimeline::const_iterator it =
    -
    964  representation_segment_start_times_.begin();
    -
    965  it != representation_segment_start_times_.end(); ++it) {
    -
    966  // If there are no entries in a list, then there is no way for the
    -
    967  // segment alignment status to change.
    -
    968  // Note that it can be empty because entries get deleted below.
    -
    969  if (it->second.empty())
    -
    970  return;
    -
    971 
    -
    972  if (expected_start_time != it->second.front()) {
    -
    973  // Flag as false and clear the start times data, no need to keep it
    -
    974  // around.
    -
    975  segments_aligned_ = kSegmentAlignmentFalse;
    -
    976  representation_segment_start_times_.clear();
    -
    977  return;
    -
    978  }
    -
    979  }
    -
    980  segments_aligned_ = kSegmentAlignmentTrue;
    -
    981 
    -
    982  for (RepresentationTimeline::iterator it =
    -
    983  representation_segment_start_times_.begin();
    -
    984  it != representation_segment_start_times_.end(); ++it) {
    -
    985  it->second.pop_front();
    -
    986  }
    -
    987 }
    -
    988 
    -
    989 // Make sure all segements start times match for all Representations.
    -
    990 // This assumes that the segments are contiguous.
    -
    991 void AdaptationSet::CheckVodSegmentAlignment() {
    -
    992  if (segments_aligned_ == kSegmentAlignmentFalse ||
    -
    993  force_set_segment_alignment_) {
    -
    994  return;
    -
    995  }
    -
    996  if (representation_segment_start_times_.empty())
    -
    997  return;
    -
    998  if (representation_segment_start_times_.size() == 1) {
    -
    999  segments_aligned_ = kSegmentAlignmentTrue;
    -
    1000  return;
    -
    1001  }
    -
    1002 
    -
    1003  // This is not the most efficient implementation to compare the values
    -
    1004  // because expected_time_line is compared against all other time lines, but
    -
    1005  // probably the most readable.
    -
    1006  const std::list<uint64_t>& expected_time_line =
    -
    1007  representation_segment_start_times_.begin()->second;
    -
    1008 
    -
    1009  bool all_segment_time_line_same_length = true;
    -
    1010  // Note that the first entry is skipped because it is expected_time_line.
    -
    1011  RepresentationTimeline::const_iterator it =
    -
    1012  representation_segment_start_times_.begin();
    -
    1013  for (++it; it != representation_segment_start_times_.end(); ++it) {
    -
    1014  const std::list<uint64_t>& other_time_line = it->second;
    -
    1015  if (expected_time_line.size() != other_time_line.size()) {
    -
    1016  all_segment_time_line_same_length = false;
    -
    1017  }
    -
    1018 
    -
    1019  const std::list<uint64_t>* longer_list = &other_time_line;
    -
    1020  const std::list<uint64_t>* shorter_list = &expected_time_line;
    -
    1021  if (expected_time_line.size() > other_time_line.size()) {
    -
    1022  shorter_list = &other_time_line;
    -
    1023  longer_list = &expected_time_line;
    -
    1024  }
    -
    1025 
    -
    1026  if (!std::equal(shorter_list->begin(), shorter_list->end(),
    -
    1027  longer_list->begin())) {
    -
    1028  // Some segments are definitely unaligned.
    -
    1029  segments_aligned_ = kSegmentAlignmentFalse;
    -
    1030  representation_segment_start_times_.clear();
    -
    1031  return;
    -
    1032  }
    -
    1033  }
    -
    1034 
    -
    1035  // TODO(rkuroiwa): The right way to do this is to also check the durations.
    -
    1036  // For example:
    -
    1037  // (a) 3 4 5
    -
    1038  // (b) 3 4 5 6
    -
    1039  // could be true or false depending on the length of the third segment of (a).
    -
    1040  // i.e. if length of the third segment is 2, then this is not aligned.
    -
    1041  if (!all_segment_time_line_same_length) {
    -
    1042  segments_aligned_ = kSegmentAlignmentUnknown;
    -
    1043  return;
    -
    1044  }
    -
    1045 
    -
    1046  segments_aligned_ = kSegmentAlignmentTrue;
    -
    1047 }
    -
    1048 
    -
    1049 // Since all AdaptationSet cares about is the maxFrameRate, representation_id
    -
    1050 // is not passed to this method.
    -
    1051 void AdaptationSet::RecordFrameRate(uint32_t frame_duration,
    -
    1052  uint32_t timescale) {
    -
    1053  if (frame_duration == 0) {
    -
    1054  LOG(ERROR) << "Frame duration is 0 and cannot be set.";
    -
    1055  return;
    -
    1056  }
    -
    1057  video_frame_rates_[static_cast<double>(timescale) / frame_duration] =
    -
    1058  base::IntToString(timescale) + "/" + base::IntToString(frame_duration);
    -
    1059 }
    +
    869 bool AdaptationSet::GetEarliestTimestamp(double* timestamp_seconds) {
    +
    870  DCHECK(timestamp_seconds);
    +
    871 
    +
    872  double earliest_timestamp(-1);
    +
    873  for (const std::unique_ptr<Representation>& representation :
    +
    874  representations_) {
    +
    875  double timestamp;
    +
    876  if (representation->GetEarliestTimestamp(&timestamp) &&
    +
    877  ((earliest_timestamp < 0) || (timestamp < earliest_timestamp))) {
    +
    878  earliest_timestamp = timestamp;
    +
    879  }
    +
    880  }
    +
    881  if (earliest_timestamp < 0)
    +
    882  return false;
    +
    883 
    +
    884  *timestamp_seconds = earliest_timestamp;
    +
    885  return true;
    +
    886 }
    +
    887 
    +
    888 // This implementation assumes that each representations' segments' are
    +
    889 // contiguous.
    +
    890 // Also assumes that all Representations are added before this is called.
    +
    891 // This checks whether the first elements of the lists in
    +
    892 // representation_segment_start_times_ are aligned.
    +
    893 // For example, suppose this method was just called with args rep_id=2
    +
    894 // start_time=1.
    +
    895 // 1 -> [1, 100, 200]
    +
    896 // 2 -> [1]
    +
    897 // The timestamps of the first elements match, so this flags
    +
    898 // segments_aligned_=true.
    +
    899 // Also since the first segment start times match, the first element of all the
    +
    900 // lists are removed, so the map of lists becomes:
    +
    901 // 1 -> [100, 200]
    +
    902 // 2 -> []
    +
    903 // Note that there could be false positives.
    +
    904 // e.g. just got rep_id=3 start_time=1 duration=300, and the duration of the
    +
    905 // whole AdaptationSet is 300.
    +
    906 // 1 -> [1, 100, 200]
    +
    907 // 2 -> [1, 90, 100]
    +
    908 // 3 -> [1]
    +
    909 // They are not aligned but this will be marked as aligned.
    +
    910 // But since this is unlikely to happen in the packager (and to save
    +
    911 // computation), this isn't handled at the moment.
    +
    912 void AdaptationSet::CheckLiveSegmentAlignment(uint32_t representation_id,
    +
    913  uint64_t start_time,
    +
    914  uint64_t /* duration */) {
    +
    915  if (segments_aligned_ == kSegmentAlignmentFalse ||
    +
    916  force_set_segment_alignment_) {
    +
    917  return;
    +
    918  }
    +
    919 
    +
    920  std::list<uint64_t>& representation_start_times =
    +
    921  representation_segment_start_times_[representation_id];
    +
    922  representation_start_times.push_back(start_time);
    +
    923  // There's no way to detemine whether the segments are aligned if some
    +
    924  // representations do not have any segments.
    +
    925  if (representation_segment_start_times_.size() != representations_.size())
    +
    926  return;
    +
    927 
    +
    928  DCHECK(!representation_start_times.empty());
    +
    929  const uint64_t expected_start_time = representation_start_times.front();
    +
    930  for (RepresentationTimeline::const_iterator it =
    +
    931  representation_segment_start_times_.begin();
    +
    932  it != representation_segment_start_times_.end(); ++it) {
    +
    933  // If there are no entries in a list, then there is no way for the
    +
    934  // segment alignment status to change.
    +
    935  // Note that it can be empty because entries get deleted below.
    +
    936  if (it->second.empty())
    +
    937  return;
    +
    938 
    +
    939  if (expected_start_time != it->second.front()) {
    +
    940  // Flag as false and clear the start times data, no need to keep it
    +
    941  // around.
    +
    942  segments_aligned_ = kSegmentAlignmentFalse;
    +
    943  representation_segment_start_times_.clear();
    +
    944  return;
    +
    945  }
    +
    946  }
    +
    947  segments_aligned_ = kSegmentAlignmentTrue;
    +
    948 
    +
    949  for (RepresentationTimeline::iterator it =
    +
    950  representation_segment_start_times_.begin();
    +
    951  it != representation_segment_start_times_.end(); ++it) {
    +
    952  it->second.pop_front();
    +
    953  }
    +
    954 }
    +
    955 
    +
    956 // Make sure all segements start times match for all Representations.
    +
    957 // This assumes that the segments are contiguous.
    +
    958 void AdaptationSet::CheckVodSegmentAlignment() {
    +
    959  if (segments_aligned_ == kSegmentAlignmentFalse ||
    +
    960  force_set_segment_alignment_) {
    +
    961  return;
    +
    962  }
    +
    963  if (representation_segment_start_times_.empty())
    +
    964  return;
    +
    965  if (representation_segment_start_times_.size() == 1) {
    +
    966  segments_aligned_ = kSegmentAlignmentTrue;
    +
    967  return;
    +
    968  }
    +
    969 
    +
    970  // This is not the most efficient implementation to compare the values
    +
    971  // because expected_time_line is compared against all other time lines, but
    +
    972  // probably the most readable.
    +
    973  const std::list<uint64_t>& expected_time_line =
    +
    974  representation_segment_start_times_.begin()->second;
    +
    975 
    +
    976  bool all_segment_time_line_same_length = true;
    +
    977  // Note that the first entry is skipped because it is expected_time_line.
    +
    978  RepresentationTimeline::const_iterator it =
    +
    979  representation_segment_start_times_.begin();
    +
    980  for (++it; it != representation_segment_start_times_.end(); ++it) {
    +
    981  const std::list<uint64_t>& other_time_line = it->second;
    +
    982  if (expected_time_line.size() != other_time_line.size()) {
    +
    983  all_segment_time_line_same_length = false;
    +
    984  }
    +
    985 
    +
    986  const std::list<uint64_t>* longer_list = &other_time_line;
    +
    987  const std::list<uint64_t>* shorter_list = &expected_time_line;
    +
    988  if (expected_time_line.size() > other_time_line.size()) {
    +
    989  shorter_list = &other_time_line;
    +
    990  longer_list = &expected_time_line;
    +
    991  }
    +
    992 
    +
    993  if (!std::equal(shorter_list->begin(), shorter_list->end(),
    +
    994  longer_list->begin())) {
    +
    995  // Some segments are definitely unaligned.
    +
    996  segments_aligned_ = kSegmentAlignmentFalse;
    +
    997  representation_segment_start_times_.clear();
    +
    998  return;
    +
    999  }
    +
    1000  }
    +
    1001 
    +
    1002  // TODO(rkuroiwa): The right way to do this is to also check the durations.
    +
    1003  // For example:
    +
    1004  // (a) 3 4 5
    +
    1005  // (b) 3 4 5 6
    +
    1006  // could be true or false depending on the length of the third segment of (a).
    +
    1007  // i.e. if length of the third segment is 2, then this is not aligned.
    +
    1008  if (!all_segment_time_line_same_length) {
    +
    1009  segments_aligned_ = kSegmentAlignmentUnknown;
    +
    1010  return;
    +
    1011  }
    +
    1012 
    +
    1013  segments_aligned_ = kSegmentAlignmentTrue;
    +
    1014 }
    +
    1015 
    +
    1016 // Since all AdaptationSet cares about is the maxFrameRate, representation_id
    +
    1017 // is not passed to this method.
    +
    1018 void AdaptationSet::RecordFrameRate(uint32_t frame_duration,
    +
    1019  uint32_t timescale) {
    +
    1020  if (frame_duration == 0) {
    +
    1021  LOG(ERROR) << "Frame duration is 0 and cannot be set.";
    +
    1022  return;
    +
    1023  }
    +
    1024  video_frame_rates_[static_cast<double>(timescale) / frame_duration] =
    +
    1025  base::IntToString(timescale) + "/" + base::IntToString(frame_duration);
    +
    1026 }
    +
    1027 
    + +
    1029  const MediaInfo& media_info,
    +
    1030  const MpdOptions& mpd_options,
    +
    1031  uint32_t id,
    +
    1032  std::unique_ptr<RepresentationStateChangeListener> state_change_listener)
    +
    1033  : media_info_(media_info),
    +
    1034  id_(id),
    +
    1035  bandwidth_estimator_(BandwidthEstimator::kUseAllBlocks),
    +
    1036  mpd_options_(mpd_options),
    +
    1037  start_number_(1),
    +
    1038  state_change_listener_(std::move(state_change_listener)),
    +
    1039  output_suppression_flags_(0) {}
    +
    1040 
    +
    1041 Representation::~Representation() {}
    +
    1042 
    + +
    1044  if (!AtLeastOneTrue(media_info_.has_video_info(),
    +
    1045  media_info_.has_audio_info(),
    +
    1046  media_info_.has_text_info())) {
    +
    1047  // This is an error. Segment information can be in AdaptationSet, Period, or
    +
    1048  // MPD but the interface does not provide a way to set them.
    +
    1049  // See 5.3.9.1 ISO 23009-1:2012 for segment info.
    +
    1050  LOG(ERROR) << "Representation needs one of video, audio, or text.";
    +
    1051  return false;
    +
    1052  }
    +
    1053 
    +
    1054  if (MoreThanOneTrue(media_info_.has_video_info(),
    +
    1055  media_info_.has_audio_info(),
    +
    1056  media_info_.has_text_info())) {
    +
    1057  LOG(ERROR) << "Only one of VideoInfo, AudioInfo, or TextInfo can be set.";
    +
    1058  return false;
    +
    1059  }
    1060 
    - -
    1062  const MediaInfo& media_info,
    -
    1063  const MpdOptions& mpd_options,
    -
    1064  uint32_t id,
    -
    1065  std::unique_ptr<RepresentationStateChangeListener> state_change_listener)
    -
    1066  : media_info_(media_info),
    -
    1067  id_(id),
    -
    1068  bandwidth_estimator_(BandwidthEstimator::kUseAllBlocks),
    -
    1069  mpd_options_(mpd_options),
    -
    1070  start_number_(1),
    -
    1071  state_change_listener_(std::move(state_change_listener)),
    -
    1072  output_suppression_flags_(0) {}
    -
    1073 
    -
    1074 Representation::~Representation() {}
    -
    1075 
    - -
    1077  if (!AtLeastOneTrue(media_info_.has_video_info(),
    -
    1078  media_info_.has_audio_info(),
    -
    1079  media_info_.has_text_info())) {
    -
    1080  // This is an error. Segment information can be in AdaptationSet, Period, or
    -
    1081  // MPD but the interface does not provide a way to set them.
    -
    1082  // See 5.3.9.1 ISO 23009-1:2012 for segment info.
    -
    1083  LOG(ERROR) << "Representation needs one of video, audio, or text.";
    -
    1084  return false;
    -
    1085  }
    -
    1086 
    -
    1087  if (MoreThanOneTrue(media_info_.has_video_info(),
    -
    1088  media_info_.has_audio_info(),
    -
    1089  media_info_.has_text_info())) {
    -
    1090  LOG(ERROR) << "Only one of VideoInfo, AudioInfo, or TextInfo can be set.";
    -
    1091  return false;
    -
    1092  }
    -
    1093 
    -
    1094  if (media_info_.container_type() == MediaInfo::CONTAINER_UNKNOWN) {
    -
    1095  LOG(ERROR) << "'container_type' in MediaInfo cannot be CONTAINER_UNKNOWN.";
    -
    1096  return false;
    -
    1097  }
    -
    1098 
    -
    1099  if (media_info_.has_video_info()) {
    -
    1100  mime_type_ = GetVideoMimeType();
    -
    1101  if (!HasRequiredVideoFields(media_info_.video_info())) {
    -
    1102  LOG(ERROR) << "Missing required fields to create a video Representation.";
    -
    1103  return false;
    -
    1104  }
    -
    1105  } else if (media_info_.has_audio_info()) {
    -
    1106  mime_type_ = GetAudioMimeType();
    -
    1107  } else if (media_info_.has_text_info()) {
    -
    1108  mime_type_ = GetTextMimeType();
    -
    1109  }
    -
    1110 
    -
    1111  if (mime_type_.empty())
    -
    1112  return false;
    +
    1061  if (media_info_.container_type() == MediaInfo::CONTAINER_UNKNOWN) {
    +
    1062  LOG(ERROR) << "'container_type' in MediaInfo cannot be CONTAINER_UNKNOWN.";
    +
    1063  return false;
    +
    1064  }
    +
    1065 
    +
    1066  if (media_info_.has_video_info()) {
    +
    1067  mime_type_ = GetVideoMimeType();
    +
    1068  if (!HasRequiredVideoFields(media_info_.video_info())) {
    +
    1069  LOG(ERROR) << "Missing required fields to create a video Representation.";
    +
    1070  return false;
    +
    1071  }
    +
    1072  } else if (media_info_.has_audio_info()) {
    +
    1073  mime_type_ = GetAudioMimeType();
    +
    1074  } else if (media_info_.has_text_info()) {
    +
    1075  mime_type_ = GetTextMimeType();
    +
    1076  }
    +
    1077 
    +
    1078  if (mime_type_.empty())
    +
    1079  return false;
    +
    1080 
    +
    1081  codecs_ = GetCodecs(media_info_);
    +
    1082  return true;
    +
    1083 }
    +
    1084 
    + +
    1086  const ContentProtectionElement& content_protection_element) {
    +
    1087  content_protection_elements_.push_back(content_protection_element);
    +
    1088  RemoveDuplicateAttributes(&content_protection_elements_.back());
    +
    1089 }
    +
    1090 
    +
    1091 void Representation::UpdateContentProtectionPssh(const std::string& drm_uuid,
    +
    1092  const std::string& pssh) {
    +
    1093  UpdateContentProtectionPsshHelper(drm_uuid, pssh,
    +
    1094  &content_protection_elements_);
    +
    1095 }
    +
    1096 
    +
    1097 void Representation::AddNewSegment(uint64_t start_time,
    +
    1098  uint64_t duration,
    +
    1099  uint64_t size) {
    +
    1100  if (start_time == 0 && duration == 0) {
    +
    1101  LOG(WARNING) << "Got segment with start_time and duration == 0. Ignoring.";
    +
    1102  return;
    +
    1103  }
    +
    1104 
    +
    1105  if (state_change_listener_)
    +
    1106  state_change_listener_->OnNewSegmentForRepresentation(start_time, duration);
    +
    1107  if (IsContiguous(start_time, duration, size)) {
    +
    1108  ++segment_infos_.back().repeat;
    +
    1109  } else {
    +
    1110  SegmentInfo s = {start_time, duration, /* Not repeat. */ 0};
    +
    1111  segment_infos_.push_back(s);
    +
    1112  }
    1113 
    -
    1114  codecs_ = GetCodecs(media_info_);
    -
    1115  return true;
    -
    1116 }
    -
    1117 
    - -
    1119  const ContentProtectionElement& content_protection_element) {
    -
    1120  content_protection_elements_.push_back(content_protection_element);
    -
    1121  RemoveDuplicateAttributes(&content_protection_elements_.back());
    -
    1122 }
    -
    1123 
    -
    1124 void Representation::UpdateContentProtectionPssh(const std::string& drm_uuid,
    -
    1125  const std::string& pssh) {
    -
    1126  UpdateContentProtectionPsshHelper(drm_uuid, pssh,
    -
    1127  &content_protection_elements_);
    -
    1128 }
    -
    1129 
    -
    1130 void Representation::AddNewSegment(uint64_t start_time,
    -
    1131  uint64_t duration,
    -
    1132  uint64_t size) {
    -
    1133  if (start_time == 0 && duration == 0) {
    -
    1134  LOG(WARNING) << "Got segment with start_time and duration == 0. Ignoring.";
    -
    1135  return;
    -
    1136  }
    -
    1137 
    -
    1138  if (state_change_listener_)
    -
    1139  state_change_listener_->OnNewSegmentForRepresentation(start_time, duration);
    -
    1140  if (IsContiguous(start_time, duration, size)) {
    -
    1141  ++segment_infos_.back().repeat;
    -
    1142  } else {
    -
    1143  SegmentInfo s = {start_time, duration, /* Not repeat. */ 0};
    -
    1144  segment_infos_.push_back(s);
    -
    1145  }
    +
    1114  bandwidth_estimator_.AddBlock(
    +
    1115  size, static_cast<double>(duration) / media_info_.reference_time_scale());
    +
    1116 
    +
    1117  SlideWindow();
    +
    1118  DCHECK_GE(segment_infos_.size(), 1u);
    +
    1119 }
    +
    1120 
    +
    1121 void Representation::SetSampleDuration(uint32_t sample_duration) {
    +
    1122  if (media_info_.has_video_info()) {
    +
    1123  media_info_.mutable_video_info()->set_frame_duration(sample_duration);
    +
    1124  if (state_change_listener_) {
    +
    1125  state_change_listener_->OnSetFrameRateForRepresentation(
    +
    1126  sample_duration, media_info_.video_info().time_scale());
    +
    1127  }
    +
    1128  }
    +
    1129 }
    +
    1130 
    +
    1131 // Uses info in |media_info_| and |content_protection_elements_| to create a
    +
    1132 // "Representation" node.
    +
    1133 // MPD schema has strict ordering. The following must be done in order.
    +
    1134 // AddVideoInfo() (possibly adds FramePacking elements), AddAudioInfo() (Adds
    +
    1135 // AudioChannelConfig elements), AddContentProtectionElements*(), and
    +
    1136 // AddVODOnlyInfo() (Adds segment info).
    +
    1137 xml::scoped_xml_ptr<xmlNode> Representation::GetXml() {
    +
    1138  if (!HasRequiredMediaInfoFields()) {
    +
    1139  LOG(ERROR) << "MediaInfo missing required fields.";
    +
    1140  return xml::scoped_xml_ptr<xmlNode>();
    +
    1141  }
    +
    1142 
    +
    1143  const uint64_t bandwidth = media_info_.has_bandwidth()
    +
    1144  ? media_info_.bandwidth()
    +
    1145  : bandwidth_estimator_.Estimate();
    1146 
    -
    1147  bandwidth_estimator_.AddBlock(
    -
    1148  size, static_cast<double>(duration) / media_info_.reference_time_scale());
    -
    1149 
    -
    1150  SlideWindow();
    -
    1151  DCHECK_GE(segment_infos_.size(), 1u);
    -
    1152 }
    -
    1153 
    -
    1154 void Representation::SetSampleDuration(uint32_t sample_duration) {
    -
    1155  if (media_info_.has_video_info()) {
    -
    1156  media_info_.mutable_video_info()->set_frame_duration(sample_duration);
    -
    1157  if (state_change_listener_) {
    -
    1158  state_change_listener_->OnSetFrameRateForRepresentation(
    -
    1159  sample_duration, media_info_.video_info().time_scale());
    -
    1160  }
    -
    1161  }
    -
    1162 }
    -
    1163 
    -
    1164 // Uses info in |media_info_| and |content_protection_elements_| to create a
    -
    1165 // "Representation" node.
    -
    1166 // MPD schema has strict ordering. The following must be done in order.
    -
    1167 // AddVideoInfo() (possibly adds FramePacking elements), AddAudioInfo() (Adds
    -
    1168 // AudioChannelConfig elements), AddContentProtectionElements*(), and
    -
    1169 // AddVODOnlyInfo() (Adds segment info).
    -
    1170 xml::scoped_xml_ptr<xmlNode> Representation::GetXml() {
    -
    1171  if (!HasRequiredMediaInfoFields()) {
    -
    1172  LOG(ERROR) << "MediaInfo missing required fields.";
    +
    1147  DCHECK(!(HasVODOnlyFields(media_info_) && HasLiveOnlyFields(media_info_)));
    +
    1148 
    +
    1149  RepresentationXmlNode representation;
    +
    1150  // Mandatory fields for Representation.
    +
    1151  representation.SetId(id_);
    +
    1152  representation.SetIntegerAttribute("bandwidth", bandwidth);
    +
    1153  if (!codecs_.empty())
    +
    1154  representation.SetStringAttribute("codecs", codecs_);
    +
    1155  representation.SetStringAttribute("mimeType", mime_type_);
    +
    1156 
    +
    1157  const bool has_video_info = media_info_.has_video_info();
    +
    1158  const bool has_audio_info = media_info_.has_audio_info();
    +
    1159 
    +
    1160  if (has_video_info &&
    +
    1161  !representation.AddVideoInfo(
    +
    1162  media_info_.video_info(),
    +
    1163  !(output_suppression_flags_ & kSuppressWidth),
    +
    1164  !(output_suppression_flags_ & kSuppressHeight),
    +
    1165  !(output_suppression_flags_ & kSuppressFrameRate))) {
    +
    1166  LOG(ERROR) << "Failed to add video info to Representation XML.";
    +
    1167  return xml::scoped_xml_ptr<xmlNode>();
    +
    1168  }
    +
    1169 
    +
    1170  if (has_audio_info &&
    +
    1171  !representation.AddAudioInfo(media_info_.audio_info())) {
    +
    1172  LOG(ERROR) << "Failed to add audio info to Representation XML.";
    1173  return xml::scoped_xml_ptr<xmlNode>();
    1174  }
    1175 
    -
    1176  const uint64_t bandwidth = media_info_.has_bandwidth()
    -
    1177  ? media_info_.bandwidth()
    -
    1178  : bandwidth_estimator_.Estimate();
    -
    1179 
    -
    1180  DCHECK(!(HasVODOnlyFields(media_info_) && HasLiveOnlyFields(media_info_)));
    -
    1181 
    -
    1182  RepresentationXmlNode representation;
    -
    1183  // Mandatory fields for Representation.
    -
    1184  representation.SetId(id_);
    -
    1185  representation.SetIntegerAttribute("bandwidth", bandwidth);
    -
    1186  if (!codecs_.empty())
    -
    1187  representation.SetStringAttribute("codecs", codecs_);
    -
    1188  representation.SetStringAttribute("mimeType", mime_type_);
    +
    1176  if (!representation.AddContentProtectionElements(
    +
    1177  content_protection_elements_)) {
    +
    1178  return xml::scoped_xml_ptr<xmlNode>();
    +
    1179  }
    +
    1180 
    +
    1181  // Set media duration for static mpd.
    +
    1182  if (mpd_options_.mpd_type == MpdType::kStatic &&
    +
    1183  media_info_.has_media_duration_seconds()) {
    +
    1184  // Adding 'duration' attribute, so that this information can be used when
    +
    1185  // generating one MPD file. This should be removed from the final MPD.
    +
    1186  representation.SetFloatingPointAttribute(
    +
    1187  "duration", media_info_.media_duration_seconds());
    +
    1188  }
    1189 
    -
    1190  const bool has_video_info = media_info_.has_video_info();
    -
    1191  const bool has_audio_info = media_info_.has_audio_info();
    -
    1192 
    -
    1193  if (has_video_info &&
    -
    1194  !representation.AddVideoInfo(
    -
    1195  media_info_.video_info(),
    -
    1196  !(output_suppression_flags_ & kSuppressWidth),
    -
    1197  !(output_suppression_flags_ & kSuppressHeight),
    -
    1198  !(output_suppression_flags_ & kSuppressFrameRate))) {
    -
    1199  LOG(ERROR) << "Failed to add video info to Representation XML.";
    +
    1190  if (HasVODOnlyFields(media_info_) &&
    +
    1191  !representation.AddVODOnlyInfo(media_info_)) {
    +
    1192  LOG(ERROR) << "Failed to add VOD segment info.";
    +
    1193  return xml::scoped_xml_ptr<xmlNode>();
    +
    1194  }
    +
    1195 
    +
    1196  if (HasLiveOnlyFields(media_info_) &&
    +
    1197  !representation.AddLiveOnlyInfo(media_info_, segment_infos_,
    +
    1198  start_number_)) {
    +
    1199  LOG(ERROR) << "Failed to add Live info.";
    1200  return xml::scoped_xml_ptr<xmlNode>();
    1201  }
    -
    1202 
    -
    1203  if (has_audio_info &&
    -
    1204  !representation.AddAudioInfo(media_info_.audio_info())) {
    -
    1205  LOG(ERROR) << "Failed to add audio info to Representation XML.";
    -
    1206  return xml::scoped_xml_ptr<xmlNode>();
    -
    1207  }
    +
    1202  // TODO(rkuroiwa): It is likely that all representations have the exact same
    +
    1203  // SegmentTemplate. Optimize and propagate the tag up to AdaptationSet level.
    +
    1204 
    +
    1205  output_suppression_flags_ = 0;
    +
    1206  return representation.PassScopedPtr();
    +
    1207 }
    1208 
    -
    1209  if (!representation.AddContentProtectionElements(
    -
    1210  content_protection_elements_)) {
    -
    1211  return xml::scoped_xml_ptr<xmlNode>();
    -
    1212  }
    -
    1213 
    -
    1214  // Set media duration for static mpd.
    -
    1215  if (mpd_options_.mpd_type == MpdType::kStatic &&
    -
    1216  media_info_.has_media_duration_seconds()) {
    -
    1217  // Adding 'duration' attribute, so that this information can be used when
    -
    1218  // generating one MPD file. This should be removed from the final MPD.
    -
    1219  representation.SetFloatingPointAttribute(
    -
    1220  "duration", media_info_.media_duration_seconds());
    -
    1221  }
    -
    1222 
    -
    1223  if (HasVODOnlyFields(media_info_) &&
    -
    1224  !representation.AddVODOnlyInfo(media_info_)) {
    -
    1225  LOG(ERROR) << "Failed to add VOD segment info.";
    -
    1226  return xml::scoped_xml_ptr<xmlNode>();
    -
    1227  }
    -
    1228 
    -
    1229  if (HasLiveOnlyFields(media_info_) &&
    -
    1230  !representation.AddLiveOnlyInfo(media_info_, segment_infos_,
    -
    1231  start_number_)) {
    -
    1232  LOG(ERROR) << "Failed to add Live info.";
    -
    1233  return xml::scoped_xml_ptr<xmlNode>();
    -
    1234  }
    -
    1235  // TODO(rkuroiwa): It is likely that all representations have the exact same
    -
    1236  // SegmentTemplate. Optimize and propagate the tag up to AdaptationSet level.
    -
    1237 
    -
    1238  output_suppression_flags_ = 0;
    -
    1239  return representation.PassScopedPtr();
    -
    1240 }
    -
    1241 
    -
    1242 void Representation::SuppressOnce(SuppressFlag flag) {
    -
    1243  output_suppression_flags_ |= flag;
    -
    1244 }
    -
    1245 
    -
    1246 bool Representation::HasRequiredMediaInfoFields() {
    -
    1247  if (HasVODOnlyFields(media_info_) && HasLiveOnlyFields(media_info_)) {
    -
    1248  LOG(ERROR) << "MediaInfo cannot have both VOD and Live fields.";
    -
    1249  return false;
    +
    1209 void Representation::SuppressOnce(SuppressFlag flag) {
    +
    1210  output_suppression_flags_ |= flag;
    +
    1211 }
    +
    1212 
    +
    1213 bool Representation::HasRequiredMediaInfoFields() {
    +
    1214  if (HasVODOnlyFields(media_info_) && HasLiveOnlyFields(media_info_)) {
    +
    1215  LOG(ERROR) << "MediaInfo cannot have both VOD and Live fields.";
    +
    1216  return false;
    +
    1217  }
    +
    1218 
    +
    1219  if (!media_info_.has_container_type()) {
    +
    1220  LOG(ERROR) << "MediaInfo missing required field: container_type.";
    +
    1221  return false;
    +
    1222  }
    +
    1223 
    +
    1224  if (HasVODOnlyFields(media_info_) && !media_info_.has_bandwidth()) {
    +
    1225  LOG(ERROR) << "Missing 'bandwidth' field. MediaInfo requires bandwidth for "
    +
    1226  "static profile for generating a valid MPD.";
    +
    1227  return false;
    +
    1228  }
    +
    1229 
    +
    1230  VLOG_IF(3, HasLiveOnlyFields(media_info_) && !media_info_.has_bandwidth())
    +
    1231  << "MediaInfo missing field 'bandwidth'. Using estimated from "
    +
    1232  "segment size.";
    +
    1233 
    +
    1234  return true;
    +
    1235 }
    +
    1236 
    +
    1237 bool Representation::IsContiguous(uint64_t start_time,
    +
    1238  uint64_t duration,
    +
    1239  uint64_t size) const {
    +
    1240  if (segment_infos_.empty())
    +
    1241  return false;
    +
    1242 
    +
    1243  // Contiguous segment.
    +
    1244  const SegmentInfo& previous = segment_infos_.back();
    +
    1245  const uint64_t previous_segment_end_time =
    +
    1246  previous.start_time + previous.duration * (previous.repeat + 1);
    +
    1247  if (previous_segment_end_time == start_time &&
    +
    1248  segment_infos_.back().duration == duration) {
    +
    1249  return true;
    1250  }
    1251 
    -
    1252  if (!media_info_.has_container_type()) {
    -
    1253  LOG(ERROR) << "MediaInfo missing required field: container_type.";
    -
    1254  return false;
    -
    1255  }
    -
    1256 
    -
    1257  if (HasVODOnlyFields(media_info_) && !media_info_.has_bandwidth()) {
    -
    1258  LOG(ERROR) << "Missing 'bandwidth' field. MediaInfo requires bandwidth for "
    -
    1259  "static profile for generating a valid MPD.";
    +
    1252  // No out of order segments.
    +
    1253  const uint64_t previous_segment_start_time =
    +
    1254  previous.start_time + previous.duration * previous.repeat;
    +
    1255  if (previous_segment_start_time >= start_time) {
    +
    1256  LOG(ERROR) << "Segments should not be out of order segment. Adding segment "
    +
    1257  "with start_time == "
    +
    1258  << start_time << " but the previous segment starts at "
    +
    1259  << previous_segment_start_time << ".";
    1260  return false;
    1261  }
    1262 
    -
    1263  VLOG_IF(3, HasLiveOnlyFields(media_info_) && !media_info_.has_bandwidth())
    -
    1264  << "MediaInfo missing field 'bandwidth'. Using estimated from "
    -
    1265  "segment size.";
    -
    1266 
    -
    1267  return true;
    -
    1268 }
    -
    1269 
    -
    1270 bool Representation::IsContiguous(uint64_t start_time,
    -
    1271  uint64_t duration,
    -
    1272  uint64_t size) const {
    -
    1273  if (segment_infos_.empty())
    -
    1274  return false;
    -
    1275 
    -
    1276  // Contiguous segment.
    -
    1277  const SegmentInfo& previous = segment_infos_.back();
    -
    1278  const uint64_t previous_segment_end_time =
    -
    1279  previous.start_time + previous.duration * (previous.repeat + 1);
    -
    1280  if (previous_segment_end_time == start_time &&
    -
    1281  segment_infos_.back().duration == duration) {
    -
    1282  return true;
    -
    1283  }
    -
    1284 
    -
    1285  // No out of order segments.
    -
    1286  const uint64_t previous_segment_start_time =
    -
    1287  previous.start_time + previous.duration * previous.repeat;
    -
    1288  if (previous_segment_start_time >= start_time) {
    -
    1289  LOG(ERROR) << "Segments should not be out of order segment. Adding segment "
    -
    1290  "with start_time == "
    -
    1291  << start_time << " but the previous segment starts at "
    -
    1292  << previous_segment_start_time << ".";
    -
    1293  return false;
    -
    1294  }
    -
    1295 
    -
    1296  // A gap since previous.
    -
    1297  const uint64_t kRoundingErrorGrace = 5;
    -
    1298  if (previous_segment_end_time + kRoundingErrorGrace < start_time) {
    -
    1299  LOG(WARNING) << "Found a gap of size "
    -
    1300  << (start_time - previous_segment_end_time)
    -
    1301  << " > kRoundingErrorGrace (" << kRoundingErrorGrace
    -
    1302  << "). The new segment starts at " << start_time
    -
    1303  << " but the previous segment ends at "
    -
    1304  << previous_segment_end_time << ".";
    -
    1305  return false;
    -
    1306  }
    +
    1263  // A gap since previous.
    +
    1264  const uint64_t kRoundingErrorGrace = 5;
    +
    1265  if (previous_segment_end_time + kRoundingErrorGrace < start_time) {
    +
    1266  LOG(WARNING) << "Found a gap of size "
    +
    1267  << (start_time - previous_segment_end_time)
    +
    1268  << " > kRoundingErrorGrace (" << kRoundingErrorGrace
    +
    1269  << "). The new segment starts at " << start_time
    +
    1270  << " but the previous segment ends at "
    +
    1271  << previous_segment_end_time << ".";
    +
    1272  return false;
    +
    1273  }
    +
    1274 
    +
    1275  // No overlapping segments.
    +
    1276  if (start_time < previous_segment_end_time - kRoundingErrorGrace) {
    +
    1277  LOG(WARNING)
    +
    1278  << "Segments should not be overlapping. The new segment starts at "
    +
    1279  << start_time << " but the previous segment ends at "
    +
    1280  << previous_segment_end_time << ".";
    +
    1281  return false;
    +
    1282  }
    +
    1283 
    +
    1284  // Within rounding error grace but technically not contiguous in terms of MPD.
    +
    1285  return false;
    +
    1286 }
    +
    1287 
    +
    1288 void Representation::SlideWindow() {
    +
    1289  DCHECK(!segment_infos_.empty());
    +
    1290  if (mpd_options_.time_shift_buffer_depth <= 0.0 ||
    +
    1291  mpd_options_.mpd_type == MpdType::kStatic)
    +
    1292  return;
    +
    1293 
    +
    1294  const uint32_t time_scale = GetTimeScale(media_info_);
    +
    1295  DCHECK_GT(time_scale, 0u);
    +
    1296 
    +
    1297  uint64_t time_shift_buffer_depth =
    +
    1298  static_cast<uint64_t>(mpd_options_.time_shift_buffer_depth * time_scale);
    +
    1299 
    +
    1300  // The start time of the latest segment is considered the current_play_time,
    +
    1301  // and this should guarantee that the latest segment will stay in the list.
    +
    1302  const uint64_t current_play_time = LatestSegmentStartTime(segment_infos_);
    +
    1303  if (current_play_time <= time_shift_buffer_depth)
    +
    1304  return;
    +
    1305 
    +
    1306  const uint64_t timeshift_limit = current_play_time - time_shift_buffer_depth;
    1307 
    -
    1308  // No overlapping segments.
    -
    1309  if (start_time < previous_segment_end_time - kRoundingErrorGrace) {
    -
    1310  LOG(WARNING)
    -
    1311  << "Segments should not be overlapping. The new segment starts at "
    -
    1312  << start_time << " but the previous segment ends at "
    -
    1313  << previous_segment_end_time << ".";
    -
    1314  return false;
    -
    1315  }
    -
    1316 
    -
    1317  // Within rounding error grace but technically not contiguous in terms of MPD.
    -
    1318  return false;
    -
    1319 }
    -
    1320 
    -
    1321 void Representation::SlideWindow() {
    -
    1322  DCHECK(!segment_infos_.empty());
    -
    1323  if (mpd_options_.time_shift_buffer_depth <= 0.0 ||
    -
    1324  mpd_options_.mpd_type == MpdType::kStatic)
    -
    1325  return;
    -
    1326 
    -
    1327  const uint32_t time_scale = GetTimeScale(media_info_);
    -
    1328  DCHECK_GT(time_scale, 0u);
    -
    1329 
    -
    1330  uint64_t time_shift_buffer_depth =
    -
    1331  static_cast<uint64_t>(mpd_options_.time_shift_buffer_depth * time_scale);
    +
    1308  // First remove all the SegmentInfos that are completely out of range, by
    +
    1309  // looking at the very last segment's end time.
    +
    1310  std::list<SegmentInfo>::iterator first = segment_infos_.begin();
    +
    1311  std::list<SegmentInfo>::iterator last = first;
    +
    1312  size_t num_segments_removed = 0;
    +
    1313  for (; last != segment_infos_.end(); ++last) {
    +
    1314  const uint64_t last_segment_end_time = LastSegmentEndTime(*last);
    +
    1315  if (timeshift_limit < last_segment_end_time)
    +
    1316  break;
    +
    1317  num_segments_removed += last->repeat + 1;
    +
    1318  }
    +
    1319  segment_infos_.erase(first, last);
    +
    1320  start_number_ += num_segments_removed;
    +
    1321 
    +
    1322  // Now some segment in the first SegmentInfo should be left in the list.
    +
    1323  SegmentInfo* first_segment_info = &segment_infos_.front();
    +
    1324  DCHECK_LE(timeshift_limit, LastSegmentEndTime(*first_segment_info));
    +
    1325 
    +
    1326  // Identify which segments should still be in the SegmentInfo.
    +
    1327  const int repeat_index =
    +
    1328  SearchTimedOutRepeatIndex(timeshift_limit, *first_segment_info);
    +
    1329  CHECK_GE(repeat_index, 0);
    +
    1330  if (repeat_index == 0)
    +
    1331  return;
    1332 
    -
    1333  // The start time of the latest segment is considered the current_play_time,
    -
    1334  // and this should guarantee that the latest segment will stay in the list.
    -
    1335  const uint64_t current_play_time = LatestSegmentStartTime(segment_infos_);
    -
    1336  if (current_play_time <= time_shift_buffer_depth)
    -
    1337  return;
    -
    1338 
    -
    1339  const uint64_t timeshift_limit = current_play_time - time_shift_buffer_depth;
    -
    1340 
    -
    1341  // First remove all the SegmentInfos that are completely out of range, by
    -
    1342  // looking at the very last segment's end time.
    -
    1343  std::list<SegmentInfo>::iterator first = segment_infos_.begin();
    -
    1344  std::list<SegmentInfo>::iterator last = first;
    -
    1345  size_t num_segments_removed = 0;
    -
    1346  for (; last != segment_infos_.end(); ++last) {
    -
    1347  const uint64_t last_segment_end_time = LastSegmentEndTime(*last);
    -
    1348  if (timeshift_limit < last_segment_end_time)
    -
    1349  break;
    -
    1350  num_segments_removed += last->repeat + 1;
    -
    1351  }
    -
    1352  segment_infos_.erase(first, last);
    -
    1353  start_number_ += num_segments_removed;
    -
    1354 
    -
    1355  // Now some segment in the first SegmentInfo should be left in the list.
    -
    1356  SegmentInfo* first_segment_info = &segment_infos_.front();
    -
    1357  DCHECK_LE(timeshift_limit, LastSegmentEndTime(*first_segment_info));
    -
    1358 
    -
    1359  // Identify which segments should still be in the SegmentInfo.
    -
    1360  const int repeat_index =
    -
    1361  SearchTimedOutRepeatIndex(timeshift_limit, *first_segment_info);
    -
    1362  CHECK_GE(repeat_index, 0);
    -
    1363  if (repeat_index == 0)
    -
    1364  return;
    -
    1365 
    -
    1366  first_segment_info->start_time = first_segment_info->start_time +
    -
    1367  first_segment_info->duration * repeat_index;
    -
    1368 
    -
    1369  first_segment_info->repeat = first_segment_info->repeat - repeat_index;
    -
    1370  start_number_ += repeat_index;
    -
    1371 }
    +
    1333  first_segment_info->start_time = first_segment_info->start_time +
    +
    1334  first_segment_info->duration * repeat_index;
    +
    1335 
    +
    1336  first_segment_info->repeat = first_segment_info->repeat - repeat_index;
    +
    1337  start_number_ += repeat_index;
    +
    1338 }
    +
    1339 
    +
    1340 std::string Representation::GetVideoMimeType() const {
    +
    1341  return GetMimeType("video", media_info_.container_type());
    +
    1342 }
    +
    1343 
    +
    1344 std::string Representation::GetAudioMimeType() const {
    +
    1345  return GetMimeType("audio", media_info_.container_type());
    +
    1346 }
    +
    1347 
    +
    1348 std::string Representation::GetTextMimeType() const {
    +
    1349  CHECK(media_info_.has_text_info());
    +
    1350  if (media_info_.text_info().format() == "ttml") {
    +
    1351  switch (media_info_.container_type()) {
    +
    1352  case MediaInfo::CONTAINER_TEXT:
    +
    1353  return "application/ttml+xml";
    +
    1354  case MediaInfo::CONTAINER_MP4:
    +
    1355  return "application/mp4";
    +
    1356  default:
    +
    1357  LOG(ERROR) << "Failed to determine MIME type for TTML container: "
    +
    1358  << media_info_.container_type();
    +
    1359  return "";
    +
    1360  }
    +
    1361  }
    +
    1362  if (media_info_.text_info().format() == "vtt") {
    +
    1363  if (media_info_.container_type() == MediaInfo::CONTAINER_TEXT) {
    +
    1364  return "text/vtt";
    +
    1365  } else if (media_info_.container_type() == MediaInfo::CONTAINER_MP4) {
    +
    1366  return "application/mp4";
    +
    1367  }
    +
    1368  LOG(ERROR) << "Failed to determine MIME type for VTT container: "
    +
    1369  << media_info_.container_type();
    +
    1370  return "";
    +
    1371  }
    1372 
    -
    1373 std::string Representation::GetVideoMimeType() const {
    -
    1374  return GetMimeType("video", media_info_.container_type());
    -
    1375 }
    -
    1376 
    -
    1377 std::string Representation::GetAudioMimeType() const {
    -
    1378  return GetMimeType("audio", media_info_.container_type());
    -
    1379 }
    -
    1380 
    -
    1381 std::string Representation::GetTextMimeType() const {
    -
    1382  CHECK(media_info_.has_text_info());
    -
    1383  if (media_info_.text_info().format() == "ttml") {
    -
    1384  switch (media_info_.container_type()) {
    -
    1385  case MediaInfo::CONTAINER_TEXT:
    -
    1386  return "application/ttml+xml";
    -
    1387  case MediaInfo::CONTAINER_MP4:
    -
    1388  return "application/mp4";
    -
    1389  default:
    -
    1390  LOG(ERROR) << "Failed to determine MIME type for TTML container: "
    -
    1391  << media_info_.container_type();
    -
    1392  return "";
    -
    1393  }
    -
    1394  }
    -
    1395  if (media_info_.text_info().format() == "vtt") {
    -
    1396  if (media_info_.container_type() == MediaInfo::CONTAINER_TEXT) {
    -
    1397  return "text/vtt";
    -
    1398  } else if (media_info_.container_type() == MediaInfo::CONTAINER_MP4) {
    -
    1399  return "application/mp4";
    -
    1400  }
    -
    1401  LOG(ERROR) << "Failed to determine MIME type for VTT container: "
    -
    1402  << media_info_.container_type();
    -
    1403  return "";
    -
    1404  }
    -
    1405 
    -
    1406  LOG(ERROR) << "Cannot determine MIME type for format: "
    -
    1407  << media_info_.text_info().format()
    -
    1408  << " container: " << media_info_.container_type();
    -
    1409  return "";
    -
    1410 }
    -
    1411 
    -
    1412 bool Representation::GetEarliestTimestamp(double* timestamp_seconds) {
    -
    1413  DCHECK(timestamp_seconds);
    -
    1414 
    -
    1415  if (segment_infos_.empty())
    -
    1416  return false;
    -
    1417 
    -
    1418  *timestamp_seconds = static_cast<double>(segment_infos_.begin()->start_time) /
    -
    1419  GetTimeScale(media_info_);
    -
    1420  return true;
    -
    1421 }
    -
    1422 
    -
    1423 } // namespace shaka
    -
    void OnSetFrameRateForRepresentation(uint32_t representation_id, uint32_t frame_duration, uint32_t timescale)
    Definition: mpd_builder.cc:891
    -
    virtual void AddNewSegment(uint64_t start_time, uint64_t duration, uint64_t size)
    - -
    bool WriteMpdToFile(media::File *output_file)
    Definition: mpd_builder.cc:419
    -
    Representation(const MediaInfo &media_info, const MpdOptions &mpd_options, uint32_t representation_id, std::unique_ptr< RepresentationStateChangeListener > state_change_listener)
    - -
    virtual void SetSampleDuration(uint32_t sample_duration)
    -
    virtual Representation * AddRepresentation(const MediaInfo &media_info)
    Definition: mpd_builder.cc:696
    +
    1373  LOG(ERROR) << "Cannot determine MIME type for format: "
    +
    1374  << media_info_.text_info().format()
    +
    1375  << " container: " << media_info_.container_type();
    +
    1376  return "";
    +
    1377 }
    +
    1378 
    +
    1379 bool Representation::GetEarliestTimestamp(double* timestamp_seconds) {
    +
    1380  DCHECK(timestamp_seconds);
    +
    1381 
    +
    1382  if (segment_infos_.empty())
    +
    1383  return false;
    +
    1384 
    +
    1385  *timestamp_seconds = static_cast<double>(segment_infos_.begin()->start_time) /
    +
    1386  GetTimeScale(media_info_);
    +
    1387  return true;
    +
    1388 }
    +
    1389 
    +
    1390 } // namespace shaka
    +
    void OnSetFrameRateForRepresentation(uint32_t representation_id, uint32_t frame_duration, uint32_t timescale)
    Definition: mpd_builder.cc:858
    +
    virtual void AddNewSegment(uint64_t start_time, uint64_t duration, uint64_t size)
    + +
    Representation(const MediaInfo &media_info, const MpdOptions &mpd_options, uint32_t representation_id, std::unique_ptr< RepresentationStateChangeListener > state_change_listener)
    + +
    virtual void SetSampleDuration(uint32_t sample_duration)
    +
    virtual Representation * AddRepresentation(const MediaInfo &media_info)
    Definition: mpd_builder.cc:663
    std::string LanguageToShortestForm(const std::string &language)
    -
    Define an abstract file interface.
    Definition: file.h:24
    -
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    Definition: mpd_builder.cc:742
    +
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    Definition: mpd_builder.cc:709
    -
    virtual void AddTrickPlayReferenceId(uint32_t id)
    Definition: mpd_builder.cc:898
    -
    MpdBuilder(const MpdOptions &mpd_options)
    Definition: mpd_builder.cc:396
    -
    virtual void AddRole(Role role)
    Definition: mpd_builder.cc:754
    -
    void AddBaseUrl(const std::string &base_url)
    Definition: mpd_builder.cc:401
    -
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    Definition: mpd_builder.cc:748
    -
    AdaptationSet(uint32_t adaptation_set_id, const std::string &lang, const MpdOptions &mpd_options, base::AtomicSequenceNumber *representation_counter)
    Definition: mpd_builder.cc:681
    -
    xml::scoped_xml_ptr< xmlNode > GetXml()
    -
    virtual bool ToString(std::string *output)
    Definition: mpd_builder.cc:424
    -
    void AddAdaptationSetSwitching(uint32_t adaptation_set_id)
    Definition: mpd_builder.cc:869
    -
    virtual void ForceSetSegmentAlignment(bool segment_alignment)
    Definition: mpd_builder.cc:863
    -
    static void MakePathsRelativeToMpd(const std::string &mpd_path, MediaInfo *media_info)
    Definition: mpd_builder.cc:653
    -
    xml::scoped_xml_ptr< xmlNode > GetXml()
    Definition: mpd_builder.cc:764
    -
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    - -
    virtual AdaptationSet * AddAdaptationSet(const std::string &lang)
    Definition: mpd_builder.cc:405
    +
    virtual void AddTrickPlayReferenceId(uint32_t id)
    Definition: mpd_builder.cc:865
    +
    MpdBuilder(const MpdOptions &mpd_options)
    Definition: mpd_builder.cc:373
    +
    virtual void AddRole(Role role)
    Definition: mpd_builder.cc:721
    +
    void AddBaseUrl(const std::string &base_url)
    Definition: mpd_builder.cc:378
    +
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    Definition: mpd_builder.cc:715
    +
    AdaptationSet(uint32_t adaptation_set_id, const std::string &lang, const MpdOptions &mpd_options, base::AtomicSequenceNumber *representation_counter)
    Definition: mpd_builder.cc:648
    +
    xml::scoped_xml_ptr< xmlNode > GetXml()
    +
    virtual bool ToString(std::string *output)
    Definition: mpd_builder.cc:396
    +
    void AddAdaptationSetSwitching(uint32_t adaptation_set_id)
    Definition: mpd_builder.cc:836
    +
    virtual void ForceSetSegmentAlignment(bool segment_alignment)
    Definition: mpd_builder.cc:830
    +
    static void MakePathsRelativeToMpd(const std::string &mpd_path, MediaInfo *media_info)
    Definition: mpd_builder.cc:620
    +
    xml::scoped_xml_ptr< xmlNode > GetXml()
    Definition: mpd_builder.cc:731
    +
    virtual void AddContentProtectionElement(const ContentProtectionElement &element)
    + +
    virtual AdaptationSet * AddAdaptationSet(const std::string &lang)
    Definition: mpd_builder.cc:382
    Defines Mpd Options.
    Definition: mpd_options.h:23
    -
    void OnNewSegmentForRepresentation(uint32_t representation_id, uint64_t start_time, uint64_t duration)
    Definition: mpd_builder.cc:880
    -
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    +
    void OnNewSegmentForRepresentation(uint32_t representation_id, uint64_t start_time, uint64_t duration)
    Definition: mpd_builder.cc:847
    +
    virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
    -
    void SuppressOnce(SuppressFlag flag)
    +
    void SuppressOnce(SuppressFlag flag)
    diff --git a/docs/dd/d12/mpd__writer_8cc_source.html b/docs/dd/d12/mpd__writer_8cc_source.html index 77ba11c3e5..92f647e7d8 100644 --- a/docs/dd/d12/mpd__writer_8cc_source.html +++ b/docs/dd/d12/mpd__writer_8cc_source.html @@ -214,12 +214,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    125 }
    126 
    127 } // namespace shaka
    -
    static void MakePathsRelativeToMpd(const std::string &mpd_path, MediaInfo *media_info)
    Definition: mpd_builder.cc:653
    -
    static bool ReadFileToString(const char *file_name, std::string *contents)
    Definition: file.cc:185
    +
    static void MakePathsRelativeToMpd(const std::string &mpd_path, MediaInfo *media_info)
    Definition: mpd_builder.cc:620
    +
    static bool ReadFileToString(const char *file_name, std::string *contents)
    Definition: file.cc:199
    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 3533bcda68..0db311b441 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 12b008d03e..72947fc9ca 100644 --- a/docs/dd/d17/classshaka_1_1media_1_1Demuxer.html +++ b/docs/dd/d17/classshaka_1_1media_1_1Demuxer.html @@ -467,7 +467,7 @@ std::pair< std::shared_ptr
    diff --git a/docs/dd/d18/es__parser__adts_8h_source.html b/docs/dd/d18/es__parser__adts_8h_source.html index 202668c77b..9817e43394 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 3d56dacff0..7cf09f2ce1 100644 --- a/docs/dd/d19/video__stream__info_8cc_source.html +++ b/docs/dd/d19/video__stream__info_8cc_source.html @@ -186,7 +186,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 8abd4feb0a..43640746a1 100644 --- a/docs/dd/d30/wvm__media__parser_8cc_source.html +++ b/docs/dd/d30/wvm__media__parser_8cc_source.html @@ -1272,7 +1272,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d3a/gflags__hex__bytes_8h_source.html b/docs/dd/d3a/gflags__hex__bytes_8h_source.html index 1fb9fa208d..81bf7bc404 100644 --- a/docs/dd/d3a/gflags__hex__bytes_8h_source.html +++ b/docs/dd/d3a/gflags__hex__bytes_8h_source.html @@ -140,7 +140,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 3915335b6b..ba27565137 100644 --- a/docs/dd/d3b/mp4_2segmenter_8h_source.html +++ b/docs/dd/d3b/mp4_2segmenter_8h_source.html @@ -216,7 +216,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 c6cb984082..7242347e66 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 38a52d0780..d06bfea5de 100644 --- a/docs/dd/d42/encryptor_8h_source.html +++ b/docs/dd/d42/encryptor_8h_source.html @@ -121,7 +121,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 e16d98cd38..db11ca4ef0 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 99398ae332..3fe8375407 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 f5928b007a..611e0164a8 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 a54dc688ba..1209a035e5 100644 --- a/docs/dd/d54/widevine__encryption__flags_8h_source.html +++ b/docs/dd/d54/widevine__encryption__flags_8h_source.html @@ -128,7 +128,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 4d04c1b94c..309bb900e6 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 335d99245b..2cd15f227b 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 668d8eee34..c9c6e191ea 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 ca8dc549a0..1b8769e667 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 4c9d6e180d..47a19d80d8 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 @@ -188,7 +188,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 3cfdd0fbb4..1f0f1cd815 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 bf0c523214..05f98f5a11 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 ff700dc217..249fec1645 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 5799c85712..bea56a6e17 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 edb4d87045..b9f12be79a 100644 --- a/docs/dd/d80/media__sample_8h_source.html +++ b/docs/dd/d80/media__sample_8h_source.html @@ -272,7 +272,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 76641bdb6a..da5130e82e 100644 --- a/docs/dd/d87/memory__file_8cc_source.html +++ b/docs/dd/d87/memory__file_8cc_source.html @@ -242,7 +242,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d88/pes__packet__generator_8h_source.html b/docs/dd/d88/pes__packet__generator_8h_source.html index c50a8b4001..2e15d975b1 100644 --- a/docs/dd/d88/pes__packet__generator_8h_source.html +++ b/docs/dd/d88/pes__packet__generator_8h_source.html @@ -164,7 +164,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 84e6164f00..3f129d7e0b 100644 --- a/docs/dd/d8c/file__test__util_8h_source.html +++ b/docs/dd/d8c/file__test__util_8h_source.html @@ -137,7 +137,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 e2ba862219..f1855b3c10 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 bceba41f6b..025eeb2df3 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 c101295e9d..10995dc400 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 207242a331..0dda03880c 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 7f9d3a66d5..fd789fdb80 100644 --- a/docs/dd/d9d/classshaka_1_1MpdNotifier-members.html +++ b/docs/dd/d9d/classshaka_1_1MpdNotifier-members.html @@ -107,7 +107,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 0efe3f6648..408f2f1b5c 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 8778551156..06bc0a61b7 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 @@ -223,7 +223,7 @@ uint64_t segment_payload_p 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 23df5f1c20..fe7c35fc0c 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 3999047b1e..42642c6872 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 f9ea74e9e3..e54d929598 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 476a67371e..8fec6cc3ac 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 9b5116409e..26298519e2 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 053e079cbf..c486fb4051 100644 --- a/docs/dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html +++ b/docs/dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html @@ -231,7 +231,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 2d41eda70f..cc016feffe 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/dbc/encryption__handler_8h_source.html b/docs/dd/dbc/encryption__handler_8h_source.html index da74a6a693..8d6d7ce9c3 100644 --- a/docs/dd/dbc/encryption__handler_8h_source.html +++ b/docs/dd/dbc/encryption__handler_8h_source.html @@ -208,7 +208,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 31d98ef4fa..11c1777a3d 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 eb0c751c3a..000566ab02 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 0dc7cc7d04..8e751c17f2 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 26c5436cd8..e1fff1df95 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 5ff458a56a..2aae461f0e 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 99939ccd95..f8cf0066f6 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 @@ -375,7 +375,7 @@ virtual Status DoFinalize< 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 c7949223e6..5ce313c35b 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 70e3c803fb..f5f674575a 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::string comment diff --git a/docs/dd/dd2/buffer__writer_8h_source.html b/docs/dd/dd2/buffer__writer_8h_source.html index 86fca3ea22..8ab38f1383 100644 --- a/docs/dd/dd2/buffer__writer_8h_source.html +++ b/docs/dd/dd2/buffer__writer_8h_source.html @@ -158,7 +158,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 2cf0b26a54..65aaf654fd 100644 --- a/docs/dd/dd3/buffer__writer_8cc_source.html +++ b/docs/dd/dd3/buffer__writer_8cc_source.html @@ -186,7 +186,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 c822da6bf3..397dd3ea89 100644 --- a/docs/dd/dd6/classshaka_1_1media_1_1WebMVideoClient-members.html +++ b/docs/dd/dd6/classshaka_1_1media_1_1WebMVideoClient-members.html @@ -105,7 +105,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 59da4fcbbc..c85e2319fc 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 af7481400d..3cc2ac54fe 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/ddc/trick__play__handler_8h_source.html b/docs/dd/ddc/trick__play__handler_8h_source.html index 743aad7d54..92e57b7b2d 100644 --- a/docs/dd/ddc/trick__play__handler_8h_source.html +++ b/docs/dd/ddc/trick__play__handler_8h_source.html @@ -191,7 +191,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 be955f088d..91f08cc0a9 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 88e7420f8c..e91ea99872 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 691b9dc2e2..23754a268b 100644 --- a/docs/dd/de7/xml__node_8h_source.html +++ b/docs/dd/de7/xml__node_8h_source.html @@ -239,7 +239,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/de9/classshaka_1_1media_1_1MediaHandler-members.html b/docs/dd/de9/classshaka_1_1media_1_1MediaHandler-members.html index 3ad5081007..0dc5bc3cd1 100644 --- a/docs/dd/de9/classshaka_1_1media_1_1MediaHandler-members.html +++ b/docs/dd/de9/classshaka_1_1media_1_1MediaHandler-members.html @@ -119,7 +119,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 e297ece3b3..44e6d09f0e 100644 --- a/docs/dd/dee/box__definitions_8cc_source.html +++ b/docs/dd/dee/box__definitions_8cc_source.html @@ -2968,7 +2968,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 0b57fa4513..8201160bce 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 1f2d73dbb8..836329ac76 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 e150ddde83..11506a47a1 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 7f7ba4fcde..37ce3a0b99 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 3753436131..c15a8aa364 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 e6d63ac3ad..25338a6322 100644 --- a/docs/de/d13/ts__writer_8cc_source.html +++ b/docs/de/d13/ts__writer_8cc_source.html @@ -360,7 +360,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 c9f0dbe622..80d13d4894 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 571e199f8f..2200c9de35 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 2d4f415f0b..54067ff4ff 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 38e30d44d3..44a58c2bfa 100644 --- a/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html +++ b/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html @@ -303,11 +303,11 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    bool TempFilePath(const std::string &temp_dir, std::string *temp_file_path)
    Definition: file_util.cc:27
    void UpdateProgress(uint64_t progress)
    Update segmentation progress using ProgressListener.
    Definition: segmenter.cc:265
    -
    static bool Delete(const char *file_name)
    Definition: file.cc:163
    +
    static bool Delete(const char *file_name)
    Definition: file.cc:181
    diff --git a/docs/de/d22/aes__pattern__cryptor_8cc_source.html b/docs/de/d22/aes__pattern__cryptor_8cc_source.html index b04773d06a..b58a69a43d 100644 --- a/docs/de/d22/aes__pattern__cryptor_8cc_source.html +++ b/docs/de/d22/aes__pattern__cryptor_8cc_source.html @@ -185,7 +185,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 5e6ee66ef1..c14a85e753 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 73cadc4133..ce5998cc22 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 7f1066baf7..efe20b242c 100644 --- a/docs/de/d33/classshaka_1_1media_1_1WebMTracksParser-members.html +++ b/docs/de/d33/classshaka_1_1media_1_1WebMTracksParser-members.html @@ -114,7 +114,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 cf31c51e18..0463f725e9 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 05f56e3d33..6b0aaa5885 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 4116ab2558..041edaee34 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 @@ -201,7 +201,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 a6a86083b2..2106d77509 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 b15b21046b..f7c46cf500 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 36075a5bdf..70097398a8 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 f4e7da28be..2ef915f7f3 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 e4d53d6e1c..2a25cafb57 100644 --- a/docs/de/d49/classshaka_1_1media_1_1DecryptConfig.html +++ b/docs/de/d49/classshaka_1_1media_1_1DecryptConfig.html @@ -315,7 +315,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 90bb137699..c9a90d5aa5 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 67901ab768..457fff83fc 100644 --- a/docs/de/d52/classshaka_1_1Representation.html +++ b/docs/de/d52/classshaka_1_1Representation.html @@ -145,7 +145,7 @@ template<DashProfile profile>

    Detailed Description

    Representation class contains references to a single media stream, as well as optional ContentProtection elements for that stream.

    -

    Definition at line 423 of file mpd_builder.h.

    +

    Definition at line 411 of file mpd_builder.h.

    Constructor & Destructor Documentation

    @@ -200,7 +200,7 @@ template<DashProfile profile> -

    Definition at line 1061 of file mpd_builder.cc.

    +

    Definition at line 1028 of file mpd_builder.cc.

    @@ -234,7 +234,7 @@ template<DashProfile profile> -

    Definition at line 1118 of file mpd_builder.cc.

    +

    Definition at line 1085 of file mpd_builder.cc.

    @@ -285,7 +285,7 @@ template<DashProfile profile> -

    Definition at line 1130 of file mpd_builder.cc.

    +

    Definition at line 1097 of file mpd_builder.cc.

    @@ -303,7 +303,7 @@ template<DashProfile profile>
    Returns
    Copy of <Representation>.
    -

    Definition at line 1170 of file mpd_builder.cc.

    +

    Definition at line 1137 of file mpd_builder.cc.

    @@ -329,7 +329,7 @@ template<DashProfile profile>
    Returns
    ID number for <Representation>.
    -

    Definition at line 498 of file mpd_builder.h.

    +

    Definition at line 486 of file mpd_builder.h.

    @@ -348,7 +348,7 @@ template<DashProfile profile>

    Tries to initialize the instance. If this does not succeed, the instance should not be used.

    Returns
    true on success, false otherwise.
    -

    Definition at line 1076 of file mpd_builder.cc.

    +

    Definition at line 1043 of file mpd_builder.cc.

    @@ -381,7 +381,7 @@ template<DashProfile profile> -

    Definition at line 1154 of file mpd_builder.cc.

    +

    Definition at line 1121 of file mpd_builder.cc.

    @@ -400,7 +400,7 @@ template<DashProfile profile>

    By calling this methods, the next time GetXml() is called, the corresponding attributes will not be set. For example, if SuppressOnce(kSuppressWidth) is called, then GetXml() will return a <Representation> element without a attribute. Note that it only applies to the next call to GetXml(), calling GetXml() again without calling this methods will return a <Representation> element with the attribute. This may be called multiple times to set different (or the same) flags.

    -

    Definition at line 1242 of file mpd_builder.cc.

    +

    Definition at line 1209 of file mpd_builder.cc.

    @@ -445,7 +445,7 @@ template<DashProfile profile>
    Attention
    This might get removed once DASH IF IOP specification makes a a clear guideline on how to handle key rotation. Also to get this working with shaka-player, this method DOES NOT update the PSSH element. Instead, it removes the element regardless of the content of pssh.
    -

    Definition at line 1124 of file mpd_builder.cc.

    +

    Definition at line 1091 of file mpd_builder.cc.

    @@ -456,7 +456,7 @@ template<DashProfile profile> 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 89b152d9aa..0a1427e78e 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 866af6d6ba..3c5a9753ac 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 6605b73335..713b134e8a 100644 --- a/docs/de/d5c/mpd__flags_8h_source.html +++ b/docs/de/d5c/mpd__flags_8h_source.html @@ -115,7 +115,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 532b1ab388..63c7764862 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 3a5a92bc6f..2fc5ac2a7f 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 be0540c476..04e1ae0cc6 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 87f6e39868..8e1a01b5bd 100644 --- a/docs/de/d6e/language__utils_8h_source.html +++ b/docs/de/d6e/language__utils_8h_source.html @@ -116,7 +116,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 c8e2f6a56f..4e003975e2 100644 --- a/docs/de/d70/http__key__fetcher_8cc_source.html +++ b/docs/de/d70/http__key__fetcher_8cc_source.html @@ -265,7 +265,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 3b159b90b6..ce3e463906 100644 --- a/docs/de/d77/webm__content__encodings__client_8cc_source.html +++ b/docs/de/d77/webm__content__encodings__client_8cc_source.html @@ -358,7 +358,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 76bd790e6f..4c1f79e114 100644 --- a/docs/de/d7b/mp4__media__parser_8h_source.html +++ b/docs/de/d7b/mp4__media__parser_8h_source.html @@ -203,7 +203,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 b5c6538895..d8e388fc18 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 78827fafa1..c052bcf089 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 39595eaf1a..69fdd869b4 100644 --- a/docs/de/d83/classshaka_1_1media_1_1LocalFile-members.html +++ b/docs/de/d83/classshaka_1_1media_1_1LocalFile-members.html @@ -112,12 +112,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Size() overrideshaka::media::LocalFilevirtual Tell(uint64_t *position) overrideshaka::media::LocalFilevirtual Write(const void *buffer, uint64_t length) overrideshaka::media::LocalFilevirtual - ~File()shaka::media::Fileinlineprotectedvirtual - ~LocalFile() override (defined in shaka::media::LocalFile)shaka::media::LocalFileprotected + WriteFileAtomically(const char *file_name, const std::string &contents)shaka::media::Filestatic + ~File()shaka::media::Fileinlineprotectedvirtual + ~LocalFile() override (defined in shaka::media::LocalFile)shaka::media::LocalFileprotected 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 bfcfcef9f0..c83bd8fd8f 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 361c66383d..22924378a6 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 22f31017fc..6e5048f4ed 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 2557a261ac..f0ff8033aa 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 1d0d467c62..24685a520f 100644 --- a/docs/de/dab/es__parser__h26x_8cc_source.html +++ b/docs/de/dab/es__parser__h26x_8cc_source.html @@ -410,7 +410,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 b6626bde97..21094223fa 100644 --- a/docs/de/dad/validate__flag_8cc_source.html +++ b/docs/de/dad/validate__flag_8cc_source.html @@ -110,7 +110,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 d02c92740e..ce81df62e5 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 90007c7fd7..7c07670c47 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/dbf/udp__options_8h_source.html b/docs/de/dbf/udp__options_8h_source.html index c1e9292cdb..9886e9263e 100644 --- a/docs/de/dbf/udp__options_8h_source.html +++ b/docs/de/dbf/udp__options_8h_source.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dc1/demuxer_8h_source.html b/docs/de/dc1/demuxer_8h_source.html index ceb275b596..75b05ee12f 100644 --- a/docs/de/dc1/demuxer_8h_source.html +++ b/docs/de/dc1/demuxer_8h_source.html @@ -224,7 +224,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 200dc9a476..5cc3119c86 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 fa2fd13656..28264df5a6 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 d0449054f8..39cf611c12 100644 --- a/docs/de/dcb/ts__segmenter_8h_source.html +++ b/docs/de/dcb/ts__segmenter_8h_source.html @@ -188,7 +188,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 c878a8c2e8..8c8f450509 100644 --- a/docs/de/dcc/mock__mpd__notifier_8cc_source.html +++ b/docs/de/dcc/mock__mpd__notifier_8cc_source.html @@ -99,7 +99,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 3cfde40dd9..dffa583978 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 bc4c24ec6a..be972b40db 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 59ff07cfdb..6369121fa9 100644 --- a/docs/de/dd6/muxer__listener__test__helper_8cc_source.html +++ b/docs/de/dd6/muxer__listener__test__helper_8cc_source.html @@ -205,7 +205,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 f1ccf6443c..c50e096360 100644 --- a/docs/de/ddd/classshaka_1_1media_1_1Muxer-members.html +++ b/docs/de/ddd/classshaka_1_1media_1_1Muxer-members.html @@ -130,7 +130,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/ddd/classshaka_1_1media_1_1WebVttSampleConverter.html b/docs/de/ddd/classshaka_1_1media_1_1WebVttSampleConverter.html index f0b5319f3e..6d9e8be582 100644 --- a/docs/de/ddd/classshaka_1_1media_1_1WebVttSampleConverter.html +++ b/docs/de/ddd/classshaka_1_1media_1_1WebVttSampleConverter.html @@ -257,7 +257,7 @@ Public Member Functions 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 64d1d5d8b1..634195829e 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 @@ -272,7 +272,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 46c15769cb..ea66f79fb5 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 fd13aec5f3..0f054795eb 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 4eabc3f61c..27e4f41720 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 @@ -132,7 +132,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 f54ee513a1..3153484098 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 67c292b83e..9ad3617787 100644 --- a/docs/de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html +++ b/docs/de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html @@ -287,7 +287,7 @@ void WarnIfNotMatch (i 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 80729d03bb..f98665ed43 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 c0011a9162..64113ebcdb 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/muxer__listener_8h_source.html b/docs/de/dfa/muxer__listener_8h_source.html index 9fd6b50a28..8524e709b2 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 18eb49ffac..63874a5118 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 29fbb9afdd..f374a209a6 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/d00/playready__key__source_8h_source.html b/docs/df/d00/playready__key__source_8h_source.html index 6405f8b8ea..dfac2cad4d 100644 --- a/docs/df/d00/playready__key__source_8h_source.html +++ b/docs/df/d00/playready__key__source_8h_source.html @@ -166,7 +166,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 fae50aa3dd..027957e101 100644 --- a/docs/df/d05/vp__codec__configuration__record_8cc_source.html +++ b/docs/df/d05/vp__codec__configuration__record_8cc_source.html @@ -418,7 +418,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 f2d9c1e600..dfc8a9c111 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 8e7571242a..bdef7a50bb 100644 --- a/docs/df/d1c/classshaka_1_1media_1_1MediaSample-members.html +++ b/docs/df/d1c/classshaka_1_1media_1_1MediaSample-members.html @@ -128,7 +128,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 adb045641e..1b8bb5e14d 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 787b5770cf..7d16904bf7 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 @@ -106,7 +106,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 0fdd02a538..343165709d 100644 --- a/docs/df/d22/validate__flag_8h_source.html +++ b/docs/df/d22/validate__flag_8h_source.html @@ -136,7 +136,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 210b0a0910..95ba04cb6f 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 f6dcc8843c..60bd4b940b 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 220969dd01..b9a7951344 100644 --- a/docs/df/d31/muxer__util_8cc_source.html +++ b/docs/df/d31/muxer__util_8cc_source.html @@ -248,7 +248,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 cce76957c1..821690a71c 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 f5ff9ed916..09f29a31d0 100644 --- a/docs/df/d33/classshaka_1_1AdaptationSet-members.html +++ b/docs/df/d33/classshaka_1_1AdaptationSet-members.html @@ -120,7 +120,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 d115de7032..8d3323dff0 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 d69635d822..596b1f223c 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 d2bea6a474..0763052ea1 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 aed9fd714d..3b16ba53b9 100644 --- a/docs/df/d46/classshaka_1_1media_1_1Muxer.html +++ b/docs/df/d46/classshaka_1_1media_1_1Muxer.html @@ -389,7 +389,7 @@ std::pair< std::shared_ptr
    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 a93e48bd2f..58e343a1a0 100644 --- a/docs/df/d46/classshaka_1_1media_1_1ThreadedIoFile-members.html +++ b/docs/df/d46/classshaka_1_1media_1_1ThreadedIoFile-members.html @@ -115,12 +115,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Tell(uint64_t *position) overrideshaka::media::ThreadedIoFilevirtual ThreadedIoFile(std::unique_ptr< File, FileCloser > internal_file, Mode mode, uint64_t io_cache_size, uint64_t io_block_size) (defined in shaka::media::ThreadedIoFile)shaka::media::ThreadedIoFile Write(const void *buffer, uint64_t length) overrideshaka::media::ThreadedIoFilevirtual - ~File()shaka::media::Fileinlineprotectedvirtual - ~ThreadedIoFile() override (defined in shaka::media::ThreadedIoFile)shaka::media::ThreadedIoFileprotected + WriteFileAtomically(const char *file_name, const std::string &contents)shaka::media::Filestatic + ~File()shaka::media::Fileinlineprotectedvirtual + ~ThreadedIoFile() override (defined in shaka::media::ThreadedIoFile)shaka::media::ThreadedIoFileprotected 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 d2ec0388b0..1fa95318a8 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 cdf789063f..85c5ec852b 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/d60/classshaka_1_1MockMpdBuilder.html b/docs/df/d60/classshaka_1_1MockMpdBuilder.html index 90ba52d774..a6ed7d62c9 100644 --- a/docs/df/d60/classshaka_1_1MockMpdBuilder.html +++ b/docs/df/d60/classshaka_1_1MockMpdBuilder.html @@ -118,8 +118,6 @@ Public Member Functions   virtual AdaptationSetAddAdaptationSet (const std::string &lang)   -bool WriteMpdToFile (media::File *output_file) -  virtual bool ToString (std::string *output)   @@ -143,7 +141,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 1047c83cb3..b5650205d6 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 470d76e12c..c5a15225ee 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 70b0bbe746..d22797ab0e 100644 --- a/docs/df/d6a/classshaka_1_1MockMpdBuilder-members.html +++ b/docs/df/d6a/classshaka_1_1MockMpdBuilder-members.html @@ -102,13 +102,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); MockMpdBuilder() (defined in shaka::MockMpdBuilder)shaka::MockMpdBuilder MpdBuilder(const MpdOptions &mpd_options)shaka::MpdBuilderexplicit ToString(std::string *output)shaka::MpdBuildervirtual - WriteMpdToFile(media::File *output_file)shaka::MpdBuilder - ~MockMpdBuilder() override (defined in shaka::MockMpdBuilder)shaka::MockMpdBuilder - ~MpdBuilder() (defined in shaka::MpdBuilder)shaka::MpdBuildervirtual + ~MockMpdBuilder() override (defined in shaka::MockMpdBuilder)shaka::MockMpdBuilder + ~MpdBuilder() (defined in shaka::MpdBuilder)shaka::MpdBuildervirtual 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 07f4a0d5cf..b26bd70e96 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 4b49bc8c5a..ef7b9975c8 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 ed60a3ff72..f4cba06d0d 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 1c28d72642..08ea24b860 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 497aeafd4b..443624a333 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 21de82b465..632a975685 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 20ad76bd2f..f25f924837 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 24bf85e795..0fcb708cbf 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 a4d601af01..e8ef3a773f 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 7c2d289a2f..07b8c0731f 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 @@ -119,7 +119,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 1727d85ccc..d41ddd2d58 100644 --- a/docs/df/d8d/es__parser__h26x_8h_source.html +++ b/docs/df/d8d/es__parser__h26x_8h_source.html @@ -235,7 +235,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 584abe9400..fbe250f332 100644 --- a/docs/df/d94/classshaka_1_1RepresentationStateChangeListener.html +++ b/docs/df/d94/classshaka_1_1RepresentationStateChangeListener.html @@ -103,7 +103,7 @@ Public Member Functions

    Detailed Description

    -

    Definition at line 401 of file mpd_builder.h.

    +

    Definition at line 389 of file mpd_builder.h.

    Member Function Documentation

    @@ -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 02289caf2f..181c5f489c 100644 --- a/docs/df/d96/xml__node_8cc_source.html +++ b/docs/df/d96/xml__node_8cc_source.html @@ -513,7 +513,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 675aa7b4c4..70b441b80e 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 83ef2b84a0..af48b70ae6 100644 --- a/docs/df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html +++ b/docs/df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html @@ -315,7 +315,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 c8b4845000..f7417383ae 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 4b53ca38be..aedb9ddb51 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 e2590c807b..3470e6fe0b 100644 --- a/docs/df/dad/decrypt__config_8h_source.html +++ b/docs/df/dad/decrypt__config_8h_source.html @@ -176,7 +176,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 d2bb26c34a..18bc80d4ab 100644 --- a/docs/df/dc7/avc__decoder__configuration__record_8h_source.html +++ b/docs/df/dc7/avc__decoder__configuration__record_8h_source.html @@ -155,7 +155,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 1b732bd420..cebc378649 100644 --- a/docs/df/dd2/mpd__utils_8h_source.html +++ b/docs/df/dd2/mpd__utils_8h_source.html @@ -177,7 +177,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 ca515518ea..bb7bcb55fc 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/dd3/structshaka_1_1media_1_1MediaEvent.html b/docs/df/dd3/structshaka_1_1media_1_1MediaEvent.html index cbdafb6548..374789262f 100644 --- a/docs/df/dd3/structshaka_1_1media_1_1MediaEvent.html +++ b/docs/df/dd3/structshaka_1_1media_1_1MediaEvent.html @@ -99,7 +99,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 4ae343622b..7ed0b126fb 100644 --- a/docs/df/ddc/webm_2segmenter_8h_source.html +++ b/docs/df/ddc/webm_2segmenter_8h_source.html @@ -242,7 +242,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 50e5fc4d1e..1b78e5b51c 100644 --- a/docs/df/dde/ts__section__psi_8cc_source.html +++ b/docs/df/dde/ts__section__psi_8cc_source.html @@ -230,7 +230,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html b/docs/df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html index c383f57094..cd7e93f4b7 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 54a1458f03..d426b52627 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 ca4707ec9b..d8fc714990 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 d7507b020b..24adc3c7ca 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/df/dfb/classshaka_1_1media_1_1UdpOptions-members.html b/docs/df/dfb/classshaka_1_1media_1_1UdpOptions-members.html index 791ae14bdb..108699b492 100644 --- a/docs/df/dfb/classshaka_1_1media_1_1UdpOptions-members.html +++ b/docs/df/dfb/classshaka_1_1media_1_1UdpOptions-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dfc/playready__key__encryption__flags_8cc_source.html b/docs/df/dfc/playready__key__encryption__flags_8cc_source.html index 809f4f68f9..4ac43bbcaf 100644 --- a/docs/df/dfc/playready__key__encryption__flags_8cc_source.html +++ b/docs/df/dfc/playready__key__encryption__flags_8cc_source.html @@ -166,7 +166,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dir_0494b8c96e3190a776d2b97ade9c8ddf.html b/docs/dir_0494b8c96e3190a776d2b97ade9c8ddf.html index 7e35be6e3f..c8ffd63db7 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 1d2396b2e0..e0e9882f60 100644 --- a/docs/dir_2618cd273dea54f184e42d7a562af818.html +++ b/docs/dir_2618cd273dea54f184e42d7a562af818.html @@ -136,7 +136,7 @@ Files diff --git a/docs/dir_263e692158cf359dd655c259558153d6.html b/docs/dir_263e692158cf359dd655c259558153d6.html index 4a752bec99..569339eaee 100644 --- a/docs/dir_263e692158cf359dd655c259558153d6.html +++ b/docs/dir_263e692158cf359dd655c259558153d6.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_279fd47bebb21302c25cfb685e84c359.html b/docs/dir_279fd47bebb21302c25cfb685e84c359.html index 9d8f7d1f46..8755805244 100644 --- a/docs/dir_279fd47bebb21302c25cfb685e84c359.html +++ b/docs/dir_279fd47bebb21302c25cfb685e84c359.html @@ -125,7 +125,7 @@ Files diff --git a/docs/dir_2eceb70145328c029a5f43350007537a.html b/docs/dir_2eceb70145328c029a5f43350007537a.html index 1be25a28f2..f08eb5789a 100644 --- a/docs/dir_2eceb70145328c029a5f43350007537a.html +++ b/docs/dir_2eceb70145328c029a5f43350007537a.html @@ -105,7 +105,7 @@ Files diff --git a/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html b/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html index 0984905bae..d31e586517 100644 --- a/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html +++ b/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html @@ -107,7 +107,7 @@ Directories diff --git a/docs/dir_3e9291fd7a18fdecc763294cb2628910.html b/docs/dir_3e9291fd7a18fdecc763294cb2628910.html index c72386e807..d328962e4c 100644 --- a/docs/dir_3e9291fd7a18fdecc763294cb2628910.html +++ b/docs/dir_3e9291fd7a18fdecc763294cb2628910.html @@ -149,7 +149,7 @@ Files diff --git a/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html b/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html index 16f6b06bf9..b6d86d95c4 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 20b005766e..6ae35aebb0 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 2f9b61c4b9..89052616ab 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 2bb7a0ff1e..8568ebcc4f 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 c4200bf926..08f4e584dd 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 0dc5028d6e..32e5956f3d 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 3c3a42ec32..79b83b21a9 100644 --- a/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html +++ b/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html @@ -117,7 +117,7 @@ Files diff --git a/docs/dir_b0da65f92a9541ef8f345654d4bd88fd.html b/docs/dir_b0da65f92a9541ef8f345654d4bd88fd.html index 6264ba89bc..2a584ac485 100644 --- a/docs/dir_b0da65f92a9541ef8f345654d4bd88fd.html +++ b/docs/dir_b0da65f92a9541ef8f345654d4bd88fd.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_ba94ecd487194410fd7c4b70c530929c.html b/docs/dir_ba94ecd487194410fd7c4b70c530929c.html index 7d7d16892e..843c598ca5 100644 --- a/docs/dir_ba94ecd487194410fd7c4b70c530929c.html +++ b/docs/dir_ba94ecd487194410fd7c4b70c530929c.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html b/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html index 12583a51ed..acee68bf4e 100644 --- a/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html +++ b/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html @@ -255,7 +255,7 @@ Files diff --git a/docs/dir_d422163b96683743ed3963d4aac17747.html b/docs/dir_d422163b96683743ed3963d4aac17747.html index 48bad561f8..71ad752ce5 100644 --- a/docs/dir_d422163b96683743ed3963d4aac17747.html +++ b/docs/dir_d422163b96683743ed3963d4aac17747.html @@ -151,7 +151,7 @@ Files diff --git a/docs/dir_ebd49ab0652c2e9158bbb57c55382729.html b/docs/dir_ebd49ab0652c2e9158bbb57c55382729.html index f929e2d79c..f4477efad8 100644 --- a/docs/dir_ebd49ab0652c2e9158bbb57c55382729.html +++ b/docs/dir_ebd49ab0652c2e9158bbb57c55382729.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html b/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html index 14e1a53bf9..2c334b8de3 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 3ef3cfebac..fe8ad396b3 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 972a5fc129..216e343b00 100644 --- a/docs/files.html +++ b/docs/files.html @@ -458,7 +458,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions.html b/docs/functions.html index 7fa7423e53..6460b51581 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -251,7 +251,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_b.html b/docs/functions_b.html index f202cea186..d040c78903 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 f034c7bd1f..890a5bd96b 100644 --- a/docs/functions_c.html +++ b/docs/functions_c.html @@ -247,7 +247,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_d.html b/docs/functions_d.html index fbafdd67fc..a5479f2d28 100644 --- a/docs/functions_d.html +++ b/docs/functions_d.html @@ -183,7 +183,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_e.html b/docs/functions_e.html index ffb629514a..efa26a095c 100644 --- a/docs/functions_e.html +++ b/docs/functions_e.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_enum.html b/docs/functions_enum.html index 20fb678b99..47d0057c4c 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 e4ce11f47a..219bba6262 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 22eb98e450..5279022300 100644 --- a/docs/functions_f.html +++ b/docs/functions_f.html @@ -196,7 +196,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func.html b/docs/functions_func.html index 438a281812..8e3fcffe00 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -250,7 +250,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_b.html b/docs/functions_func_b.html index ffa809a0a5..81e34c7fd9 100644 --- a/docs/functions_func_b.html +++ b/docs/functions_func_b.html @@ -236,7 +236,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_c.html b/docs/functions_func_c.html index 99d6cbc825..d97ca42adf 100644 --- a/docs/functions_func_c.html +++ b/docs/functions_func_c.html @@ -240,7 +240,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_d.html b/docs/functions_func_d.html index 48be4376b8..827c30a1f0 100644 --- a/docs/functions_func_d.html +++ b/docs/functions_func_d.html @@ -182,7 +182,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_e.html b/docs/functions_func_e.html index 34830f8391..926de70af4 100644 --- a/docs/functions_func_e.html +++ b/docs/functions_func_e.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_f.html b/docs/functions_func_f.html index 5550ed0fdd..dc658c17f2 100644 --- a/docs/functions_func_f.html +++ b/docs/functions_func_f.html @@ -195,7 +195,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_g.html b/docs/functions_func_g.html index f0e81726c8..7e0f722e4e 100644 --- a/docs/functions_func_g.html +++ b/docs/functions_func_g.html @@ -281,7 +281,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_h.html b/docs/functions_func_h.html index 9f76932921..885312abb0 100644 --- a/docs/functions_func_h.html +++ b/docs/functions_func_h.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_i.html b/docs/functions_func_i.html index 814416df3d..6070d0f44e 100644 --- a/docs/functions_func_i.html +++ b/docs/functions_func_i.html @@ -222,7 +222,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_l.html b/docs/functions_func_l.html index 10131e6c3f..79e7367687 100644 --- a/docs/functions_func_l.html +++ b/docs/functions_func_l.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_m.html b/docs/functions_func_m.html index e893529a73..603019d4e8 100644 --- a/docs/functions_func_m.html +++ b/docs/functions_func_m.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_n.html b/docs/functions_func_n.html index 6709528895..859e35b495 100644 --- a/docs/functions_func_n.html +++ b/docs/functions_func_n.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_o.html b/docs/functions_func_o.html index 9d59ae72cf..770575ba37 100644 --- a/docs/functions_func_o.html +++ b/docs/functions_func_o.html @@ -199,7 +199,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_p.html b/docs/functions_func_p.html index 6d2ee67471..0e5baaf485 100644 --- a/docs/functions_func_p.html +++ b/docs/functions_func_p.html @@ -239,7 +239,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_r.html b/docs/functions_func_r.html index 93eade92e2..5cabc43861 100644 --- a/docs/functions_func_r.html +++ b/docs/functions_func_r.html @@ -202,7 +202,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_s.html b/docs/functions_func_s.html index 3bf0d5ecc3..d90e6f25a5 100644 --- a/docs/functions_func_s.html +++ b/docs/functions_func_s.html @@ -294,7 +294,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_t.html b/docs/functions_func_t.html index 790a682aac..985d072c44 100644 --- a/docs/functions_func_t.html +++ b/docs/functions_func_t.html @@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_u.html b/docs/functions_func_u.html index ce0e18c53e..6504fc5da5 100644 --- a/docs/functions_func_u.html +++ b/docs/functions_func_u.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_v.html b/docs/functions_func_v.html index 1ac13bc8a3..61a3f9f88f 100644 --- a/docs/functions_func_v.html +++ b/docs/functions_func_v.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_w.html b/docs/functions_func_w.html index 7672458e63..00f5a699c9 100644 --- a/docs/functions_func_w.html +++ b/docs/functions_func_w.html @@ -147,8 +147,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , shaka::media::ThreadedIoFile , shaka::media::UdpFile +
  • WriteFileAtomically() +: shaka::media::File +
  • WriteFromFile() -: shaka::media::MkvWriter +: shaka::media::MkvWriter
  • WriteHeader() : shaka::media::mp4::Box @@ -159,9 +162,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • WriteMP4() : shaka::media::VPCodecConfigurationRecord
  • -
  • WriteMpdToFile() -: shaka::MpdBuilder -
  • writer() : shaka::media::mp4::BoxBuffer
  • @@ -181,7 +181,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_x.html b/docs/functions_func_x.html index 92c65ee376..86b415be71 100644 --- a/docs/functions_func_x.html +++ b/docs/functions_func_x.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_~.html b/docs/functions_func_~.html index 4fab807852..c9c07e8f7a 100644 --- a/docs/functions_func_~.html +++ b/docs/functions_func_~.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_g.html b/docs/functions_g.html index a0210cbbda..b2998e60a0 100644 --- a/docs/functions_g.html +++ b/docs/functions_g.html @@ -282,7 +282,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_h.html b/docs/functions_h.html index 228ff319d9..cbdd98da57 100644 --- a/docs/functions_h.html +++ b/docs/functions_h.html @@ -163,7 +163,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_i.html b/docs/functions_i.html index 2802d90266..621896acf1 100644 --- a/docs/functions_i.html +++ b/docs/functions_i.html @@ -226,7 +226,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_k.html b/docs/functions_k.html index 9e72a09c26..01472ecbc2 100644 --- a/docs/functions_k.html +++ b/docs/functions_k.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_l.html b/docs/functions_l.html index 6bcdff426f..f6fd0e33e7 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 30fb7fa7ee..73a89fd7e8 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 70033fe499..4c2d6346bc 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 4aca4fee06..5bf490b77a 100644 --- a/docs/functions_o.html +++ b/docs/functions_o.html @@ -203,7 +203,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_p.html b/docs/functions_p.html index 7401026e73..203aac33e4 100644 --- a/docs/functions_p.html +++ b/docs/functions_p.html @@ -249,7 +249,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_r.html b/docs/functions_r.html index 2386e02842..00aa0a0b16 100644 --- a/docs/functions_r.html +++ b/docs/functions_r.html @@ -203,7 +203,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_s.html b/docs/functions_s.html index 4f2cff3718..6e1d1d2fab 100644 --- a/docs/functions_s.html +++ b/docs/functions_s.html @@ -316,7 +316,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_t.html b/docs/functions_t.html index 85480f6cea..0c2fa133c6 100644 --- a/docs/functions_t.html +++ b/docs/functions_t.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_type.html b/docs/functions_type.html index 7e7dc06fb8..4f11118cee 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 fe181b1048..1ba73385ea 100644 --- a/docs/functions_u.html +++ b/docs/functions_u.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_v.html b/docs/functions_v.html index c95a1f9907..1f82b4c841 100644 --- a/docs/functions_v.html +++ b/docs/functions_v.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_vars.html b/docs/functions_vars.html index ce5364e205..9aebf5ac4d 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -157,7 +157,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_w.html b/docs/functions_w.html index c0e145f63c..ae6aadea97 100644 --- a/docs/functions_w.html +++ b/docs/functions_w.html @@ -148,8 +148,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , shaka::media::ThreadedIoFile , shaka::media::UdpFile +
  • WriteFileAtomically() +: shaka::media::File +
  • WriteFromFile() -: shaka::media::MkvWriter +: shaka::media::MkvWriter
  • WriteHeader() : shaka::media::mp4::Box @@ -160,9 +163,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • WriteMP4() : shaka::media::VPCodecConfigurationRecord
  • -
  • WriteMpdToFile() -: shaka::MpdBuilder -
  • writer() : shaka::media::mp4::BoxBuffer
  • @@ -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 9f81fff09c..8357ff4dc8 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 b75d61c3ff..2f37abab5b 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 aecea91180..9b29cec80a 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -378,7 +378,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/index.html b/docs/index.html index 4c355b614a..bb703adcbe 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 d73928b96c..7c9051d66c 100644 --- a/docs/namespacemembers.html +++ b/docs/namespacemembers.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html index 93357f661c..974ac019b2 100644 --- a/docs/namespacemembers_func.html +++ b/docs/namespacemembers_func.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespaces.html b/docs/namespaces.html index 9bd7534d08..9a4c8281e5 100644 --- a/docs/namespaces.html +++ b/docs/namespaces.html @@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/search/all_14.js b/docs/search/all_14.js index 422e8aa9a7..987976118a 100644 --- a/docs/search/all_14.js +++ b/docs/search/all_14.js @@ -22,11 +22,12 @@ var searchData= ['widevinekeysource',['WidevineKeySource',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html',1,'shaka::media']]], ['widevinekeysource',['WidevineKeySource',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#a93480a98e423d0456482844ac629bd2e',1,'shaka::media::WidevineKeySource']]], ['write',['Write',['../d3/d61/classshaka_1_1media_1_1File.html#a3149670c0d085e71f0aa085ee87fdda5',1,'shaka::media::File::Write()'],['../dd/d7c/classshaka_1_1media_1_1IoCache.html#a0349796209c24a99bfe3c1bfdafb1d28',1,'shaka::media::IoCache::Write()'],['../d9/de6/classshaka_1_1media_1_1LocalFile.html#ac23125695f0cfe77adee36df9650da8b',1,'shaka::media::LocalFile::Write()'],['../d9/dbd/classshaka_1_1media_1_1MemoryFile.html#a429e316e7bf529acb3586df1cd02be64',1,'shaka::media::MemoryFile::Write()'],['../d0/d66/classshaka_1_1media_1_1ThreadedIoFile.html#aa14502dd48c1c64329283f5f1340f60f',1,'shaka::media::ThreadedIoFile::Write()'],['../d7/d7a/classshaka_1_1media_1_1UdpFile.html#a7039c2dbc214f755a9eaaab4d3e10cb9',1,'shaka::media::UdpFile::Write()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a15bd0622fdb129d921287e690f117bde',1,'shaka::media::mp4::Box::Write()'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a2468514d1d9efdb15a9e4df2e44b75d8',1,'shaka::media::MkvWriter::Write()'],['../dc/d16/classshaka_1_1media_1_1SeekHead.html#a46313134eebf68a7c34187705726b982',1,'shaka::media::SeekHead::Write()']]], + ['writefileatomically',['WriteFileAtomically',['../d3/d61/classshaka_1_1media_1_1File.html#af8a35510dc88fbc352900b55da4683b6',1,'shaka::media::File']]], ['writefromfile',['WriteFromFile',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#ab331684a758a93bf0c77fa224fe429ea',1,'shaka::media::MkvWriter::WriteFromFile(File *source)'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a2dfac99ec5531ca2e102e5b145bb29ed',1,'shaka::media::MkvWriter::WriteFromFile(File *source, int64_t max_copy)']]], ['writeheader',['WriteHeader',['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a57b8837c93d51f5cf03d3862069d509a',1,'shaka::media::mp4::Box']]], ['writemediainfotofile',['WriteMediaInfoToFile',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#ae0a573e1c785164f40bfbfba2ced6a16',1,'shaka::media::VodMediaInfoDumpMuxerListener']]], ['writemp4',['WriteMP4',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a790c2bbfed9caa79aefb5c597c892e00',1,'shaka::media::VPCodecConfigurationRecord']]], - ['writempdtofile',['WriteMpdToFile',['../dc/da1/classshaka_1_1MpdBuilder.html#a35685a28f837c397e1f862d44b2205d9',1,'shaka::MpdBuilder::WriteMpdToFile()'],['../d8/daf/namespaceshaka.html#a7e940cda37fa0dbefef3b3cc9c802ab8',1,'shaka::WriteMpdToFile()']]], + ['writempdtofile',['WriteMpdToFile',['../d8/daf/namespaceshaka.html#a7e940cda37fa0dbefef3b3cc9c802ab8',1,'shaka']]], ['writer',['writer',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a0b9aa5e5669d771e12563e168d5c967d',1,'shaka::media::mp4::BoxBuffer']]], ['writesegmentheader',['WriteSegmentHeader',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#aebcf73c5a1c3ae0f2608032d2a6ee445',1,'shaka::media::webm::Segmenter']]], ['writetofile',['WriteToFile',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#a868dba843fcf923dd140fdda859a3a6d',1,'shaka::media::BufferWriter']]], diff --git a/docs/search/functions_13.js b/docs/search/functions_13.js index bebd0ede06..943d8e68ad 100644 --- a/docs/search/functions_13.js +++ b/docs/search/functions_13.js @@ -6,11 +6,12 @@ var searchData= ['webmmuxer',['WebMMuxer',['../d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html#a17b47db217334b2ec328bdbf1a9c7e29',1,'shaka::media::webm::WebMMuxer']]], ['widevinekeysource',['WidevineKeySource',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#a93480a98e423d0456482844ac629bd2e',1,'shaka::media::WidevineKeySource']]], ['write',['Write',['../d3/d61/classshaka_1_1media_1_1File.html#a3149670c0d085e71f0aa085ee87fdda5',1,'shaka::media::File::Write()'],['../dd/d7c/classshaka_1_1media_1_1IoCache.html#a0349796209c24a99bfe3c1bfdafb1d28',1,'shaka::media::IoCache::Write()'],['../d9/de6/classshaka_1_1media_1_1LocalFile.html#ac23125695f0cfe77adee36df9650da8b',1,'shaka::media::LocalFile::Write()'],['../d9/dbd/classshaka_1_1media_1_1MemoryFile.html#a429e316e7bf529acb3586df1cd02be64',1,'shaka::media::MemoryFile::Write()'],['../d0/d66/classshaka_1_1media_1_1ThreadedIoFile.html#aa14502dd48c1c64329283f5f1340f60f',1,'shaka::media::ThreadedIoFile::Write()'],['../d7/d7a/classshaka_1_1media_1_1UdpFile.html#a7039c2dbc214f755a9eaaab4d3e10cb9',1,'shaka::media::UdpFile::Write()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a15bd0622fdb129d921287e690f117bde',1,'shaka::media::mp4::Box::Write()'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a2468514d1d9efdb15a9e4df2e44b75d8',1,'shaka::media::MkvWriter::Write()'],['../dc/d16/classshaka_1_1media_1_1SeekHead.html#a46313134eebf68a7c34187705726b982',1,'shaka::media::SeekHead::Write()']]], + ['writefileatomically',['WriteFileAtomically',['../d3/d61/classshaka_1_1media_1_1File.html#af8a35510dc88fbc352900b55da4683b6',1,'shaka::media::File']]], ['writefromfile',['WriteFromFile',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#ab331684a758a93bf0c77fa224fe429ea',1,'shaka::media::MkvWriter::WriteFromFile(File *source)'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a2dfac99ec5531ca2e102e5b145bb29ed',1,'shaka::media::MkvWriter::WriteFromFile(File *source, int64_t max_copy)']]], ['writeheader',['WriteHeader',['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a57b8837c93d51f5cf03d3862069d509a',1,'shaka::media::mp4::Box']]], ['writemediainfotofile',['WriteMediaInfoToFile',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#ae0a573e1c785164f40bfbfba2ced6a16',1,'shaka::media::VodMediaInfoDumpMuxerListener']]], ['writemp4',['WriteMP4',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a790c2bbfed9caa79aefb5c597c892e00',1,'shaka::media::VPCodecConfigurationRecord']]], - ['writempdtofile',['WriteMpdToFile',['../dc/da1/classshaka_1_1MpdBuilder.html#a35685a28f837c397e1f862d44b2205d9',1,'shaka::MpdBuilder::WriteMpdToFile()'],['../d8/daf/namespaceshaka.html#a7e940cda37fa0dbefef3b3cc9c802ab8',1,'shaka::WriteMpdToFile()']]], + ['writempdtofile',['WriteMpdToFile',['../d8/daf/namespaceshaka.html#a7e940cda37fa0dbefef3b3cc9c802ab8',1,'shaka']]], ['writer',['writer',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a0b9aa5e5669d771e12563e168d5c967d',1,'shaka::media::mp4::BoxBuffer']]], ['writesegmentheader',['WriteSegmentHeader',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#aebcf73c5a1c3ae0f2608032d2a6ee445',1,'shaka::media::webm::Segmenter']]], ['writetofile',['WriteToFile',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#a868dba843fcf923dd140fdda859a3a6d',1,'shaka::media::BufferWriter']]],