diff --git a/docs/annotated.html b/docs/annotated.html index 033832cebd..0f513abb54 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -468,7 +468,7 @@ $(function() { diff --git a/docs/classes.html b/docs/classes.html index aa950657e7..325123032a 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -137,7 +137,7 @@ $(function() { 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 cbd5479de2..89f729c26f 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 @@ -92,7 +92,7 @@ $(function() { 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 6aa19353fe..9204f5de31 100644 --- a/docs/d0/d04/classshaka_1_1media_1_1RsaRequestSigner-members.html +++ b/docs/d0/d04/classshaka_1_1media_1_1RsaRequestSigner-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/d0/d05/muxer__listener__factory_8cc_source.html b/docs/d0/d05/muxer__listener__factory_8cc_source.html index 9d1dfaa416..697223c2a7 100644 --- a/docs/d0/d05/muxer__listener__factory_8cc_source.html +++ b/docs/d0/d05/muxer__listener__factory_8cc_source.html @@ -96,131 +96,135 @@ $(function() {
25 const char kMediaInfoSuffix[] = ".media_info";
26 
27 std::unique_ptr<MuxerListener> CreateMediaInfoDumpListenerInternal(
-
28  const std::string& output) {
-
29  DCHECK(!output.empty());
-
30 
-
31  std::unique_ptr<MuxerListener> listener(
-
32  new VodMediaInfoDumpMuxerListener(output + kMediaInfoSuffix));
-
33  return listener;
-
34 }
-
35 
-
36 std::unique_ptr<MuxerListener> CreateMpdListenerInternal(
-
37  const MuxerListenerFactory::StreamData& stream,
-
38  MpdNotifier* notifier) {
-
39  DCHECK(notifier);
-
40 
-
41  auto listener = base::MakeUnique<MpdNotifyMuxerListener>(notifier);
-
42  listener->set_accessibilities(stream.dash_accessiblities);
-
43  listener->set_roles(stream.dash_roles);
-
44  return listener;
-
45 }
-
46 
-
47 std::list<std::unique_ptr<MuxerListener>> CreateHlsListenersInternal(
-
48  const MuxerListenerFactory::StreamData& stream,
-
49  int stream_index,
-
50  hls::HlsNotifier* notifier) {
-
51  DCHECK(notifier);
-
52  DCHECK_GE(stream_index, 0);
-
53 
-
54  std::string name = stream.hls_name;
-
55  std::string playlist_name = stream.hls_playlist_name;
-
56 
-
57  const std::string& group_id = stream.hls_group_id;
-
58  const std::string& iframe_playlist_name = stream.hls_iframe_playlist_name;
-
59  const std::vector<std::string>& characteristics = stream.hls_characteristics;
-
60 
-
61  if (name.empty()) {
-
62  name = base::StringPrintf("stream_%d", stream_index);
-
63  }
-
64 
-
65  if (playlist_name.empty()) {
-
66  playlist_name = base::StringPrintf("stream_%d.m3u8", stream_index);
-
67  }
-
68 
-
69  const bool kIFramesOnly = true;
-
70  std::list<std::unique_ptr<MuxerListener>> listeners;
-
71  listeners.emplace_back(new HlsNotifyMuxerListener(
-
72  playlist_name, !kIFramesOnly, name, group_id, characteristics, notifier));
-
73  if (!iframe_playlist_name.empty()) {
-
74  listeners.emplace_back(new HlsNotifyMuxerListener(
-
75  iframe_playlist_name, kIFramesOnly, name, group_id,
-
76  std::vector<std::string>(), notifier));
-
77  }
-
78  return listeners;
-
79 }
-
80 } // namespace
-
81 
-
82 MuxerListenerFactory::MuxerListenerFactory(bool output_media_info,
-
83  MpdNotifier* mpd_notifier,
-
84  hls::HlsNotifier* hls_notifier)
-
85  : output_media_info_(output_media_info),
-
86  mpd_notifier_(mpd_notifier),
-
87  hls_notifier_(hls_notifier) {}
-
88 
-
89 std::unique_ptr<MuxerListener> MuxerListenerFactory::CreateListener(
-
90  const StreamData& stream) {
-
91  const int stream_index = stream_index_++;
-
92 
-
93  // Use a MultiCodecMuxerListener to handle possible DolbyVision profile 8
-
94  // stream which can be signalled as two different codecs.
-
95  std::unique_ptr<MultiCodecMuxerListener> multi_codec_listener(
-
96  new MultiCodecMuxerListener);
-
97  // Creates two child MuxerListeners. Both are used if the stream is a
-
98  // multi-codec stream (e.g. DolbyVision proifile 8); otherwise the second
-
99  // child is ignored. Right now the only use case is DolbyVision profile 8
-
100  // which contains two codecs.
-
101  for (int i = 0; i < 2; i++) {
-
102  std::unique_ptr<CombinedMuxerListener> combined_listener(
-
103  new CombinedMuxerListener);
-
104  if (output_media_info_) {
-
105  combined_listener->AddListener(
-
106  CreateMediaInfoDumpListenerInternal(stream.media_info_output));
-
107  }
-
108 
-
109  if (mpd_notifier_ && !stream.hls_only) {
-
110  combined_listener->AddListener(
-
111  CreateMpdListenerInternal(stream, mpd_notifier_));
-
112  }
-
113 
-
114  if (hls_notifier_ && !stream.dash_only) {
-
115  for (auto& listener :
-
116  CreateHlsListenersInternal(stream, stream_index, hls_notifier_)) {
-
117  combined_listener->AddListener(std::move(listener));
-
118  }
-
119  }
-
120 
-
121  multi_codec_listener->AddListener(std::move(combined_listener));
-
122  }
-
123 
-
124  return std::move(multi_codec_listener);
-
125 }
-
126 
-
127 std::unique_ptr<MuxerListener> MuxerListenerFactory::CreateHlsListener(
-
128  const StreamData& stream) {
-
129  if (!hls_notifier_) {
-
130  return nullptr;
-
131  }
-
132 
-
133  const int stream_index = stream_index_++;
-
134  return std::move(
-
135  CreateHlsListenersInternal(stream, stream_index, hls_notifier_).front());
-
136 }
-
137 
-
138 } // namespace media
-
139 } // namespace shaka
+
28  const std::string& output,
+
29  bool use_segment_list) {
+
30  DCHECK(!output.empty());
+
31 
+
32  std::unique_ptr<MuxerListener> listener(
+
33  new VodMediaInfoDumpMuxerListener(output + kMediaInfoSuffix, use_segment_list));
+
34  return listener;
+
35 }
+
36 
+
37 std::unique_ptr<MuxerListener> CreateMpdListenerInternal(
+
38  const MuxerListenerFactory::StreamData& stream,
+
39  MpdNotifier* notifier) {
+
40  DCHECK(notifier);
+
41 
+
42  auto listener = base::MakeUnique<MpdNotifyMuxerListener>(notifier);
+
43  listener->set_accessibilities(stream.dash_accessiblities);
+
44  listener->set_roles(stream.dash_roles);
+
45  return listener;
+
46 }
+
47 
+
48 std::list<std::unique_ptr<MuxerListener>> CreateHlsListenersInternal(
+
49  const MuxerListenerFactory::StreamData& stream,
+
50  int stream_index,
+
51  hls::HlsNotifier* notifier) {
+
52  DCHECK(notifier);
+
53  DCHECK_GE(stream_index, 0);
+
54 
+
55  std::string name = stream.hls_name;
+
56  std::string playlist_name = stream.hls_playlist_name;
+
57 
+
58  const std::string& group_id = stream.hls_group_id;
+
59  const std::string& iframe_playlist_name = stream.hls_iframe_playlist_name;
+
60  const std::vector<std::string>& characteristics = stream.hls_characteristics;
+
61 
+
62  if (name.empty()) {
+
63  name = base::StringPrintf("stream_%d", stream_index);
+
64  }
+
65 
+
66  if (playlist_name.empty()) {
+
67  playlist_name = base::StringPrintf("stream_%d.m3u8", stream_index);
+
68  }
+
69 
+
70  const bool kIFramesOnly = true;
+
71  std::list<std::unique_ptr<MuxerListener>> listeners;
+
72  listeners.emplace_back(new HlsNotifyMuxerListener(
+
73  playlist_name, !kIFramesOnly, name, group_id, characteristics, notifier));
+
74  if (!iframe_playlist_name.empty()) {
+
75  listeners.emplace_back(new HlsNotifyMuxerListener(
+
76  iframe_playlist_name, kIFramesOnly, name, group_id,
+
77  std::vector<std::string>(), notifier));
+
78  }
+
79  return listeners;
+
80 }
+
81 } // namespace
+
82 
+
83 MuxerListenerFactory::MuxerListenerFactory(bool output_media_info,
+
84  bool use_segment_list,
+
85  MpdNotifier* mpd_notifier,
+
86  hls::HlsNotifier* hls_notifier)
+
87  : output_media_info_(output_media_info),
+
88  mpd_notifier_(mpd_notifier),
+
89  hls_notifier_(hls_notifier),
+
90  use_segment_list_(use_segment_list) {}
+
91 
+
92 std::unique_ptr<MuxerListener> MuxerListenerFactory::CreateListener(
+
93  const StreamData& stream) {
+
94  const int stream_index = stream_index_++;
+
95 
+
96  // Use a MultiCodecMuxerListener to handle possible DolbyVision profile 8
+
97  // stream which can be signalled as two different codecs.
+
98  std::unique_ptr<MultiCodecMuxerListener> multi_codec_listener(
+
99  new MultiCodecMuxerListener);
+
100  // Creates two child MuxerListeners. Both are used if the stream is a
+
101  // multi-codec stream (e.g. DolbyVision proifile 8); otherwise the second
+
102  // child is ignored. Right now the only use case is DolbyVision profile 8
+
103  // which contains two codecs.
+
104  for (int i = 0; i < 2; i++) {
+
105  std::unique_ptr<CombinedMuxerListener> combined_listener(
+
106  new CombinedMuxerListener);
+
107  if (output_media_info_) {
+
108  combined_listener->AddListener(
+
109  CreateMediaInfoDumpListenerInternal(stream.media_info_output,
+
110  use_segment_list_));
+
111  }
+
112 
+
113  if (mpd_notifier_ && !stream.hls_only) {
+
114  combined_listener->AddListener(
+
115  CreateMpdListenerInternal(stream, mpd_notifier_));
+
116  }
+
117 
+
118  if (hls_notifier_ && !stream.dash_only) {
+
119  for (auto& listener :
+
120  CreateHlsListenersInternal(stream, stream_index, hls_notifier_)) {
+
121  combined_listener->AddListener(std::move(listener));
+
122  }
+
123  }
+
124 
+
125  multi_codec_listener->AddListener(std::move(combined_listener));
+
126  }
+
127 
+
128  return std::move(multi_codec_listener);
+
129 }
+
130 
+
131 std::unique_ptr<MuxerListener> MuxerListenerFactory::CreateHlsListener(
+
132  const StreamData& stream) {
+
133  if (!hls_notifier_) {
+
134  return nullptr;
+
135  }
+
136 
+
137  const int stream_index = stream_index_++;
+
138  return std::move(
+
139  CreateHlsListenersInternal(stream, stream_index, hls_notifier_).front());
+
140 }
+
141 
+
142 } // namespace media
+
143 } // namespace shaka
shaka::MpdNotifier
Definition: mpd_notifier.h:27
shaka::hls::HlsNotifier
Definition: hls_notifier.h:20
shaka::media::CombinedMuxerListener
Definition: combined_muxer_listener.h:20
shaka::media::MultiCodecMuxerListener
Definition: multi_codec_muxer_listener.h:22
-
shaka::media::MuxerListenerFactory::CreateHlsListener
std::unique_ptr< MuxerListener > CreateHlsListener(const StreamData &stream)
Definition: muxer_listener_factory.cc:127
-
shaka::media::MuxerListenerFactory::CreateListener
std::unique_ptr< MuxerListener > CreateListener(const StreamData &stream)
Create a listener for a stream.
Definition: muxer_listener_factory.cc:89
-
shaka::media::MuxerListenerFactory::MuxerListenerFactory
MuxerListenerFactory(bool output_media_info, MpdNotifier *mpd_notifier, hls::HlsNotifier *hls_notifier)
Definition: muxer_listener_factory.cc:82
+
shaka::media::MuxerListenerFactory::CreateHlsListener
std::unique_ptr< MuxerListener > CreateHlsListener(const StreamData &stream)
Definition: muxer_listener_factory.cc:131
+
shaka::media::MuxerListenerFactory::CreateListener
std::unique_ptr< MuxerListener > CreateListener(const StreamData &stream)
Create a listener for a stream.
Definition: muxer_listener_factory.cc:92
+
shaka::media::MuxerListenerFactory::MuxerListenerFactory
MuxerListenerFactory(bool output_media_info, bool use_segment_list, MpdNotifier *mpd_notifier, hls::HlsNotifier *hls_notifier)
Definition: muxer_listener_factory.cc:83
shaka
All the methods that are virtual are virtual for mocking.
Definition: gflags_hex_bytes.cc:11
shaka::media::MuxerListenerFactory::StreamData
Definition: muxer_listener_factory.h:37
diff --git a/docs/d0/d06/mpd__flags_8cc_source.html b/docs/d0/d06/mpd__flags_8cc_source.html index 5df4e20094..c3b891e4c5 100644 --- a/docs/d0/d06/mpd__flags_8cc_source.html +++ b/docs/d0/d06/mpd__flags_8cc_source.html @@ -140,10 +140,16 @@ $(function() {
69  "If enabled, PlayReady Object <mspr:pro> will be inserted into "
70  "<ContentProtection ...> element alongside with <cenc:pssh> "
71  "when using PlayReady protection system.");
+
72 DEFINE_bool(dash_force_segment_list,
+
73  false,
+
74  "Uses SegmentList instead of SegmentBase. Use this if the "
+
75  "content is huge and the total number of (sub)segment references "
+
76  "is greater than what the sidx atom allows (65535). Currently "
+
77  "this flag is only supported in DASH ondemand profile.");
diff --git a/docs/d0/d07/av1__codec__configuration__record_8h_source.html b/docs/d0/d07/av1__codec__configuration__record_8h_source.html index d5ee8cfea2..48341a3174 100644 --- a/docs/d0/d07/av1__codec__configuration__record_8h_source.html +++ b/docs/d0/d07/av1__codec__configuration__record_8h_source.html @@ -124,7 +124,7 @@ $(function() { 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 a84725d0b4..aa78d2b08c 100644 --- a/docs/d0/d0e/classshaka_1_1media_1_1HttpKeyFetcher-members.html +++ b/docs/d0/d0e/classshaka_1_1media_1_1HttpKeyFetcher-members.html @@ -83,7 +83,7 @@ $(function() { 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 c67304eb36..568db71d30 100644 --- a/docs/d0/d0e/hevc__decoder__configuration__record_8h_source.html +++ b/docs/d0/d0e/hevc__decoder__configuration__record_8h_source.html @@ -122,7 +122,7 @@ $(function() { diff --git a/docs/d0/d0e/muxer__options_8h_source.html b/docs/d0/d0e/muxer__options_8h_source.html index 0734ed989e..7a2658a6ad 100644 --- a/docs/d0/d0e/muxer__options_8h_source.html +++ b/docs/d0/d0e/muxer__options_8h_source.html @@ -121,7 +121,7 @@ $(function() { 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 b7f0ceb5ca..92806901a7 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d0/d10/classshaka_1_1media_1_1WidevinePsshGenerator-members.html b/docs/d0/d10/classshaka_1_1media_1_1WidevinePsshGenerator-members.html index 2391f116b6..adc859138e 100644 --- a/docs/d0/d10/classshaka_1_1media_1_1WidevinePsshGenerator-members.html +++ b/docs/d0/d10/classshaka_1_1media_1_1WidevinePsshGenerator-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html b/docs/d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html index 1ac078ba8e..60540fb925 100644 --- a/docs/d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html +++ b/docs/d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html @@ -100,7 +100,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 a68da37d10..4ea3f247e0 100644 --- a/docs/d0/d17/structshaka_1_1media_1_1StreamData-members.html +++ b/docs/d0/d17/structshaka_1_1media_1_1StreamData-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/d0/d1a/text__sample_8h_source.html b/docs/d0/d1a/text__sample_8h_source.html index 2c877ceb12..5229042f22 100644 --- a/docs/d0/d1a/text__sample_8h_source.html +++ b/docs/d0/d1a/text__sample_8h_source.html @@ -210,7 +210,7 @@ $(function() { 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 ff98639c69..4abf8d0ebd 100644 --- a/docs/d0/d1e/classshaka_1_1media_1_1H265ByteToUnitStreamConverter-members.html +++ b/docs/d0/d1e/classshaka_1_1media_1_1H265ByteToUnitStreamConverter-members.html @@ -87,7 +87,7 @@ $(function() { 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 7b3a029250..1704adde3e 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 @@ -92,7 +92,7 @@ $(function() { 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 9e0a9c7841..04b1ab0d9b 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 @@ -133,7 +133,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 b2097b8566..faae594af2 100644 --- a/docs/d0/d27/structshaka_1_1media_1_1MuxerOptions.html +++ b/docs/d0/d27/structshaka_1_1media_1_1MuxerOptions.html @@ -161,7 +161,7 @@ std::string  diff --git a/docs/d0/d2b/representation_8h_source.html b/docs/d0/d2b/representation_8h_source.html index 8df0c2e209..a32cc3a9e9 100644 --- a/docs/d0/d2b/representation_8h_source.html +++ b/docs/d0/d2b/representation_8h_source.html @@ -244,12 +244,12 @@ $(function() {
shaka::Representation::SetSampleDuration
virtual void SetSampleDuration(uint32_t sample_duration)
Definition: representation.cc:196
shaka::Representation::AddContentProtectionElement
virtual void AddContentProtectionElement(const ContentProtectionElement &element)
Definition: representation.cc:159
shaka::Representation::UpdateContentProtectionPssh
virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
Definition: representation.cc:165
-
shaka::Representation::SuppressOnce
void SuppressOnce(SuppressFlag flag)
Definition: representation.cc:286
+
shaka::Representation::SuppressOnce
void SuppressOnce(SuppressFlag flag)
Definition: representation.cc:288
shaka::Representation::GetMediaInfo
virtual const MediaInfo & GetMediaInfo() const
Definition: representation.cc:211
-
shaka::Representation::GetStartAndEndTimestamps
bool GetStartAndEndTimestamps(double *start_timestamp_seconds, double *end_timestamp_seconds) const
Definition: representation.cc:298
+
shaka::Representation::GetStartAndEndTimestamps
bool GetStartAndEndTimestamps(double *start_timestamp_seconds, double *end_timestamp_seconds) const
Definition: representation.cc:300
shaka::Representation::Representation
Representation(const MediaInfo &media_info, const MpdOptions &mpd_options, uint32_t representation_id, std::unique_ptr< RepresentationStateChangeListener > state_change_listener)
Definition: representation.cc:85
shaka::Representation::id
uint32_t id() const
Definition: representation.h:142
-
shaka::Representation::SetPresentationTimeOffset
void SetPresentationTimeOffset(double presentation_time_offset)
Set @presentationTimeOffset in SegmentBase / SegmentTemplate.
Definition: representation.cc:290
+
shaka::Representation::SetPresentationTimeOffset
void SetPresentationTimeOffset(double presentation_time_offset)
Set @presentationTimeOffset in SegmentBase / SegmentTemplate.
Definition: representation.cc:292
shaka::Representation::GetXml
base::Optional< xml::XmlNode > GetXml()
Definition: representation.cc:221
shaka::Representation::Init
bool Init()
Definition: representation.cc:117
shaka::Representation::AddNewSegment
virtual void AddNewSegment(int64_t start_time, int64_t duration, uint64_t size)
Definition: representation.cc:171
@@ -258,7 +258,7 @@ $(function() { diff --git a/docs/d0/d30/mock__mpd__notifier_8h_source.html b/docs/d0/d30/mock__mpd__notifier_8h_source.html index cde984e111..41f128fdae 100644 --- a/docs/d0/d30/mock__mpd__notifier_8h_source.html +++ b/docs/d0/d30/mock__mpd__notifier_8h_source.html @@ -131,7 +131,7 @@ $(function() { diff --git a/docs/d0/d32/mp2t__common_8h_source.html b/docs/d0/d32/mp2t__common_8h_source.html index 6caea03e90..bc18eb2ed4 100644 --- a/docs/d0/d32/mp2t__common_8h_source.html +++ b/docs/d0/d32/mp2t__common_8h_source.html @@ -101,7 +101,7 @@ $(function() { diff --git a/docs/d0/d33/classshaka_1_1MockRepresentation.html b/docs/d0/d33/classshaka_1_1MockRepresentation.html index 7615c53647..fc3d137219 100644 --- a/docs/d0/d33/classshaka_1_1MockRepresentation.html +++ b/docs/d0/d33/classshaka_1_1MockRepresentation.html @@ -155,7 +155,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 afcd3085b3..6c58204709 100644 --- a/docs/d0/d35/es__descriptor_8cc_source.html +++ b/docs/d0/d35/es__descriptor_8cc_source.html @@ -324,7 +324,7 @@ $(function() { diff --git a/docs/d0/d37/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf.html b/docs/d0/d37/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf.html index 17c124e332..16f58a8a08 100644 --- a/docs/d0/d37/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf.html +++ b/docs/d0/d37/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf.html @@ -108,7 +108,7 @@ struct { diff --git a/docs/d0/d39/video__util_8cc_source.html b/docs/d0/d39/video__util_8cc_source.html index 13c711834b..15bcb482b0 100644 --- a/docs/d0/d39/video__util_8cc_source.html +++ b/docs/d0/d39/video__util_8cc_source.html @@ -141,7 +141,7 @@ $(function() { 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 2980b09f81..30b93aa7d2 100644 --- a/docs/d0/d3a/hls__notify__muxer__listener_8cc_source.html +++ b/docs/d0/d3a/hls__notify__muxer__listener_8cc_source.html @@ -391,7 +391,7 @@ $(function() { diff --git a/docs/d0/d3a/webm__constants_8h_source.html b/docs/d0/d3a/webm__constants_8h_source.html index 819676cc12..55f3af6ec7 100644 --- a/docs/d0/d3a/webm__constants_8h_source.html +++ b/docs/d0/d3a/webm__constants_8h_source.html @@ -227,96 +227,98 @@ $(function() {
159 const int kWebMIdPrevFilename = 0x3C83AB;
160 const int kWebMIdPrevSize = 0xAB;
161 const int kWebMIdPrevUID = 0x3CB923;
-
162 const int kWebMIdReferenceBlock = 0xFB;
-
163 const int kWebMIdReferencePriority = 0xFA;
-
164 const int kWebMIdSamplingFrequency = 0xB5;
-
165 const int kWebMIdSeek = 0x4DBB;
-
166 const int kWebMIdSeekHead = 0x114D9B74;
-
167 const int kWebMIdSeekID = 0x53AB;
-
168 const int kWebMIdSeekPosition = 0x53AC;
-
169 const int kWebMIdSeekPreRoll = 0x56BB;
-
170 const int kWebMIdSegment = 0x18538067;
-
171 const int kWebMIdSegmentFamily = 0x4444;
-
172 const int kWebMIdSegmentFilename = 0x7384;
-
173 const int kWebMIdSegmentUID = 0x73A4;
-
174 const int kWebMIdSilentTrackNumber = 0x58D7;
-
175 const int kWebMIdSilentTracks = 0x5854;
-
176 const int kWebMIdSimpleBlock = 0xA3;
-
177 const int kWebMIdSimpleTag = 0x67C8;
-
178 const int kWebMIdSlices = 0x8E;
-
179 const int kWebMIdStereoMode = 0x53B8;
-
180 const int kWebMIdTag = 0x7373;
-
181 const int kWebMIdTagAttachmentUID = 0x63C6;
-
182 const int kWebMIdTagBinary = 0x4485;
-
183 const int kWebMIdTagChapterUID = 0x63C4;
-
184 const int kWebMIdTagDefault = 0x4484;
-
185 const int kWebMIdTagEditionUID = 0x63C9;
-
186 const int kWebMIdTagLanguage = 0x447A;
-
187 const int kWebMIdTagName = 0x45A3;
-
188 const int kWebMIdTags = 0x1254C367;
-
189 const int kWebMIdTagString = 0x4487;
-
190 const int kWebMIdTagTrackUID = 0x63C5;
-
191 const int kWebMIdTargets = 0x63C0;
-
192 const int kWebMIdTargetType = 0x63CA;
-
193 const int kWebMIdTargetTypeValue = 0x68CA;
-
194 const int kWebMIdTimecode = 0xE7;
-
195 const int kWebMIdTimecodeScale = 0x2AD7B1;
-
196 const int kWebMIdTimeSlice = 0xE8;
-
197 const int kWebMIdTitle = 0x7BA9;
-
198 const int kWebMIdTrackCombinePlanes = 0xE3;
-
199 const int kWebMIdTrackEntry = 0xAE;
-
200 const int kWebMIdTrackJoinUID = 0xED;
-
201 const int kWebMIdTrackNumber = 0xD7;
-
202 const int kWebMIdTrackOperation = 0xE2;
-
203 const int kWebMIdTrackOverlay = 0x6FAB;
-
204 const int kWebMIdTrackPlane = 0xE4;
-
205 const int kWebMIdTrackPlaneType = 0xE6;
-
206 const int kWebMIdTrackPlaneUID = 0xE5;
-
207 const int kWebMIdTracks = 0x1654AE6B;
-
208 const int kWebMIdTrackTimecodeScale = 0x23314F;
-
209 const int kWebMIdTrackTranslate = 0x6624;
-
210 const int kWebMIdTrackTranslateCodec = 0x66BF;
-
211 const int kWebMIdTrackTranslateEditionUID = 0x66FC;
-
212 const int kWebMIdTrackTranslateTrackID = 0x66A5;
-
213 const int kWebMIdTrackType = 0x83;
-
214 const int kWebMIdTrackUID = 0x73C5;
-
215 const int kWebMIdVideo = 0xE0;
-
216 const int kWebMIdVoid = 0xEC;
-
217 const int kWebMIdWritingApp = 0x5741;
-
218 
-
219 const int64_t kWebMReservedId = 0x1FFFFFFF;
-
220 const int64_t kWebMUnknownSize = 0x00FFFFFFFFFFFFFFLL;
-
221 
-
222 const uint8_t kWebMFlagKeyframe = 0x80;
+
162 const int kWebMIdProjection = 0x7670;
+
163 const int kWebMIdProjectionType = 0x7671;
+
164 const int kWebMIdReferenceBlock = 0xFB;
+
165 const int kWebMIdReferencePriority = 0xFA;
+
166 const int kWebMIdSamplingFrequency = 0xB5;
+
167 const int kWebMIdSeek = 0x4DBB;
+
168 const int kWebMIdSeekHead = 0x114D9B74;
+
169 const int kWebMIdSeekID = 0x53AB;
+
170 const int kWebMIdSeekPosition = 0x53AC;
+
171 const int kWebMIdSeekPreRoll = 0x56BB;
+
172 const int kWebMIdSegment = 0x18538067;
+
173 const int kWebMIdSegmentFamily = 0x4444;
+
174 const int kWebMIdSegmentFilename = 0x7384;
+
175 const int kWebMIdSegmentUID = 0x73A4;
+
176 const int kWebMIdSilentTrackNumber = 0x58D7;
+
177 const int kWebMIdSilentTracks = 0x5854;
+
178 const int kWebMIdSimpleBlock = 0xA3;
+
179 const int kWebMIdSimpleTag = 0x67C8;
+
180 const int kWebMIdSlices = 0x8E;
+
181 const int kWebMIdStereoMode = 0x53B8;
+
182 const int kWebMIdTag = 0x7373;
+
183 const int kWebMIdTagAttachmentUID = 0x63C6;
+
184 const int kWebMIdTagBinary = 0x4485;
+
185 const int kWebMIdTagChapterUID = 0x63C4;
+
186 const int kWebMIdTagDefault = 0x4484;
+
187 const int kWebMIdTagEditionUID = 0x63C9;
+
188 const int kWebMIdTagLanguage = 0x447A;
+
189 const int kWebMIdTagName = 0x45A3;
+
190 const int kWebMIdTags = 0x1254C367;
+
191 const int kWebMIdTagString = 0x4487;
+
192 const int kWebMIdTagTrackUID = 0x63C5;
+
193 const int kWebMIdTargets = 0x63C0;
+
194 const int kWebMIdTargetType = 0x63CA;
+
195 const int kWebMIdTargetTypeValue = 0x68CA;
+
196 const int kWebMIdTimecode = 0xE7;
+
197 const int kWebMIdTimecodeScale = 0x2AD7B1;
+
198 const int kWebMIdTimeSlice = 0xE8;
+
199 const int kWebMIdTitle = 0x7BA9;
+
200 const int kWebMIdTrackCombinePlanes = 0xE3;
+
201 const int kWebMIdTrackEntry = 0xAE;
+
202 const int kWebMIdTrackJoinUID = 0xED;
+
203 const int kWebMIdTrackNumber = 0xD7;
+
204 const int kWebMIdTrackOperation = 0xE2;
+
205 const int kWebMIdTrackOverlay = 0x6FAB;
+
206 const int kWebMIdTrackPlane = 0xE4;
+
207 const int kWebMIdTrackPlaneType = 0xE6;
+
208 const int kWebMIdTrackPlaneUID = 0xE5;
+
209 const int kWebMIdTracks = 0x1654AE6B;
+
210 const int kWebMIdTrackTimecodeScale = 0x23314F;
+
211 const int kWebMIdTrackTranslate = 0x6624;
+
212 const int kWebMIdTrackTranslateCodec = 0x66BF;
+
213 const int kWebMIdTrackTranslateEditionUID = 0x66FC;
+
214 const int kWebMIdTrackTranslateTrackID = 0x66A5;
+
215 const int kWebMIdTrackType = 0x83;
+
216 const int kWebMIdTrackUID = 0x73C5;
+
217 const int kWebMIdVideo = 0xE0;
+
218 const int kWebMIdVoid = 0xEC;
+
219 const int kWebMIdWritingApp = 0x5741;
+
220 
+
221 const int64_t kWebMReservedId = 0x1FFFFFFF;
+
222 const int64_t kWebMUnknownSize = 0x00FFFFFFFFFFFFFFLL;
223 
-
226 const size_t kWebMIvSize = 8;
-
227 const size_t kWebMSignalByteSize = 1;
-
228 const uint8_t kWebMEncryptedSignal = 0x01;
-
229 const uint8_t kWebMPartitionedSignal = 0x02;
-
230 const size_t kWebMNumPartitionsSize = 1;
-
231 const size_t kWebMPartitionOffsetSize = sizeof(uint32_t);
-
232 const uint8_t kWebMMaxSubsamples = 127;
-
233 
-
236 
-
237 const int kWebMTrackTypeVideo = 1;
-
238 const int kWebMTrackTypeAudio = 2;
-
239 const int kWebMTrackTypeSubtitlesOrCaptions = 0x11;
-
240 const int kWebMTrackTypeDescriptionsOrMetadata = 0x21;
-
241 
-
242 extern const char kWebMCodecSubtitles[];
-
243 extern const char kWebMCodecCaptions[];
-
244 extern const char kWebMCodecDescriptions[];
-
245 extern const char kWebMCodecMetadata[];
-
246 
-
247 } // namespace media
-
248 } // namespace shaka
-
249 
-
250 #endif // PACKAGER_MEDIA_FORMATS_WEBM_WEBM_CONSTANTS_H_
+
224 const uint8_t kWebMFlagKeyframe = 0x80;
+
225 
+
228 const size_t kWebMIvSize = 8;
+
229 const size_t kWebMSignalByteSize = 1;
+
230 const uint8_t kWebMEncryptedSignal = 0x01;
+
231 const uint8_t kWebMPartitionedSignal = 0x02;
+
232 const size_t kWebMNumPartitionsSize = 1;
+
233 const size_t kWebMPartitionOffsetSize = sizeof(uint32_t);
+
234 const uint8_t kWebMMaxSubsamples = 127;
+
235 
+
238 
+
239 const int kWebMTrackTypeVideo = 1;
+
240 const int kWebMTrackTypeAudio = 2;
+
241 const int kWebMTrackTypeSubtitlesOrCaptions = 0x11;
+
242 const int kWebMTrackTypeDescriptionsOrMetadata = 0x21;
+
243 
+
244 extern const char kWebMCodecSubtitles[];
+
245 extern const char kWebMCodecCaptions[];
+
246 extern const char kWebMCodecDescriptions[];
+
247 extern const char kWebMCodecMetadata[];
+
248 
+
249 } // namespace media
+
250 } // namespace shaka
+
251 
+
252 #endif // PACKAGER_MEDIA_FORMATS_WEBM_WEBM_CONSTANTS_H_
shaka
All the methods that are virtual are virtual for mocking.
Definition: gflags_hex_bytes.cc:11
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 a97e6cd7dc..a303052c67 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 @@ -163,7 +163,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 405dcafc5d..031821607a 100644 --- a/docs/d0/d42/aes__cryptor_8h_source.html +++ b/docs/d0/d42/aes__cryptor_8h_source.html @@ -196,7 +196,7 @@ $(function() { diff --git a/docs/d0/d42/widevine__encryption__flags_8cc_source.html b/docs/d0/d42/widevine__encryption__flags_8cc_source.html index 2fea300dad..a4a5f13d78 100644 --- a/docs/d0/d42/widevine__encryption__flags_8cc_source.html +++ b/docs/d0/d42/widevine__encryption__flags_8cc_source.html @@ -250,7 +250,7 @@ $(function() { diff --git a/docs/d0/d43/structshaka_1_1Mp4OutputParams.html b/docs/d0/d43/structshaka_1_1Mp4OutputParams.html index a1cb8c3379..6a08aeacba 100644 --- a/docs/d0/d43/structshaka_1_1Mp4OutputParams.html +++ b/docs/d0/d43/structshaka_1_1Mp4OutputParams.html @@ -130,7 +130,7 @@ Public Attributes diff --git a/docs/d0/d46/fourccs_8h_source.html b/docs/d0/d46/fourccs_8h_source.html index 8e3a9d546a..4340c1dfe8 100644 --- a/docs/d0/d46/fourccs_8h_source.html +++ b/docs/d0/d46/fourccs_8h_source.html @@ -258,7 +258,7 @@ $(function() { 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 20e2c0b61d..69b51de825 100644 --- a/docs/d0/d48/structshaka_1_1media_1_1SegmentInfo-members.html +++ b/docs/d0/d48/structshaka_1_1media_1_1SegmentInfo-members.html @@ -80,7 +80,7 @@ $(function() { 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 48a9e6b9e8..3a5fd94c2b 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 @@ -93,123 +93,124 @@ $(function() {
22 namespace media {
23 
24 VodMediaInfoDumpMuxerListener::VodMediaInfoDumpMuxerListener(
-
25  const std::string& output_file_path)
-
26  : output_file_name_(output_file_path) {}
-
27 
-
28 VodMediaInfoDumpMuxerListener::~VodMediaInfoDumpMuxerListener() {}
-
29 
-
30 void VodMediaInfoDumpMuxerListener::OnEncryptionInfoReady(
-
31  bool is_initial_encryption_info,
-
32  FourCC protection_scheme,
-
33  const std::vector<uint8_t>& default_key_id,
-
34  const std::vector<uint8_t>& iv,
-
35  const std::vector<ProtectionSystemSpecificInfo>& key_system_info) {
-
36  LOG_IF(WARNING, !is_initial_encryption_info)
-
37  << "Updating (non initial) encryption info is not supported by "
-
38  "this module.";
-
39  protection_scheme_ = protection_scheme;
-
40  default_key_id_ = default_key_id;
-
41  key_system_info_ = key_system_info;
-
42  is_encrypted_ = true;
-
43 }
-
44 
-
45 void VodMediaInfoDumpMuxerListener::OnMediaStart(
-
46  const MuxerOptions& muxer_options,
-
47  const StreamInfo& stream_info,
-
48  uint32_t time_scale,
-
49  ContainerType container_type) {
-
50  DCHECK(muxer_options.segment_template.empty());
-
51  media_info_.reset(new MediaInfo());
-
52  if (!internal::GenerateMediaInfo(muxer_options,
-
53  stream_info,
-
54  time_scale,
-
55  container_type,
-
56  media_info_.get())) {
-
57  LOG(ERROR) << "Failed to generate MediaInfo from input.";
-
58  return;
-
59  }
-
60 
-
61  if (is_encrypted_) {
-
62  internal::SetContentProtectionFields(protection_scheme_, default_key_id_,
-
63  key_system_info_, media_info_.get());
-
64  }
-
65 }
-
66 
-
67 void VodMediaInfoDumpMuxerListener::OnEncryptionStart() {}
-
68 
-
69 void VodMediaInfoDumpMuxerListener::OnSampleDurationReady(
-
70  uint32_t sample_duration) {
-
71  // Assume one VideoInfo.
-
72  if (media_info_->has_video_info()) {
-
73  media_info_->mutable_video_info()->set_frame_duration(sample_duration);
-
74  }
-
75 }
-
76 
-
77 void VodMediaInfoDumpMuxerListener::OnMediaEnd(const MediaRanges& media_ranges,
-
78  float duration_seconds) {
-
79  DCHECK(media_info_);
-
80  if (!internal::SetVodInformation(media_ranges, duration_seconds,
-
81  media_info_.get())) {
-
82  LOG(ERROR) << "Failed to generate VOD information from input.";
-
83  return;
-
84  }
-
85  if (!media_info_->has_bandwidth())
-
86  media_info_->set_bandwidth(max_bitrate_);
-
87  WriteMediaInfoToFile(*media_info_, output_file_name_);
-
88 }
-
89 
-
90 void VodMediaInfoDumpMuxerListener::OnNewSegment(const std::string& file_name,
-
91  int64_t start_time,
-
92  int64_t duration,
-
93  uint64_t segment_file_size) {
-
94  const double segment_duration_seconds =
-
95  static_cast<double>(duration) / media_info_->reference_time_scale();
-
96 
-
97  const int kBitsInByte = 8;
-
98  const uint64_t bitrate =
-
99  ceil(kBitsInByte * segment_file_size / segment_duration_seconds);
-
100  max_bitrate_ = std::max(max_bitrate_, bitrate);
-
101 }
-
102 
-
103 void VodMediaInfoDumpMuxerListener::OnKeyFrame(int64_t timestamp,
-
104  uint64_t start_byte_offset,
-
105  uint64_t size) {}
-
106 
-
107 void VodMediaInfoDumpMuxerListener::OnCueEvent(int64_t timestamp,
-
108  const std::string& cue_data) {
-
109  NOTIMPLEMENTED();
-
110 }
-
111 
-
112 // static
-
113 bool VodMediaInfoDumpMuxerListener::WriteMediaInfoToFile(
-
114  const MediaInfo& media_info,
-
115  const std::string& output_file_path) {
-
116  std::string output_string;
-
117  if (!google::protobuf::TextFormat::PrintToString(media_info,
-
118  &output_string)) {
-
119  LOG(ERROR) << "Failed to serialize MediaInfo to string.";
-
120  return false;
-
121  }
-
122 
-
123  File* file = File::Open(output_file_path.c_str(), "w");
-
124  if (!file) {
-
125  LOG(ERROR) << "Failed to open " << output_file_path;
-
126  return false;
-
127  }
-
128  if (file->Write(output_string.data(), output_string.size()) <= 0) {
-
129  LOG(ERROR) << "Failed to write MediaInfo to file.";
-
130  file->Close();
-
131  return false;
-
132  }
-
133  if (!file->Close()) {
-
134  LOG(ERROR) << "Failed to close " << output_file_path;
-
135  return false;
-
136  }
-
137  return true;
-
138 }
-
139 
-
140 } // namespace media
-
141 } // namespace shaka
+
25  const std::string& output_file_path, bool use_segment_list)
+
26  : output_file_name_(output_file_path),
+
27  use_segment_list_(use_segment_list) {}
+
28 
+
29 VodMediaInfoDumpMuxerListener::~VodMediaInfoDumpMuxerListener() {}
+
30 
+
31 void VodMediaInfoDumpMuxerListener::OnEncryptionInfoReady(
+
32  bool is_initial_encryption_info,
+
33  FourCC protection_scheme,
+
34  const std::vector<uint8_t>& default_key_id,
+
35  const std::vector<uint8_t>& iv,
+
36  const std::vector<ProtectionSystemSpecificInfo>& key_system_info) {
+
37  LOG_IF(WARNING, !is_initial_encryption_info)
+
38  << "Updating (non initial) encryption info is not supported by "
+
39  "this module.";
+
40  protection_scheme_ = protection_scheme;
+
41  default_key_id_ = default_key_id;
+
42  key_system_info_ = key_system_info;
+
43  is_encrypted_ = true;
+
44 }
+
45 
+
46 void VodMediaInfoDumpMuxerListener::OnMediaStart(
+
47  const MuxerOptions& muxer_options,
+
48  const StreamInfo& stream_info,
+
49  uint32_t time_scale,
+
50  ContainerType container_type) {
+
51  DCHECK(muxer_options.segment_template.empty());
+
52  media_info_.reset(new MediaInfo());
+
53  if (!internal::GenerateMediaInfo(muxer_options,
+
54  stream_info,
+
55  time_scale,
+
56  container_type,
+
57  media_info_.get())) {
+
58  LOG(ERROR) << "Failed to generate MediaInfo from input.";
+
59  return;
+
60  }
+
61 
+
62  if (is_encrypted_) {
+
63  internal::SetContentProtectionFields(protection_scheme_, default_key_id_,
+
64  key_system_info_, media_info_.get());
+
65  }
+
66 }
+
67 
+
68 void VodMediaInfoDumpMuxerListener::OnEncryptionStart() {}
+
69 
+
70 void VodMediaInfoDumpMuxerListener::OnSampleDurationReady(
+
71  uint32_t sample_duration) {
+
72  // Assume one VideoInfo.
+
73  if (media_info_->has_video_info()) {
+
74  media_info_->mutable_video_info()->set_frame_duration(sample_duration);
+
75  }
+
76 }
+
77 
+
78 void VodMediaInfoDumpMuxerListener::OnMediaEnd(const MediaRanges& media_ranges,
+
79  float duration_seconds) {
+
80  DCHECK(media_info_);
+
81  if (!internal::SetVodInformation(media_ranges, duration_seconds,
+
82  use_segment_list_, media_info_.get())) {
+
83  LOG(ERROR) << "Failed to generate VOD information from input.";
+
84  return;
+
85  }
+
86  if (!media_info_->has_bandwidth())
+
87  media_info_->set_bandwidth(max_bitrate_);
+
88  WriteMediaInfoToFile(*media_info_, output_file_name_);
+
89 }
+
90 
+
91 void VodMediaInfoDumpMuxerListener::OnNewSegment(const std::string& file_name,
+
92  int64_t start_time,
+
93  int64_t duration,
+
94  uint64_t segment_file_size) {
+
95  const double segment_duration_seconds =
+
96  static_cast<double>(duration) / media_info_->reference_time_scale();
+
97 
+
98  const int kBitsInByte = 8;
+
99  const uint64_t bitrate =
+
100  ceil(kBitsInByte * segment_file_size / segment_duration_seconds);
+
101  max_bitrate_ = std::max(max_bitrate_, bitrate);
+
102 }
+
103 
+
104 void VodMediaInfoDumpMuxerListener::OnKeyFrame(int64_t timestamp,
+
105  uint64_t start_byte_offset,
+
106  uint64_t size) {}
+
107 
+
108 void VodMediaInfoDumpMuxerListener::OnCueEvent(int64_t timestamp,
+
109  const std::string& cue_data) {
+
110  NOTIMPLEMENTED();
+
111 }
+
112 
+
113 // static
+
114 bool VodMediaInfoDumpMuxerListener::WriteMediaInfoToFile(
+
115  const MediaInfo& media_info,
+
116  const std::string& output_file_path) {
+
117  std::string output_string;
+
118  if (!google::protobuf::TextFormat::PrintToString(media_info,
+
119  &output_string)) {
+
120  LOG(ERROR) << "Failed to serialize MediaInfo to string.";
+
121  return false;
+
122  }
+
123 
+
124  File* file = File::Open(output_file_path.c_str(), "w");
+
125  if (!file) {
+
126  LOG(ERROR) << "Failed to open " << output_file_path;
+
127  return false;
+
128  }
+
129  if (file->Write(output_string.data(), output_string.size()) <= 0) {
+
130  LOG(ERROR) << "Failed to write MediaInfo to file.";
+
131  file->Close();
+
132  return false;
+
133  }
+
134  if (!file->Close()) {
+
135  LOG(ERROR) << "Failed to close " << output_file_path;
+
136  return false;
+
137  }
+
138  return true;
+
139 }
+
140 
+
141 } // namespace media
+
142 } // namespace shaka
shaka::File
Define an abstract file interface.
Definition: file.h:27
shaka::File::Write
virtual int64_t Write(const void *buffer, uint64_t length)=0
shaka::File::Close
virtual bool Close()=0
@@ -221,7 +222,7 @@ $(function() { 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 8553b0c85b..b8a3de9887 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 @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/d0/d4c/structshaka_1_1media_1_1StreamData.html b/docs/d0/d4c/structshaka_1_1media_1_1StreamData.html index 0a95a5c716..35971a2e11 100644 --- a/docs/d0/d4c/structshaka_1_1media_1_1StreamData.html +++ b/docs/d0/d4c/structshaka_1_1media_1_1StreamData.html @@ -131,7 +131,7 @@ std::shared_ptr< const diff --git a/docs/d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html b/docs/d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html index bf2cfa7573..90d6b0aa3f 100644 --- a/docs/d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html +++ b/docs/d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html @@ -110,7 +110,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 6593a74f5a..a6bd3550e6 100644 --- a/docs/d0/d4e/libcrypto__threading_8cc_source.html +++ b/docs/d0/d4e/libcrypto__threading_8cc_source.html @@ -125,7 +125,7 @@ $(function() { 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 b4a4e14cc0..4097c255e3 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 @@ -112,7 +112,7 @@ $(function() { diff --git a/docs/d0/d53/dovi__decoder__configuration__record_8h_source.html b/docs/d0/d53/dovi__decoder__configuration__record_8h_source.html index 9e8613e1e7..22cd263b3b 100644 --- a/docs/d0/d53/dovi__decoder__configuration__record_8h_source.html +++ b/docs/d0/d53/dovi__decoder__configuration__record_8h_source.html @@ -122,7 +122,7 @@ $(function() { diff --git a/docs/d0/d59/classshaka_1_1media_1_1Job.html b/docs/d0/d59/classshaka_1_1media_1_1Job.html index f7485d1d58..6967fedad8 100644 --- a/docs/d0/d59/classshaka_1_1media_1_1Job.html +++ b/docs/d0/d59/classshaka_1_1media_1_1Job.html @@ -104,7 +104,7 @@ base::WaitableEvent * wait 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 cbec6792a7..a3ef070fe8 100644 --- a/docs/d0/d5b/classshaka_1_1media_1_1MpdNotifyMuxerListener-members.html +++ b/docs/d0/d5b/classshaka_1_1media_1_1MpdNotifyMuxerListener-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/d0/d65/ad__cue__generator__flags_8cc_source.html b/docs/d0/d65/ad__cue__generator__flags_8cc_source.html index a036221d56..74f1183a10 100644 --- a/docs/d0/d65/ad__cue__generator__flags_8cc_source.html +++ b/docs/d0/d65/ad__cue__generator__flags_8cc_source.html @@ -91,7 +91,7 @@ $(function() { diff --git a/docs/d0/d6c/classshaka_1_1media_1_1mp2t_1_1EsParserDvb.html b/docs/d0/d6c/classshaka_1_1media_1_1mp2t_1_1EsParserDvb.html index 8a922ffd8a..34808425fa 100644 --- a/docs/d0/d6c/classshaka_1_1media_1_1mp2t_1_1EsParserDvb.html +++ b/docs/d0/d6c/classshaka_1_1media_1_1mp2t_1_1EsParserDvb.html @@ -127,7 +127,7 @@ typedef base::Callback< void(std::shared_ptr< 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 929908db8f..368234401d 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 @@ -187,7 +187,7 @@ Additional Inherited Members diff --git a/docs/d0/d73/webvtt__muxer_8h_source.html b/docs/d0/d73/webvtt__muxer_8h_source.html index cb88d5f957..df1eef4d52 100644 --- a/docs/d0/d73/webvtt__muxer_8h_source.html +++ b/docs/d0/d73/webvtt__muxer_8h_source.html @@ -117,7 +117,7 @@ $(function() { diff --git a/docs/d0/d7b/structshaka_1_1media_1_1TextFragment-members.html b/docs/d0/d7b/structshaka_1_1media_1_1TextFragment-members.html index ff53edf82e..563130c766 100644 --- a/docs/d0/d7b/structshaka_1_1media_1_1TextFragment-members.html +++ b/docs/d0/d7b/structshaka_1_1media_1_1TextFragment-members.html @@ -87,7 +87,7 @@ $(function() { 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 47ffbf0abe..b5f98ed725 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 @@ -169,7 +169,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 55b3b5a719..3f3e0ddd55 100644 --- a/docs/d0/d7d/decryptor__source_8h_source.html +++ b/docs/d0/d7d/decryptor__source_8h_source.html @@ -119,7 +119,7 @@ $(function() { 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 75333ed517..c644ef8433 100644 --- a/docs/d0/d80/classshaka_1_1media_1_1AesCbcEncryptor-members.html +++ b/docs/d0/d80/classshaka_1_1media_1_1AesCbcEncryptor-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/d0/d86/structshaka_1_1media_1_1ProtectionSystemSpecificInfo.html b/docs/d0/d86/structshaka_1_1media_1_1ProtectionSystemSpecificInfo.html index 29e3e0a8dd..b09abce3a9 100644 --- a/docs/d0/d86/structshaka_1_1media_1_1ProtectionSystemSpecificInfo.html +++ b/docs/d0/d86/structshaka_1_1media_1_1ProtectionSystemSpecificInfo.html @@ -144,7 +144,7 @@ std::vector< uint8_t >  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 3339efa318..100059fb5e 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 @@ -166,7 +166,7 @@ Additional Inherited Members diff --git a/docs/d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html b/docs/d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html index 1f12807583..e4189c5a5f 100644 --- a/docs/d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html +++ b/docs/d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html @@ -239,7 +239,7 @@ void InjectAV1ParserForTes diff --git a/docs/d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html b/docs/d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html index 77e9e9f56b..9cdc1f5735 100644 --- a/docs/d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html +++ b/docs/d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html @@ -351,7 +351,7 @@ static const size_t  diff --git a/docs/d0/da2/classshaka_1_1media_1_1CommonPsshGenerator.html b/docs/d0/da2/classshaka_1_1media_1_1CommonPsshGenerator.html index e72e5ca15a..60cbd7eb10 100644 --- a/docs/d0/da2/classshaka_1_1media_1_1CommonPsshGenerator.html +++ b/docs/d0/da2/classshaka_1_1media_1_1CommonPsshGenerator.html @@ -135,7 +135,7 @@ Public Member Functions 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 7c877e0169..c35cd267ba 100644 --- a/docs/d0/da2/classshaka_1_1media_1_1RequestSigner-members.html +++ b/docs/d0/da2/classshaka_1_1media_1_1RequestSigner-members.html @@ -79,7 +79,7 @@ $(function() { 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 e8fdd12171..3857930dc4 100644 --- a/docs/d0/da2/structshaka_1_1xml_1_1XmlDeleter-members.html +++ b/docs/d0/da2/structshaka_1_1xml_1_1XmlDeleter-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/d0/da6/stream__descriptor_8cc_source.html b/docs/d0/da6/stream__descriptor_8cc_source.html index 6267b71a01..4827ceb082 100644 --- a/docs/d0/da6/stream__descriptor_8cc_source.html +++ b/docs/d0/da6/stream__descriptor_8cc_source.html @@ -354,7 +354,7 @@ $(function() { diff --git a/docs/d0/da8/classshaka_1_1media_1_1PackedAudioWriter-members.html b/docs/d0/da8/classshaka_1_1media_1_1PackedAudioWriter-members.html index 5a3e403a10..122929d81d 100644 --- a/docs/d0/da8/classshaka_1_1media_1_1PackedAudioWriter-members.html +++ b/docs/d0/da8/classshaka_1_1media_1_1PackedAudioWriter-members.html @@ -113,7 +113,7 @@ $(function() { diff --git a/docs/d0/da8/structshaka_1_1HlsParams.html b/docs/d0/da8/structshaka_1_1HlsParams.html index df12138ff9..9afbdbaaba 100644 --- a/docs/d0/da8/structshaka_1_1HlsParams.html +++ b/docs/d0/da8/structshaka_1_1HlsParams.html @@ -255,7 +255,7 @@ bool is_independent_segmen 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 533ffd43b9..7a876e170f 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 @@ -250,7 +250,7 @@ void set_progress_target diff --git a/docs/d0/dab/subtitle__composer_8h_source.html b/docs/d0/dab/subtitle__composer_8h_source.html index 656cc37b09..096b655ef0 100644 --- a/docs/d0/dab/subtitle__composer_8h_source.html +++ b/docs/d0/dab/subtitle__composer_8h_source.html @@ -153,7 +153,7 @@ $(function() { 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 a116213fed..6030126d46 100644 --- a/docs/d0/dac/classshaka_1_1media_1_1EncryptionHandler-members.html +++ b/docs/d0/dac/classshaka_1_1media_1_1EncryptionHandler-members.html @@ -102,7 +102,7 @@ $(function() { diff --git a/docs/d0/dae/file__util_8h_source.html b/docs/d0/dae/file__util_8h_source.html index 8e10f24089..dc28b2fd52 100644 --- a/docs/d0/dae/file__util_8h_source.html +++ b/docs/d0/dae/file__util_8h_source.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/d0/db4/structshaka_1_1RawKeyParams.html b/docs/d0/db4/structshaka_1_1RawKeyParams.html index 83279f8d5e..c83e853267 100644 --- a/docs/d0/db4/structshaka_1_1RawKeyParams.html +++ b/docs/d0/db4/structshaka_1_1RawKeyParams.html @@ -162,7 +162,7 @@ Public Attributes diff --git a/docs/d0/dbb/classshaka_1_1media_1_1mp2t_1_1Ac3Header-members.html b/docs/d0/dbb/classshaka_1_1media_1_1mp2t_1_1Ac3Header-members.html index 1e84430c55..43daf3ec4d 100644 --- a/docs/d0/dbb/classshaka_1_1media_1_1mp2t_1_1Ac3Header-members.html +++ b/docs/d0/dbb/classshaka_1_1media_1_1mp2t_1_1Ac3Header-members.html @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/d0/dbc/bit__writer_8h_source.html b/docs/d0/dbc/bit__writer_8h_source.html index b18e3b05b1..d3708dec8f 100644 --- a/docs/d0/dbc/bit__writer_8h_source.html +++ b/docs/d0/dbc/bit__writer_8h_source.html @@ -127,7 +127,7 @@ $(function() { diff --git a/docs/d0/dbc/webvtt__parser_8h_source.html b/docs/d0/dbc/webvtt__parser_8h_source.html index 44956bc45a..1205769f97 100644 --- a/docs/d0/dbc/webvtt__parser_8h_source.html +++ b/docs/d0/dbc/webvtt__parser_8h_source.html @@ -136,14 +136,14 @@ $(function() {
base::Callback< bool(uint32_t track_id, std::shared_ptr< MediaSample > media_sample)> NewMediaSampleCB
Definition: media_parser.h:44
base::Callback< void(const std::vector< std::shared_ptr< StreamInfo > > &stream_info)> InitCB
Definition: media_parser.h:35
- -
void Init(const InitCB &init_cb, const NewMediaSampleCB &new_media_sample_cb, const NewTextSampleCB &new_text_sample_cb, KeySource *decryption_key_source) override
-
bool Parse(const uint8_t *buf, int size) override
+ +
void Init(const InitCB &init_cb, const NewMediaSampleCB &new_media_sample_cb, const NewTextSampleCB &new_text_sample_cb, KeySource *decryption_key_source) override
+
bool Parse(const uint8_t *buf, int size) override
All the methods that are virtual are virtual for mocking.
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 4161887f4f..a2f98918c9 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 @@ -103,7 +103,7 @@ $(function() { diff --git a/docs/d0/dbe/structshaka_1_1RawKeyParams_1_1KeyInfo.html b/docs/d0/dbe/structshaka_1_1RawKeyParams_1_1KeyInfo.html index f65021c9e7..8d944467a3 100644 --- a/docs/d0/dbe/structshaka_1_1RawKeyParams_1_1KeyInfo.html +++ b/docs/d0/dbe/structshaka_1_1RawKeyParams_1_1KeyInfo.html @@ -94,7 +94,7 @@ std::vector< uint8_t >  diff --git a/docs/d0/dc0/structshaka_1_1media_1_1SegmentInfo.html b/docs/d0/dc0/structshaka_1_1media_1_1SegmentInfo.html index d73da4d06d..0d4255c1c6 100644 --- a/docs/d0/dc0/structshaka_1_1media_1_1SegmentInfo.html +++ b/docs/d0/dc0/structshaka_1_1media_1_1SegmentInfo.html @@ -100,7 +100,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 41c42637ad..4e15dddbd0 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 @@ -87,7 +87,7 @@ $(function() { 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 d266649a14..aa5812d760 100644 --- a/docs/d0/dc8/classshaka_1_1xml_1_1AdaptationSetXmlNode-members.html +++ b/docs/d0/dc8/classshaka_1_1xml_1_1AdaptationSetXmlNode-members.html @@ -100,7 +100,7 @@ $(function() { diff --git a/docs/d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html b/docs/d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html index b55e475caa..a3e8e00d1e 100644 --- a/docs/d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html +++ b/docs/d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html @@ -206,7 +206,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 040bef33fc..676b4333f8 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 @@ -154,7 +154,7 @@ Additional Inherited Members diff --git a/docs/d0/dd6/webm__crypto__helpers_8cc_source.html b/docs/d0/dd6/webm__crypto__helpers_8cc_source.html index dc5b3a558b..02ec6f7e1a 100644 --- a/docs/d0/dd6/webm__crypto__helpers_8cc_source.html +++ b/docs/d0/dd6/webm__crypto__helpers_8cc_source.html @@ -188,7 +188,7 @@ $(function() { diff --git a/docs/d0/dd8/classshaka_1_1media_1_1AesCtrEncryptor.html b/docs/d0/dd8/classshaka_1_1media_1_1AesCtrEncryptor.html index 7b6d9c2416..b18fa91825 100644 --- a/docs/d0/dd8/classshaka_1_1media_1_1AesCtrEncryptor.html +++ b/docs/d0/dd8/classshaka_1_1media_1_1AesCtrEncryptor.html @@ -144,7 +144,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/d0/de9/classshaka_1_1media_1_1DecoderSpecificInfoDescriptor.html b/docs/d0/de9/classshaka_1_1media_1_1DecoderSpecificInfoDescriptor.html index c226f3cf1d..85b1e5da48 100644 --- a/docs/d0/de9/classshaka_1_1media_1_1DecoderSpecificInfoDescriptor.html +++ b/docs/d0/de9/classshaka_1_1media_1_1DecoderSpecificInfoDescriptor.html @@ -126,7 +126,7 @@ void  diff --git a/docs/d0/dea/classshaka_1_1media_1_1SyncPointQueue.html b/docs/d0/dea/classshaka_1_1media_1_1SyncPointQueue.html index 3bab8a16b8..6bc237ebe9 100644 --- a/docs/d0/dea/classshaka_1_1media_1_1SyncPointQueue.html +++ b/docs/d0/dea/classshaka_1_1media_1_1SyncPointQueue.html @@ -214,7 +214,7 @@ void  diff --git a/docs/d0/dee/segmenter__test__base_8h_source.html b/docs/d0/dee/segmenter__test__base_8h_source.html index fa02d67215..2d51ddc32a 100644 --- a/docs/d0/dee/segmenter__test__base_8h_source.html +++ b/docs/d0/dee/segmenter__test__base_8h_source.html @@ -196,7 +196,7 @@ $(function() { diff --git a/docs/d0/df2/classshaka_1_1media_1_1ttml_1_1TtmlToMp4Handler.html b/docs/d0/df2/classshaka_1_1media_1_1ttml_1_1TtmlToMp4Handler.html index d0215e3707..fc03eda3c3 100644 --- a/docs/d0/df2/classshaka_1_1media_1_1ttml_1_1TtmlToMp4Handler.html +++ b/docs/d0/df2/classshaka_1_1media_1_1ttml_1_1TtmlToMp4Handler.html @@ -168,7 +168,7 @@ const std::map< size_t, std::pair< std::shared_ptr< diff --git a/docs/d0/df3/packager__util_8cc_source.html b/docs/d0/df3/packager__util_8cc_source.html index 9c7c4c1c10..19a8e38090 100644 --- a/docs/d0/df3/packager__util_8cc_source.html +++ b/docs/d0/df3/packager__util_8cc_source.html @@ -250,7 +250,7 @@ $(function() { diff --git a/docs/d0/df4/classshaka_1_1hls_1_1MasterPlaylist-members.html b/docs/d0/df4/classshaka_1_1hls_1_1MasterPlaylist-members.html index d2cff65199..117785c9da 100644 --- a/docs/d0/df4/classshaka_1_1hls_1_1MasterPlaylist-members.html +++ b/docs/d0/df4/classshaka_1_1hls_1_1MasterPlaylist-members.html @@ -78,7 +78,7 @@ $(function() { 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 028c20ec78..2e1ca8609e 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 @@ -101,7 +101,7 @@ $(function() { diff --git a/docs/d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html b/docs/d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html index 310a22ef83..55aa1525ec 100644 --- a/docs/d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html +++ b/docs/d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html @@ -116,7 +116,7 @@ base::Optional< diff --git a/docs/d1/d07/structshaka_1_1AdCueGeneratorParams-members.html b/docs/d1/d07/structshaka_1_1AdCueGeneratorParams-members.html index 6a70959801..9558fec176 100644 --- a/docs/d1/d07/structshaka_1_1AdCueGeneratorParams-members.html +++ b/docs/d1/d07/structshaka_1_1AdCueGeneratorParams-members.html @@ -76,7 +76,7 @@ $(function() { diff --git a/docs/d1/d07/structshaka_1_1Cuepoint-members.html b/docs/d1/d07/structshaka_1_1Cuepoint-members.html index 6c9a64dcb8..fc06c951b8 100644 --- a/docs/d1/d07/structshaka_1_1Cuepoint-members.html +++ b/docs/d1/d07/structshaka_1_1Cuepoint-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/docs/d1/d0a/classshaka_1_1media_1_1MkvWriter.html b/docs/d1/d0a/classshaka_1_1media_1_1MkvWriter.html index 9516924cb9..3ebbeaff17 100644 --- a/docs/d1/d0a/classshaka_1_1media_1_1MkvWriter.html +++ b/docs/d1/d0a/classshaka_1_1media_1_1MkvWriter.html @@ -364,7 +364,7 @@ Public Member Functions diff --git a/docs/d1/d0a/structshaka_1_1media_1_1H264Sps.html b/docs/d1/d0a/structshaka_1_1media_1_1H264Sps.html index bb788e5d6f..c00b734deb 100644 --- a/docs/d1/d0a/structshaka_1_1media_1_1H264Sps.html +++ b/docs/d1/d0a/structshaka_1_1media_1_1H264Sps.html @@ -223,7 +223,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 cdd8ed06a4..2b73a20acf 100644 --- a/docs/d1/d0b/hevc__decoder__configuration__record_8cc_source.html +++ b/docs/d1/d0b/hevc__decoder__configuration__record_8cc_source.html @@ -233,7 +233,7 @@ $(function() { 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 54cfe8de33..18de0f5f8e 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 @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/d1/d12/range_8h_source.html b/docs/d1/d12/range_8h_source.html index cec2d60efc..11f26e8e9f 100644 --- a/docs/d1/d12/range_8h_source.html +++ b/docs/d1/d12/range_8h_source.html @@ -99,7 +99,7 @@ $(function() { diff --git a/docs/d1/d13/status_8h_source.html b/docs/d1/d13/status_8h_source.html index 10a7503cae..1d104305d5 100644 --- a/docs/d1/d13/status_8h_source.html +++ b/docs/d1/d13/status_8h_source.html @@ -218,7 +218,7 @@ $(function() { diff --git a/docs/d1/d17/structshaka_1_1WidevineDecryptionParams-members.html b/docs/d1/d17/structshaka_1_1WidevineDecryptionParams-members.html index eaf060066a..1ebfea359b 100644 --- a/docs/d1/d17/structshaka_1_1WidevineDecryptionParams-members.html +++ b/docs/d1/d17/structshaka_1_1WidevineDecryptionParams-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/docs/d1/d1b/classshaka_1_1media_1_1MockAesCryptor.html b/docs/d1/d1b/classshaka_1_1media_1_1MockAesCryptor.html index c36573e6ca..4068453ed5 100644 --- a/docs/d1/d1b/classshaka_1_1media_1_1MockAesCryptor.html +++ b/docs/d1/d1b/classshaka_1_1media_1_1MockAesCryptor.html @@ -145,7 +145,7 @@ AES_KEY * mutable_aes_key< 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 ad3403f772..9013b0baf0 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 @@ -263,7 +263,7 @@ $(function() { diff --git a/docs/d1/d1d/muxer__flags_8cc_source.html b/docs/d1/d1d/muxer__flags_8cc_source.html index debd557eff..211b48357b 100644 --- a/docs/d1/d1d/muxer__flags_8cc_source.html +++ b/docs/d1/d1d/muxer__flags_8cc_source.html @@ -127,7 +127,7 @@ $(function() { diff --git a/docs/d1/d1e/hls__notifier_8h_source.html b/docs/d1/d1e/hls__notifier_8h_source.html index 3dc6f1c22a..9b9bc97298 100644 --- a/docs/d1/d1e/hls__notifier_8h_source.html +++ b/docs/d1/d1e/hls__notifier_8h_source.html @@ -152,7 +152,7 @@ $(function() { diff --git a/docs/d1/d1f/classshaka_1_1media_1_1KeySource.html b/docs/d1/d1f/classshaka_1_1media_1_1KeySource.html index f26215feed..4e988cafdf 100644 --- a/docs/d1/d1f/classshaka_1_1media_1_1KeySource.html +++ b/docs/d1/d1f/classshaka_1_1media_1_1KeySource.html @@ -310,7 +310,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 b275534fe0..b8e666f1c0 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 @@ -223,7 +223,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 13504fa0a7..f1d93047f6 100644 --- a/docs/d1/d25/classshaka_1_1media_1_1MediaHandlerTestBase-members.html +++ b/docs/d1/d25/classshaka_1_1media_1_1MediaHandlerTestBase-members.html @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d1/d27/key__fetcher_8h_source.html b/docs/d1/d27/key__fetcher_8h_source.html index 272cdc8018..6b69ce1c12 100644 --- a/docs/d1/d27/key__fetcher_8h_source.html +++ b/docs/d1/d27/key__fetcher_8h_source.html @@ -109,7 +109,7 @@ $(function() { 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 07fb5f3b9e..16764fcc4a 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 @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/d1/d2a/decryptor__source_8cc_source.html b/docs/d1/d2a/decryptor__source_8cc_source.html index e33bb73f6f..6d7341bc3d 100644 --- a/docs/d1/d2a/decryptor__source_8cc_source.html +++ b/docs/d1/d2a/decryptor__source_8cc_source.html @@ -223,7 +223,7 @@ $(function() { diff --git a/docs/d1/d2b/file__util_8cc_source.html b/docs/d1/d2b/file__util_8cc_source.html index ee02a3a8aa..cd33c15ff0 100644 --- a/docs/d1/d2b/file__util_8cc_source.html +++ b/docs/d1/d2b/file__util_8cc_source.html @@ -129,7 +129,7 @@ $(function() { 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 bbbd5a1c5b..dbf82e479f 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 @@ -92,7 +92,7 @@ $(function() { 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 76d49a9125..16a5509eac 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 @@ -376,7 +376,7 @@ class BoxBuffer 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 787d7b767d..e28a403761 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 @@ -121,7 +121,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 7c9b9be92d..35cb073191 100644 --- a/docs/d1/d31/classshaka_1_1xml_1_1XmlNode.html +++ b/docs/d1/d31/classshaka_1_1xml_1_1XmlNode.html @@ -165,7 +165,7 @@ bool shaka::XmlEqual ( -

Definition at line 129 of file xml_node.cc.

+

Definition at line 130 of file xml_node.cc.

@@ -193,7 +193,7 @@ bool shaka::XmlEqual (
Returns
true on success, false otherwise.
-

Definition at line 140 of file xml_node.cc.

+

Definition at line 141 of file xml_node.cc.

@@ -213,7 +213,7 @@ bool shaka::XmlEqual (
Returns
namespaces used in the node and its descendents.
-

Definition at line 218 of file xml_node.cc.

+

Definition at line 219 of file xml_node.cc.

@@ -251,7 +251,7 @@ bool shaka::XmlEqual (
Returns
True if the attribute exists, false if not.
-

Definition at line 248 of file xml_node.cc.

+

Definition at line 249 of file xml_node.cc.

@@ -277,7 +277,7 @@ bool shaka::XmlEqual ( -

Definition at line 213 of file xml_node.cc.

+

Definition at line 214 of file xml_node.cc.

@@ -314,7 +314,7 @@ bool shaka::XmlEqual ( -

Definition at line 197 of file xml_node.cc.

+

Definition at line 198 of file xml_node.cc.

@@ -340,7 +340,7 @@ bool shaka::XmlEqual ( -

Definition at line 204 of file xml_node.cc.

+

Definition at line 205 of file xml_node.cc.

@@ -377,7 +377,7 @@ bool shaka::XmlEqual ( -

Definition at line 190 of file xml_node.cc.

+

Definition at line 191 of file xml_node.cc.

@@ -414,7 +414,7 @@ bool shaka::XmlEqual ( -

Definition at line 183 of file xml_node.cc.

+

Definition at line 184 of file xml_node.cc.

@@ -441,7 +441,7 @@ bool shaka::XmlEqual (
Returns
A string containing the XML.
-

Definition at line 224 of file xml_node.cc.

+

Definition at line 225 of file xml_node.cc.

@@ -452,7 +452,7 @@ bool shaka::XmlEqual ( diff --git a/docs/d1/d34/structshaka_1_1media_1_1SubsampleEntry.html b/docs/d1/d34/structshaka_1_1media_1_1SubsampleEntry.html index 26f501e314..80dce96291 100644 --- a/docs/d1/d34/structshaka_1_1media_1_1SubsampleEntry.html +++ b/docs/d1/d34/structshaka_1_1media_1_1SubsampleEntry.html @@ -101,7 +101,7 @@ uint32_t cipher_bytes< diff --git a/docs/d1/d35/classshaka_1_1hls_1_1Tag-members.html b/docs/d1/d35/classshaka_1_1hls_1_1Tag-members.html index c128046ca5..ff136b2a3e 100644 --- a/docs/d1/d35/classshaka_1_1hls_1_1Tag-members.html +++ b/docs/d1/d35/classshaka_1_1hls_1_1Tag-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/d1/d37/es__parser__h264_8h_source.html b/docs/d1/d37/es__parser__h264_8h_source.html index 954fb3295e..c1239a99b6 100644 --- a/docs/d1/d37/es__parser__h264_8h_source.html +++ b/docs/d1/d37/es__parser__h264_8h_source.html @@ -133,7 +133,7 @@ $(function() { diff --git a/docs/d1/d3b/mpd__generator__flags_8h_source.html b/docs/d1/d3b/mpd__generator__flags_8h_source.html index a1c7e6f352..bae8b22cb8 100644 --- a/docs/d1/d3b/mpd__generator__flags_8h_source.html +++ b/docs/d1/d3b/mpd__generator__flags_8h_source.html @@ -90,7 +90,7 @@ $(function() { 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 821883e3a6..31a4aa56b0 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 @@ -157,7 +157,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 7d97e4389d..c1f2c15899 100644 --- a/docs/d1/d40/classshaka_1_1MpdWriter-members.html +++ b/docs/d1/d40/classshaka_1_1MpdWriter-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/d1/d41/structshaka_1_1media_1_1Scte35Event.html b/docs/d1/d41/structshaka_1_1media_1_1Scte35Event.html index e2b871df55..14add8b173 100644 --- a/docs/d1/d41/structshaka_1_1media_1_1Scte35Event.html +++ b/docs/d1/d41/structshaka_1_1media_1_1Scte35Event.html @@ -100,7 +100,7 @@ std::string cue_data diff --git a/docs/d1/d45/classshaka_1_1hls_1_1MediaPlaylistFactory-members.html b/docs/d1/d45/classshaka_1_1hls_1_1MediaPlaylistFactory-members.html index 4dd26b588a..89ae967707 100644 --- a/docs/d1/d45/classshaka_1_1hls_1_1MediaPlaylistFactory-members.html +++ b/docs/d1/d45/classshaka_1_1hls_1_1MediaPlaylistFactory-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/docs/d1/d45/decoding__time__iterator_8cc_source.html b/docs/d1/d45/decoding__time__iterator_8cc_source.html index d7cdd055c2..11e02e8e9b 100644 --- a/docs/d1/d45/decoding__time__iterator_8cc_source.html +++ b/docs/d1/d45/decoding__time__iterator_8cc_source.html @@ -151,7 +151,7 @@ $(function() { diff --git a/docs/d1/d46/classshaka_1_1media_1_1CachingMediaHandler-members.html b/docs/d1/d46/classshaka_1_1media_1_1CachingMediaHandler-members.html index 0af60dd210..51b090fde6 100644 --- a/docs/d1/d46/classshaka_1_1media_1_1CachingMediaHandler-members.html +++ b/docs/d1/d46/classshaka_1_1media_1_1CachingMediaHandler-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/d1/d48/text__track__config_8h_source.html b/docs/d1/d48/text__track__config_8h_source.html index 2e971acf6e..daaf9de7a5 100644 --- a/docs/d1/d48/text__track__config_8h_source.html +++ b/docs/d1/d48/text__track__config_8h_source.html @@ -122,7 +122,7 @@ $(function() { diff --git a/docs/d1/d4e/classshaka_1_1media_1_1TextMuxer.html b/docs/d1/d4e/classshaka_1_1media_1_1TextMuxer.html index 51c1cdcb02..20a626f964 100644 --- a/docs/d1/d4e/classshaka_1_1media_1_1TextMuxer.html +++ b/docs/d1/d4e/classshaka_1_1media_1_1TextMuxer.html @@ -213,7 +213,7 @@ const std::map< size_t, std::pair< std::shared_ptr< 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 978c9437ff..8c979868f4 100644 --- a/docs/d1/d4f/classshaka_1_1media_1_1OffsetByteQueue-members.html +++ b/docs/d1/d4f/classshaka_1_1media_1_1OffsetByteQueue-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/d1/d4f/structshaka_1_1DecryptionParams.html b/docs/d1/d4f/structshaka_1_1DecryptionParams.html index 99a0451a38..6f9d9cef7c 100644 --- a/docs/d1/d4f/structshaka_1_1DecryptionParams.html +++ b/docs/d1/d4f/structshaka_1_1DecryptionParams.html @@ -117,7 +117,7 @@ Public Attributes 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 d3ac035259..a4d2e5f34a 100644 --- a/docs/d1/d5a/structshaka_1_1media_1_1EncryptionKey-members.html +++ b/docs/d1/d5a/structshaka_1_1media_1_1EncryptionKey-members.html @@ -80,7 +80,7 @@ $(function() { 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 95be2a1813..4ffaf936e4 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 @@ -203,7 +203,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 e52655011e..b93edca606 100644 --- a/docs/d1/d70/vp8__parser_8cc_source.html +++ b/docs/d1/d70/vp8__parser_8cc_source.html @@ -270,7 +270,7 @@ $(function() { diff --git a/docs/d1/d72/language__utils_8cc_source.html b/docs/d1/d72/language__utils_8cc_source.html index 51e45b729f..38ee5f22bc 100644 --- a/docs/d1/d72/language__utils_8cc_source.html +++ b/docs/d1/d72/language__utils_8cc_source.html @@ -214,7 +214,7 @@ $(function() { diff --git a/docs/d1/d74/classshaka_1_1media_1_1PackedAudioSegmenter-members.html b/docs/d1/d74/classshaka_1_1media_1_1PackedAudioSegmenter-members.html index 5bcf2b2aa6..7283c00034 100644 --- a/docs/d1/d74/classshaka_1_1media_1_1PackedAudioSegmenter-members.html +++ b/docs/d1/d74/classshaka_1_1media_1_1PackedAudioSegmenter-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/d1/d74/mp2t__media__parser_8cc_source.html b/docs/d1/d74/mp2t__media__parser_8cc_source.html index 7716cb637d..b6f849d565 100644 --- a/docs/d1/d74/mp2t__media__parser_8cc_source.html +++ b/docs/d1/d74/mp2t__media__parser_8cc_source.html @@ -534,7 +534,7 @@ $(function() { diff --git a/docs/d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html b/docs/d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html index d40ead3a50..34cc896ed2 100644 --- a/docs/d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html +++ b/docs/d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html @@ -166,7 +166,7 @@ int64_t  diff --git a/docs/d1/d79/structshaka_1_1media_1_1Scte35Event-members.html b/docs/d1/d79/structshaka_1_1media_1_1Scte35Event-members.html index 91f48b7341..38cc842ede 100644 --- a/docs/d1/d79/structshaka_1_1media_1_1Scte35Event-members.html +++ b/docs/d1/d79/structshaka_1_1media_1_1Scte35Event-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/d1/d7d/webm__video__client_8cc_source.html b/docs/d1/d7d/webm__video__client_8cc_source.html index 2d196da7df..0d5c75515a 100644 --- a/docs/d1/d7d/webm__video__client_8cc_source.html +++ b/docs/d1/d7d/webm__video__client_8cc_source.html @@ -232,104 +232,111 @@ $(function() {
161 }
162 
163 WebMParserClient* WebMVideoClient::OnListStart(int id) {
-
164  return id == kWebMIdColor ? this : WebMParserClient::OnListStart(id);
-
165 }
-
166 
-
167 bool WebMVideoClient::OnListEnd(int id) {
-
168  return id == kWebMIdColor ? true : WebMParserClient::OnListEnd(id);
-
169 }
-
170 
-
171 bool WebMVideoClient::OnUInt(int id, int64_t val) {
-
172  int64_t* dst = nullptr;
-
173 
-
174  switch (id) {
-
175  case kWebMIdPixelWidth:
-
176  dst = &pixel_width_;
-
177  break;
-
178  case kWebMIdPixelHeight:
-
179  dst = &pixel_height_;
-
180  break;
-
181  case kWebMIdPixelCropTop:
-
182  dst = &crop_top_;
-
183  break;
-
184  case kWebMIdPixelCropBottom:
-
185  dst = &crop_bottom_;
-
186  break;
-
187  case kWebMIdPixelCropLeft:
-
188  dst = &crop_left_;
-
189  break;
-
190  case kWebMIdPixelCropRight:
-
191  dst = &crop_right_;
-
192  break;
-
193  case kWebMIdDisplayWidth:
-
194  dst = &display_width_;
-
195  break;
-
196  case kWebMIdDisplayHeight:
-
197  dst = &display_height_;
-
198  break;
-
199  case kWebMIdDisplayUnit:
-
200  dst = &display_unit_;
-
201  break;
-
202  case kWebMIdAlphaMode:
-
203  dst = &alpha_mode_;
-
204  break;
-
205  case kWebMIdColorMatrixCoefficients:
-
206  dst = &matrix_coefficients_;
-
207  break;
-
208  case kWebMIdColorBitsPerChannel:
-
209  dst = &bits_per_channel_;
-
210  break;
-
211  case kWebMIdColorChromaSubsamplingHorz:
-
212  dst = &chroma_subsampling_horz_;
-
213  break;
-
214  case kWebMIdColorChromaSubsamplingVert:
-
215  dst = &chroma_subsampling_vert_;
-
216  break;
-
217  case kWebMIdColorChromaSitingHorz:
-
218  dst = &chroma_siting_horz_;
-
219  break;
-
220  case kWebMIdColorChromaSitingVert:
-
221  dst = &chroma_siting_vert_;
-
222  break;
-
223  case kWebMIdColorRange:
-
224  dst = &color_range_;
-
225  break;
-
226  case kWebMIdColorTransferCharacteristics:
-
227  dst = &transfer_characteristics_;
-
228  break;
-
229  case kWebMIdColorPrimaries:
-
230  dst = &color_primaries_;
-
231  break;
-
232  case kWebMIdColorMaxCLL:
-
233  case kWebMIdColorMaxFALL:
-
234  NOTIMPLEMENTED() << "HDR is not supported yet.";
-
235  return true;
-
236  default:
-
237  return true;
-
238  }
-
239 
-
240  if (*dst != -1) {
-
241  LOG(ERROR) << "Multiple values for id " << std::hex << id << " specified ("
-
242  << *dst << " and " << val << ")";
-
243  return false;
-
244  }
-
245 
-
246  *dst = val;
-
247  return true;
-
248 }
-
249 
-
250 bool WebMVideoClient::OnBinary(int id, const uint8_t* data, int size) {
-
251  // Accept binary fields we don't care about for now.
-
252  return true;
-
253 }
-
254 
-
255 bool WebMVideoClient::OnFloat(int id, double val) {
-
256  // Accept float fields we don't care about for now.
-
257  return true;
-
258 }
-
259 
-
260 } // namespace media
-
261 } // namespace shaka
+
164  return id == kWebMIdColor || id == kWebMIdProjection
+
165  ? this
+
166  : WebMParserClient::OnListStart(id);
+
167 }
+
168 
+
169 bool WebMVideoClient::OnListEnd(int id) {
+
170  return id == kWebMIdColor || id == kWebMIdProjection
+
171  ? true
+
172  : WebMParserClient::OnListEnd(id);
+
173 }
+
174 
+
175 bool WebMVideoClient::OnUInt(int id, int64_t val) {
+
176  int64_t* dst = nullptr;
+
177 
+
178  switch (id) {
+
179  case kWebMIdPixelWidth:
+
180  dst = &pixel_width_;
+
181  break;
+
182  case kWebMIdPixelHeight:
+
183  dst = &pixel_height_;
+
184  break;
+
185  case kWebMIdPixelCropTop:
+
186  dst = &crop_top_;
+
187  break;
+
188  case kWebMIdPixelCropBottom:
+
189  dst = &crop_bottom_;
+
190  break;
+
191  case kWebMIdPixelCropLeft:
+
192  dst = &crop_left_;
+
193  break;
+
194  case kWebMIdPixelCropRight:
+
195  dst = &crop_right_;
+
196  break;
+
197  case kWebMIdDisplayWidth:
+
198  dst = &display_width_;
+
199  break;
+
200  case kWebMIdDisplayHeight:
+
201  dst = &display_height_;
+
202  break;
+
203  case kWebMIdDisplayUnit:
+
204  dst = &display_unit_;
+
205  break;
+
206  case kWebMIdAlphaMode:
+
207  dst = &alpha_mode_;
+
208  break;
+
209  case kWebMIdColorMatrixCoefficients:
+
210  dst = &matrix_coefficients_;
+
211  break;
+
212  case kWebMIdColorBitsPerChannel:
+
213  dst = &bits_per_channel_;
+
214  break;
+
215  case kWebMIdColorChromaSubsamplingHorz:
+
216  dst = &chroma_subsampling_horz_;
+
217  break;
+
218  case kWebMIdColorChromaSubsamplingVert:
+
219  dst = &chroma_subsampling_vert_;
+
220  break;
+
221  case kWebMIdColorChromaSitingHorz:
+
222  dst = &chroma_siting_horz_;
+
223  break;
+
224  case kWebMIdColorChromaSitingVert:
+
225  dst = &chroma_siting_vert_;
+
226  break;
+
227  case kWebMIdColorRange:
+
228  dst = &color_range_;
+
229  break;
+
230  case kWebMIdColorTransferCharacteristics:
+
231  dst = &transfer_characteristics_;
+
232  break;
+
233  case kWebMIdColorPrimaries:
+
234  dst = &color_primaries_;
+
235  break;
+
236  case kWebMIdColorMaxCLL:
+
237  case kWebMIdColorMaxFALL:
+
238  NOTIMPLEMENTED() << "HDR is not supported yet.";
+
239  return true;
+
240  case kWebMIdProjectionType:
+
241  LOG(WARNING) << "Ignoring ProjectionType with value " << val;
+
242  return true;
+
243  default:
+
244  return true;
+
245  }
+
246 
+
247  if (*dst != -1) {
+
248  LOG(ERROR) << "Multiple values for id " << std::hex << id << " specified ("
+
249  << *dst << " and " << val << ")";
+
250  return false;
+
251  }
+
252 
+
253  *dst = val;
+
254  return true;
+
255 }
+
256 
+
257 bool WebMVideoClient::OnBinary(int id, const uint8_t* data, int size) {
+
258  // Accept binary fields we don't care about for now.
+
259  return true;
+
260 }
+
261 
+
262 bool WebMVideoClient::OnFloat(int id, double val) {
+
263  // Accept float fields we don't care about for now.
+
264  return true;
+
265 }
+
266 
+
267 } // namespace media
+
268 } // namespace shaka
Class for parsing AV1 codec configuration record.
bool Parse(const std::vector< uint8_t > &data)
@@ -343,7 +350,7 @@ $(function() { diff --git a/docs/d1/d7e/classshaka_1_1hls_1_1Tag.html b/docs/d1/d7e/classshaka_1_1hls_1_1Tag.html index ea560d09ef..1805cae566 100644 --- a/docs/d1/d7e/classshaka_1_1hls_1_1Tag.html +++ b/docs/d1/d7e/classshaka_1_1hls_1_1Tag.html @@ -116,7 +116,7 @@ void  diff --git a/docs/d1/d7e/classshaka_1_1media_1_1BlockReader-members.html b/docs/d1/d7e/classshaka_1_1media_1_1BlockReader-members.html index e062a33dec..6ecec5d232 100644 --- a/docs/d1/d7e/classshaka_1_1media_1_1BlockReader-members.html +++ b/docs/d1/d7e/classshaka_1_1media_1_1BlockReader-members.html @@ -79,7 +79,7 @@ $(function() { 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 87b629421e..89a60b7b94 100644 --- a/docs/d1/d81/structshaka_1_1media_1_1H265ReferencePictureSet-members.html +++ b/docs/d1/d81/structshaka_1_1media_1_1H265ReferencePictureSet-members.html @@ -82,7 +82,7 @@ $(function() { 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 a52eec1ee7..592144bd04 100644 --- a/docs/d1/d82/classshaka_1_1media_1_1WebMParserClient-members.html +++ b/docs/d1/d82/classshaka_1_1media_1_1WebMParserClient-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html b/docs/d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html index 7deb0ec3b4..64535450e6 100644 --- a/docs/d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html +++ b/docs/d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html @@ -179,7 +179,7 @@ Public Member Functions diff --git a/docs/d1/d84/classshaka_1_1media_1_1SingleThreadJobManager-members.html b/docs/d1/d84/classshaka_1_1media_1_1SingleThreadJobManager-members.html index c68bdbba8f..c037ada9eb 100644 --- a/docs/d1/d84/classshaka_1_1media_1_1SingleThreadJobManager-members.html +++ b/docs/d1/d84/classshaka_1_1media_1_1SingleThreadJobManager-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html b/docs/d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html index 7227e6df5c..388ff852b4 100644 --- a/docs/d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html +++ b/docs/d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html @@ -197,7 +197,7 @@ Public Member Functions diff --git a/docs/d1/d8e/webm__audio__client_8cc_source.html b/docs/d1/d8e/webm__audio__client_8cc_source.html index 5504bef0e4..8b4c0040c6 100644 --- a/docs/d1/d8e/webm__audio__client_8cc_source.html +++ b/docs/d1/d8e/webm__audio__client_8cc_source.html @@ -196,7 +196,7 @@ $(function() { diff --git a/docs/d1/d8f/retired__flags_8h_source.html b/docs/d1/d8f/retired__flags_8h_source.html index e863c69350..31fb504851 100644 --- a/docs/d1/d8f/retired__flags_8h_source.html +++ b/docs/d1/d8f/retired__flags_8h_source.html @@ -91,7 +91,7 @@ $(function() { 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 f01c7e93b0..4458d5163b 100644 --- a/docs/d1/d91/classshaka_1_1media_1_1H26xBitReader-members.html +++ b/docs/d1/d91/classshaka_1_1media_1_1H26xBitReader-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/d1/d95/structshaka_1_1WidevineEncryptionParams-members.html b/docs/d1/d95/structshaka_1_1WidevineEncryptionParams-members.html index aacf5d174c..104b5abd0f 100644 --- a/docs/d1/d95/structshaka_1_1WidevineEncryptionParams-members.html +++ b/docs/d1/d95/structshaka_1_1WidevineEncryptionParams-members.html @@ -81,7 +81,7 @@ $(function() { 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 98090de901..8a9dccb55a 100644 --- a/docs/d1/d9d/classshaka_1_1media_1_1ByteQueue-members.html +++ b/docs/d1/d9d/classshaka_1_1media_1_1ByteQueue-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/d1/d9d/tracks__builder_8h_source.html b/docs/d1/d9d/tracks__builder_8h_source.html index 1b2c52410a..ab3b9aa8c1 100644 --- a/docs/d1/d9d/tracks__builder_8h_source.html +++ b/docs/d1/d9d/tracks__builder_8h_source.html @@ -193,7 +193,7 @@ $(function() { 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 9645c64636..51c24a4674 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 @@ -89,7 +89,7 @@ $(function() { 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 5227e29abd..8ede7aa365 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 @@ -593,7 +593,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 dc2c616b80..b8272097ff 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 @@ -95,7 +95,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 0983446c3b..b7c128d036 100644 --- a/docs/d1/da2/classshaka_1_1media_1_1NalUnitToByteStreamConverter-members.html +++ b/docs/d1/da2/classshaka_1_1media_1_1NalUnitToByteStreamConverter-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html b/docs/d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html index 811b48f943..a051fb1cd4 100644 --- a/docs/d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html +++ b/docs/d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html @@ -352,7 +352,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 6c9605944f..7949be6efa 100644 --- a/docs/d1/dad/classshaka_1_1media_1_1Demuxer-members.html +++ b/docs/d1/dad/classshaka_1_1media_1_1Demuxer-members.html @@ -109,7 +109,7 @@ $(function() { 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 961aafabc3..5b68afd077 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 @@ -172,7 +172,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 943413b114..a15a9ce38e 100644 --- a/docs/d1/db2/decoder__configuration__record_8h_source.html +++ b/docs/d1/db2/decoder__configuration__record_8h_source.html @@ -162,7 +162,7 @@ $(function() { diff --git a/docs/d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html b/docs/d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html index 42841ab4b1..62ed6b5fcc 100644 --- a/docs/d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html +++ b/docs/d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html @@ -470,7 +470,7 @@ Public Member Functions 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 ed33dd6645..5b687f19c1 100644 --- a/docs/d1/dbe/classshaka_1_1media_1_1PlayReadyKeySource-members.html +++ b/docs/d1/dbe/classshaka_1_1media_1_1PlayReadyKeySource-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/d1/dc2/h26x__bit__reader_8h_source.html b/docs/d1/dc2/h26x__bit__reader_8h_source.html index 688aa6e3ba..c03f8d213d 100644 --- a/docs/d1/dc2/h26x__bit__reader_8h_source.html +++ b/docs/d1/dc2/h26x__bit__reader_8h_source.html @@ -175,7 +175,7 @@ $(function() { diff --git a/docs/d1/dc7/classshaka_1_1HttpFile.html b/docs/d1/dc7/classshaka_1_1HttpFile.html index b60f645568..a3fd4de53f 100644 --- a/docs/d1/dc7/classshaka_1_1HttpFile.html +++ b/docs/d1/dc7/classshaka_1_1HttpFile.html @@ -195,7 +195,7 @@ Additional Inherited Members

Implements shaka::File.

-

Definition at line 224 of file http_file.cc.

+

Definition at line 236 of file http_file.cc.

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

Implements shaka::File.

-

Definition at line 243 of file http_file.cc.

+

Definition at line 255 of file http_file.cc.

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

Implements shaka::File.

-

Definition at line 228 of file http_file.cc.

+

Definition at line 240 of file http_file.cc.

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

Implements shaka::File.

-

Definition at line 248 of file http_file.cc.

+

Definition at line 260 of file http_file.cc.

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

Implements shaka::File.

-

Definition at line 238 of file http_file.cc.

+

Definition at line 250 of file http_file.cc.

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

Implements shaka::File.

-

Definition at line 253 of file http_file.cc.

+

Definition at line 265 of file http_file.cc.

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

Implements shaka::File.

-

Definition at line 233 of file http_file.cc.

+

Definition at line 245 of file http_file.cc.

@@ -436,7 +436,7 @@ Additional Inherited Members diff --git a/docs/d1/dd5/av1__codec__configuration__record_8cc_source.html b/docs/d1/dd5/av1__codec__configuration__record_8cc_source.html index 4399f8344a..926b73f145 100644 --- a/docs/d1/dd5/av1__codec__configuration__record_8cc_source.html +++ b/docs/d1/dd5/av1__codec__configuration__record_8cc_source.html @@ -169,7 +169,7 @@ $(function() { diff --git a/docs/d1/dd5/classshaka_1_1media_1_1Cluster.html b/docs/d1/dd5/classshaka_1_1media_1_1Cluster.html index 87e7971991..cd80730781 100644 --- a/docs/d1/dd5/classshaka_1_1media_1_1Cluster.html +++ b/docs/d1/dd5/classshaka_1_1media_1_1Cluster.html @@ -95,7 +95,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 973d694dd1..fec0f1842d 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/d1/dd8/structshaka_1_1PackagingParams-members.html b/docs/d1/dd8/structshaka_1_1PackagingParams-members.html index 6ec2554b1e..1cbcc99a9e 100644 --- a/docs/d1/dd8/structshaka_1_1PackagingParams-members.html +++ b/docs/d1/dd8/structshaka_1_1PackagingParams-members.html @@ -88,7 +88,7 @@ $(function() { 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 e17041123e..350e8e4ed3 100644 --- a/docs/d1/dda/structshaka_1_1media_1_1EncryptionConfig-members.html +++ b/docs/d1/dda/structshaka_1_1media_1_1EncryptionConfig-members.html @@ -82,7 +82,7 @@ $(function() { 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 41ad50ba05..4ede7df8b8 100644 --- a/docs/d1/de2/classshaka_1_1media_1_1VideoStreamInfo-members.html +++ b/docs/d1/de2/classshaka_1_1media_1_1VideoStreamInfo-members.html @@ -123,7 +123,7 @@ $(function() { diff --git a/docs/d1/de2/composition__offset__iterator_8cc_source.html b/docs/d1/de2/composition__offset__iterator_8cc_source.html index d4a97a9ed2..902f2de2d0 100644 --- a/docs/d1/de2/composition__offset__iterator_8cc_source.html +++ b/docs/d1/de2/composition__offset__iterator_8cc_source.html @@ -142,7 +142,7 @@ $(function() { 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 67e1e77574..a0e86ea175 100644 --- a/docs/d1/de4/classshaka_1_1media_1_1KeyFetcher-members.html +++ b/docs/d1/de4/classshaka_1_1media_1_1KeyFetcher-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html b/docs/d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html index 872aa9d608..fc27738551 100644 --- a/docs/d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html +++ b/docs/d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html @@ -185,7 +185,7 @@ Additional Inherited Members -

Definition at line 322 of file xml_node.cc.

+

Definition at line 323 of file xml_node.cc.

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

Definition at line 328 of file xml_node.cc.

+

Definition at line 329 of file xml_node.cc.

@@ -233,7 +233,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 95191fe158..be1caff082 100644 --- a/docs/d1/de7/structshaka_1_1media_1_1H265ReferencePictureListModifications-members.html +++ b/docs/d1/de7/structshaka_1_1media_1_1H265ReferencePictureListModifications-members.html @@ -81,7 +81,7 @@ $(function() { 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 18924a791e..35ae6e1be3 100644 --- a/docs/d1/de9/classshaka_1_1media_1_1ProgressListener-members.html +++ b/docs/d1/de9/classshaka_1_1media_1_1ProgressListener-members.html @@ -78,7 +78,7 @@ $(function() { 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 7be5cd6ced..349f3e78d8 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 @@ -461,7 +461,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 2ff9bd8169..9478d52203 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 @@ -178,7 +178,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 e9e604dc77..831d761196 100644 --- a/docs/d1/df0/aes__encryptor_8h_source.html +++ b/docs/d1/df0/aes__encryptor_8h_source.html @@ -177,7 +177,7 @@ $(function() { diff --git a/docs/d1/df3/structshaka_1_1MpdOptions.html b/docs/d1/df3/structshaka_1_1MpdOptions.html index 833c58409f..b7c045d59a 100644 --- a/docs/d1/df3/structshaka_1_1MpdOptions.html +++ b/docs/d1/df3/structshaka_1_1MpdOptions.html @@ -100,7 +100,7 @@ MpdType mpd_type = Mpd diff --git a/docs/d1/df5/nalu__reader_8cc_source.html b/docs/d1/df5/nalu__reader_8cc_source.html index 3ebe3336d1..918681ca2f 100644 --- a/docs/d1/df5/nalu__reader_8cc_source.html +++ b/docs/d1/df5/nalu__reader_8cc_source.html @@ -559,7 +559,7 @@ $(function() { 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 5790fbe7c5..1231c3486c 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 @@ -95,7 +95,7 @@ $(function() { diff --git a/docs/d2/d02/timestamp_8h_source.html b/docs/d2/d02/timestamp_8h_source.html index ada2695928..70650cd69d 100644 --- a/docs/d2/d02/timestamp_8h_source.html +++ b/docs/d2/d02/timestamp_8h_source.html @@ -97,7 +97,7 @@ $(function() { 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 ad96cf4341..007e9cf62b 100644 --- a/docs/d2/d0b/classshaka_1_1media_1_1SeekHead-members.html +++ b/docs/d2/d0b/classshaka_1_1media_1_1SeekHead-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/d2/d0e/structshaka_1_1media_1_1mp4_1_1NullMediaHeader.html b/docs/d2/d0e/structshaka_1_1media_1_1mp4_1_1NullMediaHeader.html index 818feb2389..71cd79bd82 100644 --- a/docs/d2/d0e/structshaka_1_1media_1_1mp4_1_1NullMediaHeader.html +++ b/docs/d2/d0e/structshaka_1_1media_1_1mp4_1_1NullMediaHeader.html @@ -156,7 +156,7 @@ uint32_t flags = 0 diff --git a/docs/d2/d0f/classshaka_1_1MpdBuilder-members.html b/docs/d2/d0f/classshaka_1_1MpdBuilder-members.html index b327fa7768..7b0aa21cd9 100644 --- a/docs/d2/d0f/classshaka_1_1MpdBuilder-members.html +++ b/docs/d2/d0f/classshaka_1_1MpdBuilder-members.html @@ -84,7 +84,7 @@ $(function() { 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 b9c9dc5351..2d0ec8d01c 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 @@ -111,7 +111,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 4878d4bb21..ba506379a3 100644 --- a/docs/d2/d11/classshaka_1_1media_1_1MuxerListener-members.html +++ b/docs/d2/d11/classshaka_1_1media_1_1MuxerListener-members.html @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d2/d17/ts__section__pat_8cc_source.html b/docs/d2/d17/ts__section__pat_8cc_source.html index 061e87a859..86259f35e1 100644 --- a/docs/d2/d17/ts__section__pat_8cc_source.html +++ b/docs/d2/d17/ts__section__pat_8cc_source.html @@ -197,7 +197,7 @@ $(function() { diff --git a/docs/d2/d1f/structshaka_1_1ChunkingParams.html b/docs/d2/d1f/structshaka_1_1ChunkingParams.html index 3d499218bd..c02b1e1648 100644 --- a/docs/d2/d1f/structshaka_1_1ChunkingParams.html +++ b/docs/d2/d1f/structshaka_1_1ChunkingParams.html @@ -153,7 +153,7 @@ double  diff --git a/docs/d2/d20/classshaka_1_1Status.html b/docs/d2/d20/classshaka_1_1Status.html index 6846b24ae6..b803a9f75a 100644 --- a/docs/d2/d20/classshaka_1_1Status.html +++ b/docs/d2/d20/classshaka_1_1Status.html @@ -196,7 +196,7 @@ static const Status< diff --git a/docs/d2/d23/threaded__io__file_8cc_source.html b/docs/d2/d23/threaded__io__file_8cc_source.html index b855011c6a..c86cc3bc09 100644 --- a/docs/d2/d23/threaded__io__file_8cc_source.html +++ b/docs/d2/d23/threaded__io__file_8cc_source.html @@ -293,7 +293,7 @@ $(function() { diff --git a/docs/d2/d24/classshaka_1_1media_1_1PsshBoxBuilder.html b/docs/d2/d24/classshaka_1_1media_1_1PsshBoxBuilder.html index 687f87d73c..0e971157fd 100644 --- a/docs/d2/d24/classshaka_1_1media_1_1PsshBoxBuilder.html +++ b/docs/d2/d24/classshaka_1_1media_1_1PsshBoxBuilder.html @@ -163,7 +163,7 @@ Static Public Member Functions diff --git a/docs/d2/d24/packager__util_8h_source.html b/docs/d2/d24/packager__util_8h_source.html index ea52b84f73..0f06543891 100644 --- a/docs/d2/d24/packager__util_8h_source.html +++ b/docs/d2/d24/packager__util_8h_source.html @@ -115,7 +115,7 @@ $(function() { diff --git a/docs/d2/d26/classshaka_1_1media_1_1LineReader-members.html b/docs/d2/d26/classshaka_1_1media_1_1LineReader-members.html index 8fa5eb11cd..6024415dd7 100644 --- a/docs/d2/d26/classshaka_1_1media_1_1LineReader-members.html +++ b/docs/d2/d26/classshaka_1_1media_1_1LineReader-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/d2/d27/aes__encryptor__factory_8cc_source.html b/docs/d2/d27/aes__encryptor__factory_8cc_source.html index a00e0c92d3..245482558b 100644 --- a/docs/d2/d27/aes__encryptor__factory_8cc_source.html +++ b/docs/d2/d27/aes__encryptor__factory_8cc_source.html @@ -160,7 +160,7 @@ $(function() { diff --git a/docs/d2/d2a/classshaka_1_1IoCache-members.html b/docs/d2/d2a/classshaka_1_1IoCache-members.html index cb945f1450..2c3d6177a9 100644 --- a/docs/d2/d2a/classshaka_1_1IoCache-members.html +++ b/docs/d2/d2a/classshaka_1_1IoCache-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/d2/d30/tracks__builder_8cc_source.html b/docs/d2/d30/tracks__builder_8cc_source.html index d65a7cd4ae..0b54c9bca3 100644 --- a/docs/d2/d30/tracks__builder_8cc_source.html +++ b/docs/d2/d30/tracks__builder_8cc_source.html @@ -469,7 +469,7 @@ $(function() { 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 edd18a463e..03bdb758c1 100644 --- a/docs/d2/d33/video__slice__header__parser_8h_source.html +++ b/docs/d2/d33/video__slice__header__parser_8h_source.html @@ -156,7 +156,7 @@ $(function() { 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 ab744d5348..ecf1e6cfaf 100644 --- a/docs/d2/d35/classshaka_1_1media_1_1WidevineKeySource-members.html +++ b/docs/d2/d35/classshaka_1_1media_1_1WidevineKeySource-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/d2/d37/classshaka_1_1media_1_1Job-members.html b/docs/d2/d37/classshaka_1_1media_1_1Job-members.html index e4517aa970..b7b57062b3 100644 --- a/docs/d2/d37/classshaka_1_1media_1_1Job-members.html +++ b/docs/d2/d37/classshaka_1_1media_1_1Job-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/d2/d3b/manifest__flags_8cc_source.html b/docs/d2/d3b/manifest__flags_8cc_source.html index d411aaa7a0..41c674a8e5 100644 --- a/docs/d2/d3b/manifest__flags_8cc_source.html +++ b/docs/d2/d3b/manifest__flags_8cc_source.html @@ -107,7 +107,7 @@ $(function() { diff --git a/docs/d2/d3c/muxer__factory_8cc_source.html b/docs/d2/d3c/muxer__factory_8cc_source.html index 1db657de88..4d8d43f756 100644 --- a/docs/d2/d3c/muxer__factory_8cc_source.html +++ b/docs/d2/d3c/muxer__factory_8cc_source.html @@ -170,7 +170,7 @@ $(function() { 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 85ecc9f98c..9eeb4248b7 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 @@ -112,7 +112,7 @@ $(function() { diff --git a/docs/d2/d42/webvtt__to__mp4__handler_8h_source.html b/docs/d2/d42/webvtt__to__mp4__handler_8h_source.html index fb2133316c..623cbb8dd2 100644 --- a/docs/d2/d42/webvtt__to__mp4__handler_8h_source.html +++ b/docs/d2/d42/webvtt__to__mp4__handler_8h_source.html @@ -131,7 +131,7 @@ $(function() { 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 a84f7cddde..375436e5aa 100644 --- a/docs/d2/d45/program__map__table__writer_8cc_source.html +++ b/docs/d2/d45/program__map__table__writer_8cc_source.html @@ -436,7 +436,7 @@ $(function() { 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 423009c957..a85bde04fd 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 @@ -492,7 +492,7 @@ $(function() { diff --git a/docs/d2/d4d/file_8h_source.html b/docs/d2/d4d/file_8h_source.html index 8df23392d7..b29cb6f643 100644 --- a/docs/d2/d4d/file_8h_source.html +++ b/docs/d2/d4d/file_8h_source.html @@ -184,24 +184,24 @@ $(function() {
virtual bool Flush()=0
virtual bool Open()=0
Internal open. Should not be used directly.
virtual int64_t Read(void *buffer, uint64_t length)=0
-
static std::string MakeCallbackFileName(const BufferCallbackParams &callback_params, const std::string &name)
Definition: file.cc:399
-
static int64_t CopyFile(File *source, File *destination)
Definition: file.cc:333
+
static std::string MakeCallbackFileName(const BufferCallbackParams &callback_params, const std::string &name)
Definition: file.cc:402
+
static int64_t CopyFile(File *source, File *destination)
Definition: file.cc:336
virtual int64_t Write(const void *buffer, uint64_t length)=0
-
static bool IsLocalRegularFile(const char *file_name)
Definition: file.cc:374
+
static bool IsLocalRegularFile(const char *file_name)
Definition: file.cc:377
virtual ~File()
Definition: file.h:175
virtual bool Close()=0
static int64_t GetFileSize(const char *file_name)
Definition: file.cc:221
static bool ReadFileToString(const char *file_name, std::string *contents)
Definition: file.cc:230
-
static bool ParseCallbackFileName(const std::string &callback_file_name, const BufferCallbackParams **callback_params, std::string *name)
Definition: file.cc:409
+
static bool ParseCallbackFileName(const std::string &callback_file_name, const BufferCallbackParams **callback_params, std::string *name)
Definition: file.cc:412
virtual int64_t Size()=0
-
static bool Copy(const char *from_file_name, const char *to_file_name)
Definition: file.cc:297
+
static bool Copy(const char *from_file_name, const char *to_file_name)
Definition: file.cc:300
Declaration of class which implements a thread-safe circular buffer.
All the methods that are virtual are virtual for mocking.
diff --git a/docs/d2/d4f/structshaka_1_1Element-members.html b/docs/d2/d4f/structshaka_1_1Element-members.html index 01a18ef24c..3b61a3456b 100644 --- a/docs/d2/d4f/structshaka_1_1Element-members.html +++ b/docs/d2/d4f/structshaka_1_1Element-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/d2/d51/classshaka_1_1MockMpdNotifier-members.html b/docs/d2/d51/classshaka_1_1MockMpdNotifier-members.html index bf32087424..f8ee0397c0 100644 --- a/docs/d2/d51/classshaka_1_1MockMpdNotifier-members.html +++ b/docs/d2/d51/classshaka_1_1MockMpdNotifier-members.html @@ -93,12 +93,13 @@ $(function() { NotifyNewContainer(const MediaInfo &media_info, uint32_t *container_id)=0shaka::MpdNotifierpure virtual NotifyNewSegment(uint32_t container_id, uint64_t start_time, uint64_t duration, uint64_t size)=0shaka::MpdNotifierpure virtual NotifySampleDuration(uint32_t container_id, uint32_t sample_duration)=0shaka::MpdNotifierpure virtual - ~MockMpdNotifier() (defined in shaka::MockMpdNotifier)shaka::MockMpdNotifiervirtual - ~MpdNotifier() (defined in shaka::MpdNotifier)shaka::MpdNotifierinlinevirtual + use_segment_list() constshaka::MpdNotifierinline + ~MockMpdNotifier() (defined in shaka::MockMpdNotifier)shaka::MockMpdNotifiervirtual + ~MpdNotifier() (defined in shaka::MpdNotifier)shaka::MpdNotifierinlinevirtual diff --git a/docs/d2/d57/master__playlist_8h_source.html b/docs/d2/d57/master__playlist_8h_source.html index 5b98694a64..c2b1944629 100644 --- a/docs/d2/d57/master__playlist_8h_source.html +++ b/docs/d2/d57/master__playlist_8h_source.html @@ -120,7 +120,7 @@ $(function() { diff --git a/docs/d2/d59/structshaka_1_1media_1_1H264SliceHeader.html b/docs/d2/d59/structshaka_1_1media_1_1H264SliceHeader.html index 89e82638d6..5b5b435881 100644 --- a/docs/d2/d59/structshaka_1_1media_1_1H264SliceHeader.html +++ b/docs/d2/d59/structshaka_1_1media_1_1H264SliceHeader.html @@ -243,7 +243,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 5aaffd2049..6dbc5d9cc9 100644 --- a/docs/d2/d5b/classshaka_1_1media_1_1KeySource-members.html +++ b/docs/d2/d5b/classshaka_1_1media_1_1KeySource-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/d2/d5c/classshaka_1_1SimpleMpdNotifier-members.html b/docs/d2/d5c/classshaka_1_1SimpleMpdNotifier-members.html index 75b0d2444e..dbf1598dc7 100644 --- a/docs/d2/d5c/classshaka_1_1SimpleMpdNotifier-members.html +++ b/docs/d2/d5c/classshaka_1_1SimpleMpdNotifier-members.html @@ -86,12 +86,13 @@ $(function() { NotifySampleDuration(uint32_t container_id, uint32_t sample_duration) overrideshaka::SimpleMpdNotifiervirtual SimpleMpdNotifier(const MpdOptions &mpd_options) (defined in shaka::SimpleMpdNotifier)shaka::SimpleMpdNotifierexplicit SimpleMpdNotifierTest (defined in shaka::SimpleMpdNotifier)shaka::SimpleMpdNotifierfriend - ~MpdNotifier() (defined in shaka::MpdNotifier)shaka::MpdNotifierinlinevirtual - ~SimpleMpdNotifier() override (defined in shaka::SimpleMpdNotifier)shaka::SimpleMpdNotifier + use_segment_list() constshaka::MpdNotifierinline + ~MpdNotifier() (defined in shaka::MpdNotifier)shaka::MpdNotifierinlinevirtual + ~SimpleMpdNotifier() override (defined in shaka::SimpleMpdNotifier)shaka::SimpleMpdNotifier 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 ee9891ff96..e4f5088da4 100644 --- a/docs/d2/d61/structshaka_1_1media_1_1H264ModificationOfPicNum-members.html +++ b/docs/d2/d61/structshaka_1_1media_1_1H264ModificationOfPicNum-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/d2/d62/simple__mpd__notifier_8h_source.html b/docs/d2/d62/simple__mpd__notifier_8h_source.html index a126195e0a..e2ab04a2ad 100644 --- a/docs/d2/d62/simple__mpd__notifier_8h_source.html +++ b/docs/d2/d62/simple__mpd__notifier_8h_source.html @@ -163,7 +163,7 @@ $(function() { 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 5dbe32deff..ae912956d9 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 @@ -92,7 +92,7 @@ $(function() { 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 f3d65a37d2..2f573f722d 100644 --- a/docs/d2/d6a/classshaka_1_1media_1_1AesCryptor-members.html +++ b/docs/d2/d6a/classshaka_1_1media_1_1AesCryptor-members.html @@ -92,7 +92,7 @@ $(function() { 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 4a06ae370b..e1b1b6aef2 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 @@ -154,7 +154,7 @@ Additional Inherited Members diff --git a/docs/d2/d71/classshaka_1_1media_1_1CombinedMuxerListener-members.html b/docs/d2/d71/classshaka_1_1media_1_1CombinedMuxerListener-members.html index 46c5ea3d0f..124b40be3e 100644 --- a/docs/d2/d71/classshaka_1_1media_1_1CombinedMuxerListener-members.html +++ b/docs/d2/d71/classshaka_1_1media_1_1CombinedMuxerListener-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/d2/d76/structshaka_1_1media_1_1JobManager_1_1JobEntry.html b/docs/d2/d76/structshaka_1_1media_1_1JobManager_1_1JobEntry.html index eb1d3730a8..744cb6caf6 100644 --- a/docs/d2/d76/structshaka_1_1media_1_1JobManager_1_1JobEntry.html +++ b/docs/d2/d76/structshaka_1_1media_1_1JobManager_1_1JobEntry.html @@ -91,7 +91,7 @@ std::shared_ptr< diff --git a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html index aed0a03206..3935561e35 100644 --- a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html +++ b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html @@ -277,7 +277,7 @@ $(function() { diff --git a/docs/d2/d7b/structshaka_1_1StreamDescriptor.html b/docs/d2/d7b/structshaka_1_1StreamDescriptor.html index 821f3dc212..4892fd5a5d 100644 --- a/docs/d2/d7b/structshaka_1_1StreamDescriptor.html +++ b/docs/d2/d7b/structshaka_1_1StreamDescriptor.html @@ -382,7 +382,7 @@ bool  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 e2e54f0db1..63d6d1f31d 100644 --- a/docs/d2/d7e/aac__audio__specific__config_8h_source.html +++ b/docs/d2/d7e/aac__audio__specific__config_8h_source.html @@ -204,7 +204,7 @@ $(function() { 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 e27a661f61..9510397114 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 @@ -154,7 +154,7 @@ Additional Inherited Members diff --git a/docs/d2/d82/structshaka_1_1BufferCallbackParams-members.html b/docs/d2/d82/structshaka_1_1BufferCallbackParams-members.html index 31939ce3b4..b1b3416b24 100644 --- a/docs/d2/d82/structshaka_1_1BufferCallbackParams-members.html +++ b/docs/d2/d82/structshaka_1_1BufferCallbackParams-members.html @@ -77,7 +77,7 @@ $(function() { 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 63b2724fc3..49336bb34e 100644 --- a/docs/d2/d8a/hls__notify__muxer__listener_8h_source.html +++ b/docs/d2/d8a/hls__notify__muxer__listener_8h_source.html @@ -178,7 +178,7 @@ $(function() { 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 e4df02fd0d..08c33d00e9 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/d2/d92/box__reader_8h_source.html b/docs/d2/d92/box__reader_8h_source.html index 99f0072be3..9b49029136 100644 --- a/docs/d2/d92/box__reader_8h_source.html +++ b/docs/d2/d92/box__reader_8h_source.html @@ -229,7 +229,7 @@ $(function() { 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 3c66bb4a56..2316562576 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 @@ -450,7 +450,7 @@ const std::vector< uint8_t > &  diff --git a/docs/d2/d9d/structshaka_1_1FileCloser-members.html b/docs/d2/d9d/structshaka_1_1FileCloser-members.html index eeb8de697c..45e849a4a2 100644 --- a/docs/d2/d9d/structshaka_1_1FileCloser-members.html +++ b/docs/d2/d9d/structshaka_1_1FileCloser-members.html @@ -76,7 +76,7 @@ $(function() { 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 a749c0134b..c6aee5751a 100644 --- a/docs/d2/da0/classshaka_1_1media_1_1TrickPlayHandler-members.html +++ b/docs/d2/da0/classshaka_1_1media_1_1TrickPlayHandler-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/d2/da6/threaded__io__file_8h_source.html b/docs/d2/da6/threaded__io__file_8h_source.html index 2ac83b440a..960e231c6a 100644 --- a/docs/d2/da6/threaded__io__file_8h_source.html +++ b/docs/d2/da6/threaded__io__file_8h_source.html @@ -150,7 +150,7 @@ $(function() { diff --git a/docs/d2/da8/mp4_2segmenter_8cc_source.html b/docs/d2/da8/mp4_2segmenter_8cc_source.html index c4d6774723..0b967e6922 100644 --- a/docs/d2/da8/mp4_2segmenter_8cc_source.html +++ b/docs/d2/da8/mp4_2segmenter_8cc_source.html @@ -421,7 +421,7 @@ $(function() { 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 ceb815fe3c..77674b8bcd 100644 --- a/docs/d2/da9/classshaka_1_1media_1_1BufferWriter-members.html +++ b/docs/d2/da9/classshaka_1_1media_1_1BufferWriter-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/d2/dae/classshaka_1_1MockAdaptationSet-members.html b/docs/d2/dae/classshaka_1_1MockAdaptationSet-members.html index 31e3f0f6e0..662a5437a4 100644 --- a/docs/d2/dae/classshaka_1_1MockAdaptationSet-members.html +++ b/docs/d2/dae/classshaka_1_1MockAdaptationSet-members.html @@ -115,7 +115,7 @@ $(function() { diff --git a/docs/d2/dae/webm__muxer_8cc_source.html b/docs/d2/dae/webm__muxer_8cc_source.html index e9be4841fe..b1adda0257 100644 --- a/docs/d2/dae/webm__muxer_8cc_source.html +++ b/docs/d2/dae/webm__muxer_8cc_source.html @@ -214,7 +214,7 @@ $(function() { diff --git a/docs/d2/db1/master__playlist_8cc_source.html b/docs/d2/db1/master__playlist_8cc_source.html index d1657c3eb8..ff333d9955 100644 --- a/docs/d2/db1/master__playlist_8cc_source.html +++ b/docs/d2/db1/master__playlist_8cc_source.html @@ -604,7 +604,7 @@ $(function() { 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 f9ed62a3da..34d57e4b25 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 @@ -94,7 +94,7 @@ $(function() { 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 289620a49e..a2cbddbe9e 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 @@ -90,7 +90,7 @@ $(function() { 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 b3233b6b4e..83c312e4e8 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/d2/dba/classshaka_1_1media_1_1SegmentTestBase.html b/docs/d2/dba/classshaka_1_1media_1_1SegmentTestBase.html index 900c5526fc..4f819a9011 100644 --- a/docs/d2/dba/classshaka_1_1media_1_1SegmentTestBase.html +++ b/docs/d2/dba/classshaka_1_1media_1_1SegmentTestBase.html @@ -160,7 +160,7 @@ bool single_segment_ diff --git a/docs/d2/dbb/classshaka_1_1media_1_1TextChunker-members.html b/docs/d2/dbb/classshaka_1_1media_1_1TextChunker-members.html index c8b7b95776..12ac435a42 100644 --- a/docs/d2/dbb/classshaka_1_1media_1_1TextChunker-members.html +++ b/docs/d2/dbb/classshaka_1_1media_1_1TextChunker-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/d2/dbc/av1__parser_8cc_source.html b/docs/d2/dbc/av1__parser_8cc_source.html index ddb2d4da66..e3fdea33f6 100644 --- a/docs/d2/dbc/av1__parser_8cc_source.html +++ b/docs/d2/dbc/av1__parser_8cc_source.html @@ -1943,7 +1943,7 @@ $(function() { diff --git a/docs/d2/dbf/status__macros_8h_source.html b/docs/d2/dbf/status__macros_8h_source.html index 6956bd3541..6c6676e343 100644 --- a/docs/d2/dbf/status__macros_8h_source.html +++ b/docs/d2/dbf/status__macros_8h_source.html @@ -96,7 +96,7 @@ $(function() { 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 c78dbeb627..22be97e9ee 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 @@ -91,7 +91,7 @@ $(function() { 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 12d0d43a37..bfc4a59ee0 100644 --- a/docs/d2/dc7/media__handler__test__base_8cc_source.html +++ b/docs/d2/dc7/media__handler__test__base_8cc_source.html @@ -447,7 +447,7 @@ $(function() { diff --git a/docs/d2/dc7/structshaka_1_1MpdOptions-members.html b/docs/d2/dc7/structshaka_1_1MpdOptions-members.html index 26ac004bda..805a576588 100644 --- a/docs/d2/dc7/structshaka_1_1MpdOptions-members.html +++ b/docs/d2/dc7/structshaka_1_1MpdOptions-members.html @@ -78,7 +78,7 @@ $(function() { 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 91f97dd16e..73ba8d4daf 100644 --- a/docs/d2/dcd/program__map__table__writer_8h_source.html +++ b/docs/d2/dcd/program__map__table__writer_8h_source.html @@ -175,7 +175,7 @@ $(function() { 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 51587da7d6..89247bca58 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d2/dcd/tag_8h_source.html b/docs/d2/dcd/tag_8h_source.html index df82128f2f..2648b809df 100644 --- a/docs/d2/dcd/tag_8h_source.html +++ b/docs/d2/dcd/tag_8h_source.html @@ -130,7 +130,7 @@ $(function() { diff --git a/docs/d2/dce/structshaka_1_1WidevineSigner-members.html b/docs/d2/dce/structshaka_1_1WidevineSigner-members.html index b5432bd0ed..65e7cf37c5 100644 --- a/docs/d2/dce/structshaka_1_1WidevineSigner-members.html +++ b/docs/d2/dce/structshaka_1_1WidevineSigner-members.html @@ -83,7 +83,7 @@ $(function() { 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 498b720af7..0dd933953c 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 @@ -266,7 +266,7 @@ uint64_t duration () c diff --git a/docs/d2/dd6/mkv__writer_8h_source.html b/docs/d2/dd6/mkv__writer_8h_source.html index 7d90e42949..8b4143d1a3 100644 --- a/docs/d2/dd6/mkv__writer_8h_source.html +++ b/docs/d2/dd6/mkv__writer_8h_source.html @@ -135,7 +135,7 @@ $(function() { diff --git a/docs/d2/dd7/structshaka_1_1RawKeyParams-members.html b/docs/d2/dd7/structshaka_1_1RawKeyParams-members.html index 37fd8d89db..54f23a286c 100644 --- a/docs/d2/dd7/structshaka_1_1RawKeyParams-members.html +++ b/docs/d2/dd7/structshaka_1_1RawKeyParams-members.html @@ -79,7 +79,7 @@ $(function() { 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 ddd5317adf..538394de41 100644 --- a/docs/d2/dd8/classshaka_1_1media_1_1ChunkingHandler-members.html +++ b/docs/d2/dd8/classshaka_1_1media_1_1ChunkingHandler-members.html @@ -102,7 +102,7 @@ $(function() { diff --git a/docs/d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html b/docs/d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html index 17c9c27d45..631d3e4056 100644 --- a/docs/d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html +++ b/docs/d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html @@ -244,7 +244,7 @@ Additional Inherited Members diff --git a/docs/d2/ddc/hls__audio__util_8h_source.html b/docs/d2/ddc/hls__audio__util_8h_source.html index 7eda1c5594..3ae8354475 100644 --- a/docs/d2/ddc/hls__audio__util_8h_source.html +++ b/docs/d2/ddc/hls__audio__util_8h_source.html @@ -98,7 +98,7 @@ $(function() { diff --git a/docs/d2/de1/dvb__image_8h_source.html b/docs/d2/de1/dvb__image_8h_source.html index 6b338ae1be..24c3379575 100644 --- a/docs/d2/de1/dvb__image_8h_source.html +++ b/docs/d2/de1/dvb__image_8h_source.html @@ -188,7 +188,7 @@ $(function() { 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 70c4d7f1cb..ded5cfb3b3 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 @@ -133,7 +133,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 19735c17dc..4afa723dca 100644 --- a/docs/d2/de6/packager__main_8cc_source.html +++ b/docs/d2/de6/packager__main_8cc_source.html @@ -522,142 +522,143 @@ $(function() {
451  mpd_params.time_shift_buffer_depth = FLAGS_time_shift_buffer_depth;
452  mpd_params.preserved_segments_outside_live_window =
453  FLAGS_preserved_segments_outside_live_window;
-
454 
-
455  if (!FLAGS_utc_timings.empty()) {
-
456  base::StringPairs pairs;
-
457  if (!base::SplitStringIntoKeyValuePairs(FLAGS_utc_timings, '=', ',',
-
458  &pairs)) {
-
459  LOG(ERROR) << "Invalid --utc_timings scheme_id_uri/value pairs.";
-
460  return base::nullopt;
-
461  }
-
462  for (const auto& string_pair : pairs) {
-
463  mpd_params.utc_timings.push_back({string_pair.first, string_pair.second});
-
464  }
-
465  }
-
466 
-
467  mpd_params.default_language = FLAGS_default_language;
-
468  mpd_params.default_text_language = FLAGS_default_text_language;
-
469  mpd_params.generate_static_live_mpd = FLAGS_generate_static_live_mpd;
-
470  mpd_params.generate_dash_if_iop_compliant_mpd =
-
471  FLAGS_generate_dash_if_iop_compliant_mpd;
-
472  mpd_params.allow_approximate_segment_timeline =
-
473  FLAGS_allow_approximate_segment_timeline;
-
474  mpd_params.allow_codec_switching = FLAGS_allow_codec_switching;
-
475  mpd_params.include_mspr_pro = FLAGS_include_mspr_pro_for_playready;
-
476 
-
477  HlsParams& hls_params = packaging_params.hls_params;
-
478  if (!GetHlsPlaylistType(FLAGS_hls_playlist_type, &hls_params.playlist_type)) {
-
479  return base::nullopt;
-
480  }
-
481  hls_params.master_playlist_output = FLAGS_hls_master_playlist_output;
-
482  hls_params.base_url = FLAGS_hls_base_url;
-
483  hls_params.key_uri = FLAGS_hls_key_uri;
-
484  hls_params.time_shift_buffer_depth = FLAGS_time_shift_buffer_depth;
-
485  hls_params.preserved_segments_outside_live_window =
-
486  FLAGS_preserved_segments_outside_live_window;
-
487  hls_params.default_language = FLAGS_default_language;
-
488  hls_params.default_text_language = FLAGS_default_text_language;
-
489  hls_params.media_sequence_number = FLAGS_hls_media_sequence_number;
-
490 
-
491  TestParams& test_params = packaging_params.test_params;
-
492  test_params.dump_stream_info = FLAGS_dump_stream_info;
-
493  test_params.inject_fake_clock = FLAGS_use_fake_clock_for_muxer;
-
494  if (!FLAGS_test_packager_version.empty())
-
495  test_params.injected_library_version = FLAGS_test_packager_version;
-
496 
-
497  return packaging_params;
-
498 }
-
499 
-
500 int PackagerMain(int argc, char** argv) {
-
501  // Needed to enable VLOG/DVLOG through --vmodule or --v.
-
502  base::CommandLine::Init(argc, argv);
-
503 
-
504  // Set up logging.
-
505  logging::LoggingSettings log_settings;
-
506  log_settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
-
507  CHECK(logging::InitLogging(log_settings));
-
508 
-
509  google::SetVersionString(shaka::Packager::GetLibraryVersion());
-
510  google::SetUsageMessage(base::StringPrintf(kUsage, argv[0]));
-
511  google::ParseCommandLineFlags(&argc, &argv, true);
-
512  if (FLAGS_licenses) {
-
513  for (const char* line : kLicenseNotice)
-
514  std::cout << line << std::endl;
-
515  return kSuccess;
-
516  }
-
517  if (argc < 2) {
-
518  google::ShowUsageWithFlags("Usage");
-
519  return kSuccess;
-
520  }
-
521  if (FLAGS_quiet)
-
522  logging::SetMinLogLevel(logging::LOG_WARNING);
-
523 
- - -
526  return kArgumentValidationFailed;
-
527  }
-
528 
-
529  base::Optional<PackagingParams> packaging_params = GetPackagingParams();
-
530  if (!packaging_params)
-
531  return kArgumentValidationFailed;
-
532 
-
533  std::vector<StreamDescriptor> stream_descriptors;
-
534  for (int i = 1; i < argc; ++i) {
-
535  base::Optional<StreamDescriptor> stream_descriptor =
-
536  ParseStreamDescriptor(argv[i]);
-
537  if (!stream_descriptor)
-
538  return kArgumentValidationFailed;
-
539  stream_descriptors.push_back(stream_descriptor.value());
-
540  }
-
541  Packager packager;
-
542  Status status =
-
543  packager.Initialize(packaging_params.value(), stream_descriptors);
-
544  if (!status.ok()) {
-
545  LOG(ERROR) << "Failed to initialize packager: " << status.ToString();
-
546  return kArgumentValidationFailed;
-
547  }
-
548  status = packager.Run();
-
549  if (!status.ok()) {
-
550  LOG(ERROR) << "Packaging Error: " << status.ToString();
-
551  return kPackagingFailed;
-
552  }
-
553  if (!FLAGS_quiet)
-
554  printf("Packaging completed successfully.\n");
-
555  return kSuccess;
-
556 }
-
557 
-
558 } // namespace
-
559 } // namespace shaka
-
560 
-
561 #if defined(OS_WIN)
-
562 // Windows wmain, which converts wide character arguments to UTF-8.
-
563 int wmain(int argc, wchar_t* argv[], wchar_t* envp[]) {
-
564  std::unique_ptr<char* [], std::function<void(char**)>> utf8_argv(
-
565  new char*[argc], [argc](char** utf8_args) {
-
566  // TODO(tinskip): This leaks, but if this code is enabled, it crashes.
-
567  // Figure out why. I suspect gflags does something funny with the
-
568  // argument array.
-
569  // for (int idx = 0; idx < argc; ++idx)
-
570  // delete[] utf8_args[idx];
-
571  delete[] utf8_args;
-
572  });
-
573  std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
-
574  for (int idx = 0; idx < argc; ++idx) {
-
575  std::string utf8_arg(converter.to_bytes(argv[idx]));
-
576  utf8_arg += '\0';
-
577  utf8_argv[idx] = new char[utf8_arg.size()];
-
578  memcpy(utf8_argv[idx], &utf8_arg[0], utf8_arg.size());
-
579  }
-
580  return shaka::PackagerMain(argc, utf8_argv.get());
-
581 }
-
582 #else
-
583 int main(int argc, char** argv) {
-
584  return shaka::PackagerMain(argc, argv);
-
585 }
-
586 #endif // defined(OS_WIN)
+
454  mpd_params.use_segment_list = FLAGS_dash_force_segment_list;
+
455 
+
456  if (!FLAGS_utc_timings.empty()) {
+
457  base::StringPairs pairs;
+
458  if (!base::SplitStringIntoKeyValuePairs(FLAGS_utc_timings, '=', ',',
+
459  &pairs)) {
+
460  LOG(ERROR) << "Invalid --utc_timings scheme_id_uri/value pairs.";
+
461  return base::nullopt;
+
462  }
+
463  for (const auto& string_pair : pairs) {
+
464  mpd_params.utc_timings.push_back({string_pair.first, string_pair.second});
+
465  }
+
466  }
+
467 
+
468  mpd_params.default_language = FLAGS_default_language;
+
469  mpd_params.default_text_language = FLAGS_default_text_language;
+
470  mpd_params.generate_static_live_mpd = FLAGS_generate_static_live_mpd;
+
471  mpd_params.generate_dash_if_iop_compliant_mpd =
+
472  FLAGS_generate_dash_if_iop_compliant_mpd;
+
473  mpd_params.allow_approximate_segment_timeline =
+
474  FLAGS_allow_approximate_segment_timeline;
+
475  mpd_params.allow_codec_switching = FLAGS_allow_codec_switching;
+
476  mpd_params.include_mspr_pro = FLAGS_include_mspr_pro_for_playready;
+
477 
+
478  HlsParams& hls_params = packaging_params.hls_params;
+
479  if (!GetHlsPlaylistType(FLAGS_hls_playlist_type, &hls_params.playlist_type)) {
+
480  return base::nullopt;
+
481  }
+
482  hls_params.master_playlist_output = FLAGS_hls_master_playlist_output;
+
483  hls_params.base_url = FLAGS_hls_base_url;
+
484  hls_params.key_uri = FLAGS_hls_key_uri;
+
485  hls_params.time_shift_buffer_depth = FLAGS_time_shift_buffer_depth;
+
486  hls_params.preserved_segments_outside_live_window =
+
487  FLAGS_preserved_segments_outside_live_window;
+
488  hls_params.default_language = FLAGS_default_language;
+
489  hls_params.default_text_language = FLAGS_default_text_language;
+
490  hls_params.media_sequence_number = FLAGS_hls_media_sequence_number;
+
491 
+
492  TestParams& test_params = packaging_params.test_params;
+
493  test_params.dump_stream_info = FLAGS_dump_stream_info;
+
494  test_params.inject_fake_clock = FLAGS_use_fake_clock_for_muxer;
+
495  if (!FLAGS_test_packager_version.empty())
+
496  test_params.injected_library_version = FLAGS_test_packager_version;
+
497 
+
498  return packaging_params;
+
499 }
+
500 
+
501 int PackagerMain(int argc, char** argv) {
+
502  // Needed to enable VLOG/DVLOG through --vmodule or --v.
+
503  base::CommandLine::Init(argc, argv);
+
504 
+
505  // Set up logging.
+
506  logging::LoggingSettings log_settings;
+
507  log_settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
+
508  CHECK(logging::InitLogging(log_settings));
+
509 
+
510  google::SetVersionString(shaka::Packager::GetLibraryVersion());
+
511  google::SetUsageMessage(base::StringPrintf(kUsage, argv[0]));
+
512  google::ParseCommandLineFlags(&argc, &argv, true);
+
513  if (FLAGS_licenses) {
+
514  for (const char* line : kLicenseNotice)
+
515  std::cout << line << std::endl;
+
516  return kSuccess;
+
517  }
+
518  if (argc < 2) {
+
519  google::ShowUsageWithFlags("Usage");
+
520  return kSuccess;
+
521  }
+
522  if (FLAGS_quiet)
+
523  logging::SetMinLogLevel(logging::LOG_WARNING);
+
524 
+ + +
527  return kArgumentValidationFailed;
+
528  }
+
529 
+
530  base::Optional<PackagingParams> packaging_params = GetPackagingParams();
+
531  if (!packaging_params)
+
532  return kArgumentValidationFailed;
+
533 
+
534  std::vector<StreamDescriptor> stream_descriptors;
+
535  for (int i = 1; i < argc; ++i) {
+
536  base::Optional<StreamDescriptor> stream_descriptor =
+
537  ParseStreamDescriptor(argv[i]);
+
538  if (!stream_descriptor)
+
539  return kArgumentValidationFailed;
+
540  stream_descriptors.push_back(stream_descriptor.value());
+
541  }
+
542  Packager packager;
+
543  Status status =
+
544  packager.Initialize(packaging_params.value(), stream_descriptors);
+
545  if (!status.ok()) {
+
546  LOG(ERROR) << "Failed to initialize packager: " << status.ToString();
+
547  return kArgumentValidationFailed;
+
548  }
+
549  status = packager.Run();
+
550  if (!status.ok()) {
+
551  LOG(ERROR) << "Packaging Error: " << status.ToString();
+
552  return kPackagingFailed;
+
553  }
+
554  if (!FLAGS_quiet)
+
555  printf("Packaging completed successfully.\n");
+
556  return kSuccess;
+
557 }
+
558 
+
559 } // namespace
+
560 } // namespace shaka
+
561 
+
562 #if defined(OS_WIN)
+
563 // Windows wmain, which converts wide character arguments to UTF-8.
+
564 int wmain(int argc, wchar_t* argv[], wchar_t* envp[]) {
+
565  std::unique_ptr<char* [], std::function<void(char**)>> utf8_argv(
+
566  new char*[argc], [argc](char** utf8_args) {
+
567  // TODO(tinskip): This leaks, but if this code is enabled, it crashes.
+
568  // Figure out why. I suspect gflags does something funny with the
+
569  // argument array.
+
570  // for (int idx = 0; idx < argc; ++idx)
+
571  // delete[] utf8_args[idx];
+
572  delete[] utf8_args;
+
573  });
+
574  std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
+
575  for (int idx = 0; idx < argc; ++idx) {
+
576  std::string utf8_arg(converter.to_bytes(argv[idx]));
+
577  utf8_arg += '\0';
+
578  utf8_argv[idx] = new char[utf8_arg.size()];
+
579  memcpy(utf8_argv[idx], &utf8_arg[0], utf8_arg.size());
+
580  }
+
581  return shaka::PackagerMain(argc, utf8_argv.get());
+
582 }
+
583 #else
+
584 int main(int argc, char** argv) {
+
585  return shaka::PackagerMain(argc, argv);
+
586 }
+
587 #endif // defined(OS_WIN)
static bool ReadFileToString(const char *file_name, std::string *contents)
Definition: file.cc:230
-
static std::string DefaultStreamLabelFunction(int max_sd_pixels, int max_hd_pixels, int max_uhd1_pixels, const EncryptionParams::EncryptedStreamAttributes &stream_attributes)
Definition: packager.cc:982
-
static std::string GetLibraryVersion()
Definition: packager.cc:978
+
static std::string DefaultStreamLabelFunction(int max_sd_pixels, int max_hd_pixels, int max_uhd1_pixels, const EncryptionParams::EncryptedStreamAttributes &stream_attributes)
Definition: packager.cc:984
+
static std::string GetLibraryVersion()
Definition: packager.cc:980
All the methods that are virtual are virtual for mocking.
base::Optional< StreamDescriptor > ParseStreamDescriptor(const std::string &descriptor_string)
@@ -670,7 +671,7 @@ $(function() { 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 d074ef56ce..73205ecf6d 100644 --- a/docs/d2/de7/classshaka_1_1media_1_1TextStreamInfo-members.html +++ b/docs/d2/de7/classshaka_1_1media_1_1TextStreamInfo-members.html @@ -110,7 +110,7 @@ $(function() { 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 2d932a90cb..da2f073efa 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/d2/de9/media__handler_8cc_source.html b/docs/d2/de9/media__handler_8cc_source.html index 75d9f12036..96241ed92f 100644 --- a/docs/d2/de9/media__handler_8cc_source.html +++ b/docs/d2/de9/media__handler_8cc_source.html @@ -206,7 +206,7 @@ $(function() { diff --git a/docs/d2/de9/mock__muxer__listener_8h_source.html b/docs/d2/de9/mock__muxer__listener_8h_source.html index 63a6b03998..57c2d01fb6 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 @@ $(function() { diff --git a/docs/d2/deb/es__parser_8h_source.html b/docs/d2/deb/es__parser_8h_source.html index 72a0d1c69a..c8e7574066 100644 --- a/docs/d2/deb/es__parser_8h_source.html +++ b/docs/d2/deb/es__parser_8h_source.html @@ -127,7 +127,7 @@ $(function() { 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 34974e52f5..b7c61509f0 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 @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/d2/dee/pes__packet__generator_8cc_source.html b/docs/d2/dee/pes__packet__generator_8cc_source.html index a655a04912..c1d27eec13 100644 --- a/docs/d2/dee/pes__packet__generator_8cc_source.html +++ b/docs/d2/dee/pes__packet__generator_8cc_source.html @@ -245,7 +245,7 @@ $(function() { diff --git a/docs/d2/def/webvtt__muxer_8cc_source.html b/docs/d2/def/webvtt__muxer_8cc_source.html index ab40e9a7bc..c1806cab8f 100644 --- a/docs/d2/def/webvtt__muxer_8cc_source.html +++ b/docs/d2/def/webvtt__muxer_8cc_source.html @@ -139,7 +139,7 @@ $(function() { diff --git a/docs/d2/df7/structshaka_1_1media_1_1mp4_1_1AC4Specific-members.html b/docs/d2/df7/structshaka_1_1media_1_1mp4_1_1AC4Specific-members.html index ee05393409..941825cb66 100644 --- a/docs/d2/df7/structshaka_1_1media_1_1mp4_1_1AC4Specific-members.html +++ b/docs/d2/df7/structshaka_1_1media_1_1mp4_1_1AC4Specific-members.html @@ -88,7 +88,7 @@ $(function() { 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 c714c46800..01f4e90e9a 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 @@ -110,7 +110,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 acff56f58b..808ced1c98 100644 --- a/docs/d2/dfc/classshaka_1_1media_1_1MkvWriter-members.html +++ b/docs/d2/dfc/classshaka_1_1media_1_1MkvWriter-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/d2/dfd/adts__header_8h_source.html b/docs/d2/dfd/adts__header_8h_source.html index 56b8a3fb27..cbc5ba47a5 100644 --- a/docs/d2/dfd/adts__header_8h_source.html +++ b/docs/d2/dfd/adts__header_8h_source.html @@ -139,7 +139,7 @@ $(function() { diff --git a/docs/d3/d03/structshaka_1_1media_1_1OnNewSegmentParameters-members.html b/docs/d3/d03/structshaka_1_1media_1_1OnNewSegmentParameters-members.html index 8b577dad38..60d35b25ea 100644 --- a/docs/d3/d03/structshaka_1_1media_1_1OnNewSegmentParameters-members.html +++ b/docs/d3/d03/structshaka_1_1media_1_1OnNewSegmentParameters-members.html @@ -79,7 +79,7 @@ $(function() { 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 8a785c6ea3..4e4ea959a5 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 @@ -107,7 +107,7 @@ $(function() { diff --git a/docs/d3/d07/mpd__params_8h_source.html b/docs/d3/d07/mpd__params_8h_source.html index da577956a7..5e04222d3b 100644 --- a/docs/d3/d07/mpd__params_8h_source.html +++ b/docs/d3/d07/mpd__params_8h_source.html @@ -105,16 +105,18 @@ $(function() {
85  bool allow_codec_switching = false;
89  bool include_mspr_pro = true;
-
90 };
-
91 
-
92 } // namespace shaka
-
93 
-
94 #endif // PACKAGER_MPD_PUBLIC_MPD_PARAMS_H_
+
93  bool use_segment_list = false;
+
94 };
+
95 
+
96 } // namespace shaka
+
97 
+
98 #endif // PACKAGER_MPD_PUBLIC_MPD_PARAMS_H_
All the methods that are virtual are virtual for mocking.
UTCTimings. For dynamic MPD only.
Definition: mpd_params.h:48
DASH MPD related parameters.
Definition: mpd_params.h:16
bool include_mspr_pro
Definition: mpd_params.h:89
static constexpr double kSuggestedPresentationDelayNotSet
Definition: mpd_params.h:35
+
bool use_segment_list
Definition: mpd_params.h:93
double minimum_update_period
Definition: mpd_params.h:30
bool allow_codec_switching
Definition: mpd_params.h:85
std::string default_language
Definition: mpd_params.h:58
@@ -131,7 +133,7 @@ $(function() { 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 894fd748eb..9f5f006122 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 @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/d3/d0a/classshaka_1_1media_1_1MediaParser.html b/docs/d3/d0a/classshaka_1_1media_1_1MediaParser.html index 7db849f1bb..2236649008 100644 --- a/docs/d3/d0a/classshaka_1_1media_1_1MediaParser.html +++ b/docs/d3/d0a/classshaka_1_1media_1_1MediaParser.html @@ -312,7 +312,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 380606955f..a20bb6dc2f 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 @@ -494,7 +494,7 @@ 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 344c907a16..7156f47bbe 100644 --- a/docs/d3/d12/classshaka_1_1media_1_1LibcryptoThreading-members.html +++ b/docs/d3/d12/classshaka_1_1media_1_1LibcryptoThreading-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/docs/d3/d12/structshaka_1_1media_1_1mp4_1_1FlacSpecific-members.html b/docs/d3/d12/structshaka_1_1media_1_1mp4_1_1FlacSpecific-members.html index 49fbc86968..7b4b1f363a 100644 --- a/docs/d3/d12/structshaka_1_1media_1_1mp4_1_1FlacSpecific-members.html +++ b/docs/d3/d12/structshaka_1_1media_1_1mp4_1_1FlacSpecific-members.html @@ -92,7 +92,7 @@ $(function() { 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 6ba5f8157f..3efceb10a0 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d3/d19/io__cache_8h_source.html b/docs/d3/d19/io__cache_8h_source.html index 0d66152668..324456dafb 100644 --- a/docs/d3/d19/io__cache_8h_source.html +++ b/docs/d3/d19/io__cache_8h_source.html @@ -143,7 +143,7 @@ $(function() { diff --git a/docs/d3/d1a/classshaka_1_1media_1_1Replicator.html b/docs/d3/d1a/classshaka_1_1media_1_1Replicator.html index 6fe8830e7b..d840229ab9 100644 --- a/docs/d3/d1a/classshaka_1_1media_1_1Replicator.html +++ b/docs/d3/d1a/classshaka_1_1media_1_1Replicator.html @@ -163,7 +163,7 @@ const std::map< size_t, std::pair< std::shared_ptr< diff --git a/docs/d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html b/docs/d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html index 77fd091076..15cf47c40a 100644 --- a/docs/d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html +++ b/docs/d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html @@ -196,7 +196,7 @@ const std::map< size_t, std::pair< std::shared_ptr< 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 aead183874..a505a3ae8b 100644 --- a/docs/d3/d35/video__slice__header__parser_8cc_source.html +++ b/docs/d3/d35/video__slice__header__parser_8cc_source.html @@ -211,7 +211,7 @@ $(function() { diff --git a/docs/d3/d48/packager_8cc_source.html b/docs/d3/d48/packager_8cc_source.html index 8e45e7b751..b670e19233 100644 --- a/docs/d3/d48/packager_8cc_source.html +++ b/docs/d3/d48/packager_8cc_source.html @@ -438,647 +438,649 @@ $(function() {
367 
368  if (on_demand_dash_profile &&
369  !packaging_params.mpd_params.mpd_output.empty() &&
-
370  !packaging_params.mp4_output_params.generate_sidx_in_media_segments) {
-
371  return Status(error::UNIMPLEMENTED,
-
372  "--generate_sidx_in_media_segments is required for DASH "
-
373  "on-demand profile (not using segment_template).");
-
374  }
-
375 
-
376  return Status::OK;
-
377 }
-
378 
-
379 bool StreamDescriptorCompareFn(const StreamDescriptor& a,
-
380  const StreamDescriptor& b) {
-
381  // This function is used by std::sort() to sort the stream descriptors.
-
382  // Note that std::sort() need a comparator that return true iff the first
-
383  // argument is strictly lower than the second one. That is: must return false
-
384  // when they are equal. The requirement is enforced in gcc/g++ but not in
-
385  // clang.
-
386  if (a.input == b.input) {
-
387  if (a.stream_selector == b.stream_selector) {
-
388  // The MPD notifier requires that the main track comes first, so make
-
389  // sure that happens.
-
390  return a.trick_play_factor < b.trick_play_factor;
-
391  }
-
392  return a.stream_selector < b.stream_selector;
-
393  }
-
394 
-
395  return a.input < b.input;
-
396 }
-
397 
-
398 // A fake clock that always return time 0 (epoch). Should only be used for
-
399 // testing.
-
400 class FakeClock : public base::Clock {
-
401  public:
-
402  base::Time Now() override { return base::Time(); }
-
403 };
-
404 
-
405 bool StreamInfoToTextMediaInfo(const StreamDescriptor& stream_descriptor,
-
406  MediaInfo* text_media_info) {
-
407  std::string codec;
-
408  if (!DetermineTextFileCodec(stream_descriptor.input, &codec)) {
-
409  LOG(ERROR) << "Failed to determine the text file format for "
-
410  << stream_descriptor.input;
-
411  return false;
-
412  }
-
413 
-
414  MediaInfo::TextInfo* text_info = text_media_info->mutable_text_info();
-
415  text_info->set_codec(codec);
-
416 
-
417  const std::string& language = stream_descriptor.language;
-
418  if (!language.empty()) {
-
419  text_info->set_language(language);
-
420  }
-
421 
-
422  text_media_info->set_media_file_name(stream_descriptor.output);
-
423  text_media_info->set_container_type(MediaInfo::CONTAINER_TEXT);
-
424 
-
425  if (stream_descriptor.bandwidth != 0) {
-
426  text_media_info->set_bandwidth(stream_descriptor.bandwidth);
-
427  } else {
-
428  // Text files are usually small and since the input is one file; there's no
-
429  // way for the player to do ranged requests. So set this value to something
-
430  // reasonable.
-
431  const int kDefaultTextBandwidth = 256;
-
432  text_media_info->set_bandwidth(kDefaultTextBandwidth);
-
433  }
-
434 
-
435  if (!stream_descriptor.dash_roles.empty()) {
-
436  for (const auto& dash_role : stream_descriptor.dash_roles) {
-
437  text_media_info->add_dash_roles(dash_role);
-
438  }
-
439  }
-
440 
-
441  return true;
-
442 }
-
443 
-
447 Status CreateDemuxer(const StreamDescriptor& stream,
-
448  const PackagingParams& packaging_params,
-
449  std::shared_ptr<Demuxer>* new_demuxer) {
-
450  std::shared_ptr<Demuxer> demuxer = std::make_shared<Demuxer>(stream.input);
-
451  demuxer->set_dump_stream_info(packaging_params.test_params.dump_stream_info);
-
452 
-
453  if (packaging_params.decryption_params.key_provider != KeyProvider::kNone) {
-
454  std::unique_ptr<KeySource> decryption_key_source(
-
455  CreateDecryptionKeySource(packaging_params.decryption_params));
-
456  if (!decryption_key_source) {
-
457  return Status(
-
458  error::INVALID_ARGUMENT,
-
459  "Must define decryption key source when defining key provider");
-
460  }
-
461  demuxer->SetKeySource(std::move(decryption_key_source));
-
462  }
-
463 
-
464  *new_demuxer = std::move(demuxer);
-
465  return Status::OK;
-
466 }
-
467 
-
468 std::shared_ptr<MediaHandler> CreateEncryptionHandler(
-
469  const PackagingParams& packaging_params,
-
470  const StreamDescriptor& stream,
-
471  KeySource* key_source) {
-
472  if (stream.skip_encryption) {
-
473  return nullptr;
-
474  }
-
475 
-
476  if (!key_source) {
-
477  return nullptr;
-
478  }
-
479 
-
480  // Make a copy so that we can modify it for this specific stream.
-
481  EncryptionParams encryption_params = packaging_params.encryption_params;
-
482 
-
483  // Use Sample AES in MPEG2TS.
-
484  // TODO(kqyang): Consider adding a new flag to enable Sample AES as we
-
485  // will support CENC in TS in the future.
-
486  if (GetOutputFormat(stream) == CONTAINER_MPEG2TS ||
-
487  GetOutputFormat(stream) == CONTAINER_AAC ||
-
488  GetOutputFormat(stream) == CONTAINER_AC3 ||
-
489  GetOutputFormat(stream) == CONTAINER_EAC3) {
-
490  VLOG(1) << "Use Apple Sample AES encryption for MPEG2TS or Packed Audio.";
-
491  encryption_params.protection_scheme = kAppleSampleAesProtectionScheme;
-
492  }
-
493 
-
494  if (!stream.drm_label.empty()) {
-
495  const std::string& drm_label = stream.drm_label;
-
496  encryption_params.stream_label_func =
-
497  [drm_label](const EncryptionParams::EncryptedStreamAttributes&) {
-
498  return drm_label;
-
499  };
-
500  } else if (!encryption_params.stream_label_func) {
-
501  const int kDefaultMaxSdPixels = 768 * 576;
-
502  const int kDefaultMaxHdPixels = 1920 * 1080;
-
503  const int kDefaultMaxUhd1Pixels = 4096 * 2160;
-
504  encryption_params.stream_label_func = std::bind(
-
505  &Packager::DefaultStreamLabelFunction, kDefaultMaxSdPixels,
-
506  kDefaultMaxHdPixels, kDefaultMaxUhd1Pixels, std::placeholders::_1);
-
507  }
-
508 
-
509  return std::make_shared<EncryptionHandler>(encryption_params, key_source);
-
510 }
-
511 
-
512 std::unique_ptr<MediaHandler> CreateTextChunker(
-
513  const ChunkingParams& chunking_params) {
-
514  const float segment_length_in_seconds =
-
515  chunking_params.segment_duration_in_seconds;
-
516  return std::unique_ptr<MediaHandler>(
-
517  new TextChunker(segment_length_in_seconds));
-
518 }
-
519 
-
520 Status CreateTtmlJobs(
-
521  const std::vector<std::reference_wrapper<const StreamDescriptor>>& streams,
-
522  const PackagingParams& packaging_params,
-
523  SyncPointQueue* sync_points,
-
524  MuxerFactory* muxer_factory,
-
525  MpdNotifier* mpd_notifier,
-
526  JobManager* job_manager) {
-
527  DCHECK(job_manager);
-
528  for (const StreamDescriptor& stream : streams) {
-
529  // Check input to ensure that output is possible.
-
530  if (!packaging_params.hls_params.master_playlist_output.empty() &&
-
531  !stream.dash_only) {
-
532  return Status(error::INVALID_ARGUMENT,
-
533  "HLS does not support TTML in xml format.");
-
534  }
-
535 
-
536  if (!stream.segment_template.empty()) {
-
537  return Status(error::INVALID_ARGUMENT,
-
538  "Segmented TTML is not supported.");
-
539  }
-
540 
-
541  if (GetOutputFormat(stream) != CONTAINER_TTML) {
-
542  return Status(error::INVALID_ARGUMENT,
-
543  "Converting TTML to other formats is not supported");
-
544  }
-
545 
-
546  if (!stream.output.empty()) {
-
547  if (!File::Copy(stream.input.c_str(), stream.output.c_str())) {
-
548  std::string error;
-
549  base::StringAppendF(
-
550  &error, "Failed to copy the input file (%s) to output file (%s).",
-
551  stream.input.c_str(), stream.output.c_str());
-
552  return Status(error::FILE_FAILURE, error);
-
553  }
-
554 
-
555  MediaInfo text_media_info;
-
556  if (!StreamInfoToTextMediaInfo(stream, &text_media_info)) {
-
557  return Status(error::INVALID_ARGUMENT,
-
558  "Could not create media info for stream.");
-
559  }
-
560 
-
561  // If we are outputting to MPD, just add the input to the outputted
-
562  // manifest.
-
563  if (mpd_notifier) {
-
564  uint32_t unused;
-
565  if (mpd_notifier->NotifyNewContainer(text_media_info, &unused)) {
-
566  mpd_notifier->Flush();
-
567  } else {
-
568  return Status(error::PARSER_FAILURE,
-
569  "Failed to process text file " + stream.input);
-
570  }
-
571  }
-
572 
-
573  if (packaging_params.output_media_info) {
- -
575  text_media_info, stream.output + kMediaInfoSuffix);
-
576  }
-
577  }
-
578  }
-
579 
-
580  return Status::OK;
-
581 }
-
582 
-
583 Status CreateAudioVideoJobs(
-
584  const std::vector<std::reference_wrapper<const StreamDescriptor>>& streams,
-
585  const PackagingParams& packaging_params,
-
586  KeySource* encryption_key_source,
-
587  SyncPointQueue* sync_points,
-
588  MuxerListenerFactory* muxer_listener_factory,
-
589  MuxerFactory* muxer_factory,
-
590  JobManager* job_manager) {
-
591  DCHECK(muxer_listener_factory);
-
592  DCHECK(muxer_factory);
-
593  DCHECK(job_manager);
-
594  // Store all the demuxers in a map so that we can look up a stream's demuxer.
-
595  // This is step one in making this part of the pipeline less dependant on
-
596  // order.
-
597  std::map<std::string, std::shared_ptr<Demuxer>> sources;
-
598  std::map<std::string, std::shared_ptr<MediaHandler>> cue_aligners;
-
599 
-
600  for (const StreamDescriptor& stream : streams) {
-
601  bool seen_input_before = sources.find(stream.input) != sources.end();
-
602  if (seen_input_before) {
-
603  continue;
-
604  }
-
605 
-
606  RETURN_IF_ERROR(
-
607  CreateDemuxer(stream, packaging_params, &sources[stream.input]));
-
608  cue_aligners[stream.input] =
-
609  sync_points ? std::make_shared<CueAlignmentHandler>(sync_points)
-
610  : nullptr;
-
611  }
-
612 
-
613  for (auto& source : sources) {
-
614  job_manager->Add("RemuxJob", source.second);
-
615  }
-
616 
-
617  // Replicators are shared among all streams with the same input and stream
-
618  // selector.
-
619  std::shared_ptr<MediaHandler> replicator;
-
620 
-
621  std::string previous_input;
-
622  std::string previous_selector;
-
623 
-
624  for (const StreamDescriptor& stream : streams) {
-
625  // Get the demuxer for this stream.
-
626  auto& demuxer = sources[stream.input];
-
627  auto& cue_aligner = cue_aligners[stream.input];
-
628 
-
629  const bool new_input_file = stream.input != previous_input;
-
630  const bool new_stream =
-
631  new_input_file || previous_selector != stream.stream_selector;
-
632  const bool is_text = IsTextStream(stream);
-
633  previous_input = stream.input;
-
634  previous_selector = stream.stream_selector;
-
635 
-
636  // If the stream has no output, then there is no reason setting-up the rest
-
637  // of the pipeline.
-
638  if (stream.output.empty() && stream.segment_template.empty()) {
-
639  continue;
-
640  }
-
641 
-
642  // Just because it is a different stream descriptor does not mean it is a
-
643  // new stream. Multiple stream descriptors may have the same stream but
-
644  // only differ by trick play factor.
-
645  if (new_stream) {
-
646  if (!stream.language.empty()) {
-
647  demuxer->SetLanguageOverride(stream.stream_selector, stream.language);
-
648  }
-
649 
-
650  std::vector<std::shared_ptr<MediaHandler>> handlers;
-
651  if (is_text) {
-
652  handlers.emplace_back(
-
653  std::make_shared<TextPadder>(kDefaultTextZeroBiasMs));
-
654  }
-
655  if (sync_points) {
-
656  handlers.emplace_back(cue_aligner);
-
657  }
-
658  if (!is_text) {
-
659  handlers.emplace_back(std::make_shared<ChunkingHandler>(
-
660  packaging_params.chunking_params));
-
661  handlers.emplace_back(CreateEncryptionHandler(packaging_params, stream,
-
662  encryption_key_source));
-
663  }
-
664 
-
665  replicator = std::make_shared<Replicator>();
-
666  handlers.emplace_back(replicator);
-
667 
-
668  RETURN_IF_ERROR(MediaHandler::Chain(handlers));
-
669  RETURN_IF_ERROR(demuxer->SetHandler(stream.stream_selector, handlers[0]));
-
670  }
-
671 
-
672  // Create the muxer (output) for this track.
-
673  const auto output_format = GetOutputFormat(stream);
-
674  std::shared_ptr<Muxer> muxer =
-
675  muxer_factory->CreateMuxer(output_format, stream);
-
676  if (!muxer) {
-
677  return Status(error::INVALID_ARGUMENT, "Failed to create muxer for " +
-
678  stream.input + ":" +
-
679  stream.stream_selector);
-
680  }
-
681 
-
682  std::unique_ptr<MuxerListener> muxer_listener =
-
683  muxer_listener_factory->CreateListener(ToMuxerListenerData(stream));
-
684  muxer->SetMuxerListener(std::move(muxer_listener));
-
685 
-
686  std::vector<std::shared_ptr<MediaHandler>> handlers;
-
687  handlers.emplace_back(replicator);
-
688 
-
689  // Trick play is optional.
-
690  if (stream.trick_play_factor) {
-
691  handlers.emplace_back(
-
692  std::make_shared<TrickPlayHandler>(stream.trick_play_factor));
-
693  }
-
694 
-
695  if (stream.cc_index >= 0) {
-
696  handlers.emplace_back(
-
697  std::make_shared<CcStreamFilter>(stream.language, stream.cc_index));
-
698  }
-
699 
-
700  if (is_text &&
-
701  (!stream.segment_template.empty() || output_format == CONTAINER_MOV)) {
-
702  handlers.emplace_back(
-
703  CreateTextChunker(packaging_params.chunking_params));
-
704  }
-
705 
-
706  if (is_text && output_format == CONTAINER_MOV) {
-
707  const auto output_codec = GetTextOutputCodec(stream);
-
708  if (output_codec == CONTAINER_WEBVTT) {
-
709  handlers.emplace_back(std::make_shared<WebVttToMp4Handler>());
-
710  } else if (output_codec == CONTAINER_TTML) {
-
711  handlers.emplace_back(std::make_shared<ttml::TtmlToMp4Handler>());
-
712  }
-
713  }
-
714 
-
715  handlers.emplace_back(muxer);
-
716  RETURN_IF_ERROR(MediaHandler::Chain(handlers));
-
717  }
-
718 
-
719  return Status::OK;
-
720 }
-
721 
-
722 Status CreateAllJobs(const std::vector<StreamDescriptor>& stream_descriptors,
-
723  const PackagingParams& packaging_params,
-
724  MpdNotifier* mpd_notifier,
-
725  KeySource* encryption_key_source,
-
726  SyncPointQueue* sync_points,
-
727  MuxerListenerFactory* muxer_listener_factory,
-
728  MuxerFactory* muxer_factory,
-
729  JobManager* job_manager) {
-
730  DCHECK(muxer_factory);
-
731  DCHECK(muxer_listener_factory);
-
732  DCHECK(job_manager);
-
733 
-
734  // Group all streams based on which pipeline they will use.
-
735  std::vector<std::reference_wrapper<const StreamDescriptor>> ttml_streams;
-
736  std::vector<std::reference_wrapper<const StreamDescriptor>>
-
737  audio_video_streams;
-
738 
-
739  bool has_transport_audio_video_streams = false;
-
740  bool has_non_transport_audio_video_streams = false;
-
741 
-
742  for (const StreamDescriptor& stream : stream_descriptors) {
-
743  const auto input_container = DetermineContainerFromFileName(stream.input);
-
744  const auto output_format = GetOutputFormat(stream);
-
745  if (input_container == CONTAINER_TTML) {
-
746  ttml_streams.push_back(stream);
-
747  } else {
-
748  audio_video_streams.push_back(stream);
-
749  switch (output_format) {
-
750  case CONTAINER_MPEG2TS:
-
751  case CONTAINER_AAC:
-
752  case CONTAINER_MP3:
-
753  case CONTAINER_AC3:
-
754  case CONTAINER_EAC3:
-
755  has_transport_audio_video_streams = true;
-
756  break;
-
757  case CONTAINER_TTML:
-
758  case CONTAINER_WEBVTT:
-
759  break;
-
760  default:
-
761  has_non_transport_audio_video_streams = true;
-
762  break;
-
763  }
-
764  }
-
765  }
-
766 
-
767  // Audio/Video streams need to be in sorted order so that demuxers and trick
-
768  // play handlers get setup correctly.
-
769  std::sort(audio_video_streams.begin(), audio_video_streams.end(),
-
770  media::StreamDescriptorCompareFn);
-
771 
-
772  if (packaging_params.transport_stream_timestamp_offset_ms > 0) {
-
773  if (has_transport_audio_video_streams &&
-
774  has_non_transport_audio_video_streams) {
-
775  LOG(WARNING) << "There may be problems mixing transport streams and "
-
776  "non-transport streams. For example, the subtitles may "
-
777  "be out of sync with non-transport streams.";
-
778  } else if (has_non_transport_audio_video_streams) {
-
779  // Don't insert the X-TIMESTAMP-MAP in WebVTT if there is no transport
-
780  // stream.
-
781  muxer_factory->SetTsStreamOffset(0);
-
782  }
-
783  }
-
784 
-
785  RETURN_IF_ERROR(CreateTtmlJobs(ttml_streams, packaging_params, sync_points,
-
786  muxer_factory, mpd_notifier, job_manager));
-
787  RETURN_IF_ERROR(CreateAudioVideoJobs(
-
788  audio_video_streams, packaging_params, encryption_key_source, sync_points,
-
789  muxer_listener_factory, muxer_factory, job_manager));
-
790 
-
791  // Initialize processing graph.
-
792  return job_manager->InitializeJobs();
-
793 }
-
794 
-
795 } // namespace
-
796 } // namespace media
-
797 
-
798 struct Packager::PackagerInternal {
-
799  media::FakeClock fake_clock;
-
800  std::unique_ptr<KeySource> encryption_key_source;
-
801  std::unique_ptr<MpdNotifier> mpd_notifier;
-
802  std::unique_ptr<hls::HlsNotifier> hls_notifier;
-
803  BufferCallbackParams buffer_callback_params;
-
804  std::unique_ptr<media::JobManager> job_manager;
-
805 };
-
806 
-
807 Packager::Packager() {}
-
808 
-
809 Packager::~Packager() {}
-
810 
- -
812  const PackagingParams& packaging_params,
-
813  const std::vector<StreamDescriptor>& stream_descriptors) {
-
814  // Needed by base::WorkedPool used in ThreadedIoFile.
-
815  static base::AtExitManager exit;
-
816  static media::LibcryptoThreading libcrypto_threading;
-
817 
-
818  if (internal_)
-
819  return Status(error::INVALID_ARGUMENT, "Already initialized.");
-
820 
-
821  RETURN_IF_ERROR(media::ValidateParams(packaging_params, stream_descriptors));
-
822 
-
823  if (!packaging_params.test_params.injected_library_version.empty()) {
-
824  SetPackagerVersionForTesting(
-
825  packaging_params.test_params.injected_library_version);
-
826  }
-
827 
-
828  std::unique_ptr<PackagerInternal> internal(new PackagerInternal);
-
829 
-
830  // Create encryption key source if needed.
-
831  if (packaging_params.encryption_params.key_provider != KeyProvider::kNone) {
-
832  internal->encryption_key_source = CreateEncryptionKeySource(
-
833  static_cast<media::FourCC>(
-
834  packaging_params.encryption_params.protection_scheme),
-
835  packaging_params.encryption_params);
-
836  if (!internal->encryption_key_source)
-
837  return Status(error::INVALID_ARGUMENT, "Failed to create key source.");
-
838  }
-
839 
-
840  // Update MPD output and HLS output if needed.
-
841  MpdParams mpd_params = packaging_params.mpd_params;
-
842  HlsParams hls_params = packaging_params.hls_params;
-
843 
-
844  // |target_segment_duration| is needed for bandwidth estimation and also for
-
845  // DASH approximate segment timeline.
-
846  const double target_segment_duration =
- -
848  mpd_params.target_segment_duration = target_segment_duration;
-
849  hls_params.target_segment_duration = target_segment_duration;
-
850 
-
851  // Store callback params to make it available during packaging.
-
852  internal->buffer_callback_params = packaging_params.buffer_callback_params;
-
853  if (internal->buffer_callback_params.write_func) {
- -
855  internal->buffer_callback_params, mpd_params.mpd_output);
- -
857  internal->buffer_callback_params, hls_params.master_playlist_output);
-
858  }
-
859 
-
860  // Both DASH and HLS require language to follow RFC5646
-
861  // (https://tools.ietf.org/html/rfc5646), which requires the language to be
-
862  // in the shortest form.
-
863  mpd_params.default_language =
- -
865  mpd_params.default_text_language =
- -
867  hls_params.default_language =
- -
869  hls_params.default_text_language =
- -
871  hls_params.is_independent_segments =
-
872  packaging_params.chunking_params.segment_sap_aligned;
-
873 
-
874  if (!mpd_params.mpd_output.empty()) {
-
875  const bool on_demand_dash_profile =
-
876  stream_descriptors.begin()->segment_template.empty();
-
877  const MpdOptions mpd_options =
-
878  media::GetMpdOptions(on_demand_dash_profile, mpd_params);
-
879  internal->mpd_notifier.reset(new SimpleMpdNotifier(mpd_options));
-
880  if (!internal->mpd_notifier->Init()) {
-
881  LOG(ERROR) << "MpdNotifier failed to initialize.";
-
882  return Status(error::INVALID_ARGUMENT,
-
883  "Failed to initialize MpdNotifier.");
-
884  }
-
885  }
-
886 
-
887  if (!hls_params.master_playlist_output.empty()) {
-
888  internal->hls_notifier.reset(new hls::SimpleHlsNotifier(hls_params));
-
889  }
-
890 
-
891  std::unique_ptr<SyncPointQueue> sync_points;
-
892  if (!packaging_params.ad_cue_generator_params.cue_points.empty()) {
-
893  sync_points.reset(
-
894  new SyncPointQueue(packaging_params.ad_cue_generator_params));
-
895  }
-
896  if (packaging_params.single_threaded) {
-
897  internal->job_manager.reset(
-
898  new SingleThreadJobManager(std::move(sync_points)));
-
899  } else {
-
900  internal->job_manager.reset(new JobManager(std::move(sync_points)));
-
901  }
-
902 
-
903  std::vector<StreamDescriptor> streams_for_jobs;
-
904 
-
905  for (const StreamDescriptor& descriptor : stream_descriptors) {
-
906  // We may need to overwrite some values, so make a copy first.
-
907  StreamDescriptor copy = descriptor;
-
908 
-
909  if (internal->buffer_callback_params.read_func) {
-
910  copy.input = File::MakeCallbackFileName(internal->buffer_callback_params,
-
911  descriptor.input);
-
912  }
-
913 
-
914  if (internal->buffer_callback_params.write_func) {
-
915  copy.output = File::MakeCallbackFileName(internal->buffer_callback_params,
-
916  descriptor.output);
- -
918  internal->buffer_callback_params, descriptor.segment_template);
-
919  }
-
920 
-
921  // Update language to ISO_639_2 code if set.
-
922  if (!copy.language.empty()) {
-
923  copy.language = LanguageToISO_639_2(descriptor.language);
-
924  if (copy.language == "und") {
-
925  return Status(
-
926  error::INVALID_ARGUMENT,
-
927  "Unknown/invalid language specified: " + descriptor.language);
-
928  }
-
929  }
-
930 
-
931  streams_for_jobs.push_back(copy);
-
932  }
-
933 
-
934  media::MuxerFactory muxer_factory(packaging_params);
-
935  if (packaging_params.test_params.inject_fake_clock) {
-
936  muxer_factory.OverrideClock(&internal->fake_clock);
-
937  }
-
938 
-
939  media::MuxerListenerFactory muxer_listener_factory(
-
940  packaging_params.output_media_info, internal->mpd_notifier.get(),
-
941  internal->hls_notifier.get());
-
942 
-
943  RETURN_IF_ERROR(media::CreateAllJobs(
-
944  streams_for_jobs, packaging_params, internal->mpd_notifier.get(),
-
945  internal->encryption_key_source.get(),
-
946  internal->job_manager->sync_points(), &muxer_listener_factory,
-
947  &muxer_factory, internal->job_manager.get()));
-
948 
-
949  internal_ = std::move(internal);
-
950  return Status::OK;
-
951 }
-
952 
- -
954  if (!internal_)
-
955  return Status(error::INVALID_ARGUMENT, "Not yet initialized.");
-
956 
-
957  RETURN_IF_ERROR(internal_->job_manager->RunJobs());
+
370  !packaging_params.mp4_output_params.generate_sidx_in_media_segments &&
+
371  !packaging_params.mpd_params.use_segment_list) {
+
372  return Status(error::UNIMPLEMENTED,
+
373  "--generate_sidx_in_media_segments is required for DASH "
+
374  "on-demand profile (not using segment_template or segment list).");
+
375  }
+
376 
+
377  return Status::OK;
+
378 }
+
379 
+
380 bool StreamDescriptorCompareFn(const StreamDescriptor& a,
+
381  const StreamDescriptor& b) {
+
382  // This function is used by std::sort() to sort the stream descriptors.
+
383  // Note that std::sort() need a comparator that return true iff the first
+
384  // argument is strictly lower than the second one. That is: must return false
+
385  // when they are equal. The requirement is enforced in gcc/g++ but not in
+
386  // clang.
+
387  if (a.input == b.input) {
+
388  if (a.stream_selector == b.stream_selector) {
+
389  // The MPD notifier requires that the main track comes first, so make
+
390  // sure that happens.
+
391  return a.trick_play_factor < b.trick_play_factor;
+
392  }
+
393  return a.stream_selector < b.stream_selector;
+
394  }
+
395 
+
396  return a.input < b.input;
+
397 }
+
398 
+
399 // A fake clock that always return time 0 (epoch). Should only be used for
+
400 // testing.
+
401 class FakeClock : public base::Clock {
+
402  public:
+
403  base::Time Now() override { return base::Time(); }
+
404 };
+
405 
+
406 bool StreamInfoToTextMediaInfo(const StreamDescriptor& stream_descriptor,
+
407  MediaInfo* text_media_info) {
+
408  std::string codec;
+
409  if (!DetermineTextFileCodec(stream_descriptor.input, &codec)) {
+
410  LOG(ERROR) << "Failed to determine the text file format for "
+
411  << stream_descriptor.input;
+
412  return false;
+
413  }
+
414 
+
415  MediaInfo::TextInfo* text_info = text_media_info->mutable_text_info();
+
416  text_info->set_codec(codec);
+
417 
+
418  const std::string& language = stream_descriptor.language;
+
419  if (!language.empty()) {
+
420  text_info->set_language(language);
+
421  }
+
422 
+
423  text_media_info->set_media_file_name(stream_descriptor.output);
+
424  text_media_info->set_container_type(MediaInfo::CONTAINER_TEXT);
+
425 
+
426  if (stream_descriptor.bandwidth != 0) {
+
427  text_media_info->set_bandwidth(stream_descriptor.bandwidth);
+
428  } else {
+
429  // Text files are usually small and since the input is one file; there's no
+
430  // way for the player to do ranged requests. So set this value to something
+
431  // reasonable.
+
432  const int kDefaultTextBandwidth = 256;
+
433  text_media_info->set_bandwidth(kDefaultTextBandwidth);
+
434  }
+
435 
+
436  if (!stream_descriptor.dash_roles.empty()) {
+
437  for (const auto& dash_role : stream_descriptor.dash_roles) {
+
438  text_media_info->add_dash_roles(dash_role);
+
439  }
+
440  }
+
441 
+
442  return true;
+
443 }
+
444 
+
448 Status CreateDemuxer(const StreamDescriptor& stream,
+
449  const PackagingParams& packaging_params,
+
450  std::shared_ptr<Demuxer>* new_demuxer) {
+
451  std::shared_ptr<Demuxer> demuxer = std::make_shared<Demuxer>(stream.input);
+
452  demuxer->set_dump_stream_info(packaging_params.test_params.dump_stream_info);
+
453 
+
454  if (packaging_params.decryption_params.key_provider != KeyProvider::kNone) {
+
455  std::unique_ptr<KeySource> decryption_key_source(
+
456  CreateDecryptionKeySource(packaging_params.decryption_params));
+
457  if (!decryption_key_source) {
+
458  return Status(
+
459  error::INVALID_ARGUMENT,
+
460  "Must define decryption key source when defining key provider");
+
461  }
+
462  demuxer->SetKeySource(std::move(decryption_key_source));
+
463  }
+
464 
+
465  *new_demuxer = std::move(demuxer);
+
466  return Status::OK;
+
467 }
+
468 
+
469 std::shared_ptr<MediaHandler> CreateEncryptionHandler(
+
470  const PackagingParams& packaging_params,
+
471  const StreamDescriptor& stream,
+
472  KeySource* key_source) {
+
473  if (stream.skip_encryption) {
+
474  return nullptr;
+
475  }
+
476 
+
477  if (!key_source) {
+
478  return nullptr;
+
479  }
+
480 
+
481  // Make a copy so that we can modify it for this specific stream.
+
482  EncryptionParams encryption_params = packaging_params.encryption_params;
+
483 
+
484  // Use Sample AES in MPEG2TS.
+
485  // TODO(kqyang): Consider adding a new flag to enable Sample AES as we
+
486  // will support CENC in TS in the future.
+
487  if (GetOutputFormat(stream) == CONTAINER_MPEG2TS ||
+
488  GetOutputFormat(stream) == CONTAINER_AAC ||
+
489  GetOutputFormat(stream) == CONTAINER_AC3 ||
+
490  GetOutputFormat(stream) == CONTAINER_EAC3) {
+
491  VLOG(1) << "Use Apple Sample AES encryption for MPEG2TS or Packed Audio.";
+
492  encryption_params.protection_scheme = kAppleSampleAesProtectionScheme;
+
493  }
+
494 
+
495  if (!stream.drm_label.empty()) {
+
496  const std::string& drm_label = stream.drm_label;
+
497  encryption_params.stream_label_func =
+
498  [drm_label](const EncryptionParams::EncryptedStreamAttributes&) {
+
499  return drm_label;
+
500  };
+
501  } else if (!encryption_params.stream_label_func) {
+
502  const int kDefaultMaxSdPixels = 768 * 576;
+
503  const int kDefaultMaxHdPixels = 1920 * 1080;
+
504  const int kDefaultMaxUhd1Pixels = 4096 * 2160;
+
505  encryption_params.stream_label_func = std::bind(
+
506  &Packager::DefaultStreamLabelFunction, kDefaultMaxSdPixels,
+
507  kDefaultMaxHdPixels, kDefaultMaxUhd1Pixels, std::placeholders::_1);
+
508  }
+
509 
+
510  return std::make_shared<EncryptionHandler>(encryption_params, key_source);
+
511 }
+
512 
+
513 std::unique_ptr<MediaHandler> CreateTextChunker(
+
514  const ChunkingParams& chunking_params) {
+
515  const float segment_length_in_seconds =
+
516  chunking_params.segment_duration_in_seconds;
+
517  return std::unique_ptr<MediaHandler>(
+
518  new TextChunker(segment_length_in_seconds));
+
519 }
+
520 
+
521 Status CreateTtmlJobs(
+
522  const std::vector<std::reference_wrapper<const StreamDescriptor>>& streams,
+
523  const PackagingParams& packaging_params,
+
524  SyncPointQueue* sync_points,
+
525  MuxerFactory* muxer_factory,
+
526  MpdNotifier* mpd_notifier,
+
527  JobManager* job_manager) {
+
528  DCHECK(job_manager);
+
529  for (const StreamDescriptor& stream : streams) {
+
530  // Check input to ensure that output is possible.
+
531  if (!packaging_params.hls_params.master_playlist_output.empty() &&
+
532  !stream.dash_only) {
+
533  return Status(error::INVALID_ARGUMENT,
+
534  "HLS does not support TTML in xml format.");
+
535  }
+
536 
+
537  if (!stream.segment_template.empty()) {
+
538  return Status(error::INVALID_ARGUMENT,
+
539  "Segmented TTML is not supported.");
+
540  }
+
541 
+
542  if (GetOutputFormat(stream) != CONTAINER_TTML) {
+
543  return Status(error::INVALID_ARGUMENT,
+
544  "Converting TTML to other formats is not supported");
+
545  }
+
546 
+
547  if (!stream.output.empty()) {
+
548  if (!File::Copy(stream.input.c_str(), stream.output.c_str())) {
+
549  std::string error;
+
550  base::StringAppendF(
+
551  &error, "Failed to copy the input file (%s) to output file (%s).",
+
552  stream.input.c_str(), stream.output.c_str());
+
553  return Status(error::FILE_FAILURE, error);
+
554  }
+
555 
+
556  MediaInfo text_media_info;
+
557  if (!StreamInfoToTextMediaInfo(stream, &text_media_info)) {
+
558  return Status(error::INVALID_ARGUMENT,
+
559  "Could not create media info for stream.");
+
560  }
+
561 
+
562  // If we are outputting to MPD, just add the input to the outputted
+
563  // manifest.
+
564  if (mpd_notifier) {
+
565  uint32_t unused;
+
566  if (mpd_notifier->NotifyNewContainer(text_media_info, &unused)) {
+
567  mpd_notifier->Flush();
+
568  } else {
+
569  return Status(error::PARSER_FAILURE,
+
570  "Failed to process text file " + stream.input);
+
571  }
+
572  }
+
573 
+
574  if (packaging_params.output_media_info) {
+ +
576  text_media_info, stream.output + kMediaInfoSuffix);
+
577  }
+
578  }
+
579  }
+
580 
+
581  return Status::OK;
+
582 }
+
583 
+
584 Status CreateAudioVideoJobs(
+
585  const std::vector<std::reference_wrapper<const StreamDescriptor>>& streams,
+
586  const PackagingParams& packaging_params,
+
587  KeySource* encryption_key_source,
+
588  SyncPointQueue* sync_points,
+
589  MuxerListenerFactory* muxer_listener_factory,
+
590  MuxerFactory* muxer_factory,
+
591  JobManager* job_manager) {
+
592  DCHECK(muxer_listener_factory);
+
593  DCHECK(muxer_factory);
+
594  DCHECK(job_manager);
+
595  // Store all the demuxers in a map so that we can look up a stream's demuxer.
+
596  // This is step one in making this part of the pipeline less dependant on
+
597  // order.
+
598  std::map<std::string, std::shared_ptr<Demuxer>> sources;
+
599  std::map<std::string, std::shared_ptr<MediaHandler>> cue_aligners;
+
600 
+
601  for (const StreamDescriptor& stream : streams) {
+
602  bool seen_input_before = sources.find(stream.input) != sources.end();
+
603  if (seen_input_before) {
+
604  continue;
+
605  }
+
606 
+
607  RETURN_IF_ERROR(
+
608  CreateDemuxer(stream, packaging_params, &sources[stream.input]));
+
609  cue_aligners[stream.input] =
+
610  sync_points ? std::make_shared<CueAlignmentHandler>(sync_points)
+
611  : nullptr;
+
612  }
+
613 
+
614  for (auto& source : sources) {
+
615  job_manager->Add("RemuxJob", source.second);
+
616  }
+
617 
+
618  // Replicators are shared among all streams with the same input and stream
+
619  // selector.
+
620  std::shared_ptr<MediaHandler> replicator;
+
621 
+
622  std::string previous_input;
+
623  std::string previous_selector;
+
624 
+
625  for (const StreamDescriptor& stream : streams) {
+
626  // Get the demuxer for this stream.
+
627  auto& demuxer = sources[stream.input];
+
628  auto& cue_aligner = cue_aligners[stream.input];
+
629 
+
630  const bool new_input_file = stream.input != previous_input;
+
631  const bool new_stream =
+
632  new_input_file || previous_selector != stream.stream_selector;
+
633  const bool is_text = IsTextStream(stream);
+
634  previous_input = stream.input;
+
635  previous_selector = stream.stream_selector;
+
636 
+
637  // If the stream has no output, then there is no reason setting-up the rest
+
638  // of the pipeline.
+
639  if (stream.output.empty() && stream.segment_template.empty()) {
+
640  continue;
+
641  }
+
642 
+
643  // Just because it is a different stream descriptor does not mean it is a
+
644  // new stream. Multiple stream descriptors may have the same stream but
+
645  // only differ by trick play factor.
+
646  if (new_stream) {
+
647  if (!stream.language.empty()) {
+
648  demuxer->SetLanguageOverride(stream.stream_selector, stream.language);
+
649  }
+
650 
+
651  std::vector<std::shared_ptr<MediaHandler>> handlers;
+
652  if (is_text) {
+
653  handlers.emplace_back(
+
654  std::make_shared<TextPadder>(kDefaultTextZeroBiasMs));
+
655  }
+
656  if (sync_points) {
+
657  handlers.emplace_back(cue_aligner);
+
658  }
+
659  if (!is_text) {
+
660  handlers.emplace_back(std::make_shared<ChunkingHandler>(
+
661  packaging_params.chunking_params));
+
662  handlers.emplace_back(CreateEncryptionHandler(packaging_params, stream,
+
663  encryption_key_source));
+
664  }
+
665 
+
666  replicator = std::make_shared<Replicator>();
+
667  handlers.emplace_back(replicator);
+
668 
+
669  RETURN_IF_ERROR(MediaHandler::Chain(handlers));
+
670  RETURN_IF_ERROR(demuxer->SetHandler(stream.stream_selector, handlers[0]));
+
671  }
+
672 
+
673  // Create the muxer (output) for this track.
+
674  const auto output_format = GetOutputFormat(stream);
+
675  std::shared_ptr<Muxer> muxer =
+
676  muxer_factory->CreateMuxer(output_format, stream);
+
677  if (!muxer) {
+
678  return Status(error::INVALID_ARGUMENT, "Failed to create muxer for " +
+
679  stream.input + ":" +
+
680  stream.stream_selector);
+
681  }
+
682 
+
683  std::unique_ptr<MuxerListener> muxer_listener =
+
684  muxer_listener_factory->CreateListener(ToMuxerListenerData(stream));
+
685  muxer->SetMuxerListener(std::move(muxer_listener));
+
686 
+
687  std::vector<std::shared_ptr<MediaHandler>> handlers;
+
688  handlers.emplace_back(replicator);
+
689 
+
690  // Trick play is optional.
+
691  if (stream.trick_play_factor) {
+
692  handlers.emplace_back(
+
693  std::make_shared<TrickPlayHandler>(stream.trick_play_factor));
+
694  }
+
695 
+
696  if (stream.cc_index >= 0) {
+
697  handlers.emplace_back(
+
698  std::make_shared<CcStreamFilter>(stream.language, stream.cc_index));
+
699  }
+
700 
+
701  if (is_text &&
+
702  (!stream.segment_template.empty() || output_format == CONTAINER_MOV)) {
+
703  handlers.emplace_back(
+
704  CreateTextChunker(packaging_params.chunking_params));
+
705  }
+
706 
+
707  if (is_text && output_format == CONTAINER_MOV) {
+
708  const auto output_codec = GetTextOutputCodec(stream);
+
709  if (output_codec == CONTAINER_WEBVTT) {
+
710  handlers.emplace_back(std::make_shared<WebVttToMp4Handler>());
+
711  } else if (output_codec == CONTAINER_TTML) {
+
712  handlers.emplace_back(std::make_shared<ttml::TtmlToMp4Handler>());
+
713  }
+
714  }
+
715 
+
716  handlers.emplace_back(muxer);
+
717  RETURN_IF_ERROR(MediaHandler::Chain(handlers));
+
718  }
+
719 
+
720  return Status::OK;
+
721 }
+
722 
+
723 Status CreateAllJobs(const std::vector<StreamDescriptor>& stream_descriptors,
+
724  const PackagingParams& packaging_params,
+
725  MpdNotifier* mpd_notifier,
+
726  KeySource* encryption_key_source,
+
727  SyncPointQueue* sync_points,
+
728  MuxerListenerFactory* muxer_listener_factory,
+
729  MuxerFactory* muxer_factory,
+
730  JobManager* job_manager) {
+
731  DCHECK(muxer_factory);
+
732  DCHECK(muxer_listener_factory);
+
733  DCHECK(job_manager);
+
734 
+
735  // Group all streams based on which pipeline they will use.
+
736  std::vector<std::reference_wrapper<const StreamDescriptor>> ttml_streams;
+
737  std::vector<std::reference_wrapper<const StreamDescriptor>>
+
738  audio_video_streams;
+
739 
+
740  bool has_transport_audio_video_streams = false;
+
741  bool has_non_transport_audio_video_streams = false;
+
742 
+
743  for (const StreamDescriptor& stream : stream_descriptors) {
+
744  const auto input_container = DetermineContainerFromFileName(stream.input);
+
745  const auto output_format = GetOutputFormat(stream);
+
746  if (input_container == CONTAINER_TTML) {
+
747  ttml_streams.push_back(stream);
+
748  } else {
+
749  audio_video_streams.push_back(stream);
+
750  switch (output_format) {
+
751  case CONTAINER_MPEG2TS:
+
752  case CONTAINER_AAC:
+
753  case CONTAINER_MP3:
+
754  case CONTAINER_AC3:
+
755  case CONTAINER_EAC3:
+
756  has_transport_audio_video_streams = true;
+
757  break;
+
758  case CONTAINER_TTML:
+
759  case CONTAINER_WEBVTT:
+
760  break;
+
761  default:
+
762  has_non_transport_audio_video_streams = true;
+
763  break;
+
764  }
+
765  }
+
766  }
+
767 
+
768  // Audio/Video streams need to be in sorted order so that demuxers and trick
+
769  // play handlers get setup correctly.
+
770  std::sort(audio_video_streams.begin(), audio_video_streams.end(),
+
771  media::StreamDescriptorCompareFn);
+
772 
+
773  if (packaging_params.transport_stream_timestamp_offset_ms > 0) {
+
774  if (has_transport_audio_video_streams &&
+
775  has_non_transport_audio_video_streams) {
+
776  LOG(WARNING) << "There may be problems mixing transport streams and "
+
777  "non-transport streams. For example, the subtitles may "
+
778  "be out of sync with non-transport streams.";
+
779  } else if (has_non_transport_audio_video_streams) {
+
780  // Don't insert the X-TIMESTAMP-MAP in WebVTT if there is no transport
+
781  // stream.
+
782  muxer_factory->SetTsStreamOffset(0);
+
783  }
+
784  }
+
785 
+
786  RETURN_IF_ERROR(CreateTtmlJobs(ttml_streams, packaging_params, sync_points,
+
787  muxer_factory, mpd_notifier, job_manager));
+
788  RETURN_IF_ERROR(CreateAudioVideoJobs(
+
789  audio_video_streams, packaging_params, encryption_key_source, sync_points,
+
790  muxer_listener_factory, muxer_factory, job_manager));
+
791 
+
792  // Initialize processing graph.
+
793  return job_manager->InitializeJobs();
+
794 }
+
795 
+
796 } // namespace
+
797 } // namespace media
+
798 
+
799 struct Packager::PackagerInternal {
+
800  media::FakeClock fake_clock;
+
801  std::unique_ptr<KeySource> encryption_key_source;
+
802  std::unique_ptr<MpdNotifier> mpd_notifier;
+
803  std::unique_ptr<hls::HlsNotifier> hls_notifier;
+
804  BufferCallbackParams buffer_callback_params;
+
805  std::unique_ptr<media::JobManager> job_manager;
+
806 };
+
807 
+
808 Packager::Packager() {}
+
809 
+
810 Packager::~Packager() {}
+
811 
+ +
813  const PackagingParams& packaging_params,
+
814  const std::vector<StreamDescriptor>& stream_descriptors) {
+
815  // Needed by base::WorkedPool used in ThreadedIoFile.
+
816  static base::AtExitManager exit;
+
817  static media::LibcryptoThreading libcrypto_threading;
+
818 
+
819  if (internal_)
+
820  return Status(error::INVALID_ARGUMENT, "Already initialized.");
+
821 
+
822  RETURN_IF_ERROR(media::ValidateParams(packaging_params, stream_descriptors));
+
823 
+
824  if (!packaging_params.test_params.injected_library_version.empty()) {
+
825  SetPackagerVersionForTesting(
+
826  packaging_params.test_params.injected_library_version);
+
827  }
+
828 
+
829  std::unique_ptr<PackagerInternal> internal(new PackagerInternal);
+
830 
+
831  // Create encryption key source if needed.
+
832  if (packaging_params.encryption_params.key_provider != KeyProvider::kNone) {
+
833  internal->encryption_key_source = CreateEncryptionKeySource(
+
834  static_cast<media::FourCC>(
+
835  packaging_params.encryption_params.protection_scheme),
+
836  packaging_params.encryption_params);
+
837  if (!internal->encryption_key_source)
+
838  return Status(error::INVALID_ARGUMENT, "Failed to create key source.");
+
839  }
+
840 
+
841  // Update MPD output and HLS output if needed.
+
842  MpdParams mpd_params = packaging_params.mpd_params;
+
843  HlsParams hls_params = packaging_params.hls_params;
+
844 
+
845  // |target_segment_duration| is needed for bandwidth estimation and also for
+
846  // DASH approximate segment timeline.
+
847  const double target_segment_duration =
+ +
849  mpd_params.target_segment_duration = target_segment_duration;
+
850  hls_params.target_segment_duration = target_segment_duration;
+
851 
+
852  // Store callback params to make it available during packaging.
+
853  internal->buffer_callback_params = packaging_params.buffer_callback_params;
+
854  if (internal->buffer_callback_params.write_func) {
+ +
856  internal->buffer_callback_params, mpd_params.mpd_output);
+ +
858  internal->buffer_callback_params, hls_params.master_playlist_output);
+
859  }
+
860 
+
861  // Both DASH and HLS require language to follow RFC5646
+
862  // (https://tools.ietf.org/html/rfc5646), which requires the language to be
+
863  // in the shortest form.
+
864  mpd_params.default_language =
+ +
866  mpd_params.default_text_language =
+ +
868  hls_params.default_language =
+ +
870  hls_params.default_text_language =
+ +
872  hls_params.is_independent_segments =
+
873  packaging_params.chunking_params.segment_sap_aligned;
+
874 
+
875  if (!mpd_params.mpd_output.empty()) {
+
876  const bool on_demand_dash_profile =
+
877  stream_descriptors.begin()->segment_template.empty();
+
878  const MpdOptions mpd_options =
+
879  media::GetMpdOptions(on_demand_dash_profile, mpd_params);
+
880  internal->mpd_notifier.reset(new SimpleMpdNotifier(mpd_options));
+
881  if (!internal->mpd_notifier->Init()) {
+
882  LOG(ERROR) << "MpdNotifier failed to initialize.";
+
883  return Status(error::INVALID_ARGUMENT,
+
884  "Failed to initialize MpdNotifier.");
+
885  }
+
886  }
+
887 
+
888  if (!hls_params.master_playlist_output.empty()) {
+
889  internal->hls_notifier.reset(new hls::SimpleHlsNotifier(hls_params));
+
890  }
+
891 
+
892  std::unique_ptr<SyncPointQueue> sync_points;
+
893  if (!packaging_params.ad_cue_generator_params.cue_points.empty()) {
+
894  sync_points.reset(
+
895  new SyncPointQueue(packaging_params.ad_cue_generator_params));
+
896  }
+
897  if (packaging_params.single_threaded) {
+
898  internal->job_manager.reset(
+
899  new SingleThreadJobManager(std::move(sync_points)));
+
900  } else {
+
901  internal->job_manager.reset(new JobManager(std::move(sync_points)));
+
902  }
+
903 
+
904  std::vector<StreamDescriptor> streams_for_jobs;
+
905 
+
906  for (const StreamDescriptor& descriptor : stream_descriptors) {
+
907  // We may need to overwrite some values, so make a copy first.
+
908  StreamDescriptor copy = descriptor;
+
909 
+
910  if (internal->buffer_callback_params.read_func) {
+
911  copy.input = File::MakeCallbackFileName(internal->buffer_callback_params,
+
912  descriptor.input);
+
913  }
+
914 
+
915  if (internal->buffer_callback_params.write_func) {
+
916  copy.output = File::MakeCallbackFileName(internal->buffer_callback_params,
+
917  descriptor.output);
+ +
919  internal->buffer_callback_params, descriptor.segment_template);
+
920  }
+
921 
+
922  // Update language to ISO_639_2 code if set.
+
923  if (!copy.language.empty()) {
+
924  copy.language = LanguageToISO_639_2(descriptor.language);
+
925  if (copy.language == "und") {
+
926  return Status(
+
927  error::INVALID_ARGUMENT,
+
928  "Unknown/invalid language specified: " + descriptor.language);
+
929  }
+
930  }
+
931 
+
932  streams_for_jobs.push_back(copy);
+
933  }
+
934 
+
935  media::MuxerFactory muxer_factory(packaging_params);
+
936  if (packaging_params.test_params.inject_fake_clock) {
+
937  muxer_factory.OverrideClock(&internal->fake_clock);
+
938  }
+
939 
+
940  media::MuxerListenerFactory muxer_listener_factory(
+
941  packaging_params.output_media_info,
+
942  packaging_params.mpd_params.use_segment_list,
+
943  internal->mpd_notifier.get(), internal->hls_notifier.get());
+
944 
+
945  RETURN_IF_ERROR(media::CreateAllJobs(
+
946  streams_for_jobs, packaging_params, internal->mpd_notifier.get(),
+
947  internal->encryption_key_source.get(),
+
948  internal->job_manager->sync_points(), &muxer_listener_factory,
+
949  &muxer_factory, internal->job_manager.get()));
+
950 
+
951  internal_ = std::move(internal);
+
952  return Status::OK;
+
953 }
+
954 
+ +
956  if (!internal_)
+
957  return Status(error::INVALID_ARGUMENT, "Not yet initialized.");
958 
-
959  if (internal_->hls_notifier) {
-
960  if (!internal_->hls_notifier->Flush())
-
961  return Status(error::INVALID_ARGUMENT, "Failed to flush Hls.");
-
962  }
-
963  if (internal_->mpd_notifier) {
-
964  if (!internal_->mpd_notifier->Flush())
-
965  return Status(error::INVALID_ARGUMENT, "Failed to flush Mpd.");
-
966  }
-
967  return Status::OK;
-
968 }
-
969 
- -
971  if (!internal_) {
-
972  LOG(INFO) << "Not yet initialized. Return directly.";
-
973  return;
-
974  }
-
975  internal_->job_manager->CancelJobs();
-
976 }
-
977 
- -
979  return GetPackagerVersion();
-
980 }
-
981 
- -
983  int max_sd_pixels,
-
984  int max_hd_pixels,
-
985  int max_uhd1_pixels,
-
986  const EncryptionParams::EncryptedStreamAttributes& stream_attributes) {
-
987  if (stream_attributes.stream_type ==
-
988  EncryptionParams::EncryptedStreamAttributes::kAudio)
-
989  return "AUDIO";
-
990  if (stream_attributes.stream_type ==
-
991  EncryptionParams::EncryptedStreamAttributes::kVideo) {
-
992  const int pixels = stream_attributes.oneof.video.width *
-
993  stream_attributes.oneof.video.height;
-
994  if (pixels <= max_sd_pixels)
-
995  return "SD";
-
996  if (pixels <= max_hd_pixels)
-
997  return "HD";
-
998  if (pixels <= max_uhd1_pixels)
-
999  return "UHD1";
-
1000  return "UHD2";
-
1001  }
-
1002  return "";
-
1003 }
-
1004 
-
1005 } // namespace shaka
-
static std::string MakeCallbackFileName(const BufferCallbackParams &callback_params, const std::string &name)
Definition: file.cc:399
+
959  RETURN_IF_ERROR(internal_->job_manager->RunJobs());
+
960 
+
961  if (internal_->hls_notifier) {
+
962  if (!internal_->hls_notifier->Flush())
+
963  return Status(error::INVALID_ARGUMENT, "Failed to flush Hls.");
+
964  }
+
965  if (internal_->mpd_notifier) {
+
966  if (!internal_->mpd_notifier->Flush())
+
967  return Status(error::INVALID_ARGUMENT, "Failed to flush Mpd.");
+
968  }
+
969  return Status::OK;
+
970 }
+
971 
+ +
973  if (!internal_) {
+
974  LOG(INFO) << "Not yet initialized. Return directly.";
+
975  return;
+
976  }
+
977  internal_->job_manager->CancelJobs();
+
978 }
+
979 
+ +
981  return GetPackagerVersion();
+
982 }
+
983 
+ +
985  int max_sd_pixels,
+
986  int max_hd_pixels,
+
987  int max_uhd1_pixels,
+
988  const EncryptionParams::EncryptedStreamAttributes& stream_attributes) {
+
989  if (stream_attributes.stream_type ==
+
990  EncryptionParams::EncryptedStreamAttributes::kAudio)
+
991  return "AUDIO";
+
992  if (stream_attributes.stream_type ==
+
993  EncryptionParams::EncryptedStreamAttributes::kVideo) {
+
994  const int pixels = stream_attributes.oneof.video.width *
+
995  stream_attributes.oneof.video.height;
+
996  if (pixels <= max_sd_pixels)
+
997  return "SD";
+
998  if (pixels <= max_hd_pixels)
+
999  return "HD";
+
1000  if (pixels <= max_uhd1_pixels)
+
1001  return "UHD1";
+
1002  return "UHD2";
+
1003  }
+
1004  return "";
+
1005 }
+
1006 
+
1007 } // namespace shaka
+
static std::string MakeCallbackFileName(const BufferCallbackParams &callback_params, const std::string &name)
Definition: file.cc:402
static bool ReadFileToString(const char *file_name, std::string *contents)
Definition: file.cc:230
-
static bool Copy(const char *from_file_name, const char *to_file_name)
Definition: file.cc:297
-
Status Run()
Definition: packager.cc:953
-
void Cancel()
Cancel packaging. Note that it has to be called from another thread.
Definition: packager.cc:970
-
static std::string DefaultStreamLabelFunction(int max_sd_pixels, int max_hd_pixels, int max_uhd1_pixels, const EncryptionParams::EncryptedStreamAttributes &stream_attributes)
Definition: packager.cc:982
-
static std::string GetLibraryVersion()
Definition: packager.cc:978
-
Status Initialize(const PackagingParams &packaging_params, const std::vector< StreamDescriptor > &stream_descriptors)
Definition: packager.cc:811
+
static bool Copy(const char *from_file_name, const char *to_file_name)
Definition: file.cc:300
+
Status Run()
Definition: packager.cc:955
+
void Cancel()
Cancel packaging. Note that it has to be called from another thread.
Definition: packager.cc:972
+
static std::string DefaultStreamLabelFunction(int max_sd_pixels, int max_hd_pixels, int max_uhd1_pixels, const EncryptionParams::EncryptedStreamAttributes &stream_attributes)
Definition: packager.cc:984
+
static std::string GetLibraryVersion()
Definition: packager.cc:980
+
Status Initialize(const PackagingParams &packaging_params, const std::vector< StreamDescriptor > &stream_descriptors)
Definition: packager.cc:812
@@ -1089,7 +1091,7 @@ $(function() {
A synchronized queue for cue points.
-
static bool WriteMediaInfoToFile(const MediaInfo &media_info, const std::string &output_file_path)
+
static bool WriteMediaInfoToFile(const MediaInfo &media_info, const std::string &output_file_path)
All the methods that are virtual are virtual for mocking.
std::string LanguageToISO_639_2(const std::string &language)
std::string LanguageToShortestForm(const std::string &language)
@@ -1105,6 +1107,7 @@ $(function() {
std::string master_playlist_output
HLS master playlist output path.
Definition: hls_params.h:27
Defines Mpd Options.
Definition: mpd_options.h:25
DASH MPD related parameters.
Definition: mpd_params.h:16
+
bool use_segment_list
Definition: mpd_params.h:93
std::string default_language
Definition: mpd_params.h:58
double target_segment_duration
Definition: mpd_params.h:82
std::string mpd_output
MPD output file path.
Definition: mpd_params.h:18
@@ -1128,7 +1131,7 @@ $(function() { diff --git a/docs/d3/d51/classshaka_1_1media_1_1LibcryptoThreading.html b/docs/d3/d51/classshaka_1_1media_1_1LibcryptoThreading.html index 19de1ee71a..3444755c7b 100644 --- a/docs/d3/d51/classshaka_1_1media_1_1LibcryptoThreading.html +++ b/docs/d3/d51/classshaka_1_1media_1_1LibcryptoThreading.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/d3/d53/classshaka_1_1media_1_1JobManager.html b/docs/d3/d53/classshaka_1_1media_1_1JobManager.html index 842b349197..186f8ebce1 100644 --- a/docs/d3/d53/classshaka_1_1media_1_1JobManager.html +++ b/docs/d3/d53/classshaka_1_1media_1_1JobManager.html @@ -142,7 +142,7 @@ std::unique_ptr< diff --git a/docs/d3/d54/structshaka_1_1media_1_1TextFragment.html b/docs/d3/d54/structshaka_1_1media_1_1TextFragment.html index 3a00937609..a7fbe9d02a 100644 --- a/docs/d3/d54/structshaka_1_1media_1_1TextFragment.html +++ b/docs/d3/d54/structshaka_1_1media_1_1TextFragment.html @@ -127,7 +127,7 @@ bool newline = false diff --git a/docs/d3/d56/decrypt__config_8cc_source.html b/docs/d3/d56/decrypt__config_8cc_source.html index e90ab8e419..f541d420b7 100644 --- a/docs/d3/d56/decrypt__config_8cc_source.html +++ b/docs/d3/d56/decrypt__config_8cc_source.html @@ -119,7 +119,7 @@ $(function() { diff --git a/docs/d3/d5f/sync__point__queue_8h_source.html b/docs/d3/d5f/sync__point__queue_8h_source.html index 3c34d92038..026a3d642c 100644 --- a/docs/d3/d5f/sync__point__queue_8h_source.html +++ b/docs/d3/d5f/sync__point__queue_8h_source.html @@ -136,7 +136,7 @@ $(function() { diff --git a/docs/d3/d62/continuity__counter_8h_source.html b/docs/d3/d62/continuity__counter_8h_source.html index b93fe01a78..adba71d4ff 100644 --- a/docs/d3/d62/continuity__counter_8h_source.html +++ b/docs/d3/d62/continuity__counter_8h_source.html @@ -107,7 +107,7 @@ $(function() { diff --git a/docs/d3/d62/rcheck_8h_source.html b/docs/d3/d62/rcheck_8h_source.html index dd3e170edc..146d8784c3 100644 --- a/docs/d3/d62/rcheck_8h_source.html +++ b/docs/d3/d62/rcheck_8h_source.html @@ -90,7 +90,7 @@ $(function() { 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 5b6bbcda0e..eb57472bdf 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d3/d67/classshaka_1_1media_1_1WebMVideoClient.html b/docs/d3/d67/classshaka_1_1media_1_1WebMVideoClient.html index 562f34c44d..4b440b0a7c 100644 --- a/docs/d3/d67/classshaka_1_1media_1_1WebMVideoClient.html +++ b/docs/d3/d67/classshaka_1_1media_1_1WebMVideoClient.html @@ -187,7 +187,7 @@ An empty pointer if there was unexpected values in the provided parameters or vi diff --git a/docs/d3/d6e/structshaka_1_1MpdParams_1_1UtcTiming.html b/docs/d3/d6e/structshaka_1_1MpdParams_1_1UtcTiming.html index 7ed5e8a0f2..f460e693e5 100644 --- a/docs/d3/d6e/structshaka_1_1MpdParams_1_1UtcTiming.html +++ b/docs/d3/d6e/structshaka_1_1MpdParams_1_1UtcTiming.html @@ -97,7 +97,7 @@ std::string value diff --git a/docs/d3/d6f/ad__cue__generator__params_8h_source.html b/docs/d3/d6f/ad__cue__generator__params_8h_source.html index 97fe363772..bcc7c487ba 100644 --- a/docs/d3/d6f/ad__cue__generator__params_8h_source.html +++ b/docs/d3/d6f/ad__cue__generator__params_8h_source.html @@ -104,7 +104,7 @@ $(function() { 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 91b0a7998e..c347c6252b 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 @@ -211,7 +211,7 @@ const std::map< size_t, std::pair< std::shared_ptr< diff --git a/docs/d3/d73/classshaka_1_1File.html b/docs/d3/d73/classshaka_1_1File.html index 148831da79..d76d50bb80 100644 --- a/docs/d3/d73/classshaka_1_1File.html +++ b/docs/d3/d73/classshaka_1_1File.html @@ -265,7 +265,7 @@ class ThreadedIoFile
Returns
true on success, false otherwise.
-

Definition at line 297 of file file.cc.

+

Definition at line 300 of file file.cc.

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

Definition at line 333 of file file.cc.

+

Definition at line 336 of file file.cc.

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

Definition at line 337 of file file.cc.

+

Definition at line 340 of file file.cc.

@@ -519,7 +519,7 @@ class ThreadedIoFile
Returns
true if file_name is a local and regular file.
-

Definition at line 374 of file file.cc.

+

Definition at line 377 of file file.cc.

@@ -564,7 +564,7 @@ class ThreadedIoFile -

Definition at line 399 of file file.cc.

+

Definition at line 402 of file file.cc.

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

Definition at line 409 of file file.cc.

+

Definition at line 412 of file file.cc.

@@ -1048,7 +1048,7 @@ class ThreadedIoFile 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 e5beac0bd7..1992f16618 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 @@ -215,7 +215,7 @@ const std::map< size_t, 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 b13ef720e9..6a1537c85f 100644 --- a/docs/d3/d75/classshaka_1_1media_1_1AesEncryptor.html +++ b/docs/d3/d75/classshaka_1_1media_1_1AesEncryptor.html @@ -218,7 +218,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 36cd6cdecd..bb00650be4 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 @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/d3/d76/muxer__flags_8h_source.html b/docs/d3/d76/muxer__flags_8h_source.html index 02dd3f721d..bb63fa4341 100644 --- a/docs/d3/d76/muxer__flags_8h_source.html +++ b/docs/d3/d76/muxer__flags_8h_source.html @@ -96,7 +96,7 @@ $(function() { 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 5b4ae92f4c..8480d5ff63 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 @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/d3/d7a/ttml__muxer_8h_source.html b/docs/d3/d7a/ttml__muxer_8h_source.html index 1afed487d5..d53029b883 100644 --- a/docs/d3/d7a/ttml__muxer_8h_source.html +++ b/docs/d3/d7a/ttml__muxer_8h_source.html @@ -114,7 +114,7 @@ $(function() { 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 ae9a8f1da2..447a4cb66b 100644 --- a/docs/d3/d7b/classshaka_1_1media_1_1RsaPublicKey-members.html +++ b/docs/d3/d7b/classshaka_1_1media_1_1RsaPublicKey-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html b/docs/d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html index 95c570a443..b9da952702 100644 --- a/docs/d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html +++ b/docs/d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html @@ -203,7 +203,7 @@ An empty pointer if there was unexpected values in the provided parameters or au diff --git a/docs/d3/d7d/structshaka_1_1media_1_1TextRegion-members.html b/docs/d3/d7d/structshaka_1_1media_1_1TextRegion-members.html index a675fb4c0f..f5c4db6236 100644 --- a/docs/d3/d7d/structshaka_1_1media_1_1TextRegion-members.html +++ b/docs/d3/d7d/structshaka_1_1media_1_1TextRegion-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/d3/d80/muxer__util_8h_source.html b/docs/d3/d80/muxer__util_8h_source.html index 3c709b165f..1b74a2e082 100644 --- a/docs/d3/d80/muxer__util_8h_source.html +++ b/docs/d3/d80/muxer__util_8h_source.html @@ -105,7 +105,7 @@ $(function() { 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 80a1b5de75..3fbef8e0d4 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 @@ -163,7 +163,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 9a0d658a72..b87f3f461e 100644 --- a/docs/d3/d87/trick__play__handler_8cc_source.html +++ b/docs/d3/d87/trick__play__handler_8cc_source.html @@ -268,7 +268,7 @@ $(function() { diff --git a/docs/d3/d8d/webm__audio__client_8h_source.html b/docs/d3/d8d/webm__audio__client_8h_source.html index ce1b11bec9..febf498e9f 100644 --- a/docs/d3/d8d/webm__audio__client_8h_source.html +++ b/docs/d3/d8d/webm__audio__client_8h_source.html @@ -127,7 +127,7 @@ $(function() { diff --git a/docs/d3/d90/ec3__audio__util_8cc_source.html b/docs/d3/d90/ec3__audio__util_8cc_source.html index 2ec24adf86..686dccfc08 100644 --- a/docs/d3/d90/ec3__audio__util_8cc_source.html +++ b/docs/d3/d90/ec3__audio__util_8cc_source.html @@ -362,7 +362,7 @@ $(function() { diff --git a/docs/d3/d91/classshaka_1_1media_1_1H264Parser.html b/docs/d3/d91/classshaka_1_1media_1_1H264Parser.html index 9a46cb1f86..765614094a 100644 --- a/docs/d3/d91/classshaka_1_1media_1_1H264Parser.html +++ b/docs/d3/d91/classshaka_1_1media_1_1H264Parser.html @@ -114,7 +114,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 738bb53fe3..40b189198d 100644 --- a/docs/d3/d93/media__handler_8h_source.html +++ b/docs/d3/d93/media__handler_8h_source.html @@ -336,7 +336,7 @@ $(function() { diff --git a/docs/d3/d95/classshaka_1_1hls_1_1MockMediaPlaylist.html b/docs/d3/d95/classshaka_1_1hls_1_1MockMediaPlaylist.html index 60c9b7fab5..573cbc8e20 100644 --- a/docs/d3/d95/classshaka_1_1hls_1_1MockMediaPlaylist.html +++ b/docs/d3/d95/classshaka_1_1hls_1_1MockMediaPlaylist.html @@ -244,7 +244,7 @@ Additional Inherited Members diff --git a/docs/d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html b/docs/d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html index 2cdaa992cd..fcd0edd242 100644 --- a/docs/d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html +++ b/docs/d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html @@ -243,7 +243,7 @@ std::unique_ptr< diff --git a/docs/d3/d9c/encryption__handler_8cc_source.html b/docs/d3/d9c/encryption__handler_8cc_source.html index b2f3bc6108..b99d3b4d18 100644 --- a/docs/d3/d9c/encryption__handler_8cc_source.html +++ b/docs/d3/d9c/encryption__handler_8cc_source.html @@ -485,7 +485,7 @@ $(function() { diff --git a/docs/d3/da0/ec3__audio__util_8h_source.html b/docs/d3/da0/ec3__audio__util_8h_source.html index 9a5b89b586..ebcc116973 100644 --- a/docs/d3/da0/ec3__audio__util_8h_source.html +++ b/docs/d3/da0/ec3__audio__util_8h_source.html @@ -106,7 +106,7 @@ $(function() { 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 bf12441de0..1f662527f1 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 @@ -285,7 +285,7 @@ uint64_t duration () c 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 84a7540986..ebdd539150 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 @@ -166,7 +166,7 @@ Additional Inherited Members diff --git a/docs/d3/da5/structshaka_1_1MpdParams_1_1UtcTiming-members.html b/docs/d3/da5/structshaka_1_1MpdParams_1_1UtcTiming-members.html index f8bbdeeddc..a8e131831e 100644 --- a/docs/d3/da5/structshaka_1_1MpdParams_1_1UtcTiming-members.html +++ b/docs/d3/da5/structshaka_1_1MpdParams_1_1UtcTiming-members.html @@ -77,7 +77,7 @@ $(function() { 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 4c00adbb1c..7d79efb209 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 @@ -172,7 +172,7 @@ Additional Inherited Members diff --git a/docs/d3/db4/classshaka_1_1media_1_1WebMWebVTTParser-members.html b/docs/d3/db4/classshaka_1_1media_1_1WebMWebVTTParser-members.html index 5561064553..7c9c988ff8 100644 --- a/docs/d3/db4/classshaka_1_1media_1_1WebMWebVTTParser-members.html +++ b/docs/d3/db4/classshaka_1_1media_1_1WebMWebVTTParser-members.html @@ -76,7 +76,7 @@ $(function() { 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 6f7edfbfde..24c28c5f91 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 @@ -163,7 +163,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 711492c59d..0f04112beb 100644 --- a/docs/d3/db6/webm__parser_8cc_source.html +++ b/docs/d3/db6/webm__parser_8cc_source.html @@ -269,809 +269,815 @@ $(function() {
198  {BINARY, kWebMIdColorSpace},
199  {FLOAT, kWebMIdFrameRate},
200  {LIST, kWebMIdColor},
-
201 };
-
202 
-
203 static const ElementIdInfo kColorIds[] = {
-
204  {UINT, kWebMIdColorMatrixCoefficients},
-
205  {UINT, kWebMIdColorBitsPerChannel},
-
206  {UINT, kWebMIdColorChromaSubsamplingHorz},
-
207  {UINT, kWebMIdColorChromaSubsamplingVert},
-
208  {UINT, kWebMIdColorCbSamplingHorz},
-
209  {UINT, kWebMIdColorCbSamplingVert},
-
210  {UINT, kWebMIdColorChromaSitingHorz},
-
211  {UINT, kWebMIdColorChromaSitingVert},
-
212  {UINT, kWebMIdColorRange},
-
213  {UINT, kWebMIdColorTransferCharacteristics},
-
214  {UINT, kWebMIdColorPrimaries},
-
215  {UINT, kWebMIdColorMaxCLL},
-
216  {UINT, kWebMIdColorMaxFALL},
-
217  {LIST, kWebMIdColorMasteringMetadata},
-
218 };
-
219 
-
220 static const ElementIdInfo kAudioIds[] = {
-
221  {FLOAT, kWebMIdSamplingFrequency},
-
222  {FLOAT, kWebMIdOutputSamplingFrequency},
-
223  {UINT, kWebMIdChannels},
-
224  {UINT, kWebMIdBitDepth},
-
225 };
-
226 
-
227 static const ElementIdInfo kTrackOperationIds[] = {
-
228  {LIST, kWebMIdTrackCombinePlanes},
-
229  {LIST, kWebMIdJoinBlocks},
+
201  {LIST, kWebMIdProjection},
+
202 };
+
203 
+
204 static const ElementIdInfo kColorIds[] = {
+
205  {UINT, kWebMIdColorMatrixCoefficients},
+
206  {UINT, kWebMIdColorBitsPerChannel},
+
207  {UINT, kWebMIdColorChromaSubsamplingHorz},
+
208  {UINT, kWebMIdColorChromaSubsamplingVert},
+
209  {UINT, kWebMIdColorCbSamplingHorz},
+
210  {UINT, kWebMIdColorCbSamplingVert},
+
211  {UINT, kWebMIdColorChromaSitingHorz},
+
212  {UINT, kWebMIdColorChromaSitingVert},
+
213  {UINT, kWebMIdColorRange},
+
214  {UINT, kWebMIdColorTransferCharacteristics},
+
215  {UINT, kWebMIdColorPrimaries},
+
216  {UINT, kWebMIdColorMaxCLL},
+
217  {UINT, kWebMIdColorMaxFALL},
+
218  {LIST, kWebMIdColorMasteringMetadata},
+
219 };
+
220 
+
221 static const ElementIdInfo kProjectionIds[] = {
+
222  {UINT, kWebMIdProjectionType},
+
223 };
+
224 
+
225 static const ElementIdInfo kAudioIds[] = {
+
226  {FLOAT, kWebMIdSamplingFrequency},
+
227  {FLOAT, kWebMIdOutputSamplingFrequency},
+
228  {UINT, kWebMIdChannels},
+
229  {UINT, kWebMIdBitDepth},
230 };
231 
-
232 static const ElementIdInfo kTrackCombinePlanesIds[] = {
-
233  {LIST, kWebMIdTrackPlane},
-
234 };
-
235 
-
236 static const ElementIdInfo kTrackPlaneIds[] = {
-
237  {UINT, kWebMIdTrackPlaneUID},
-
238  {UINT, kWebMIdTrackPlaneType},
+
232 static const ElementIdInfo kTrackOperationIds[] = {
+
233  {LIST, kWebMIdTrackCombinePlanes},
+
234  {LIST, kWebMIdJoinBlocks},
+
235 };
+
236 
+
237 static const ElementIdInfo kTrackCombinePlanesIds[] = {
+
238  {LIST, kWebMIdTrackPlane},
239 };
240 
-
241 static const ElementIdInfo kJoinBlocksIds[] = {
-
242  {UINT, kWebMIdTrackJoinUID},
-
243 };
-
244 
-
245 static const ElementIdInfo kContentEncodingsIds[] = {
-
246  {LIST, kWebMIdContentEncoding},
-
247 };
-
248 
-
249 static const ElementIdInfo kContentEncodingIds[] = {
-
250  {UINT, kWebMIdContentEncodingOrder},
-
251  {UINT, kWebMIdContentEncodingScope},
-
252  {UINT, kWebMIdContentEncodingType},
-
253  {LIST, kWebMIdContentCompression},
-
254  {LIST, kWebMIdContentEncryption},
-
255 };
-
256 
-
257 static const ElementIdInfo kContentCompressionIds[] = {
-
258  {UINT, kWebMIdContentCompAlgo},
-
259  {BINARY, kWebMIdContentCompSettings},
+
241 static const ElementIdInfo kTrackPlaneIds[] = {
+
242  {UINT, kWebMIdTrackPlaneUID},
+
243  {UINT, kWebMIdTrackPlaneType},
+
244 };
+
245 
+
246 static const ElementIdInfo kJoinBlocksIds[] = {
+
247  {UINT, kWebMIdTrackJoinUID},
+
248 };
+
249 
+
250 static const ElementIdInfo kContentEncodingsIds[] = {
+
251  {LIST, kWebMIdContentEncoding},
+
252 };
+
253 
+
254 static const ElementIdInfo kContentEncodingIds[] = {
+
255  {UINT, kWebMIdContentEncodingOrder},
+
256  {UINT, kWebMIdContentEncodingScope},
+
257  {UINT, kWebMIdContentEncodingType},
+
258  {LIST, kWebMIdContentCompression},
+
259  {LIST, kWebMIdContentEncryption},
260 };
261 
-
262 static const ElementIdInfo kContentEncryptionIds[] = {
-
263  {LIST, kWebMIdContentEncAESSettings},
-
264  {UINT, kWebMIdContentEncAlgo},
-
265  {BINARY, kWebMIdContentEncKeyID},
-
266  {BINARY, kWebMIdContentSignature},
-
267  {BINARY, kWebMIdContentSigKeyID},
-
268  {UINT, kWebMIdContentSigAlgo},
-
269  {UINT, kWebMIdContentSigHashAlgo},
-
270 };
-
271 
-
272 static const ElementIdInfo kContentEncAESSettingsIds[] = {
-
273  {UINT, kWebMIdAESSettingsCipherMode},
-
274 };
-
275 
-
276 static const ElementIdInfo kCuesIds[] = {
-
277  {LIST, kWebMIdCuePoint},
-
278 };
-
279 
-
280 static const ElementIdInfo kCuePointIds[] = {
-
281  {UINT, kWebMIdCueTime},
-
282  {LIST, kWebMIdCueTrackPositions},
+
262 static const ElementIdInfo kContentCompressionIds[] = {
+
263  {UINT, kWebMIdContentCompAlgo},
+
264  {BINARY, kWebMIdContentCompSettings},
+
265 };
+
266 
+
267 static const ElementIdInfo kContentEncryptionIds[] = {
+
268  {LIST, kWebMIdContentEncAESSettings},
+
269  {UINT, kWebMIdContentEncAlgo},
+
270  {BINARY, kWebMIdContentEncKeyID},
+
271  {BINARY, kWebMIdContentSignature},
+
272  {BINARY, kWebMIdContentSigKeyID},
+
273  {UINT, kWebMIdContentSigAlgo},
+
274  {UINT, kWebMIdContentSigHashAlgo},
+
275 };
+
276 
+
277 static const ElementIdInfo kContentEncAESSettingsIds[] = {
+
278  {UINT, kWebMIdAESSettingsCipherMode},
+
279 };
+
280 
+
281 static const ElementIdInfo kCuesIds[] = {
+
282  {LIST, kWebMIdCuePoint},
283 };
284 
-
285 static const ElementIdInfo kCueTrackPositionsIds[] = {
-
286  {UINT, kWebMIdCueTrack},
-
287  {UINT, kWebMIdCueClusterPosition},
-
288  {UINT, kWebMIdCueBlockNumber},
-
289  {UINT, kWebMIdCueCodecState},
-
290  {LIST, kWebMIdCueReference},
-
291 };
-
292 
-
293 static const ElementIdInfo kCueReferenceIds[] = {
-
294  {UINT, kWebMIdCueRefTime},
-
295 };
-
296 
-
297 static const ElementIdInfo kAttachmentsIds[] = {
-
298  {LIST, kWebMIdAttachedFile},
-
299 };
-
300 
-
301 static const ElementIdInfo kAttachedFileIds[] = {
-
302  {STRING, kWebMIdFileDescription},
-
303  {STRING, kWebMIdFileName},
-
304  {STRING, kWebMIdFileMimeType},
-
305  {BINARY, kWebMIdFileData},
-
306  {UINT, kWebMIdFileUID},
-
307 };
-
308 
-
309 static const ElementIdInfo kChaptersIds[] = {
-
310  {LIST, kWebMIdEditionEntry},
-
311 };
-
312 
-
313 static const ElementIdInfo kEditionEntryIds[] = {
-
314  {UINT, kWebMIdEditionUID},
-
315  {UINT, kWebMIdEditionFlagHidden},
-
316  {UINT, kWebMIdEditionFlagDefault},
-
317  {UINT, kWebMIdEditionFlagOrdered},
-
318  {LIST, kWebMIdChapterAtom},
-
319 };
-
320 
-
321 static const ElementIdInfo kChapterAtomIds[] = {
-
322  {UINT, kWebMIdChapterUID},
-
323  {UINT, kWebMIdChapterTimeStart},
-
324  {UINT, kWebMIdChapterTimeEnd},
-
325  {UINT, kWebMIdChapterFlagHidden},
-
326  {UINT, kWebMIdChapterFlagEnabled},
-
327  {BINARY, kWebMIdChapterSegmentUID},
-
328  {UINT, kWebMIdChapterSegmentEditionUID},
-
329  {UINT, kWebMIdChapterPhysicalEquiv},
-
330  {LIST, kWebMIdChapterTrack},
-
331  {LIST, kWebMIdChapterDisplay},
-
332  {LIST, kWebMIdChapProcess},
-
333 };
-
334 
-
335 static const ElementIdInfo kChapterTrackIds[] = {
-
336  {UINT, kWebMIdChapterTrackNumber},
-
337 };
-
338 
-
339 static const ElementIdInfo kChapterDisplayIds[] = {
-
340  {STRING, kWebMIdChapString},
-
341  {STRING, kWebMIdChapLanguage},
-
342  {STRING, kWebMIdChapCountry},
-
343 };
-
344 
-
345 static const ElementIdInfo kChapProcessIds[] = {
-
346  {UINT, kWebMIdChapProcessCodecID},
-
347  {BINARY, kWebMIdChapProcessPrivate},
-
348  {LIST, kWebMIdChapProcessCommand},
-
349 };
-
350 
-
351 static const ElementIdInfo kChapProcessCommandIds[] = {
-
352  {UINT, kWebMIdChapProcessTime},
-
353  {BINARY, kWebMIdChapProcessData},
+
285 static const ElementIdInfo kCuePointIds[] = {
+
286  {UINT, kWebMIdCueTime},
+
287  {LIST, kWebMIdCueTrackPositions},
+
288 };
+
289 
+
290 static const ElementIdInfo kCueTrackPositionsIds[] = {
+
291  {UINT, kWebMIdCueTrack},
+
292  {UINT, kWebMIdCueClusterPosition},
+
293  {UINT, kWebMIdCueBlockNumber},
+
294  {UINT, kWebMIdCueCodecState},
+
295  {LIST, kWebMIdCueReference},
+
296 };
+
297 
+
298 static const ElementIdInfo kCueReferenceIds[] = {
+
299  {UINT, kWebMIdCueRefTime},
+
300 };
+
301 
+
302 static const ElementIdInfo kAttachmentsIds[] = {
+
303  {LIST, kWebMIdAttachedFile},
+
304 };
+
305 
+
306 static const ElementIdInfo kAttachedFileIds[] = {
+
307  {STRING, kWebMIdFileDescription},
+
308  {STRING, kWebMIdFileName},
+
309  {STRING, kWebMIdFileMimeType},
+
310  {BINARY, kWebMIdFileData},
+
311  {UINT, kWebMIdFileUID},
+
312 };
+
313 
+
314 static const ElementIdInfo kChaptersIds[] = {
+
315  {LIST, kWebMIdEditionEntry},
+
316 };
+
317 
+
318 static const ElementIdInfo kEditionEntryIds[] = {
+
319  {UINT, kWebMIdEditionUID},
+
320  {UINT, kWebMIdEditionFlagHidden},
+
321  {UINT, kWebMIdEditionFlagDefault},
+
322  {UINT, kWebMIdEditionFlagOrdered},
+
323  {LIST, kWebMIdChapterAtom},
+
324 };
+
325 
+
326 static const ElementIdInfo kChapterAtomIds[] = {
+
327  {UINT, kWebMIdChapterUID},
+
328  {UINT, kWebMIdChapterTimeStart},
+
329  {UINT, kWebMIdChapterTimeEnd},
+
330  {UINT, kWebMIdChapterFlagHidden},
+
331  {UINT, kWebMIdChapterFlagEnabled},
+
332  {BINARY, kWebMIdChapterSegmentUID},
+
333  {UINT, kWebMIdChapterSegmentEditionUID},
+
334  {UINT, kWebMIdChapterPhysicalEquiv},
+
335  {LIST, kWebMIdChapterTrack},
+
336  {LIST, kWebMIdChapterDisplay},
+
337  {LIST, kWebMIdChapProcess},
+
338 };
+
339 
+
340 static const ElementIdInfo kChapterTrackIds[] = {
+
341  {UINT, kWebMIdChapterTrackNumber},
+
342 };
+
343 
+
344 static const ElementIdInfo kChapterDisplayIds[] = {
+
345  {STRING, kWebMIdChapString},
+
346  {STRING, kWebMIdChapLanguage},
+
347  {STRING, kWebMIdChapCountry},
+
348 };
+
349 
+
350 static const ElementIdInfo kChapProcessIds[] = {
+
351  {UINT, kWebMIdChapProcessCodecID},
+
352  {BINARY, kWebMIdChapProcessPrivate},
+
353  {LIST, kWebMIdChapProcessCommand},
354 };
355 
-
356 static const ElementIdInfo kTagsIds[] = {
-
357  {LIST, kWebMIdTag},
-
358 };
-
359 
-
360 static const ElementIdInfo kTagIds[] = {
-
361  {LIST, kWebMIdTargets},
-
362  {LIST, kWebMIdSimpleTag},
+
356 static const ElementIdInfo kChapProcessCommandIds[] = {
+
357  {UINT, kWebMIdChapProcessTime},
+
358  {BINARY, kWebMIdChapProcessData},
+
359 };
+
360 
+
361 static const ElementIdInfo kTagsIds[] = {
+
362  {LIST, kWebMIdTag},
363 };
364 
-
365 static const ElementIdInfo kTargetsIds[] = {
-
366  {UINT, kWebMIdTargetTypeValue},
-
367  {STRING, kWebMIdTargetType},
-
368  {UINT, kWebMIdTagTrackUID},
-
369  {UINT, kWebMIdTagEditionUID},
-
370  {UINT, kWebMIdTagChapterUID},
-
371  {UINT, kWebMIdTagAttachmentUID},
-
372 };
-
373 
-
374 static const ElementIdInfo kSimpleTagIds[] = {
-
375  {STRING, kWebMIdTagName},
-
376  {STRING, kWebMIdTagLanguage},
-
377  {UINT, kWebMIdTagDefault},
-
378  {STRING, kWebMIdTagString},
-
379  {BINARY, kWebMIdTagBinary},
-
380 };
-
381 
-
382 #define LIST_ELEMENT_INFO(id, level, id_info) \
-
383  { (id), (level), (id_info), arraysize(id_info) }
-
384 
-
385 static const ListElementInfo kListElementInfo[] = {
-
386  LIST_ELEMENT_INFO(kWebMIdCluster, 1, kClusterIds),
-
387  LIST_ELEMENT_INFO(kWebMIdEBMLHeader, 0, kEBMLHeaderIds),
-
388  LIST_ELEMENT_INFO(kWebMIdSegment, 0, kSegmentIds),
-
389  LIST_ELEMENT_INFO(kWebMIdSeekHead, 1, kSeekHeadIds),
-
390  LIST_ELEMENT_INFO(kWebMIdSeek, 2, kSeekIds),
-
391  LIST_ELEMENT_INFO(kWebMIdInfo, 1, kInfoIds),
-
392  LIST_ELEMENT_INFO(kWebMIdChapterTranslate, 2, kChapterTranslateIds),
-
393  LIST_ELEMENT_INFO(kWebMIdSilentTracks, 2, kSilentTracksIds),
-
394  LIST_ELEMENT_INFO(kWebMIdBlockGroup, 2, kBlockGroupIds),
-
395  LIST_ELEMENT_INFO(kWebMIdBlockAdditions, 3, kBlockAdditionsIds),
-
396  LIST_ELEMENT_INFO(kWebMIdBlockMore, 4, kBlockMoreIds),
-
397  LIST_ELEMENT_INFO(kWebMIdSlices, 3, kSlicesIds),
-
398  LIST_ELEMENT_INFO(kWebMIdTimeSlice, 4, kTimeSliceIds),
-
399  LIST_ELEMENT_INFO(kWebMIdTracks, 1, kTracksIds),
-
400  LIST_ELEMENT_INFO(kWebMIdTrackEntry, 2, kTrackEntryIds),
-
401  LIST_ELEMENT_INFO(kWebMIdTrackTranslate, 3, kTrackTranslateIds),
-
402  LIST_ELEMENT_INFO(kWebMIdVideo, 3, kVideoIds),
-
403  LIST_ELEMENT_INFO(kWebMIdColor, 4, kColorIds),
-
404  LIST_ELEMENT_INFO(kWebMIdAudio, 3, kAudioIds),
-
405  LIST_ELEMENT_INFO(kWebMIdTrackOperation, 3, kTrackOperationIds),
-
406  LIST_ELEMENT_INFO(kWebMIdTrackCombinePlanes, 4, kTrackCombinePlanesIds),
-
407  LIST_ELEMENT_INFO(kWebMIdTrackPlane, 5, kTrackPlaneIds),
-
408  LIST_ELEMENT_INFO(kWebMIdJoinBlocks, 4, kJoinBlocksIds),
-
409  LIST_ELEMENT_INFO(kWebMIdContentEncodings, 3, kContentEncodingsIds),
-
410  LIST_ELEMENT_INFO(kWebMIdContentEncoding, 4, kContentEncodingIds),
-
411  LIST_ELEMENT_INFO(kWebMIdContentCompression, 5, kContentCompressionIds),
-
412  LIST_ELEMENT_INFO(kWebMIdContentEncryption, 5, kContentEncryptionIds),
-
413  LIST_ELEMENT_INFO(kWebMIdContentEncAESSettings, 6, kContentEncAESSettingsIds),
-
414  LIST_ELEMENT_INFO(kWebMIdCues, 1, kCuesIds),
-
415  LIST_ELEMENT_INFO(kWebMIdCuePoint, 2, kCuePointIds),
-
416  LIST_ELEMENT_INFO(kWebMIdCueTrackPositions, 3, kCueTrackPositionsIds),
-
417  LIST_ELEMENT_INFO(kWebMIdCueReference, 4, kCueReferenceIds),
-
418  LIST_ELEMENT_INFO(kWebMIdAttachments, 1, kAttachmentsIds),
-
419  LIST_ELEMENT_INFO(kWebMIdAttachedFile, 2, kAttachedFileIds),
-
420  LIST_ELEMENT_INFO(kWebMIdChapters, 1, kChaptersIds),
-
421  LIST_ELEMENT_INFO(kWebMIdEditionEntry, 2, kEditionEntryIds),
-
422  LIST_ELEMENT_INFO(kWebMIdChapterAtom, 3, kChapterAtomIds),
-
423  LIST_ELEMENT_INFO(kWebMIdChapterTrack, 4, kChapterTrackIds),
-
424  LIST_ELEMENT_INFO(kWebMIdChapterDisplay, 4, kChapterDisplayIds),
-
425  LIST_ELEMENT_INFO(kWebMIdChapProcess, 4, kChapProcessIds),
-
426  LIST_ELEMENT_INFO(kWebMIdChapProcessCommand, 5, kChapProcessCommandIds),
-
427  LIST_ELEMENT_INFO(kWebMIdTags, 1, kTagsIds),
-
428  LIST_ELEMENT_INFO(kWebMIdTag, 2, kTagIds),
-
429  LIST_ELEMENT_INFO(kWebMIdTargets, 3, kTargetsIds),
-
430  LIST_ELEMENT_INFO(kWebMIdSimpleTag, 3, kSimpleTagIds),
-
431 };
-
432 
-
433 // Parses an element header id or size field. These fields are variable length
-
434 // encoded. The first byte indicates how many bytes the field occupies.
-
435 // |buf| - The buffer to parse.
-
436 // |size| - The number of bytes in |buf|
-
437 // |max_bytes| - The maximum number of bytes the field can be. ID fields
-
438 // set this to 4 & element size fields set this to 8. If the
-
439 // first byte indicates a larger field size than this it is a
-
440 // parser error.
-
441 // |mask_first_byte| - For element size fields the field length encoding bits
-
442 // need to be masked off. This parameter is true for
-
443 // element size fields and is false for ID field values.
-
444 //
-
445 // Returns: The number of bytes parsed on success. -1 on error.
-
446 static int ParseWebMElementHeaderField(const uint8_t* buf,
-
447  int size,
-
448  int max_bytes,
-
449  bool mask_first_byte,
-
450  int64_t* num) {
-
451  DCHECK(buf);
-
452  DCHECK(num);
-
453 
-
454  if (size < 0)
-
455  return -1;
-
456 
-
457  if (size == 0)
-
458  return 0;
+
365 static const ElementIdInfo kTagIds[] = {
+
366  {LIST, kWebMIdTargets},
+
367  {LIST, kWebMIdSimpleTag},
+
368 };
+
369 
+
370 static const ElementIdInfo kTargetsIds[] = {
+
371  {UINT, kWebMIdTargetTypeValue},
+
372  {STRING, kWebMIdTargetType},
+
373  {UINT, kWebMIdTagTrackUID},
+
374  {UINT, kWebMIdTagEditionUID},
+
375  {UINT, kWebMIdTagChapterUID},
+
376  {UINT, kWebMIdTagAttachmentUID},
+
377 };
+
378 
+
379 static const ElementIdInfo kSimpleTagIds[] = {
+
380  {STRING, kWebMIdTagName},
+
381  {STRING, kWebMIdTagLanguage},
+
382  {UINT, kWebMIdTagDefault},
+
383  {STRING, kWebMIdTagString},
+
384  {BINARY, kWebMIdTagBinary},
+
385 };
+
386 
+
387 #define LIST_ELEMENT_INFO(id, level, id_info) \
+
388  { (id), (level), (id_info), arraysize(id_info) }
+
389 
+
390 static const ListElementInfo kListElementInfo[] = {
+
391  LIST_ELEMENT_INFO(kWebMIdCluster, 1, kClusterIds),
+
392  LIST_ELEMENT_INFO(kWebMIdEBMLHeader, 0, kEBMLHeaderIds),
+
393  LIST_ELEMENT_INFO(kWebMIdSegment, 0, kSegmentIds),
+
394  LIST_ELEMENT_INFO(kWebMIdSeekHead, 1, kSeekHeadIds),
+
395  LIST_ELEMENT_INFO(kWebMIdSeek, 2, kSeekIds),
+
396  LIST_ELEMENT_INFO(kWebMIdInfo, 1, kInfoIds),
+
397  LIST_ELEMENT_INFO(kWebMIdChapterTranslate, 2, kChapterTranslateIds),
+
398  LIST_ELEMENT_INFO(kWebMIdSilentTracks, 2, kSilentTracksIds),
+
399  LIST_ELEMENT_INFO(kWebMIdBlockGroup, 2, kBlockGroupIds),
+
400  LIST_ELEMENT_INFO(kWebMIdBlockAdditions, 3, kBlockAdditionsIds),
+
401  LIST_ELEMENT_INFO(kWebMIdBlockMore, 4, kBlockMoreIds),
+
402  LIST_ELEMENT_INFO(kWebMIdSlices, 3, kSlicesIds),
+
403  LIST_ELEMENT_INFO(kWebMIdTimeSlice, 4, kTimeSliceIds),
+
404  LIST_ELEMENT_INFO(kWebMIdTracks, 1, kTracksIds),
+
405  LIST_ELEMENT_INFO(kWebMIdTrackEntry, 2, kTrackEntryIds),
+
406  LIST_ELEMENT_INFO(kWebMIdTrackTranslate, 3, kTrackTranslateIds),
+
407  LIST_ELEMENT_INFO(kWebMIdVideo, 3, kVideoIds),
+
408  LIST_ELEMENT_INFO(kWebMIdColor, 4, kColorIds),
+
409  LIST_ELEMENT_INFO(kWebMIdProjection, 4, kProjectionIds),
+
410  LIST_ELEMENT_INFO(kWebMIdAudio, 3, kAudioIds),
+
411  LIST_ELEMENT_INFO(kWebMIdTrackOperation, 3, kTrackOperationIds),
+
412  LIST_ELEMENT_INFO(kWebMIdTrackCombinePlanes, 4, kTrackCombinePlanesIds),
+
413  LIST_ELEMENT_INFO(kWebMIdTrackPlane, 5, kTrackPlaneIds),
+
414  LIST_ELEMENT_INFO(kWebMIdJoinBlocks, 4, kJoinBlocksIds),
+
415  LIST_ELEMENT_INFO(kWebMIdContentEncodings, 3, kContentEncodingsIds),
+
416  LIST_ELEMENT_INFO(kWebMIdContentEncoding, 4, kContentEncodingIds),
+
417  LIST_ELEMENT_INFO(kWebMIdContentCompression, 5, kContentCompressionIds),
+
418  LIST_ELEMENT_INFO(kWebMIdContentEncryption, 5, kContentEncryptionIds),
+
419  LIST_ELEMENT_INFO(kWebMIdContentEncAESSettings, 6, kContentEncAESSettingsIds),
+
420  LIST_ELEMENT_INFO(kWebMIdCues, 1, kCuesIds),
+
421  LIST_ELEMENT_INFO(kWebMIdCuePoint, 2, kCuePointIds),
+
422  LIST_ELEMENT_INFO(kWebMIdCueTrackPositions, 3, kCueTrackPositionsIds),
+
423  LIST_ELEMENT_INFO(kWebMIdCueReference, 4, kCueReferenceIds),
+
424  LIST_ELEMENT_INFO(kWebMIdAttachments, 1, kAttachmentsIds),
+
425  LIST_ELEMENT_INFO(kWebMIdAttachedFile, 2, kAttachedFileIds),
+
426  LIST_ELEMENT_INFO(kWebMIdChapters, 1, kChaptersIds),
+
427  LIST_ELEMENT_INFO(kWebMIdEditionEntry, 2, kEditionEntryIds),
+
428  LIST_ELEMENT_INFO(kWebMIdChapterAtom, 3, kChapterAtomIds),
+
429  LIST_ELEMENT_INFO(kWebMIdChapterTrack, 4, kChapterTrackIds),
+
430  LIST_ELEMENT_INFO(kWebMIdChapterDisplay, 4, kChapterDisplayIds),
+
431  LIST_ELEMENT_INFO(kWebMIdChapProcess, 4, kChapProcessIds),
+
432  LIST_ELEMENT_INFO(kWebMIdChapProcessCommand, 5, kChapProcessCommandIds),
+
433  LIST_ELEMENT_INFO(kWebMIdTags, 1, kTagsIds),
+
434  LIST_ELEMENT_INFO(kWebMIdTag, 2, kTagIds),
+
435  LIST_ELEMENT_INFO(kWebMIdTargets, 3, kTargetsIds),
+
436  LIST_ELEMENT_INFO(kWebMIdSimpleTag, 3, kSimpleTagIds),
+
437 };
+
438 
+
439 // Parses an element header id or size field. These fields are variable length
+
440 // encoded. The first byte indicates how many bytes the field occupies.
+
441 // |buf| - The buffer to parse.
+
442 // |size| - The number of bytes in |buf|
+
443 // |max_bytes| - The maximum number of bytes the field can be. ID fields
+
444 // set this to 4 & element size fields set this to 8. If the
+
445 // first byte indicates a larger field size than this it is a
+
446 // parser error.
+
447 // |mask_first_byte| - For element size fields the field length encoding bits
+
448 // need to be masked off. This parameter is true for
+
449 // element size fields and is false for ID field values.
+
450 //
+
451 // Returns: The number of bytes parsed on success. -1 on error.
+
452 static int ParseWebMElementHeaderField(const uint8_t* buf,
+
453  int size,
+
454  int max_bytes,
+
455  bool mask_first_byte,
+
456  int64_t* num) {
+
457  DCHECK(buf);
+
458  DCHECK(num);
459 
-
460  int mask = 0x80;
-
461  uint8_t ch = buf[0];
-
462  int extra_bytes = -1;
-
463  bool all_ones = false;
-
464  for (int i = 0; i < max_bytes; ++i) {
-
465  if ((ch & mask) != 0) {
-
466  mask = ~mask & 0xff;
-
467  *num = mask_first_byte ? ch & mask : ch;
-
468  all_ones = (ch & mask) == mask;
-
469  extra_bytes = i;
-
470  break;
-
471  }
-
472  mask = 0x80 | mask >> 1;
-
473  }
-
474 
-
475  if (extra_bytes == -1)
-
476  return -1;
-
477 
-
478  // Return 0 if we need more data.
-
479  if ((1 + extra_bytes) > size)
-
480  return 0;
-
481 
-
482  int bytes_used = 1;
+
460  if (size < 0)
+
461  return -1;
+
462 
+
463  if (size == 0)
+
464  return 0;
+
465 
+
466  int mask = 0x80;
+
467  uint8_t ch = buf[0];
+
468  int extra_bytes = -1;
+
469  bool all_ones = false;
+
470  for (int i = 0; i < max_bytes; ++i) {
+
471  if ((ch & mask) != 0) {
+
472  mask = ~mask & 0xff;
+
473  *num = mask_first_byte ? ch & mask : ch;
+
474  all_ones = (ch & mask) == mask;
+
475  extra_bytes = i;
+
476  break;
+
477  }
+
478  mask = 0x80 | mask >> 1;
+
479  }
+
480 
+
481  if (extra_bytes == -1)
+
482  return -1;
483 
-
484  for (int i = 0; i < extra_bytes; ++i) {
-
485  ch = buf[bytes_used++];
-
486  all_ones &= (ch == 0xff);
-
487  *num = (*num << 8) | ch;
-
488  }
+
484  // Return 0 if we need more data.
+
485  if ((1 + extra_bytes) > size)
+
486  return 0;
+
487 
+
488  int bytes_used = 1;
489 
-
490  if (all_ones)
-
491  *num = std::numeric_limits<int64_t>::max();
-
492 
-
493  return bytes_used;
-
494 }
+
490  for (int i = 0; i < extra_bytes; ++i) {
+
491  ch = buf[bytes_used++];
+
492  all_ones &= (ch == 0xff);
+
493  *num = (*num << 8) | ch;
+
494  }
495 
-
496 int WebMParseElementHeader(const uint8_t* buf,
-
497  int size,
-
498  int* id,
-
499  int64_t* element_size) {
-
500  DCHECK(buf);
-
501  DCHECK_GE(size, 0);
-
502  DCHECK(id);
-
503  DCHECK(element_size);
-
504 
-
505  if (size == 0)
-
506  return 0;
-
507 
-
508  int64_t tmp = 0;
-
509  int num_id_bytes = ParseWebMElementHeaderField(buf, size, 4, false, &tmp);
+
496  if (all_ones)
+
497  *num = std::numeric_limits<int64_t>::max();
+
498 
+
499  return bytes_used;
+
500 }
+
501 
+
502 int WebMParseElementHeader(const uint8_t* buf,
+
503  int size,
+
504  int* id,
+
505  int64_t* element_size) {
+
506  DCHECK(buf);
+
507  DCHECK_GE(size, 0);
+
508  DCHECK(id);
+
509  DCHECK(element_size);
510 
-
511  if (num_id_bytes <= 0)
-
512  return num_id_bytes;
+
511  if (size == 0)
+
512  return 0;
513 
-
514  if (tmp == std::numeric_limits<int64_t>::max())
-
515  tmp = kWebMReservedId;
+
514  int64_t tmp = 0;
+
515  int num_id_bytes = ParseWebMElementHeaderField(buf, size, 4, false, &tmp);
516 
-
517  *id = static_cast<int>(tmp);
-
518 
-
519  int num_size_bytes = ParseWebMElementHeaderField(buf + num_id_bytes,
-
520  size - num_id_bytes,
-
521  8, true, &tmp);
+
517  if (num_id_bytes <= 0)
+
518  return num_id_bytes;
+
519 
+
520  if (tmp == std::numeric_limits<int64_t>::max())
+
521  tmp = kWebMReservedId;
522 
-
523  if (num_size_bytes <= 0)
-
524  return num_size_bytes;
-
525 
-
526  if (tmp == std::numeric_limits<int64_t>::max())
-
527  tmp = kWebMUnknownSize;
+
523  *id = static_cast<int>(tmp);
+
524 
+
525  int num_size_bytes = ParseWebMElementHeaderField(buf + num_id_bytes,
+
526  size - num_id_bytes,
+
527  8, true, &tmp);
528 
-
529  *element_size = tmp;
-
530  DVLOG(3) << "WebMParseElementHeader() : id " << std::hex << *id << std::dec
-
531  << " size " << *element_size;
-
532  return num_id_bytes + num_size_bytes;
-
533 }
+
529  if (num_size_bytes <= 0)
+
530  return num_size_bytes;
+
531 
+
532  if (tmp == std::numeric_limits<int64_t>::max())
+
533  tmp = kWebMUnknownSize;
534 
-
535 // Finds ElementType for a specific ID.
-
536 static ElementType FindIdType(int id,
-
537  const ElementIdInfo* id_info,
-
538  int id_info_count) {
-
539 
-
540  // Check for global element IDs that can be anywhere.
-
541  if (id == kWebMIdVoid || id == kWebMIdCRC32)
-
542  return SKIP;
-
543 
-
544  for (int i = 0; i < id_info_count; ++i) {
-
545  if (id == id_info[i].id_)
-
546  return id_info[i].type_;
-
547  }
-
548 
-
549  return UNKNOWN;
-
550 }
-
551 
-
552 // Finds ListElementInfo for a specific ID.
-
553 static const ListElementInfo* FindListInfo(int id) {
-
554  for (size_t i = 0; i < arraysize(kListElementInfo); ++i) {
-
555  if (id == kListElementInfo[i].id_)
-
556  return &kListElementInfo[i];
-
557  }
-
558 
-
559  return NULL;
-
560 }
-
561 
-
562 static int FindListLevel(int id) {
-
563  const ListElementInfo* list_info = FindListInfo(id);
-
564  if (list_info)
-
565  return list_info->level_;
-
566 
-
567  return -1;
-
568 }
-
569 
-
570 static int ParseUInt(const uint8_t* buf,
-
571  int size,
-
572  int id,
-
573  WebMParserClient* client) {
-
574  if ((size <= 0) || (size > 8))
-
575  return -1;
-
576 
-
577  // Read in the big-endian integer.
-
578  uint64_t value = 0;
-
579  for (int i = 0; i < size; ++i)
-
580  value = (value << 8) | buf[i];
-
581 
-
582  // We use int64_t in place of uint64_t everywhere for convenience. See this
-
583  // bug
-
584  // for more details: http://crbug.com/366750#c3
-
585  if (!base::IsValueInRangeForNumericType<int64_t>(value))
-
586  return -1;
+
535  *element_size = tmp;
+
536  DVLOG(3) << "WebMParseElementHeader() : id " << std::hex << *id << std::dec
+
537  << " size " << *element_size;
+
538  return num_id_bytes + num_size_bytes;
+
539 }
+
540 
+
541 // Finds ElementType for a specific ID.
+
542 static ElementType FindIdType(int id,
+
543  const ElementIdInfo* id_info,
+
544  int id_info_count) {
+
545 
+
546  // Check for global element IDs that can be anywhere.
+
547  if (id == kWebMIdVoid || id == kWebMIdCRC32)
+
548  return SKIP;
+
549 
+
550  for (int i = 0; i < id_info_count; ++i) {
+
551  if (id == id_info[i].id_)
+
552  return id_info[i].type_;
+
553  }
+
554 
+
555  return UNKNOWN;
+
556 }
+
557 
+
558 // Finds ListElementInfo for a specific ID.
+
559 static const ListElementInfo* FindListInfo(int id) {
+
560  for (size_t i = 0; i < arraysize(kListElementInfo); ++i) {
+
561  if (id == kListElementInfo[i].id_)
+
562  return &kListElementInfo[i];
+
563  }
+
564 
+
565  return NULL;
+
566 }
+
567 
+
568 static int FindListLevel(int id) {
+
569  const ListElementInfo* list_info = FindListInfo(id);
+
570  if (list_info)
+
571  return list_info->level_;
+
572 
+
573  return -1;
+
574 }
+
575 
+
576 static int ParseUInt(const uint8_t* buf,
+
577  int size,
+
578  int id,
+
579  WebMParserClient* client) {
+
580  if ((size <= 0) || (size > 8))
+
581  return -1;
+
582 
+
583  // Read in the big-endian integer.
+
584  uint64_t value = 0;
+
585  for (int i = 0; i < size; ++i)
+
586  value = (value << 8) | buf[i];
587 
-
588  if (!client->OnUInt(id, value))
-
589  return -1;
-
590 
-
591  return size;
-
592 }
+
588  // We use int64_t in place of uint64_t everywhere for convenience. See this
+
589  // bug
+
590  // for more details: http://crbug.com/366750#c3
+
591  if (!base::IsValueInRangeForNumericType<int64_t>(value))
+
592  return -1;
593 
-
594 static int ParseFloat(const uint8_t* buf,
-
595  int size,
-
596  int id,
-
597  WebMParserClient* client) {
-
598  if ((size != 4) && (size != 8))
-
599  return -1;
-
600 
-
601  double value = -1;
-
602 
-
603  // Read the bytes from big-endian form into a native endian integer.
-
604  int64_t tmp = 0;
-
605  for (int i = 0; i < size; ++i)
-
606  tmp = (tmp << 8) | buf[i];
-
607 
-
608  // Use a union to convert the integer bit pattern into a floating point
-
609  // number.
-
610  if (size == 4) {
-
611  union {
-
612  int32_t src;
-
613  float dst;
-
614  } tmp2;
-
615  tmp2.src = static_cast<int32_t>(tmp);
-
616  value = tmp2.dst;
-
617  } else if (size == 8) {
-
618  union {
-
619  int64_t src;
-
620  double dst;
-
621  } tmp2;
-
622  tmp2.src = tmp;
-
623  value = tmp2.dst;
-
624  } else {
-
625  return -1;
-
626  }
-
627 
-
628  if (!client->OnFloat(id, value))
-
629  return -1;
-
630 
-
631  return size;
-
632 }
+
594  if (!client->OnUInt(id, value))
+
595  return -1;
+
596 
+
597  return size;
+
598 }
+
599 
+
600 static int ParseFloat(const uint8_t* buf,
+
601  int size,
+
602  int id,
+
603  WebMParserClient* client) {
+
604  if ((size != 4) && (size != 8))
+
605  return -1;
+
606 
+
607  double value = -1;
+
608 
+
609  // Read the bytes from big-endian form into a native endian integer.
+
610  int64_t tmp = 0;
+
611  for (int i = 0; i < size; ++i)
+
612  tmp = (tmp << 8) | buf[i];
+
613 
+
614  // Use a union to convert the integer bit pattern into a floating point
+
615  // number.
+
616  if (size == 4) {
+
617  union {
+
618  int32_t src;
+
619  float dst;
+
620  } tmp2;
+
621  tmp2.src = static_cast<int32_t>(tmp);
+
622  value = tmp2.dst;
+
623  } else if (size == 8) {
+
624  union {
+
625  int64_t src;
+
626  double dst;
+
627  } tmp2;
+
628  tmp2.src = tmp;
+
629  value = tmp2.dst;
+
630  } else {
+
631  return -1;
+
632  }
633 
-
634 static int ParseBinary(const uint8_t* buf,
-
635  int size,
-
636  int id,
-
637  WebMParserClient* client) {
-
638  return client->OnBinary(id, buf, size) ? size : -1;
-
639 }
-
640 
-
641 static int ParseString(const uint8_t* buf,
-
642  int size,
-
643  int id,
-
644  WebMParserClient* client) {
-
645  const uint8_t* end = static_cast<const uint8_t*>(memchr(buf, '\0', size));
-
646  int length = (end != NULL) ? static_cast<int>(end - buf) : size;
-
647  std::string str(reinterpret_cast<const char*>(buf), length);
-
648  return client->OnString(id, str) ? size : -1;
-
649 }
-
650 
-
651 static int ParseNonListElement(ElementType type,
-
652  int id,
-
653  int64_t element_size,
-
654  const uint8_t* buf,
-
655  int size,
-
656  WebMParserClient* client) {
-
657  DCHECK_GE(size, element_size);
-
658 
-
659  int result = -1;
-
660  switch(type) {
-
661  case LIST:
-
662  NOTIMPLEMENTED();
-
663  result = -1;
-
664  break;
-
665  case UINT:
-
666  result = ParseUInt(buf, element_size, id, client);
-
667  break;
-
668  case FLOAT:
-
669  result = ParseFloat(buf, element_size, id, client);
+
634  if (!client->OnFloat(id, value))
+
635  return -1;
+
636 
+
637  return size;
+
638 }
+
639 
+
640 static int ParseBinary(const uint8_t* buf,
+
641  int size,
+
642  int id,
+
643  WebMParserClient* client) {
+
644  return client->OnBinary(id, buf, size) ? size : -1;
+
645 }
+
646 
+
647 static int ParseString(const uint8_t* buf,
+
648  int size,
+
649  int id,
+
650  WebMParserClient* client) {
+
651  const uint8_t* end = static_cast<const uint8_t*>(memchr(buf, '\0', size));
+
652  int length = (end != NULL) ? static_cast<int>(end - buf) : size;
+
653  std::string str(reinterpret_cast<const char*>(buf), length);
+
654  return client->OnString(id, str) ? size : -1;
+
655 }
+
656 
+
657 static int ParseNonListElement(ElementType type,
+
658  int id,
+
659  int64_t element_size,
+
660  const uint8_t* buf,
+
661  int size,
+
662  WebMParserClient* client) {
+
663  DCHECK_GE(size, element_size);
+
664 
+
665  int result = -1;
+
666  switch(type) {
+
667  case LIST:
+
668  NOTIMPLEMENTED();
+
669  result = -1;
670  break;
-
671  case BINARY:
-
672  result = ParseBinary(buf, element_size, id, client);
+
671  case UINT:
+
672  result = ParseUInt(buf, element_size, id, client);
673  break;
-
674  case STRING:
-
675  result = ParseString(buf, element_size, id, client);
+
674  case FLOAT:
+
675  result = ParseFloat(buf, element_size, id, client);
676  break;
-
677  case SKIP:
-
678  result = element_size;
+
677  case BINARY:
+
678  result = ParseBinary(buf, element_size, id, client);
679  break;
-
680  default:
-
681  DVLOG(1) << "Unhandled ID type " << type;
-
682  return -1;
-
683  };
-
684 
-
685  DCHECK_LE(result, size);
-
686  return result;
-
687 }
-
688 
-
689 WebMParserClient::WebMParserClient() {}
-
690 WebMParserClient::~WebMParserClient() {}
-
691 
-
692 WebMParserClient* WebMParserClient::OnListStart(int id) {
-
693  DVLOG(1) << "Unexpected list element start with ID " << std::hex << id;
-
694  return NULL;
-
695 }
-
696 
-
697 bool WebMParserClient::OnListEnd(int id) {
-
698  DVLOG(1) << "Unexpected list element end with ID " << std::hex << id;
-
699  return false;
-
700 }
-
701 
-
702 bool WebMParserClient::OnUInt(int id, int64_t val) {
-
703  DVLOG(1) << "Unexpected unsigned integer element with ID " << std::hex << id;
-
704  return false;
-
705 }
-
706 
-
707 bool WebMParserClient::OnFloat(int id, double val) {
-
708  DVLOG(1) << "Unexpected float element with ID " << std::hex << id;
-
709  return false;
-
710 }
-
711 
-
712 bool WebMParserClient::OnBinary(int id, const uint8_t* data, int size) {
-
713  DVLOG(1) << "Unexpected binary element with ID " << std::hex << id;
-
714  return false;
-
715 }
-
716 
-
717 bool WebMParserClient::OnString(int id, const std::string& str) {
-
718  DVLOG(1) << "Unexpected string element with ID " << std::hex << id;
-
719  return false;
-
720 }
-
721 
- -
723  : state_(NEED_LIST_HEADER),
-
724  root_id_(id),
-
725  root_level_(FindListLevel(id)),
-
726  root_client_(client) {
-
727  DCHECK_GE(root_level_, 0);
-
728  DCHECK(client);
-
729 }
-
730 
-
731 WebMListParser::~WebMListParser() {}
-
732 
- -
734  ChangeState(NEED_LIST_HEADER);
-
735  list_state_stack_.clear();
-
736 }
-
737 
-
738 int WebMListParser::Parse(const uint8_t* buf, int size) {
-
739  DCHECK(buf);
-
740 
-
741  if (size < 0 || state_ == PARSE_ERROR || state_ == DONE_PARSING_LIST)
-
742  return -1;
+
680  case STRING:
+
681  result = ParseString(buf, element_size, id, client);
+
682  break;
+
683  case SKIP:
+
684  result = element_size;
+
685  break;
+
686  default:
+
687  DVLOG(1) << "Unhandled ID type " << type;
+
688  return -1;
+
689  };
+
690 
+
691  DCHECK_LE(result, size);
+
692  return result;
+
693 }
+
694 
+
695 WebMParserClient::WebMParserClient() {}
+
696 WebMParserClient::~WebMParserClient() {}
+
697 
+
698 WebMParserClient* WebMParserClient::OnListStart(int id) {
+
699  DVLOG(1) << "Unexpected list element start with ID " << std::hex << id;
+
700  return NULL;
+
701 }
+
702 
+
703 bool WebMParserClient::OnListEnd(int id) {
+
704  DVLOG(1) << "Unexpected list element end with ID " << std::hex << id;
+
705  return false;
+
706 }
+
707 
+
708 bool WebMParserClient::OnUInt(int id, int64_t val) {
+
709  DVLOG(1) << "Unexpected unsigned integer element with ID " << std::hex << id;
+
710  return false;
+
711 }
+
712 
+
713 bool WebMParserClient::OnFloat(int id, double val) {
+
714  DVLOG(1) << "Unexpected float element with ID " << std::hex << id;
+
715  return false;
+
716 }
+
717 
+
718 bool WebMParserClient::OnBinary(int id, const uint8_t* data, int size) {
+
719  DVLOG(1) << "Unexpected binary element with ID " << std::hex << id;
+
720  return false;
+
721 }
+
722 
+
723 bool WebMParserClient::OnString(int id, const std::string& str) {
+
724  DVLOG(1) << "Unexpected string element with ID " << std::hex << id;
+
725  return false;
+
726 }
+
727 
+ +
729  : state_(NEED_LIST_HEADER),
+
730  root_id_(id),
+
731  root_level_(FindListLevel(id)),
+
732  root_client_(client) {
+
733  DCHECK_GE(root_level_, 0);
+
734  DCHECK(client);
+
735 }
+
736 
+
737 WebMListParser::~WebMListParser() {}
+
738 
+ +
740  ChangeState(NEED_LIST_HEADER);
+
741  list_state_stack_.clear();
+
742 }
743 
-
744  if (size == 0)
-
745  return 0;
+
744 int WebMListParser::Parse(const uint8_t* buf, int size) {
+
745  DCHECK(buf);
746 
-
747  const uint8_t* cur = buf;
-
748  int cur_size = size;
-
749  int bytes_parsed = 0;
-
750 
-
751  while (cur_size > 0 && state_ != PARSE_ERROR && state_ != DONE_PARSING_LIST) {
-
752  int element_id = 0;
-
753  int64_t element_size = 0;
-
754  int result = WebMParseElementHeader(cur, cur_size, &element_id,
-
755  &element_size);
+
747  if (size < 0 || state_ == PARSE_ERROR || state_ == DONE_PARSING_LIST)
+
748  return -1;
+
749 
+
750  if (size == 0)
+
751  return 0;
+
752 
+
753  const uint8_t* cur = buf;
+
754  int cur_size = size;
+
755  int bytes_parsed = 0;
756 
-
757  if (result < 0)
-
758  return result;
-
759 
-
760  if (result == 0)
-
761  return bytes_parsed;
+
757  while (cur_size > 0 && state_ != PARSE_ERROR && state_ != DONE_PARSING_LIST) {
+
758  int element_id = 0;
+
759  int64_t element_size = 0;
+
760  int result = WebMParseElementHeader(cur, cur_size, &element_id,
+
761  &element_size);
762 
-
763  switch(state_) {
-
764  case NEED_LIST_HEADER: {
-
765  if (element_id != root_id_) {
-
766  ChangeState(PARSE_ERROR);
-
767  return -1;
-
768  }
-
769 
-
770  // Only allow Segment & Cluster to have an unknown size.
-
771  if (element_size == kWebMUnknownSize &&
-
772  (element_id != kWebMIdSegment) &&
-
773  (element_id != kWebMIdCluster)) {
-
774  ChangeState(PARSE_ERROR);
-
775  return -1;
-
776  }
-
777 
-
778  ChangeState(INSIDE_LIST);
-
779  if (!OnListStart(root_id_, element_size))
-
780  return -1;
-
781 
-
782  break;
-
783  }
-
784 
-
785  case INSIDE_LIST: {
-
786  int header_size = result;
-
787  const uint8_t* element_data = cur + header_size;
-
788  int element_data_size = cur_size - header_size;
-
789 
-
790  if (element_size < element_data_size)
-
791  element_data_size = element_size;
-
792 
-
793  result = ParseListElement(header_size, element_id, element_size,
-
794  element_data, element_data_size);
+
763  if (result < 0)
+
764  return result;
+
765 
+
766  if (result == 0)
+
767  return bytes_parsed;
+
768 
+
769  switch(state_) {
+
770  case NEED_LIST_HEADER: {
+
771  if (element_id != root_id_) {
+
772  ChangeState(PARSE_ERROR);
+
773  return -1;
+
774  }
+
775 
+
776  // Only allow Segment & Cluster to have an unknown size.
+
777  if (element_size == kWebMUnknownSize &&
+
778  (element_id != kWebMIdSegment) &&
+
779  (element_id != kWebMIdCluster)) {
+
780  ChangeState(PARSE_ERROR);
+
781  return -1;
+
782  }
+
783 
+
784  ChangeState(INSIDE_LIST);
+
785  if (!OnListStart(root_id_, element_size))
+
786  return -1;
+
787 
+
788  break;
+
789  }
+
790 
+
791  case INSIDE_LIST: {
+
792  int header_size = result;
+
793  const uint8_t* element_data = cur + header_size;
+
794  int element_data_size = cur_size - header_size;
795 
-
796  DCHECK_LE(result, header_size + element_data_size);
-
797  if (result < 0) {
-
798  ChangeState(PARSE_ERROR);
-
799  return -1;
-
800  }
+
796  if (element_size < element_data_size)
+
797  element_data_size = element_size;
+
798 
+
799  result = ParseListElement(header_size, element_id, element_size,
+
800  element_data, element_data_size);
801 
-
802  if (result == 0)
-
803  return bytes_parsed;
-
804 
-
805  break;
-
806  }
-
807  case DONE_PARSING_LIST:
-
808  case PARSE_ERROR:
-
809  // Shouldn't be able to get here.
-
810  NOTIMPLEMENTED();
+
802  DCHECK_LE(result, header_size + element_data_size);
+
803  if (result < 0) {
+
804  ChangeState(PARSE_ERROR);
+
805  return -1;
+
806  }
+
807 
+
808  if (result == 0)
+
809  return bytes_parsed;
+
810 
811  break;
-
812  }
-
813 
-
814  cur += result;
-
815  cur_size -= result;
-
816  bytes_parsed += result;
-
817  }
-
818 
-
819  return (state_ == PARSE_ERROR) ? -1 : bytes_parsed;
-
820 }
-
821 
- -
823  return state_ == DONE_PARSING_LIST;
-
824 }
-
825 
-
826 void WebMListParser::ChangeState(State new_state) {
-
827  state_ = new_state;
-
828 }
-
829 
-
830 int WebMListParser::ParseListElement(int header_size,
-
831  int id,
-
832  int64_t element_size,
-
833  const uint8_t* data,
-
834  int size) {
-
835  DCHECK_GT(list_state_stack_.size(), 0u);
-
836 
-
837  ListState& list_state = list_state_stack_.back();
-
838  DCHECK(list_state.element_info_);
-
839 
-
840  const ListElementInfo* element_info = list_state.element_info_;
-
841  ElementType id_type =
-
842  FindIdType(id, element_info->id_info_, element_info->id_info_count_);
-
843 
-
844  // Unexpected ID.
-
845  if (id_type == UNKNOWN) {
-
846  if (list_state.size_ != kWebMUnknownSize ||
-
847  !IsSiblingOrAncestor(list_state.id_, id)) {
-
848  DVLOG(1) << "No ElementType info for ID 0x" << std::hex << id;
-
849  return -1;
-
850  }
-
851 
-
852  // We've reached the end of a list of unknown size. Update the size now that
-
853  // we know it and dispatch the end of list calls.
-
854  list_state.size_ = list_state.bytes_parsed_;
-
855 
-
856  if (!OnListEnd())
-
857  return -1;
-
858 
-
859  // Check to see if all open lists have ended.
-
860  if (list_state_stack_.size() == 0)
-
861  return 0;
-
862 
-
863  list_state = list_state_stack_.back();
-
864  }
-
865 
-
866  // Make sure the whole element can fit inside the current list.
-
867  int64_t total_element_size = header_size + element_size;
-
868  if (list_state.size_ != kWebMUnknownSize &&
-
869  list_state.size_ < list_state.bytes_parsed_ + total_element_size) {
-
870  return -1;
-
871  }
-
872 
-
873  if (id_type == LIST) {
-
874  list_state.bytes_parsed_ += header_size;
-
875 
-
876  if (!OnListStart(id, element_size))
-
877  return -1;
-
878  return header_size;
-
879  }
-
880 
-
881  // Make sure we have the entire element before trying to parse a non-list
-
882  // element.
-
883  if (size < element_size)
-
884  return 0;
-
885 
-
886  int bytes_parsed = ParseNonListElement(id_type, id, element_size,
-
887  data, size, list_state.client_);
-
888  DCHECK_LE(bytes_parsed, size);
-
889 
-
890  // Return if an error occurred or we need more data.
-
891  // Note: bytes_parsed is 0 for a successful parse of a size 0 element. We
-
892  // need to check the element_size to disambiguate the "need more data" case
-
893  // from a successful parse.
-
894  if (bytes_parsed < 0 || (bytes_parsed == 0 && element_size != 0))
-
895  return bytes_parsed;
-
896 
-
897  int result = header_size + bytes_parsed;
-
898  list_state.bytes_parsed_ += result;
-
899 
-
900  // See if we have reached the end of the current list.
-
901  if (list_state.bytes_parsed_ == list_state.size_) {
-
902  if (!OnListEnd())
-
903  return -1;
-
904  }
+
812  }
+
813  case DONE_PARSING_LIST:
+
814  case PARSE_ERROR:
+
815  // Shouldn't be able to get here.
+
816  NOTIMPLEMENTED();
+
817  break;
+
818  }
+
819 
+
820  cur += result;
+
821  cur_size -= result;
+
822  bytes_parsed += result;
+
823  }
+
824 
+
825  return (state_ == PARSE_ERROR) ? -1 : bytes_parsed;
+
826 }
+
827 
+ +
829  return state_ == DONE_PARSING_LIST;
+
830 }
+
831 
+
832 void WebMListParser::ChangeState(State new_state) {
+
833  state_ = new_state;
+
834 }
+
835 
+
836 int WebMListParser::ParseListElement(int header_size,
+
837  int id,
+
838  int64_t element_size,
+
839  const uint8_t* data,
+
840  int size) {
+
841  DCHECK_GT(list_state_stack_.size(), 0u);
+
842 
+
843  ListState& list_state = list_state_stack_.back();
+
844  DCHECK(list_state.element_info_);
+
845 
+
846  const ListElementInfo* element_info = list_state.element_info_;
+
847  ElementType id_type =
+
848  FindIdType(id, element_info->id_info_, element_info->id_info_count_);
+
849 
+
850  // Unexpected ID.
+
851  if (id_type == UNKNOWN) {
+
852  if (list_state.size_ != kWebMUnknownSize ||
+
853  !IsSiblingOrAncestor(list_state.id_, id)) {
+
854  DVLOG(1) << "No ElementType info for ID 0x" << std::hex << id;
+
855  return -1;
+
856  }
+
857 
+
858  // We've reached the end of a list of unknown size. Update the size now that
+
859  // we know it and dispatch the end of list calls.
+
860  list_state.size_ = list_state.bytes_parsed_;
+
861 
+
862  if (!OnListEnd())
+
863  return -1;
+
864 
+
865  // Check to see if all open lists have ended.
+
866  if (list_state_stack_.size() == 0)
+
867  return 0;
+
868 
+
869  list_state = list_state_stack_.back();
+
870  }
+
871 
+
872  // Make sure the whole element can fit inside the current list.
+
873  int64_t total_element_size = header_size + element_size;
+
874  if (list_state.size_ != kWebMUnknownSize &&
+
875  list_state.size_ < list_state.bytes_parsed_ + total_element_size) {
+
876  return -1;
+
877  }
+
878 
+
879  if (id_type == LIST) {
+
880  list_state.bytes_parsed_ += header_size;
+
881 
+
882  if (!OnListStart(id, element_size))
+
883  return -1;
+
884  return header_size;
+
885  }
+
886 
+
887  // Make sure we have the entire element before trying to parse a non-list
+
888  // element.
+
889  if (size < element_size)
+
890  return 0;
+
891 
+
892  int bytes_parsed = ParseNonListElement(id_type, id, element_size,
+
893  data, size, list_state.client_);
+
894  DCHECK_LE(bytes_parsed, size);
+
895 
+
896  // Return if an error occurred or we need more data.
+
897  // Note: bytes_parsed is 0 for a successful parse of a size 0 element. We
+
898  // need to check the element_size to disambiguate the "need more data" case
+
899  // from a successful parse.
+
900  if (bytes_parsed < 0 || (bytes_parsed == 0 && element_size != 0))
+
901  return bytes_parsed;
+
902 
+
903  int result = header_size + bytes_parsed;
+
904  list_state.bytes_parsed_ += result;
905 
-
906  return result;
-
907 }
-
908 
-
909 bool WebMListParser::OnListStart(int id, int64_t size) {
-
910  const ListElementInfo* element_info = FindListInfo(id);
-
911  if (!element_info)
-
912  return false;
-
913 
-
914  int current_level =
-
915  root_level_ + static_cast<int>(list_state_stack_.size()) - 1;
-
916  if (current_level + 1 != element_info->level_)
-
917  return false;
-
918 
-
919  WebMParserClient* current_list_client = NULL;
-
920  if (!list_state_stack_.empty()) {
-
921  // Make sure the new list doesn't go past the end of the current list.
-
922  ListState current_list_state = list_state_stack_.back();
-
923  if (current_list_state.size_ != kWebMUnknownSize &&
-
924  current_list_state.size_ < current_list_state.bytes_parsed_ + size)
-
925  return false;
-
926  current_list_client = current_list_state.client_;
-
927  } else {
-
928  current_list_client = root_client_;
-
929  }
-
930 
-
931  WebMParserClient* new_list_client = current_list_client->OnListStart(id);
-
932  if (!new_list_client)
-
933  return false;
-
934 
-
935  ListState new_list_state = { id, size, 0, element_info, new_list_client };
-
936  list_state_stack_.push_back(new_list_state);
-
937 
-
938  if (size == 0)
-
939  return OnListEnd();
+
906  // See if we have reached the end of the current list.
+
907  if (list_state.bytes_parsed_ == list_state.size_) {
+
908  if (!OnListEnd())
+
909  return -1;
+
910  }
+
911 
+
912  return result;
+
913 }
+
914 
+
915 bool WebMListParser::OnListStart(int id, int64_t size) {
+
916  const ListElementInfo* element_info = FindListInfo(id);
+
917  if (!element_info)
+
918  return false;
+
919 
+
920  int current_level =
+
921  root_level_ + static_cast<int>(list_state_stack_.size()) - 1;
+
922  if (current_level + 1 != element_info->level_)
+
923  return false;
+
924 
+
925  WebMParserClient* current_list_client = NULL;
+
926  if (!list_state_stack_.empty()) {
+
927  // Make sure the new list doesn't go past the end of the current list.
+
928  ListState current_list_state = list_state_stack_.back();
+
929  if (current_list_state.size_ != kWebMUnknownSize &&
+
930  current_list_state.size_ < current_list_state.bytes_parsed_ + size)
+
931  return false;
+
932  current_list_client = current_list_state.client_;
+
933  } else {
+
934  current_list_client = root_client_;
+
935  }
+
936 
+
937  WebMParserClient* new_list_client = current_list_client->OnListStart(id);
+
938  if (!new_list_client)
+
939  return false;
940 
-
941  return true;
-
942 }
+
941  ListState new_list_state = { id, size, 0, element_info, new_list_client };
+
942  list_state_stack_.push_back(new_list_state);
943 
-
944 bool WebMListParser::OnListEnd() {
-
945  int lists_ended = 0;
-
946  for (; !list_state_stack_.empty(); ++lists_ended) {
-
947  const ListState& list_state = list_state_stack_.back();
-
948  int64_t bytes_parsed = list_state.bytes_parsed_;
-
949  int id = list_state.id_;
-
950 
-
951  if (bytes_parsed != list_state.size_)
-
952  break;
-
953 
-
954  list_state_stack_.pop_back();
-
955 
-
956  WebMParserClient* client = NULL;
-
957  if (!list_state_stack_.empty()) {
-
958  // Update the bytes_parsed_ for the parent element.
-
959  list_state_stack_.back().bytes_parsed_ += bytes_parsed;
-
960  client = list_state_stack_.back().client_;
-
961  } else {
-
962  client = root_client_;
-
963  }
-
964 
-
965  if (!client->OnListEnd(id))
-
966  return false;
-
967  }
-
968 
-
969  DCHECK_GE(lists_ended, 1);
+
944  if (size == 0)
+
945  return OnListEnd();
+
946 
+
947  return true;
+
948 }
+
949 
+
950 bool WebMListParser::OnListEnd() {
+
951  int lists_ended = 0;
+
952  for (; !list_state_stack_.empty(); ++lists_ended) {
+
953  const ListState& list_state = list_state_stack_.back();
+
954  int64_t bytes_parsed = list_state.bytes_parsed_;
+
955  int id = list_state.id_;
+
956 
+
957  if (bytes_parsed != list_state.size_)
+
958  break;
+
959 
+
960  list_state_stack_.pop_back();
+
961 
+
962  WebMParserClient* client = NULL;
+
963  if (!list_state_stack_.empty()) {
+
964  // Update the bytes_parsed_ for the parent element.
+
965  list_state_stack_.back().bytes_parsed_ += bytes_parsed;
+
966  client = list_state_stack_.back().client_;
+
967  } else {
+
968  client = root_client_;
+
969  }
970 
-
971  if (list_state_stack_.empty())
-
972  ChangeState(DONE_PARSING_LIST);
-
973 
-
974  return true;
-
975 }
+
971  if (!client->OnListEnd(id))
+
972  return false;
+
973  }
+
974 
+
975  DCHECK_GE(lists_ended, 1);
976 
-
977 bool WebMListParser::IsSiblingOrAncestor(int id_a, int id_b) const {
-
978  DCHECK((id_a == kWebMIdSegment) || (id_a == kWebMIdCluster));
+
977  if (list_state_stack_.empty())
+
978  ChangeState(DONE_PARSING_LIST);
979 
-
980  if (id_a == kWebMIdCluster) {
-
981  // kWebMIdCluster siblings.
-
982  for (size_t i = 0; i < arraysize(kSegmentIds); i++) {
-
983  if (kSegmentIds[i].id_ == id_b)
-
984  return true;
-
985  }
-
986  }
-
987 
-
988  // kWebMIdSegment siblings.
-
989  return ((id_b == kWebMIdSegment) || (id_b == kWebMIdEBMLHeader));
-
990 }
-
991 
-
992 } // namespace media
-
993 } // namespace shaka
-
void Reset()
Resets the state of the parser so it can start parsing a new list.
Definition: webm_parser.cc:733
-
WebMListParser(int id, WebMParserClient *client)
Definition: webm_parser.cc:722
-
int Parse(const uint8_t *buf, int size)
Definition: webm_parser.cc:738
- +
980  return true;
+
981 }
+
982 
+
983 bool WebMListParser::IsSiblingOrAncestor(int id_a, int id_b) const {
+
984  DCHECK((id_a == kWebMIdSegment) || (id_a == kWebMIdCluster));
+
985 
+
986  if (id_a == kWebMIdCluster) {
+
987  // kWebMIdCluster siblings.
+
988  for (size_t i = 0; i < arraysize(kSegmentIds); i++) {
+
989  if (kSegmentIds[i].id_ == id_b)
+
990  return true;
+
991  }
+
992  }
+
993 
+
994  // kWebMIdSegment siblings.
+
995  return ((id_b == kWebMIdSegment) || (id_b == kWebMIdEBMLHeader));
+
996 }
+
997 
+
998 } // namespace media
+
999 } // namespace shaka
+
void Reset()
Resets the state of the parser so it can start parsing a new list.
Definition: webm_parser.cc:739
+
WebMListParser(int id, WebMParserClient *client)
Definition: webm_parser.cc:728
+
int Parse(const uint8_t *buf, int size)
Definition: webm_parser.cc:744
+
All the methods that are virtual are virtual for mocking.
diff --git a/docs/d3/dbc/seek__head_8cc_source.html b/docs/d3/dbc/seek__head_8cc_source.html index 55dee40d49..ca6a29d0db 100644 --- a/docs/d3/dbc/seek__head_8cc_source.html +++ b/docs/d3/dbc/seek__head_8cc_source.html @@ -187,7 +187,7 @@ $(function() { diff --git a/docs/d3/dbe/demuxer_8cc_source.html b/docs/d3/dbe/demuxer_8cc_source.html index 226e0f2832..58488997b5 100644 --- a/docs/d3/dbe/demuxer_8cc_source.html +++ b/docs/d3/dbe/demuxer_8cc_source.html @@ -473,7 +473,7 @@ $(function() {
402 } // namespace shaka
virtual bool Open()=0
Internal open. Should not be used directly.
virtual int64_t Read(void *buffer, uint64_t length)=0
-
static bool IsLocalRegularFile(const char *file_name)
Definition: file.cc:374
+
static bool IsLocalRegularFile(const char *file_name)
Definition: file.cc:377
virtual bool Close()=0
void Update(Status new_status)
Definition: status.cc:78
@@ -492,7 +492,7 @@ $(function() { 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 8f94aba71b..e934067de1 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 @@ -163,7 +163,7 @@ Additional Inherited Members diff --git a/docs/d3/dc0/structshaka_1_1DecryptionParams-members.html b/docs/d3/dc0/structshaka_1_1DecryptionParams-members.html index 8a74217ace..ebb4646109 100644 --- a/docs/d3/dc0/structshaka_1_1DecryptionParams-members.html +++ b/docs/d3/dc0/structshaka_1_1DecryptionParams-members.html @@ -78,7 +78,7 @@ $(function() { 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 da8702f5c9..39a435039a 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 @@ -244,7 +244,7 @@ Additional Inherited Members diff --git a/docs/d3/dd0/classshaka_1_1MpdNotifier.html b/docs/d3/dd0/classshaka_1_1MpdNotifier.html index 1d8d2876db..05cfff16f1 100644 --- a/docs/d3/dd0/classshaka_1_1MpdNotifier.html +++ b/docs/d3/dd0/classshaka_1_1MpdNotifier.html @@ -112,6 +112,8 @@ Public Member Functions   MpdType mpd_type () const   +bool use_segment_list () const + 

Detailed Description

Interface for publish/subscribe publisher class which notifies MpdBuilder of media-related events.

@@ -559,6 +561,34 @@ Public Member Functions

Implemented in shaka::SimpleMpdNotifier.

+
+ + +

◆ use_segment_list()

+ +
+
+ + + + + +
+ + + + + + + +
bool shaka::MpdNotifier::use_segment_list () const
+
+inline
+
+
Returns
The value of dash_force_segment_list flag
+ +

Definition at line 117 of file mpd_notifier.h.

+

The documentation for this class was generated from the following file:
    @@ -567,7 +597,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 a68733318f..43600444a1 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 @@ -158,7 +158,7 @@ std::vector< FourCC > < diff --git a/docs/d3/dd7/id3__tag_8h_source.html b/docs/d3/dd7/id3__tag_8h_source.html index 08f24d7df6..7fe8b26c79 100644 --- a/docs/d3/dd7/id3__tag_8h_source.html +++ b/docs/d3/dd7/id3__tag_8h_source.html @@ -129,7 +129,7 @@ $(function() { diff --git a/docs/d3/ddf/classshaka_1_1media_1_1PlayReadyPsshGenerator.html b/docs/d3/ddf/classshaka_1_1media_1_1PlayReadyPsshGenerator.html index 7c91890bfa..685397091d 100644 --- a/docs/d3/ddf/classshaka_1_1media_1_1PlayReadyPsshGenerator.html +++ b/docs/d3/ddf/classshaka_1_1media_1_1PlayReadyPsshGenerator.html @@ -139,7 +139,7 @@ Public Member Functions diff --git a/docs/d3/de2/structshaka_1_1FileCloser.html b/docs/d3/de2/structshaka_1_1FileCloser.html index 93e1122ff6..92709e5947 100644 --- a/docs/d3/de2/structshaka_1_1FileCloser.html +++ b/docs/d3/de2/structshaka_1_1FileCloser.html @@ -91,7 +91,7 @@ void operator() ( diff --git a/docs/d3/de4/seek__head_8h_source.html b/docs/d3/de4/seek__head_8h_source.html index 16bfc0efba..4e44c2552a 100644 --- a/docs/d3/de4/seek__head_8h_source.html +++ b/docs/d3/de4/seek__head_8h_source.html @@ -136,7 +136,7 @@ $(function() { diff --git a/docs/d3/de6/job__manager_8h_source.html b/docs/d3/de6/job__manager_8h_source.html index 50670c39cf..feaba85c4a 100644 --- a/docs/d3/de6/job__manager_8h_source.html +++ b/docs/d3/de6/job__manager_8h_source.html @@ -183,7 +183,7 @@ $(function() { 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 3f39c4897f..3fefcf734c 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 @@ -101,7 +101,7 @@ $(function() { 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 015162d4e4..b1cee350bd 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 @@ -95,7 +95,7 @@ $(function() { diff --git a/docs/d3/deb/packed__audio__writer_8cc_source.html b/docs/d3/deb/packed__audio__writer_8cc_source.html index a553b73250..2e3aea6377 100644 --- a/docs/d3/deb/packed__audio__writer_8cc_source.html +++ b/docs/d3/deb/packed__audio__writer_8cc_source.html @@ -222,7 +222,7 @@ $(function() { diff --git a/docs/d3/df1/box__reader_8cc_source.html b/docs/d3/df1/box__reader_8cc_source.html index 78bfcc523b..a7cf14008c 100644 --- a/docs/d3/df1/box__reader_8cc_source.html +++ b/docs/d3/df1/box__reader_8cc_source.html @@ -236,7 +236,7 @@ $(function() { diff --git a/docs/d3/df4/structshaka_1_1media_1_1CueEventInfo-members.html b/docs/d3/df4/structshaka_1_1media_1_1CueEventInfo-members.html index b22f847fc4..12f0f631bf 100644 --- a/docs/d3/df4/structshaka_1_1media_1_1CueEventInfo-members.html +++ b/docs/d3/df4/structshaka_1_1media_1_1CueEventInfo-members.html @@ -76,7 +76,7 @@ $(function() { diff --git a/docs/d3/dfb/classshaka_1_1media_1_1CueAlignmentHandler-members.html b/docs/d3/dfb/classshaka_1_1media_1_1CueAlignmentHandler-members.html index e481f1de6e..b35cc9631a 100644 --- a/docs/d3/dfb/classshaka_1_1media_1_1CueAlignmentHandler-members.html +++ b/docs/d3/dfb/classshaka_1_1media_1_1CueAlignmentHandler-members.html @@ -98,7 +98,7 @@ $(function() { diff --git a/docs/d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html b/docs/d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html index 4b1358ed3f..d34c90485f 100644 --- a/docs/d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html +++ b/docs/d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html @@ -279,7 +279,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 7665b7fc9d..44a9feba4b 100644 --- a/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html +++ b/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html @@ -244,7 +244,7 @@ $(function() { diff --git a/docs/d4/d07/classshaka_1_1media_1_1AesEncryptorFactory.html b/docs/d4/d07/classshaka_1_1media_1_1AesEncryptorFactory.html index 787b786587..2c0de5f656 100644 --- a/docs/d4/d07/classshaka_1_1media_1_1AesEncryptorFactory.html +++ b/docs/d4/d07/classshaka_1_1media_1_1AesEncryptorFactory.html @@ -95,7 +95,7 @@ virtual std::unique_ptr< 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 430e084be1..9e52069417 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 @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/d4/d0b/classshaka_1_1media_1_1TextTrack.html b/docs/d4/d0b/classshaka_1_1media_1_1TextTrack.html index 7d5042af55..448ad1a800 100644 --- a/docs/d4/d0b/classshaka_1_1media_1_1TextTrack.html +++ b/docs/d4/d0b/classshaka_1_1media_1_1TextTrack.html @@ -88,7 +88,7 @@ virtual void addWebVTTCue< diff --git a/docs/d4/d0c/text__readers_8h_source.html b/docs/d4/d0c/text__readers_8h_source.html index 0458098137..322eee15fa 100644 --- a/docs/d4/d0c/text__readers_8h_source.html +++ b/docs/d4/d0c/text__readers_8h_source.html @@ -140,7 +140,7 @@ $(function() { diff --git a/docs/d4/d15/gflags__hex__bytes_8cc_source.html b/docs/d4/d15/gflags__hex__bytes_8cc_source.html index b8b24b8025..8c6f580655 100644 --- a/docs/d4/d15/gflags__hex__bytes_8cc_source.html +++ b/docs/d4/d15/gflags__hex__bytes_8cc_source.html @@ -98,7 +98,7 @@ $(function() { 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 be9d640e5f..9f4295cf56 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 @@ -97,7 +97,7 @@ int16_t media_rate_fractio diff --git a/docs/d4/d1e/webvtt__utils_8h_source.html b/docs/d4/d1e/webvtt__utils_8h_source.html index 018d93836f..a6bec4374c 100644 --- a/docs/d4/d1e/webvtt__utils_8h_source.html +++ b/docs/d4/d1e/webvtt__utils_8h_source.html @@ -113,7 +113,7 @@ $(function() { diff --git a/docs/d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html b/docs/d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html index ab1a45aa60..4b25e4a544 100644 --- a/docs/d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html +++ b/docs/d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html @@ -217,7 +217,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 40dbecd4c6..96df55e62f 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d4/d22/structshaka_1_1media_1_1SegmentEventInfo-members.html b/docs/d4/d22/structshaka_1_1media_1_1SegmentEventInfo-members.html index 115f3ba894..0fbbba3ec1 100644 --- a/docs/d4/d22/structshaka_1_1media_1_1SegmentEventInfo-members.html +++ b/docs/d4/d22/structshaka_1_1media_1_1SegmentEventInfo-members.html @@ -78,7 +78,7 @@ $(function() { 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 cb9e5a91b3..f290373b4a 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 @@ -93,7 +93,7 @@ $(function() { 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 1fd246e49c..4071e684ab 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 @@ -154,7 +154,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 c739651c92..f9cbdfd0f5 100644 --- a/docs/d4/d37/io__cache_8cc_source.html +++ b/docs/d4/d37/io__cache_8cc_source.html @@ -229,7 +229,7 @@ $(function() { 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 73779a5460..143bf13731 100644 --- a/docs/d4/d3a/structshaka_1_1media_1_1H264Sps-members.html +++ b/docs/d4/d3a/structshaka_1_1media_1_1H264Sps-members.html @@ -121,7 +121,7 @@ $(function() { diff --git a/docs/d4/d40/sample__aes__ec3__cryptor_8h_source.html b/docs/d4/d40/sample__aes__ec3__cryptor_8h_source.html index d0f009e44f..249af57e04 100644 --- a/docs/d4/d40/sample__aes__ec3__cryptor_8h_source.html +++ b/docs/d4/d40/sample__aes__ec3__cryptor_8h_source.html @@ -117,7 +117,7 @@ $(function() { diff --git a/docs/d4/d43/classshaka_1_1media_1_1ChunkingHandler.html b/docs/d4/d43/classshaka_1_1media_1_1ChunkingHandler.html index 910f656aab..824a7be3f0 100644 --- a/docs/d4/d43/classshaka_1_1media_1_1ChunkingHandler.html +++ b/docs/d4/d43/classshaka_1_1media_1_1ChunkingHandler.html @@ -260,7 +260,7 @@ static Status 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 a751deaa67..72c618488e 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d4/d4c/structshaka_1_1media_1_1H264WeightingFactors.html b/docs/d4/d4c/structshaka_1_1media_1_1H264WeightingFactors.html index a2b7a0abd9..a97f2493c0 100644 --- a/docs/d4/d4c/structshaka_1_1media_1_1H264WeightingFactors.html +++ b/docs/d4/d4c/structshaka_1_1media_1_1H264WeightingFactors.html @@ -103,7 +103,7 @@ int chroma_offset [32] diff --git a/docs/d4/d51/ttml__muxer_8cc_source.html b/docs/d4/d51/ttml__muxer_8cc_source.html index b2c03b2df7..f5638d8105 100644 --- a/docs/d4/d51/ttml__muxer_8cc_source.html +++ b/docs/d4/d51/ttml__muxer_8cc_source.html @@ -119,7 +119,7 @@ $(function() { diff --git a/docs/d4/d56/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header-members.html b/docs/d4/d56/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header-members.html index 7ebdc56b61..36553c3c56 100644 --- a/docs/d4/d56/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header-members.html +++ b/docs/d4/d56/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header-members.html @@ -90,7 +90,7 @@ $(function() { 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 e1c67ed37a..f5399bd101 100644 --- a/docs/d4/d58/classshaka_1_1media_1_1Nalu-members.html +++ b/docs/d4/d58/classshaka_1_1media_1_1Nalu-members.html @@ -138,7 +138,7 @@ $(function() { diff --git a/docs/d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html b/docs/d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html index 17c1037a21..b6c6f3aae3 100644 --- a/docs/d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html +++ b/docs/d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html @@ -90,7 +90,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 2845299b96..cea5441d58 100644 --- a/docs/d4/d5c/classshaka_1_1media_1_1DecryptConfig-members.html +++ b/docs/d4/d5c/classshaka_1_1media_1_1DecryptConfig-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/d4/d60/structshaka_1_1media_1_1TextRegion.html b/docs/d4/d60/structshaka_1_1media_1_1TextRegion.html index 708db7a2f0..e5667b6bf4 100644 --- a/docs/d4/d60/structshaka_1_1media_1_1TextRegion.html +++ b/docs/d4/d60/structshaka_1_1media_1_1TextRegion.html @@ -157,7 +157,7 @@ Public Attributes diff --git a/docs/d4/d61/ad__cue__generator__flags_8h_source.html b/docs/d4/d61/ad__cue__generator__flags_8h_source.html index 4e52739a10..fcb8ef5793 100644 --- a/docs/d4/d61/ad__cue__generator__flags_8h_source.html +++ b/docs/d4/d61/ad__cue__generator__flags_8h_source.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/d4/d6b/classshaka_1_1media_1_1ttml_1_1TtmlMuxer-members.html b/docs/d4/d6b/classshaka_1_1media_1_1ttml_1_1TtmlMuxer-members.html index f2cb0965b3..266ede78c1 100644 --- a/docs/d4/d6b/classshaka_1_1media_1_1ttml_1_1TtmlMuxer-members.html +++ b/docs/d4/d6b/classshaka_1_1media_1_1ttml_1_1TtmlMuxer-members.html @@ -114,7 +114,7 @@ $(function() { diff --git a/docs/d4/d70/structshaka_1_1SegmentInfo-members.html b/docs/d4/d70/structshaka_1_1SegmentInfo-members.html index cfa0b54751..6ecc678ec9 100644 --- a/docs/d4/d70/structshaka_1_1SegmentInfo-members.html +++ b/docs/d4/d70/structshaka_1_1SegmentInfo-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/d4/d87/nalu__reader_8h_source.html b/docs/d4/d87/nalu__reader_8h_source.html index 3ddfe742be..4bf0195716 100644 --- a/docs/d4/d87/nalu__reader_8h_source.html +++ b/docs/d4/d87/nalu__reader_8h_source.html @@ -303,7 +303,7 @@ $(function() { diff --git a/docs/d4/d87/text__sample_8cc_source.html b/docs/d4/d87/text__sample_8cc_source.html index c69c9e9233..1bb2893e9a 100644 --- a/docs/d4/d87/text__sample_8cc_source.html +++ b/docs/d4/d87/text__sample_8cc_source.html @@ -113,7 +113,7 @@ $(function() { diff --git a/docs/d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html b/docs/d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html index face9fe40f..23e2c33392 100644 --- a/docs/d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html +++ b/docs/d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html @@ -158,7 +158,7 @@ void  diff --git a/docs/d4/d8c/classshaka_1_1BandwidthEstimator-members.html b/docs/d4/d8c/classshaka_1_1BandwidthEstimator-members.html index 67346ab6ac..33af1200b2 100644 --- a/docs/d4/d8c/classshaka_1_1BandwidthEstimator-members.html +++ b/docs/d4/d8c/classshaka_1_1BandwidthEstimator-members.html @@ -80,7 +80,7 @@ $(function() { 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 30075f81ec..9662892f2b 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 @@ -154,7 +154,7 @@ Additional Inherited Members diff --git a/docs/d4/d9b/classshaka_1_1media_1_1MediaHandlerTestBase.html b/docs/d4/d9b/classshaka_1_1media_1_1MediaHandlerTestBase.html index 02e73cf0b3..eb63677841 100644 --- a/docs/d4/d9b/classshaka_1_1media_1_1MediaHandlerTestBase.html +++ b/docs/d4/d9b/classshaka_1_1media_1_1MediaHandlerTestBase.html @@ -143,7 +143,7 @@ std::unique_ptr< diff --git a/docs/d4/d9f/structshaka_1_1media_1_1TextFragmentStyle.html b/docs/d4/d9f/structshaka_1_1media_1_1TextFragmentStyle.html index c9c6112e7d..5dfca79deb 100644 --- a/docs/d4/d9f/structshaka_1_1media_1_1TextFragmentStyle.html +++ b/docs/d4/d9f/structshaka_1_1media_1_1TextFragmentStyle.html @@ -94,7 +94,7 @@ base::Optional< bool >  diff --git a/docs/d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html b/docs/d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html index 70a36e927c..543a2b97b7 100644 --- a/docs/d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html +++ b/docs/d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html @@ -403,7 +403,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 c923906994..315f30de1f 100644 --- a/docs/d4/da7/segmenter__test__base_8cc_source.html +++ b/docs/d4/da7/segmenter__test__base_8cc_source.html @@ -293,7 +293,7 @@ $(function() { diff --git a/docs/d4/da9/subtitle__composer_8cc_source.html b/docs/d4/da9/subtitle__composer_8cc_source.html index a219012725..8e660e2a9e 100644 --- a/docs/d4/da9/subtitle__composer_8cc_source.html +++ b/docs/d4/da9/subtitle__composer_8cc_source.html @@ -327,7 +327,7 @@ $(function() { 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 5f6289fc3c..1650d88454 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 @@ -240,7 +240,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 d2248cd4a4..bc32aa6521 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 @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/d4/db2/cluster__builder_8h_source.html b/docs/d4/db2/cluster__builder_8h_source.html index c80e5b65e9..d60e981700 100644 --- a/docs/d4/db2/cluster__builder_8h_source.html +++ b/docs/d4/db2/cluster__builder_8h_source.html @@ -164,7 +164,7 @@ $(function() { diff --git a/docs/d4/db4/classshaka_1_1MpdNotifierFactory.html b/docs/d4/db4/classshaka_1_1MpdNotifierFactory.html index 9910dda351..2eafa07179 100644 --- a/docs/d4/db4/classshaka_1_1MpdNotifierFactory.html +++ b/docs/d4/db4/classshaka_1_1MpdNotifierFactory.html @@ -91,7 +91,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 26527a9183..27aef66f17 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 @@ -175,7 +175,7 @@ Additional Inherited Members diff --git a/docs/d4/dcb/classshaka_1_1UdpFile.html b/docs/d4/dcb/classshaka_1_1UdpFile.html index eb6a628941..6bc8b2d00a 100644 --- a/docs/d4/dcb/classshaka_1_1UdpFile.html +++ b/docs/d4/dcb/classshaka_1_1UdpFile.html @@ -461,7 +461,7 @@ Additional Inherited Members diff --git a/docs/d4/dd3/bit__reader_8h_source.html b/docs/d4/dd3/bit__reader_8h_source.html index fd88ab5f91..debb8de4a2 100644 --- a/docs/d4/dd3/bit__reader_8h_source.html +++ b/docs/d4/dd3/bit__reader_8h_source.html @@ -175,7 +175,7 @@ $(function() { 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 c2dd229611..915db52012 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 @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/d4/dd6/raw__key__source_8cc_source.html b/docs/d4/dd6/raw__key__source_8cc_source.html index c15f869084..f0ca763f6b 100644 --- a/docs/d4/dd6/raw__key__source_8cc_source.html +++ b/docs/d4/dd6/raw__key__source_8cc_source.html @@ -229,7 +229,7 @@ $(function() { diff --git a/docs/d4/dde/webvtt__util_8h_source.html b/docs/d4/dde/webvtt__util_8h_source.html index c5526250f1..ce5aa28eb1 100644 --- a/docs/d4/dde/webvtt__util_8h_source.html +++ b/docs/d4/dde/webvtt__util_8h_source.html @@ -107,7 +107,7 @@ $(function() { 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 058700f8f9..2360dc29c7 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 @@ -163,7 +163,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 cf21d26d96..38e4aa92d7 100644 --- a/docs/d4/de6/classshaka_1_1media_1_1ProgressListener.html +++ b/docs/d4/de6/classshaka_1_1media_1_1ProgressListener.html @@ -126,7 +126,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 70df19c28b..fb759da72e 100644 --- a/docs/d4/de7/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html +++ b/docs/d4/de7/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html @@ -88,14 +88,15 @@ $(function() { OnMediaStart(const MuxerOptions &muxer_options, const StreamInfo &stream_info, uint32_t time_scale, ContainerType container_type) overrideshaka::media::VodMediaInfoDumpMuxerListenervirtual OnNewSegment(const std::string &file_name, int64_t start_time, int64_t duration, uint64_t segment_file_size) overrideshaka::media::VodMediaInfoDumpMuxerListenervirtual OnSampleDurationReady(uint32_t sample_duration) overrideshaka::media::VodMediaInfoDumpMuxerListenervirtual - VodMediaInfoDumpMuxerListener(const std::string &output_file_name) (defined in shaka::media::VodMediaInfoDumpMuxerListener)shaka::media::VodMediaInfoDumpMuxerListener - WriteMediaInfoToFile(const MediaInfo &media_info, const std::string &output_file_path)shaka::media::VodMediaInfoDumpMuxerListenerstatic - ~MuxerListener()=default (defined in shaka::media::MuxerListener)shaka::media::MuxerListenervirtual - ~VodMediaInfoDumpMuxerListener() override (defined in shaka::media::VodMediaInfoDumpMuxerListener)shaka::media::VodMediaInfoDumpMuxerListener + set_use_segment_list(bool value) (defined in shaka::media::VodMediaInfoDumpMuxerListener)shaka::media::VodMediaInfoDumpMuxerListenerinline + VodMediaInfoDumpMuxerListener(const std::string &output_file_name, bool use_segment_list) (defined in shaka::media::VodMediaInfoDumpMuxerListener)shaka::media::VodMediaInfoDumpMuxerListener + WriteMediaInfoToFile(const MediaInfo &media_info, const std::string &output_file_path)shaka::media::VodMediaInfoDumpMuxerListenerstatic + ~MuxerListener()=default (defined in shaka::media::MuxerListener)shaka::media::MuxerListenervirtual + ~VodMediaInfoDumpMuxerListener() override (defined in shaka::media::VodMediaInfoDumpMuxerListener)shaka::media::VodMediaInfoDumpMuxerListener diff --git a/docs/d4/dec/hls__flags_8h_source.html b/docs/d4/dec/hls__flags_8h_source.html index 023b4f2e22..c709c7f8a6 100644 --- a/docs/d4/dec/hls__flags_8h_source.html +++ b/docs/d4/dec/hls__flags_8h_source.html @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/d4/df5/request__signer_8cc_source.html b/docs/d4/df5/request__signer_8cc_source.html index 7a020b6180..b6a3007fe5 100644 --- a/docs/d4/df5/request__signer_8cc_source.html +++ b/docs/d4/df5/request__signer_8cc_source.html @@ -149,7 +149,7 @@ $(function() { 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 c6571a37ca..7c95ab16d6 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 @@ -175,7 +175,7 @@ Additional Inherited Members diff --git a/docs/d4/dfa/structshaka_1_1media_1_1RgbaColor.html b/docs/d4/dfa/structshaka_1_1media_1_1RgbaColor.html index e706d53b9f..dfacdb04a2 100644 --- a/docs/d4/dfa/structshaka_1_1media_1_1RgbaColor.html +++ b/docs/d4/dfa/structshaka_1_1media_1_1RgbaColor.html @@ -107,7 +107,7 @@ uint8_t a 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 26cd629374..3cd1e6cb14 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 @@ -154,7 +154,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 c573042f0a..4908321145 100644 --- a/docs/d4/dfd/structshaka_1_1media_1_1H265Sps.html +++ b/docs/d4/dfd/structshaka_1_1media_1_1H265Sps.html @@ -237,7 +237,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 f527cf6b28..282c1d4258 100644 --- a/docs/d4/dff/webm__media__parser_8cc_source.html +++ b/docs/d4/dff/webm__media__parser_8cc_source.html @@ -345,7 +345,7 @@ $(function() { diff --git a/docs/d5/d00/common__pssh__generator_8h_source.html b/docs/d5/d00/common__pssh__generator_8h_source.html index 704fae0bbb..246c75323a 100644 --- a/docs/d5/d00/common__pssh__generator_8h_source.html +++ b/docs/d5/d00/common__pssh__generator_8h_source.html @@ -114,7 +114,7 @@ $(function() { 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 8126bbed21..01bf290e8a 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 @@ -163,7 +163,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 284c0029da..253c75e476 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 @@ -154,7 +154,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 3ebe0face0..16206c4df5 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 @@ -154,7 +154,7 @@ Additional Inherited Members diff --git a/docs/d5/d0f/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes-members.html b/docs/d5/d0f/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes-members.html index 90a1a7fd10..a1b9dd3ae1 100644 --- a/docs/d5/d0f/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes-members.html +++ b/docs/d5/d0f/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes-members.html @@ -81,7 +81,7 @@ $(function() { 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 49ce34fac4..8f4fd92715 100644 --- a/docs/d5/d11/classshaka_1_1media_1_1WebMInfoParser-members.html +++ b/docs/d5/d11/classshaka_1_1media_1_1WebMInfoParser-members.html @@ -84,7 +84,7 @@ $(function() { 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 7885038fed..8580783309 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 @@ -166,7 +166,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 434cb5727e..2a8e1340ca 100644 --- a/docs/d5/d13/classshaka_1_1media_1_1ESDescriptor.html +++ b/docs/d5/d13/classshaka_1_1media_1_1ESDescriptor.html @@ -129,7 +129,7 @@ void  diff --git a/docs/d5/d15/producer__consumer__queue_8h_source.html b/docs/d5/d15/producer__consumer__queue_8h_source.html index a1c569d8f0..727295c123 100644 --- a/docs/d5/d15/producer__consumer__queue_8h_source.html +++ b/docs/d5/d15/producer__consumer__queue_8h_source.html @@ -357,7 +357,7 @@ $(function() { diff --git a/docs/d5/d1a/classshaka_1_1Packager-members.html b/docs/d5/d1a/classshaka_1_1Packager-members.html index 56c546115d..a67d6075e9 100644 --- a/docs/d5/d1a/classshaka_1_1Packager-members.html +++ b/docs/d5/d1a/classshaka_1_1Packager-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/d5/d1a/ts__section_8h_source.html b/docs/d5/d1a/ts__section_8h_source.html index 86b8d00341..ff9f71f9b0 100644 --- a/docs/d5/d1a/ts__section_8h_source.html +++ b/docs/d5/d1a/ts__section_8h_source.html @@ -117,7 +117,7 @@ $(function() { diff --git a/docs/d5/d1d/playready__pssh__generator_8cc_source.html b/docs/d5/d1d/playready__pssh__generator_8cc_source.html index c599087766..f23cc57cc2 100644 --- a/docs/d5/d1d/playready__pssh__generator_8cc_source.html +++ b/docs/d5/d1d/playready__pssh__generator_8cc_source.html @@ -275,7 +275,7 @@ $(function() { 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 b2a65f408f..f388210f06 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 @@ -101,7 +101,7 @@ $(function() { diff --git a/docs/d5/d27/key__fetcher_8cc_source.html b/docs/d5/d27/key__fetcher_8cc_source.html index 3dda55fa11..a6981d4d28 100644 --- a/docs/d5/d27/key__fetcher_8cc_source.html +++ b/docs/d5/d27/key__fetcher_8cc_source.html @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/d5/d28/webvtt__utils_8cc_source.html b/docs/d5/d28/webvtt__utils_8cc_source.html index 47dedebf76..8e35779a80 100644 --- a/docs/d5/d28/webvtt__utils_8cc_source.html +++ b/docs/d5/d28/webvtt__utils_8cc_source.html @@ -80,312 +80,338 @@ $(function() {
    9 #include <ctype.h>
    10 #include <inttypes.h>
    11 
    -
    12 #include <regex>
    +
    12 #include <algorithm>
    13 #include <unordered_set>
    14 
    15 #include "packager/base/logging.h"
    16 #include "packager/base/strings/string_number_conversions.h"
    -
    17 #include "packager/base/strings/stringprintf.h"
    -
    18 
    -
    19 namespace shaka {
    -
    20 namespace media {
    -
    21 
    -
    22 namespace {
    -
    23 
    -
    24 bool GetTotalMilliseconds(uint64_t hours,
    -
    25  uint64_t minutes,
    -
    26  uint64_t seconds,
    -
    27  uint64_t ms,
    -
    28  uint64_t* out) {
    -
    29  DCHECK(out);
    -
    30  if (minutes > 59 || seconds > 59 || ms > 999) {
    -
    31  VLOG(1) << "Hours:" << hours << " Minutes:" << minutes
    -
    32  << " Seconds:" << seconds << " MS:" << ms
    -
    33  << " shoud have never made it to GetTotalMilliseconds";
    -
    34  return false;
    -
    35  }
    -
    36  *out = 60 * 60 * 1000 * hours + 60 * 1000 * minutes + 1000 * seconds + ms;
    -
    37  return true;
    -
    38 }
    -
    39 
    -
    40 enum class StyleTagKind {
    -
    41  kUnderline,
    -
    42  kBold,
    -
    43  kItalic,
    -
    44 };
    -
    45 
    -
    46 std::string GetOpenTag(StyleTagKind tag) {
    -
    47  switch (tag) {
    -
    48  case StyleTagKind::kUnderline:
    -
    49  return "<u>";
    -
    50  case StyleTagKind::kBold:
    -
    51  return "<b>";
    -
    52  case StyleTagKind::kItalic:
    -
    53  return "<i>";
    -
    54  }
    -
    55  return ""; // Not reached, but Windows doesn't like NOTREACHED.
    -
    56 }
    -
    57 
    -
    58 std::string GetCloseTag(StyleTagKind tag) {
    -
    59  switch (tag) {
    -
    60  case StyleTagKind::kUnderline:
    -
    61  return "</u>";
    -
    62  case StyleTagKind::kBold:
    -
    63  return "</b>";
    -
    64  case StyleTagKind::kItalic:
    -
    65  return "</i>";
    -
    66  }
    -
    67  return ""; // Not reached, but Windows doesn't like NOTREACHED.
    -
    68 }
    -
    69 
    -
    70 std::string WriteFragment(const TextFragment& fragment,
    -
    71  std::list<StyleTagKind>* tags) {
    -
    72  std::string ret;
    -
    73  size_t local_tag_count = 0;
    -
    74  auto has = [tags](StyleTagKind tag) {
    -
    75  return std::find(tags->begin(), tags->end(), tag) != tags->end();
    -
    76  };
    -
    77  auto push_tag = [tags, &local_tag_count, &has](StyleTagKind tag) {
    -
    78  if (has(tag)) {
    -
    79  return std::string();
    -
    80  }
    -
    81  tags->push_back(tag);
    -
    82  local_tag_count++;
    -
    83  return GetOpenTag(tag);
    -
    84  };
    -
    85 
    -
    86  if ((fragment.style.underline == false && has(StyleTagKind::kUnderline)) ||
    -
    87  (fragment.style.bold == false && has(StyleTagKind::kBold)) ||
    -
    88  (fragment.style.italic == false && has(StyleTagKind::kItalic))) {
    -
    89  LOG(WARNING) << "WebVTT output doesn't support disabling "
    -
    90  "underline/bold/italic within a cue";
    +
    17 #include "packager/base/strings/string_util.h"
    +
    18 #include "packager/base/strings/stringprintf.h"
    +
    19 
    +
    20 namespace shaka {
    +
    21 namespace media {
    +
    22 
    +
    23 namespace {
    +
    24 
    +
    25 bool GetTotalMilliseconds(uint64_t hours,
    +
    26  uint64_t minutes,
    +
    27  uint64_t seconds,
    +
    28  uint64_t ms,
    +
    29  uint64_t* out) {
    +
    30  DCHECK(out);
    +
    31  if (minutes > 59 || seconds > 59 || ms > 999) {
    +
    32  VLOG(1) << "Hours:" << hours << " Minutes:" << minutes
    +
    33  << " Seconds:" << seconds << " MS:" << ms
    +
    34  << " shoud have never made it to GetTotalMilliseconds";
    +
    35  return false;
    +
    36  }
    +
    37  *out = 60 * 60 * 1000 * hours + 60 * 1000 * minutes + 1000 * seconds + ms;
    +
    38  return true;
    +
    39 }
    +
    40 
    +
    41 enum class StyleTagKind {
    +
    42  kUnderline,
    +
    43  kBold,
    +
    44  kItalic,
    +
    45 };
    +
    46 
    +
    47 std::string GetOpenTag(StyleTagKind tag) {
    +
    48  switch (tag) {
    +
    49  case StyleTagKind::kUnderline:
    +
    50  return "<u>";
    +
    51  case StyleTagKind::kBold:
    +
    52  return "<b>";
    +
    53  case StyleTagKind::kItalic:
    +
    54  return "<i>";
    +
    55  }
    +
    56  return ""; // Not reached, but Windows doesn't like NOTREACHED.
    +
    57 }
    +
    58 
    +
    59 std::string GetCloseTag(StyleTagKind tag) {
    +
    60  switch (tag) {
    +
    61  case StyleTagKind::kUnderline:
    +
    62  return "</u>";
    +
    63  case StyleTagKind::kBold:
    +
    64  return "</b>";
    +
    65  case StyleTagKind::kItalic:
    +
    66  return "</i>";
    +
    67  }
    +
    68  return ""; // Not reached, but Windows doesn't like NOTREACHED.
    +
    69 }
    +
    70 
    +
    71 bool IsWhitespace(char c) {
    +
    72  return c == '\t' || c == '\r' || c == '\n' || c == ' ';
    +
    73 }
    +
    74 
    +
    75 // Replace consecutive whitespaces with a single whitespace.
    +
    76 std::string CollapseWhitespace(const std::string& data) {
    +
    77  std::string output;
    +
    78  output.resize(data.size());
    +
    79  size_t chars_written = 0;
    +
    80  bool in_whitespace = false;
    +
    81  for (char c : data) {
    +
    82  if (IsWhitespace(c)) {
    +
    83  if (!in_whitespace) {
    +
    84  in_whitespace = true;
    +
    85  output[chars_written++] = ' ';
    +
    86  }
    +
    87  } else {
    +
    88  in_whitespace = false;
    +
    89  output[chars_written++] = c;
    +
    90  }
    91  }
    -
    92 
    -
    93  if (fragment.newline) {
    -
    94  // Newlines represent separate WebVTT cues. So close the existing tags to
    -
    95  // be nice and re-open them on the new line.
    -
    96  for (auto it = tags->rbegin(); it != tags->rend(); it++) {
    -
    97  ret += GetCloseTag(*it);
    -
    98  }
    -
    99  ret += "\n";
    -
    100  for (const auto tag : *tags) {
    -
    101  ret += GetOpenTag(tag);
    -
    102  }
    -
    103  } else {
    -
    104  if (fragment.style.underline == true) {
    -
    105  ret += push_tag(StyleTagKind::kUnderline);
    +
    92  output.resize(chars_written);
    +
    93  return output;
    +
    94 }
    +
    95 
    +
    96 std::string WriteFragment(const TextFragment& fragment,
    +
    97  std::list<StyleTagKind>* tags) {
    +
    98  std::string ret;
    +
    99  size_t local_tag_count = 0;
    +
    100  auto has = [tags](StyleTagKind tag) {
    +
    101  return std::find(tags->begin(), tags->end(), tag) != tags->end();
    +
    102  };
    +
    103  auto push_tag = [tags, &local_tag_count, &has](StyleTagKind tag) {
    +
    104  if (has(tag)) {
    +
    105  return std::string();
    106  }
    -
    107  if (fragment.style.bold == true) {
    -
    108  ret += push_tag(StyleTagKind::kBold);
    -
    109  }
    -
    110  if (fragment.style.italic == true) {
    -
    111  ret += push_tag(StyleTagKind::kItalic);
    -
    112  }
    -
    113 
    -
    114  if (!fragment.body.empty()) {
    -
    115  // Replace newlines and consecutive whitespace with a single space. If
    -
    116  // the user wanted an explicit newline, they should use the "newline"
    -
    117  // field.
    -
    118  std::regex whitespace("\\s+", std::regex_constants::ECMAScript);
    -
    119  ret += std::regex_replace(fragment.body, whitespace, std::string(" "));
    -
    120  } else {
    -
    121  for (const auto& frag : fragment.sub_fragments) {
    -
    122  ret += WriteFragment(frag, tags);
    -
    123  }
    +
    107  tags->push_back(tag);
    +
    108  local_tag_count++;
    +
    109  return GetOpenTag(tag);
    +
    110  };
    +
    111 
    +
    112  if ((fragment.style.underline == false && has(StyleTagKind::kUnderline)) ||
    +
    113  (fragment.style.bold == false && has(StyleTagKind::kBold)) ||
    +
    114  (fragment.style.italic == false && has(StyleTagKind::kItalic))) {
    +
    115  LOG(WARNING) << "WebVTT output doesn't support disabling "
    +
    116  "underline/bold/italic within a cue";
    +
    117  }
    +
    118 
    +
    119  if (fragment.newline) {
    +
    120  // Newlines represent separate WebVTT cues. So close the existing tags to
    +
    121  // be nice and re-open them on the new line.
    +
    122  for (auto it = tags->rbegin(); it != tags->rend(); it++) {
    +
    123  ret += GetCloseTag(*it);
    124  }
    -
    125 
    -
    126  // Pop all the local tags we pushed.
    -
    127  while (local_tag_count > 0) {
    -
    128  ret += GetCloseTag(tags->back());
    -
    129  tags->pop_back();
    -
    130  local_tag_count--;
    -
    131  }
    -
    132  }
    -
    133  return ret;
    -
    134 }
    -
    135 
    -
    136 } // namespace
    -
    137 
    -
    138 bool WebVttTimestampToMs(const base::StringPiece& source, uint64_t* out) {
    -
    139  DCHECK(out);
    -
    140 
    -
    141  if (source.length() < 9) {
    -
    142  LOG(WARNING) << "Timestamp '" << source << "' is mal-formed";
    -
    143  return false;
    -
    144  }
    -
    145 
    -
    146  const size_t minutes_begin = source.length() - 9;
    -
    147  const size_t seconds_begin = source.length() - 6;
    -
    148  const size_t milliseconds_begin = source.length() - 3;
    -
    149 
    -
    150  uint64_t hours = 0;
    -
    151  uint64_t minutes = 0;
    -
    152  uint64_t seconds = 0;
    -
    153  uint64_t ms = 0;
    -
    154 
    -
    155  const bool has_hours =
    -
    156  minutes_begin >= 3 && source[minutes_begin - 1] == ':' &&
    -
    157  base::StringToUint64(source.substr(0, minutes_begin - 1), &hours);
    -
    158 
    -
    159  if ((minutes_begin == 0 || has_hours) && source[seconds_begin - 1] == ':' &&
    -
    160  source[milliseconds_begin - 1] == '.' &&
    -
    161  base::StringToUint64(source.substr(minutes_begin, 2), &minutes) &&
    -
    162  base::StringToUint64(source.substr(seconds_begin, 2), &seconds) &&
    -
    163  base::StringToUint64(source.substr(milliseconds_begin, 3), &ms)) {
    -
    164  return GetTotalMilliseconds(hours, minutes, seconds, ms, out);
    -
    165  }
    -
    166 
    -
    167  LOG(WARNING) << "Timestamp '" << source << "' is mal-formed";
    -
    168  return false;
    -
    169 }
    +
    125  ret += "\n";
    +
    126  for (const auto tag : *tags) {
    +
    127  ret += GetOpenTag(tag);
    +
    128  }
    +
    129  } else {
    +
    130  if (fragment.style.underline == true) {
    +
    131  ret += push_tag(StyleTagKind::kUnderline);
    +
    132  }
    +
    133  if (fragment.style.bold == true) {
    +
    134  ret += push_tag(StyleTagKind::kBold);
    +
    135  }
    +
    136  if (fragment.style.italic == true) {
    +
    137  ret += push_tag(StyleTagKind::kItalic);
    +
    138  }
    +
    139 
    +
    140  if (!fragment.body.empty()) {
    +
    141  // Replace newlines and consecutive whitespace with a single space. If
    +
    142  // the user wanted an explicit newline, they should use the "newline"
    +
    143  // field.
    +
    144  ret += CollapseWhitespace(fragment.body);
    +
    145  } else {
    +
    146  for (const auto& frag : fragment.sub_fragments) {
    +
    147  ret += WriteFragment(frag, tags);
    +
    148  }
    +
    149  }
    +
    150 
    +
    151  // Pop all the local tags we pushed.
    +
    152  while (local_tag_count > 0) {
    +
    153  ret += GetCloseTag(tags->back());
    +
    154  tags->pop_back();
    +
    155  local_tag_count--;
    +
    156  }
    +
    157  }
    +
    158  return ret;
    +
    159 }
    +
    160 
    +
    161 } // namespace
    +
    162 
    +
    163 bool WebVttTimestampToMs(const base::StringPiece& source, uint64_t* out) {
    +
    164  DCHECK(out);
    +
    165 
    +
    166  if (source.length() < 9) {
    +
    167  LOG(WARNING) << "Timestamp '" << source << "' is mal-formed";
    +
    168  return false;
    +
    169  }
    170 
    -
    171 std::string MsToWebVttTimestamp(uint64_t ms) {
    -
    172  uint64_t remaining = ms;
    -
    173 
    -
    174  uint64_t only_ms = remaining % 1000;
    -
    175  remaining /= 1000;
    -
    176  uint64_t only_seconds = remaining % 60;
    -
    177  remaining /= 60;
    -
    178  uint64_t only_minutes = remaining % 60;
    -
    179  remaining /= 60;
    -
    180  uint64_t only_hours = remaining;
    -
    181 
    -
    182  return base::StringPrintf("%02" PRIu64 ":%02" PRIu64 ":%02" PRIu64
    -
    183  ".%03" PRIu64,
    -
    184  only_hours, only_minutes, only_seconds, only_ms);
    -
    185 }
    -
    186 
    -
    187 std::string WebVttSettingsToString(const TextSettings& settings) {
    -
    188  std::string ret;
    -
    189  if (!settings.region.empty()) {
    -
    190  ret += " region:";
    -
    191  ret += settings.region;
    -
    192  }
    -
    193  if (settings.line) {
    -
    194  switch (settings.line->type) {
    -
    195  case TextUnitType::kPercent:
    -
    196  ret += " line:";
    -
    197  ret += base::DoubleToString(settings.line->value);
    -
    198  ret += "%";
    -
    199  break;
    -
    200  case TextUnitType::kLines:
    -
    201  ret += " line:";
    -
    202  ret += base::DoubleToString(settings.line->value);
    -
    203  break;
    -
    204  case TextUnitType::kPixels:
    -
    205  LOG(WARNING) << "WebVTT doesn't support pixel line settings";
    -
    206  break;
    -
    207  }
    -
    208  }
    -
    209  if (settings.position) {
    -
    210  if (settings.position->type == TextUnitType::kPercent) {
    -
    211  ret += " position:";
    -
    212  ret += base::DoubleToString(settings.position->value);
    -
    213  ret += "%";
    -
    214  } else {
    -
    215  LOG(WARNING) << "WebVTT only supports percent position settings";
    -
    216  }
    +
    171  const size_t minutes_begin = source.length() - 9;
    +
    172  const size_t seconds_begin = source.length() - 6;
    +
    173  const size_t milliseconds_begin = source.length() - 3;
    +
    174 
    +
    175  uint64_t hours = 0;
    +
    176  uint64_t minutes = 0;
    +
    177  uint64_t seconds = 0;
    +
    178  uint64_t ms = 0;
    +
    179 
    +
    180  const bool has_hours =
    +
    181  minutes_begin >= 3 && source[minutes_begin - 1] == ':' &&
    +
    182  base::StringToUint64(source.substr(0, minutes_begin - 1), &hours);
    +
    183 
    +
    184  if ((minutes_begin == 0 || has_hours) && source[seconds_begin - 1] == ':' &&
    +
    185  source[milliseconds_begin - 1] == '.' &&
    +
    186  base::StringToUint64(source.substr(minutes_begin, 2), &minutes) &&
    +
    187  base::StringToUint64(source.substr(seconds_begin, 2), &seconds) &&
    +
    188  base::StringToUint64(source.substr(milliseconds_begin, 3), &ms)) {
    +
    189  return GetTotalMilliseconds(hours, minutes, seconds, ms, out);
    +
    190  }
    +
    191 
    +
    192  LOG(WARNING) << "Timestamp '" << source << "' is mal-formed";
    +
    193  return false;
    +
    194 }
    +
    195 
    +
    196 std::string MsToWebVttTimestamp(uint64_t ms) {
    +
    197  uint64_t remaining = ms;
    +
    198 
    +
    199  uint64_t only_ms = remaining % 1000;
    +
    200  remaining /= 1000;
    +
    201  uint64_t only_seconds = remaining % 60;
    +
    202  remaining /= 60;
    +
    203  uint64_t only_minutes = remaining % 60;
    +
    204  remaining /= 60;
    +
    205  uint64_t only_hours = remaining;
    +
    206 
    +
    207  return base::StringPrintf("%02" PRIu64 ":%02" PRIu64 ":%02" PRIu64
    +
    208  ".%03" PRIu64,
    +
    209  only_hours, only_minutes, only_seconds, only_ms);
    +
    210 }
    +
    211 
    +
    212 std::string WebVttSettingsToString(const TextSettings& settings) {
    +
    213  std::string ret;
    +
    214  if (!settings.region.empty()) {
    +
    215  ret += " region:";
    +
    216  ret += settings.region;
    217  }
    -
    218  if (settings.width) {
    -
    219  if (settings.width->type == TextUnitType::kPercent) {
    -
    220  ret += " size:";
    -
    221  ret += base::DoubleToString(settings.width->value);
    -
    222  ret += "%";
    -
    223  } else {
    -
    224  LOG(WARNING) << "WebVTT only supports percent width settings";
    -
    225  }
    -
    226  }
    -
    227  if (settings.height) {
    -
    228  LOG(WARNING) << "WebVTT doesn't support cue heights";
    -
    229  }
    -
    230  if (settings.writing_direction != WritingDirection::kHorizontal) {
    -
    231  ret += " direction:";
    -
    232  if (settings.writing_direction == WritingDirection::kVerticalGrowingLeft) {
    -
    233  ret += "rl";
    -
    234  } else {
    -
    235  ret += "lr";
    -
    236  }
    -
    237  }
    -
    238  switch (settings.text_alignment) {
    -
    239  case TextAlignment::kStart:
    -
    240  ret += " align:start";
    -
    241  break;
    -
    242  case TextAlignment::kEnd:
    -
    243  ret += " align:end";
    -
    244  break;
    -
    245  case TextAlignment::kLeft:
    -
    246  ret += " align:left";
    -
    247  break;
    -
    248  case TextAlignment::kRight:
    -
    249  ret += " align:right";
    -
    250  break;
    -
    251  case TextAlignment::kCenter:
    -
    252  break;
    -
    253  }
    -
    254 
    -
    255  if (!ret.empty()) {
    -
    256  DCHECK_EQ(ret[0], ' ');
    -
    257  ret.erase(0, 1);
    -
    258  }
    -
    259  return ret;
    -
    260 }
    -
    261 
    -
    262 std::string WebVttFragmentToString(const TextFragment& fragment) {
    -
    263  std::list<StyleTagKind> tags;
    -
    264  return WriteFragment(fragment, &tags);
    -
    265 }
    -
    266 
    -
    267 std::string WebVttGetPreamble(const TextStreamInfo& stream_info) {
    -
    268  std::string ret;
    -
    269  for (const auto& pair : stream_info.regions()) {
    -
    270  if (!ret.empty()) {
    -
    271  ret += "\n\n";
    -
    272  }
    -
    273 
    -
    274  if (pair.second.width.type != TextUnitType::kPercent ||
    -
    275  pair.second.height.type != TextUnitType::kLines ||
    -
    276  pair.second.window_anchor_x.type != TextUnitType::kPercent ||
    -
    277  pair.second.window_anchor_y.type != TextUnitType::kPercent ||
    -
    278  pair.second.region_anchor_x.type != TextUnitType::kPercent ||
    -
    279  pair.second.region_anchor_y.type != TextUnitType::kPercent) {
    -
    280  LOG(WARNING) << "Unsupported unit type in WebVTT region";
    -
    281  continue;
    -
    282  }
    -
    283 
    -
    284  base::StringAppendF(
    -
    285  &ret,
    -
    286  "REGION\n"
    -
    287  "id:%s\n"
    -
    288  "width:%f%%\n"
    -
    289  "lines:%d\n"
    -
    290  "viewportanchor:%f%%,%f%%\n"
    -
    291  "regionanchor:%f%%,%f%%",
    -
    292  pair.first.c_str(), pair.second.width.value,
    -
    293  static_cast<int>(pair.second.height.value),
    -
    294  pair.second.window_anchor_x.value, pair.second.window_anchor_y.value,
    -
    295  pair.second.region_anchor_x.value, pair.second.region_anchor_y.value);
    -
    296  if (pair.second.scroll) {
    -
    297  ret += "\nscroll:up";
    +
    218  if (settings.line) {
    +
    219  switch (settings.line->type) {
    +
    220  case TextUnitType::kPercent:
    +
    221  ret += " line:";
    +
    222  ret += base::DoubleToString(settings.line->value);
    +
    223  ret += "%";
    +
    224  break;
    +
    225  case TextUnitType::kLines:
    +
    226  ret += " line:";
    +
    227  ret += base::DoubleToString(settings.line->value);
    +
    228  break;
    +
    229  case TextUnitType::kPixels:
    +
    230  LOG(WARNING) << "WebVTT doesn't support pixel line settings";
    +
    231  break;
    +
    232  }
    +
    233  }
    +
    234  if (settings.position) {
    +
    235  if (settings.position->type == TextUnitType::kPercent) {
    +
    236  ret += " position:";
    +
    237  ret += base::DoubleToString(settings.position->value);
    +
    238  ret += "%";
    +
    239  } else {
    +
    240  LOG(WARNING) << "WebVTT only supports percent position settings";
    +
    241  }
    +
    242  }
    +
    243  if (settings.width) {
    +
    244  if (settings.width->type == TextUnitType::kPercent) {
    +
    245  ret += " size:";
    +
    246  ret += base::DoubleToString(settings.width->value);
    +
    247  ret += "%";
    +
    248  } else {
    +
    249  LOG(WARNING) << "WebVTT only supports percent width settings";
    +
    250  }
    +
    251  }
    +
    252  if (settings.height) {
    +
    253  LOG(WARNING) << "WebVTT doesn't support cue heights";
    +
    254  }
    +
    255  if (settings.writing_direction != WritingDirection::kHorizontal) {
    +
    256  ret += " direction:";
    +
    257  if (settings.writing_direction == WritingDirection::kVerticalGrowingLeft) {
    +
    258  ret += "rl";
    +
    259  } else {
    +
    260  ret += "lr";
    +
    261  }
    +
    262  }
    +
    263  switch (settings.text_alignment) {
    +
    264  case TextAlignment::kStart:
    +
    265  ret += " align:start";
    +
    266  break;
    +
    267  case TextAlignment::kEnd:
    +
    268  ret += " align:end";
    +
    269  break;
    +
    270  case TextAlignment::kLeft:
    +
    271  ret += " align:left";
    +
    272  break;
    +
    273  case TextAlignment::kRight:
    +
    274  ret += " align:right";
    +
    275  break;
    +
    276  case TextAlignment::kCenter:
    +
    277  ret += " align:center";
    +
    278  break;
    +
    279  }
    +
    280 
    +
    281  if (!ret.empty()) {
    +
    282  DCHECK_EQ(ret[0], ' ');
    +
    283  ret.erase(0, 1);
    +
    284  }
    +
    285  return ret;
    +
    286 }
    +
    287 
    +
    288 std::string WebVttFragmentToString(const TextFragment& fragment) {
    +
    289  std::list<StyleTagKind> tags;
    +
    290  return WriteFragment(fragment, &tags);
    +
    291 }
    +
    292 
    +
    293 std::string WebVttGetPreamble(const TextStreamInfo& stream_info) {
    +
    294  std::string ret;
    +
    295  for (const auto& pair : stream_info.regions()) {
    +
    296  if (!ret.empty()) {
    +
    297  ret += "\n\n";
    298  }
    -
    299  }
    -
    300 
    -
    301  if (!stream_info.css_styles().empty()) {
    -
    302  if (!ret.empty()) {
    -
    303  ret += "\n\n";
    -
    304  }
    -
    305  ret += "STYLE\n" + stream_info.css_styles();
    -
    306  }
    -
    307 
    -
    308  return ret;
    -
    309 }
    -
    310 
    -
    311 } // namespace media
    -
    312 } // namespace shaka
    +
    299 
    +
    300  if (pair.second.width.type != TextUnitType::kPercent ||
    +
    301  pair.second.height.type != TextUnitType::kLines ||
    +
    302  pair.second.window_anchor_x.type != TextUnitType::kPercent ||
    +
    303  pair.second.window_anchor_y.type != TextUnitType::kPercent ||
    +
    304  pair.second.region_anchor_x.type != TextUnitType::kPercent ||
    +
    305  pair.second.region_anchor_y.type != TextUnitType::kPercent) {
    +
    306  LOG(WARNING) << "Unsupported unit type in WebVTT region";
    +
    307  continue;
    +
    308  }
    +
    309 
    +
    310  base::StringAppendF(
    +
    311  &ret,
    +
    312  "REGION\n"
    +
    313  "id:%s\n"
    +
    314  "width:%f%%\n"
    +
    315  "lines:%d\n"
    +
    316  "viewportanchor:%f%%,%f%%\n"
    +
    317  "regionanchor:%f%%,%f%%",
    +
    318  pair.first.c_str(), pair.second.width.value,
    +
    319  static_cast<int>(pair.second.height.value),
    +
    320  pair.second.window_anchor_x.value, pair.second.window_anchor_y.value,
    +
    321  pair.second.region_anchor_x.value, pair.second.region_anchor_y.value);
    +
    322  if (pair.second.scroll) {
    +
    323  ret += "\nscroll:up";
    +
    324  }
    +
    325  }
    +
    326 
    +
    327  if (!stream_info.css_styles().empty()) {
    +
    328  if (!ret.empty()) {
    +
    329  ret += "\n\n";
    +
    330  }
    +
    331  ret += "STYLE\n" + stream_info.css_styles();
    +
    332  }
    +
    333 
    +
    334  return ret;
    +
    335 }
    +
    336 
    +
    337 } // namespace media
    +
    338 } // namespace shaka
    All the methods that are virtual are virtual for mocking.
    diff --git a/docs/d5/d2a/proto__json__util_8cc_source.html b/docs/d5/d2a/proto__json__util_8cc_source.html index e267610cb7..6168dd0e5a 100644 --- a/docs/d5/d2a/proto__json__util_8cc_source.html +++ b/docs/d5/d2a/proto__json__util_8cc_source.html @@ -115,7 +115,7 @@ $(function() { diff --git a/docs/d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html b/docs/d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html index a5f1e4953f..01e8674109 100644 --- a/docs/d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html +++ b/docs/d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html @@ -497,7 +497,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 570d4f466f..ba1f360bca 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 @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/d5/d3e/classshaka_1_1media_1_1TextChunker.html b/docs/d5/d3e/classshaka_1_1media_1_1TextChunker.html index 06e318a119..c592e20c82 100644 --- a/docs/d5/d3e/classshaka_1_1media_1_1TextChunker.html +++ b/docs/d5/d3e/classshaka_1_1media_1_1TextChunker.html @@ -171,7 +171,7 @@ const std::map< size_t, std::pair< std::shared_ptr< 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 bd0f6785bd..7f673a0ade 100644 --- a/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html +++ b/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html @@ -146,7 +146,7 @@ $(function() { 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 ded13d80d0..18ea0f99ac 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 @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/d5/d4b/packed__audio__writer_8h_source.html b/docs/d5/d4b/packed__audio__writer_8h_source.html index 7f598ddb3e..acba7f7396 100644 --- a/docs/d5/d4b/packed__audio__writer_8h_source.html +++ b/docs/d5/d4b/packed__audio__writer_8h_source.html @@ -139,7 +139,7 @@ $(function() { diff --git a/docs/d5/d4d/box_8cc_source.html b/docs/d5/d4d/box_8cc_source.html index f217efc55c..ed8fd97e97 100644 --- a/docs/d5/d4d/box_8cc_source.html +++ b/docs/d5/d4d/box_8cc_source.html @@ -174,7 +174,7 @@ $(function() { diff --git a/docs/d5/d51/packed__audio__segmenter_8cc_source.html b/docs/d5/d51/packed__audio__segmenter_8cc_source.html index 412c41e4db..5ded7fcd94 100644 --- a/docs/d5/d51/packed__audio__segmenter_8cc_source.html +++ b/docs/d5/d51/packed__audio__segmenter_8cc_source.html @@ -238,7 +238,7 @@ $(function() { diff --git a/docs/d5/d52/ts__section__pes_8h_source.html b/docs/d5/d52/ts__section__pes_8h_source.html index 4418190728..ee3e6cc9cf 100644 --- a/docs/d5/d52/ts__section__pes_8h_source.html +++ b/docs/d5/d52/ts__section__pes_8h_source.html @@ -143,7 +143,7 @@ $(function() { 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 f621ec766c..36848fbf26 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 @@ -94,7 +94,7 @@ $(function() { diff --git a/docs/d5/d57/classshaka_1_1RepresentationStateChangeListener-members.html b/docs/d5/d57/classshaka_1_1RepresentationStateChangeListener-members.html index adb053adbb..f21c996670 100644 --- a/docs/d5/d57/classshaka_1_1RepresentationStateChangeListener-members.html +++ b/docs/d5/d57/classshaka_1_1RepresentationStateChangeListener-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/d5/d58/classshaka_1_1media_1_1DecoderConfigDescriptor.html b/docs/d5/d58/classshaka_1_1media_1_1DecoderConfigDescriptor.html index ccde0a1d66..993c57d47d 100644 --- a/docs/d5/d58/classshaka_1_1media_1_1DecoderConfigDescriptor.html +++ b/docs/d5/d58/classshaka_1_1media_1_1DecoderConfigDescriptor.html @@ -211,7 +211,7 @@ void  diff --git a/docs/d5/d59/classshaka_1_1MockRepresentation-members.html b/docs/d5/d59/classshaka_1_1MockRepresentation-members.html index b2e2935b35..53837b2433 100644 --- a/docs/d5/d59/classshaka_1_1MockRepresentation-members.html +++ b/docs/d5/d59/classshaka_1_1MockRepresentation-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/docs/d5/d5b/dvb__sub__parser_8cc_source.html b/docs/d5/d5b/dvb__sub__parser_8cc_source.html index ad4260f3f8..9a658f7a93 100644 --- a/docs/d5/d5b/dvb__sub__parser_8cc_source.html +++ b/docs/d5/d5b/dvb__sub__parser_8cc_source.html @@ -556,7 +556,7 @@ $(function() { diff --git a/docs/d5/d5c/continuity__counter_8cc_source.html b/docs/d5/d5c/continuity__counter_8cc_source.html index 9ccbd00587..53d448597f 100644 --- a/docs/d5/d5c/continuity__counter_8cc_source.html +++ b/docs/d5/d5c/continuity__counter_8cc_source.html @@ -99,7 +99,7 @@ $(function() { 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 83ed1b2e74..a8311a5a8b 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 @@ -139,7 +139,7 @@ const diff --git a/docs/d5/d63/network__util_8cc_source.html b/docs/d5/d63/network__util_8cc_source.html index cc7f76b212..79600dc09a 100644 --- a/docs/d5/d63/network__util_8cc_source.html +++ b/docs/d5/d63/network__util_8cc_source.html @@ -105,7 +105,7 @@ $(function() { diff --git a/docs/d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html b/docs/d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html index bfc2a773f4..de46f107a1 100644 --- a/docs/d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html +++ b/docs/d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html @@ -280,7 +280,7 @@ class NalUnitToByteStreamC diff --git a/docs/d5/d69/classshaka_1_1media_1_1WidevinePsshGenerator.html b/docs/d5/d69/classshaka_1_1media_1_1WidevinePsshGenerator.html index 905df0e86d..2dc05c0330 100644 --- a/docs/d5/d69/classshaka_1_1media_1_1WidevinePsshGenerator.html +++ b/docs/d5/d69/classshaka_1_1media_1_1WidevinePsshGenerator.html @@ -139,7 +139,7 @@ Public Member Functions diff --git a/docs/d5/d6d/classshaka_1_1media_1_1AesEncryptorFactory-members.html b/docs/d5/d6d/classshaka_1_1media_1_1AesEncryptorFactory-members.html index 76d1a6c9f1..6919508cb3 100644 --- a/docs/d5/d6d/classshaka_1_1media_1_1AesEncryptorFactory-members.html +++ b/docs/d5/d6d/classshaka_1_1media_1_1AesEncryptorFactory-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/d5/d6f/vlog__flags_8cc_source.html b/docs/d5/d6f/vlog__flags_8cc_source.html index b002396949..639df6cdb1 100644 --- a/docs/d5/d6f/vlog__flags_8cc_source.html +++ b/docs/d5/d6f/vlog__flags_8cc_source.html @@ -98,7 +98,7 @@ $(function() { 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 9ed1e5cb9d..96e7dee31a 100644 --- a/docs/d5/d72/avc__decoder__configuration__record_8cc_source.html +++ b/docs/d5/d72/avc__decoder__configuration__record_8cc_source.html @@ -211,7 +211,7 @@ $(function() { diff --git a/docs/d5/d76/classshaka_1_1hls_1_1HlsEntry.html b/docs/d5/d76/classshaka_1_1hls_1_1HlsEntry.html index 3db8630300..36d9516003 100644 --- a/docs/d5/d76/classshaka_1_1hls_1_1HlsEntry.html +++ b/docs/d5/d76/classshaka_1_1hls_1_1HlsEntry.html @@ -109,7 +109,7 @@ Protected Member Functions diff --git a/docs/d5/d7b/box__definitions_8h_source.html b/docs/d5/d7b/box__definitions_8h_source.html index f192428bf3..9ea40c5801 100644 --- a/docs/d5/d7b/box__definitions_8h_source.html +++ b/docs/d5/d7b/box__definitions_8h_source.html @@ -1026,7 +1026,7 @@ $(function() { 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 e2f21be3bf..d08acc6b2e 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 @@ -169,7 +169,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 b52ffe22a4..da399c18c9 100644 --- a/docs/d5/d89/widevine__key__source_8cc_source.html +++ b/docs/d5/d89/widevine__key__source_8cc_source.html @@ -598,7 +598,7 @@ $(function() { 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 f3f4b5ad35..a34cea5eb1 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 @@ -91,7 +91,7 @@ int64_t sample_offset< diff --git a/docs/d5/d8d/classshaka_1_1media_1_1SampleAesEc3Cryptor-members.html b/docs/d5/d8d/classshaka_1_1media_1_1SampleAesEc3Cryptor-members.html index 89fd8bbdfe..fe23660616 100644 --- a/docs/d5/d8d/classshaka_1_1media_1_1SampleAesEc3Cryptor-members.html +++ b/docs/d5/d8d/classshaka_1_1media_1_1SampleAesEc3Cryptor-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/d5/d8f/webm__cluster__parser_8cc_source.html b/docs/d5/d8f/webm__cluster__parser_8cc_source.html index b4717c6a4c..39ffeb2111 100644 --- a/docs/d5/d8f/webm__cluster__parser_8cc_source.html +++ b/docs/d5/d8f/webm__cluster__parser_8cc_source.html @@ -724,16 +724,16 @@ $(function() {
    int Parse(const uint8_t *buf, int size)
    void Reset()
    Resets the parser state so it can accept a new cluster.
    bool Flush() WARN_UNUSED_RESULT
    -
    void Reset()
    Resets the state of the parser so it can start parsing a new list.
    Definition: webm_parser.cc:733
    -
    int Parse(const uint8_t *buf, int size)
    Definition: webm_parser.cc:738
    - +
    void Reset()
    Resets the state of the parser so it can start parsing a new list.
    Definition: webm_parser.cc:739
    +
    int Parse(const uint8_t *buf, int size)
    Definition: webm_parser.cc:744
    +
    static void Parse(const uint8_t *payload, int payload_size, std::string *id, std::string *settings, std::string *content)
    Utility function to parse the WebVTT cue from a byte stream.
    All the methods that are virtual are virtual for mocking.
    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 d7837e3b5f..881492127d 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 @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/d5/d98/encryptor_8cc_source.html b/docs/d5/d98/encryptor_8cc_source.html index 0cc772e3ad..157a3d7ef5 100644 --- a/docs/d5/d98/encryptor_8cc_source.html +++ b/docs/d5/d98/encryptor_8cc_source.html @@ -188,7 +188,7 @@ $(function() { 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 132a522dde..f878afa330 100644 --- a/docs/d5/d9b/vp__codec__configuration__record_8h_source.html +++ b/docs/d5/d9b/vp__codec__configuration__record_8h_source.html @@ -305,7 +305,7 @@ $(function() { diff --git a/docs/d5/d9d/structshaka_1_1media_1_1H265ReferencePictureListModifications.html b/docs/d5/d9d/structshaka_1_1media_1_1H265ReferencePictureListModifications.html index 0189792a5c..f3fc824537 100644 --- a/docs/d5/d9d/structshaka_1_1media_1_1H265ReferencePictureListModifications.html +++ b/docs/d5/d9d/structshaka_1_1media_1_1H265ReferencePictureListModifications.html @@ -98,7 +98,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 4225e74469..2b6c00129c 100644 --- a/docs/d5/da4/aes__encryptor_8cc_source.html +++ b/docs/d5/da4/aes__encryptor_8cc_source.html @@ -280,7 +280,7 @@ $(function() { diff --git a/docs/d5/dad/structshaka_1_1media_1_1H265ReferencePictureSet.html b/docs/d5/dad/structshaka_1_1media_1_1H265ReferencePictureSet.html index 8a40fedc2a..6716a6136b 100644 --- a/docs/d5/dad/structshaka_1_1media_1_1H265ReferencePictureSet.html +++ b/docs/d5/dad/structshaka_1_1media_1_1H265ReferencePictureSet.html @@ -106,7 +106,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 bb4f0a9cd1..ab7b4ab24a 100644 --- a/docs/d5/db1/classshaka_1_1media_1_1StreamInfo.html +++ b/docs/d5/db1/classshaka_1_1media_1_1StreamInfo.html @@ -256,7 +256,7 @@ void set_encryption_config diff --git a/docs/d5/db8/text__muxer_8cc_source.html b/docs/d5/db8/text__muxer_8cc_source.html index 8a4fb02c50..b6820e85c9 100644 --- a/docs/d5/db8/text__muxer_8cc_source.html +++ b/docs/d5/db8/text__muxer_8cc_source.html @@ -166,7 +166,7 @@ $(function() { 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 57ff34cc0a..3deb867c2c 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 @@ -139,7 +139,7 @@ const diff --git a/docs/d5/dba/ts__packet_8cc_source.html b/docs/d5/dba/ts__packet_8cc_source.html index 93163762cd..66d420838d 100644 --- a/docs/d5/dba/ts__packet_8cc_source.html +++ b/docs/d5/dba/ts__packet_8cc_source.html @@ -290,7 +290,7 @@ $(function() { diff --git a/docs/d5/dc0/structshaka_1_1media_1_1TextSubStreamInfo-members.html b/docs/d5/dc0/structshaka_1_1media_1_1TextSubStreamInfo-members.html index 790f9e901b..035de99fe9 100644 --- a/docs/d5/dc0/structshaka_1_1media_1_1TextSubStreamInfo-members.html +++ b/docs/d5/dc0/structshaka_1_1media_1_1TextSubStreamInfo-members.html @@ -76,7 +76,7 @@ $(function() { diff --git a/docs/d5/dc1/webm__webvtt__parser_8cc_source.html b/docs/d5/dc1/webm__webvtt__parser_8cc_source.html index 4b0dbc4661..83ac5402c1 100644 --- a/docs/d5/dc1/webm__webvtt__parser_8cc_source.html +++ b/docs/d5/dc1/webm__webvtt__parser_8cc_source.html @@ -154,7 +154,7 @@ $(function() { 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 38d962ad7e..925eebff0e 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 @@ -96,7 +96,7 @@ $(function() { 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 1a673dbfb0..cae14b8a41 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 @@ -163,7 +163,7 @@ Additional Inherited Members diff --git a/docs/d5/dcb/raw__key__encryption__flags_8h_source.html b/docs/d5/dcb/raw__key__encryption__flags_8h_source.html index c39d9fe8be..c5bb55f364 100644 --- a/docs/d5/dcb/raw__key__encryption__flags_8h_source.html +++ b/docs/d5/dcb/raw__key__encryption__flags_8h_source.html @@ -104,7 +104,7 @@ $(function() { diff --git a/docs/d5/dcf/rsa__key_8h_source.html b/docs/d5/dcf/rsa__key_8h_source.html index 513b06af66..06bc09db7a 100644 --- a/docs/d5/dcf/rsa__key_8h_source.html +++ b/docs/d5/dcf/rsa__key_8h_source.html @@ -148,7 +148,7 @@ $(function() { diff --git a/docs/d5/dd2/structshaka_1_1media_1_1TextNumber-members.html b/docs/d5/dd2/structshaka_1_1media_1_1TextNumber-members.html index 13cd31768d..925993698b 100644 --- a/docs/d5/dd2/structshaka_1_1media_1_1TextNumber-members.html +++ b/docs/d5/dd2/structshaka_1_1media_1_1TextNumber-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/d5/dda/ts__section__psi_8h_source.html b/docs/d5/dda/ts__section__psi_8h_source.html index ad425e8077..d4f5b0f299 100644 --- a/docs/d5/dda/ts__section__psi_8h_source.html +++ b/docs/d5/dda/ts__section__psi_8h_source.html @@ -134,7 +134,7 @@ $(function() { diff --git a/docs/d5/ddf/structshaka_1_1media_1_1RgbaColor-members.html b/docs/d5/ddf/structshaka_1_1media_1_1RgbaColor-members.html index f01a7c40cd..ec0cb5ec64 100644 --- a/docs/d5/ddf/structshaka_1_1media_1_1RgbaColor-members.html +++ b/docs/d5/ddf/structshaka_1_1media_1_1RgbaColor-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/d5/de0/bit__reader_8cc_source.html b/docs/d5/de0/bit__reader_8cc_source.html index 7e5dc3e1db..b8793e481c 100644 --- a/docs/d5/de0/bit__reader_8cc_source.html +++ b/docs/d5/de0/bit__reader_8cc_source.html @@ -190,7 +190,7 @@ $(function() { 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 8502d98e17..e61eafbcf4 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 @@ -292,7 +292,7 @@ class PesPacketGeneratorTe diff --git a/docs/d5/de2/structshaka_1_1media_1_1MuxerListenerFactory_1_1StreamData-members.html b/docs/d5/de2/structshaka_1_1media_1_1MuxerListenerFactory_1_1StreamData-members.html index d57d1fbeee..945f362428 100644 --- a/docs/d5/de2/structshaka_1_1media_1_1MuxerListenerFactory_1_1StreamData-members.html +++ b/docs/d5/de2/structshaka_1_1media_1_1MuxerListenerFactory_1_1StreamData-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/d5/de3/structshaka_1_1PackagingParams.html b/docs/d5/de3/structshaka_1_1PackagingParams.html index 06135f7fec..501ba3c2a6 100644 --- a/docs/d5/de3/structshaka_1_1PackagingParams.html +++ b/docs/d5/de3/structshaka_1_1PackagingParams.html @@ -187,7 +187,7 @@ std::string  diff --git a/docs/d5/de9/replicator_8cc_source.html b/docs/d5/de9/replicator_8cc_source.html index 6130cae0dd..a2f963f7c3 100644 --- a/docs/d5/de9/replicator_8cc_source.html +++ b/docs/d5/de9/replicator_8cc_source.html @@ -114,7 +114,7 @@ $(function() { diff --git a/docs/d5/dec/classshaka_1_1media_1_1WebMParserClient.html b/docs/d5/dec/classshaka_1_1media_1_1WebMParserClient.html index f2944b75b1..d180ad6e50 100644 --- a/docs/d5/dec/classshaka_1_1media_1_1WebMParserClient.html +++ b/docs/d5/dec/classshaka_1_1media_1_1WebMParserClient.html @@ -130,7 +130,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 55933091cf..2d2fd7805a 100644 --- a/docs/d5/dec/decoder__configuration__record_8cc_source.html +++ b/docs/d5/dec/decoder__configuration__record_8cc_source.html @@ -105,7 +105,7 @@ $(function() { 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 df31c3c7c6..aa57edc502 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/d5/def/ts__section__pmt_8h_source.html b/docs/d5/def/ts__section__pmt_8h_source.html index 21202ca3c6..78158265e7 100644 --- a/docs/d5/def/ts__section__pmt_8h_source.html +++ b/docs/d5/def/ts__section__pmt_8h_source.html @@ -118,7 +118,7 @@ $(function() { diff --git a/docs/d5/df2/media__playlist_8cc_source.html b/docs/d5/df2/media__playlist_8cc_source.html index 6b3fd976df..af93d773f1 100644 --- a/docs/d5/df2/media__playlist_8cc_source.html +++ b/docs/d5/df2/media__playlist_8cc_source.html @@ -846,7 +846,7 @@ $(function() { diff --git a/docs/d5/df3/common__pssh__generator_8cc_source.html b/docs/d5/df3/common__pssh__generator_8cc_source.html index 4b44639066..f7e2fb6f5d 100644 --- a/docs/d5/df3/common__pssh__generator_8cc_source.html +++ b/docs/d5/df3/common__pssh__generator_8cc_source.html @@ -117,7 +117,7 @@ $(function() { diff --git a/docs/d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html b/docs/d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html index ca2e0900b5..1714ffeec9 100644 --- a/docs/d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html +++ b/docs/d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html @@ -605,7 +605,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 77a78cd137..afe4a92d62 100644 --- a/docs/d5/dfa/classshaka_1_1media_1_1MediaParser-members.html +++ b/docs/d5/dfa/classshaka_1_1media_1_1MediaParser-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/d5/dfc/file_8cc_source.html b/docs/d5/dfc/file_8cc_source.html index 0f8e55ddf3..d6cb92ab87 100644 --- a/docs/d5/dfc/file_8cc_source.html +++ b/docs/d5/dfc/file_8cc_source.html @@ -358,144 +358,147 @@ $(function() {
    287 
    288  // Skip the warning message for memory files, which is meant for testing
    289  // anyway..
    -
    290  if (strncmp(file_name, kMemoryFilePrefix, strlen(kMemoryFilePrefix)) != 0) {
    -
    291  LOG(WARNING) << "Writing to " << file_name
    -
    292  << " is not guaranteed to be atomic.";
    -
    293  }
    -
    294  return WriteStringToFile(file_name, contents);
    -
    295 }
    -
    296 
    -
    297 bool File::Copy(const char* from_file_name, const char* to_file_name) {
    -
    298  std::string content;
    -
    299  VLOG(2) << "File::Copy from " << from_file_name << " to " << to_file_name;
    -
    300  if (!ReadFileToString(from_file_name, &content)) {
    -
    301  LOG(ERROR) << "Failed to open file " << from_file_name;
    -
    302  return false;
    -
    303  }
    -
    304 
    -
    305  std::unique_ptr<File, FileCloser> output_file(File::Open(to_file_name, "w"));
    -
    306  if (!output_file) {
    -
    307  LOG(ERROR) << "Failed to write to " << to_file_name;
    -
    308  return false;
    -
    309  }
    -
    310 
    -
    311  uint64_t bytes_left = content.size();
    -
    312  uint64_t total_bytes_written = 0;
    -
    313  const char* content_cstr = content.c_str();
    -
    314  while (bytes_left > total_bytes_written) {
    -
    315  const int64_t bytes_written =
    -
    316  output_file->Write(content_cstr + total_bytes_written, bytes_left);
    -
    317  if (bytes_written < 0) {
    -
    318  LOG(ERROR) << "Failure while writing to " << to_file_name;
    -
    319  return false;
    -
    320  }
    -
    321 
    -
    322  total_bytes_written += bytes_written;
    -
    323  }
    -
    324  if (!output_file.release()->Close()) {
    -
    325  LOG(ERROR)
    -
    326  << "Failed to close file '" << to_file_name
    -
    327  << "', possibly file permission issue or running out of disk space.";
    -
    328  return false;
    -
    329  }
    -
    330  return true;
    -
    331 }
    -
    332 
    -
    333 int64_t File::CopyFile(File* source, File* destination) {
    -
    334  return CopyFile(source, destination, kWholeFile);
    -
    335 }
    -
    336 
    -
    337 int64_t File::CopyFile(File* source, File* destination, int64_t max_copy) {
    -
    338  DCHECK(source);
    -
    339  DCHECK(destination);
    -
    340  if (max_copy < 0)
    -
    341  max_copy = std::numeric_limits<int64_t>::max();
    -
    342 
    -
    343  VLOG(2) << "File::CopyFile from " << source->file_name() << " to "
    -
    344  << destination->file_name();
    +
    290  // Also check for http files, as they can't do atomic writes.
    +
    291  if (strncmp(file_name, kMemoryFilePrefix, strlen(kMemoryFilePrefix)) != 0
    +
    292  && strncmp(file_name, kHttpFilePrefix, strlen(kHttpFilePrefix)) != 0
    +
    293  && strncmp(file_name, kHttpsFilePrefix, strlen(kHttpsFilePrefix)) != 0) {
    +
    294  LOG(WARNING) << "Writing to " << file_name
    +
    295  << " is not guaranteed to be atomic.";
    +
    296  }
    +
    297  return WriteStringToFile(file_name, contents);
    +
    298 }
    +
    299 
    +
    300 bool File::Copy(const char* from_file_name, const char* to_file_name) {
    +
    301  std::string content;
    +
    302  VLOG(2) << "File::Copy from " << from_file_name << " to " << to_file_name;
    +
    303  if (!ReadFileToString(from_file_name, &content)) {
    +
    304  LOG(ERROR) << "Failed to open file " << from_file_name;
    +
    305  return false;
    +
    306  }
    +
    307 
    +
    308  std::unique_ptr<File, FileCloser> output_file(File::Open(to_file_name, "w"));
    +
    309  if (!output_file) {
    +
    310  LOG(ERROR) << "Failed to write to " << to_file_name;
    +
    311  return false;
    +
    312  }
    +
    313 
    +
    314  uint64_t bytes_left = content.size();
    +
    315  uint64_t total_bytes_written = 0;
    +
    316  const char* content_cstr = content.c_str();
    +
    317  while (bytes_left > total_bytes_written) {
    +
    318  const int64_t bytes_written =
    +
    319  output_file->Write(content_cstr + total_bytes_written, bytes_left);
    +
    320  if (bytes_written < 0) {
    +
    321  LOG(ERROR) << "Failure while writing to " << to_file_name;
    +
    322  return false;
    +
    323  }
    +
    324 
    +
    325  total_bytes_written += bytes_written;
    +
    326  }
    +
    327  if (!output_file.release()->Close()) {
    +
    328  LOG(ERROR)
    +
    329  << "Failed to close file '" << to_file_name
    +
    330  << "', possibly file permission issue or running out of disk space.";
    +
    331  return false;
    +
    332  }
    +
    333  return true;
    +
    334 }
    +
    335 
    +
    336 int64_t File::CopyFile(File* source, File* destination) {
    +
    337  return CopyFile(source, destination, kWholeFile);
    +
    338 }
    +
    339 
    +
    340 int64_t File::CopyFile(File* source, File* destination, int64_t max_copy) {
    +
    341  DCHECK(source);
    +
    342  DCHECK(destination);
    +
    343  if (max_copy < 0)
    +
    344  max_copy = std::numeric_limits<int64_t>::max();
    345 
    -
    346  const int64_t kBufferSize = 0x40000; // 256KB.
    -
    347  std::unique_ptr<uint8_t[]> buffer(new uint8_t[kBufferSize]);
    -
    348  int64_t bytes_copied = 0;
    -
    349  while (bytes_copied < max_copy) {
    -
    350  const int64_t size = std::min(kBufferSize, max_copy - bytes_copied);
    -
    351  const int64_t bytes_read = source->Read(buffer.get(), size);
    -
    352  if (bytes_read < 0)
    -
    353  return bytes_read;
    -
    354  if (bytes_read == 0)
    -
    355  break;
    -
    356 
    -
    357  int64_t total_bytes_written = 0;
    -
    358  while (total_bytes_written < bytes_read) {
    -
    359  const int64_t bytes_written = destination->Write(
    -
    360  buffer.get() + total_bytes_written, bytes_read - total_bytes_written);
    -
    361  if (bytes_written < 0)
    -
    362  return bytes_written;
    -
    363 
    -
    364  total_bytes_written += bytes_written;
    -
    365  }
    +
    346  VLOG(2) << "File::CopyFile from " << source->file_name() << " to "
    +
    347  << destination->file_name();
    +
    348 
    +
    349  const int64_t kBufferSize = 0x40000; // 256KB.
    +
    350  std::unique_ptr<uint8_t[]> buffer(new uint8_t[kBufferSize]);
    +
    351  int64_t bytes_copied = 0;
    +
    352  while (bytes_copied < max_copy) {
    +
    353  const int64_t size = std::min(kBufferSize, max_copy - bytes_copied);
    +
    354  const int64_t bytes_read = source->Read(buffer.get(), size);
    +
    355  if (bytes_read < 0)
    +
    356  return bytes_read;
    +
    357  if (bytes_read == 0)
    +
    358  break;
    +
    359 
    +
    360  int64_t total_bytes_written = 0;
    +
    361  while (total_bytes_written < bytes_read) {
    +
    362  const int64_t bytes_written = destination->Write(
    +
    363  buffer.get() + total_bytes_written, bytes_read - total_bytes_written);
    +
    364  if (bytes_written < 0)
    +
    365  return bytes_written;
    366 
    -
    367  DCHECK_EQ(total_bytes_written, bytes_read);
    -
    368  bytes_copied += bytes_read;
    -
    369  }
    -
    370 
    -
    371  return bytes_copied;
    -
    372 }
    +
    367  total_bytes_written += bytes_written;
    +
    368  }
    +
    369 
    +
    370  DCHECK_EQ(total_bytes_written, bytes_read);
    +
    371  bytes_copied += bytes_read;
    +
    372  }
    373 
    -
    374 bool File::IsLocalRegularFile(const char* file_name) {
    -
    375  base::StringPiece real_file_name;
    -
    376  const FileTypeInfo* file_type = GetFileTypeInfo(file_name, &real_file_name);
    -
    377  DCHECK(file_type);
    -
    378  if (file_type->type != kLocalFilePrefix)
    -
    379  return false;
    -
    380 #if defined(OS_WIN)
    -
    381  const base::FilePath file_path(
    -
    382  base::FilePath::FromUTF8Unsafe(real_file_name));
    -
    383  const DWORD fileattr = GetFileAttributes(file_path.value().c_str());
    -
    384  if (fileattr == INVALID_FILE_ATTRIBUTES) {
    -
    385  LOG(ERROR) << "Failed to GetFileAttributes of " << file_path.value();
    -
    386  return false;
    -
    387  }
    -
    388  return (fileattr & FILE_ATTRIBUTE_DIRECTORY) == 0;
    -
    389 #else
    -
    390  struct stat info;
    -
    391  if (stat(real_file_name.data(), &info) != 0) {
    -
    392  LOG(ERROR) << "Failed to run stat on " << real_file_name;
    -
    393  return false;
    -
    394  }
    -
    395  return S_ISREG(info.st_mode);
    -
    396 #endif
    -
    397 }
    -
    398 
    - -
    400  const BufferCallbackParams& callback_params,
    -
    401  const std::string& name) {
    -
    402  if (name.empty())
    -
    403  return "";
    -
    404  return base::StringPrintf("%s%" PRIdPTR "/%s", kCallbackFilePrefix,
    -
    405  reinterpret_cast<intptr_t>(&callback_params),
    -
    406  name.c_str());
    -
    407 }
    -
    408 
    -
    409 bool File::ParseCallbackFileName(const std::string& callback_file_name,
    -
    410  const BufferCallbackParams** callback_params,
    -
    411  std::string* name) {
    -
    412  size_t pos = callback_file_name.find("/");
    -
    413  int64_t callback_address = 0;
    -
    414  if (pos == std::string::npos ||
    -
    415  !base::StringToInt64(callback_file_name.substr(0, pos),
    -
    416  &callback_address)) {
    -
    417  LOG(ERROR) << "Expecting CallbackFile with name like "
    -
    418  "'<callback address>/<entity name>', but seeing "
    -
    419  << callback_file_name;
    -
    420  return false;
    -
    421  }
    -
    422  *callback_params = reinterpret_cast<BufferCallbackParams*>(callback_address);
    -
    423  *name = callback_file_name.substr(pos + 1);
    -
    424  return true;
    -
    425 }
    -
    426 
    -
    427 } // namespace shaka
    +
    374  return bytes_copied;
    +
    375 }
    +
    376 
    +
    377 bool File::IsLocalRegularFile(const char* file_name) {
    +
    378  base::StringPiece real_file_name;
    +
    379  const FileTypeInfo* file_type = GetFileTypeInfo(file_name, &real_file_name);
    +
    380  DCHECK(file_type);
    +
    381  if (file_type->type != kLocalFilePrefix)
    +
    382  return false;
    +
    383 #if defined(OS_WIN)
    +
    384  const base::FilePath file_path(
    +
    385  base::FilePath::FromUTF8Unsafe(real_file_name));
    +
    386  const DWORD fileattr = GetFileAttributes(file_path.value().c_str());
    +
    387  if (fileattr == INVALID_FILE_ATTRIBUTES) {
    +
    388  LOG(ERROR) << "Failed to GetFileAttributes of " << file_path.value();
    +
    389  return false;
    +
    390  }
    +
    391  return (fileattr & FILE_ATTRIBUTE_DIRECTORY) == 0;
    +
    392 #else
    +
    393  struct stat info;
    +
    394  if (stat(real_file_name.data(), &info) != 0) {
    +
    395  LOG(ERROR) << "Failed to run stat on " << real_file_name;
    +
    396  return false;
    +
    397  }
    +
    398  return S_ISREG(info.st_mode);
    +
    399 #endif
    +
    400 }
    +
    401 
    + +
    403  const BufferCallbackParams& callback_params,
    +
    404  const std::string& name) {
    +
    405  if (name.empty())
    +
    406  return "";
    +
    407  return base::StringPrintf("%s%" PRIdPTR "/%s", kCallbackFilePrefix,
    +
    408  reinterpret_cast<intptr_t>(&callback_params),
    +
    409  name.c_str());
    +
    410 }
    +
    411 
    +
    412 bool File::ParseCallbackFileName(const std::string& callback_file_name,
    +
    413  const BufferCallbackParams** callback_params,
    +
    414  std::string* name) {
    +
    415  size_t pos = callback_file_name.find("/");
    +
    416  int64_t callback_address = 0;
    +
    417  if (pos == std::string::npos ||
    +
    418  !base::StringToInt64(callback_file_name.substr(0, pos),
    +
    419  &callback_address)) {
    +
    420  LOG(ERROR) << "Expecting CallbackFile with name like "
    +
    421  "'<callback address>/<entity name>', but seeing "
    +
    422  << callback_file_name;
    +
    423  return false;
    +
    424  }
    +
    425  *callback_params = reinterpret_cast<BufferCallbackParams*>(callback_address);
    +
    426  *name = callback_file_name.substr(pos + 1);
    +
    427  return true;
    +
    428 }
    +
    429 
    +
    430 } // namespace shaka
    Define an abstract file interface.
    Definition: file.h:27
    static File * OpenWithNoBuffering(const char *file_name, const char *mode)
    Definition: file.cc:201
    static bool Delete(const char *file_name)
    Definition: file.cc:212
    @@ -504,17 +507,17 @@ $(function() {
    static bool WriteFileAtomically(const char *file_name, const std::string &contents)
    Definition: file.cc:277
    virtual bool Open()=0
    Internal open. Should not be used directly.
    virtual int64_t Read(void *buffer, uint64_t length)=0
    -
    static std::string MakeCallbackFileName(const BufferCallbackParams &callback_params, const std::string &name)
    Definition: file.cc:399
    -
    static int64_t CopyFile(File *source, File *destination)
    Definition: file.cc:333
    +
    static std::string MakeCallbackFileName(const BufferCallbackParams &callback_params, const std::string &name)
    Definition: file.cc:402
    +
    static int64_t CopyFile(File *source, File *destination)
    Definition: file.cc:336
    virtual int64_t Write(const void *buffer, uint64_t length)=0
    -
    static bool IsLocalRegularFile(const char *file_name)
    Definition: file.cc:374
    +
    static bool IsLocalRegularFile(const char *file_name)
    Definition: file.cc:377
    virtual bool Close()=0
    static File * Open(const char *file_name, const char *mode)
    Definition: file.cc:190
    static int64_t GetFileSize(const char *file_name)
    Definition: file.cc:221
    static bool ReadFileToString(const char *file_name, std::string *contents)
    Definition: file.cc:230
    -
    static bool ParseCallbackFileName(const std::string &callback_file_name, const BufferCallbackParams **callback_params, std::string *name)
    Definition: file.cc:409
    +
    static bool ParseCallbackFileName(const std::string &callback_file_name, const BufferCallbackParams **callback_params, std::string *name)
    Definition: file.cc:412
    virtual int64_t Size()=0
    -
    static bool Copy(const char *from_file_name, const char *to_file_name)
    Definition: file.cc:297
    +
    static bool Copy(const char *from_file_name, const char *to_file_name)
    Definition: file.cc:300
    static bool Delete(const char *file_name)
    Definition: local_file.cc:199
    static void Delete(const std::string &file_name)
    Definition: memory_file.cc:190
    All the methods that are virtual are virtual for mocking.
    @@ -523,7 +526,7 @@ $(function() { diff --git a/docs/d5/dfe/classshaka_1_1File-members.html b/docs/d5/dfe/classshaka_1_1File-members.html index effef5ac8b..849f7a08ef 100644 --- a/docs/d5/dfe/classshaka_1_1File-members.html +++ b/docs/d5/dfe/classshaka_1_1File-members.html @@ -100,7 +100,7 @@ $(function() { 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 4c665ce880..77efd65bd8 100644 --- a/docs/d6/d02/playready__key__encryption__flags_8h_source.html +++ b/docs/d6/d02/playready__key__encryption__flags_8h_source.html @@ -100,7 +100,7 @@ $(function() { 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 ba546b0fec..1935350187 100644 --- a/docs/d6/d03/classshaka_1_1media_1_1AesCbcDecryptor-members.html +++ b/docs/d6/d03/classshaka_1_1media_1_1AesCbcDecryptor-members.html @@ -95,7 +95,7 @@ $(function() { diff --git a/docs/d6/d09/aes__pattern__cryptor_8h_source.html b/docs/d6/d09/aes__pattern__cryptor_8h_source.html index 5fdd9b6423..16b29c5032 100644 --- a/docs/d6/d09/aes__pattern__cryptor_8h_source.html +++ b/docs/d6/d09/aes__pattern__cryptor_8h_source.html @@ -130,7 +130,7 @@ $(function() { diff --git a/docs/d6/d16/text__stream__info_8cc_source.html b/docs/d6/d16/text__stream__info_8cc_source.html index 33e1aa11ec..9d48b0bcad 100644 --- a/docs/d6/d16/text__stream__info_8cc_source.html +++ b/docs/d6/d16/text__stream__info_8cc_source.html @@ -129,7 +129,7 @@ $(function() { diff --git a/docs/d6/d17/es__parser__h264_8cc_source.html b/docs/d6/d17/es__parser__h264_8cc_source.html index eae4ff12ef..22f8fbeafb 100644 --- a/docs/d6/d17/es__parser__h264_8cc_source.html +++ b/docs/d6/d17/es__parser__h264_8cc_source.html @@ -262,7 +262,7 @@ $(function() { diff --git a/docs/d6/d1a/classshaka_1_1media_1_1AV1CodecConfigurationRecord-members.html b/docs/d6/d1a/classshaka_1_1media_1_1AV1CodecConfigurationRecord-members.html index 7bfaa35e44..27798af091 100644 --- a/docs/d6/d1a/classshaka_1_1media_1_1AV1CodecConfigurationRecord-members.html +++ b/docs/d6/d1a/classshaka_1_1media_1_1AV1CodecConfigurationRecord-members.html @@ -80,7 +80,7 @@ $(function() { 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 cf617ba8e5..e201872cbe 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 @@ -181,7 +181,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 0a75b6a306..a495d1e29d 100644 --- a/docs/d6/d1a/ts__packet__writer__util_8cc_source.html +++ b/docs/d6/d1a/ts__packet__writer__util_8cc_source.html @@ -238,7 +238,7 @@ $(function() { diff --git a/docs/d6/d22/classshaka_1_1media_1_1DvbImageColorSpace-members.html b/docs/d6/d22/classshaka_1_1media_1_1DvbImageColorSpace-members.html index 1403017ae1..5c632ab071 100644 --- a/docs/d6/d22/classshaka_1_1media_1_1DvbImageColorSpace-members.html +++ b/docs/d6/d22/classshaka_1_1media_1_1DvbImageColorSpace-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html b/docs/d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html index 8f42d21fdb..6006c7e095 100644 --- a/docs/d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html +++ b/docs/d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html @@ -117,7 +117,7 @@ bool is_encrypted

    Detailed Description

    -

    Definition at line 51 of file muxer_listener_test_helper.h.

    +

    Definition at line 78 of file muxer_listener_test_helper.h.


    The documentation for this struct was generated from the following files:
    • packager/media/event/muxer_listener_test_helper.h
    • packager/media/event/muxer_listener_test_helper.cc
    • @@ -125,7 +125,7 @@ bool is_encrypted diff --git a/docs/d6/d2c/ts__stream__type_8h_source.html b/docs/d6/d2c/ts__stream__type_8h_source.html index eeb0a5b43b..cfe2920ba9 100644 --- a/docs/d6/d2c/ts__stream__type_8h_source.html +++ b/docs/d6/d2c/ts__stream__type_8h_source.html @@ -127,7 +127,7 @@ $(function() { diff --git a/docs/d6/d2e/mpd__notifier__util_8cc_source.html b/docs/d6/d2e/mpd__notifier__util_8cc_source.html index 16fe5e8cf8..c8a3d8b5e9 100644 --- a/docs/d6/d2e/mpd__notifier__util_8cc_source.html +++ b/docs/d6/d2e/mpd__notifier__util_8cc_source.html @@ -135,7 +135,7 @@ $(function() { 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 723aaa1b3b..8c9b039d48 100644 --- a/docs/d6/d32/classshaka_1_1media_1_1TextTrack-members.html +++ b/docs/d6/d32/classshaka_1_1media_1_1TextTrack-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/docs/d6/d35/webm__content__encodings_8cc_source.html b/docs/d6/d35/webm__content__encodings_8cc_source.html index ed8800cc93..5632433bdc 100644 --- a/docs/d6/d35/webm__content__encodings_8cc_source.html +++ b/docs/d6/d35/webm__content__encodings_8cc_source.html @@ -103,7 +103,7 @@ $(function() { diff --git a/docs/d6/d37/combined__muxer__listener_8cc_source.html b/docs/d6/d37/combined__muxer__listener_8cc_source.html index 40c85b5166..478f2d094a 100644 --- a/docs/d6/d37/combined__muxer__listener_8cc_source.html +++ b/docs/d6/d37/combined__muxer__listener_8cc_source.html @@ -168,7 +168,7 @@ $(function() { diff --git a/docs/d6/d3b/chunk__info__iterator_8cc_source.html b/docs/d6/d3b/chunk__info__iterator_8cc_source.html index 7d27e83fa7..744f694193 100644 --- a/docs/d6/d3b/chunk__info__iterator_8cc_source.html +++ b/docs/d6/d3b/chunk__info__iterator_8cc_source.html @@ -154,7 +154,7 @@ $(function() { diff --git a/docs/d6/d3e/pssh__generator__util_8h_source.html b/docs/d6/d3e/pssh__generator__util_8h_source.html index ecd138bd36..3ca6249b1a 100644 --- a/docs/d6/d3e/pssh__generator__util_8h_source.html +++ b/docs/d6/d3e/pssh__generator__util_8h_source.html @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/d6/d46/structshaka_1_1media_1_1CueEventInfo.html b/docs/d6/d46/structshaka_1_1media_1_1CueEventInfo.html index 2dd3dcb60a..9a838efd53 100644 --- a/docs/d6/d46/structshaka_1_1media_1_1CueEventInfo.html +++ b/docs/d6/d46/structshaka_1_1media_1_1CueEventInfo.html @@ -88,7 +88,7 @@ int64_t timestamp diff --git a/docs/d6/d47/hls__params_8h_source.html b/docs/d6/d47/hls__params_8h_source.html index ec5eeeecca..6f6d18bf12 100644 --- a/docs/d6/d47/hls__params_8h_source.html +++ b/docs/d6/d47/hls__params_8h_source.html @@ -123,7 +123,7 @@ $(function() { diff --git a/docs/d6/d48/classshaka_1_1media_1_1PackedAudioWriter.html b/docs/d6/d48/classshaka_1_1media_1_1PackedAudioWriter.html index f7d668d287..2344115725 100644 --- a/docs/d6/d48/classshaka_1_1media_1_1PackedAudioWriter.html +++ b/docs/d6/d48/classshaka_1_1media_1_1PackedAudioWriter.html @@ -219,7 +219,7 @@ const std::map< size_t, std::pair< std::shared_ptr< diff --git a/docs/d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html b/docs/d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html index e140c5ba18..c1a0e17922 100644 --- a/docs/d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html +++ b/docs/d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html @@ -252,7 +252,7 @@ static Status 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 d989623a1e..dfa40f2b57 100644 --- a/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html +++ b/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html @@ -184,7 +184,7 @@ $(function() { diff --git a/docs/d6/d55/aes__cryptor_8cc_source.html b/docs/d6/d55/aes__cryptor_8cc_source.html index f4c95ac92f..6d359f613c 100644 --- a/docs/d6/d55/aes__cryptor_8cc_source.html +++ b/docs/d6/d55/aes__cryptor_8cc_source.html @@ -213,7 +213,7 @@ $(function() { diff --git a/docs/d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html b/docs/d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html index ab47fb6ad5..aa2d36b729 100644 --- a/docs/d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html +++ b/docs/d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html @@ -248,7 +248,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 7bd04b7900..9e89644bf9 100644 --- a/docs/d6/d59/protection__system__specific__info_8h_source.html +++ b/docs/d6/d59/protection__system__specific__info_8h_source.html @@ -152,7 +152,7 @@ $(function() { diff --git a/docs/d6/d5b/classshaka_1_1Status-members.html b/docs/d6/d5b/classshaka_1_1Status-members.html index f1edbec2ad..1e0a0a46ef 100644 --- a/docs/d6/d5b/classshaka_1_1Status-members.html +++ b/docs/d6/d5b/classshaka_1_1Status-members.html @@ -86,7 +86,7 @@ $(function() { 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 babd7f4a45..9422cd4a05 100644 --- a/docs/d6/d60/classshaka_1_1media_1_1VPCodecConfigurationRecord-members.html +++ b/docs/d6/d60/classshaka_1_1media_1_1VPCodecConfigurationRecord-members.html @@ -124,7 +124,7 @@ $(function() { diff --git a/docs/d6/d62/structshaka_1_1TestParams.html b/docs/d6/d62/structshaka_1_1TestParams.html index 09fc485e28..edfb149f67 100644 --- a/docs/d6/d62/structshaka_1_1TestParams.html +++ b/docs/d6/d62/structshaka_1_1TestParams.html @@ -134,7 +134,7 @@ bool  diff --git a/docs/d6/d66/structshaka_1_1RawKeyParams_1_1KeyInfo-members.html b/docs/d6/d66/structshaka_1_1RawKeyParams_1_1KeyInfo-members.html index 51407b3cf7..dd066ee460 100644 --- a/docs/d6/d66/structshaka_1_1RawKeyParams_1_1KeyInfo-members.html +++ b/docs/d6/d66/structshaka_1_1RawKeyParams_1_1KeyInfo-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/d6/d6b/classshaka_1_1media_1_1RawKeySource-members.html b/docs/d6/d6b/classshaka_1_1media_1_1RawKeySource-members.html index ba08d7f4df..50d1ffd02a 100644 --- a/docs/d6/d6b/classshaka_1_1media_1_1RawKeySource-members.html +++ b/docs/d6/d6b/classshaka_1_1media_1_1RawKeySource-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/d6/d6c/h26x__bit__reader_8cc_source.html b/docs/d6/d6c/h26x__bit__reader_8cc_source.html index c04f71069f..5917b37d16 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 @@ $(function() { diff --git a/docs/d6/d6e/ts__section__pes_8cc_source.html b/docs/d6/d6e/ts__section__pes_8cc_source.html index d430edb2a9..d6b53d35e1 100644 --- a/docs/d6/d6e/ts__section__pes_8cc_source.html +++ b/docs/d6/d6e/ts__section__pes_8cc_source.html @@ -391,7 +391,7 @@ $(function() { diff --git a/docs/d6/d71/scoped__xml__ptr_8h_source.html b/docs/d6/d71/scoped__xml__ptr_8h_source.html index 59953a56c5..d50bc7e578 100644 --- a/docs/d6/d71/scoped__xml__ptr_8h_source.html +++ b/docs/d6/d71/scoped__xml__ptr_8h_source.html @@ -118,7 +118,7 @@ $(function() { diff --git a/docs/d6/d74/classshaka_1_1UdpOptions-members.html b/docs/d6/d74/classshaka_1_1UdpOptions-members.html index cf96989135..16d7395551 100644 --- a/docs/d6/d74/classshaka_1_1UdpOptions-members.html +++ b/docs/d6/d74/classshaka_1_1UdpOptions-members.html @@ -85,7 +85,7 @@ $(function() { 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 961823d516..ad1daabfc2 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 @@ -154,7 +154,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 4942075075..106c270a25 100644 --- a/docs/d6/d7b/webm__tracks__parser_8h_source.html +++ b/docs/d6/d7b/webm__tracks__parser_8h_source.html @@ -188,7 +188,7 @@ $(function() { 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 3853722467..0ff565f53d 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/d6/d84/multi__codec__muxer__listener_8cc_source.html b/docs/d6/d84/multi__codec__muxer__listener_8cc_source.html index 5826127088..6c1e65b0fd 100644 --- a/docs/d6/d84/multi__codec__muxer__listener_8cc_source.html +++ b/docs/d6/d84/multi__codec__muxer__listener_8cc_source.html @@ -120,7 +120,7 @@ $(function() { diff --git a/docs/d6/d86/bandwidth__estimator_8cc_source.html b/docs/d6/d86/bandwidth__estimator_8cc_source.html index d366b525bb..e47dee3b37 100644 --- a/docs/d6/d86/bandwidth__estimator_8cc_source.html +++ b/docs/d6/d86/bandwidth__estimator_8cc_source.html @@ -189,7 +189,7 @@ $(function() { diff --git a/docs/d6/d8a/vp9__parser_8cc_source.html b/docs/d6/d8a/vp9__parser_8cc_source.html index 13efbc1f6e..faad793743 100644 --- a/docs/d6/d8a/vp9__parser_8cc_source.html +++ b/docs/d6/d8a/vp9__parser_8cc_source.html @@ -677,7 +677,7 @@ $(function() { 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 875aa4eca8..7392a6e347 100644 --- a/docs/d6/d8f/classshaka_1_1xml_1_1RepresentationBaseXmlNode-members.html +++ b/docs/d6/d8f/classshaka_1_1xml_1_1RepresentationBaseXmlNode-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/d6/d97/classshaka_1_1media_1_1ttml_1_1TtmlToMp4Handler-members.html b/docs/d6/d97/classshaka_1_1media_1_1ttml_1_1TtmlToMp4Handler-members.html index 1534c4bb5d..79c417dd0b 100644 --- a/docs/d6/d97/classshaka_1_1media_1_1ttml_1_1TtmlToMp4Handler-members.html +++ b/docs/d6/d97/classshaka_1_1media_1_1ttml_1_1TtmlToMp4Handler-members.html @@ -99,7 +99,7 @@ $(function() { diff --git a/docs/d6/d9b/h264__parser_8h_source.html b/docs/d6/d9b/h264__parser_8h_source.html index 3a60796bc5..6fff39904c 100644 --- a/docs/d6/d9b/h264__parser_8h_source.html +++ b/docs/d6/d9b/h264__parser_8h_source.html @@ -420,7 +420,7 @@ $(function() { diff --git a/docs/d6/d9f/hls__flags_8cc_source.html b/docs/d6/d9f/hls__flags_8cc_source.html index f2ee42f98a..55063dafd5 100644 --- a/docs/d6/d9f/hls__flags_8cc_source.html +++ b/docs/d6/d9f/hls__flags_8cc_source.html @@ -104,7 +104,7 @@ $(function() { diff --git a/docs/d6/d9f/webvtt__to__mp4__handler_8cc_source.html b/docs/d6/d9f/webvtt__to__mp4__handler_8cc_source.html index 110571d587..8a555c4dc9 100644 --- a/docs/d6/d9f/webvtt__to__mp4__handler_8cc_source.html +++ b/docs/d6/d9f/webvtt__to__mp4__handler_8cc_source.html @@ -340,7 +340,7 @@ $(function() { diff --git a/docs/d6/da0/ts__section__pat_8h_source.html b/docs/d6/da0/ts__section__pat_8h_source.html index b2453d3ee0..db3607bbb0 100644 --- a/docs/d6/da0/ts__section__pat_8h_source.html +++ b/docs/d6/da0/ts__section__pat_8h_source.html @@ -118,7 +118,7 @@ $(function() { diff --git a/docs/d6/da2/structshaka_1_1media_1_1mp4_1_1AC4Specific.html b/docs/d6/da2/structshaka_1_1media_1_1mp4_1_1AC4Specific.html index 22ff634fae..7fa7de1a14 100644 --- a/docs/d6/da2/structshaka_1_1media_1_1mp4_1_1AC4Specific.html +++ b/docs/d6/da2/structshaka_1_1media_1_1mp4_1_1AC4Specific.html @@ -154,7 +154,7 @@ Additional Inherited Members diff --git a/docs/d6/da3/mpd__builder_8h_source.html b/docs/d6/da3/mpd__builder_8h_source.html index 1ab134e13b..e5d49b7e15 100644 --- a/docs/d6/da3/mpd__builder_8h_source.html +++ b/docs/d6/da3/mpd__builder_8h_source.html @@ -193,7 +193,7 @@ $(function() { 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 652d67245c..cfec9f0092 100644 --- a/docs/d6/da4/classshaka_1_1media_1_1AVCDecoderConfigurationRecord-members.html +++ b/docs/d6/da4/classshaka_1_1media_1_1AVCDecoderConfigurationRecord-members.html @@ -103,7 +103,7 @@ $(function() { 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 79960e0f8e..602ed4c485 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 @@ -77,7 +77,7 @@ $(function() { diff --git a/docs/d6/da9/classshaka_1_1media_1_1BitReader.html b/docs/d6/da9/classshaka_1_1media_1_1BitReader.html index 77079fc41c..d279b63484 100644 --- a/docs/d6/da9/classshaka_1_1media_1_1BitReader.html +++ b/docs/d6/da9/classshaka_1_1media_1_1BitReader.html @@ -405,7 +405,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 9e341af620..1060e98385 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 @@ -166,7 +166,7 @@ Additional Inherited Members diff --git a/docs/d6/db0/widevine__pssh__generator_8cc_source.html b/docs/d6/db0/widevine__pssh__generator_8cc_source.html index 2f76b3a350..83158b300c 100644 --- a/docs/d6/db0/widevine__pssh__generator_8cc_source.html +++ b/docs/d6/db0/widevine__pssh__generator_8cc_source.html @@ -128,7 +128,7 @@ $(function() { diff --git a/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html b/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html index fda3445a44..72650789a0 100644 --- a/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html +++ b/docs/d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html @@ -504,7 +504,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 9b300ea4a2..ad5dd4e97e 100644 --- a/docs/d6/db1/structshaka_1_1media_1_1VideoStreamInfoParameters-members.html +++ b/docs/d6/db1/structshaka_1_1media_1_1VideoStreamInfoParameters-members.html @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/d6/dbe/mp4__output__params_8h_source.html b/docs/d6/dbe/mp4__output__params_8h_source.html index c3260307c7..13a542ab65 100644 --- a/docs/d6/dbe/mp4__output__params_8h_source.html +++ b/docs/d6/dbe/mp4__output__params_8h_source.html @@ -95,7 +95,7 @@ $(function() { diff --git a/docs/d6/dc0/classshaka_1_1hls_1_1HlsEntry-members.html b/docs/d6/dc0/classshaka_1_1hls_1_1HlsEntry-members.html index 6fffe71348..2abb0bd065 100644 --- a/docs/d6/dc0/classshaka_1_1hls_1_1HlsEntry-members.html +++ b/docs/d6/dc0/classshaka_1_1hls_1_1HlsEntry-members.html @@ -80,7 +80,7 @@ $(function() { 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 2f75d8ccd4..cf6c994857 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 @@ -79,7 +79,7 @@ $(function() { 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 baa4f181ab..5ffa3d0e80 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 @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/d6/dc8/mkv__writer_8cc_source.html b/docs/d6/dc8/mkv__writer_8cc_source.html index bc6d857e7f..60911b2850 100644 --- a/docs/d6/dc8/mkv__writer_8cc_source.html +++ b/docs/d6/dc8/mkv__writer_8cc_source.html @@ -172,7 +172,7 @@ $(function() { 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 dab1b9ba55..0f412d687f 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 @@ -235,7 +235,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 0b94377dd0..c043fbe8f1 100644 --- a/docs/d6/dcc/classshaka_1_1media_1_1VP9Parser-members.html +++ b/docs/d6/dcc/classshaka_1_1media_1_1VP9Parser-members.html @@ -83,7 +83,7 @@ $(function() { 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 139263f7c4..614052db57 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 @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html b/docs/d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html index 6349edbbe3..091fbd3e71 100644 --- a/docs/d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html +++ b/docs/d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html @@ -105,7 +105,7 @@ union { diff --git a/docs/d6/dd5/classshaka_1_1media_1_1DecoderSpecificInfoDescriptor-members.html b/docs/d6/dd5/classshaka_1_1media_1_1DecoderSpecificInfoDescriptor-members.html index e7e28ccccd..fa7e8bd8c2 100644 --- a/docs/d6/dd5/classshaka_1_1media_1_1DecoderSpecificInfoDescriptor-members.html +++ b/docs/d6/dd5/classshaka_1_1media_1_1DecoderSpecificInfoDescriptor-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/d6/dd7/structshaka_1_1Mp4OutputParams-members.html b/docs/d6/dd7/structshaka_1_1Mp4OutputParams-members.html index be8ed604b0..8a8f2b477f 100644 --- a/docs/d6/dd7/structshaka_1_1Mp4OutputParams-members.html +++ b/docs/d6/dd7/structshaka_1_1Mp4OutputParams-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/docs/d6/dda/classshaka_1_1media_1_1WebVttFileBuffer.html b/docs/d6/dda/classshaka_1_1media_1_1WebVttFileBuffer.html index b98d8c9004..eb2e9231c7 100644 --- a/docs/d6/dda/classshaka_1_1media_1_1WebVttFileBuffer.html +++ b/docs/d6/dda/classshaka_1_1media_1_1WebVttFileBuffer.html @@ -101,7 +101,7 @@ size_t sample_count () 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 64b708ebdf..022b465549 100644 --- a/docs/d6/dde/structshaka_1_1media_1_1H265VuiParameters-members.html +++ b/docs/d6/dde/structshaka_1_1media_1_1H265VuiParameters-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/d6/de2/structshaka_1_1media_1_1mp4_1_1KeyFrameInfo.html b/docs/d6/de2/structshaka_1_1media_1_1mp4_1_1KeyFrameInfo.html index 047f3d4b74..73cb5a3b7f 100644 --- a/docs/d6/de2/structshaka_1_1media_1_1mp4_1_1KeyFrameInfo.html +++ b/docs/d6/de2/structshaka_1_1media_1_1mp4_1_1KeyFrameInfo.html @@ -100,7 +100,7 @@ uint64_t size 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 c33b5be0c0..d0f068a8d6 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 @@ -88,7 +88,7 @@ $(function() { 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 9ab79e15a2..3296e059aa 100644 --- a/docs/d6/de7/structshaka_1_1media_1_1VPxFrameInfo-members.html +++ b/docs/d6/de7/structshaka_1_1media_1_1VPxFrameInfo-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/d6/de8/local__file_8cc_source.html b/docs/d6/de8/local__file_8cc_source.html index 0529f42b00..4d7100fc5b 100644 --- a/docs/d6/de8/local__file_8cc_source.html +++ b/docs/d6/de8/local__file_8cc_source.html @@ -288,7 +288,7 @@ $(function() { diff --git a/docs/d6/de8/network__util_8h_source.html b/docs/d6/de8/network__util_8h_source.html index 9417970e61..c8acb3d565 100644 --- a/docs/d6/de8/network__util_8h_source.html +++ b/docs/d6/de8/network__util_8h_source.html @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/d6/de9/ts__segmenter_8cc_source.html b/docs/d6/de9/ts__segmenter_8cc_source.html index e82083d00d..2fa5b620cc 100644 --- a/docs/d6/de9/ts__segmenter_8cc_source.html +++ b/docs/d6/de9/ts__segmenter_8cc_source.html @@ -309,7 +309,7 @@ $(function() { diff --git a/docs/d6/ded/ts__packet_8h_source.html b/docs/d6/ded/ts__packet_8h_source.html index c1c34a750e..c434126951 100644 --- a/docs/d6/ded/ts__packet_8h_source.html +++ b/docs/d6/ded/ts__packet_8h_source.html @@ -152,7 +152,7 @@ $(function() { diff --git a/docs/d6/def/sync__sample__iterator_8cc_source.html b/docs/d6/def/sync__sample__iterator_8cc_source.html index 6e6c5b8790..cc21f47069 100644 --- a/docs/d6/def/sync__sample__iterator_8cc_source.html +++ b/docs/d6/def/sync__sample__iterator_8cc_source.html @@ -123,7 +123,7 @@ $(function() { diff --git a/docs/d6/df8/structshaka_1_1StreamDescriptor-members.html b/docs/d6/df8/structshaka_1_1StreamDescriptor-members.html index 8fee7bc9b2..bde775f3f7 100644 --- a/docs/d6/df8/structshaka_1_1StreamDescriptor-members.html +++ b/docs/d6/df8/structshaka_1_1StreamDescriptor-members.html @@ -95,7 +95,7 @@ $(function() { diff --git a/docs/d6/dfd/classshaka_1_1media_1_1mp2t_1_1AudioHeader-members.html b/docs/d6/dfd/classshaka_1_1media_1_1mp2t_1_1AudioHeader-members.html index 44bcb8031f..f1b08a9098 100644 --- a/docs/d6/dfd/classshaka_1_1media_1_1mp2t_1_1AudioHeader-members.html +++ b/docs/d6/dfd/classshaka_1_1media_1_1mp2t_1_1AudioHeader-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/d6/dff/classshaka_1_1media_1_1Nalu.html b/docs/d6/dff/classshaka_1_1media_1_1Nalu.html index 5f1b15116c..a6ba140669 100644 --- a/docs/d6/dff/classshaka_1_1media_1_1Nalu.html +++ b/docs/d6/dff/classshaka_1_1media_1_1Nalu.html @@ -228,7 +228,7 @@ bool can_start_access_unit diff --git a/docs/d7/d01/classshaka_1_1media_1_1MuxerFactory-members.html b/docs/d7/d01/classshaka_1_1media_1_1MuxerFactory-members.html index 1617357725..bf792fc89c 100644 --- a/docs/d7/d01/classshaka_1_1media_1_1MuxerFactory-members.html +++ b/docs/d7/d01/classshaka_1_1media_1_1MuxerFactory-members.html @@ -79,7 +79,7 @@ $(function() { 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 645dd92669..f739a3341c 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 @@ -173,7 +173,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 c581f7fafd..a943af74aa 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 @@ -163,7 +163,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 346ef81d69..bc22d257ff 100644 --- a/docs/d7/d0b/muxer__listener__test__helper_8h_source.html +++ b/docs/d7/d0b/muxer__listener__test__helper_8h_source.html @@ -114,73 +114,100 @@ $(function() {
      43  "container_type: 1\n"
      44  "media_file_name: 'test_output_file_name.mp4'\n"
      45  "media_duration_seconds: 10.5\n";
      -
      46 const uint32_t kDefaultReferenceTimeScale = 1000u;
      -
      47 
      -
      48 // Struct that gets passed for to CreateVideoStreamInfo() to create a
      -
      49 // StreamInfo instance. Useful for generating multiple VideoStreamInfo with
      -
      50 // slightly different parameters.
      - - - -
      54  int track_id;
      -
      55  uint32_t time_scale;
      -
      56  uint64_t duration;
      -
      57  Codec codec;
      -
      58  std::string codec_string;
      -
      59  std::string language;
      -
      60  uint16_t width;
      -
      61  uint16_t height;
      -
      62  uint32_t pixel_width;
      -
      63  uint32_t pixel_height;
      -
      64  uint8_t nalu_length_size;
      -
      65  std::vector<uint8_t> codec_config;
      -
      66  bool is_encrypted;
      -
      67 };
      -
      68 
      - -
      70  std::string file_name;
      -
      71  uint64_t start_time;
      -
      72  uint64_t duration;
      -
      73  uint64_t segment_file_size;
      -
      74 };
      -
      75 
      -
      76 // Note that this does not have vector of StreamInfo pointer.
      - -
      78  MuxerListener::MediaRanges media_ranges;
      -
      79  float duration_seconds;
      -
      80 };
      -
      81 
      -
      82 // Creates StreamInfo instance from VideoStreamInfoParameters.
      -
      83 std::shared_ptr<VideoStreamInfo> CreateVideoStreamInfo(
      -
      84  const VideoStreamInfoParameters& param);
      -
      85 
      -
      86 // Returns the "default" VideoStreamInfoParameters for testing.
      -
      87 VideoStreamInfoParameters GetDefaultVideoStreamInfoParams();
      -
      88 
      -
      89 // Returns the "default" values for OnMediaEnd().
      -
      90 OnMediaEndParameters GetDefaultOnMediaEndParams();
      -
      91 
      -
      92 // Returns the "default" ProtectionSystemSpecificInfo for testing.
      -
      93 std::vector<ProtectionSystemSpecificInfo> GetDefaultKeySystemInfo();
      -
      94 
      -
      95 // Sets "default" values for muxer_options for testing.
      -
      96 void SetDefaultMuxerOptions(MuxerOptions* muxer_options);
      -
      97 
      -
      98 } // namespace media
      -
      99 
      -
      100 } // namespace shaka
      -
      101 
      -
      102 #endif // PACKAGER_MEDIA_EVENT_MUXER_LISTENER_TEST_HELPER_H_
      +
      46 
      +
      47 const char kExpectedDefaultMediaInfoSubsegmentRange[] =
      +
      48  "video_info {\n"
      +
      49  " codec: 'avc1.010101'\n"
      +
      50  " width: 720\n"
      +
      51  " height: 480\n"
      +
      52  " time_scale: 10\n"
      +
      53  " pixel_width: 1\n"
      +
      54  " pixel_height: 1\n"
      +
      55  "}\n"
      +
      56  "init_range {\n"
      +
      57  " begin: 0\n"
      +
      58  " end: 120\n"
      +
      59  "}\n"
      +
      60  "index_range {\n"
      +
      61  " begin: 121\n"
      +
      62  " end: 221\n"
      +
      63  "}\n"
      +
      64  "reference_time_scale: 1000\n"
      +
      65  "container_type: 1\n"
      +
      66  "media_file_name: 'test_output_file_name.mp4'\n"
      +
      67  "media_duration_seconds: 10.5\n"
      +
      68  "subsegment_ranges {\n"
      +
      69  " begin: 222\n"
      +
      70  " end: 9999\n"
      +
      71  "}\n";
      +
      72 
      +
      73 const uint32_t kDefaultReferenceTimeScale = 1000u;
      +
      74 
      +
      75 // Struct that gets passed for to CreateVideoStreamInfo() to create a
      +
      76 // StreamInfo instance. Useful for generating multiple VideoStreamInfo with
      +
      77 // slightly different parameters.
      + + + +
      81  int track_id;
      +
      82  uint32_t time_scale;
      +
      83  uint64_t duration;
      +
      84  Codec codec;
      +
      85  std::string codec_string;
      +
      86  std::string language;
      +
      87  uint16_t width;
      +
      88  uint16_t height;
      +
      89  uint32_t pixel_width;
      +
      90  uint32_t pixel_height;
      +
      91  uint8_t nalu_length_size;
      +
      92  std::vector<uint8_t> codec_config;
      +
      93  bool is_encrypted;
      +
      94 };
      +
      95 
      + +
      97  std::string file_name;
      +
      98  uint64_t start_time;
      +
      99  uint64_t duration;
      +
      100  uint64_t segment_file_size;
      +
      101 };
      +
      102 
      +
      103 // Note that this does not have vector of StreamInfo pointer.
      + +
      105  MuxerListener::MediaRanges media_ranges;
      +
      106  float duration_seconds;
      +
      107 };
      +
      108 
      +
      109 // Creates StreamInfo instance from VideoStreamInfoParameters.
      +
      110 std::shared_ptr<VideoStreamInfo> CreateVideoStreamInfo(
      +
      111  const VideoStreamInfoParameters& param);
      +
      112 
      +
      113 // Returns the "default" VideoStreamInfoParameters for testing.
      +
      114 VideoStreamInfoParameters GetDefaultVideoStreamInfoParams();
      +
      115 
      +
      116 // Returns the "default" values for OnMediaEnd().
      +
      117 OnMediaEndParameters GetDefaultOnMediaEndParams();
      +
      118 
      +
      119 // Returns the "default" ProtectionSystemSpecificInfo for testing.
      +
      120 std::vector<ProtectionSystemSpecificInfo> GetDefaultKeySystemInfo();
      +
      121 
      +
      122 // Sets "default" values for muxer_options for testing.
      +
      123 void SetDefaultMuxerOptions(MuxerOptions* muxer_options);
      +
      124 
      +
      125 } // namespace media
      +
      126 
      +
      127 } // namespace shaka
      +
      128 
      +
      129 #endif // PACKAGER_MEDIA_EVENT_MUXER_LISTENER_TEST_HELPER_H_
      All the methods that are virtual are virtual for mocking.
      This structure contains the list of configuration options for Muxer.
      Definition: muxer_options.h:20
      - - - + + + diff --git a/docs/d7/d12/media__parser_8h_source.html b/docs/d7/d12/media__parser_8h_source.html index 611b850fdc..0eee74c0ee 100644 --- a/docs/d7/d12/media__parser_8h_source.html +++ b/docs/d7/d12/media__parser_8h_source.html @@ -139,7 +139,7 @@ $(function() { diff --git a/docs/d7/d15/mpd__notifier_8h_source.html b/docs/d7/d15/mpd__notifier_8h_source.html index 22fe0a4bcf..886e16e95f 100644 --- a/docs/d7/d15/mpd__notifier_8h_source.html +++ b/docs/d7/d15/mpd__notifier_8h_source.html @@ -130,17 +130,22 @@ $(function() {
      112 
      114  MpdType mpd_type() const { return mpd_options_.mpd_type; }
      115 
      -
      116  private:
      -
      117  const MpdOptions mpd_options_;
      -
      118 
      -
      119  DISALLOW_COPY_AND_ASSIGN(MpdNotifier);
      -
      120 };
      -
      121 
      -
      122 } // namespace shaka
      +
      117  bool use_segment_list() const {
      +
      118  return mpd_options_.mpd_params.use_segment_list;
      +
      119  }
      +
      120 
      +
      121  private:
      +
      122  const MpdOptions mpd_options_;
      123 
      -
      124 #endif // MPD_BASE_MPD_NOTIFIER_H_
      +
      124  DISALLOW_COPY_AND_ASSIGN(MpdNotifier);
      +
      125 };
      +
      126 
      +
      127 } // namespace shaka
      +
      128 
      +
      129 #endif // MPD_BASE_MPD_NOTIFIER_H_
      MpdType mpd_type() const
      Definition: mpd_notifier.h:114
      +
      bool use_segment_list() const
      Definition: mpd_notifier.h:117
      virtual bool NotifyNewSegment(uint32_t container_id, uint64_t start_time, uint64_t duration, uint64_t size)=0
      DashProfile dash_profile() const
      Definition: mpd_notifier.h:111
      virtual bool NotifyMediaInfoUpdate(uint32_t container_id, const MediaInfo &media_info)=0
      @@ -154,10 +159,11 @@ $(function() {
      All the methods that are virtual are virtual for mocking.
      Defines Mpd Options.
      Definition: mpd_options.h:25
      bool include_mspr_pro
      Definition: mpd_params.h:89
      +
      bool use_segment_list
      Definition: mpd_params.h:93
      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 92f31e205d..ca31a741e2 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 @@ -99,7 +99,7 @@ $(function() { diff --git a/docs/d7/d1d/text__chunker_8h_source.html b/docs/d7/d1d/text__chunker_8h_source.html index 3a39a7a724..f46a03fd24 100644 --- a/docs/d7/d1d/text__chunker_8h_source.html +++ b/docs/d7/d1d/text__chunker_8h_source.html @@ -140,7 +140,7 @@ $(function() { diff --git a/docs/d7/d1e/subsample__generator_8cc_source.html b/docs/d7/d1e/subsample__generator_8cc_source.html index cd992c1183..b0c965f4cb 100644 --- a/docs/d7/d1e/subsample__generator_8cc_source.html +++ b/docs/d7/d1e/subsample__generator_8cc_source.html @@ -456,7 +456,7 @@ $(function() { diff --git a/docs/d7/d20/period_8h_source.html b/docs/d7/d20/period_8h_source.html index eef2896aea..8584d84ff5 100644 --- a/docs/d7/d20/period_8h_source.html +++ b/docs/d7/d20/period_8h_source.html @@ -226,7 +226,7 @@ $(function() { diff --git a/docs/d7/d21/classshaka_1_1MockPeriod-members.html b/docs/d7/d21/classshaka_1_1MockPeriod-members.html index 2189cd912f..0768a2c130 100644 --- a/docs/d7/d21/classshaka_1_1MockPeriod-members.html +++ b/docs/d7/d21/classshaka_1_1MockPeriod-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/d7/d22/libcrypto__threading_8h_source.html b/docs/d7/d22/libcrypto__threading_8h_source.html index c2c253ec43..e720ca2d5f 100644 --- a/docs/d7/d22/libcrypto__threading_8h_source.html +++ b/docs/d7/d22/libcrypto__threading_8h_source.html @@ -101,7 +101,7 @@ $(function() { 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 1f7a5da1ec..d249c922d6 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 @@ -161,7 +161,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 c111442db9..cec9daaf55 100644 --- a/docs/d7/d29/structshaka_1_1media_1_1H265Sps-members.html +++ b/docs/d7/d29/structshaka_1_1media_1_1H265Sps-members.html @@ -126,7 +126,7 @@ $(function() { 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 66a0aa0abf..b2910cf8d5 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d7/d2a/manifest__flags_8h_source.html b/docs/d7/d2a/manifest__flags_8h_source.html index 2d96b31f2d..5792afeec6 100644 --- a/docs/d7/d2a/manifest__flags_8h_source.html +++ b/docs/d7/d2a/manifest__flags_8h_source.html @@ -91,7 +91,7 @@ $(function() { diff --git a/docs/d7/d30/classshaka_1_1media_1_1SubtitleComposer.html b/docs/d7/d30/classshaka_1_1media_1_1SubtitleComposer.html index b8d3a47007..0c9e88a14b 100644 --- a/docs/d7/d30/classshaka_1_1media_1_1SubtitleComposer.html +++ b/docs/d7/d30/classshaka_1_1media_1_1SubtitleComposer.html @@ -120,7 +120,7 @@ void ClearObjects () diff --git a/docs/d7/d34/structshaka_1_1media_1_1EncryptionConfig.html b/docs/d7/d34/structshaka_1_1media_1_1EncryptionConfig.html index 91a67c314e..18c0bbeb03 100644 --- a/docs/d7/d34/structshaka_1_1media_1_1EncryptionConfig.html +++ b/docs/d7/d34/structshaka_1_1media_1_1EncryptionConfig.html @@ -106,7 +106,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 e4f9621ddd..b064206fec 100644 --- a/docs/d7/d36/classshaka_1_1media_1_1ContentEncoding-members.html +++ b/docs/d7/d36/classshaka_1_1media_1_1ContentEncoding-members.html @@ -111,7 +111,7 @@ $(function() { diff --git a/docs/d7/d36/structshaka_1_1media_1_1AV1Parser_1_1Tile.html b/docs/d7/d36/structshaka_1_1media_1_1AV1Parser_1_1Tile.html index f70f772091..c333bf5ecb 100644 --- a/docs/d7/d36/structshaka_1_1media_1_1AV1Parser_1_1Tile.html +++ b/docs/d7/d36/structshaka_1_1media_1_1AV1Parser_1_1Tile.html @@ -91,7 +91,7 @@ size_t size_in_bytes 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 cd5f2efb9a..abc1bf7134 100644 --- a/docs/d7/d42/protection__system__specific__info_8cc_source.html +++ b/docs/d7/d42/protection__system__specific__info_8cc_source.html @@ -227,7 +227,7 @@ $(function() { 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 8e32263187..7ebb61fae3 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 @@ -169,7 +169,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 dc621f6d81..fd9c2114db 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 @@ -98,7 +98,7 @@ $(function() { 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 9d18f8ef5f..3f0b8a53c2 100644 --- a/docs/d7/d46/classshaka_1_1media_1_1WebMListParser-members.html +++ b/docs/d7/d46/classshaka_1_1media_1_1WebMListParser-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/d7/d4f/classshaka_1_1media_1_1CommonPsshGenerator-members.html b/docs/d7/d4f/classshaka_1_1media_1_1CommonPsshGenerator-members.html index 54bcdf106e..6374248c9a 100644 --- a/docs/d7/d4f/classshaka_1_1media_1_1CommonPsshGenerator-members.html +++ b/docs/d7/d4f/classshaka_1_1media_1_1CommonPsshGenerator-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/d7/d53/classshaka_1_1media_1_1WebVttToMp4Handler.html b/docs/d7/d53/classshaka_1_1media_1_1WebVttToMp4Handler.html index aeb78f2644..51750d88aa 100644 --- a/docs/d7/d53/classshaka_1_1media_1_1WebVttToMp4Handler.html +++ b/docs/d7/d53/classshaka_1_1media_1_1WebVttToMp4Handler.html @@ -168,7 +168,7 @@ const std::map< size_t, std::pair< std::shared_ptr< 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 347e18a8c8..37f466fa79 100644 --- a/docs/d7/d54/classshaka_1_1media_1_1H26xByteToUnitStreamConverter-members.html +++ b/docs/d7/d54/classshaka_1_1media_1_1H26xByteToUnitStreamConverter-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/d7/d59/classshaka_1_1media_1_1DecryptorSource.html b/docs/d7/d59/classshaka_1_1media_1_1DecryptorSource.html index 95745355ce..dcd3ff7977 100644 --- a/docs/d7/d59/classshaka_1_1media_1_1DecryptorSource.html +++ b/docs/d7/d59/classshaka_1_1media_1_1DecryptorSource.html @@ -184,7 +184,7 @@ Public Member Functions diff --git a/docs/d7/d5a/classshaka_1_1media_1_1SyncPointQueue-members.html b/docs/d7/d5a/classshaka_1_1media_1_1SyncPointQueue-members.html index 95890e4f3b..f60a6b93b3 100644 --- a/docs/d7/d5a/classshaka_1_1media_1_1SyncPointQueue-members.html +++ b/docs/d7/d5a/classshaka_1_1media_1_1SyncPointQueue-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html b/docs/d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html index da342487b1..e6cd98a976 100644 --- a/docs/d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html +++ b/docs/d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html @@ -597,7 +597,7 @@ class  diff --git a/docs/d7/d6c/structshaka_1_1HlsParams-members.html b/docs/d7/d6c/structshaka_1_1HlsParams-members.html index 2f0ff4395f..de731d1d0b 100644 --- a/docs/d7/d6c/structshaka_1_1HlsParams-members.html +++ b/docs/d7/d6c/structshaka_1_1HlsParams-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/d7/d6d/classshaka_1_1media_1_1MediaSample.html b/docs/d7/d6d/classshaka_1_1media_1_1MediaSample.html index f09ef6512d..9122f1b098 100644 --- a/docs/d7/d6d/classshaka_1_1media_1_1MediaSample.html +++ b/docs/d7/d6d/classshaka_1_1media_1_1MediaSample.html @@ -468,7 +468,7 @@ Protected Member Functions diff --git a/docs/d7/d6d/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes.html b/docs/d7/d6d/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes.html index 0db94f7690..f03b0d8493 100644 --- a/docs/d7/d6d/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes.html +++ b/docs/d7/d6d/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes.html @@ -112,7 +112,7 @@ union diff --git a/docs/d7/d72/classshaka_1_1media_1_1MockAesCryptor-members.html b/docs/d7/d72/classshaka_1_1media_1_1MockAesCryptor-members.html index bcde595e87..2c2e77bb23 100644 --- a/docs/d7/d72/classshaka_1_1media_1_1MockAesCryptor-members.html +++ b/docs/d7/d72/classshaka_1_1media_1_1MockAesCryptor-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/d7/d75/callback__file_8h_source.html b/docs/d7/d75/callback__file_8h_source.html index 3872ded63a..86fae27c2c 100644 --- a/docs/d7/d75/callback__file_8h_source.html +++ b/docs/d7/d75/callback__file_8h_source.html @@ -123,7 +123,7 @@ $(function() { 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 e7f1320a6d..57b1b98537 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 @@ -96,7 +96,7 @@ $(function() { 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 637b3f7fed..f04ed63f81 100644 --- a/docs/d7/d78/structshaka_1_1media_1_1H264SEIMessage-members.html +++ b/docs/d7/d78/structshaka_1_1media_1_1H264SEIMessage-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/d7/d79/chunking__handler_8h_source.html b/docs/d7/d79/chunking__handler_8h_source.html index d41ea395b3..ced8fe9acd 100644 --- a/docs/d7/d79/chunking__handler_8h_source.html +++ b/docs/d7/d79/chunking__handler_8h_source.html @@ -153,7 +153,7 @@ $(function() { diff --git a/docs/d7/d7c/vlog__flags_8h_source.html b/docs/d7/d7c/vlog__flags_8h_source.html index 79bcdabfa2..aaabfbbc6c 100644 --- a/docs/d7/d7c/vlog__flags_8h_source.html +++ b/docs/d7/d7c/vlog__flags_8h_source.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/d7/d87/video__stream__info_8h_source.html b/docs/d7/d87/video__stream__info_8h_source.html index 8aa760aa81..45d1c0df45 100644 --- a/docs/d7/d87/video__stream__info_8h_source.html +++ b/docs/d7/d87/video__stream__info_8h_source.html @@ -208,7 +208,7 @@ $(function() { diff --git a/docs/d7/d91/text__padder_8h_source.html b/docs/d7/d91/text__padder_8h_source.html index c42de866d5..ed001ef010 100644 --- a/docs/d7/d91/text__padder_8h_source.html +++ b/docs/d7/d91/text__padder_8h_source.html @@ -115,7 +115,7 @@ $(function() { diff --git a/docs/d7/d94/classshaka_1_1media_1_1CachingMediaHandler.html b/docs/d7/d94/classshaka_1_1media_1_1CachingMediaHandler.html index ec5f7a139d..93bc4424a8 100644 --- a/docs/d7/d94/classshaka_1_1media_1_1CachingMediaHandler.html +++ b/docs/d7/d94/classshaka_1_1media_1_1CachingMediaHandler.html @@ -170,7 +170,7 @@ const std::map< size_t, std::pair< std::shared_ptr< diff --git a/docs/d7/d94/representation_8cc_source.html b/docs/d7/d94/representation_8cc_source.html index 9def55cd63..dedeeaabc9 100644 --- a/docs/d7/d94/representation_8cc_source.html +++ b/docs/d7/d94/representation_8cc_source.html @@ -336,272 +336,274 @@ $(function() {
      265  }
      266 
      267  if (HasVODOnlyFields(media_info_) &&
      -
      268  !representation.AddVODOnlyInfo(media_info_)) {
      -
      269  LOG(ERROR) << "Failed to add VOD info.";
      -
      270  return base::nullopt;
      -
      271  }
      -
      272 
      -
      273  if (HasLiveOnlyFields(media_info_) &&
      -
      274  !representation.AddLiveOnlyInfo(media_info_, segment_infos_,
      -
      275  start_number_)) {
      -
      276  LOG(ERROR) << "Failed to add Live info.";
      -
      277  return base::nullopt;
      -
      278  }
      -
      279  // TODO(rkuroiwa): It is likely that all representations have the exact same
      -
      280  // SegmentTemplate. Optimize and propagate the tag up to AdaptationSet level.
      -
      281 
      -
      282  output_suppression_flags_ = 0;
      -
      283  return std::move(representation);
      -
      284 }
      -
      285 
      -
      286 void Representation::SuppressOnce(SuppressFlag flag) {
      -
      287  output_suppression_flags_ |= flag;
      -
      288 }
      -
      289 
      - -
      291  double presentation_time_offset) {
      -
      292  int64_t pto = presentation_time_offset * media_info_.reference_time_scale();
      -
      293  if (pto <= 0)
      -
      294  return;
      -
      295  media_info_.set_presentation_time_offset(pto);
      -
      296 }
      -
      297 
      - -
      299  double* start_timestamp_seconds,
      -
      300  double* end_timestamp_seconds) const {
      -
      301  if (segment_infos_.empty())
      -
      302  return false;
      -
      303 
      -
      304  if (start_timestamp_seconds) {
      -
      305  *start_timestamp_seconds =
      -
      306  static_cast<double>(segment_infos_.begin()->start_time) /
      -
      307  GetTimeScale(media_info_);
      -
      308  }
      -
      309  if (end_timestamp_seconds) {
      -
      310  *end_timestamp_seconds =
      -
      311  static_cast<double>(segment_infos_.rbegin()->start_time +
      -
      312  segment_infos_.rbegin()->duration *
      -
      313  (segment_infos_.rbegin()->repeat + 1)) /
      -
      314  GetTimeScale(media_info_);
      -
      315  }
      -
      316  return true;
      -
      317 }
      -
      318 
      -
      319 bool Representation::HasRequiredMediaInfoFields() const {
      -
      320  if (HasVODOnlyFields(media_info_) && HasLiveOnlyFields(media_info_)) {
      -
      321  LOG(ERROR) << "MediaInfo cannot have both VOD and Live fields.";
      -
      322  return false;
      -
      323  }
      -
      324 
      -
      325  if (!media_info_.has_container_type()) {
      -
      326  LOG(ERROR) << "MediaInfo missing required field: container_type.";
      -
      327  return false;
      -
      328  }
      -
      329 
      -
      330  return true;
      -
      331 }
      -
      332 
      -
      333 void Representation::AddSegmentInfo(int64_t start_time, int64_t duration) {
      -
      334  const uint64_t kNoRepeat = 0;
      -
      335  const int64_t adjusted_duration = AdjustDuration(duration);
      -
      336 
      -
      337  if (!segment_infos_.empty()) {
      -
      338  // Contiguous segment.
      -
      339  const SegmentInfo& previous = segment_infos_.back();
      -
      340  const int64_t previous_segment_end_time =
      -
      341  previous.start_time + previous.duration * (previous.repeat + 1);
      -
      342  // Make it continuous if the segment start time is close to previous segment
      -
      343  // end time.
      -
      344  if (ApproximiatelyEqual(previous_segment_end_time, start_time)) {
      -
      345  const int64_t segment_end_time_for_same_duration =
      -
      346  previous_segment_end_time + previous.duration;
      -
      347  const int64_t actual_segment_end_time = start_time + duration;
      -
      348  // Consider the segments having identical duration if the segment end time
      -
      349  // is close to calculated segment end time by assuming identical duration.
      -
      350  if (ApproximiatelyEqual(segment_end_time_for_same_duration,
      -
      351  actual_segment_end_time)) {
      -
      352  ++segment_infos_.back().repeat;
      -
      353  } else {
      -
      354  segment_infos_.push_back(
      -
      355  {previous_segment_end_time,
      -
      356  actual_segment_end_time - previous_segment_end_time, kNoRepeat});
      -
      357  }
      -
      358  return;
      -
      359  }
      -
      360 
      -
      361  // A gap since previous.
      -
      362  const int64_t kRoundingErrorGrace = 5;
      -
      363  if (previous_segment_end_time + kRoundingErrorGrace < start_time) {
      -
      364  LOG(WARNING) << RepresentationAsString() << " Found a gap of size "
      -
      365  << (start_time - previous_segment_end_time)
      -
      366  << " > kRoundingErrorGrace (" << kRoundingErrorGrace
      -
      367  << "). The new segment starts at " << start_time
      -
      368  << " but the previous segment ends at "
      -
      369  << previous_segment_end_time << ".";
      -
      370  }
      -
      371 
      -
      372  // No overlapping segments.
      -
      373  if (start_time < previous_segment_end_time - kRoundingErrorGrace) {
      -
      374  LOG(WARNING)
      -
      375  << RepresentationAsString()
      -
      376  << " Segments should not be overlapping. The new segment starts at "
      -
      377  << start_time << " but the previous segment ends at "
      -
      378  << previous_segment_end_time << ".";
      -
      379  }
      -
      380  }
      -
      381 
      -
      382  segment_infos_.push_back({start_time, adjusted_duration, kNoRepeat});
      -
      383 }
      -
      384 
      -
      385 bool Representation::ApproximiatelyEqual(int64_t time1, int64_t time2) const {
      -
      386  if (!allow_approximate_segment_timeline_)
      -
      387  return time1 == time2;
      -
      388 
      -
      389  // It is not always possible to align segment duration to target duration
      -
      390  // exactly. For example, for AAC with sampling rate of 44100, there are always
      -
      391  // 1024 audio samples per frame, so the frame duration is 1024/44100. For a
      -
      392  // target duration of 2 seconds, the closest segment duration would be 1.984
      -
      393  // or 2.00533.
      -
      394 
      -
      395  // An arbitrary error threshold cap. This makes sure that the error is not too
      -
      396  // large for large samples.
      -
      397  const double kErrorThresholdSeconds = 0.05;
      -
      398 
      -
      399  // So we consider two times equal if they differ by less than one sample.
      -
      400  const uint32_t error_threshold =
      -
      401  std::min(frame_duration_,
      -
      402  static_cast<uint32_t>(kErrorThresholdSeconds *
      -
      403  media_info_.reference_time_scale()));
      -
      404  return std::abs(time1 - time2) <= error_threshold;
      -
      405 }
      -
      406 
      -
      407 int64_t Representation::AdjustDuration(int64_t duration) const {
      -
      408  if (!allow_approximate_segment_timeline_)
      -
      409  return duration;
      -
      410  const int64_t scaled_target_duration =
      -
      411  mpd_options_.mpd_params.target_segment_duration *
      -
      412  media_info_.reference_time_scale();
      -
      413  return ApproximiatelyEqual(scaled_target_duration, duration)
      -
      414  ? scaled_target_duration
      -
      415  : duration;
      -
      416 }
      -
      417 
      -
      418 void Representation::SlideWindow() {
      -
      419  if (mpd_options_.mpd_params.time_shift_buffer_depth <= 0.0 ||
      -
      420  mpd_options_.mpd_type == MpdType::kStatic)
      -
      421  return;
      -
      422 
      -
      423  const uint32_t time_scale = GetTimeScale(media_info_);
      -
      424  DCHECK_GT(time_scale, 0u);
      -
      425 
      -
      426  const int64_t time_shift_buffer_depth = static_cast<int64_t>(
      -
      427  mpd_options_.mpd_params.time_shift_buffer_depth * time_scale);
      -
      428 
      -
      429  if (current_buffer_depth_ <= time_shift_buffer_depth)
      -
      430  return;
      -
      431 
      -
      432  std::list<SegmentInfo>::iterator first = segment_infos_.begin();
      -
      433  std::list<SegmentInfo>::iterator last = first;
      -
      434  for (; last != segment_infos_.end(); ++last) {
      -
      435  // Remove the current segment only if it falls completely out of time shift
      -
      436  // buffer range.
      -
      437  while (last->repeat >= 0 &&
      -
      438  current_buffer_depth_ - last->duration >= time_shift_buffer_depth) {
      -
      439  current_buffer_depth_ -= last->duration;
      -
      440  RemoveOldSegment(&*last);
      -
      441  start_number_++;
      -
      442  }
      -
      443  if (last->repeat >= 0)
      -
      444  break;
      -
      445  }
      -
      446  segment_infos_.erase(first, last);
      -
      447 }
      -
      448 
      -
      449 void Representation::RemoveOldSegment(SegmentInfo* segment_info) {
      -
      450  int64_t segment_start_time = segment_info->start_time;
      -
      451  segment_info->start_time += segment_info->duration;
      -
      452  segment_info->repeat--;
      -
      453 
      -
      454  if (mpd_options_.mpd_params.preserved_segments_outside_live_window == 0)
      -
      455  return;
      -
      456 
      -
      457  segments_to_be_removed_.push_back(
      -
      458  media::GetSegmentName(media_info_.segment_template(), segment_start_time,
      -
      459  start_number_ - 1, media_info_.bandwidth()));
      -
      460  while (segments_to_be_removed_.size() >
      -
      461  mpd_options_.mpd_params.preserved_segments_outside_live_window) {
      -
      462  VLOG(2) << "Deleting " << segments_to_be_removed_.front();
      -
      463  if (!File::Delete(segments_to_be_removed_.front().c_str())) {
      -
      464  LOG(WARNING) << "Failed to delete " << segments_to_be_removed_.front()
      -
      465  << "; Will retry later.";
      -
      466  break;
      -
      467  }
      -
      468  segments_to_be_removed_.pop_front();
      -
      469  }
      -
      470 }
      -
      471 
      -
      472 std::string Representation::GetVideoMimeType() const {
      -
      473  return GetMimeType("video", media_info_.container_type());
      -
      474 }
      -
      475 
      -
      476 std::string Representation::GetAudioMimeType() const {
      -
      477  return GetMimeType("audio", media_info_.container_type());
      -
      478 }
      -
      479 
      -
      480 std::string Representation::GetTextMimeType() const {
      -
      481  CHECK(media_info_.has_text_info());
      -
      482  if (media_info_.text_info().codec() == "ttml") {
      -
      483  switch (media_info_.container_type()) {
      -
      484  case MediaInfo::CONTAINER_TEXT:
      -
      485  return "application/ttml+xml";
      -
      486  case MediaInfo::CONTAINER_MP4:
      -
      487  return "application/mp4";
      -
      488  default:
      -
      489  LOG(ERROR) << "Failed to determine MIME type for TTML container: "
      -
      490  << media_info_.container_type();
      -
      491  return "";
      -
      492  }
      -
      493  }
      -
      494  if (media_info_.text_info().codec() == "wvtt") {
      -
      495  if (media_info_.container_type() == MediaInfo::CONTAINER_TEXT) {
      -
      496  return "text/vtt";
      -
      497  } else if (media_info_.container_type() == MediaInfo::CONTAINER_MP4) {
      -
      498  return "application/mp4";
      -
      499  }
      -
      500  LOG(ERROR) << "Failed to determine MIME type for VTT container: "
      -
      501  << media_info_.container_type();
      -
      502  return "";
      -
      503  }
      -
      504 
      -
      505  LOG(ERROR) << "Cannot determine MIME type for format: "
      -
      506  << media_info_.text_info().codec()
      -
      507  << " container: " << media_info_.container_type();
      -
      508  return "";
      -
      509 }
      -
      510 
      -
      511 std::string Representation::RepresentationAsString() const {
      -
      512  std::string s = base::StringPrintf("Representation (id=%d,", id_);
      -
      513  if (media_info_.has_video_info()) {
      -
      514  const MediaInfo_VideoInfo& video_info = media_info_.video_info();
      -
      515  base::StringAppendF(&s, "codec='%s',width=%d,height=%d",
      -
      516  video_info.codec().c_str(), video_info.width(),
      -
      517  video_info.height());
      -
      518  } else if (media_info_.has_audio_info()) {
      -
      519  const MediaInfo_AudioInfo& audio_info = media_info_.audio_info();
      -
      520  base::StringAppendF(
      -
      521  &s, "codec='%s',frequency=%d,language='%s'", audio_info.codec().c_str(),
      -
      522  audio_info.sampling_frequency(), audio_info.language().c_str());
      -
      523  } else if (media_info_.has_text_info()) {
      -
      524  const MediaInfo_TextInfo& text_info = media_info_.text_info();
      -
      525  base::StringAppendF(&s, "codec='%s',language='%s'",
      -
      526  text_info.codec().c_str(),
      -
      527  text_info.language().c_str());
      -
      528  }
      -
      529  base::StringAppendF(&s, ")");
      -
      530  return s;
      -
      531 }
      -
      532 
      -
      533 } // namespace shaka
      +
      268  !representation.AddVODOnlyInfo(
      +
      269  media_info_, mpd_options_.mpd_params.use_segment_list,
      +
      270  mpd_options_.mpd_params.target_segment_duration)) {
      +
      271  LOG(ERROR) << "Failed to add VOD info.";
      +
      272  return base::nullopt;
      +
      273  }
      +
      274 
      +
      275  if (HasLiveOnlyFields(media_info_) &&
      +
      276  !representation.AddLiveOnlyInfo(media_info_, segment_infos_,
      +
      277  start_number_)) {
      +
      278  LOG(ERROR) << "Failed to add Live info.";
      +
      279  return base::nullopt;
      +
      280  }
      +
      281  // TODO(rkuroiwa): It is likely that all representations have the exact same
      +
      282  // SegmentTemplate. Optimize and propagate the tag up to AdaptationSet level.
      +
      283 
      +
      284  output_suppression_flags_ = 0;
      +
      285  return std::move(representation);
      +
      286 }
      +
      287 
      +
      288 void Representation::SuppressOnce(SuppressFlag flag) {
      +
      289  output_suppression_flags_ |= flag;
      +
      290 }
      +
      291 
      + +
      293  double presentation_time_offset) {
      +
      294  int64_t pto = presentation_time_offset * media_info_.reference_time_scale();
      +
      295  if (pto <= 0)
      +
      296  return;
      +
      297  media_info_.set_presentation_time_offset(pto);
      +
      298 }
      +
      299 
      + +
      301  double* start_timestamp_seconds,
      +
      302  double* end_timestamp_seconds) const {
      +
      303  if (segment_infos_.empty())
      +
      304  return false;
      +
      305 
      +
      306  if (start_timestamp_seconds) {
      +
      307  *start_timestamp_seconds =
      +
      308  static_cast<double>(segment_infos_.begin()->start_time) /
      +
      309  GetTimeScale(media_info_);
      +
      310  }
      +
      311  if (end_timestamp_seconds) {
      +
      312  *end_timestamp_seconds =
      +
      313  static_cast<double>(segment_infos_.rbegin()->start_time +
      +
      314  segment_infos_.rbegin()->duration *
      +
      315  (segment_infos_.rbegin()->repeat + 1)) /
      +
      316  GetTimeScale(media_info_);
      +
      317  }
      +
      318  return true;
      +
      319 }
      +
      320 
      +
      321 bool Representation::HasRequiredMediaInfoFields() const {
      +
      322  if (HasVODOnlyFields(media_info_) && HasLiveOnlyFields(media_info_)) {
      +
      323  LOG(ERROR) << "MediaInfo cannot have both VOD and Live fields.";
      +
      324  return false;
      +
      325  }
      +
      326 
      +
      327  if (!media_info_.has_container_type()) {
      +
      328  LOG(ERROR) << "MediaInfo missing required field: container_type.";
      +
      329  return false;
      +
      330  }
      +
      331 
      +
      332  return true;
      +
      333 }
      +
      334 
      +
      335 void Representation::AddSegmentInfo(int64_t start_time, int64_t duration) {
      +
      336  const uint64_t kNoRepeat = 0;
      +
      337  const int64_t adjusted_duration = AdjustDuration(duration);
      +
      338 
      +
      339  if (!segment_infos_.empty()) {
      +
      340  // Contiguous segment.
      +
      341  const SegmentInfo& previous = segment_infos_.back();
      +
      342  const int64_t previous_segment_end_time =
      +
      343  previous.start_time + previous.duration * (previous.repeat + 1);
      +
      344  // Make it continuous if the segment start time is close to previous segment
      +
      345  // end time.
      +
      346  if (ApproximiatelyEqual(previous_segment_end_time, start_time)) {
      +
      347  const int64_t segment_end_time_for_same_duration =
      +
      348  previous_segment_end_time + previous.duration;
      +
      349  const int64_t actual_segment_end_time = start_time + duration;
      +
      350  // Consider the segments having identical duration if the segment end time
      +
      351  // is close to calculated segment end time by assuming identical duration.
      +
      352  if (ApproximiatelyEqual(segment_end_time_for_same_duration,
      +
      353  actual_segment_end_time)) {
      +
      354  ++segment_infos_.back().repeat;
      +
      355  } else {
      +
      356  segment_infos_.push_back(
      +
      357  {previous_segment_end_time,
      +
      358  actual_segment_end_time - previous_segment_end_time, kNoRepeat});
      +
      359  }
      +
      360  return;
      +
      361  }
      +
      362 
      +
      363  // A gap since previous.
      +
      364  const int64_t kRoundingErrorGrace = 5;
      +
      365  if (previous_segment_end_time + kRoundingErrorGrace < start_time) {
      +
      366  LOG(WARNING) << RepresentationAsString() << " Found a gap of size "
      +
      367  << (start_time - previous_segment_end_time)
      +
      368  << " > kRoundingErrorGrace (" << kRoundingErrorGrace
      +
      369  << "). The new segment starts at " << start_time
      +
      370  << " but the previous segment ends at "
      +
      371  << previous_segment_end_time << ".";
      +
      372  }
      +
      373 
      +
      374  // No overlapping segments.
      +
      375  if (start_time < previous_segment_end_time - kRoundingErrorGrace) {
      +
      376  LOG(WARNING)
      +
      377  << RepresentationAsString()
      +
      378  << " Segments should not be overlapping. The new segment starts at "
      +
      379  << start_time << " but the previous segment ends at "
      +
      380  << previous_segment_end_time << ".";
      +
      381  }
      +
      382  }
      +
      383 
      +
      384  segment_infos_.push_back({start_time, adjusted_duration, kNoRepeat});
      +
      385 }
      +
      386 
      +
      387 bool Representation::ApproximiatelyEqual(int64_t time1, int64_t time2) const {
      +
      388  if (!allow_approximate_segment_timeline_)
      +
      389  return time1 == time2;
      +
      390 
      +
      391  // It is not always possible to align segment duration to target duration
      +
      392  // exactly. For example, for AAC with sampling rate of 44100, there are always
      +
      393  // 1024 audio samples per frame, so the frame duration is 1024/44100. For a
      +
      394  // target duration of 2 seconds, the closest segment duration would be 1.984
      +
      395  // or 2.00533.
      +
      396 
      +
      397  // An arbitrary error threshold cap. This makes sure that the error is not too
      +
      398  // large for large samples.
      +
      399  const double kErrorThresholdSeconds = 0.05;
      +
      400 
      +
      401  // So we consider two times equal if they differ by less than one sample.
      +
      402  const uint32_t error_threshold =
      +
      403  std::min(frame_duration_,
      +
      404  static_cast<uint32_t>(kErrorThresholdSeconds *
      +
      405  media_info_.reference_time_scale()));
      +
      406  return std::abs(time1 - time2) <= error_threshold;
      +
      407 }
      +
      408 
      +
      409 int64_t Representation::AdjustDuration(int64_t duration) const {
      +
      410  if (!allow_approximate_segment_timeline_)
      +
      411  return duration;
      +
      412  const int64_t scaled_target_duration =
      +
      413  mpd_options_.mpd_params.target_segment_duration *
      +
      414  media_info_.reference_time_scale();
      +
      415  return ApproximiatelyEqual(scaled_target_duration, duration)
      +
      416  ? scaled_target_duration
      +
      417  : duration;
      +
      418 }
      +
      419 
      +
      420 void Representation::SlideWindow() {
      +
      421  if (mpd_options_.mpd_params.time_shift_buffer_depth <= 0.0 ||
      +
      422  mpd_options_.mpd_type == MpdType::kStatic)
      +
      423  return;
      +
      424 
      +
      425  const uint32_t time_scale = GetTimeScale(media_info_);
      +
      426  DCHECK_GT(time_scale, 0u);
      +
      427 
      +
      428  const int64_t time_shift_buffer_depth = static_cast<int64_t>(
      +
      429  mpd_options_.mpd_params.time_shift_buffer_depth * time_scale);
      +
      430 
      +
      431  if (current_buffer_depth_ <= time_shift_buffer_depth)
      +
      432  return;
      +
      433 
      +
      434  std::list<SegmentInfo>::iterator first = segment_infos_.begin();
      +
      435  std::list<SegmentInfo>::iterator last = first;
      +
      436  for (; last != segment_infos_.end(); ++last) {
      +
      437  // Remove the current segment only if it falls completely out of time shift
      +
      438  // buffer range.
      +
      439  while (last->repeat >= 0 &&
      +
      440  current_buffer_depth_ - last->duration >= time_shift_buffer_depth) {
      +
      441  current_buffer_depth_ -= last->duration;
      +
      442  RemoveOldSegment(&*last);
      +
      443  start_number_++;
      +
      444  }
      +
      445  if (last->repeat >= 0)
      +
      446  break;
      +
      447  }
      +
      448  segment_infos_.erase(first, last);
      +
      449 }
      +
      450 
      +
      451 void Representation::RemoveOldSegment(SegmentInfo* segment_info) {
      +
      452  int64_t segment_start_time = segment_info->start_time;
      +
      453  segment_info->start_time += segment_info->duration;
      +
      454  segment_info->repeat--;
      +
      455 
      +
      456  if (mpd_options_.mpd_params.preserved_segments_outside_live_window == 0)
      +
      457  return;
      +
      458 
      +
      459  segments_to_be_removed_.push_back(
      +
      460  media::GetSegmentName(media_info_.segment_template(), segment_start_time,
      +
      461  start_number_ - 1, media_info_.bandwidth()));
      +
      462  while (segments_to_be_removed_.size() >
      +
      463  mpd_options_.mpd_params.preserved_segments_outside_live_window) {
      +
      464  VLOG(2) << "Deleting " << segments_to_be_removed_.front();
      +
      465  if (!File::Delete(segments_to_be_removed_.front().c_str())) {
      +
      466  LOG(WARNING) << "Failed to delete " << segments_to_be_removed_.front()
      +
      467  << "; Will retry later.";
      +
      468  break;
      +
      469  }
      +
      470  segments_to_be_removed_.pop_front();
      +
      471  }
      +
      472 }
      +
      473 
      +
      474 std::string Representation::GetVideoMimeType() const {
      +
      475  return GetMimeType("video", media_info_.container_type());
      +
      476 }
      +
      477 
      +
      478 std::string Representation::GetAudioMimeType() const {
      +
      479  return GetMimeType("audio", media_info_.container_type());
      +
      480 }
      +
      481 
      +
      482 std::string Representation::GetTextMimeType() const {
      +
      483  CHECK(media_info_.has_text_info());
      +
      484  if (media_info_.text_info().codec() == "ttml") {
      +
      485  switch (media_info_.container_type()) {
      +
      486  case MediaInfo::CONTAINER_TEXT:
      +
      487  return "application/ttml+xml";
      +
      488  case MediaInfo::CONTAINER_MP4:
      +
      489  return "application/mp4";
      +
      490  default:
      +
      491  LOG(ERROR) << "Failed to determine MIME type for TTML container: "
      +
      492  << media_info_.container_type();
      +
      493  return "";
      +
      494  }
      +
      495  }
      +
      496  if (media_info_.text_info().codec() == "wvtt") {
      +
      497  if (media_info_.container_type() == MediaInfo::CONTAINER_TEXT) {
      +
      498  return "text/vtt";
      +
      499  } else if (media_info_.container_type() == MediaInfo::CONTAINER_MP4) {
      +
      500  return "application/mp4";
      +
      501  }
      +
      502  LOG(ERROR) << "Failed to determine MIME type for VTT container: "
      +
      503  << media_info_.container_type();
      +
      504  return "";
      +
      505  }
      +
      506 
      +
      507  LOG(ERROR) << "Cannot determine MIME type for format: "
      +
      508  << media_info_.text_info().codec()
      +
      509  << " container: " << media_info_.container_type();
      +
      510  return "";
      +
      511 }
      +
      512 
      +
      513 std::string Representation::RepresentationAsString() const {
      +
      514  std::string s = base::StringPrintf("Representation (id=%d,", id_);
      +
      515  if (media_info_.has_video_info()) {
      +
      516  const MediaInfo_VideoInfo& video_info = media_info_.video_info();
      +
      517  base::StringAppendF(&s, "codec='%s',width=%d,height=%d",
      +
      518  video_info.codec().c_str(), video_info.width(),
      +
      519  video_info.height());
      +
      520  } else if (media_info_.has_audio_info()) {
      +
      521  const MediaInfo_AudioInfo& audio_info = media_info_.audio_info();
      +
      522  base::StringAppendF(
      +
      523  &s, "codec='%s',frequency=%d,language='%s'", audio_info.codec().c_str(),
      +
      524  audio_info.sampling_frequency(), audio_info.language().c_str());
      +
      525  } else if (media_info_.has_text_info()) {
      +
      526  const MediaInfo_TextInfo& text_info = media_info_.text_info();
      +
      527  base::StringAppendF(&s, "codec='%s',language='%s'",
      +
      528  text_info.codec().c_str(),
      +
      529  text_info.language().c_str());
      +
      530  }
      +
      531  base::StringAppendF(&s, ")");
      +
      532  return s;
      +
      533 }
      +
      534 
      +
      535 } // namespace shaka
      void AddBlock(uint64_t size_in_bytes, double duration)
      static bool Delete(const char *file_name)
      Definition: file.cc:212
      @@ -609,25 +611,26 @@ $(function() {
      virtual void SetSampleDuration(uint32_t sample_duration)
      virtual void AddContentProtectionElement(const ContentProtectionElement &element)
      virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
      -
      void SuppressOnce(SuppressFlag flag)
      +
      void SuppressOnce(SuppressFlag flag)
      virtual const MediaInfo & GetMediaInfo() const
      -
      bool GetStartAndEndTimestamps(double *start_timestamp_seconds, double *end_timestamp_seconds) const
      +
      bool GetStartAndEndTimestamps(double *start_timestamp_seconds, double *end_timestamp_seconds) const
      Representation(const MediaInfo &media_info, const MpdOptions &mpd_options, uint32_t representation_id, std::unique_ptr< RepresentationStateChangeListener > state_change_listener)
      -
      void SetPresentationTimeOffset(double presentation_time_offset)
      Set @presentationTimeOffset in SegmentBase / SegmentTemplate.
      +
      void SetPresentationTimeOffset(double presentation_time_offset)
      Set @presentationTimeOffset in SegmentBase / SegmentTemplate.
      base::Optional< xml::XmlNode > GetXml()
      virtual void AddNewSegment(int64_t start_time, int64_t duration, uint64_t size)
      RepresentationType in MPD.
      Definition: xml_node.h:182
      -
      bool AddVideoInfo(const MediaInfo::VideoInfo &video_info, bool set_width, bool set_height, bool set_frame_rate) WARN_UNUSED_RESULT
      Definition: xml_node.cc:337
      -
      bool AddVODOnlyInfo(const MediaInfo &media_info) WARN_UNUSED_RESULT
      Definition: xml_node.cc:379
      -
      bool AddLiveOnlyInfo(const MediaInfo &media_info, const std::list< SegmentInfo > &segment_infos, uint32_t start_number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:433
      -
      bool AddAudioInfo(const MediaInfo::AudioInfo &audio_info) WARN_UNUSED_RESULT
      Definition: xml_node.cc:374
      -
      bool SetIntegerAttribute(const std::string &attribute_name, uint64_t number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:190
      -
      bool SetStringAttribute(const std::string &attribute_name, const std::string &attribute) WARN_UNUSED_RESULT
      Definition: xml_node.cc:183
      -
      bool SetId(uint32_t id) WARN_UNUSED_RESULT
      Definition: xml_node.cc:204
      +
      bool AddVideoInfo(const MediaInfo::VideoInfo &video_info, bool set_width, bool set_height, bool set_frame_rate) WARN_UNUSED_RESULT
      Definition: xml_node.cc:338
      +
      bool AddLiveOnlyInfo(const MediaInfo &media_info, const std::list< SegmentInfo > &segment_infos, uint32_t start_number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:460
      +
      bool AddVODOnlyInfo(const MediaInfo &media_info, bool use_segment_list, double target_segment_duration) WARN_UNUSED_RESULT
      Definition: xml_node.cc:380
      +
      bool AddAudioInfo(const MediaInfo::AudioInfo &audio_info) WARN_UNUSED_RESULT
      Definition: xml_node.cc:375
      +
      bool SetIntegerAttribute(const std::string &attribute_name, uint64_t number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:191
      +
      bool SetStringAttribute(const std::string &attribute_name, const std::string &attribute) WARN_UNUSED_RESULT
      Definition: xml_node.cc:184
      +
      bool SetId(uint32_t id) WARN_UNUSED_RESULT
      Definition: xml_node.cc:205
      All the methods that are virtual are virtual for mocking.
      Defines Mpd Options.
      Definition: mpd_options.h:25
      +
      bool use_segment_list
      Definition: mpd_params.h:93
      size_t preserved_segments_outside_live_window
      Definition: mpd_params.h:46
      double target_segment_duration
      Definition: mpd_params.h:82
      double time_shift_buffer_depth
      Definition: mpd_params.h:39
      @@ -635,7 +638,7 @@ $(function() { 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 47be1ad8d0..33343fc475 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 @@ -91,7 +91,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 2502be1898..ec5c3e46d5 100644 --- a/docs/d7/d9d/progress__listener_8h_source.html +++ b/docs/d7/d9d/progress__listener_8h_source.html @@ -110,7 +110,7 @@ $(function() { diff --git a/docs/d7/d9e/structshaka_1_1media_1_1JobManager_1_1JobEntry-members.html b/docs/d7/d9e/structshaka_1_1media_1_1JobManager_1_1JobEntry-members.html index a83dd23a9a..4ac09264cd 100644 --- a/docs/d7/d9e/structshaka_1_1media_1_1JobManager_1_1JobEntry-members.html +++ b/docs/d7/d9e/structshaka_1_1media_1_1JobManager_1_1JobEntry-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/docs/d7/da4/track__run__iterator_8h_source.html b/docs/d7/da4/track__run__iterator_8h_source.html index 54c53cc5fb..b28ab80f2c 100644 --- a/docs/d7/da4/track__run__iterator_8h_source.html +++ b/docs/d7/da4/track__run__iterator_8h_source.html @@ -187,7 +187,7 @@ $(function() { diff --git a/docs/d7/dad/simple__hls__notifier_8cc_source.html b/docs/d7/dad/simple__hls__notifier_8cc_source.html index 57f655ce23..a728cd15b0 100644 --- a/docs/d7/dad/simple__hls__notifier_8cc_source.html +++ b/docs/d7/dad/simple__hls__notifier_8cc_source.html @@ -610,7 +610,7 @@ $(function() { 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 1919499d4b..5624f450b6 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 @@ -154,7 +154,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 deaa84c3ba..e34f1039dc 100644 --- a/docs/d7/db0/mpd__writer_8h_source.html +++ b/docs/d7/db0/mpd__writer_8h_source.html @@ -162,7 +162,7 @@ $(function() { 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 60cba5726b..6a7e028c93 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d7/dbd/classshaka_1_1LocalFile.html b/docs/d7/dbd/classshaka_1_1LocalFile.html index 5431772381..494f4a5047 100644 --- a/docs/d7/dbd/classshaka_1_1LocalFile.html +++ b/docs/d7/dbd/classshaka_1_1LocalFile.html @@ -502,7 +502,7 @@ bool  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 23233a02c3..fd216ee937 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 @@ -169,7 +169,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 e0d19c8b42..7d3ff7cf71 100644 --- a/docs/d7/dc6/byte__queue_8h_source.html +++ b/docs/d7/dc6/byte__queue_8h_source.html @@ -129,7 +129,7 @@ $(function() { diff --git a/docs/d7/dcf/classshaka_1_1media_1_1CcStreamFilter-members.html b/docs/d7/dcf/classshaka_1_1media_1_1CcStreamFilter-members.html index a7f6007300..0374172263 100644 --- a/docs/d7/dcf/classshaka_1_1media_1_1CcStreamFilter-members.html +++ b/docs/d7/dcf/classshaka_1_1media_1_1CcStreamFilter-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/docs/d7/dd0/mpd__notifier__util_8h_source.html b/docs/d7/dd0/mpd__notifier__util_8h_source.html index 2555886356..c2881c617a 100644 --- a/docs/d7/dd0/mpd__notifier__util_8h_source.html +++ b/docs/d7/dd0/mpd__notifier__util_8h_source.html @@ -111,7 +111,7 @@ $(function() { diff --git a/docs/d7/dd4/request__signer_8h_source.html b/docs/d7/dd4/request__signer_8h_source.html index 9acfc30eed..cbf7dfc23a 100644 --- a/docs/d7/dd4/request__signer_8h_source.html +++ b/docs/d7/dd4/request__signer_8h_source.html @@ -163,7 +163,7 @@ $(function() { diff --git a/docs/d7/dd5/ac4__audio__util_8h_source.html b/docs/d7/dd5/ac4__audio__util_8h_source.html index 5774f4462b..ba30be1595 100644 --- a/docs/d7/dd5/ac4__audio__util_8h_source.html +++ b/docs/d7/dd5/ac4__audio__util_8h_source.html @@ -108,7 +108,7 @@ $(function() { 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 5ab9cb322a..4e696886c0 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 @@ -274,7 +274,7 @@ Additional Inherited Members diff --git a/docs/d7/dd6/key__source_8cc_source.html b/docs/d7/dd6/key__source_8cc_source.html index 992c830fa9..f20ea94572 100644 --- a/docs/d7/dd6/key__source_8cc_source.html +++ b/docs/d7/dd6/key__source_8cc_source.html @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/d7/dda/classshaka_1_1media_1_1ByteQueue.html b/docs/d7/dda/classshaka_1_1media_1_1ByteQueue.html index 76be6e3128..c0af4cf8c1 100644 --- a/docs/d7/dda/classshaka_1_1media_1_1ByteQueue.html +++ b/docs/d7/dda/classshaka_1_1media_1_1ByteQueue.html @@ -159,7 +159,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 1145c2294b..9f34823ac7 100644 --- a/docs/d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html +++ b/docs/d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html @@ -162,7 +162,7 @@ Additional Inherited Members diff --git a/docs/d7/dde/cc__stream__filter_8cc_source.html b/docs/d7/dde/cc__stream__filter_8cc_source.html index 3dc4a1dbc9..36e6cc951e 100644 --- a/docs/d7/dde/cc__stream__filter_8cc_source.html +++ b/docs/d7/dde/cc__stream__filter_8cc_source.html @@ -129,7 +129,7 @@ $(function() { diff --git a/docs/d7/ddf/structshaka_1_1media_1_1ProtectionSystemSpecificInfo-members.html b/docs/d7/ddf/structshaka_1_1media_1_1ProtectionSystemSpecificInfo-members.html index 9dd019213c..b92b3c4a9d 100644 --- a/docs/d7/ddf/structshaka_1_1media_1_1ProtectionSystemSpecificInfo-members.html +++ b/docs/d7/ddf/structshaka_1_1media_1_1ProtectionSystemSpecificInfo-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html b/docs/d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html index 30a91003b2..d4af257433 100644 --- a/docs/d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html +++ b/docs/d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html @@ -293,7 +293,7 @@ Public Member Functions 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 85b328130d..bd088d8fe8 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 @@ -99,7 +99,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 f760b0934d..bc28ff4245 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 @@ -122,7 +122,7 @@ $(function() { diff --git a/docs/d7/dee/mpd__generator_8cc_source.html b/docs/d7/dee/mpd__generator_8cc_source.html index c3fdc07ad9..e53f8527f4 100644 --- a/docs/d7/dee/mpd__generator_8cc_source.html +++ b/docs/d7/dee/mpd__generator_8cc_source.html @@ -230,7 +230,7 @@ $(function() { diff --git a/docs/d7/def/mp4__media__parser_8cc_source.html b/docs/d7/def/mp4__media__parser_8cc_source.html index 6b2103487f..66d1b1b875 100644 --- a/docs/d7/def/mp4__media__parser_8cc_source.html +++ b/docs/d7/def/mp4__media__parser_8cc_source.html @@ -990,7 +990,7 @@ $(function() { diff --git a/docs/d7/df9/byte__queue_8cc_source.html b/docs/d7/df9/byte__queue_8cc_source.html index 5f3df94fc3..ec003a93c1 100644 --- a/docs/d7/df9/byte__queue_8cc_source.html +++ b/docs/d7/df9/byte__queue_8cc_source.html @@ -160,7 +160,7 @@ $(function() { diff --git a/docs/d8/d00/structshaka_1_1media_1_1TextFragmentStyle-members.html b/docs/d8/d00/structshaka_1_1media_1_1TextFragmentStyle-members.html index 67a6c62fcf..2ee6a66e64 100644 --- a/docs/d8/d00/structshaka_1_1media_1_1TextFragmentStyle-members.html +++ b/docs/d8/d00/structshaka_1_1media_1_1TextFragmentStyle-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/d8/d02/classshaka_1_1MockPeriod.html b/docs/d8/d02/classshaka_1_1MockPeriod.html index 6287ec6532..c7a159ff6c 100644 --- a/docs/d8/d02/classshaka_1_1MockPeriod.html +++ b/docs/d8/d02/classshaka_1_1MockPeriod.html @@ -124,7 +124,7 @@ Additional Inherited Members diff --git a/docs/d8/d04/classshaka_1_1media_1_1ttml_1_1TtmlGenerator-members.html b/docs/d8/d04/classshaka_1_1media_1_1ttml_1_1TtmlGenerator-members.html index 3737053674..afb055f50d 100644 --- a/docs/d8/d04/classshaka_1_1media_1_1ttml_1_1TtmlGenerator-members.html +++ b/docs/d8/d04/classshaka_1_1media_1_1ttml_1_1TtmlGenerator-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html b/docs/d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html index d0bc4e9a73..ddb4177d8c 100644 --- a/docs/d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html +++ b/docs/d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html @@ -217,7 +217,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 dd914948ce..90c58244ca 100644 --- a/docs/d8/d08/classshaka_1_1media_1_1WebMClusterParser-members.html +++ b/docs/d8/d08/classshaka_1_1media_1_1WebMClusterParser-members.html @@ -89,7 +89,7 @@ $(function() { 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 971acc66c4..1a78c2f3b4 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 @@ -80,7 +80,7 @@ $(function() { 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 5eb0ced795..fdeecf7eb4 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 @@ -98,7 +98,7 @@ $(function() { diff --git a/docs/d8/d0c/classshaka_1_1media_1_1MultiCodecMuxerListener-members.html b/docs/d8/d0c/classshaka_1_1media_1_1MultiCodecMuxerListener-members.html index 366c4a8c3a..c4ecab02a5 100644 --- a/docs/d8/d0c/classshaka_1_1media_1_1MultiCodecMuxerListener-members.html +++ b/docs/d8/d0c/classshaka_1_1media_1_1MultiCodecMuxerListener-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/d8/d0d/media__sample_8cc_source.html b/docs/d8/d0d/media__sample_8cc_source.html index 607ed50b5c..8c745361f1 100644 --- a/docs/d8/d0d/media__sample_8cc_source.html +++ b/docs/d8/d0d/media__sample_8cc_source.html @@ -203,7 +203,7 @@ $(function() { diff --git a/docs/d8/d0f/protection__system__flags_8h_source.html b/docs/d8/d0f/protection__system__flags_8h_source.html index c614eebe0d..68165d684f 100644 --- a/docs/d8/d0f/protection__system__flags_8h_source.html +++ b/docs/d8/d0f/protection__system__flags_8h_source.html @@ -88,7 +88,7 @@ $(function() { 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 8626a2d71c..2b52a408d6 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 @@ -91,7 +91,7 @@ uint32_t sample_delta< 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 afe684b8c6..2c1aa2e461 100644 --- a/docs/d8/d13/classshaka_1_1media_1_1BitReader-members.html +++ b/docs/d8/d13/classshaka_1_1media_1_1BitReader-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/d8/d14/classshaka_1_1media_1_1VP8Parser.html b/docs/d8/d14/classshaka_1_1media_1_1VP8Parser.html index 21aa999b25..8c9970f89c 100644 --- a/docs/d8/d14/classshaka_1_1media_1_1VP8Parser.html +++ b/docs/d8/d14/classshaka_1_1media_1_1VP8Parser.html @@ -216,7 +216,7 @@ Additional Inherited Members diff --git a/docs/d8/d16/http__file_8cc_source.html b/docs/d8/d16/http__file_8cc_source.html index 989f3b435a..e63d5b4a07 100644 --- a/docs/d8/d16/http__file_8cc_source.html +++ b/docs/d8/d16/http__file_8cc_source.html @@ -86,339 +86,352 @@ $(function() {
      15 #include "packager/base/strings/string_number_conversions.h"
      16 #include "packager/base/strings/stringprintf.h"
      17 #include "packager/base/threading/worker_pool.h"
      -
      18 
      -
      19 DEFINE_string(ca_file,
      -
      20  "",
      -
      21  "Absolute path to the Certificate Authority file for the "
      -
      22  "server cert. PEM format");
      -
      23 DEFINE_string(client_cert_file,
      -
      24  "",
      -
      25  "Absolute path to client certificate file.");
      -
      26 DEFINE_string(client_cert_private_key_file,
      +
      18 #include "packager/version/version.h"
      +
      19 
      +
      20 DEFINE_string(user_agent, "",
      +
      21  "Set a custom User-Agent string for HTTP requests.");
      +
      22 DEFINE_string(ca_file,
      +
      23  "",
      +
      24  "Absolute path to the Certificate Authority file for the "
      +
      25  "server cert. PEM format");
      +
      26 DEFINE_string(client_cert_file,
      27  "",
      -
      28  "Absolute path to the Private Key file.");
      -
      29 DEFINE_string(client_cert_private_key_password,
      +
      28  "Absolute path to client certificate file.");
      +
      29 DEFINE_string(client_cert_private_key_file,
      30  "",
      -
      31  "Password to the private key file.");
      -
      32 DEFINE_bool(disable_peer_verification,
      -
      33  false,
      -
      34  "Disable peer verification. This is needed to talk to servers "
      -
      35  "without valid certificates.");
      -
      36 DECLARE_uint64(io_cache_size);
      -
      37 
      -
      38 namespace shaka {
      -
      39 
      -
      40 namespace {
      -
      41 
      -
      42 constexpr const char* kBinaryContentType = "application/octet-stream";
      -
      43 constexpr const char* kUserAgent = "shaka-packager-http-fetch/1.0";
      -
      44 constexpr const int kMinLogLevelForCurlDebugFunction = 2;
      -
      45 
      -
      46 size_t CurlWriteCallback(char* buffer, size_t size, size_t nmemb, void* user) {
      -
      47  IoCache* cache = reinterpret_cast<IoCache*>(user);
      -
      48  size_t length = cache->Write(buffer, size * nmemb);
      -
      49  VLOG(3) << "CurlWriteCallback length=" << length;
      -
      50  return length;
      -
      51 }
      -
      52 
      -
      53 size_t CurlReadCallback(char* buffer, size_t size, size_t nitems, void* user) {
      -
      54  IoCache* cache = reinterpret_cast<IoCache*>(user);
      -
      55  size_t length = cache->Read(buffer, size * nitems);
      -
      56  VLOG(3) << "CurlRead length=" << length;
      -
      57  return length;
      -
      58 }
      -
      59 
      -
      60 int CurlDebugCallback(CURL* /* handle */,
      -
      61  curl_infotype type,
      -
      62  const char* data,
      -
      63  size_t size,
      -
      64  void* /* userptr */) {
      -
      65  const char* type_text;
      -
      66  int log_level;
      -
      67  bool in_hex;
      -
      68  switch (type) {
      -
      69  case CURLINFO_TEXT:
      -
      70  type_text = "== Info";
      -
      71  log_level = kMinLogLevelForCurlDebugFunction + 1;
      -
      72  in_hex = false;
      -
      73  break;
      -
      74  case CURLINFO_HEADER_IN:
      -
      75  type_text = "<= Recv header";
      -
      76  log_level = kMinLogLevelForCurlDebugFunction;
      -
      77  in_hex = false;
      -
      78  break;
      -
      79  case CURLINFO_HEADER_OUT:
      -
      80  type_text = "=> Send header";
      -
      81  log_level = kMinLogLevelForCurlDebugFunction;
      -
      82  in_hex = false;
      -
      83  break;
      -
      84  case CURLINFO_DATA_IN:
      -
      85  type_text = "<= Recv data";
      -
      86  log_level = kMinLogLevelForCurlDebugFunction + 1;
      -
      87  in_hex = true;
      -
      88  break;
      -
      89  case CURLINFO_DATA_OUT:
      -
      90  type_text = "=> Send data";
      -
      91  log_level = kMinLogLevelForCurlDebugFunction + 1;
      -
      92  in_hex = true;
      -
      93  break;
      -
      94  case CURLINFO_SSL_DATA_IN:
      -
      95  type_text = "<= Recv SSL data";
      -
      96  log_level = kMinLogLevelForCurlDebugFunction + 2;
      -
      97  in_hex = true;
      -
      98  break;
      -
      99  case CURLINFO_SSL_DATA_OUT:
      -
      100  type_text = "=> Send SSL data";
      -
      101  log_level = kMinLogLevelForCurlDebugFunction + 2;
      -
      102  in_hex = true;
      -
      103  break;
      -
      104  default:
      -
      105  // Ignore other debug data.
      -
      106  return 0;
      -
      107  }
      -
      108 
      -
      109  VLOG(log_level) << "\n\n"
      -
      110  << type_text << " (0x" << std::hex << size << std::dec
      -
      111  << " bytes)\n"
      -
      112  << (in_hex ? base::HexEncode(data, size)
      -
      113  : std::string(data, size));
      -
      114  return 0;
      -
      115 }
      +
      31  "Absolute path to the Private Key file.");
      +
      32 DEFINE_string(client_cert_private_key_password,
      +
      33  "",
      +
      34  "Password to the private key file.");
      +
      35 DEFINE_bool(disable_peer_verification,
      +
      36  false,
      +
      37  "Disable peer verification. This is needed to talk to servers "
      +
      38  "without valid certificates.");
      +
      39 DECLARE_uint64(io_cache_size);
      +
      40 
      +
      41 namespace shaka {
      +
      42 
      +
      43 namespace {
      +
      44 
      +
      45 constexpr const char* kBinaryContentType = "application/octet-stream";
      +
      46 constexpr const int kMinLogLevelForCurlDebugFunction = 2;
      +
      47 
      +
      48 size_t CurlWriteCallback(char* buffer, size_t size, size_t nmemb, void* user) {
      +
      49  IoCache* cache = reinterpret_cast<IoCache*>(user);
      +
      50  size_t length = size * nmemb;
      +
      51  if (cache) {
      +
      52  length = cache->Write(buffer, length);
      +
      53  VLOG(3) << "CurlWriteCallback length=" << length;
      +
      54  } else {
      +
      55  // For the case of HTTP Put, the returned data may not be consumed. Return
      +
      56  // the size of the data to avoid curl errors.
      +
      57  }
      +
      58  return length;
      +
      59 }
      +
      60 
      +
      61 size_t CurlReadCallback(char* buffer, size_t size, size_t nitems, void* user) {
      +
      62  IoCache* cache = reinterpret_cast<IoCache*>(user);
      +
      63  size_t length = cache->Read(buffer, size * nitems);
      +
      64  VLOG(3) << "CurlRead length=" << length;
      +
      65  return length;
      +
      66 }
      +
      67 
      +
      68 int CurlDebugCallback(CURL* /* handle */,
      +
      69  curl_infotype type,
      +
      70  const char* data,
      +
      71  size_t size,
      +
      72  void* /* userptr */) {
      +
      73  const char* type_text;
      +
      74  int log_level;
      +
      75  bool in_hex;
      +
      76  switch (type) {
      +
      77  case CURLINFO_TEXT:
      +
      78  type_text = "== Info";
      +
      79  log_level = kMinLogLevelForCurlDebugFunction + 1;
      +
      80  in_hex = false;
      +
      81  break;
      +
      82  case CURLINFO_HEADER_IN:
      +
      83  type_text = "<= Recv header";
      +
      84  log_level = kMinLogLevelForCurlDebugFunction;
      +
      85  in_hex = false;
      +
      86  break;
      +
      87  case CURLINFO_HEADER_OUT:
      +
      88  type_text = "=> Send header";
      +
      89  log_level = kMinLogLevelForCurlDebugFunction;
      +
      90  in_hex = false;
      +
      91  break;
      +
      92  case CURLINFO_DATA_IN:
      +
      93  type_text = "<= Recv data";
      +
      94  log_level = kMinLogLevelForCurlDebugFunction + 1;
      +
      95  in_hex = true;
      +
      96  break;
      +
      97  case CURLINFO_DATA_OUT:
      +
      98  type_text = "=> Send data";
      +
      99  log_level = kMinLogLevelForCurlDebugFunction + 1;
      +
      100  in_hex = true;
      +
      101  break;
      +
      102  case CURLINFO_SSL_DATA_IN:
      +
      103  type_text = "<= Recv SSL data";
      +
      104  log_level = kMinLogLevelForCurlDebugFunction + 2;
      +
      105  in_hex = true;
      +
      106  break;
      +
      107  case CURLINFO_SSL_DATA_OUT:
      +
      108  type_text = "=> Send SSL data";
      +
      109  log_level = kMinLogLevelForCurlDebugFunction + 2;
      +
      110  in_hex = true;
      +
      111  break;
      +
      112  default:
      +
      113  // Ignore other debug data.
      +
      114  return 0;
      +
      115  }
      116 
      -
      117 class LibCurlInitializer {
      -
      118  public:
      -
      119  LibCurlInitializer() {
      -
      120  curl_global_init(CURL_GLOBAL_DEFAULT);
      -
      121  }
      -
      122 
      -
      123  ~LibCurlInitializer() {
      -
      124  curl_global_cleanup();
      -
      125  }
      -
      126 
      -
      127  LibCurlInitializer(const LibCurlInitializer&) = delete;
      -
      128  LibCurlInitializer& operator=(const LibCurlInitializer&) = delete;
      -
      129 };
      +
      117  VLOG(log_level) << "\n\n"
      +
      118  << type_text << " (0x" << std::hex << size << std::dec
      +
      119  << " bytes)\n"
      +
      120  << (in_hex ? base::HexEncode(data, size)
      +
      121  : std::string(data, size));
      +
      122  return 0;
      +
      123 }
      +
      124 
      +
      125 class LibCurlInitializer {
      +
      126  public:
      +
      127  LibCurlInitializer() {
      +
      128  curl_global_init(CURL_GLOBAL_DEFAULT);
      +
      129  }
      130 
      -
      131 template <typename List>
      -
      132 bool AppendHeader(const std::string& header, List* list) {
      -
      133  auto* temp = curl_slist_append(list->get(), header.c_str());
      -
      134  if (temp) {
      -
      135  list->release(); // Don't free old list since it's part of the new one.
      -
      136  list->reset(temp);
      -
      137  return true;
      -
      138  } else {
      -
      139  return false;
      -
      140  }
      -
      141 }
      -
      142 
      -
      143 } // namespace
      -
      144 
      -
      145 HttpFile::HttpFile(HttpMethod method, const std::string& url)
      -
      146  : HttpFile(method, url, kBinaryContentType, {}, 0) {}
      -
      147 
      -
      148 HttpFile::HttpFile(HttpMethod method,
      -
      149  const std::string& url,
      -
      150  const std::string& upload_content_type,
      -
      151  const std::vector<std::string>& headers,
      -
      152  uint32_t timeout_in_seconds)
      -
      153  : File(url.c_str()),
      -
      154  url_(url),
      -
      155  upload_content_type_(upload_content_type),
      -
      156  timeout_in_seconds_(timeout_in_seconds),
      -
      157  method_(method),
      -
      158  download_cache_(FLAGS_io_cache_size),
      -
      159  upload_cache_(FLAGS_io_cache_size),
      -
      160  curl_(curl_easy_init()),
      -
      161  status_(Status::OK),
      -
      162  task_exit_event_(base::WaitableEvent::ResetPolicy::MANUAL,
      -
      163  base::WaitableEvent::InitialState::NOT_SIGNALED) {
      -
      164  static LibCurlInitializer lib_curl_initializer;
      -
      165 
      -
      166  // We will have at least one header, so use a null header to signal error
      -
      167  // to Open.
      -
      168 
      -
      169  // Don't wait for 100-Continue.
      -
      170  std::unique_ptr<curl_slist, CurlDelete> temp_headers;
      -
      171  if (!AppendHeader("Expect:", &temp_headers))
      -
      172  return;
      -
      173  if (!upload_content_type.empty() &&
      -
      174  !AppendHeader("Content-Type: " + upload_content_type_, &temp_headers)) {
      -
      175  return;
      +
      131  ~LibCurlInitializer() {
      +
      132  curl_global_cleanup();
      +
      133  }
      +
      134 
      +
      135  LibCurlInitializer(const LibCurlInitializer&) = delete;
      +
      136  LibCurlInitializer& operator=(const LibCurlInitializer&) = delete;
      +
      137 };
      +
      138 
      +
      139 template <typename List>
      +
      140 bool AppendHeader(const std::string& header, List* list) {
      +
      141  auto* temp = curl_slist_append(list->get(), header.c_str());
      +
      142  if (temp) {
      +
      143  list->release(); // Don't free old list since it's part of the new one.
      +
      144  list->reset(temp);
      +
      145  return true;
      +
      146  } else {
      +
      147  return false;
      +
      148  }
      +
      149 }
      +
      150 
      +
      151 } // namespace
      +
      152 
      +
      153 HttpFile::HttpFile(HttpMethod method, const std::string& url)
      +
      154  : HttpFile(method, url, kBinaryContentType, {}, 0) {}
      +
      155 
      +
      156 HttpFile::HttpFile(HttpMethod method,
      +
      157  const std::string& url,
      +
      158  const std::string& upload_content_type,
      +
      159  const std::vector<std::string>& headers,
      +
      160  uint32_t timeout_in_seconds)
      +
      161  : File(url.c_str()),
      +
      162  url_(url),
      +
      163  upload_content_type_(upload_content_type),
      +
      164  timeout_in_seconds_(timeout_in_seconds),
      +
      165  method_(method),
      +
      166  download_cache_(FLAGS_io_cache_size),
      +
      167  upload_cache_(FLAGS_io_cache_size),
      +
      168  curl_(curl_easy_init()),
      +
      169  status_(Status::OK),
      +
      170  user_agent_(FLAGS_user_agent),
      +
      171  task_exit_event_(base::WaitableEvent::ResetPolicy::MANUAL,
      +
      172  base::WaitableEvent::InitialState::NOT_SIGNALED) {
      +
      173  static LibCurlInitializer lib_curl_initializer;
      +
      174  if (user_agent_.empty()) {
      +
      175  user_agent_ += "ShakaPackager/" + GetPackagerVersion();
      176  }
      -
      177  if (method != HttpMethod::kGet &&
      -
      178  !AppendHeader("Transfer-Encoding: chunked", &temp_headers)) {
      -
      179  return;
      -
      180  }
      -
      181  for (const auto& item : headers) {
      -
      182  if (!AppendHeader(item, &temp_headers)) {
      -
      183  return;
      -
      184  }
      -
      185  }
      -
      186  request_headers_ = std::move(temp_headers);
      -
      187 }
      -
      188 
      -
      189 HttpFile::~HttpFile() {}
      -
      190 
      -
      191 bool HttpFile::Open() {
      -
      192  VLOG(2) << "Opening " << url_;
      -
      193 
      -
      194  if (!curl_ || !request_headers_) {
      -
      195  LOG(ERROR) << "curl_easy_init() failed.";
      -
      196  return false;
      +
      177 
      +
      178  // We will have at least one header, so use a null header to signal error
      +
      179  // to Open.
      +
      180 
      +
      181  // Don't wait for 100-Continue.
      +
      182  std::unique_ptr<curl_slist, CurlDelete> temp_headers;
      +
      183  if (!AppendHeader("Expect:", &temp_headers))
      +
      184  return;
      +
      185  if (!upload_content_type.empty() &&
      +
      186  !AppendHeader("Content-Type: " + upload_content_type_, &temp_headers)) {
      +
      187  return;
      +
      188  }
      +
      189  if (method != HttpMethod::kGet &&
      +
      190  !AppendHeader("Transfer-Encoding: chunked", &temp_headers)) {
      +
      191  return;
      +
      192  }
      +
      193  for (const auto& item : headers) {
      +
      194  if (!AppendHeader(item, &temp_headers)) {
      +
      195  return;
      +
      196  }
      197  }
      -
      198  // TODO: Try to connect initially so we can return connection error here.
      -
      199 
      -
      200  // TODO: Implement retrying with exponential backoff, see
      -
      201  // "widevine_key_source.cc"
      +
      198  request_headers_ = std::move(temp_headers);
      +
      199 }
      +
      200 
      +
      201 HttpFile::~HttpFile() {}
      202 
      -
      203  base::WorkerPool::PostTask(
      -
      204  FROM_HERE, base::Bind(&HttpFile::ThreadMain, base::Unretained(this)),
      -
      205  /* task_is_slow= */ true);
      -
      206 
      -
      207  return true;
      -
      208 }
      -
      209 
      -
      210 Status HttpFile::CloseWithStatus() {
      -
      211  VLOG(2) << "Closing " << url_;
      -
      212  // Close the cache first so the thread will finish uploading. Otherwise it
      -
      213  // will wait for more data forever.
      -
      214  download_cache_.Close();
      -
      215  upload_cache_.Close();
      -
      216  task_exit_event_.Wait();
      -
      217 
      -
      218  const Status result = status_;
      -
      219  LOG_IF(ERROR, !result.ok()) << "HttpFile request failed: " << result;
      -
      220  delete this;
      -
      221  return result;
      -
      222 }
      -
      223 
      -
      224 bool HttpFile::Close() {
      -
      225  return CloseWithStatus().ok();
      -
      226 }
      -
      227 
      -
      228 int64_t HttpFile::Read(void* buffer, uint64_t length) {
      -
      229  VLOG(2) << "Reading from " << url_ << ", length=" << length;
      -
      230  return download_cache_.Read(buffer, length);
      -
      231 }
      -
      232 
      -
      233 int64_t HttpFile::Write(const void* buffer, uint64_t length) {
      -
      234  VLOG(2) << "Writing to " << url_ << ", length=" << length;
      -
      235  return upload_cache_.Write(buffer, length);
      -
      236 }
      -
      237 
      -
      238 int64_t HttpFile::Size() {
      -
      239  LOG(ERROR) << "HttpFile does not support Size().";
      -
      240  return -1;
      -
      241 }
      -
      242 
      -
      243 bool HttpFile::Flush() {
      -
      244  upload_cache_.Close();
      -
      245  return true;
      -
      246 }
      -
      247 
      -
      248 bool HttpFile::Seek(uint64_t position) {
      -
      249  LOG(ERROR) << "HttpFile does not support Seek().";
      -
      250  return false;
      -
      251 }
      -
      252 
      -
      253 bool HttpFile::Tell(uint64_t* position) {
      -
      254  LOG(ERROR) << "HttpFile does not support Tell().";
      -
      255  return false;
      -
      256 }
      -
      257 
      -
      258 void HttpFile::CurlDelete::operator()(CURL* curl) {
      -
      259  curl_easy_cleanup(curl);
      -
      260 }
      -
      261 
      -
      262 void HttpFile::CurlDelete::operator()(curl_slist* headers) {
      -
      263  curl_slist_free_all(headers);
      -
      264 }
      -
      265 
      -
      266 void HttpFile::SetupRequest() {
      -
      267  auto* curl = curl_.get();
      -
      268 
      -
      269  switch (method_) {
      -
      270  case HttpMethod::kGet:
      -
      271  curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L);
      -
      272  break;
      -
      273  case HttpMethod::kPost:
      -
      274  curl_easy_setopt(curl, CURLOPT_POST, 1L);
      -
      275  break;
      -
      276  case HttpMethod::kPut:
      -
      277  curl_easy_setopt(curl, CURLOPT_PUT, 1L);
      -
      278  break;
      -
      279  }
      +
      203 bool HttpFile::Open() {
      +
      204  VLOG(2) << "Opening " << url_;
      +
      205 
      +
      206  if (!curl_ || !request_headers_) {
      +
      207  LOG(ERROR) << "curl_easy_init() failed.";
      +
      208  return false;
      +
      209  }
      +
      210  // TODO: Try to connect initially so we can return connection error here.
      +
      211 
      +
      212  // TODO: Implement retrying with exponential backoff, see
      +
      213  // "widevine_key_source.cc"
      +
      214 
      +
      215  base::WorkerPool::PostTask(
      +
      216  FROM_HERE, base::Bind(&HttpFile::ThreadMain, base::Unretained(this)),
      +
      217  /* task_is_slow= */ true);
      +
      218 
      +
      219  return true;
      +
      220 }
      +
      221 
      +
      222 Status HttpFile::CloseWithStatus() {
      +
      223  VLOG(2) << "Closing " << url_;
      +
      224  // Close the cache first so the thread will finish uploading. Otherwise it
      +
      225  // will wait for more data forever.
      +
      226  download_cache_.Close();
      +
      227  upload_cache_.Close();
      +
      228  task_exit_event_.Wait();
      +
      229 
      +
      230  const Status result = status_;
      +
      231  LOG_IF(ERROR, !result.ok()) << "HttpFile request failed: " << result;
      +
      232  delete this;
      +
      233  return result;
      +
      234 }
      +
      235 
      +
      236 bool HttpFile::Close() {
      +
      237  return CloseWithStatus().ok();
      +
      238 }
      +
      239 
      +
      240 int64_t HttpFile::Read(void* buffer, uint64_t length) {
      +
      241  VLOG(2) << "Reading from " << url_ << ", length=" << length;
      +
      242  return download_cache_.Read(buffer, length);
      +
      243 }
      +
      244 
      +
      245 int64_t HttpFile::Write(const void* buffer, uint64_t length) {
      +
      246  VLOG(2) << "Writing to " << url_ << ", length=" << length;
      +
      247  return upload_cache_.Write(buffer, length);
      +
      248 }
      +
      249 
      +
      250 int64_t HttpFile::Size() {
      +
      251  VLOG(1) << "HttpFile does not support Size().";
      +
      252  return -1;
      +
      253 }
      +
      254 
      +
      255 bool HttpFile::Flush() {
      +
      256  upload_cache_.Close();
      +
      257  return true;
      +
      258 }
      +
      259 
      +
      260 bool HttpFile::Seek(uint64_t position) {
      +
      261  LOG(ERROR) << "HttpFile does not support Seek().";
      +
      262  return false;
      +
      263 }
      +
      264 
      +
      265 bool HttpFile::Tell(uint64_t* position) {
      +
      266  LOG(ERROR) << "HttpFile does not support Tell().";
      +
      267  return false;
      +
      268 }
      +
      269 
      +
      270 void HttpFile::CurlDelete::operator()(CURL* curl) {
      +
      271  curl_easy_cleanup(curl);
      +
      272 }
      +
      273 
      +
      274 void HttpFile::CurlDelete::operator()(curl_slist* headers) {
      +
      275  curl_slist_free_all(headers);
      +
      276 }
      +
      277 
      +
      278 void HttpFile::SetupRequest() {
      +
      279  auto* curl = curl_.get();
      280 
      -
      281  curl_easy_setopt(curl, CURLOPT_URL, url_.c_str());
      -
      282  curl_easy_setopt(curl, CURLOPT_USERAGENT, kUserAgent);
      -
      283  curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout_in_seconds_);
      -
      284  curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1L);
      -
      285  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
      -
      286  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &CurlWriteCallback);
      -
      287  curl_easy_setopt(curl, CURLOPT_WRITEDATA, &download_cache_);
      -
      288  if (method_ != HttpMethod::kGet) {
      -
      289  curl_easy_setopt(curl, CURLOPT_READFUNCTION, &CurlReadCallback);
      -
      290  curl_easy_setopt(curl, CURLOPT_READDATA, &upload_cache_);
      +
      281  switch (method_) {
      +
      282  case HttpMethod::kGet:
      +
      283  curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L);
      +
      284  break;
      +
      285  case HttpMethod::kPost:
      +
      286  curl_easy_setopt(curl, CURLOPT_POST, 1L);
      +
      287  break;
      +
      288  case HttpMethod::kPut:
      +
      289  curl_easy_setopt(curl, CURLOPT_PUT, 1L);
      +
      290  break;
      291  }
      292 
      -
      293  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, request_headers_.get());
      -
      294 
      -
      295  if (FLAGS_disable_peer_verification)
      -
      296  curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
      -
      297 
      -
      298  // Client authentication
      -
      299  if (!FLAGS_client_cert_private_key_file.empty() &&
      -
      300  !FLAGS_client_cert_file.empty()) {
      -
      301  curl_easy_setopt(curl, CURLOPT_SSLKEY,
      -
      302  FLAGS_client_cert_private_key_file.data());
      -
      303  curl_easy_setopt(curl, CURLOPT_SSLCERT, FLAGS_client_cert_file.data());
      -
      304  curl_easy_setopt(curl, CURLOPT_SSLKEYTYPE, "PEM");
      -
      305  curl_easy_setopt(curl, CURLOPT_SSLCERTTYPE, "PEM");
      -
      306 
      -
      307  if (!FLAGS_client_cert_private_key_password.empty()) {
      -
      308  curl_easy_setopt(curl, CURLOPT_KEYPASSWD,
      -
      309  FLAGS_client_cert_private_key_password.data());
      -
      310  }
      -
      311  }
      -
      312  if (!FLAGS_ca_file.empty()) {
      -
      313  curl_easy_setopt(curl, CURLOPT_CAINFO, FLAGS_ca_file.data());
      -
      314  }
      -
      315 
      -
      316  if (VLOG_IS_ON(kMinLogLevelForCurlDebugFunction)) {
      -
      317  curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, CurlDebugCallback);
      -
      318  curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
      -
      319  }
      -
      320 }
      -
      321 
      -
      322 void HttpFile::ThreadMain() {
      -
      323  SetupRequest();
      -
      324 
      -
      325  CURLcode res = curl_easy_perform(curl_.get());
      -
      326  if (res != CURLE_OK) {
      -
      327  std::string error_message = curl_easy_strerror(res);
      -
      328  if (res == CURLE_HTTP_RETURNED_ERROR) {
      -
      329  long response_code = 0;
      -
      330  curl_easy_getinfo(curl_.get(), CURLINFO_RESPONSE_CODE, &response_code);
      -
      331  error_message +=
      -
      332  base::StringPrintf(", response code: %ld.", response_code);
      -
      333  }
      +
      293  curl_easy_setopt(curl, CURLOPT_URL, url_.c_str());
      +
      294  curl_easy_setopt(curl, CURLOPT_USERAGENT, user_agent_.c_str());
      +
      295  curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout_in_seconds_);
      +
      296  curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1L);
      +
      297  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
      +
      298  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &CurlWriteCallback);
      +
      299  curl_easy_setopt(curl, CURLOPT_WRITEDATA,
      +
      300  method_ == HttpMethod::kPut ? nullptr : &download_cache_);
      +
      301  if (method_ != HttpMethod::kGet) {
      +
      302  curl_easy_setopt(curl, CURLOPT_READFUNCTION, &CurlReadCallback);
      +
      303  curl_easy_setopt(curl, CURLOPT_READDATA, &upload_cache_);
      +
      304  }
      +
      305 
      +
      306  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, request_headers_.get());
      +
      307 
      +
      308  if (FLAGS_disable_peer_verification)
      +
      309  curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
      +
      310 
      +
      311  // Client authentication
      +
      312  if (!FLAGS_client_cert_private_key_file.empty() &&
      +
      313  !FLAGS_client_cert_file.empty()) {
      +
      314  curl_easy_setopt(curl, CURLOPT_SSLKEY,
      +
      315  FLAGS_client_cert_private_key_file.data());
      +
      316  curl_easy_setopt(curl, CURLOPT_SSLCERT, FLAGS_client_cert_file.data());
      +
      317  curl_easy_setopt(curl, CURLOPT_SSLKEYTYPE, "PEM");
      +
      318  curl_easy_setopt(curl, CURLOPT_SSLCERTTYPE, "PEM");
      +
      319 
      +
      320  if (!FLAGS_client_cert_private_key_password.empty()) {
      +
      321  curl_easy_setopt(curl, CURLOPT_KEYPASSWD,
      +
      322  FLAGS_client_cert_private_key_password.data());
      +
      323  }
      +
      324  }
      +
      325  if (!FLAGS_ca_file.empty()) {
      +
      326  curl_easy_setopt(curl, CURLOPT_CAINFO, FLAGS_ca_file.data());
      +
      327  }
      +
      328 
      +
      329  if (VLOG_IS_ON(kMinLogLevelForCurlDebugFunction)) {
      +
      330  curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, CurlDebugCallback);
      +
      331  curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
      +
      332  }
      +
      333 }
      334 
      -
      335  status_ = Status(
      -
      336  res == CURLE_OPERATION_TIMEDOUT ? error::TIME_OUT : error::HTTP_FAILURE,
      -
      337  error_message);
      -
      338  }
      -
      339 
      -
      340  download_cache_.Close();
      -
      341  task_exit_event_.Signal();
      -
      342 }
      -
      343 
      -
      344 } // namespace shaka
      +
      335 void HttpFile::ThreadMain() {
      +
      336  SetupRequest();
      +
      337 
      +
      338  CURLcode res = curl_easy_perform(curl_.get());
      +
      339  if (res != CURLE_OK) {
      +
      340  std::string error_message = curl_easy_strerror(res);
      +
      341  if (res == CURLE_HTTP_RETURNED_ERROR) {
      +
      342  long response_code = 0;
      +
      343  curl_easy_getinfo(curl_.get(), CURLINFO_RESPONSE_CODE, &response_code);
      +
      344  error_message +=
      +
      345  base::StringPrintf(", response code: %ld.", response_code);
      +
      346  }
      +
      347 
      +
      348  status_ = Status(
      +
      349  res == CURLE_OPERATION_TIMEDOUT ? error::TIME_OUT : error::HTTP_FAILURE,
      +
      350  error_message);
      +
      351  }
      +
      352 
      +
      353  download_cache_.Close();
      +
      354  task_exit_event_.Signal();
      +
      355 }
      +
      356 
      +
      357 } // namespace shaka
      All the methods that are virtual are virtual for mocking.
      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 8db47af6cc..a80b093575 100644 --- a/docs/d8/d16/structshaka_1_1media_1_1MuxerOptions-members.html +++ b/docs/d8/d16/structshaka_1_1media_1_1MuxerOptions-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/d8/d19/bandwidth__estimator_8h_source.html b/docs/d8/d19/bandwidth__estimator_8h_source.html index 126ec5ea44..a4b82f5c96 100644 --- a/docs/d8/d19/bandwidth__estimator_8h_source.html +++ b/docs/d8/d19/bandwidth__estimator_8h_source.html @@ -130,7 +130,7 @@ $(function() { diff --git a/docs/d8/d1c/crypto__flags_8cc_source.html b/docs/d8/d1c/crypto__flags_8cc_source.html index 75eb4207ae..ee23fd5e41 100644 --- a/docs/d8/d1c/crypto__flags_8cc_source.html +++ b/docs/d8/d1c/crypto__flags_8cc_source.html @@ -131,7 +131,7 @@ $(function() { 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 7220e61edc..be2ff685cf 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 @@ -154,7 +154,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 afdc1fda1f..6ed3e83a0e 100644 --- a/docs/d8/d23/structshaka_1_1media_1_1SubsampleEntry-members.html +++ b/docs/d8/d23/structshaka_1_1media_1_1SubsampleEntry-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/d8/d28/es__parser__h265_8h_source.html b/docs/d8/d28/es__parser__h265_8h_source.html index c6e374c880..8220ddf732 100644 --- a/docs/d8/d28/es__parser__h265_8h_source.html +++ b/docs/d8/d28/es__parser__h265_8h_source.html @@ -136,7 +136,7 @@ $(function() { 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 950e8f35bf..bfc3ad30c3 100644 --- a/docs/d8/d33/webm__content__encodings__client_8h_source.html +++ b/docs/d8/d33/webm__content__encodings__client_8h_source.html @@ -122,7 +122,7 @@ $(function() { diff --git a/docs/d8/d48/structshaka_1_1WidevineDecryptionParams.html b/docs/d8/d48/structshaka_1_1WidevineDecryptionParams.html index 1f6481c579..eb1bd692dc 100644 --- a/docs/d8/d48/structshaka_1_1WidevineDecryptionParams.html +++ b/docs/d8/d48/structshaka_1_1WidevineDecryptionParams.html @@ -99,7 +99,7 @@ std::string  diff --git a/docs/d8/d4a/mpeg1__header_8h_source.html b/docs/d8/d4a/mpeg1__header_8h_source.html index 4a933e38c7..b7bfbb461a 100644 --- a/docs/d8/d4a/mpeg1__header_8h_source.html +++ b/docs/d8/d4a/mpeg1__header_8h_source.html @@ -135,7 +135,7 @@ $(function() { diff --git a/docs/d8/d4d/aes__decryptor_8h_source.html b/docs/d8/d4d/aes__decryptor_8h_source.html index 6a9ac7f362..e21312ad98 100644 --- a/docs/d8/d4d/aes__decryptor_8h_source.html +++ b/docs/d8/d4d/aes__decryptor_8h_source.html @@ -130,7 +130,7 @@ $(function() { 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 c84ba360b8..192d11b2fd 100644 --- a/docs/d8/d4f/classshaka_1_1media_1_1TextSample-members.html +++ b/docs/d8/d4f/classshaka_1_1media_1_1TextSample-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/d8/d51/text__readers_8cc_source.html b/docs/d8/d51/text__readers_8cc_source.html index 5ef656ab1d..33d7d05aba 100644 --- a/docs/d8/d51/text__readers_8cc_source.html +++ b/docs/d8/d51/text__readers_8cc_source.html @@ -188,7 +188,7 @@ $(function() { diff --git a/docs/d8/d53/crypto__flags_8h_source.html b/docs/d8/d53/crypto__flags_8h_source.html index ddc0ac96d6..76271bd0f1 100644 --- a/docs/d8/d53/crypto__flags_8h_source.html +++ b/docs/d8/d53/crypto__flags_8h_source.html @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/d8/d54/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer-members.html b/docs/d8/d54/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer-members.html index c52da1eaeb..4e450ca5a8 100644 --- a/docs/d8/d54/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer-members.html +++ b/docs/d8/d54/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer-members.html @@ -114,7 +114,7 @@ $(function() { 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 c62f77afeb..5378e52d2b 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 @@ -193,7 +193,7 @@ Additional Inherited Members diff --git a/docs/d8/d61/ac3__audio__util_8cc_source.html b/docs/d8/d61/ac3__audio__util_8cc_source.html index 9581c135c4..3a5b05b901 100644 --- a/docs/d8/d61/ac3__audio__util_8cc_source.html +++ b/docs/d8/d61/ac3__audio__util_8cc_source.html @@ -125,7 +125,7 @@ $(function() { diff --git a/docs/d8/d66/classshaka_1_1UdpFile-members.html b/docs/d8/d66/classshaka_1_1UdpFile-members.html index ea100338c6..0a17e3347c 100644 --- a/docs/d8/d66/classshaka_1_1UdpFile-members.html +++ b/docs/d8/d66/classshaka_1_1UdpFile-members.html @@ -101,7 +101,7 @@ $(function() { 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 3276cf0075..788c14383b 100644 --- a/docs/d8/d6a/classshaka_1_1media_1_1ClusterBuilder-members.html +++ b/docs/d8/d6a/classshaka_1_1media_1_1ClusterBuilder-members.html @@ -83,7 +83,7 @@ $(function() { 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 2e1fc5a907..0e51c718d0 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 @@ -154,7 +154,7 @@ Additional Inherited Members diff --git a/docs/d8/d6f/origin__handler_8h_source.html b/docs/d8/d6f/origin__handler_8h_source.html index b9f2a84a0f..a0c6da5e60 100644 --- a/docs/d8/d6f/origin__handler_8h_source.html +++ b/docs/d8/d6f/origin__handler_8h_source.html @@ -120,7 +120,7 @@ $(function() { 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 3bce1ab906..3c898af578 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 @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/d8/d72/adaptation__set_8h_source.html b/docs/d8/d72/adaptation__set_8h_source.html index a1b2656352..66746d45ed 100644 --- a/docs/d8/d72/adaptation__set_8h_source.html +++ b/docs/d8/d72/adaptation__set_8h_source.html @@ -316,7 +316,7 @@ $(function() { diff --git a/docs/d8/d74/classshaka_1_1media_1_1TracksBuilder.html b/docs/d8/d74/classshaka_1_1media_1_1TracksBuilder.html index 7ca8c03b87..bf9b1c7c87 100644 --- a/docs/d8/d74/classshaka_1_1media_1_1TracksBuilder.html +++ b/docs/d8/d74/classshaka_1_1media_1_1TracksBuilder.html @@ -102,7 +102,7 @@ std::vector< uint8_t >  diff --git a/docs/d8/d81/classshaka_1_1LocalFile-members.html b/docs/d8/d81/classshaka_1_1LocalFile-members.html index 020dd7d012..16f26b0e8e 100644 --- a/docs/d8/d81/classshaka_1_1LocalFile-members.html +++ b/docs/d8/d81/classshaka_1_1LocalFile-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/docs/d8/d86/classshaka_1_1media_1_1WebMTracksParser.html b/docs/d8/d86/classshaka_1_1media_1_1WebMTracksParser.html index e651934fa5..42c1d29ede 100644 --- a/docs/d8/d86/classshaka_1_1media_1_1WebMTracksParser.html +++ b/docs/d8/d86/classshaka_1_1media_1_1WebMTracksParser.html @@ -209,7 +209,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 52e493e518..d1d09a9e7e 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 @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/d8/d8e/classshaka_1_1AdaptationSet.html b/docs/d8/d8e/classshaka_1_1AdaptationSet.html index ce153117f5..347d713741 100644 --- a/docs/d8/d8e/classshaka_1_1AdaptationSet.html +++ b/docs/d8/d8e/classshaka_1_1AdaptationSet.html @@ -809,7 +809,7 @@ class AdaptationSetTest 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 e1d896cc90..edd07b0188 100644 --- a/docs/d8/d91/classshaka_1_1media_1_1AesCtrEncryptor-members.html +++ b/docs/d8/d91/classshaka_1_1media_1_1AesCtrEncryptor-members.html @@ -97,7 +97,7 @@ $(function() { 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 985f28a229..66861e7caf 100644 --- a/docs/d8/d92/classshaka_1_1media_1_1AesRequestSigner-members.html +++ b/docs/d8/d92/classshaka_1_1media_1_1AesRequestSigner-members.html @@ -81,7 +81,7 @@ $(function() { 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 d56c46c1e3..350173fbf7 100644 --- a/docs/d8/d92/structshaka_1_1media_1_1H264DecRefPicMarking-members.html +++ b/docs/d8/d92/structshaka_1_1media_1_1H264DecRefPicMarking-members.html @@ -80,7 +80,7 @@ $(function() { 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 ca112a3de5..761612b10b 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 @@ -91,7 +91,7 @@ $(function() { diff --git a/docs/d8/d94/pes__packet_8h_source.html b/docs/d8/d94/pes__packet_8h_source.html index 74061177d0..f57b9da437 100644 --- a/docs/d8/d94/pes__packet_8h_source.html +++ b/docs/d8/d94/pes__packet_8h_source.html @@ -148,7 +148,7 @@ $(function() { diff --git a/docs/d8/d99/structshaka_1_1media_1_1TextNumber.html b/docs/d8/d99/structshaka_1_1media_1_1TextNumber.html index 90e2a8466a..8173746a88 100644 --- a/docs/d8/d99/structshaka_1_1media_1_1TextNumber.html +++ b/docs/d8/d99/structshaka_1_1media_1_1TextNumber.html @@ -98,7 +98,7 @@ TextUnitType type 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 e5ace83a74..cf0b9af85e 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/d8/d9a/fragmenter_8cc_source.html b/docs/d8/d9a/fragmenter_8cc_source.html index e836b11936..37f1f10ef9 100644 --- a/docs/d8/d9a/fragmenter_8cc_source.html +++ b/docs/d8/d9a/fragmenter_8cc_source.html @@ -397,7 +397,7 @@ $(function() { diff --git a/docs/d8/d9c/webm__tracks__parser_8cc_source.html b/docs/d8/d9c/webm__tracks__parser_8cc_source.html index b55c015399..3588cfdbaf 100644 --- a/docs/d8/d9c/webm__tracks__parser_8cc_source.html +++ b/docs/d8/d9c/webm__tracks__parser_8cc_source.html @@ -423,13 +423,13 @@ $(function() {
      352 } // namespace media
      353 } // namespace shaka
      -
      int Parse(const uint8_t *buf, int size)
      Definition: webm_parser.cc:738
      - +
      int Parse(const uint8_t *buf, int size)
      Definition: webm_parser.cc:744
      +
      All the methods that are virtual are virtual for mocking.
      diff --git a/docs/d8/d9f/udp__file_8h_source.html b/docs/d8/d9f/udp__file_8h_source.html index 4173be2e62..f82220403d 100644 --- a/docs/d8/d9f/udp__file_8h_source.html +++ b/docs/d8/d9f/udp__file_8h_source.html @@ -138,7 +138,7 @@ $(function() { 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 fd6852bb5b..011bb655ca 100644 --- a/docs/d8/da3/classshaka_1_1media_1_1DecryptorSource-members.html +++ b/docs/d8/da3/classshaka_1_1media_1_1DecryptorSource-members.html @@ -78,7 +78,7 @@ $(function() { 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 79e74f62f0..927be19a6c 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 @@ -94,7 +94,7 @@ $(function() { 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 bac7b105f7..315e7d173a 100644 --- a/docs/d8/da6/classshaka_1_1media_1_1NaluReader-members.html +++ b/docs/d8/da6/classshaka_1_1media_1_1NaluReader-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/d8/da9/classshaka_1_1media_1_1DvbSubParser.html b/docs/d8/da9/classshaka_1_1media_1_1DvbSubParser.html index 80f3eddb13..a0a545899c 100644 --- a/docs/d8/da9/classshaka_1_1media_1_1DvbSubParser.html +++ b/docs/d8/da9/classshaka_1_1media_1_1DvbSubParser.html @@ -105,7 +105,7 @@ class DvbSubParserTest diff --git a/docs/d8/daa/stream__info_8h_source.html b/docs/d8/daa/stream__info_8h_source.html index 225582764e..49600663ff 100644 --- a/docs/d8/daa/stream__info_8h_source.html +++ b/docs/d8/daa/stream__info_8h_source.html @@ -225,7 +225,7 @@ $(function() { diff --git a/docs/d8/daf/namespaceshaka.html b/docs/d8/daf/namespaceshaka.html index 3b6efa04e0..e2a88466cc 100644 --- a/docs/d8/daf/namespaceshaka.html +++ b/docs/d8/daf/namespaceshaka.html @@ -934,7 +934,7 @@ template<class FlagType > diff --git a/docs/d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html b/docs/d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html index c171679f03..b62f31258a 100644 --- a/docs/d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html +++ b/docs/d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html @@ -114,7 +114,7 @@ void  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 df12d4ec88..cf812cb305 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 @@ -250,7 +250,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 e300e271bc..4e6e742bc8 100644 --- a/docs/d8/db9/classshaka_1_1media_1_1WebMContentEncodingsClient-members.html +++ b/docs/d8/db9/classshaka_1_1media_1_1WebMContentEncodingsClient-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/d8/dbf/classshaka_1_1media_1_1PsshGenerator.html b/docs/d8/dbf/classshaka_1_1media_1_1PsshGenerator.html index 46d05c725c..8e2113f0c3 100644 --- a/docs/d8/dbf/classshaka_1_1media_1_1PsshGenerator.html +++ b/docs/d8/dbf/classshaka_1_1media_1_1PsshGenerator.html @@ -253,7 +253,7 @@ Public Member Functions diff --git a/docs/d8/dc2/classshaka_1_1media_1_1Replicator-members.html b/docs/d8/dc2/classshaka_1_1media_1_1Replicator-members.html index b2e0a1be2d..7c9364bfd1 100644 --- a/docs/d8/dc2/classshaka_1_1media_1_1Replicator-members.html +++ b/docs/d8/dc2/classshaka_1_1media_1_1Replicator-members.html @@ -95,7 +95,7 @@ $(function() { 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 abd535ea73..9110d1db56 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 @@ -97,7 +97,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 30a80e00f2..e423ea68d3 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 @@ -154,7 +154,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 1db700d4b1..5e9ca9a76c 100644 --- a/docs/d8/dca/ts__writer_8h_source.html +++ b/docs/d8/dca/ts__writer_8h_source.html @@ -135,7 +135,7 @@ $(function() { diff --git a/docs/d8/dcb/dvb__image_8cc_source.html b/docs/d8/dcb/dvb__image_8cc_source.html index ed4e6cee57..172b808013 100644 --- a/docs/d8/dcb/dvb__image_8cc_source.html +++ b/docs/d8/dcb/dvb__image_8cc_source.html @@ -348,7 +348,7 @@ $(function() { 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 6b893dc3d1..68c99384bc 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 @@ -77,7 +77,7 @@ $(function() { 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 fbea2804ed..cd59f08db9 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 @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/d8/dd2/classshaka_1_1media_1_1WebVttFileBuffer-members.html b/docs/d8/dd2/classshaka_1_1media_1_1WebVttFileBuffer-members.html index 44f61687ae..228fd33dbf 100644 --- a/docs/d8/dd2/classshaka_1_1media_1_1WebVttFileBuffer-members.html +++ b/docs/d8/dd2/classshaka_1_1media_1_1WebVttFileBuffer-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/d8/dd3/classshaka_1_1media_1_1TextMuxer-members.html b/docs/d8/dd3/classshaka_1_1media_1_1TextMuxer-members.html index 3c4570bd3e..4242f77d84 100644 --- a/docs/d8/dd3/classshaka_1_1media_1_1TextMuxer-members.html +++ b/docs/d8/dd3/classshaka_1_1media_1_1TextMuxer-members.html @@ -112,7 +112,7 @@ $(function() { 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 dff5e02372..c2a896b57f 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 @@ -109,7 +109,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 d49224cfa8..345b06ddc0 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 @@ -114,7 +114,7 @@ std::vector< uint8_t >  diff --git a/docs/d8/de1/classshaka_1_1Period.html b/docs/d8/de1/classshaka_1_1Period.html index ec0e3ee19f..9062bb9baf 100644 --- a/docs/d8/de1/classshaka_1_1Period.html +++ b/docs/d8/de1/classshaka_1_1Period.html @@ -363,7 +363,7 @@ class PeriodTest< diff --git a/docs/d8/de1/classshaka_1_1SimpleMpdNotifier.html b/docs/d8/de1/classshaka_1_1SimpleMpdNotifier.html index cbc99960c7..87bd107377 100644 --- a/docs/d8/de1/classshaka_1_1SimpleMpdNotifier.html +++ b/docs/d8/de1/classshaka_1_1SimpleMpdNotifier.html @@ -119,6 +119,8 @@ Public Member Functions   MpdType mpd_type () const   +bool use_segment_list () const +  @@ -513,7 +515,7 @@ class 

      Friends

      SimpleMpdNotifierTes diff --git a/docs/d8/de6/webm__crypto__helpers_8h_source.html b/docs/d8/de6/webm__crypto__helpers_8h_source.html index 1e09bbe2d3..43742a1aff 100644 --- a/docs/d8/de6/webm__crypto__helpers_8h_source.html +++ b/docs/d8/de6/webm__crypto__helpers_8h_source.html @@ -98,7 +98,7 @@ $(function() { 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 91765e1f9d..fbe237c373 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 @@ -84,7 +84,7 @@ $(function() {
      diff --git a/docs/d8/deb/retired__flags_8cc_source.html b/docs/d8/deb/retired__flags_8cc_source.html index 9e3c491076..b7a851eeb3 100644 --- a/docs/d8/deb/retired__flags_8cc_source.html +++ b/docs/d8/deb/retired__flags_8cc_source.html @@ -189,7 +189,7 @@ $(function() { diff --git a/docs/d8/dec/ttml__to__mp4__handler_8cc_source.html b/docs/d8/dec/ttml__to__mp4__handler_8cc_source.html index 62f6d68866..eb0a1dd0c5 100644 --- a/docs/d8/dec/ttml__to__mp4__handler_8cc_source.html +++ b/docs/d8/dec/ttml__to__mp4__handler_8cc_source.html @@ -199,7 +199,7 @@ $(function() { 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 eefd28c405..f51fe70fe5 100644 --- a/docs/d8/dee/classshaka_1_1media_1_1AudioTimestampHelper-members.html +++ b/docs/d8/dee/classshaka_1_1media_1_1AudioTimestampHelper-members.html @@ -83,7 +83,7 @@ $(function() { 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 e8c1c4e013..3a6a276bd2 100644 --- a/docs/d8/dee/classshaka_1_1media_1_1VPxParser-members.html +++ b/docs/d8/dee/classshaka_1_1media_1_1VPxParser-members.html @@ -80,7 +80,7 @@ $(function() { 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 ad4efb6139..cd10509b21 100644 --- a/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html +++ b/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html @@ -208,7 +208,7 @@ $(function() { 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 03ab50d0e7..6be1d8589b 100644 --- a/docs/d8/df7/classshaka_1_1media_1_1SegmentTestBase-members.html +++ b/docs/d8/df7/classshaka_1_1media_1_1SegmentTestBase-members.html @@ -95,7 +95,7 @@ $(function() { diff --git a/docs/d8/df8/classshaka_1_1media_1_1TextPadder.html b/docs/d8/df8/classshaka_1_1media_1_1TextPadder.html index d04ba6ca64..b1a7429bcc 100644 --- a/docs/d8/df8/classshaka_1_1media_1_1TextPadder.html +++ b/docs/d8/df8/classshaka_1_1media_1_1TextPadder.html @@ -208,7 +208,7 @@ const std::map< size_t, std::pair< std::shared_ptr< 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 745873dea5..19d1d901ac 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 @@ -140,7 +140,7 @@ $(function() { 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 f884b183e3..e9e1c99bca 100644 --- a/docs/d9/d00/structshaka_1_1media_1_1OnMediaEndParameters-members.html +++ b/docs/d9/d00/structshaka_1_1media_1_1OnMediaEndParameters-members.html @@ -77,7 +77,7 @@ $(function() { 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 3ce97f69b9..3e5435b438 100644 --- a/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html +++ b/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html @@ -125,7 +125,7 @@ $(function() { diff --git a/docs/d9/d08/mock__mpd__builder_8h_source.html b/docs/d9/d08/mock__mpd__builder_8h_source.html index a130fb3dbf..be1b08be41 100644 --- a/docs/d9/d08/mock__mpd__builder_8h_source.html +++ b/docs/d9/d08/mock__mpd__builder_8h_source.html @@ -185,7 +185,7 @@ $(function() { 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 a66ff8ae5a..b7841ce824 100644 --- a/docs/d9/d0b/classshaka_1_1media_1_1HlsNotifyMuxerListener-members.html +++ b/docs/d9/d0b/classshaka_1_1media_1_1HlsNotifyMuxerListener-members.html @@ -94,7 +94,7 @@ $(function() { diff --git a/docs/d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html b/docs/d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html index 84fbbe8c13..e218a0a352 100644 --- a/docs/d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html +++ b/docs/d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html @@ -200,7 +200,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 b39c406744..c97a9bd7d7 100644 --- a/docs/d9/d12/chunking__handler_8cc_source.html +++ b/docs/d9/d12/chunking__handler_8cc_source.html @@ -244,7 +244,7 @@ $(function() { diff --git a/docs/d9/d13/classshaka_1_1media_1_1BufferReader.html b/docs/d9/d13/classshaka_1_1media_1_1BufferReader.html index f3af44fb81..8379bbbff8 100644 --- a/docs/d9/d13/classshaka_1_1media_1_1BufferReader.html +++ b/docs/d9/d13/classshaka_1_1media_1_1BufferReader.html @@ -264,7 +264,7 @@ bool ReadNBytesInto8s diff --git a/docs/d9/d14/protection__system__flags_8cc_source.html b/docs/d9/d14/protection__system__flags_8cc_source.html index 8c38f46c77..092a2d4bab 100644 --- a/docs/d9/d14/protection__system__flags_8cc_source.html +++ b/docs/d9/d14/protection__system__flags_8cc_source.html @@ -88,7 +88,7 @@ $(function() { 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 cd077113cc..a0e3f897fb 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 @@ -160,7 +160,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 9b279da112..75a79f968b 100644 --- a/docs/d9/d26/classshaka_1_1media_1_1AesEncryptor-members.html +++ b/docs/d9/d26/classshaka_1_1media_1_1AesEncryptor-members.html @@ -94,7 +94,7 @@ $(function() { 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 30a7754678..2fa13ef5a0 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 @@ -431,7 +431,7 @@ void set_progress_target diff --git a/docs/d9/d28/classshaka_1_1media_1_1DvbImageBuilder.html b/docs/d9/d28/classshaka_1_1media_1_1DvbImageBuilder.html index 5af92b7203..1fac3f2fea 100644 --- a/docs/d9/d28/classshaka_1_1media_1_1DvbImageBuilder.html +++ b/docs/d9/d28/classshaka_1_1media_1_1DvbImageBuilder.html @@ -165,7 +165,7 @@ void  diff --git a/docs/d9/d2e/packed__audio__segmenter_8h_source.html b/docs/d9/d2e/packed__audio__segmenter_8h_source.html index 77af021cc1..1eb2d091d7 100644 --- a/docs/d9/d2e/packed__audio__segmenter_8h_source.html +++ b/docs/d9/d2e/packed__audio__segmenter_8h_source.html @@ -166,7 +166,7 @@ $(function() { diff --git a/docs/d9/d2f/http__file_8h_source.html b/docs/d9/d2f/http__file_8h_source.html index caf0d9afbf..bf8d41b9af 100644 --- a/docs/d9/d2f/http__file_8h_source.html +++ b/docs/d9/d2f/http__file_8h_source.html @@ -142,31 +142,32 @@ $(function() {
      83  // The headers need to remain alive for the duration of the request.
      84  std::unique_ptr<curl_slist, CurlDelete> request_headers_;
      85  Status status_;
      -
      86 
      -
      87  // Signaled when the "curl easy perform" task completes.
      -
      88  base::WaitableEvent task_exit_event_;
      -
      89 };
      -
      90 
      -
      91 } // namespace shaka
      -
      92 
      -
      93 #endif // PACKAGER_FILE_HTTP_H_
      +
      86  std::string user_agent_;
      +
      87 
      +
      88  // Signaled when the "curl easy perform" task completes.
      +
      89  base::WaitableEvent task_exit_event_;
      +
      90 };
      +
      91 
      +
      92 } // namespace shaka
      +
      93 
      +
      94 #endif // PACKAGER_FILE_HTTP_H_
      Define an abstract file interface.
      Definition: file.h:27
      -
      bool Seek(uint64_t position) override
      Definition: http_file.cc:248
      -
      bool Open() override
      Internal open. Should not be used directly.
      Definition: http_file.cc:191
      -
      bool Close() override
      Definition: http_file.cc:224
      -
      int64_t Write(const void *buffer, uint64_t length) override
      Definition: http_file.cc:233
      -
      int64_t Read(void *buffer, uint64_t length) override
      Definition: http_file.cc:228
      -
      bool Tell(uint64_t *position) override
      Definition: http_file.cc:253
      -
      int64_t Size() override
      Definition: http_file.cc:238
      -
      bool Flush() override
      Definition: http_file.cc:243
      +
      bool Seek(uint64_t position) override
      Definition: http_file.cc:260
      +
      bool Open() override
      Internal open. Should not be used directly.
      Definition: http_file.cc:203
      +
      bool Close() override
      Definition: http_file.cc:236
      +
      int64_t Write(const void *buffer, uint64_t length) override
      Definition: http_file.cc:245
      +
      int64_t Read(void *buffer, uint64_t length) override
      Definition: http_file.cc:240
      +
      bool Tell(uint64_t *position) override
      Definition: http_file.cc:265
      +
      int64_t Size() override
      Definition: http_file.cc:250
      +
      bool Flush() override
      Definition: http_file.cc:255
      Declaration of class which implements a thread-safe circular buffer.
      Definition: io_cache.h:19
      All the methods that are virtual are virtual for mocking.
      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 a228fa4e94..a454265c2d 100644 --- a/docs/d9/d36/classshaka_1_1media_1_1TracksBuilder-members.html +++ b/docs/d9/d36/classshaka_1_1media_1_1TracksBuilder-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/d9/d3b/webm__content__encodings_8h_source.html b/docs/d9/d3b/webm__content__encodings_8h_source.html index d7b7b7a979..b227cb9f60 100644 --- a/docs/d9/d3b/webm__content__encodings_8h_source.html +++ b/docs/d9/d3b/webm__content__encodings_8h_source.html @@ -162,7 +162,7 @@ $(function() { 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 8e719a7ccf..a2d8f5678f 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 @@ -147,7 +147,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 a572b06c47..0f925210d6 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 @@ -154,7 +154,7 @@ Additional Inherited Members diff --git a/docs/d9/d40/classshaka_1_1media_1_1WebVttParser.html b/docs/d9/d40/classshaka_1_1media_1_1WebVttParser.html index 42a0218633..86621a4411 100644 --- a/docs/d9/d40/classshaka_1_1media_1_1WebVttParser.html +++ b/docs/d9/d40/classshaka_1_1media_1_1WebVttParser.html @@ -131,7 +131,7 @@ Additional Inherited Members

      Implements shaka::media::MediaParser.

      -

      Definition at line 212 of file webvtt_parser.cc.

      +

      Definition at line 206 of file webvtt_parser.cc.

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

      Implements shaka::media::MediaParser.

      -

      Definition at line 199 of file webvtt_parser.cc.

      +

      Definition at line 193 of file webvtt_parser.cc.

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

      Implements shaka::media::MediaParser.

      -

      Definition at line 217 of file webvtt_parser.cc.

      +

      Definition at line 211 of file webvtt_parser.cc.

      @@ -244,7 +244,7 @@ Additional Inherited Members diff --git a/docs/d9/d44/classshaka_1_1media_1_1MultiCodecMuxerListener.html b/docs/d9/d44/classshaka_1_1media_1_1MultiCodecMuxerListener.html index 9b342402c1..444ae15280 100644 --- a/docs/d9/d44/classshaka_1_1media_1_1MultiCodecMuxerListener.html +++ b/docs/d9/d44/classshaka_1_1media_1_1MultiCodecMuxerListener.html @@ -201,7 +201,7 @@ Additional Inherited Members diff --git a/docs/d9/d52/structshaka_1_1media_1_1KeyFrameEvent.html b/docs/d9/d52/structshaka_1_1media_1_1KeyFrameEvent.html index f4805eb79e..a0c3caff52 100644 --- a/docs/d9/d52/structshaka_1_1media_1_1KeyFrameEvent.html +++ b/docs/d9/d52/structshaka_1_1media_1_1KeyFrameEvent.html @@ -94,7 +94,7 @@ uint64_t size 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 4d77155b6c..6ea50d2ecb 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 @@ -313,7 +313,7 @@ Public Member Functions diff --git a/docs/d9/d65/classshaka_1_1media_1_1SingleThreadJobManager.html b/docs/d9/d65/classshaka_1_1media_1_1SingleThreadJobManager.html index 8d5f3db8a4..33dc1a5d18 100644 --- a/docs/d9/d65/classshaka_1_1media_1_1SingleThreadJobManager.html +++ b/docs/d9/d65/classshaka_1_1media_1_1SingleThreadJobManager.html @@ -137,7 +137,7 @@ std::unique_ptr< diff --git a/docs/d9/d65/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges-members.html b/docs/d9/d65/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges-members.html index f215826229..e2d01579c8 100644 --- a/docs/d9/d65/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges-members.html +++ b/docs/d9/d65/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html b/docs/d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html index 01d6d2a76f..59b2a8f932 100644 --- a/docs/d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html +++ b/docs/d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html @@ -291,7 +291,7 @@ Public Member Functions diff --git a/docs/d9/d67/structshaka_1_1media_1_1H265VuiParameters.html b/docs/d9/d67/structshaka_1_1media_1_1H265VuiParameters.html index bc9701adcd..3d4b91e619 100644 --- a/docs/d9/d67/structshaka_1_1media_1_1H265VuiParameters.html +++ b/docs/d9/d67/structshaka_1_1media_1_1H265VuiParameters.html @@ -113,7 +113,7 @@ int min_spatial_segmentati diff --git a/docs/d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html b/docs/d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html index c33611ec88..c8c8963fa6 100644 --- a/docs/d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html +++ b/docs/d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html @@ -606,7 +606,7 @@ Additional Inherited Members 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 ec8425f8fe..bf57eb8160 100644 --- a/docs/d9/d6a/structshaka_1_1media_1_1H264SliceHeader-members.html +++ b/docs/d9/d6a/structshaka_1_1media_1_1H264SliceHeader-members.html @@ -128,7 +128,7 @@ $(function() { diff --git a/docs/d9/d76/ts__muxer_8cc_source.html b/docs/d9/d76/ts__muxer_8cc_source.html index 3bbfd9ab7f..98da7046c7 100644 --- a/docs/d9/d76/ts__muxer_8cc_source.html +++ b/docs/d9/d76/ts__muxer_8cc_source.html @@ -148,7 +148,7 @@ $(function() { diff --git a/docs/d9/d7e/classshaka_1_1media_1_1BaseDescriptor-members.html b/docs/d9/d7e/classshaka_1_1media_1_1BaseDescriptor-members.html index baba63ce2b..3cf1b8f143 100644 --- a/docs/d9/d7e/classshaka_1_1media_1_1BaseDescriptor-members.html +++ b/docs/d9/d7e/classshaka_1_1media_1_1BaseDescriptor-members.html @@ -82,7 +82,7 @@ $(function() { 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 4e91d81312..34791ec012 100644 --- a/docs/d9/d81/classshaka_1_1media_1_1ClosureThread-members.html +++ b/docs/d9/d81/classshaka_1_1media_1_1ClosureThread-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/d9/d86/limits_8h_source.html b/docs/d9/d86/limits_8h_source.html index a63f9d1a27..fbd682d526 100644 --- a/docs/d9/d86/limits_8h_source.html +++ b/docs/d9/d86/limits_8h_source.html @@ -124,7 +124,7 @@ $(function() { diff --git a/docs/d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html b/docs/d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html index 94f7680580..d906635723 100644 --- a/docs/d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html +++ b/docs/d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html @@ -131,7 +131,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 d846c6cdbb..ecbe53025a 100644 --- a/docs/d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html +++ b/docs/d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html @@ -168,7 +168,7 @@ Additional Inherited Members diff --git a/docs/d9/d90/text__track_8h_source.html b/docs/d9/d90/text__track_8h_source.html index bcd914bf93..a4c3887184 100644 --- a/docs/d9/d90/text__track_8h_source.html +++ b/docs/d9/d90/text__track_8h_source.html @@ -117,7 +117,7 @@ $(function() { diff --git a/docs/d9/d9b/classshaka_1_1hls_1_1MediaPlaylistFactory.html b/docs/d9/d9b/classshaka_1_1hls_1_1MediaPlaylistFactory.html index 7778fce6d4..b7e2aa74e2 100644 --- a/docs/d9/d9b/classshaka_1_1hls_1_1MediaPlaylistFactory.html +++ b/docs/d9/d9b/classshaka_1_1hls_1_1MediaPlaylistFactory.html @@ -92,7 +92,7 @@ virtual std::unique_ptr< diff --git a/docs/d9/d9b/sample__aes__ec3__cryptor_8cc_source.html b/docs/d9/d9b/sample__aes__ec3__cryptor_8cc_source.html index 501f9a90b9..00a64a113f 100644 --- a/docs/d9/d9b/sample__aes__ec3__cryptor_8cc_source.html +++ b/docs/d9/d9b/sample__aes__ec3__cryptor_8cc_source.html @@ -193,7 +193,7 @@ $(function() { diff --git a/docs/d9/da0/classshaka_1_1media_1_1SampleAesEc3Cryptor.html b/docs/d9/da0/classshaka_1_1media_1_1SampleAesEc3Cryptor.html index ae7aff18cc..159a6f07df 100644 --- a/docs/d9/da0/classshaka_1_1media_1_1SampleAesEc3Cryptor.html +++ b/docs/d9/da0/classshaka_1_1media_1_1SampleAesEc3Cryptor.html @@ -220,7 +220,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/d9/da4/stream__descriptor_8h_source.html b/docs/d9/da4/stream__descriptor_8h_source.html index 5c955547b8..f949829419 100644 --- a/docs/d9/da4/stream__descriptor_8h_source.html +++ b/docs/d9/da4/stream__descriptor_8h_source.html @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html b/docs/d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html index a8929b448b..a6067721d1 100644 --- a/docs/d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html +++ b/docs/d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html @@ -207,7 +207,7 @@ Additional Inherited Members

      Implements shaka::media::MuxerListener.

      -

      Definition at line 204 of file mpd_notify_muxer_listener.cc.

      +

      Definition at line 205 of file mpd_notify_muxer_listener.cc.

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

      Implements shaka::media::MuxerListener.

      -

      Definition at line 198 of file mpd_notify_muxer_listener.cc.

      +

      Definition at line 199 of file mpd_notify_muxer_listener.cc.

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

      Implements shaka::media::MuxerListener.

      -

      Definition at line 181 of file mpd_notify_muxer_listener.cc.

      +

      Definition at line 182 of file mpd_notify_muxer_listener.cc.

      @@ -574,7 +574,7 @@ Additional Inherited Members 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 59bf193c4b..f30872b8cf 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 @@ -98,7 +98,7 @@ $(function() { diff --git a/docs/d9/da8/structshaka_1_1BufferCallbackParams.html b/docs/d9/da8/structshaka_1_1BufferCallbackParams.html index 1db8d6bd39..209e46e3ab 100644 --- a/docs/d9/da8/structshaka_1_1BufferCallbackParams.html +++ b/docs/d9/da8/structshaka_1_1BufferCallbackParams.html @@ -130,7 +130,7 @@ Public Attributes diff --git a/docs/d9/dae/text__muxer_8h_source.html b/docs/d9/dae/text__muxer_8h_source.html index 52d087896e..b13629f9ba 100644 --- a/docs/d9/dae/text__muxer_8h_source.html +++ b/docs/d9/dae/text__muxer_8h_source.html @@ -122,7 +122,7 @@ $(function() { 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 377fd0862a..4e6da8b22e 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 @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/d9/db9/content__protection__element_8cc_source.html b/docs/d9/db9/content__protection__element_8cc_source.html index 35e2ce4121..da10cde6a9 100644 --- a/docs/d9/db9/content__protection__element_8cc_source.html +++ b/docs/d9/db9/content__protection__element_8cc_source.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/d9/db9/muxer_8cc_source.html b/docs/d9/db9/muxer_8cc_source.html index 01e08a2ae0..9d7783cb46 100644 --- a/docs/d9/db9/muxer_8cc_source.html +++ b/docs/d9/db9/muxer_8cc_source.html @@ -211,7 +211,7 @@ $(function() { 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 8d82c78410..e65971ccdb 100644 --- a/docs/d9/dc4/classshaka_1_1media_1_1BufferReader-members.html +++ b/docs/d9/dc4/classshaka_1_1media_1_1BufferReader-members.html @@ -95,7 +95,7 @@ $(function() { 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 16f810b47f..04fe356d84 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 @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/d9/dc7/classshaka_1_1media_1_1BitWriter-members.html b/docs/d9/dc7/classshaka_1_1media_1_1BitWriter-members.html index d36a63be80..c432901e14 100644 --- a/docs/d9/dc7/classshaka_1_1media_1_1BitWriter-members.html +++ b/docs/d9/dc7/classshaka_1_1media_1_1BitWriter-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/d9/dc8/webm__constants_8cc_source.html b/docs/d9/dc8/webm__constants_8cc_source.html index 7ff530a692..34e3b0aaad 100644 --- a/docs/d9/dc8/webm__constants_8cc_source.html +++ b/docs/d9/dc8/webm__constants_8cc_source.html @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/d9/dca/ttml__to__mp4__handler_8h_source.html b/docs/d9/dca/ttml__to__mp4__handler_8h_source.html index 4634990628..b6d707f2f3 100644 --- a/docs/d9/dca/ttml__to__mp4__handler_8h_source.html +++ b/docs/d9/dca/ttml__to__mp4__handler_8h_source.html @@ -120,7 +120,7 @@ $(function() { diff --git a/docs/d9/dcc/webm__video__client_8h_source.html b/docs/d9/dcc/webm__video__client_8h_source.html index 498e410211..5a1689f53c 100644 --- a/docs/d9/dcc/webm__video__client_8h_source.html +++ b/docs/d9/dcc/webm__video__client_8h_source.html @@ -150,7 +150,7 @@ $(function() { diff --git a/docs/d9/dd2/structshaka_1_1WidevineEncryptionParams.html b/docs/d9/dd2/structshaka_1_1WidevineEncryptionParams.html index 65b58ea8f6..b55c0e4af3 100644 --- a/docs/d9/dd2/structshaka_1_1WidevineEncryptionParams.html +++ b/docs/d9/dd2/structshaka_1_1WidevineEncryptionParams.html @@ -115,7 +115,7 @@ bool  diff --git a/docs/d9/dda/ac3__header_8cc_source.html b/docs/d9/dda/ac3__header_8cc_source.html index bc885865ae..4a7b5bc5e0 100644 --- a/docs/d9/dda/ac3__header_8cc_source.html +++ b/docs/d9/dda/ac3__header_8cc_source.html @@ -253,7 +253,7 @@ $(function() { diff --git a/docs/d9/de0/structshaka_1_1media_1_1Range.html b/docs/d9/de0/structshaka_1_1media_1_1Range.html index 713780974c..1fe0867747 100644 --- a/docs/d9/de0/structshaka_1_1media_1_1Range.html +++ b/docs/d9/de0/structshaka_1_1media_1_1Range.html @@ -94,7 +94,7 @@ uint64_t end diff --git a/docs/d9/de2/mock__media__playlist_8cc_source.html b/docs/d9/de2/mock__media__playlist_8cc_source.html index 0183ec521b..4da9fca667 100644 --- a/docs/d9/de2/mock__media__playlist_8cc_source.html +++ b/docs/d9/de2/mock__media__playlist_8cc_source.html @@ -94,7 +94,7 @@ $(function() { diff --git a/docs/d9/de3/muxer__listener__internal_8cc_source.html b/docs/d9/de3/muxer__listener__internal_8cc_source.html index 6c25616711..c7a4308bd4 100644 --- a/docs/d9/de3/muxer__listener__internal_8cc_source.html +++ b/docs/d9/de3/muxer__listener__internal_8cc_source.html @@ -322,74 +322,81 @@ $(function() {
      251 
      252 bool SetVodInformation(const MuxerListener::MediaRanges& media_ranges,
      253  float duration_seconds,
      -
      254  MediaInfo* media_info) {
      -
      255  DCHECK(media_info);
      -
      256 
      -
      257  if (duration_seconds <= 0.0f) {
      -
      258  // Non positive second media must be invalid media.
      -
      259  LOG(ERROR) << "Duration is not positive: " << duration_seconds;
      -
      260  return false;
      -
      261  }
      -
      262 
      -
      263  if (media_ranges.init_range) {
      -
      264  SetRange(media_ranges.init_range->start, media_ranges.init_range->end,
      -
      265  media_info->mutable_init_range());
      -
      266  }
      -
      267 
      -
      268  if (media_ranges.index_range) {
      -
      269  SetRange(media_ranges.index_range->start, media_ranges.index_range->end,
      -
      270  media_info->mutable_index_range());
      -
      271  }
      -
      272 
      -
      273  media_info->set_media_duration_seconds(duration_seconds);
      -
      274 
      -
      275  return true;
      -
      276 }
      -
      277 
      -
      278 void SetContentProtectionFields(
      -
      279  FourCC protection_scheme,
      -
      280  const std::vector<uint8_t>& default_key_id,
      -
      281  const std::vector<ProtectionSystemSpecificInfo>& key_system_info,
      -
      282  MediaInfo* media_info) {
      -
      283  DCHECK(media_info);
      -
      284  MediaInfo::ProtectedContent* protected_content =
      -
      285  media_info->mutable_protected_content();
      -
      286  protected_content->set_protection_scheme(FourCCToString(protection_scheme));
      -
      287 
      -
      288  if (!default_key_id.empty()) {
      -
      289  protected_content->set_default_key_id(default_key_id.data(),
      -
      290  default_key_id.size());
      -
      291  }
      -
      292 
      -
      293  for (const ProtectionSystemSpecificInfo& info : key_system_info) {
      -
      294  MediaInfo::ProtectedContent::ContentProtectionEntry* entry =
      -
      295  protected_content->add_content_protection_entry();
      -
      296  entry->set_uuid(CreateUUIDString(info.system_id));
      -
      297 
      -
      298  const std::vector<uint8_t>& pssh = info.psshs;
      -
      299  entry->set_pssh(pssh.data(), pssh.size());
      -
      300  }
      -
      301 }
      -
      302 
      -
      303 std::string CreateUUIDString(const std::vector<uint8_t>& data) {
      -
      304  DCHECK_EQ(16u, data.size());
      -
      305  std::string uuid =
      -
      306  base::ToLowerASCII(base::HexEncode(data.data(), data.size()));
      -
      307  uuid.insert(20, "-");
      -
      308  uuid.insert(16, "-");
      -
      309  uuid.insert(12, "-");
      -
      310  uuid.insert(8, "-");
      -
      311  return uuid;
      -
      312 }
      -
      313 
      -
      314 } // namespace internal
      -
      315 } // namespace media
      -
      316 } // namespace shaka
      +
      254  bool use_segment_lists,
      +
      255  MediaInfo* media_info) {
      +
      256  DCHECK(media_info);
      +
      257 
      +
      258  if (duration_seconds <= 0.0f) {
      +
      259  // Non positive second media must be invalid media.
      +
      260  LOG(ERROR) << "Duration is not positive: " << duration_seconds;
      +
      261  return false;
      +
      262  }
      +
      263 
      +
      264  if (media_ranges.init_range) {
      +
      265  SetRange(media_ranges.init_range->start, media_ranges.init_range->end,
      +
      266  media_info->mutable_init_range());
      +
      267  }
      +
      268 
      +
      269  if (media_ranges.index_range) {
      +
      270  SetRange(media_ranges.index_range->start, media_ranges.index_range->end,
      +
      271  media_info->mutable_index_range());
      +
      272  }
      +
      273 
      +
      274  if (use_segment_lists) {
      +
      275  for (const auto& range : media_ranges.subsegment_ranges) {
      +
      276  SetRange(range.start, range.end, media_info->add_subsegment_ranges());
      +
      277  }
      +
      278  }
      +
      279 
      +
      280  media_info->set_media_duration_seconds(duration_seconds);
      +
      281 
      +
      282  return true;
      +
      283 }
      +
      284 
      +
      285 void SetContentProtectionFields(
      +
      286  FourCC protection_scheme,
      +
      287  const std::vector<uint8_t>& default_key_id,
      +
      288  const std::vector<ProtectionSystemSpecificInfo>& key_system_info,
      +
      289  MediaInfo* media_info) {
      +
      290  DCHECK(media_info);
      +
      291  MediaInfo::ProtectedContent* protected_content =
      +
      292  media_info->mutable_protected_content();
      +
      293  protected_content->set_protection_scheme(FourCCToString(protection_scheme));
      +
      294 
      +
      295  if (!default_key_id.empty()) {
      +
      296  protected_content->set_default_key_id(default_key_id.data(),
      +
      297  default_key_id.size());
      +
      298  }
      +
      299 
      +
      300  for (const ProtectionSystemSpecificInfo& info : key_system_info) {
      +
      301  MediaInfo::ProtectedContent::ContentProtectionEntry* entry =
      +
      302  protected_content->add_content_protection_entry();
      +
      303  entry->set_uuid(CreateUUIDString(info.system_id));
      +
      304 
      +
      305  const std::vector<uint8_t>& pssh = info.psshs;
      +
      306  entry->set_pssh(pssh.data(), pssh.size());
      +
      307  }
      +
      308 }
      +
      309 
      +
      310 std::string CreateUUIDString(const std::vector<uint8_t>& data) {
      +
      311  DCHECK_EQ(16u, data.size());
      +
      312  std::string uuid =
      +
      313  base::ToLowerASCII(base::HexEncode(data.data(), data.size()));
      +
      314  uuid.insert(20, "-");
      +
      315  uuid.insert(16, "-");
      +
      316  uuid.insert(12, "-");
      +
      317  uuid.insert(8, "-");
      +
      318  return uuid;
      +
      319 }
      +
      320 
      +
      321 } // namespace internal
      +
      322 } // namespace media
      +
      323 } // namespace shaka
      All the methods that are virtual are virtual for mocking.
      diff --git a/docs/d9/deb/classshaka_1_1hls_1_1HlsNotifier.html b/docs/d9/deb/classshaka_1_1hls_1_1HlsNotifier.html index 18dcd1ade4..ad70908456 100644 --- a/docs/d9/deb/classshaka_1_1hls_1_1HlsNotifier.html +++ b/docs/d9/deb/classshaka_1_1hls_1_1HlsNotifier.html @@ -557,7 +557,7 @@ Public Member Functions 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 3b9b1067f2..64fb15cdc2 100644 --- a/docs/d9/ded/aac__audio__specific__config_8cc_source.html +++ b/docs/d9/ded/aac__audio__specific__config_8cc_source.html @@ -462,7 +462,7 @@ $(function() { 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 ea0440833a..71b8f76222 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html b/docs/d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html index ca6a4a7768..a00a7de059 100644 --- a/docs/d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html +++ b/docs/d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html @@ -229,7 +229,7 @@ false if max_offset > diff --git a/docs/d9/dfc/hls__audio__util_8cc_source.html b/docs/d9/dfc/hls__audio__util_8cc_source.html index 197b9e5c53..f52cdadd9d 100644 --- a/docs/d9/dfc/hls__audio__util_8cc_source.html +++ b/docs/d9/dfc/hls__audio__util_8cc_source.html @@ -157,7 +157,7 @@ $(function() { diff --git a/docs/d9/dfe/classshaka_1_1UdpOptions.html b/docs/d9/dfe/classshaka_1_1UdpOptions.html index 4d82e057fd..615656cee5 100644 --- a/docs/d9/dfe/classshaka_1_1UdpOptions.html +++ b/docs/d9/dfe/classshaka_1_1UdpOptions.html @@ -158,7 +158,7 @@ Static Public Member Functions diff --git a/docs/d9/dff/structshaka_1_1media_1_1H264ModificationOfPicNum.html b/docs/d9/dff/structshaka_1_1media_1_1H264ModificationOfPicNum.html index 8882a7c288..76f32ed8dc 100644 --- a/docs/d9/dff/structshaka_1_1media_1_1H264ModificationOfPicNum.html +++ b/docs/d9/dff/structshaka_1_1media_1_1H264ModificationOfPicNum.html @@ -98,7 +98,7 @@ union { diff --git a/docs/da/d02/classshaka_1_1media_1_1Id3Tag-members.html b/docs/da/d02/classshaka_1_1media_1_1Id3Tag-members.html index 1f0773fec4..9c3ce5f2dd 100644 --- a/docs/da/d02/classshaka_1_1media_1_1Id3Tag-members.html +++ b/docs/da/d02/classshaka_1_1media_1_1Id3Tag-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/da/d04/audio__stream__info_8cc_source.html b/docs/da/d04/audio__stream__info_8cc_source.html index c997a5686f..467bcb884b 100644 --- a/docs/da/d04/audio__stream__info_8cc_source.html +++ b/docs/da/d04/audio__stream__info_8cc_source.html @@ -229,7 +229,7 @@ $(function() { diff --git a/docs/da/d05/classshaka_1_1hls_1_1MediaPlaylist-members.html b/docs/da/d05/classshaka_1_1hls_1_1MediaPlaylist-members.html index c57a0720c8..ef3f4c6462 100644 --- a/docs/da/d05/classshaka_1_1hls_1_1MediaPlaylist-members.html +++ b/docs/da/d05/classshaka_1_1hls_1_1MediaPlaylist-members.html @@ -109,7 +109,7 @@ $(function() { 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 b22f9c48c1..02e544fe28 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 @@ -126,7 +126,7 @@ uint32_t pid () diff --git a/docs/da/d17/classshaka_1_1media_1_1mp2t_1_1AudioProgramMapTableWriter-members.html b/docs/da/d17/classshaka_1_1media_1_1mp2t_1_1AudioProgramMapTableWriter-members.html index 2f26a39568..4ef17a8ee1 100644 --- a/docs/da/d17/classshaka_1_1media_1_1mp2t_1_1AudioProgramMapTableWriter-members.html +++ b/docs/da/d17/classshaka_1_1media_1_1mp2t_1_1AudioProgramMapTableWriter-members.html @@ -84,7 +84,7 @@ $(function() { 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 a17ee67764..79bfa0c262 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 @@ -99,7 +99,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 2ae61bab97..66193236ed 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 @@ -120,7 +120,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 2445962226..b0a810fe20 100644 --- a/docs/da/d1d/udp__options_8cc_source.html +++ b/docs/da/d1d/udp__options_8cc_source.html @@ -220,7 +220,7 @@ $(function() { 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 21d0c0af13..e14847ffd7 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 @@ -142,7 +142,7 @@ typedef base::Callback< void(std::shared_ptr< diff --git a/docs/da/d23/ts__muxer_8h_source.html b/docs/da/d23/ts__muxer_8h_source.html index 8d7490c586..2fdd29149a 100644 --- a/docs/da/d23/ts__muxer_8h_source.html +++ b/docs/da/d23/ts__muxer_8h_source.html @@ -124,7 +124,7 @@ $(function() { diff --git a/docs/da/d24/h265__parser_8h_source.html b/docs/da/d24/h265__parser_8h_source.html index 8fdc816781..37582ddbf0 100644 --- a/docs/da/d24/h265__parser_8h_source.html +++ b/docs/da/d24/h265__parser_8h_source.html @@ -445,7 +445,7 @@ $(function() { diff --git a/docs/da/d2a/classshaka_1_1media_1_1MuxerFactory.html b/docs/da/d2a/classshaka_1_1media_1_1MuxerFactory.html index 96f88a9b7a..b3e2ea9688 100644 --- a/docs/da/d2a/classshaka_1_1media_1_1MuxerFactory.html +++ b/docs/da/d2a/classshaka_1_1media_1_1MuxerFactory.html @@ -152,7 +152,7 @@ void SetTsStreamOffset diff --git a/docs/da/d2a/text__stream__info_8h_source.html b/docs/da/d2a/text__stream__info_8h_source.html index e7cb32afed..162816d2ba 100644 --- a/docs/da/d2a/text__stream__info_8h_source.html +++ b/docs/da/d2a/text__stream__info_8h_source.html @@ -166,7 +166,7 @@ $(function() { diff --git a/docs/da/d2c/classshaka_1_1BandwidthEstimator.html b/docs/da/d2c/classshaka_1_1BandwidthEstimator.html index eaf2fab129..65de8c554e 100644 --- a/docs/da/d2c/classshaka_1_1BandwidthEstimator.html +++ b/docs/da/d2c/classshaka_1_1BandwidthEstimator.html @@ -171,7 +171,7 @@ Public Member Functions 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 3d0a8bd075..68e2b50227 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 @@ -112,7 +112,7 @@ $(function() { diff --git a/docs/da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html b/docs/da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html index 03f07ced77..86255b0a20 100644 --- a/docs/da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html +++ b/docs/da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html @@ -220,7 +220,7 @@ const std::map< size_t, std::pair< std::shared_ptr< 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 6c7c939aab..ef3a80df53 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 @@ -89,7 +89,7 @@ $(function() { 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 3ad04a81b7..7c6e3e63f5 100644 --- a/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html +++ b/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html @@ -128,7 +128,7 @@ $(function() { diff --git a/docs/da/d43/structshaka_1_1ContentProtectionElement.html b/docs/da/d43/structshaka_1_1ContentProtectionElement.html index dad5624e79..631e8a3fe5 100644 --- a/docs/da/d43/structshaka_1_1ContentProtectionElement.html +++ b/docs/da/d43/structshaka_1_1ContentProtectionElement.html @@ -101,7 +101,7 @@ std::vector< El diff --git a/docs/da/d4a/media__playlist_8h_source.html b/docs/da/d4a/media__playlist_8h_source.html index 2a9e4ceee6..b7881886eb 100644 --- a/docs/da/d4a/media__playlist_8h_source.html +++ b/docs/da/d4a/media__playlist_8h_source.html @@ -315,7 +315,7 @@ $(function() { diff --git a/docs/da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html b/docs/da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html index faf8557ecc..cf5e1f1eb2 100644 --- a/docs/da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html +++ b/docs/da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html @@ -345,7 +345,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 bd13fc7968..6cff82e7f6 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 @@ -163,7 +163,7 @@ Additional Inherited Members diff --git a/docs/da/d52/classshaka_1_1media_1_1MuxerListenerFactory-members.html b/docs/da/d52/classshaka_1_1media_1_1MuxerListenerFactory-members.html index 2c22db98fe..d0fca6cbbf 100644 --- a/docs/da/d52/classshaka_1_1media_1_1MuxerListenerFactory-members.html +++ b/docs/da/d52/classshaka_1_1media_1_1MuxerListenerFactory-members.html @@ -74,11 +74,11 @@ $(function() { - +
      CreateHlsListener(const StreamData &stream)shaka::media::MuxerListenerFactory
      CreateListener(const StreamData &stream)shaka::media::MuxerListenerFactory
      MuxerListenerFactory(bool output_media_info, MpdNotifier *mpd_notifier, hls::HlsNotifier *hls_notifier)shaka::media::MuxerListenerFactory
      MuxerListenerFactory(bool output_media_info, bool use_segment_list, MpdNotifier *mpd_notifier, hls::HlsNotifier *hls_notifier)shaka::media::MuxerListenerFactory
      diff --git a/docs/da/d53/es__parser__h265_8cc_source.html b/docs/da/d53/es__parser__h265_8cc_source.html index b1a03be003..c6a92e61af 100644 --- a/docs/da/d53/es__parser__h265_8cc_source.html +++ b/docs/da/d53/es__parser__h265_8cc_source.html @@ -262,7 +262,7 @@ $(function() { diff --git a/docs/da/d55/simple__hls__notifier_8h_source.html b/docs/da/d55/simple__hls__notifier_8h_source.html index 0cfafd9336..d0292db917 100644 --- a/docs/da/d55/simple__hls__notifier_8h_source.html +++ b/docs/da/d55/simple__hls__notifier_8h_source.html @@ -183,7 +183,7 @@ $(function() { 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 a6c7dcb0d8..9462921780 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 @@ -166,7 +166,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 d5a5fbb4c2..a04b0abace 100644 --- a/docs/da/d5c/widevine__key__source_8h_source.html +++ b/docs/da/d5c/widevine__key__source_8h_source.html @@ -213,7 +213,7 @@ $(function() { 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 6b4426ff13..1bbd4deac3 100644 --- a/docs/da/d5e/classshaka_1_1media_1_1H264VideoSliceHeaderParser-members.html +++ b/docs/da/d5e/classshaka_1_1media_1_1H264VideoSliceHeaderParser-members.html @@ -82,7 +82,7 @@ $(function() { 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 3bf5972cb4..cf74341d68 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 @@ -100,7 +100,7 @@ $(function() { diff --git a/docs/da/d6a/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter.html b/docs/da/d6a/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter.html index fe27bc0d1c..7d86efde63 100644 --- a/docs/da/d6a/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter.html +++ b/docs/da/d6a/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter.html @@ -129,7 +129,7 @@ static const uint8_t kElem 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 25e9fa15af..dfbe496f76 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 @@ -99,7 +99,7 @@ int16_t roll_distance diff --git a/docs/da/d79/structshaka_1_1media_1_1AV1Parser_1_1Tile-members.html b/docs/da/d79/structshaka_1_1media_1_1AV1Parser_1_1Tile-members.html index 1b56e85494..0c9a04cb09 100644 --- a/docs/da/d79/structshaka_1_1media_1_1AV1Parser_1_1Tile-members.html +++ b/docs/da/d79/structshaka_1_1media_1_1AV1Parser_1_1Tile-members.html @@ -77,7 +77,7 @@ $(function() { 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 a3d87c110e..aee4935c9a 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 @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/da/d88/mp4__muxer_8cc_source.html b/docs/da/d88/mp4__muxer_8cc_source.html index 7f344a197c..2470c38505 100644 --- a/docs/da/d88/mp4__muxer_8cc_source.html +++ b/docs/da/d88/mp4__muxer_8cc_source.html @@ -757,7 +757,7 @@ $(function() { 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 791aaeb7b6..1754ec6d20 100644 --- a/docs/da/d8b/classshaka_1_1media_1_1WebMMediaParser-members.html +++ b/docs/da/d8b/classshaka_1_1media_1_1WebMMediaParser-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/da/d8e/container__names_8cc_source.html b/docs/da/d8e/container__names_8cc_source.html index 62c58b287d..7c083120c1 100644 --- a/docs/da/d8e/container__names_8cc_source.html +++ b/docs/da/d8e/container__names_8cc_source.html @@ -1852,7 +1852,7 @@ $(function() { diff --git a/docs/da/d93/origin__handler_8cc_source.html b/docs/da/d93/origin__handler_8cc_source.html index 42cfc3d3e2..1effb7714f 100644 --- a/docs/da/d93/origin__handler_8cc_source.html +++ b/docs/da/d93/origin__handler_8cc_source.html @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/da/d93/structshaka_1_1media_1_1CueEvent.html b/docs/da/d93/structshaka_1_1media_1_1CueEvent.html index e81397187d..37cf38637f 100644 --- a/docs/da/d93/structshaka_1_1media_1_1CueEvent.html +++ b/docs/da/d93/structshaka_1_1media_1_1CueEvent.html @@ -94,7 +94,7 @@ std::string cue_data 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 a52ca7f5a4..fbedece1f0 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 @@ -77,7 +77,7 @@ $(function() { 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 0d2f86445a..7b1b3d28d3 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/da/d9f/classshaka_1_1MpdNotifierFactory-members.html b/docs/da/d9f/classshaka_1_1MpdNotifierFactory-members.html index 54b670bb85..2eed016972 100644 --- a/docs/da/d9f/classshaka_1_1MpdNotifierFactory-members.html +++ b/docs/da/d9f/classshaka_1_1MpdNotifierFactory-members.html @@ -78,7 +78,7 @@ $(function() { 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 ed1132534e..48fe494ae9 100644 --- a/docs/da/d9f/classshaka_1_1media_1_1MockMuxerListener-members.html +++ b/docs/da/d9f/classshaka_1_1media_1_1MockMuxerListener-members.html @@ -102,7 +102,7 @@ $(function() { 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 7477b336c5..dbc7365c68 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 @@ -124,7 +124,7 @@ static const int kPacketSi diff --git a/docs/da/dab/classshaka_1_1media_1_1CueAlignmentHandler.html b/docs/da/dab/classshaka_1_1media_1_1CueAlignmentHandler.html index 4ad442f44e..68c58a3bdc 100644 --- a/docs/da/dab/classshaka_1_1media_1_1CueAlignmentHandler.html +++ b/docs/da/dab/classshaka_1_1media_1_1CueAlignmentHandler.html @@ -176,7 +176,7 @@ const std::map< size_t, std::pair< std::shared_ptr< diff --git a/docs/da/db2/classshaka_1_1Representation-members.html b/docs/da/db2/classshaka_1_1Representation-members.html index 1edfcb92a8..284303d0d6 100644 --- a/docs/da/db2/classshaka_1_1Representation-members.html +++ b/docs/da/db2/classshaka_1_1Representation-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/da/db3/webvtt__file__buffer_8cc_source.html b/docs/da/db3/webvtt__file__buffer_8cc_source.html index fef114587c..0987114bbe 100644 --- a/docs/da/db3/webvtt__file__buffer_8cc_source.html +++ b/docs/da/db3/webvtt__file__buffer_8cc_source.html @@ -163,7 +163,7 @@ $(function() { diff --git a/docs/da/dbb/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord.html b/docs/da/dbb/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord.html index acafa4d98b..1fcea73fd4 100644 --- a/docs/da/dbb/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord.html +++ b/docs/da/dbb/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord.html @@ -139,7 +139,7 @@ Public Member Functions 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 0746bf449e..902602008f 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 @@ -163,7 +163,7 @@ Additional Inherited Members diff --git a/docs/da/dc3/classshaka_1_1media_1_1AV1Parser-members.html b/docs/da/dc3/classshaka_1_1media_1_1AV1Parser-members.html index 6e42825a82..c1f63a9810 100644 --- a/docs/da/dc3/classshaka_1_1media_1_1AV1Parser-members.html +++ b/docs/da/dc3/classshaka_1_1media_1_1AV1Parser-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/da/dc3/status_8cc_source.html b/docs/da/dc3/status_8cc_source.html index 091740be67..304d64424b 100644 --- a/docs/da/dc3/status_8cc_source.html +++ b/docs/da/dc3/status_8cc_source.html @@ -174,7 +174,7 @@ $(function() { 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 de19b860cb..c779f63cdd 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 @@ -196,7 +196,7 @@ Additional Inherited Members diff --git a/docs/da/dca/classshaka_1_1media_1_1OriginHandler-members.html b/docs/da/dca/classshaka_1_1media_1_1OriginHandler-members.html index d58a9bb32a..7b0ff744ed 100644 --- a/docs/da/dca/classshaka_1_1media_1_1OriginHandler-members.html +++ b/docs/da/dca/classshaka_1_1media_1_1OriginHandler-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/docs/da/dcb/es__descriptor_8h_source.html b/docs/da/dcb/es__descriptor_8h_source.html index 69210fb0c2..660e81979a 100644 --- a/docs/da/dcb/es__descriptor_8h_source.html +++ b/docs/da/dcb/es__descriptor_8h_source.html @@ -264,7 +264,7 @@ $(function() { diff --git a/docs/da/dd0/playready__key__source_8cc_source.html b/docs/da/dd0/playready__key__source_8cc_source.html index 7c07d21ee4..eef10cfa7b 100644 --- a/docs/da/dd0/playready__key__source_8cc_source.html +++ b/docs/da/dd0/playready__key__source_8cc_source.html @@ -287,7 +287,7 @@ $(function() { 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 0d9bfaac9a..a8508b4181 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 @@ -154,7 +154,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 9d15020d72..ec8b72b262 100644 --- a/docs/da/dd0/webm__info__parser_8h_source.html +++ b/docs/da/dd0/webm__info__parser_8h_source.html @@ -121,7 +121,7 @@ $(function() { diff --git a/docs/da/dd1/fragmenter_8h_source.html b/docs/da/dd1/fragmenter_8h_source.html index ed2875cd1d..d0c53c18d6 100644 --- a/docs/da/dd1/fragmenter_8h_source.html +++ b/docs/da/dd1/fragmenter_8h_source.html @@ -194,7 +194,7 @@ $(function() { 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 0ef74d0de9..00b713d5e9 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 @@ -86,7 +86,7 @@ $(function() { 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 6db85303c6..f00661f498 100644 --- a/docs/da/dd6/classshaka_1_1media_1_1H264ByteToUnitStreamConverter-members.html +++ b/docs/da/dd6/classshaka_1_1media_1_1H264ByteToUnitStreamConverter-members.html @@ -87,7 +87,7 @@ $(function() { 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 2fe3050490..7c425dbb1d 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 @@ -85,7 +85,7 @@ $(function() { 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 036143d3c4..fe4082b901 100644 --- a/docs/da/dda/structshaka_1_1media_1_1H264SEIRecoveryPoint-members.html +++ b/docs/da/dda/structshaka_1_1media_1_1H264SEIRecoveryPoint-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/da/ddd/classshaka_1_1media_1_1WidevineKeySource.html b/docs/da/ddd/classshaka_1_1media_1_1WidevineKeySource.html index adaba8b28e..764d1768ff 100644 --- a/docs/da/ddd/classshaka_1_1media_1_1WidevineKeySource.html +++ b/docs/da/ddd/classshaka_1_1media_1_1WidevineKeySource.html @@ -463,7 +463,7 @@ void set_enable_entitlemen 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 98b1f817ad..3f595f59cc 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 @@ -95,7 +95,7 @@ $(function() { diff --git a/docs/da/de2/mock__mpd__builder_8cc_source.html b/docs/da/de2/mock__mpd__builder_8cc_source.html index 12660c571f..be089a1fce 100644 --- a/docs/da/de2/mock__mpd__builder_8cc_source.html +++ b/docs/da/de2/mock__mpd__builder_8cc_source.html @@ -107,7 +107,7 @@ $(function() { diff --git a/docs/da/de4/classshaka_1_1media_1_1WebMClusterParser.html b/docs/da/de4/classshaka_1_1media_1_1WebMClusterParser.html index 8679318a3d..c51b0c4410 100644 --- a/docs/da/de4/classshaka_1_1media_1_1WebMClusterParser.html +++ b/docs/da/de4/classshaka_1_1media_1_1WebMClusterParser.html @@ -356,7 +356,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 3ac4322e7c..18b6bf28a2 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 @@ -92,7 +92,7 @@ $(function() { 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 f1dbae29e7..fbace0941a 100644 --- a/docs/da/de8/classshaka_1_1media_1_1AudioStreamInfo-members.html +++ b/docs/da/de8/classshaka_1_1media_1_1AudioStreamInfo-members.html @@ -113,7 +113,7 @@ $(function() { 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 3dd4778b4a..0b3e33caa1 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 @@ -160,7 +160,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 bc828687f3..d6da1f3878 100644 --- a/docs/da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html +++ b/docs/da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html @@ -166,7 +166,7 @@ int64_t  diff --git a/docs/da/df4/aes__decryptor_8cc_source.html b/docs/da/df4/aes__decryptor_8cc_source.html index 148d29d0e1..df0e9cb575 100644 --- a/docs/da/df4/aes__decryptor_8cc_source.html +++ b/docs/da/df4/aes__decryptor_8cc_source.html @@ -241,7 +241,7 @@ $(function() { 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 b4d53eb5d5..5899e4701f 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 @@ -172,7 +172,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 56e11a8a3b..bce3f9f28a 100644 --- a/docs/da/df9/classshaka_1_1media_1_1AesPatternCryptor-members.html +++ b/docs/da/df9/classshaka_1_1media_1_1AesPatternCryptor-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/da/df9/classshaka_1_1media_1_1JobManager-members.html b/docs/da/df9/classshaka_1_1media_1_1JobManager-members.html index a2d4338f18..2092a00dbd 100644 --- a/docs/da/df9/classshaka_1_1media_1_1JobManager-members.html +++ b/docs/da/df9/classshaka_1_1media_1_1JobManager-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/da/dfd/classshaka_1_1media_1_1MediaHandler.html b/docs/da/dfd/classshaka_1_1media_1_1MediaHandler.html index e7b168e2a6..c5a65d0531 100644 --- a/docs/da/dfd/classshaka_1_1media_1_1MediaHandler.html +++ b/docs/da/dfd/classshaka_1_1media_1_1MediaHandler.html @@ -302,7 +302,7 @@ const std::map< size_t, std::pair< std::shared_ptr< diff --git a/docs/db/d04/webvtt__parser_8cc_source.html b/docs/db/d04/webvtt__parser_8cc_source.html index 3ac5b9d5d4..3510d9a88b 100644 --- a/docs/db/d04/webvtt__parser_8cc_source.html +++ b/docs/db/d04/webvtt__parser_8cc_source.html @@ -77,494 +77,488 @@ $(function() {
      6 
      7 #include "packager/media/formats/webvtt/webvtt_parser.h"
      8 
      -
      9 #include <regex>
      -
      10 
      -
      11 #include "packager/base/logging.h"
      -
      12 #include "packager/base/strings/string_number_conversions.h"
      -
      13 #include "packager/base/strings/string_split.h"
      -
      14 #include "packager/base/strings/string_util.h"
      -
      15 #include "packager/media/base/text_stream_info.h"
      -
      16 #include "packager/media/formats/webvtt/webvtt_utils.h"
      -
      17 
      -
      18 namespace shaka {
      -
      19 namespace media {
      -
      20 namespace {
      +
      9 #include "packager/base/logging.h"
      +
      10 #include "packager/base/strings/string_number_conversions.h"
      +
      11 #include "packager/base/strings/string_split.h"
      +
      12 #include "packager/base/strings/string_util.h"
      +
      13 #include "packager/media/base/text_stream_info.h"
      +
      14 #include "packager/media/formats/webvtt/webvtt_utils.h"
      +
      15 
      +
      16 namespace shaka {
      +
      17 namespace media {
      +
      18 namespace {
      +
      19 
      +
      20 const uint64_t kStreamIndex = 0;
      21 
      -
      22 const uint64_t kStreamIndex = 0;
      -
      23 
      -
      24 std::string BlockToString(const std::string* block, size_t size) {
      -
      25  std::string out = " --- BLOCK START ---\n";
      -
      26 
      -
      27  for (size_t i = 0; i < size; i++) {
      -
      28  out.append(" ");
      -
      29  out.append(block[i]);
      -
      30  out.append("\n");
      -
      31  }
      +
      22 std::string BlockToString(const std::string* block, size_t size) {
      +
      23  std::string out = " --- BLOCK START ---\n";
      +
      24 
      +
      25  for (size_t i = 0; i < size; i++) {
      +
      26  out.append(" ");
      +
      27  out.append(block[i]);
      +
      28  out.append("\n");
      +
      29  }
      +
      30 
      +
      31  out.append(" --- BLOCK END ---");
      32 
      -
      33  out.append(" --- BLOCK END ---");
      -
      34 
      -
      35  return out;
      -
      36 }
      -
      37 
      -
      38 // Comments are just blocks that are preceded by a blank line, start with the
      -
      39 // word "NOTE" (followed by a space or newline), and end at the first blank
      -
      40 // line.
      -
      41 // SOURCE: https://www.w3.org/TR/webvtt1
      -
      42 bool IsLikelyNote(const std::string& line) {
      -
      43  return line == "NOTE" ||
      -
      44  base::StartsWith(line, "NOTE ", base::CompareCase::SENSITIVE) ||
      -
      45  base::StartsWith(line, "NOTE\t", base::CompareCase::SENSITIVE);
      -
      46 }
      -
      47 
      -
      48 // As cue time is the only part of a WEBVTT file that is allowed to have
      -
      49 // "-->" appear, then if the given line contains it, we can safely assume
      -
      50 // that the line is likely to be a cue time.
      -
      51 bool IsLikelyCueTiming(const std::string& line) {
      -
      52  return line.find("-->") != std::string::npos;
      -
      53 }
      -
      54 
      -
      55 // A WebVTT cue identifier is any sequence of one or more characters not
      -
      56 // containing the substring "-->" (U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS,
      -
      57 // U+003E GREATER-THAN SIGN), nor containing any U+000A LINE FEED (LF)
      -
      58 // characters or U+000D CARRIAGE RETURN (CR) characters.
      -
      59 // SOURCE: https://www.w3.org/TR/webvtt1/#webvtt-cue-identifier
      -
      60 bool MaybeCueId(const std::string& line) {
      -
      61  return line.find("-->") == std::string::npos;
      -
      62 }
      -
      63 
      -
      64 // Check to see if the block is likely a style block. Style blocks are
      -
      65 // identified as any block that starts with a line that only contains
      -
      66 // "STYLE".
      -
      67 // SOURCE: https://w3c.github.io/webvtt/#styling
      -
      68 bool IsLikelyStyle(const std::string& line) {
      -
      69  return base::TrimWhitespaceASCII(line, base::TRIM_TRAILING) == "STYLE";
      -
      70 }
      -
      71 
      -
      72 // Check to see if the block is likely a region block. Region blocks are
      -
      73 // identified as any block that starts with a line that only contains
      -
      74 // "REGION".
      -
      75 // SOURCE: https://w3c.github.io/webvtt/#webvtt-region
      -
      76 bool IsLikelyRegion(const std::string& line) {
      -
      77  return base::TrimWhitespaceASCII(line, base::TRIM_TRAILING) == "REGION";
      -
      78 }
      -
      79 
      -
      80 bool ParsePercent(const std::string& str, float* value) {
      -
      81  // https://www.w3.org/TR/webvtt1/#webvtt-percentage
      -
      82  // E.g. "4%" or "1.5%"
      -
      83  std::regex re(R"((\d+(?:\.\d+)?)%)");
      -
      84  std::smatch match;
      -
      85  if (!std::regex_match(str, match, re)) {
      -
      86  return false;
      -
      87  }
      -
      88 
      -
      89  double temp;
      -
      90  base::StringToDouble(match[1], &temp);
      -
      91  if (temp >= 100) {
      -
      92  return false;
      -
      93  }
      -
      94  *value = temp;
      -
      95  return true;
      -
      96 }
      -
      97 
      -
      98 bool ParseDoublePercent(const std::string& str, float* a, float* b) {
      -
      99  std::regex re(R"((\d+(?:\.\d+)?)%,(\d+(?:\.\d+)?)%)");
      -
      100  std::smatch match;
      -
      101  if (!std::regex_match(str, match, re)) {
      -
      102  return false;
      -
      103  }
      -
      104 
      -
      105  double tempA, tempB;
      -
      106  base::StringToDouble(match[1], &tempA);
      -
      107  base::StringToDouble(match[2], &tempB);
      -
      108  if (tempA >= 100 || tempB >= 100) {
      -
      109  return false;
      -
      110  }
      -
      111  *a = tempA;
      -
      112  *b = tempB;
      -
      113  return true;
      -
      114 }
      -
      115 
      -
      116 void ParseSettings(const std::string& id,
      -
      117  const std::string& value,
      -
      118  TextSettings* settings) {
      -
      119  // https://www.w3.org/TR/webvtt1/#ref-for-parse-the-webvtt-cue-settings-1
      -
      120  if (id == "region") {
      -
      121  settings->region = value;
      -
      122  } else if (id == "vertical") {
      -
      123  if (value == "rl") {
      -
      124  settings->writing_direction = WritingDirection::kVerticalGrowingLeft;
      -
      125  } else if (value == "lr") {
      -
      126  settings->writing_direction = WritingDirection::kVerticalGrowingRight;
      -
      127  } else {
      -
      128  LOG(WARNING) << "Invalid WebVTT vertical setting: " << value;
      -
      129  }
      -
      130  } else if (id == "line") {
      -
      131  const auto pos = value.find(',');
      -
      132  const std::string line = value.substr(0, pos);
      -
      133  const std::string align =
      -
      134  pos != std::string::npos ? value.substr(pos + 1) : "";
      -
      135  if (pos != std::string::npos) {
      -
      136  LOG(WARNING) << "WebVTT line alignment isn't supported";
      -
      137  }
      -
      138 
      -
      139  if (!line.empty() && line[line.size() - 1] == '%') {
      -
      140  float temp;
      -
      141  if (!ParsePercent(line, &temp)) {
      -
      142  LOG(WARNING) << "Invalid WebVTT line: " << value;
      -
      143  return;
      -
      144  }
      -
      145  settings->line.emplace(temp, TextUnitType::kPercent);
      -
      146  } else {
      -
      147  double temp;
      -
      148  if (!base::StringToDouble(line, &temp)) {
      -
      149  LOG(WARNING) << "Invalid WebVTT line: " << value;
      -
      150  return;
      -
      151  }
      -
      152  settings->line.emplace(temp, TextUnitType::kLines);
      -
      153  }
      -
      154  } else if (id == "position") {
      -
      155  const auto pos = value.find(',');
      -
      156  const std::string position = value.substr(0, pos);
      -
      157  const std::string align =
      -
      158  pos != std::string::npos ? value.substr(pos + 1) : "";
      -
      159  if (pos != std::string::npos) {
      -
      160  LOG(WARNING) << "WebVTT position alignment isn't supported";
      -
      161  }
      -
      162 
      -
      163  float temp;
      -
      164  if (ParsePercent(position, &temp)) {
      -
      165  settings->position.emplace(temp, TextUnitType::kPercent);
      -
      166  } else {
      -
      167  LOG(WARNING) << "Invalid WebVTT position: " << value;
      -
      168  }
      -
      169  } else if (id == "size") {
      -
      170  float temp;
      -
      171  if (ParsePercent(value, &temp)) {
      -
      172  settings->width.emplace(temp, TextUnitType::kPercent);
      -
      173  } else {
      -
      174  LOG(WARNING) << "Invalid WebVTT size: " << value;
      -
      175  }
      -
      176  } else if (id == "align") {
      -
      177  if (value == "start") {
      -
      178  settings->text_alignment = TextAlignment::kStart;
      -
      179  } else if (value == "center" || value == "middle") {
      -
      180  settings->text_alignment = TextAlignment::kCenter;
      -
      181  } else if (value == "end") {
      -
      182  settings->text_alignment = TextAlignment::kEnd;
      -
      183  } else if (value == "left") {
      -
      184  settings->text_alignment = TextAlignment::kLeft;
      -
      185  } else if (value == "right") {
      -
      186  settings->text_alignment = TextAlignment::kRight;
      -
      187  } else {
      -
      188  LOG(WARNING) << "Invalid WebVTT align: " << value;
      -
      189  }
      -
      190  } else {
      -
      191  LOG(WARNING) << "Unknown WebVTT setting: " << id;
      -
      192  }
      -
      193 }
      -
      194 
      -
      195 } // namespace
      -
      196 
      -
      197 WebVttParser::WebVttParser() {}
      -
      198 
      -
      199 void WebVttParser::Init(const InitCB& init_cb,
      -
      200  const NewMediaSampleCB& new_media_sample_cb,
      -
      201  const NewTextSampleCB& new_text_sample_cb,
      -
      202  KeySource* decryption_key_source) {
      -
      203  DCHECK(init_cb_.is_null());
      -
      204  DCHECK(!init_cb.is_null());
      -
      205  DCHECK(!new_text_sample_cb.is_null());
      -
      206  DCHECK(!decryption_key_source) << "Encrypted WebVTT not supported";
      -
      207 
      -
      208  init_cb_ = init_cb;
      -
      209  new_text_sample_cb_ = new_text_sample_cb;
      -
      210 }
      -
      211 
      - -
      213  reader_.Flush();
      -
      214  return Parse();
      -
      215 }
      -
      216 
      -
      217 bool WebVttParser::Parse(const uint8_t* buf, int size) {
      -
      218  reader_.PushData(buf, size);
      -
      219  return Parse();
      -
      220 }
      -
      221 
      -
      222 bool WebVttParser::Parse() {
      -
      223  if (!initialized_) {
      -
      224  std::vector<std::string> block;
      -
      225  if (!reader_.Next(&block)) {
      -
      226  return true;
      -
      227  }
      -
      228 
      -
      229  // Check the header. It is possible for a 0xFEFF BOM to come before the
      -
      230  // header text.
      -
      231  if (block.size() != 1) {
      -
      232  LOG(ERROR) << "Failed to read WEBVTT header - "
      -
      233  << "block size should be 1 but was " << block.size() << ".";
      -
      234  return false;
      -
      235  }
      -
      236  if (block[0] != "WEBVTT" && block[0] != "\xEF\xBB\xBFWEBVTT") {
      -
      237  LOG(ERROR) << "Failed to read WEBVTT header - should be WEBVTT but was "
      -
      238  << block[0];
      -
      239  return false;
      -
      240  }
      -
      241  initialized_ = true;
      +
      33  return out;
      +
      34 }
      +
      35 
      +
      36 // Comments are just blocks that are preceded by a blank line, start with the
      +
      37 // word "NOTE" (followed by a space or newline), and end at the first blank
      +
      38 // line.
      +
      39 // SOURCE: https://www.w3.org/TR/webvtt1
      +
      40 bool IsLikelyNote(const std::string& line) {
      +
      41  return line == "NOTE" ||
      +
      42  base::StartsWith(line, "NOTE ", base::CompareCase::SENSITIVE) ||
      +
      43  base::StartsWith(line, "NOTE\t", base::CompareCase::SENSITIVE);
      +
      44 }
      +
      45 
      +
      46 // As cue time is the only part of a WEBVTT file that is allowed to have
      +
      47 // "-->" appear, then if the given line contains it, we can safely assume
      +
      48 // that the line is likely to be a cue time.
      +
      49 bool IsLikelyCueTiming(const std::string& line) {
      +
      50  return line.find("-->") != std::string::npos;
      +
      51 }
      +
      52 
      +
      53 // A WebVTT cue identifier is any sequence of one or more characters not
      +
      54 // containing the substring "-->" (U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS,
      +
      55 // U+003E GREATER-THAN SIGN), nor containing any U+000A LINE FEED (LF)
      +
      56 // characters or U+000D CARRIAGE RETURN (CR) characters.
      +
      57 // SOURCE: https://www.w3.org/TR/webvtt1/#webvtt-cue-identifier
      +
      58 bool MaybeCueId(const std::string& line) {
      +
      59  return line.find("-->") == std::string::npos;
      +
      60 }
      +
      61 
      +
      62 // Check to see if the block is likely a style block. Style blocks are
      +
      63 // identified as any block that starts with a line that only contains
      +
      64 // "STYLE".
      +
      65 // SOURCE: https://w3c.github.io/webvtt/#styling
      +
      66 bool IsLikelyStyle(const std::string& line) {
      +
      67  return base::TrimWhitespaceASCII(line, base::TRIM_TRAILING) == "STYLE";
      +
      68 }
      +
      69 
      +
      70 // Check to see if the block is likely a region block. Region blocks are
      +
      71 // identified as any block that starts with a line that only contains
      +
      72 // "REGION".
      +
      73 // SOURCE: https://w3c.github.io/webvtt/#webvtt-region
      +
      74 bool IsLikelyRegion(const std::string& line) {
      +
      75  return base::TrimWhitespaceASCII(line, base::TRIM_TRAILING) == "REGION";
      +
      76 }
      +
      77 
      +
      78 bool ParsePercent(const std::string& str, float* value) {
      +
      79  // https://www.w3.org/TR/webvtt1/#webvtt-percentage
      +
      80  // E.g. "4%" or "1.5%"
      +
      81  if (str[str.size() - 1] != '%') {
      +
      82  return false;
      +
      83  }
      +
      84 
      +
      85  double temp;
      +
      86  if (!base::StringToDouble(str.substr(0, str.size() - 1), &temp) ||
      +
      87  temp >= 100) {
      +
      88  return false;
      +
      89  }
      +
      90  *value = temp;
      +
      91  return true;
      +
      92 }
      +
      93 
      +
      94 bool ParseDoublePercent(const std::string& str, float* a, float* b) {
      +
      95  auto percents = base::SplitString(str, ",", base::TRIM_WHITESPACE,
      +
      96  base::SPLIT_WANT_NONEMPTY);
      +
      97  if (percents.size() != 2) {
      +
      98  return false;
      +
      99  }
      +
      100  float temp_a, temp_b;
      +
      101  if (!ParsePercent(percents[0], &temp_a) ||
      +
      102  !ParsePercent(percents[1], &temp_b)) {
      +
      103  return false;
      +
      104  }
      +
      105  *a = temp_a;
      +
      106  *b = temp_b;
      +
      107  return true;
      +
      108 }
      +
      109 
      +
      110 void ParseSettings(const std::string& id,
      +
      111  const std::string& value,
      +
      112  TextSettings* settings) {
      +
      113  // https://www.w3.org/TR/webvtt1/#ref-for-parse-the-webvtt-cue-settings-1
      +
      114  if (id == "region") {
      +
      115  settings->region = value;
      +
      116  } else if (id == "vertical") {
      +
      117  if (value == "rl") {
      +
      118  settings->writing_direction = WritingDirection::kVerticalGrowingLeft;
      +
      119  } else if (value == "lr") {
      +
      120  settings->writing_direction = WritingDirection::kVerticalGrowingRight;
      +
      121  } else {
      +
      122  LOG(WARNING) << "Invalid WebVTT vertical setting: " << value;
      +
      123  }
      +
      124  } else if (id == "line") {
      +
      125  const auto pos = value.find(',');
      +
      126  const std::string line = value.substr(0, pos);
      +
      127  const std::string align =
      +
      128  pos != std::string::npos ? value.substr(pos + 1) : "";
      +
      129  if (pos != std::string::npos) {
      +
      130  LOG(WARNING) << "WebVTT line alignment isn't supported";
      +
      131  }
      +
      132 
      +
      133  if (!line.empty() && line[line.size() - 1] == '%') {
      +
      134  float temp;
      +
      135  if (!ParsePercent(line, &temp)) {
      +
      136  LOG(WARNING) << "Invalid WebVTT line: " << value;
      +
      137  return;
      +
      138  }
      +
      139  settings->line.emplace(temp, TextUnitType::kPercent);
      +
      140  } else {
      +
      141  double temp;
      +
      142  if (!base::StringToDouble(line, &temp)) {
      +
      143  LOG(WARNING) << "Invalid WebVTT line: " << value;
      +
      144  return;
      +
      145  }
      +
      146  settings->line.emplace(temp, TextUnitType::kLines);
      +
      147  }
      +
      148  } else if (id == "position") {
      +
      149  const auto pos = value.find(',');
      +
      150  const std::string position = value.substr(0, pos);
      +
      151  const std::string align =
      +
      152  pos != std::string::npos ? value.substr(pos + 1) : "";
      +
      153  if (pos != std::string::npos) {
      +
      154  LOG(WARNING) << "WebVTT position alignment isn't supported";
      +
      155  }
      +
      156 
      +
      157  float temp;
      +
      158  if (ParsePercent(position, &temp)) {
      +
      159  settings->position.emplace(temp, TextUnitType::kPercent);
      +
      160  } else {
      +
      161  LOG(WARNING) << "Invalid WebVTT position: " << value;
      +
      162  }
      +
      163  } else if (id == "size") {
      +
      164  float temp;
      +
      165  if (ParsePercent(value, &temp)) {
      +
      166  settings->width.emplace(temp, TextUnitType::kPercent);
      +
      167  } else {
      +
      168  LOG(WARNING) << "Invalid WebVTT size: " << value;
      +
      169  }
      +
      170  } else if (id == "align") {
      +
      171  if (value == "start") {
      +
      172  settings->text_alignment = TextAlignment::kStart;
      +
      173  } else if (value == "center" || value == "middle") {
      +
      174  settings->text_alignment = TextAlignment::kCenter;
      +
      175  } else if (value == "end") {
      +
      176  settings->text_alignment = TextAlignment::kEnd;
      +
      177  } else if (value == "left") {
      +
      178  settings->text_alignment = TextAlignment::kLeft;
      +
      179  } else if (value == "right") {
      +
      180  settings->text_alignment = TextAlignment::kRight;
      +
      181  } else {
      +
      182  LOG(WARNING) << "Invalid WebVTT align: " << value;
      +
      183  }
      +
      184  } else {
      +
      185  LOG(WARNING) << "Unknown WebVTT setting: " << id;
      +
      186  }
      +
      187 }
      +
      188 
      +
      189 } // namespace
      +
      190 
      +
      191 WebVttParser::WebVttParser() {}
      +
      192 
      +
      193 void WebVttParser::Init(const InitCB& init_cb,
      +
      194  const NewMediaSampleCB& new_media_sample_cb,
      +
      195  const NewTextSampleCB& new_text_sample_cb,
      +
      196  KeySource* decryption_key_source) {
      +
      197  DCHECK(init_cb_.is_null());
      +
      198  DCHECK(!init_cb.is_null());
      +
      199  DCHECK(!new_text_sample_cb.is_null());
      +
      200  DCHECK(!decryption_key_source) << "Encrypted WebVTT not supported";
      +
      201 
      +
      202  init_cb_ = init_cb;
      +
      203  new_text_sample_cb_ = new_text_sample_cb;
      +
      204 }
      +
      205 
      + +
      207  reader_.Flush();
      +
      208  return Parse();
      +
      209 }
      +
      210 
      +
      211 bool WebVttParser::Parse(const uint8_t* buf, int size) {
      +
      212  reader_.PushData(buf, size);
      +
      213  return Parse();
      +
      214 }
      +
      215 
      +
      216 bool WebVttParser::Parse() {
      +
      217  if (!initialized_) {
      +
      218  std::vector<std::string> block;
      +
      219  if (!reader_.Next(&block)) {
      +
      220  return true;
      +
      221  }
      +
      222 
      +
      223  // Check the header. It is possible for a 0xFEFF BOM to come before the
      +
      224  // header text.
      +
      225  if (block.size() != 1) {
      +
      226  LOG(ERROR) << "Failed to read WEBVTT header - "
      +
      227  << "block size should be 1 but was " << block.size() << ".";
      +
      228  return false;
      +
      229  }
      +
      230  if (block[0] != "WEBVTT" && block[0] != "\xEF\xBB\xBFWEBVTT") {
      +
      231  LOG(ERROR) << "Failed to read WEBVTT header - should be WEBVTT but was "
      +
      232  << block[0];
      +
      233  return false;
      +
      234  }
      +
      235  initialized_ = true;
      +
      236  }
      +
      237 
      +
      238  std::vector<std::string> block;
      +
      239  while (reader_.Next(&block)) {
      +
      240  if (!ParseBlock(block))
      +
      241  return false;
      242  }
      -
      243 
      -
      244  std::vector<std::string> block;
      -
      245  while (reader_.Next(&block)) {
      -
      246  if (!ParseBlock(block))
      -
      247  return false;
      -
      248  }
      -
      249  return true;
      -
      250 }
      -
      251 
      -
      252 bool WebVttParser::ParseBlock(const std::vector<std::string>& block) {
      -
      253  // NOTE
      -
      254  if (IsLikelyNote(block[0])) {
      -
      255  // We can safely ignore the whole block.
      -
      256  return true;
      -
      257  }
      -
      258 
      -
      259  // STYLE
      -
      260  if (IsLikelyStyle(block[0])) {
      -
      261  if (saw_cue_) {
      -
      262  LOG(WARNING)
      -
      263  << "Found style block after seeing cue. Ignoring style block";
      -
      264  } else {
      -
      265  for (size_t i = 1; i < block.size(); i++) {
      -
      266  if (!css_styles_.empty())
      -
      267  css_styles_ += "\n";
      -
      268  css_styles_ += block[i];
      -
      269  }
      -
      270  }
      -
      271  return true;
      -
      272  }
      -
      273 
      -
      274  // REGION
      -
      275  if (IsLikelyRegion(block[0])) {
      -
      276  if (saw_cue_) {
      -
      277  LOG(WARNING)
      -
      278  << "Found region block after seeing cue. Ignoring region block";
      -
      279  return true;
      -
      280  } else {
      -
      281  return ParseRegion(block);
      -
      282  }
      -
      283  }
      -
      284 
      -
      285  // CUE with ID
      -
      286  if (block.size() >= 2 && MaybeCueId(block[0]) &&
      -
      287  IsLikelyCueTiming(block[1]) && ParseCueWithId(block)) {
      +
      243  return true;
      +
      244 }
      +
      245 
      +
      246 bool WebVttParser::ParseBlock(const std::vector<std::string>& block) {
      +
      247  // NOTE
      +
      248  if (IsLikelyNote(block[0])) {
      +
      249  // We can safely ignore the whole block.
      +
      250  return true;
      +
      251  }
      +
      252 
      +
      253  // STYLE
      +
      254  if (IsLikelyStyle(block[0])) {
      +
      255  if (saw_cue_) {
      +
      256  LOG(WARNING)
      +
      257  << "Found style block after seeing cue. Ignoring style block";
      +
      258  } else {
      +
      259  for (size_t i = 1; i < block.size(); i++) {
      +
      260  if (!css_styles_.empty())
      +
      261  css_styles_ += "\n";
      +
      262  css_styles_ += block[i];
      +
      263  }
      +
      264  }
      +
      265  return true;
      +
      266  }
      +
      267 
      +
      268  // REGION
      +
      269  if (IsLikelyRegion(block[0])) {
      +
      270  if (saw_cue_) {
      +
      271  LOG(WARNING)
      +
      272  << "Found region block after seeing cue. Ignoring region block";
      +
      273  return true;
      +
      274  } else {
      +
      275  return ParseRegion(block);
      +
      276  }
      +
      277  }
      +
      278 
      +
      279  // CUE with ID
      +
      280  if (block.size() >= 2 && MaybeCueId(block[0]) &&
      +
      281  IsLikelyCueTiming(block[1]) && ParseCueWithId(block)) {
      +
      282  saw_cue_ = true;
      +
      283  return true;
      +
      284  }
      +
      285 
      +
      286  // CUE with no ID
      +
      287  if (IsLikelyCueTiming(block[0]) && ParseCueWithNoId(block)) {
      288  saw_cue_ = true;
      289  return true;
      290  }
      291 
      -
      292  // CUE with no ID
      -
      293  if (IsLikelyCueTiming(block[0]) && ParseCueWithNoId(block)) {
      -
      294  saw_cue_ = true;
      -
      295  return true;
      -
      296  }
      -
      297 
      -
      298  LOG(ERROR) << "Failed to determine block classification:\n"
      -
      299  << BlockToString(block.data(), block.size());
      -
      300  return false;
      -
      301 }
      -
      302 
      -
      303 bool WebVttParser::ParseRegion(const std::vector<std::string>& block) {
      -
      304  TextRegion region;
      -
      305  std::string region_id;
      -
      306  // Fill in defaults. Some may already be this, but set them anyway.
      -
      307  // See https://www.w3.org/TR/webvtt1/#regions
      -
      308  region.width.value = 100;
      -
      309  region.width.type = TextUnitType::kPercent;
      -
      310  region.height.value = 3;
      -
      311  region.height.type = TextUnitType::kLines;
      -
      312  region.window_anchor_x.value = 0;
      -
      313  region.window_anchor_x.type = TextUnitType::kPercent;
      -
      314  region.window_anchor_y.value = 100;
      -
      315  region.window_anchor_y.type = TextUnitType::kPercent;
      -
      316  region.region_anchor_x.value = 0;
      -
      317  region.region_anchor_x.type = TextUnitType::kPercent;
      -
      318  region.region_anchor_y.value = 100;
      -
      319  region.region_anchor_y.type = TextUnitType::kPercent;
      -
      320 
      -
      321  bool first = true;
      -
      322  for (const auto& line : block) {
      -
      323  // First line is "REGION", skip.
      -
      324  if (first) {
      -
      325  first = false;
      -
      326  continue;
      +
      292  LOG(ERROR) << "Failed to determine block classification:\n"
      +
      293  << BlockToString(block.data(), block.size());
      +
      294  return false;
      +
      295 }
      +
      296 
      +
      297 bool WebVttParser::ParseRegion(const std::vector<std::string>& block) {
      +
      298  TextRegion region;
      +
      299  std::string region_id;
      +
      300  // Fill in defaults. Some may already be this, but set them anyway.
      +
      301  // See https://www.w3.org/TR/webvtt1/#regions
      +
      302  region.width.value = 100;
      +
      303  region.width.type = TextUnitType::kPercent;
      +
      304  region.height.value = 3;
      +
      305  region.height.type = TextUnitType::kLines;
      +
      306  region.window_anchor_x.value = 0;
      +
      307  region.window_anchor_x.type = TextUnitType::kPercent;
      +
      308  region.window_anchor_y.value = 100;
      +
      309  region.window_anchor_y.type = TextUnitType::kPercent;
      +
      310  region.region_anchor_x.value = 0;
      +
      311  region.region_anchor_x.type = TextUnitType::kPercent;
      +
      312  region.region_anchor_y.value = 100;
      +
      313  region.region_anchor_y.type = TextUnitType::kPercent;
      +
      314 
      +
      315  bool first = true;
      +
      316  for (const auto& line : block) {
      +
      317  // First line is "REGION", skip.
      +
      318  if (first) {
      +
      319  first = false;
      +
      320  continue;
      +
      321  }
      +
      322 
      +
      323  base::StringPairs pairs;
      +
      324  if (!base::SplitStringIntoKeyValuePairs(line, ':', ' ', &pairs)) {
      +
      325  LOG(ERROR) << "Invalid WebVTT settings: " << line;
      +
      326  return false;
      327  }
      -
      328 
      -
      329  base::StringPairs pairs;
      -
      330  if (!base::SplitStringIntoKeyValuePairs(line, ':', ' ', &pairs)) {
      -
      331  LOG(ERROR) << "Invalid WebVTT settings: " << line;
      -
      332  return false;
      -
      333  }
      -
      334  for (const auto& pair : pairs) {
      -
      335  const std::string& value = pair.second;
      -
      336  if (pair.first == "id") {
      -
      337  if (value.find("-->") != std::string::npos) {
      -
      338  LOG(ERROR) << "Invalid WebVTT REGION ID: " << value;
      -
      339  return false;
      -
      340  }
      -
      341  if (regions_.find(value) != regions_.end()) {
      -
      342  LOG(ERROR) << "Duplicate WebVTT REGION: " << value;
      +
      328  for (const auto& pair : pairs) {
      +
      329  const std::string& value = pair.second;
      +
      330  if (pair.first == "id") {
      +
      331  if (value.find("-->") != std::string::npos) {
      +
      332  LOG(ERROR) << "Invalid WebVTT REGION ID: " << value;
      +
      333  return false;
      +
      334  }
      +
      335  if (regions_.find(value) != regions_.end()) {
      +
      336  LOG(ERROR) << "Duplicate WebVTT REGION: " << value;
      +
      337  return false;
      +
      338  }
      +
      339  region_id = value;
      +
      340  } else if (pair.first == "width") {
      +
      341  if (!ParsePercent(value, &region.width.value)) {
      +
      342  LOG(ERROR) << "Invalid WebVTT REGION width: " << value;
      343  return false;
      344  }
      -
      345  region_id = value;
      -
      346  } else if (pair.first == "width") {
      -
      347  if (!ParsePercent(value, &region.width.value)) {
      -
      348  LOG(ERROR) << "Invalid WebVTT REGION width: " << value;
      +
      345  } else if (pair.first == "lines") {
      +
      346  unsigned int temp;
      +
      347  if (!base::StringToUint(value, &temp)) {
      +
      348  LOG(ERROR) << "Invalid WebVTT REGION lines: " << value;
      349  return false;
      350  }
      -
      351  } else if (pair.first == "lines") {
      -
      352  unsigned int temp;
      -
      353  if (!base::StringToUint(value, &temp)) {
      -
      354  LOG(ERROR) << "Invalid WebVTT REGION lines: " << value;
      -
      355  return false;
      -
      356  }
      -
      357  region.height.value = temp;
      -
      358  } else if (pair.first == "regionanchor") {
      -
      359  if (!ParseDoublePercent(value, &region.region_anchor_x.value,
      -
      360  &region.region_anchor_y.value)) {
      -
      361  LOG(ERROR) << "Invalid WebVTT REGION regionanchor: " << value;
      +
      351  region.height.value = temp;
      +
      352  } else if (pair.first == "regionanchor") {
      +
      353  if (!ParseDoublePercent(value, &region.region_anchor_x.value,
      +
      354  &region.region_anchor_y.value)) {
      +
      355  LOG(ERROR) << "Invalid WebVTT REGION regionanchor: " << value;
      +
      356  return false;
      +
      357  }
      +
      358  } else if (pair.first == "viewportanchor") {
      +
      359  if (!ParseDoublePercent(value, &region.window_anchor_x.value,
      +
      360  &region.window_anchor_y.value)) {
      +
      361  LOG(ERROR) << "Invalid WebVTT REGION windowanchor: " << value;
      362  return false;
      363  }
      -
      364  } else if (pair.first == "viewportanchor") {
      -
      365  if (!ParseDoublePercent(value, &region.window_anchor_x.value,
      -
      366  &region.window_anchor_y.value)) {
      -
      367  LOG(ERROR) << "Invalid WebVTT REGION windowanchor: " << value;
      -
      368  return false;
      -
      369  }
      -
      370  } else if (pair.first == "scroll") {
      -
      371  if (value != "up") {
      -
      372  LOG(ERROR) << "Invalid WebVTT REGION scroll: " << value;
      -
      373  return false;
      -
      374  }
      -
      375  region.scroll = true;
      -
      376  } else {
      -
      377  LOG(ERROR) << "Unknown WebVTT REGION setting: " << pair.first;
      -
      378  return false;
      -
      379  }
      -
      380  }
      -
      381  }
      -
      382  if (region_id.empty()) {
      -
      383  LOG(ERROR) << "WebVTT REGION id is required";
      -
      384  return false;
      -
      385  }
      -
      386  regions_.insert(std::make_pair(region_id, std::move(region)));
      -
      387  return true;
      -
      388 }
      -
      389 
      -
      390 bool WebVttParser::ParseCueWithNoId(const std::vector<std::string>& block) {
      -
      391  return ParseCue("", block.data(), block.size());
      -
      392 }
      -
      393 
      -
      394 bool WebVttParser::ParseCueWithId(const std::vector<std::string>& block) {
      -
      395  return ParseCue(block[0], block.data() + 1, block.size() - 1);
      -
      396 }
      +
      364  } else if (pair.first == "scroll") {
      +
      365  if (value != "up") {
      +
      366  LOG(ERROR) << "Invalid WebVTT REGION scroll: " << value;
      +
      367  return false;
      +
      368  }
      +
      369  region.scroll = true;
      +
      370  } else {
      +
      371  LOG(ERROR) << "Unknown WebVTT REGION setting: " << pair.first;
      +
      372  return false;
      +
      373  }
      +
      374  }
      +
      375  }
      +
      376  if (region_id.empty()) {
      +
      377  LOG(ERROR) << "WebVTT REGION id is required";
      +
      378  return false;
      +
      379  }
      +
      380  regions_.insert(std::make_pair(region_id, std::move(region)));
      +
      381  return true;
      +
      382 }
      +
      383 
      +
      384 bool WebVttParser::ParseCueWithNoId(const std::vector<std::string>& block) {
      +
      385  return ParseCue("", block.data(), block.size());
      +
      386 }
      +
      387 
      +
      388 bool WebVttParser::ParseCueWithId(const std::vector<std::string>& block) {
      +
      389  return ParseCue(block[0], block.data() + 1, block.size() - 1);
      +
      390 }
      +
      391 
      +
      392 bool WebVttParser::ParseCue(const std::string& id,
      +
      393  const std::string* block,
      +
      394  size_t block_size) {
      +
      395  const std::vector<std::string> time_and_style = base::SplitString(
      +
      396  block[0], " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
      397 
      -
      398 bool WebVttParser::ParseCue(const std::string& id,
      -
      399  const std::string* block,
      -
      400  size_t block_size) {
      -
      401  const std::vector<std::string> time_and_style = base::SplitString(
      -
      402  block[0], " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
      -
      403 
      -
      404  uint64_t start_time = 0;
      -
      405  uint64_t end_time = 0;
      -
      406 
      -
      407  const bool parsed_time =
      -
      408  time_and_style.size() >= 3 && time_and_style[1] == "-->" &&
      -
      409  WebVttTimestampToMs(time_and_style[0], &start_time) &&
      -
      410  WebVttTimestampToMs(time_and_style[2], &end_time);
      +
      398  uint64_t start_time = 0;
      +
      399  uint64_t end_time = 0;
      +
      400 
      +
      401  const bool parsed_time =
      +
      402  time_and_style.size() >= 3 && time_and_style[1] == "-->" &&
      +
      403  WebVttTimestampToMs(time_and_style[0], &start_time) &&
      +
      404  WebVttTimestampToMs(time_and_style[2], &end_time);
      +
      405 
      +
      406  if (!parsed_time) {
      +
      407  LOG(ERROR) << "Could not parse start time, -->, and end time from "
      +
      408  << block[0];
      +
      409  return false;
      +
      410  }
      411 
      -
      412  if (!parsed_time) {
      -
      413  LOG(ERROR) << "Could not parse start time, -->, and end time from "
      -
      414  << block[0];
      -
      415  return false;
      -
      416  }
      -
      417 
      -
      418  if (!stream_info_dispatched_)
      -
      419  DispatchTextStreamInfo();
      -
      420 
      -
      421  // According to the WebVTT spec end time must be greater than the start time
      -
      422  // of the cue. Since we are seeing content with invalid times in the field, we
      -
      423  // are going to drop the cue instead of failing to package.
      -
      424  //
      -
      425  // For more context see:
      -
      426  // - https://www.w3.org/TR/webvtt1/#webvtt-cue-timings
      -
      427  // - https://github.com/google/shaka-packager/issues/335
      -
      428  // - https://github.com/google/shaka-packager/issues/425
      -
      429  //
      -
      430  // Print a warning so that those packaging content can know that their
      -
      431  // content is not spec compliant.
      -
      432  if (end_time <= start_time) {
      -
      433  LOG(WARNING) << "WebVTT input is not spec compliant. Start time ("
      -
      434  << start_time << ") should be less than end time (" << end_time
      -
      435  << "). Skipping webvtt cue:"
      -
      436  << BlockToString(block, block_size);
      -
      437  return true;
      -
      438  }
      -
      439 
      -
      440  TextSettings settings;
      -
      441  for (size_t i = 3; i < time_and_style.size(); i++) {
      -
      442  const auto pos = time_and_style[i].find(':');
      -
      443  if (pos == std::string::npos) {
      -
      444  continue;
      -
      445  }
      -
      446 
      -
      447  const std::string key = time_and_style[i].substr(0, pos);
      -
      448  const std::string value = time_and_style[i].substr(pos + 1);
      -
      449  ParseSettings(key, value, &settings);
      -
      450  }
      -
      451 
      -
      452  // The rest of the block is the payload.
      -
      453  // TODO: Parse tags to support <b>, <i>, etc.
      -
      454  TextFragment body;
      -
      455  TextFragmentStyle no_styles;
      -
      456  for (size_t i = 1; i < block_size; i++) {
      -
      457  if (i > 1) {
      -
      458  body.sub_fragments.emplace_back(no_styles, /* newline= */ true);
      -
      459  }
      -
      460  body.sub_fragments.emplace_back(no_styles, block[i]);
      -
      461  }
      -
      462 
      -
      463  const auto sample =
      -
      464  std::make_shared<TextSample>(id, start_time, end_time, settings, body);
      -
      465  return new_text_sample_cb_.Run(kStreamIndex, sample);
      -
      466 }
      -
      467 
      -
      468 void WebVttParser::DispatchTextStreamInfo() {
      -
      469  stream_info_dispatched_ = true;
      -
      470 
      -
      471  const int kTrackId = 0;
      -
      472  // The resolution of timings are in milliseconds.
      -
      473  const int kTimescale = 1000;
      -
      474  // The duration passed here is not very important. Also the whole file
      -
      475  // must be read before determining the real duration which doesn't
      -
      476  // work nicely with the current demuxer.
      -
      477  const int kDuration = 0;
      -
      478  const char kWebVttCodecString[] = "wvtt";
      -
      479  const int64_t kNoWidth = 0;
      -
      480  const int64_t kNoHeight = 0;
      -
      481  // The language of the stream will be overwritten by the Demuxer later.
      -
      482  const char kNoLanguage[] = "";
      -
      483 
      -
      484  const auto stream = std::make_shared<TextStreamInfo>(
      -
      485  kTrackId, kTimescale, kDuration, kCodecWebVtt, kWebVttCodecString, "",
      -
      486  kNoWidth, kNoHeight, kNoLanguage);
      -
      487  stream->set_css_styles(css_styles_);
      -
      488  for (const auto& pair : regions_)
      -
      489  stream->AddRegion(pair.first, pair.second);
      -
      490 
      -
      491  std::vector<std::shared_ptr<StreamInfo>> streams{stream};
      -
      492  init_cb_.Run(streams);
      -
      493 }
      -
      494 
      -
      495 } // namespace media
      -
      496 } // namespace shaka
      +
      412  if (!stream_info_dispatched_)
      +
      413  DispatchTextStreamInfo();
      +
      414 
      +
      415  // According to the WebVTT spec end time must be greater than the start time
      +
      416  // of the cue. Since we are seeing content with invalid times in the field, we
      +
      417  // are going to drop the cue instead of failing to package.
      +
      418  //
      +
      419  // For more context see:
      +
      420  // - https://www.w3.org/TR/webvtt1/#webvtt-cue-timings
      +
      421  // - https://github.com/google/shaka-packager/issues/335
      +
      422  // - https://github.com/google/shaka-packager/issues/425
      +
      423  //
      +
      424  // Print a warning so that those packaging content can know that their
      +
      425  // content is not spec compliant.
      +
      426  if (end_time <= start_time) {
      +
      427  LOG(WARNING) << "WebVTT input is not spec compliant. Start time ("
      +
      428  << start_time << ") should be less than end time (" << end_time
      +
      429  << "). Skipping webvtt cue:"
      +
      430  << BlockToString(block, block_size);
      +
      431  return true;
      +
      432  }
      +
      433 
      +
      434  TextSettings settings;
      +
      435  for (size_t i = 3; i < time_and_style.size(); i++) {
      +
      436  const auto pos = time_and_style[i].find(':');
      +
      437  if (pos == std::string::npos) {
      +
      438  continue;
      +
      439  }
      +
      440 
      +
      441  const std::string key = time_and_style[i].substr(0, pos);
      +
      442  const std::string value = time_and_style[i].substr(pos + 1);
      +
      443  ParseSettings(key, value, &settings);
      +
      444  }
      +
      445 
      +
      446  // The rest of the block is the payload.
      +
      447  // TODO: Parse tags to support <b>, <i>, etc.
      +
      448  TextFragment body;
      +
      449  TextFragmentStyle no_styles;
      +
      450  for (size_t i = 1; i < block_size; i++) {
      +
      451  if (i > 1) {
      +
      452  body.sub_fragments.emplace_back(no_styles, /* newline= */ true);
      +
      453  }
      +
      454  body.sub_fragments.emplace_back(no_styles, block[i]);
      +
      455  }
      +
      456 
      +
      457  const auto sample =
      +
      458  std::make_shared<TextSample>(id, start_time, end_time, settings, body);
      +
      459  return new_text_sample_cb_.Run(kStreamIndex, sample);
      +
      460 }
      +
      461 
      +
      462 void WebVttParser::DispatchTextStreamInfo() {
      +
      463  stream_info_dispatched_ = true;
      +
      464 
      +
      465  const int kTrackId = 0;
      +
      466  // The resolution of timings are in milliseconds.
      +
      467  const int kTimescale = 1000;
      +
      468  // The duration passed here is not very important. Also the whole file
      +
      469  // must be read before determining the real duration which doesn't
      +
      470  // work nicely with the current demuxer.
      +
      471  const int kDuration = 0;
      +
      472  const char kWebVttCodecString[] = "wvtt";
      +
      473  const int64_t kNoWidth = 0;
      +
      474  const int64_t kNoHeight = 0;
      +
      475  // The language of the stream will be overwritten by the Demuxer later.
      +
      476  const char kNoLanguage[] = "";
      +
      477 
      +
      478  const auto stream = std::make_shared<TextStreamInfo>(
      +
      479  kTrackId, kTimescale, kDuration, kCodecWebVtt, kWebVttCodecString, "",
      +
      480  kNoWidth, kNoHeight, kNoLanguage);
      +
      481  stream->set_css_styles(css_styles_);
      +
      482  for (const auto& pair : regions_)
      +
      483  stream->AddRegion(pair.first, pair.second);
      +
      484 
      +
      485  std::vector<std::shared_ptr<StreamInfo>> streams{stream};
      +
      486  init_cb_.Run(streams);
      +
      487 }
      +
      488 
      +
      489 } // namespace media
      +
      490 } // namespace shaka
      void PushData(const uint8_t *data, size_t data_size)
      Pushes data onto the end of the buffer.
      Definition: text_readers.cc:73
      bool Next(std::vector< std::string > *out)
      Definition: text_readers.cc:78
      @@ -572,14 +566,14 @@ $(function() {
      base::Callback< bool(uint32_t track_id, std::shared_ptr< TextSample > text_sample)> NewTextSampleCB
      Definition: media_parser.h:53
      base::Callback< bool(uint32_t track_id, std::shared_ptr< MediaSample > media_sample)> NewMediaSampleCB
      Definition: media_parser.h:44
      base::Callback< void(const std::vector< std::shared_ptr< StreamInfo > > &stream_info)> InitCB
      Definition: media_parser.h:35
      - -
      void Init(const InitCB &init_cb, const NewMediaSampleCB &new_media_sample_cb, const NewTextSampleCB &new_text_sample_cb, KeySource *decryption_key_source) override
      -
      bool Parse(const uint8_t *buf, int size) override
      + +
      void Init(const InitCB &init_cb, const NewMediaSampleCB &new_media_sample_cb, const NewTextSampleCB &new_text_sample_cb, KeySource *decryption_key_source) override
      +
      bool Parse(const uint8_t *buf, int size) override
      All the methods that are virtual are virtual for mocking.
      diff --git a/docs/db/d05/structshaka_1_1media_1_1H265SliceHeader.html b/docs/db/d05/structshaka_1_1media_1_1H265SliceHeader.html index ea1a38732c..fb3cca5260 100644 --- a/docs/db/d05/structshaka_1_1media_1_1H265SliceHeader.html +++ b/docs/db/d05/structshaka_1_1media_1_1H265SliceHeader.html @@ -215,7 +215,7 @@ std::vector< int > e diff --git a/docs/db/d11/structshaka_1_1media_1_1mp4_1_1CodecConfiguration.html b/docs/db/d11/structshaka_1_1media_1_1mp4_1_1CodecConfiguration.html index d72dbfe8d4..dccab5275c 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 @@ -157,7 +157,7 @@ Additional Inherited Members diff --git a/docs/db/d13/classshaka_1_1media_1_1DvbImageBuilder-members.html b/docs/db/d13/classshaka_1_1media_1_1DvbImageBuilder-members.html index 4b54b90ac7..1af46c227e 100644 --- a/docs/db/d13/classshaka_1_1media_1_1DvbImageBuilder-members.html +++ b/docs/db/d13/classshaka_1_1media_1_1DvbImageBuilder-members.html @@ -85,7 +85,7 @@ $(function() { 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 0e176c660a..1d460845c7 100644 --- a/docs/db/d14/classshaka_1_1media_1_1H265Parser-members.html +++ b/docs/db/d14/classshaka_1_1media_1_1H265Parser-members.html @@ -87,7 +87,7 @@ $(function() { 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 d5f2b6740b..16f0a2b0d2 100644 --- a/docs/db/d14/structshaka_1_1media_1_1H264WeightingFactors-members.html +++ b/docs/db/d14/structshaka_1_1media_1_1H264WeightingFactors-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/db/d19/ttml__generator_8cc_source.html b/docs/db/d19/ttml__generator_8cc_source.html index 3a01f4a427..a5d56cec3e 100644 --- a/docs/db/d19/ttml__generator_8cc_source.html +++ b/docs/db/d19/ttml__generator_8cc_source.html @@ -313,7 +313,7 @@ $(function() { diff --git a/docs/db/d1b/classshaka_1_1MemoryFile-members.html b/docs/db/d1b/classshaka_1_1MemoryFile-members.html index 6375486864..dbf888cd9d 100644 --- a/docs/db/d1b/classshaka_1_1MemoryFile-members.html +++ b/docs/db/d1b/classshaka_1_1MemoryFile-members.html @@ -103,7 +103,7 @@ $(function() { diff --git a/docs/db/d1f/classshaka_1_1media_1_1TextSample.html b/docs/db/d1f/classshaka_1_1media_1_1TextSample.html index bce21b0c7a..b4e1494b42 100644 --- a/docs/db/d1f/classshaka_1_1media_1_1TextSample.html +++ b/docs/db/d1f/classshaka_1_1media_1_1TextSample.html @@ -113,7 +113,7 @@ void set_sub_stream_index< 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 20482fab07..f7b790ece6 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 @@ -156,7 +156,7 @@ uint32_t flags = 0 diff --git a/docs/db/d2c/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter-members.html b/docs/db/d2c/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter-members.html index 121d615d1f..643985e0ee 100644 --- a/docs/db/d2c/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter-members.html +++ b/docs/db/d2c/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter-members.html @@ -84,7 +84,7 @@ $(function() { 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 633ae8b022..e8c92a9ca5 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 @@ -212,7 +212,7 @@ const std::map< size_t, std::pair< std::shared_ptr< diff --git a/docs/db/d30/classshaka_1_1media_1_1ttml_1_1TtmlMuxer.html b/docs/db/d30/classshaka_1_1media_1_1ttml_1_1TtmlMuxer.html index 8d99b4d487..30b6235769 100644 --- a/docs/db/d30/classshaka_1_1media_1_1ttml_1_1TtmlMuxer.html +++ b/docs/db/d30/classshaka_1_1media_1_1ttml_1_1TtmlMuxer.html @@ -213,7 +213,7 @@ const std::map< size_t, 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 d83659dde8..9e37a32b25 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 @@ -145,7 +145,7 @@ $(function() { diff --git a/docs/db/d31/track__run__iterator_8cc_source.html b/docs/db/d31/track__run__iterator_8cc_source.html index 321b681d0c..c662de5f92 100644 --- a/docs/db/d31/track__run__iterator_8cc_source.html +++ b/docs/db/d31/track__run__iterator_8cc_source.html @@ -842,7 +842,7 @@ $(function() { diff --git a/docs/db/d32/classshaka_1_1media_1_1mp2t_1_1EsParserDvb-members.html b/docs/db/d32/classshaka_1_1media_1_1mp2t_1_1EsParserDvb-members.html index 2ff24b74d6..39590babee 100644 --- a/docs/db/d32/classshaka_1_1media_1_1mp2t_1_1EsParserDvb-members.html +++ b/docs/db/d32/classshaka_1_1media_1_1mp2t_1_1EsParserDvb-members.html @@ -86,7 +86,7 @@ $(function() { 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 f2d826e090..033331adb5 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 @@ -83,7 +83,7 @@ $(function() { 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 f7e4212ae5..9aae5f3626 100644 --- a/docs/db/d3b/classshaka_1_1media_1_1VideoSliceHeaderParser-members.html +++ b/docs/db/d3b/classshaka_1_1media_1_1VideoSliceHeaderParser-members.html @@ -80,7 +80,7 @@ $(function() { 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 bcd063a868..3cfbc1be94 100644 --- a/docs/db/d45/mpd__notify__muxer__listener_8h_source.html +++ b/docs/db/d45/mpd__notify__muxer__listener_8h_source.html @@ -161,14 +161,14 @@ $(function() {
      void OnEncryptionInfoReady(bool is_initial_encryption_info, FourCC protection_scheme, const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< ProtectionSystemSpecificInfo > &key_system_info) override
      -
      void OnCueEvent(int64_t timestamp, const std::string &cue_data) override
      +
      void OnCueEvent(int64_t timestamp, const std::string &cue_data) override
      void OnSampleDurationReady(uint32_t sample_duration) override
      -
      void OnNewSegment(const std::string &file_name, int64_t start_time, int64_t duration, uint64_t segment_file_size) override
      +
      void OnNewSegment(const std::string &file_name, int64_t start_time, int64_t duration, uint64_t segment_file_size) override
      MpdNotifyMuxerListener(MpdNotifier *mpd_notifier)
      void OnMediaEnd(const MediaRanges &media_ranges, float duration_seconds) override
      void OnMediaStart(const MuxerOptions &muxer_options, const StreamInfo &stream_info, uint32_t time_scale, ContainerType container_type) override
      -
      void OnKeyFrame(int64_t timestamp, uint64_t start_byte_offset, uint64_t size)
      +
      void OnKeyFrame(int64_t timestamp, uint64_t start_byte_offset, uint64_t size)
      Abstract class holds stream information.
      Definition: stream_info.h:65
      All the methods that are virtual are virtual for mocking.
      @@ -177,7 +177,7 @@ $(function() { diff --git a/docs/db/d49/structshaka_1_1media_1_1EventInfo.html b/docs/db/d49/structshaka_1_1media_1_1EventInfo.html index b992cee27f..2f7a277491 100644 --- a/docs/db/d49/structshaka_1_1media_1_1EventInfo.html +++ b/docs/db/d49/structshaka_1_1media_1_1EventInfo.html @@ -101,7 +101,7 @@ union { diff --git a/docs/db/d4b/classshaka_1_1MockAdaptationSet.html b/docs/db/d4b/classshaka_1_1MockAdaptationSet.html index fa3c794f0b..a4f7dee39f 100644 --- a/docs/db/d4b/classshaka_1_1MockAdaptationSet.html +++ b/docs/db/d4b/classshaka_1_1MockAdaptationSet.html @@ -180,7 +180,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 09caba3ed6..9c23930bc4 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 @@ -213,7 +213,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 4b9c1a1583..d1c471c661 100644 --- a/docs/db/d51/mp2t__media__parser_8h_source.html +++ b/docs/db/d51/mp2t__media__parser_8h_source.html @@ -188,7 +188,7 @@ $(function() { 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 3936e342f7..72eb074e53 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 @@ -126,7 +126,7 @@ $(function() { 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 865d5617b4..42334c6e31 100644 --- a/docs/db/d59/media__handler__test__base_8h_source.html +++ b/docs/db/d59/media__handler__test__base_8h_source.html @@ -481,7 +481,7 @@ $(function() { diff --git a/docs/db/d5a/classshaka_1_1media_1_1CcStreamFilter.html b/docs/db/d5a/classshaka_1_1media_1_1CcStreamFilter.html index d80af75eba..83dd6176aa 100644 --- a/docs/db/d5a/classshaka_1_1media_1_1CcStreamFilter.html +++ b/docs/db/d5a/classshaka_1_1media_1_1CcStreamFilter.html @@ -248,7 +248,7 @@ static Status diff --git a/docs/db/d5a/classshaka_1_1media_1_1VP9Parser.html b/docs/db/d5a/classshaka_1_1media_1_1VP9Parser.html index 4c4b0e81fb..18498681b0 100644 --- a/docs/db/d5a/classshaka_1_1media_1_1VP9Parser.html +++ b/docs/db/d5a/classshaka_1_1media_1_1VP9Parser.html @@ -219,7 +219,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 30fbe242e2..99957d497f 100644 --- a/docs/db/d60/mpd__options_8h_source.html +++ b/docs/db/d60/mpd__options_8h_source.html @@ -107,7 +107,7 @@ $(function() { 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 cf51b2efcb..45b49814a6 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 @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/db/d66/udp__file_8cc_source.html b/docs/db/d66/udp__file_8cc_source.html index 250c2af93d..422f5cee4c 100644 --- a/docs/db/d66/udp__file_8cc_source.html +++ b/docs/db/d66/udp__file_8cc_source.html @@ -382,7 +382,7 @@ $(function() { diff --git a/docs/db/d6b/structshaka_1_1MpdParams-members.html b/docs/db/d6b/structshaka_1_1MpdParams-members.html index 683feb28cf..b06e07682b 100644 --- a/docs/db/d6b/structshaka_1_1MpdParams-members.html +++ b/docs/db/d6b/structshaka_1_1MpdParams-members.html @@ -88,11 +88,12 @@ $(function() { suggested_presentation_delay (defined in shaka::MpdParams)shaka::MpdParams target_segment_durationshaka::MpdParams time_shift_buffer_depthshaka::MpdParams - utc_timings (defined in shaka::MpdParams)shaka::MpdParams + use_segment_listshaka::MpdParams + utc_timings (defined in shaka::MpdParams)shaka::MpdParams diff --git a/docs/db/d71/http__key__fetcher_8h_source.html b/docs/db/d71/http__key__fetcher_8h_source.html index 3f55b3b670..4dc2cf786c 100644 --- a/docs/db/d71/http__key__fetcher_8h_source.html +++ b/docs/db/d71/http__key__fetcher_8h_source.html @@ -128,7 +128,7 @@ $(function() { 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 745194fbec..19f0eeb8d9 100644 --- a/docs/db/d74/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord-members.html +++ b/docs/db/d74/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord-members.html @@ -91,7 +91,7 @@ $(function() { 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 b085519dc0..2e404c9c7a 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 @@ -111,7 +111,7 @@ $(function() { 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 129fef03df..4d2883e8de 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 @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/db/d79/chunking__params_8h_source.html b/docs/db/d79/chunking__params_8h_source.html index 31bd13c986..7dc4218682 100644 --- a/docs/db/d79/chunking__params_8h_source.html +++ b/docs/db/d79/chunking__params_8h_source.html @@ -100,7 +100,7 @@ $(function() { diff --git a/docs/db/d7e/muxer__options_8cc_source.html b/docs/db/d7e/muxer__options_8cc_source.html index 5ae2ef4f24..2688dfa31e 100644 --- a/docs/db/d7e/muxer__options_8cc_source.html +++ b/docs/db/d7e/muxer__options_8cc_source.html @@ -89,7 +89,7 @@ $(function() { 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 ec505b7559..c634fe7982 100644 --- a/docs/db/d84/classshaka_1_1media_1_1AACAudioSpecificConfig-members.html +++ b/docs/db/d84/classshaka_1_1media_1_1AACAudioSpecificConfig-members.html @@ -129,7 +129,7 @@ $(function() { diff --git a/docs/db/d86/classshaka_1_1media_1_1NaluReader.html b/docs/db/d86/classshaka_1_1media_1_1NaluReader.html index f064fb3f5c..01cc052b6f 100644 --- a/docs/db/d86/classshaka_1_1media_1_1NaluReader.html +++ b/docs/db/d86/classshaka_1_1media_1_1NaluReader.html @@ -336,7 +336,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 9010d1d5d2..3b008aa45c 100644 --- a/docs/db/d8f/mp4__muxer_8h_source.html +++ b/docs/db/d8f/mp4__muxer_8h_source.html @@ -165,7 +165,7 @@ $(function() { diff --git a/docs/db/d94/classshaka_1_1media_1_1ClusterBuilder.html b/docs/db/d94/classshaka_1_1media_1_1ClusterBuilder.html index ac1b021dcb..d74b205c6a 100644 --- a/docs/db/d94/classshaka_1_1media_1_1ClusterBuilder.html +++ b/docs/db/d94/classshaka_1_1media_1_1ClusterBuilder.html @@ -104,7 +104,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 8834af0e13..5f2a8d02da 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 @@ -278,7 +278,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 538f9d0fc7..dcc72651fe 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 @@ -166,7 +166,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 ba449aa835..f6365dc7cf 100644 --- a/docs/db/d96/wvm__media__parser_8h_source.html +++ b/docs/db/d96/wvm__media__parser_8h_source.html @@ -347,7 +347,7 @@ $(function() { diff --git a/docs/db/da6/memory__file_8h_source.html b/docs/db/da6/memory__file_8h_source.html index e1878876bb..89ed030b1e 100644 --- a/docs/db/da6/memory__file_8h_source.html +++ b/docs/db/da6/memory__file_8h_source.html @@ -134,7 +134,7 @@ $(function() { diff --git a/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html b/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html index fddc58d82c..e345b7d3f1 100644 --- a/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html +++ b/docs/db/dab/classshaka_1_1media_1_1TextStreamInfo.html @@ -366,7 +366,7 @@ void set_encryption_config diff --git a/docs/db/dab/cue__alignment__handler_8cc_source.html b/docs/db/dab/cue__alignment__handler_8cc_source.html index e84e7456b5..e79da5c41e 100644 --- a/docs/db/dab/cue__alignment__handler_8cc_source.html +++ b/docs/db/dab/cue__alignment__handler_8cc_source.html @@ -409,7 +409,7 @@ $(function() { diff --git a/docs/db/dae/classshaka_1_1media_1_1WebMInfoParser.html b/docs/db/dae/classshaka_1_1media_1_1WebMInfoParser.html index e4f1c5eb0a..cfd2dde74c 100644 --- a/docs/db/dae/classshaka_1_1media_1_1WebMInfoParser.html +++ b/docs/db/dae/classshaka_1_1media_1_1WebMInfoParser.html @@ -155,7 +155,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 62448caec0..03faaa9088 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 @@ -92,7 +92,7 @@ $(function() { 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 4702b92eaf..37204730ca 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 @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/db/db6/structshaka_1_1media_1_1TextSettings-members.html b/docs/db/db6/structshaka_1_1media_1_1TextSettings-members.html index edffb10370..755ce5853b 100644 --- a/docs/db/db6/structshaka_1_1media_1_1TextSettings-members.html +++ b/docs/db/db6/structshaka_1_1media_1_1TextSettings-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/db/db8/ac4__audio__util_8cc_source.html b/docs/db/db8/ac4__audio__util_8cc_source.html index ab6f94e473..16058f0cc9 100644 --- a/docs/db/db8/ac4__audio__util_8cc_source.html +++ b/docs/db/db8/ac4__audio__util_8cc_source.html @@ -601,7 +601,7 @@ $(function() { diff --git a/docs/db/db8/structshaka_1_1media_1_1OnMediaEndParameters.html b/docs/db/db8/structshaka_1_1media_1_1OnMediaEndParameters.html index dde2ba5607..c17fbf274f 100644 --- a/docs/db/db8/structshaka_1_1media_1_1OnMediaEndParameters.html +++ b/docs/db/db8/structshaka_1_1media_1_1OnMediaEndParameters.html @@ -84,14 +84,14 @@ float duration_seconds

      Detailed Description

      -

      Definition at line 77 of file muxer_listener_test_helper.h.

      +

      Definition at line 104 of file muxer_listener_test_helper.h.


      The documentation for this struct was generated from the following file: 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 5d2c6925bb..1cd2b220e7 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 @@ -178,7 +178,7 @@ Additional Inherited Members diff --git a/docs/db/db9/text__chunker_8cc_source.html b/docs/db/db9/text__chunker_8cc_source.html index 692bcfd3a3..30616be583 100644 --- a/docs/db/db9/text__chunker_8cc_source.html +++ b/docs/db/db9/text__chunker_8cc_source.html @@ -206,7 +206,7 @@ $(function() { diff --git a/docs/db/dc7/classshaka_1_1media_1_1AV1Parser.html b/docs/db/dc7/classshaka_1_1media_1_1AV1Parser.html index f1b803eabf..6812dc1bb0 100644 --- a/docs/db/dc7/classshaka_1_1media_1_1AV1Parser.html +++ b/docs/db/dc7/classshaka_1_1media_1_1AV1Parser.html @@ -149,7 +149,7 @@ Public Member Functions diff --git a/docs/db/dcb/classshaka_1_1media_1_1VPxParser.html b/docs/db/dcb/classshaka_1_1media_1_1VPxParser.html index a364af4792..01a0e4741c 100644 --- a/docs/db/dcb/classshaka_1_1media_1_1VPxParser.html +++ b/docs/db/dcb/classshaka_1_1media_1_1VPxParser.html @@ -187,7 +187,7 @@ Protected Member Functions diff --git a/docs/db/dcd/classshaka_1_1MpdWriter.html b/docs/db/dcd/classshaka_1_1MpdWriter.html index b314485449..b87a2b7c3e 100644 --- a/docs/db/dcd/classshaka_1_1MpdWriter.html +++ b/docs/db/dcd/classshaka_1_1MpdWriter.html @@ -102,7 +102,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 7d2b3afabe..fd387c88d5 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/db/dd0/classshaka_1_1Packager.html b/docs/db/dd0/classshaka_1_1Packager.html index 3af099eaed..0917f6e31a 100644 --- a/docs/db/dd0/classshaka_1_1Packager.html +++ b/docs/db/dd0/classshaka_1_1Packager.html @@ -152,7 +152,7 @@ Static Public Member Functions
      Returns
      the stream label associated with stream_info. Can be "AUDIO", "SD", "HD", "UHD1" or "UHD2".
      -

      Definition at line 982 of file packager.cc.

      +

      Definition at line 984 of file packager.cc.

      @@ -180,7 +180,7 @@ Static Public Member Functions
      Returns
      The version of the library.
      -

      Definition at line 978 of file packager.cc.

      +

      Definition at line 980 of file packager.cc.

      @@ -218,7 +218,7 @@ Static Public Member Functions
      Returns
      OK on success, an appropriate error code on failure.
      -

      Definition at line 811 of file packager.cc.

      +

      Definition at line 812 of file packager.cc.

      @@ -238,7 +238,7 @@ Static Public Member Functions

      Run the pipeline to completion (or failed / been cancelled). Note that it blocks until completion.

      Returns
      OK on success, an appropriate error code on failure.
      -

      Definition at line 953 of file packager.cc.

      +

      Definition at line 955 of file packager.cc.

      @@ -249,7 +249,7 @@ Static Public Member Functions diff --git a/docs/db/dd0/classshaka_1_1media_1_1RawKeySource.html b/docs/db/dd0/classshaka_1_1media_1_1RawKeySource.html index 7aaaf82e61..55239ba666 100644 --- a/docs/db/dd0/classshaka_1_1media_1_1RawKeySource.html +++ b/docs/db/dd0/classshaka_1_1media_1_1RawKeySource.html @@ -356,7 +356,7 @@ Static Public Member Functions diff --git a/docs/db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html b/docs/db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html index e2decc9468..7b0bc15303 100644 --- a/docs/db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html +++ b/docs/db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html @@ -85,9 +85,12 @@ Inheritance diagram for shaka::media::VodMediaInfoDumpMuxerListener: - - + + + + @@ -173,7 +176,7 @@ Additional Inherited Members

      Implements shaka::media::MuxerListener.

      -

      Definition at line 107 of file vod_media_info_dump_muxer_listener.cc.

      +

      Definition at line 108 of file vod_media_info_dump_muxer_listener.cc.

      @@ -240,7 +243,7 @@ Additional Inherited Members

      Implements shaka::media::MuxerListener.

      -

      Definition at line 30 of file vod_media_info_dump_muxer_listener.cc.

      +

      Definition at line 31 of file vod_media_info_dump_muxer_listener.cc.

      @@ -270,7 +273,7 @@ Additional Inherited Members

      Implements shaka::media::MuxerListener.

      -

      Definition at line 67 of file vod_media_info_dump_muxer_listener.cc.

      +

      Definition at line 68 of file vod_media_info_dump_muxer_listener.cc.

      @@ -324,7 +327,7 @@ Additional Inherited Members

      Implements shaka::media::MuxerListener.

      -

      Definition at line 103 of file vod_media_info_dump_muxer_listener.cc.

      +

      Definition at line 104 of file vod_media_info_dump_muxer_listener.cc.

      @@ -371,7 +374,7 @@ Additional Inherited Members

      Implements shaka::media::MuxerListener.

      -

      Definition at line 77 of file vod_media_info_dump_muxer_listener.cc.

      +

      Definition at line 78 of file vod_media_info_dump_muxer_listener.cc.

      @@ -432,7 +435,7 @@ Additional Inherited Members

      Implements shaka::media::MuxerListener.

      -

      Definition at line 45 of file vod_media_info_dump_muxer_listener.cc.

      +

      Definition at line 46 of file vod_media_info_dump_muxer_listener.cc.

      @@ -493,7 +496,7 @@ Additional Inherited Members

      Implements shaka::media::MuxerListener.

      -

      Definition at line 90 of file vod_media_info_dump_muxer_listener.cc.

      +

      Definition at line 91 of file vod_media_info_dump_muxer_listener.cc.

      @@ -529,7 +532,7 @@ Additional Inherited Members

      Implements shaka::media::MuxerListener.

      -

      Definition at line 69 of file vod_media_info_dump_muxer_listener.cc.

      +

      Definition at line 70 of file vod_media_info_dump_muxer_listener.cc.

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

      Definition at line 113 of file vod_media_info_dump_muxer_listener.cc.

      +

      Definition at line 114 of file vod_media_info_dump_muxer_listener.cc.

      @@ -586,7 +589,7 @@ Additional Inherited Members diff --git a/docs/db/dd0/ttml__generator_8h_source.html b/docs/db/dd0/ttml__generator_8h_source.html index c0f33f10aa..4c3027a194 100644 --- a/docs/db/dd0/ttml__generator_8h_source.html +++ b/docs/db/dd0/ttml__generator_8h_source.html @@ -136,7 +136,7 @@ $(function() { diff --git a/docs/db/dd2/chunk__info__iterator_8h_source.html b/docs/db/dd2/chunk__info__iterator_8h_source.html index c0b6cc3818..ed6d76beb1 100644 --- a/docs/db/dd2/chunk__info__iterator_8h_source.html +++ b/docs/db/dd2/chunk__info__iterator_8h_source.html @@ -144,7 +144,7 @@ $(function() { diff --git a/docs/db/dd9/sync__sample__iterator_8h_source.html b/docs/db/dd9/sync__sample__iterator_8h_source.html index 6ed1550a84..182042e97f 100644 --- a/docs/db/dd9/sync__sample__iterator_8h_source.html +++ b/docs/db/dd9/sync__sample__iterator_8h_source.html @@ -123,7 +123,7 @@ $(function() { diff --git a/docs/db/dde/h265__parser_8cc_source.html b/docs/db/dde/h265__parser_8cc_source.html index debfee36ed..e8fb79444a 100644 --- a/docs/db/dde/h265__parser_8cc_source.html +++ b/docs/db/dde/h265__parser_8cc_source.html @@ -1213,7 +1213,7 @@ $(function() { diff --git a/docs/db/de1/mock__aes__cryptor_8h_source.html b/docs/db/de1/mock__aes__cryptor_8h_source.html index abcdde9281..b202371591 100644 --- a/docs/db/de1/mock__aes__cryptor_8h_source.html +++ b/docs/db/de1/mock__aes__cryptor_8h_source.html @@ -111,7 +111,7 @@ $(function() { diff --git a/docs/db/de2/classshaka_1_1media_1_1LineReader.html b/docs/db/de2/classshaka_1_1media_1_1LineReader.html index c74cee9044..795b3302bc 100644 --- a/docs/db/de2/classshaka_1_1media_1_1LineReader.html +++ b/docs/db/de2/classshaka_1_1media_1_1LineReader.html @@ -136,7 +136,7 @@ void 

      Public Member Functions

      VodMediaInfoDumpMuxerListener (const std::string &output_file_name)
       
      VodMediaInfoDumpMuxerListener (const std::string &output_file_name, bool use_segment_list)
       
      +void set_use_segment_list (bool value)
       
      MuxerListener implementation overrides.
      void OnEncryptionInfoReady (bool is_initial_encryption_info, FourCC protection_scheme, const std::vector< uint8_t > &default_key_id, const std::vector< uint8_t > &iv, const std::vector< ProtectionSystemSpecificInfo > &key_system_info) override
       
      diff --git a/docs/db/dea/classshaka_1_1media_1_1TrickPlayHandler.html b/docs/db/dea/classshaka_1_1media_1_1TrickPlayHandler.html index cd6a17eec2..c71abd4a0c 100644 --- a/docs/db/dea/classshaka_1_1media_1_1TrickPlayHandler.html +++ b/docs/db/dea/classshaka_1_1media_1_1TrickPlayHandler.html @@ -174,7 +174,7 @@ const std::map< size_t, std::pair< std::shared_ptr< diff --git a/docs/db/dec/audio__timestamp__helper_8cc_source.html b/docs/db/dec/audio__timestamp__helper_8cc_source.html index bb212bcab8..cb6ed94e28 100644 --- a/docs/db/dec/audio__timestamp__helper_8cc_source.html +++ b/docs/db/dec/audio__timestamp__helper_8cc_source.html @@ -148,7 +148,7 @@ $(function() { diff --git a/docs/db/dee/pes__packet_8cc_source.html b/docs/db/dee/pes__packet_8cc_source.html index 23d1445641..dd806f7d6d 100644 --- a/docs/db/dee/pes__packet_8cc_source.html +++ b/docs/db/dee/pes__packet_8cc_source.html @@ -91,7 +91,7 @@ $(function() { 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 ef4b357c40..40247b8984 100644 --- a/docs/db/df2/structshaka_1_1media_1_1H265SliceHeader-members.html +++ b/docs/db/df2/structshaka_1_1media_1_1H265SliceHeader-members.html @@ -118,7 +118,7 @@ $(function() {
      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 fe4f65ae45..700c2808e9 100644 --- a/docs/db/df6/classshaka_1_1media_1_1Cluster-members.html +++ b/docs/db/df6/classshaka_1_1media_1_1Cluster-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/db/df6/muxer_8h_source.html b/docs/db/df6/muxer_8h_source.html index b96adc70ef..a5b7235de7 100644 --- a/docs/db/df6/muxer_8h_source.html +++ b/docs/db/df6/muxer_8h_source.html @@ -189,7 +189,7 @@ $(function() { diff --git a/docs/db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html b/docs/db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html index aff0e8005a..65204d5ad7 100644 --- a/docs/db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html +++ b/docs/db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html @@ -217,7 +217,7 @@ void WarnIfNotMatch (i diff --git a/docs/db/df8/pssh__generator__util_8cc_source.html b/docs/db/df8/pssh__generator__util_8cc_source.html index 5602060485..9539a04888 100644 --- a/docs/db/df8/pssh__generator__util_8cc_source.html +++ b/docs/db/df8/pssh__generator__util_8cc_source.html @@ -103,7 +103,7 @@ $(function() { diff --git a/docs/db/dfb/mpd__utils_8cc_source.html b/docs/db/dfb/mpd__utils_8cc_source.html index b2689e20fa..4ee4e8b138 100644 --- a/docs/db/dfb/mpd__utils_8cc_source.html +++ b/docs/db/dfb/mpd__utils_8cc_source.html @@ -562,7 +562,7 @@ $(function() { 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 12ce3cbffd..c5b33ff5a4 100644 --- a/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html +++ b/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html @@ -213,92 +213,94 @@ $(function() {
      142 
      143  DCHECK(media_info_);
      144  if (!internal::SetVodInformation(media_ranges, duration_seconds,
      -
      145  media_info_.get())) {
      -
      146  LOG(ERROR) << "Failed to generate VOD information from input.";
      -
      147  return;
      -
      148  }
      -
      149 
      -
      150  if (notification_id_) {
      -
      151  mpd_notifier_->NotifyMediaInfoUpdate(notification_id_.value(),
      -
      152  *media_info_);
      -
      153  } else {
      -
      154  if (!NotifyNewContainer())
      -
      155  return;
      -
      156  DCHECK(notification_id_);
      -
      157  }
      -
      158  // TODO(rkuroiwa): Use media_ranges.subsegment_ranges instead of caching the
      -
      159  // subsegments.
      -
      160  for (const auto& event_info : event_info_) {
      -
      161  switch (event_info.type) {
      -
      162  case EventInfoType::kSegment:
      -
      163  mpd_notifier_->NotifyNewSegment(
      -
      164  notification_id_.value(), event_info.segment_info.start_time,
      -
      165  event_info.segment_info.duration,
      -
      166  event_info.segment_info.segment_file_size);
      -
      167  break;
      -
      168  case EventInfoType::kKeyFrame:
      -
      169  // NO-OP for DASH.
      -
      170  break;
      -
      171  case EventInfoType::kCue:
      -
      172  mpd_notifier_->NotifyCueEvent(notification_id_.value(),
      -
      173  event_info.cue_event_info.timestamp);
      -
      174  break;
      -
      175  }
      -
      176  }
      -
      177  event_info_.clear();
      -
      178  mpd_notifier_->Flush();
      -
      179 }
      -
      180 
      -
      181 void MpdNotifyMuxerListener::OnNewSegment(const std::string& file_name,
      -
      182  int64_t start_time,
      -
      183  int64_t duration,
      -
      184  uint64_t segment_file_size) {
      -
      185  if (mpd_notifier_->dash_profile() == DashProfile::kLive) {
      -
      186  mpd_notifier_->NotifyNewSegment(notification_id_.value(), start_time,
      -
      187  duration, segment_file_size);
      -
      188  if (mpd_notifier_->mpd_type() == MpdType::kDynamic)
      -
      189  mpd_notifier_->Flush();
      -
      190  } else {
      -
      191  EventInfo event_info;
      -
      192  event_info.type = EventInfoType::kSegment;
      -
      193  event_info.segment_info = {start_time, duration, segment_file_size};
      -
      194  event_info_.push_back(event_info);
      -
      195  }
      -
      196 }
      -
      197 
      -
      198 void MpdNotifyMuxerListener::OnKeyFrame(int64_t timestamp,
      -
      199  uint64_t start_byte_offset,
      -
      200  uint64_t size) {
      -
      201  // NO-OP for DASH.
      -
      202 }
      -
      203 
      -
      204 void MpdNotifyMuxerListener::OnCueEvent(int64_t timestamp,
      -
      205  const std::string& cue_data) {
      -
      206  // Not using |cue_data| at this moment.
      -
      207  if (mpd_notifier_->dash_profile() == DashProfile::kLive) {
      -
      208  mpd_notifier_->NotifyCueEvent(notification_id_.value(), timestamp);
      -
      209  } else {
      -
      210  EventInfo event_info;
      -
      211  event_info.type = EventInfoType::kCue;
      -
      212  event_info.cue_event_info = {timestamp};
      -
      213  event_info_.push_back(event_info);
      -
      214  }
      -
      215 }
      -
      216 
      -
      217 bool MpdNotifyMuxerListener::NotifyNewContainer() {
      -
      218  uint32_t notification_id;
      -
      219  if (!mpd_notifier_->NotifyNewContainer(*media_info_, &notification_id)) {
      -
      220  LOG(ERROR) << "Failed to notify MpdNotifier.";
      -
      221  return false;
      -
      222  }
      -
      223  notification_id_ = notification_id;
      -
      224  return true;
      -
      225 }
      -
      226 
      -
      227 } // namespace media
      -
      228 } // namespace shaka
      +
      145  mpd_notifier_->use_segment_list(),
      +
      146  media_info_.get())) {
      +
      147  LOG(ERROR) << "Failed to generate VOD information from input.";
      +
      148  return;
      +
      149  }
      +
      150 
      +
      151  if (notification_id_) {
      +
      152  mpd_notifier_->NotifyMediaInfoUpdate(notification_id_.value(),
      +
      153  *media_info_);
      +
      154  } else {
      +
      155  if (!NotifyNewContainer())
      +
      156  return;
      +
      157  DCHECK(notification_id_);
      +
      158  }
      +
      159  // TODO(rkuroiwa): Use media_ranges.subsegment_ranges instead of caching the
      +
      160  // subsegments.
      +
      161  for (const auto& event_info : event_info_) {
      +
      162  switch (event_info.type) {
      +
      163  case EventInfoType::kSegment:
      +
      164  mpd_notifier_->NotifyNewSegment(
      +
      165  notification_id_.value(), event_info.segment_info.start_time,
      +
      166  event_info.segment_info.duration,
      +
      167  event_info.segment_info.segment_file_size);
      +
      168  break;
      +
      169  case EventInfoType::kKeyFrame:
      +
      170  // NO-OP for DASH.
      +
      171  break;
      +
      172  case EventInfoType::kCue:
      +
      173  mpd_notifier_->NotifyCueEvent(notification_id_.value(),
      +
      174  event_info.cue_event_info.timestamp);
      +
      175  break;
      +
      176  }
      +
      177  }
      +
      178  event_info_.clear();
      +
      179  mpd_notifier_->Flush();
      +
      180 }
      +
      181 
      +
      182 void MpdNotifyMuxerListener::OnNewSegment(const std::string& file_name,
      +
      183  int64_t start_time,
      +
      184  int64_t duration,
      +
      185  uint64_t segment_file_size) {
      +
      186  if (mpd_notifier_->dash_profile() == DashProfile::kLive) {
      +
      187  mpd_notifier_->NotifyNewSegment(notification_id_.value(), start_time,
      +
      188  duration, segment_file_size);
      +
      189  if (mpd_notifier_->mpd_type() == MpdType::kDynamic)
      +
      190  mpd_notifier_->Flush();
      +
      191  } else {
      +
      192  EventInfo event_info;
      +
      193  event_info.type = EventInfoType::kSegment;
      +
      194  event_info.segment_info = {start_time, duration, segment_file_size};
      +
      195  event_info_.push_back(event_info);
      +
      196  }
      +
      197 }
      +
      198 
      +
      199 void MpdNotifyMuxerListener::OnKeyFrame(int64_t timestamp,
      +
      200  uint64_t start_byte_offset,
      +
      201  uint64_t size) {
      +
      202  // NO-OP for DASH.
      +
      203 }
      +
      204 
      +
      205 void MpdNotifyMuxerListener::OnCueEvent(int64_t timestamp,
      +
      206  const std::string& cue_data) {
      +
      207  // Not using |cue_data| at this moment.
      +
      208  if (mpd_notifier_->dash_profile() == DashProfile::kLive) {
      +
      209  mpd_notifier_->NotifyCueEvent(notification_id_.value(), timestamp);
      +
      210  } else {
      +
      211  EventInfo event_info;
      +
      212  event_info.type = EventInfoType::kCue;
      +
      213  event_info.cue_event_info = {timestamp};
      +
      214  event_info_.push_back(event_info);
      +
      215  }
      +
      216 }
      +
      217 
      +
      218 bool MpdNotifyMuxerListener::NotifyNewContainer() {
      +
      219  uint32_t notification_id;
      +
      220  if (!mpd_notifier_->NotifyNewContainer(*media_info_, &notification_id)) {
      +
      221  LOG(ERROR) << "Failed to notify MpdNotifier.";
      +
      222  return false;
      +
      223  }
      +
      224  notification_id_ = notification_id;
      +
      225  return true;
      +
      226 }
      +
      227 
      +
      228 } // namespace media
      +
      229 } // namespace shaka
      MpdType mpd_type() const
      Definition: mpd_notifier.h:114
      +
      bool use_segment_list() const
      Definition: mpd_notifier.h:117
      virtual bool NotifyNewSegment(uint32_t container_id, uint64_t start_time, uint64_t duration, uint64_t size)=0
      DashProfile dash_profile() const
      Definition: mpd_notifier.h:111
      virtual bool NotifyMediaInfoUpdate(uint32_t container_id, const MediaInfo &media_info)=0
      @@ -309,14 +311,14 @@ $(function() {
      bool include_mspr_pro() const
      Definition: mpd_notifier.h:108
      virtual bool Flush()=0
      void OnEncryptionInfoReady(bool is_initial_encryption_info, FourCC protection_scheme, const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< ProtectionSystemSpecificInfo > &key_system_info) override
      -
      void OnCueEvent(int64_t timestamp, const std::string &cue_data) override
      +
      void OnCueEvent(int64_t timestamp, const std::string &cue_data) override
      void OnSampleDurationReady(uint32_t sample_duration) override
      -
      void OnNewSegment(const std::string &file_name, int64_t start_time, int64_t duration, uint64_t segment_file_size) override
      +
      void OnNewSegment(const std::string &file_name, int64_t start_time, int64_t duration, uint64_t segment_file_size) override
      MpdNotifyMuxerListener(MpdNotifier *mpd_notifier)
      void OnMediaEnd(const MediaRanges &media_ranges, float duration_seconds) override
      void OnMediaStart(const MuxerOptions &muxer_options, const StreamInfo &stream_info, uint32_t time_scale, ContainerType container_type) override
      -
      void OnKeyFrame(int64_t timestamp, uint64_t start_byte_offset, uint64_t size)
      +
      void OnKeyFrame(int64_t timestamp, uint64_t start_byte_offset, uint64_t size)
      Abstract class holds stream information.
      Definition: stream_info.h:65
      All the methods that are virtual are virtual for mocking.
      @@ -326,7 +328,7 @@ $(function() { 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 640b6f7732..dc7524e67c 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 @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/db/dff/webvtt__file__buffer_8h_source.html b/docs/db/dff/webvtt__file__buffer_8h_source.html index cd88531fbf..89a88520c3 100644 --- a/docs/db/dff/webvtt__file__buffer_8h_source.html +++ b/docs/db/dff/webvtt__file__buffer_8h_source.html @@ -124,7 +124,7 @@ $(function() { 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 67bfedd44e..bd7433c21c 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 @@ -158,7 +158,7 @@ Protected Member Functions 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 c4eff29718..ea07f62ab3 100644 --- a/docs/dc/d06/classshaka_1_1media_1_1StreamInfo-members.html +++ b/docs/dc/d06/classshaka_1_1media_1_1StreamInfo-members.html @@ -100,7 +100,7 @@ $(function() { diff --git a/docs/dc/d08/raw__key__encryption__flags_8cc_source.html b/docs/dc/d08/raw__key__encryption__flags_8cc_source.html index daff7e17db..c29126bc03 100644 --- a/docs/dc/d08/raw__key__encryption__flags_8cc_source.html +++ b/docs/dc/d08/raw__key__encryption__flags_8cc_source.html @@ -188,7 +188,7 @@ $(function() { 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 4a7a716dd0..e5784234e9 100644 --- a/docs/dc/d0b/classshaka_1_1media_1_1ESDescriptor-members.html +++ b/docs/dc/d0b/classshaka_1_1media_1_1ESDescriptor-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/dc/d16/classshaka_1_1media_1_1SeekHead.html b/docs/dc/d16/classshaka_1_1media_1_1SeekHead.html index 0215511a1d..bb18ed7fc7 100644 --- a/docs/dc/d16/classshaka_1_1media_1_1SeekHead.html +++ b/docs/dc/d16/classshaka_1_1media_1_1SeekHead.html @@ -130,7 +130,7 @@ void set_tracks_pos (u diff --git a/docs/dc/d17/status__test__util_8h_source.html b/docs/dc/d17/status__test__util_8h_source.html index be33a2149b..25062039cc 100644 --- a/docs/dc/d17/status__test__util_8h_source.html +++ b/docs/dc/d17/status__test__util_8h_source.html @@ -91,7 +91,7 @@ $(function() { 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 b1cecfa950..37795bb1fb 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 @@ -244,7 +244,7 @@ Additional Inherited Members 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 85fadb1e7f..ba8cd5d13c 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 @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/dc/d19/box_8h_source.html b/docs/dc/d19/box_8h_source.html index 2248d8ca77..8c7c567561 100644 --- a/docs/dc/d19/box_8h_source.html +++ b/docs/dc/d19/box_8h_source.html @@ -167,7 +167,7 @@ $(function() { diff --git a/docs/dc/d1c/classshaka_1_1media_1_1mp2t_1_1AudioProgramMapTableWriter.html b/docs/dc/d1c/classshaka_1_1media_1_1mp2t_1_1AudioProgramMapTableWriter.html index 89edb3d5be..8bdcc5976f 100644 --- a/docs/dc/d1c/classshaka_1_1media_1_1mp2t_1_1AudioProgramMapTableWriter.html +++ b/docs/dc/d1c/classshaka_1_1media_1_1mp2t_1_1AudioProgramMapTableWriter.html @@ -129,7 +129,7 @@ static const uint8_t kElem diff --git a/docs/dc/d1c/replicator_8h_source.html b/docs/dc/d1c/replicator_8h_source.html index ae2a1dc459..c0eddf3414 100644 --- a/docs/dc/d1c/replicator_8h_source.html +++ b/docs/dc/d1c/replicator_8h_source.html @@ -102,7 +102,7 @@ $(function() { diff --git a/docs/dc/d1f/classshaka_1_1media_1_1WebVttParser-members.html b/docs/dc/d1f/classshaka_1_1media_1_1WebVttParser-members.html index 2028b31842..3f97b8d87f 100644 --- a/docs/dc/d1f/classshaka_1_1media_1_1WebVttParser-members.html +++ b/docs/dc/d1f/classshaka_1_1media_1_1WebVttParser-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html b/docs/dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html index 26546bf428..9344c69e9c 100644 --- a/docs/dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html +++ b/docs/dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html @@ -494,7 +494,7 @@ Public Member Functions diff --git a/docs/dc/d35/structshaka_1_1EncryptionParams-members.html b/docs/dc/d35/structshaka_1_1EncryptionParams-members.html index d2005862a4..56510fdd6a 100644 --- a/docs/dc/d35/structshaka_1_1EncryptionParams-members.html +++ b/docs/dc/d35/structshaka_1_1EncryptionParams-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/dc/d3c/webm__cluster__parser_8h_source.html b/docs/dc/d3c/webm__cluster__parser_8h_source.html index 62d3fc32bc..e019496c2b 100644 --- a/docs/dc/d3c/webm__cluster__parser_8h_source.html +++ b/docs/dc/d3c/webm__cluster__parser_8h_source.html @@ -287,7 +287,7 @@ $(function() { diff --git a/docs/dc/d3f/key__source_8h_source.html b/docs/dc/d3f/key__source_8h_source.html index 1c60ae833f..a4e9079f6e 100644 --- a/docs/dc/d3f/key__source_8h_source.html +++ b/docs/dc/d3f/key__source_8h_source.html @@ -151,7 +151,7 @@ $(function() { diff --git a/docs/dc/d40/classshaka_1_1hls_1_1HlsNotifier-members.html b/docs/dc/d40/classshaka_1_1hls_1_1HlsNotifier-members.html index c825732e83..a1c3d1ba3d 100644 --- a/docs/dc/d40/classshaka_1_1hls_1_1HlsNotifier-members.html +++ b/docs/dc/d40/classshaka_1_1hls_1_1HlsNotifier-members.html @@ -86,7 +86,7 @@ $(function() { 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 3d3c7235c9..eb0cd1c2dd 100644 --- a/docs/dc/d40/classshaka_1_1xml_1_1XmlNode-members.html +++ b/docs/dc/d40/classshaka_1_1xml_1_1XmlNode-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/docs/dc/d41/classshaka_1_1media_1_1BufferWriter.html b/docs/dc/d41/classshaka_1_1media_1_1BufferWriter.html index 569fa1e1ba..806d9ba840 100644 --- a/docs/dc/d41/classshaka_1_1media_1_1BufferWriter.html +++ b/docs/dc/d41/classshaka_1_1media_1_1BufferWriter.html @@ -290,7 +290,7 @@ void AppendInt (int64_ diff --git a/docs/dc/d48/pssh__generator_8h_source.html b/docs/dc/d48/pssh__generator_8h_source.html index abfef4a351..4fd03aad1c 100644 --- a/docs/dc/d48/pssh__generator_8h_source.html +++ b/docs/dc/d48/pssh__generator_8h_source.html @@ -130,7 +130,7 @@ $(function() { 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 61d1bbedcb..f744786b28 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 @@ -92,7 +92,7 @@ $(function() { 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 c8b76b68be..393aa18fa9 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 @@ -104,7 +104,7 @@ $(function() { 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 626e002bf6..3a62ebe98e 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 @@ -221,7 +221,7 @@ $(function() { diff --git a/docs/dc/d52/decoding__time__iterator_8h_source.html b/docs/dc/d52/decoding__time__iterator_8h_source.html index e2f6f6dd9a..47a67461c8 100644 --- a/docs/dc/d52/decoding__time__iterator_8h_source.html +++ b/docs/dc/d52/decoding__time__iterator_8h_source.html @@ -130,7 +130,7 @@ $(function() { diff --git a/docs/dc/d52/sync__point__queue_8cc_source.html b/docs/dc/d52/sync__point__queue_8cc_source.html index b616058a16..bbd1500738 100644 --- a/docs/dc/d52/sync__point__queue_8cc_source.html +++ b/docs/dc/d52/sync__point__queue_8cc_source.html @@ -204,7 +204,7 @@ $(function() { diff --git a/docs/dc/d53/webm_2segmenter_8cc_source.html b/docs/dc/d53/webm_2segmenter_8cc_source.html index 512381065b..b66044447d 100644 --- a/docs/dc/d53/webm_2segmenter_8cc_source.html +++ b/docs/dc/d53/webm_2segmenter_8cc_source.html @@ -530,7 +530,7 @@ $(function() { diff --git a/docs/dc/d54/structshaka_1_1media_1_1H264DecRefPicMarking.html b/docs/dc/d54/structshaka_1_1media_1_1H264DecRefPicMarking.html index 178c8b7b5b..14f14e1c53 100644 --- a/docs/dc/d54/structshaka_1_1media_1_1H264DecRefPicMarking.html +++ b/docs/dc/d54/structshaka_1_1media_1_1H264DecRefPicMarking.html @@ -100,7 +100,7 @@ int max_long_term_frame_id diff --git a/docs/dc/d56/audio__header_8h_source.html b/docs/dc/d56/audio__header_8h_source.html index a7e52da6a2..97ec9de064 100644 --- a/docs/dc/d56/audio__header_8h_source.html +++ b/docs/dc/d56/audio__header_8h_source.html @@ -141,7 +141,7 @@ $(function() { diff --git a/docs/dc/d58/webm__media__parser_8h_source.html b/docs/dc/d58/webm__media__parser_8h_source.html index 642067fbb3..826df1a1ac 100644 --- a/docs/dc/d58/webm__media__parser_8h_source.html +++ b/docs/dc/d58/webm__media__parser_8h_source.html @@ -163,7 +163,7 @@ $(function() { diff --git a/docs/dc/d5c/classshaka_1_1MockMpdNotifier.html b/docs/dc/d5c/classshaka_1_1MockMpdNotifier.html index c03c469302..475ee758fc 100644 --- a/docs/dc/d5c/classshaka_1_1MockMpdNotifier.html +++ b/docs/dc/d5c/classshaka_1_1MockMpdNotifier.html @@ -137,6 +137,8 @@ Public Member Functions   MpdType mpd_type () const   +bool use_segment_list () const + 

      Detailed Description

      @@ -148,7 +150,7 @@ Public Member Functions
      diff --git a/docs/dc/d65/dvb__sub__parser_8h_source.html b/docs/dc/d65/dvb__sub__parser_8h_source.html index c2fdb227b0..345ef4b2a6 100644 --- a/docs/dc/d65/dvb__sub__parser_8h_source.html +++ b/docs/dc/d65/dvb__sub__parser_8h_source.html @@ -164,7 +164,7 @@ $(function() { 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 cde8ae7b10..f91a64f24a 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 @@ -88,7 +88,7 @@ $(function() { 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 eb19623fff..4362e0a9f2 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 @@ -101,7 +101,7 @@ $(function() { 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 de0beda9c8..fe20f8bb5c 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 @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/dc/d73/classshaka_1_1media_1_1MockMuxerListener.html b/docs/dc/d73/classshaka_1_1media_1_1MockMuxerListener.html index 576ad59701..708ee73d7f 100644 --- a/docs/dc/d73/classshaka_1_1media_1_1MockMuxerListener.html +++ b/docs/dc/d73/classshaka_1_1media_1_1MockMuxerListener.html @@ -199,7 +199,7 @@ Additional Inherited Members diff --git a/docs/dc/d76/classshaka_1_1media_1_1BitWriter.html b/docs/dc/d76/classshaka_1_1media_1_1BitWriter.html index 356117ea60..def7c30dbc 100644 --- a/docs/dc/d76/classshaka_1_1media_1_1BitWriter.html +++ b/docs/dc/d76/classshaka_1_1media_1_1BitWriter.html @@ -227,7 +227,7 @@ void  diff --git a/docs/dc/d7b/classshaka_1_1media_1_1PsshBoxBuilder-members.html b/docs/dc/d7b/classshaka_1_1media_1_1PsshBoxBuilder-members.html index 2bd49356d6..8e54614c97 100644 --- a/docs/dc/d7b/classshaka_1_1media_1_1PsshBoxBuilder-members.html +++ b/docs/dc/d7b/classshaka_1_1media_1_1PsshBoxBuilder-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/dc/d7b/closure__thread_8cc_source.html b/docs/dc/d7b/closure__thread_8cc_source.html index 588c2a2929..55c7f0e816 100644 --- a/docs/dc/d7b/closure__thread_8cc_source.html +++ b/docs/dc/d7b/closure__thread_8cc_source.html @@ -101,7 +101,7 @@ $(function() { diff --git a/docs/dc/d7b/h264__parser_8cc_source.html b/docs/dc/d7b/h264__parser_8cc_source.html index 6a56339fcc..9c42ef06c0 100644 --- a/docs/dc/d7b/h264__parser_8cc_source.html +++ b/docs/dc/d7b/h264__parser_8cc_source.html @@ -1233,7 +1233,7 @@ $(function() { 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 72ff638cec..d1d9d84526 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 @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/dc/d8a/classshaka_1_1media_1_1mp2t_1_1EsParserAudio.html b/docs/dc/d8a/classshaka_1_1media_1_1mp2t_1_1EsParserAudio.html index d717afa61f..29429b70f5 100644 --- a/docs/dc/d8a/classshaka_1_1media_1_1mp2t_1_1EsParserAudio.html +++ b/docs/dc/d8a/classshaka_1_1media_1_1mp2t_1_1EsParserAudio.html @@ -127,7 +127,7 @@ typedef base::Callback< void(std::shared_ptr< 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 5acf4876bb..84a03a1989 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 @@ -163,7 +163,7 @@ Additional Inherited Members diff --git a/docs/dc/d9a/structshaka_1_1media_1_1Range-members.html b/docs/dc/d9a/structshaka_1_1media_1_1Range-members.html index 3c4884ad68..151373b1ef 100644 --- a/docs/dc/d9a/structshaka_1_1media_1_1Range-members.html +++ b/docs/dc/d9a/structshaka_1_1media_1_1Range-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/docs/dc/da0/structshaka_1_1EncryptionParams.html b/docs/dc/da0/structshaka_1_1EncryptionParams.html index 2523f9d0f8..86980d5079 100644 --- a/docs/dc/da0/structshaka_1_1EncryptionParams.html +++ b/docs/dc/da0/structshaka_1_1EncryptionParams.html @@ -250,7 +250,7 @@ static constexpr uint32_t  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 2f584a5c6e..375727002c 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 @@ -166,7 +166,7 @@ Additional Inherited Members diff --git a/docs/dc/da1/classshaka_1_1MpdBuilder.html b/docs/dc/da1/classshaka_1_1MpdBuilder.html index 86b317d177..45627415d8 100644 --- a/docs/dc/da1/classshaka_1_1MpdBuilder.html +++ b/docs/dc/da1/classshaka_1_1MpdBuilder.html @@ -307,7 +307,7 @@ template<DashProfile profile> diff --git a/docs/dc/da3/buffer__callback__params_8h_source.html b/docs/dc/da3/buffer__callback__params_8h_source.html index bf062789d2..fe92aae536 100644 --- a/docs/dc/da3/buffer__callback__params_8h_source.html +++ b/docs/dc/da3/buffer__callback__params_8h_source.html @@ -100,7 +100,7 @@ $(function() { diff --git a/docs/dc/da3/es__parser__audio_8h_source.html b/docs/dc/da3/es__parser__audio_8h_source.html index 6f5ab32061..d5f63629d3 100644 --- a/docs/dc/da3/es__parser__audio_8h_source.html +++ b/docs/dc/da3/es__parser__audio_8h_source.html @@ -163,7 +163,7 @@ $(function() { diff --git a/docs/dc/da4/muxer__listener__factory_8h_source.html b/docs/dc/da4/muxer__listener__factory_8h_source.html index 0528170668..563ed24975 100644 --- a/docs/dc/da4/muxer__listener__factory_8h_source.html +++ b/docs/dc/da4/muxer__listener__factory_8h_source.html @@ -115,41 +115,44 @@ $(function() {
      55  bool dash_only = false;
      56  };
      57 
      -
      65  MuxerListenerFactory(bool output_media_info,
      -
      66  MpdNotifier* mpd_notifier,
      -
      67  hls::HlsNotifier* hls_notifier);
      -
      68 
      -
      70  std::unique_ptr<MuxerListener> CreateListener(const StreamData& stream);
      -
      71 
      -
      74  std::unique_ptr<MuxerListener> CreateHlsListener(const StreamData& stream);
      +
      68  MuxerListenerFactory(bool output_media_info,
      +
      69  bool use_segment_list,
      +
      70  MpdNotifier* mpd_notifier,
      +
      71  hls::HlsNotifier* hls_notifier);
      +
      72 
      +
      74  std::unique_ptr<MuxerListener> CreateListener(const StreamData& stream);
      75 
      -
      76  private:
      - -
      78  MuxerListenerFactory operator=(const MuxerListenerFactory&) = delete;
      +
      78  std::unique_ptr<MuxerListener> CreateHlsListener(const StreamData& stream);
      79 
      -
      80  bool output_media_info_;
      -
      81  MpdNotifier* mpd_notifier_;
      -
      82  hls::HlsNotifier* hls_notifier_;
      +
      80  private:
      + +
      82  MuxerListenerFactory operator=(const MuxerListenerFactory&) = delete;
      83 
      -
      84  // A counter to track which stream we are on.
      -
      85  int stream_index_ = 0;
      -
      86 };
      -
      87 } // namespace media
      -
      88 } // namespace shaka
      -
      89 
      -
      90 #endif // PACKAGER_MEDIA_EVENT_MUXER_LISTENER_FACTORY_H_
      +
      84  bool output_media_info_;
      +
      85  MpdNotifier* mpd_notifier_;
      +
      86  hls::HlsNotifier* hls_notifier_;
      +
      87 
      +
      89  bool use_segment_list_;
      +
      90 
      +
      91  // A counter to track which stream we are on.
      +
      92  int stream_index_ = 0;
      +
      93 };
      +
      94 } // namespace media
      +
      95 } // namespace shaka
      +
      96 
      +
      97 #endif // PACKAGER_MEDIA_EVENT_MUXER_LISTENER_FACTORY_H_
      -
      std::unique_ptr< MuxerListener > CreateHlsListener(const StreamData &stream)
      -
      std::unique_ptr< MuxerListener > CreateListener(const StreamData &stream)
      Create a listener for a stream.
      -
      MuxerListenerFactory(bool output_media_info, MpdNotifier *mpd_notifier, hls::HlsNotifier *hls_notifier)
      +
      std::unique_ptr< MuxerListener > CreateHlsListener(const StreamData &stream)
      +
      std::unique_ptr< MuxerListener > CreateListener(const StreamData &stream)
      Create a listener for a stream.
      +
      MuxerListenerFactory(bool output_media_info, bool use_segment_list, MpdNotifier *mpd_notifier, hls::HlsNotifier *hls_notifier)
      All the methods that are virtual are virtual for mocking.
      diff --git a/docs/dc/da6/classshaka_1_1media_1_1ContentEncoding.html b/docs/dc/da6/classshaka_1_1media_1_1ContentEncoding.html index c36ab95f3e..1b583f9fdc 100644 --- a/docs/dc/da6/classshaka_1_1media_1_1ContentEncoding.html +++ b/docs/dc/da6/classshaka_1_1media_1_1ContentEncoding.html @@ -189,7 +189,7 @@ Static Public Attributes diff --git a/docs/dc/dbf/box__buffer_8h_source.html b/docs/dc/dbf/box__buffer_8h_source.html index 50472fbf15..589742079e 100644 --- a/docs/dc/dbf/box__buffer_8h_source.html +++ b/docs/dc/dbf/box__buffer_8h_source.html @@ -288,7 +288,7 @@ $(function() { 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 cdc682186d..58ccfa9c4f 100644 --- a/docs/dc/dc1/classshaka_1_1xml_1_1RepresentationXmlNode-members.html +++ b/docs/dc/dc1/classshaka_1_1xml_1_1RepresentationXmlNode-members.html @@ -82,7 +82,7 @@ $(function() { AddLiveOnlyInfo(const MediaInfo &media_info, const std::list< SegmentInfo > &segment_infos, uint32_t start_number) WARN_UNUSED_RESULTshaka::xml::RepresentationXmlNode AddSupplementalProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULTshaka::xml::RepresentationBaseXmlNode AddVideoInfo(const MediaInfo::VideoInfo &video_info, bool set_width, bool set_height, bool set_frame_rate) WARN_UNUSED_RESULTshaka::xml::RepresentationXmlNode - AddVODOnlyInfo(const MediaInfo &media_info) WARN_UNUSED_RESULTshaka::xml::RepresentationXmlNode + AddVODOnlyInfo(const MediaInfo &media_info, bool use_segment_list, double target_segment_duration) WARN_UNUSED_RESULTshaka::xml::RepresentationXmlNode ExtractReferencedNamespaces() constshaka::xml::XmlNode GetAttribute(const std::string &name, std::string *value) constshaka::xml::XmlNode operator=(XmlNode &&) (defined in shaka::xml::XmlNode)shaka::xml::XmlNode @@ -102,7 +102,7 @@ $(function() { diff --git a/docs/dc/dc2/classshaka_1_1media_1_1mp2t_1_1EsParserAudio-members.html b/docs/dc/dc2/classshaka_1_1media_1_1mp2t_1_1EsParserAudio-members.html index 3bb6baab9c..33f12bbe68 100644 --- a/docs/dc/dc2/classshaka_1_1media_1_1mp2t_1_1EsParserAudio-members.html +++ b/docs/dc/dc2/classshaka_1_1media_1_1mp2t_1_1EsParserAudio-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/dc/dca/classshaka_1_1media_1_1WebMListParser.html b/docs/dc/dca/classshaka_1_1media_1_1WebMListParser.html index 738e57ab97..5b88dcebb1 100644 --- a/docs/dc/dca/classshaka_1_1media_1_1WebMListParser.html +++ b/docs/dc/dca/classshaka_1_1media_1_1WebMListParser.html @@ -127,7 +127,7 @@ void Definition at line 722 of file webm_parser.cc.

      +

      Definition at line 728 of file webm_parser.cc.

      @@ -148,7 +148,7 @@ void 
      Returns
      true if the entire list has been parsed.
      -

      Definition at line 822 of file webm_parser.cc.

      +

      Definition at line 828 of file webm_parser.cc.

      @@ -183,7 +183,7 @@ void Definition at line 738 of file webm_parser.cc.

      +

      Definition at line 744 of file webm_parser.cc.

      @@ -194,7 +194,7 @@ void  diff --git a/docs/dc/dd8/structshaka_1_1media_1_1CueEvent-members.html b/docs/dc/dd8/structshaka_1_1media_1_1CueEvent-members.html index 527982643c..805e86a50a 100644 --- a/docs/dc/dd8/structshaka_1_1media_1_1CueEvent-members.html +++ b/docs/dc/dd8/structshaka_1_1media_1_1CueEvent-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/dc/dd9/rsa__key_8cc_source.html b/docs/dc/dd9/rsa__key_8cc_source.html index e3829689a8..efcfbb7649 100644 --- a/docs/dc/dd9/rsa__key_8cc_source.html +++ b/docs/dc/dd9/rsa__key_8cc_source.html @@ -320,7 +320,7 @@ $(function() { 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 31f0294922..6818ff290d 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 @@ -160,7 +160,7 @@ Additional Inherited Members diff --git a/docs/dc/de1/structshaka_1_1SegmentInfo.html b/docs/dc/de1/structshaka_1_1SegmentInfo.html index 3ab7506512..a7f210be63 100644 --- a/docs/dc/de1/structshaka_1_1SegmentInfo.html +++ b/docs/dc/de1/structshaka_1_1SegmentInfo.html @@ -97,7 +97,7 @@ int 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 4b876cb03a..86aa7fec61 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 @@ -91,7 +91,7 @@ $(function() { 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 e50d150b84..886a4fbc3b 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 @@ -122,7 +122,7 @@ $(function() { diff --git a/docs/dc/dec/ts__section__pmt_8cc_source.html b/docs/dc/dec/ts__section__pmt_8cc_source.html index bdce242ec5..49128e7983 100644 --- a/docs/dc/dec/ts__section__pmt_8cc_source.html +++ b/docs/dc/dec/ts__section__pmt_8cc_source.html @@ -210,7 +210,7 @@ $(function() { diff --git a/docs/dc/df0/classshaka_1_1media_1_1ClosureThread.html b/docs/dc/df0/classshaka_1_1media_1_1ClosureThread.html index 3536dd6a62..b7e25fb5b8 100644 --- a/docs/dc/df0/classshaka_1_1media_1_1ClosureThread.html +++ b/docs/dc/df0/classshaka_1_1media_1_1ClosureThread.html @@ -157,7 +157,7 @@ void  diff --git a/docs/dc/df0/structshaka_1_1TestParams-members.html b/docs/dc/df0/structshaka_1_1TestParams-members.html index b6468d8622..51e4c77f80 100644 --- a/docs/dc/df0/structshaka_1_1TestParams-members.html +++ b/docs/dc/df0/structshaka_1_1TestParams-members.html @@ -78,7 +78,7 @@ $(function() { 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 08969e02cf..3a581cdd27 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 @@ -109,7 +109,7 @@ $(function() { 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 8f2879d615..c78b69e896 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 @@ -104,7 +104,7 @@ $(function() { diff --git a/docs/dc/df8/closure__thread_8h_source.html b/docs/dc/df8/closure__thread_8h_source.html index fa2d5e6a64..3a899bcbd7 100644 --- a/docs/dc/df8/closure__thread_8h_source.html +++ b/docs/dc/df8/closure__thread_8h_source.html @@ -110,7 +110,7 @@ $(function() { diff --git a/docs/dd/d03/structshaka_1_1media_1_1SegmentEventInfo.html b/docs/dd/d03/structshaka_1_1media_1_1SegmentEventInfo.html index acd6fc2fde..601cd4bc40 100644 --- a/docs/dd/d03/structshaka_1_1media_1_1SegmentEventInfo.html +++ b/docs/dd/d03/structshaka_1_1media_1_1SegmentEventInfo.html @@ -94,7 +94,7 @@ uint64_t segment_file_size diff --git a/docs/dd/d05/encryption__config_8h_source.html b/docs/dd/d05/encryption__config_8h_source.html index 3d7faf2b1d..f3272830f2 100644 --- a/docs/dd/d05/encryption__config_8h_source.html +++ b/docs/dd/d05/encryption__config_8h_source.html @@ -103,7 +103,7 @@ $(function() { 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 34d4180a3b..4e8f6482ca 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 @@ -161,7 +161,7 @@ uint32_t flags = 0 diff --git a/docs/dd/d0c/classshaka_1_1ThreadedIoFile.html b/docs/dd/d0c/classshaka_1_1ThreadedIoFile.html index 287faf3dce..6f5818f784 100644 --- a/docs/dd/d0c/classshaka_1_1ThreadedIoFile.html +++ b/docs/dd/d0c/classshaka_1_1ThreadedIoFile.html @@ -435,7 +435,7 @@ Additional Inherited Members diff --git a/docs/dd/d10/muxer__factory_8h_source.html b/docs/dd/d10/muxer__factory_8h_source.html index ce3d6ed23a..cee9010c97 100644 --- a/docs/dd/d10/muxer__factory_8h_source.html +++ b/docs/dd/d10/muxer__factory_8h_source.html @@ -134,7 +134,7 @@ $(function() { diff --git a/docs/dd/d11/mpd__builder_8cc_source.html b/docs/dd/d11/mpd__builder_8cc_source.html index 572ba82721..2f2fc7bfaa 100644 --- a/docs/dd/d11/mpd__builder_8cc_source.html +++ b/docs/dd/d11/mpd__builder_8cc_source.html @@ -528,7 +528,7 @@ $(function() { diff --git a/docs/dd/d12/mpd__writer_8cc_source.html b/docs/dd/d12/mpd__writer_8cc_source.html index 4abb9bba97..81ed60b655 100644 --- a/docs/dd/d12/mpd__writer_8cc_source.html +++ b/docs/dd/d12/mpd__writer_8cc_source.html @@ -176,7 +176,7 @@ $(function() { 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 9b09761fd0..741d8572bd 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 @@ -169,7 +169,7 @@ Additional Inherited Members diff --git a/docs/dd/d14/job__manager_8cc_source.html b/docs/dd/d14/job__manager_8cc_source.html index 0b80065f86..3dc58f098d 100644 --- a/docs/dd/d14/job__manager_8cc_source.html +++ b/docs/dd/d14/job__manager_8cc_source.html @@ -189,7 +189,7 @@ $(function() { diff --git a/docs/dd/d17/classshaka_1_1media_1_1Demuxer.html b/docs/dd/d17/classshaka_1_1media_1_1Demuxer.html index fd2eedd482..eeeb4cdffc 100644 --- a/docs/dd/d17/classshaka_1_1media_1_1Demuxer.html +++ b/docs/dd/d17/classshaka_1_1media_1_1Demuxer.html @@ -487,7 +487,7 @@ static Status diff --git a/docs/dd/d18/av1__parser_8h_source.html b/docs/dd/d18/av1__parser_8h_source.html index 869819ae39..bccb4287a5 100644 --- a/docs/dd/d18/av1__parser_8h_source.html +++ b/docs/dd/d18/av1__parser_8h_source.html @@ -354,7 +354,7 @@ $(function() { diff --git a/docs/dd/d19/video__stream__info_8cc_source.html b/docs/dd/d19/video__stream__info_8cc_source.html index 3b3693cf32..aeb4514066 100644 --- a/docs/dd/d19/video__stream__info_8cc_source.html +++ b/docs/dd/d19/video__stream__info_8cc_source.html @@ -179,7 +179,7 @@ $(function() { diff --git a/docs/dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html b/docs/dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html index 2b8d007b19..5ecfce9fe5 100644 --- a/docs/dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html +++ b/docs/dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html @@ -927,7 +927,7 @@ bool is_dvs () const diff --git a/docs/dd/d20/cue__alignment__handler_8h_source.html b/docs/dd/d20/cue__alignment__handler_8h_source.html index cc8d12c30c..9a49a7953a 100644 --- a/docs/dd/d20/cue__alignment__handler_8h_source.html +++ b/docs/dd/d20/cue__alignment__handler_8h_source.html @@ -162,7 +162,7 @@ $(function() { diff --git a/docs/dd/d30/wvm__media__parser_8cc_source.html b/docs/dd/d30/wvm__media__parser_8cc_source.html index 4ba5180fe7..b3010b0346 100644 --- a/docs/dd/d30/wvm__media__parser_8cc_source.html +++ b/docs/dd/d30/wvm__media__parser_8cc_source.html @@ -1251,7 +1251,7 @@ $(function() { diff --git a/docs/dd/d3a/gflags__hex__bytes_8h_source.html b/docs/dd/d3a/gflags__hex__bytes_8h_source.html index a09c95c8b0..72e06d5b32 100644 --- a/docs/dd/d3a/gflags__hex__bytes_8h_source.html +++ b/docs/dd/d3a/gflags__hex__bytes_8h_source.html @@ -123,7 +123,7 @@ $(function() { diff --git a/docs/dd/d3b/mp4_2segmenter_8h_source.html b/docs/dd/d3b/mp4_2segmenter_8h_source.html index f023052606..9c3cbdf05e 100644 --- a/docs/dd/d3b/mp4_2segmenter_8h_source.html +++ b/docs/dd/d3b/mp4_2segmenter_8h_source.html @@ -216,7 +216,7 @@ $(function() { diff --git a/docs/dd/d3e/callback__file_8cc_source.html b/docs/dd/d3e/callback__file_8cc_source.html index 29a6dcbe25..925c69ab49 100644 --- a/docs/dd/d3e/callback__file_8cc_source.html +++ b/docs/dd/d3e/callback__file_8cc_source.html @@ -148,14 +148,14 @@ $(function() {
      bool Flush() override
      Define an abstract file interface.
      Definition: file.h:27
      const std::string & file_name() const
      Definition: file.h:95
      -
      static bool ParseCallbackFileName(const std::string &callback_file_name, const BufferCallbackParams **callback_params, std::string *name)
      Definition: file.cc:409
      +
      static bool ParseCallbackFileName(const std::string &callback_file_name, const BufferCallbackParams **callback_params, std::string *name)
      Definition: file.cc:412
      All the methods that are virtual are virtual for mocking.
      std::function< int64_t(const std::string &name, void *buffer, uint64_t size)> read_func
      std::function< int64_t(const std::string &name, const void *buffer, uint64_t size)> write_func
      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 0dc32ce11d..e653bc5019 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 @@ -163,7 +163,7 @@ Additional Inherited Members diff --git a/docs/dd/d40/classshaka_1_1CallbackFile.html b/docs/dd/d40/classshaka_1_1CallbackFile.html index fc7b8400ed..1f765b30a1 100644 --- a/docs/dd/d40/classshaka_1_1CallbackFile.html +++ b/docs/dd/d40/classshaka_1_1CallbackFile.html @@ -461,7 +461,7 @@ Additional Inherited Members diff --git a/docs/dd/d42/encryptor_8h_source.html b/docs/dd/d42/encryptor_8h_source.html index 8f0a3730e0..f9ba39a694 100644 --- a/docs/dd/d42/encryptor_8h_source.html +++ b/docs/dd/d42/encryptor_8h_source.html @@ -104,7 +104,7 @@ $(function() { diff --git a/docs/dd/d46/webm__parser_8h_source.html b/docs/dd/d46/webm__parser_8h_source.html index 7c3e4ded08..970701f469 100644 --- a/docs/dd/d46/webm__parser_8h_source.html +++ b/docs/dd/d46/webm__parser_8h_source.html @@ -201,16 +201,16 @@ $(function() {
      162 
      163 #endif // PACKAGER_MEDIA_FORMATS_WEBM_WEBM_PARSER_H_
      -
      void Reset()
      Resets the state of the parser so it can start parsing a new list.
      Definition: webm_parser.cc:733
      -
      WebMListParser(int id, WebMParserClient *client)
      Definition: webm_parser.cc:722
      -
      int Parse(const uint8_t *buf, int size)
      Definition: webm_parser.cc:738
      - +
      void Reset()
      Resets the state of the parser so it can start parsing a new list.
      Definition: webm_parser.cc:739
      +
      WebMListParser(int id, WebMParserClient *client)
      Definition: webm_parser.cc:728
      +
      int Parse(const uint8_t *buf, int size)
      Definition: webm_parser.cc:744
      +
      All the methods that are virtual are virtual for mocking.
      diff --git a/docs/dd/d4b/classshaka_1_1media_1_1SLConfigDescriptor-members.html b/docs/dd/d4b/classshaka_1_1media_1_1SLConfigDescriptor-members.html index e511ef4257..7e04f10aa0 100644 --- a/docs/dd/d4b/classshaka_1_1media_1_1SLConfigDescriptor-members.html +++ b/docs/dd/d4b/classshaka_1_1media_1_1SLConfigDescriptor-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/dd/d4b/event__info_8h_source.html b/docs/dd/d4b/event__info_8h_source.html index 7274c52ec4..334b991ff9 100644 --- a/docs/dd/d4b/event__info_8h_source.html +++ b/docs/dd/d4b/event__info_8h_source.html @@ -133,7 +133,7 @@ $(function() { 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 86d60db163..906530e01a 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 @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/dd/d4e/classshaka_1_1Period-members.html b/docs/dd/d4e/classshaka_1_1Period-members.html index 39daddb9c5..1921811c33 100644 --- a/docs/dd/d4e/classshaka_1_1Period-members.html +++ b/docs/dd/d4e/classshaka_1_1Period-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/dd/d4f/classshaka_1_1hls_1_1SimpleHlsNotifier-members.html b/docs/dd/d4f/classshaka_1_1hls_1_1SimpleHlsNotifier-members.html index 22989ab778..62048d6261 100644 --- a/docs/dd/d4f/classshaka_1_1hls_1_1SimpleHlsNotifier-members.html +++ b/docs/dd/d4f/classshaka_1_1hls_1_1SimpleHlsNotifier-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/dd/d51/structshaka_1_1PlayReadyEncryptionParams-members.html b/docs/dd/d51/structshaka_1_1PlayReadyEncryptionParams-members.html index 885a930df9..f1846bb058 100644 --- a/docs/dd/d51/structshaka_1_1PlayReadyEncryptionParams-members.html +++ b/docs/dd/d51/structshaka_1_1PlayReadyEncryptionParams-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/dd/d53/dovi__decoder__configuration__record_8cc_source.html b/docs/dd/d53/dovi__decoder__configuration__record_8cc_source.html index d7fabdd3fa..f99824c59c 100644 --- a/docs/dd/d53/dovi__decoder__configuration__record_8cc_source.html +++ b/docs/dd/d53/dovi__decoder__configuration__record_8cc_source.html @@ -115,7 +115,7 @@ $(function() { 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 d40bfad9a0..4469a6af3e 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 @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/dd/d54/widevine__encryption__flags_8h_source.html b/docs/dd/d54/widevine__encryption__flags_8h_source.html index 96bf7da8c0..c4f02045f5 100644 --- a/docs/dd/d54/widevine__encryption__flags_8h_source.html +++ b/docs/dd/d54/widevine__encryption__flags_8h_source.html @@ -112,7 +112,7 @@ $(function() { diff --git a/docs/dd/d58/bit__writer_8cc_source.html b/docs/dd/d58/bit__writer_8cc_source.html index 3f5ae444ff..a01f7be4d2 100644 --- a/docs/dd/d58/bit__writer_8cc_source.html +++ b/docs/dd/d58/bit__writer_8cc_source.html @@ -118,7 +118,7 @@ $(function() { diff --git a/docs/dd/d58/crypto__params_8h_source.html b/docs/dd/d58/crypto__params_8h_source.html index 0c480fb472..9be2dd378b 100644 --- a/docs/dd/d58/crypto__params_8h_source.html +++ b/docs/dd/d58/crypto__params_8h_source.html @@ -287,7 +287,7 @@ $(function() { 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 83526cdfc3..1738fcdfe1 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 @@ -89,7 +89,7 @@ $(function() { 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 7711fe32d4..55b6a6e10f 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/dd/d5e/structshaka_1_1media_1_1TextSettings.html b/docs/dd/d5e/structshaka_1_1media_1_1TextSettings.html index 31222b2169..94b7b99000 100644 --- a/docs/dd/d5e/structshaka_1_1media_1_1TextSettings.html +++ b/docs/dd/d5e/structshaka_1_1media_1_1TextSettings.html @@ -189,7 +189,7 @@ TextAlignment  diff --git a/docs/dd/d60/raw__key__source_8h_source.html b/docs/dd/d60/raw__key__source_8h_source.html index 2ea3fb9e20..f39fa6f355 100644 --- a/docs/dd/d60/raw__key__source_8h_source.html +++ b/docs/dd/d60/raw__key__source_8h_source.html @@ -133,7 +133,7 @@ $(function() { 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 25edf1d4bd..a4cc6b5dfc 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/dd/d65/vp8__parser_8h_source.html b/docs/dd/d65/vp8__parser_8h_source.html index ea1ea6ee85..3b32246a5c 100644 --- a/docs/dd/d65/vp8__parser_8h_source.html +++ b/docs/dd/d65/vp8__parser_8h_source.html @@ -119,7 +119,7 @@ $(function() { 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 7164e0c8c8..a367cf947f 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 @@ -220,7 +220,7 @@ $(function() { 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 68e9d66a69..762d08bb9b 100644 --- a/docs/dd/d6e/classshaka_1_1media_1_1H265VideoSliceHeaderParser-members.html +++ b/docs/dd/d6e/classshaka_1_1media_1_1H265VideoSliceHeaderParser-members.html @@ -82,7 +82,7 @@ $(function() { 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 2b9b06ae67..5d1fbff3ca 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 @@ -157,7 +157,7 @@ Additional Inherited Members diff --git a/docs/dd/d74/classshaka_1_1media_1_1MediaHandlerGraphTestBase-members.html b/docs/dd/d74/classshaka_1_1media_1_1MediaHandlerGraphTestBase-members.html index 3b94d0de63..918d55ed94 100644 --- a/docs/dd/d74/classshaka_1_1media_1_1MediaHandlerGraphTestBase-members.html +++ b/docs/dd/d74/classshaka_1_1media_1_1MediaHandlerGraphTestBase-members.html @@ -98,7 +98,7 @@ $(function() { diff --git a/docs/dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html b/docs/dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html index 6e24f66cb1..ab5a1aef05 100644 --- a/docs/dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html +++ b/docs/dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html @@ -495,7 +495,7 @@ Public Member Functions diff --git a/docs/dd/d7a/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord-members.html b/docs/dd/d7a/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord-members.html index fc7f15eb0f..c184b35714 100644 --- a/docs/dd/d7a/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord-members.html +++ b/docs/dd/d7a/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/dd/d7a/classshaka_1_1media_1_1MuxerListener.html b/docs/dd/d7a/classshaka_1_1media_1_1MuxerListener.html index b2b6c80a27..470adeeaf2 100644 --- a/docs/dd/d7a/classshaka_1_1media_1_1MuxerListener.html +++ b/docs/dd/d7a/classshaka_1_1media_1_1MuxerListener.html @@ -527,7 +527,7 @@ Public Member Functions diff --git a/docs/dd/d80/media__sample_8h_source.html b/docs/dd/d80/media__sample_8h_source.html index 822e883f9b..147b9c75c1 100644 --- a/docs/dd/d80/media__sample_8h_source.html +++ b/docs/dd/d80/media__sample_8h_source.html @@ -247,7 +247,7 @@ $(function() { diff --git a/docs/dd/d87/memory__file_8cc_source.html b/docs/dd/d87/memory__file_8cc_source.html index fcf62eb52a..100f8d653b 100644 --- a/docs/dd/d87/memory__file_8cc_source.html +++ b/docs/dd/d87/memory__file_8cc_source.html @@ -267,7 +267,7 @@ $(function() { diff --git a/docs/dd/d88/pes__packet__generator_8h_source.html b/docs/dd/d88/pes__packet__generator_8h_source.html index 76fb8131d0..ac004d975d 100644 --- a/docs/dd/d88/pes__packet__generator_8h_source.html +++ b/docs/dd/d88/pes__packet__generator_8h_source.html @@ -152,7 +152,7 @@ $(function() { diff --git a/docs/dd/d8c/file__test__util_8h_source.html b/docs/dd/d8c/file__test__util_8h_source.html index 4b456d454f..c8f4c16027 100644 --- a/docs/dd/d8c/file__test__util_8h_source.html +++ b/docs/dd/d8c/file__test__util_8h_source.html @@ -118,7 +118,7 @@ $(function() { 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 f6e13284f9..c367593994 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 @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/dd/d95/classshaka_1_1ThreadedIoFile-members.html b/docs/dd/d95/classshaka_1_1ThreadedIoFile-members.html index e48b6bbfd9..ac135dd774 100644 --- a/docs/dd/d95/classshaka_1_1ThreadedIoFile-members.html +++ b/docs/dd/d95/classshaka_1_1ThreadedIoFile-members.html @@ -104,7 +104,7 @@ $(function() { 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 4597921cfa..cb105fcdb6 100644 --- a/docs/dd/d98/ts__packet__writer__util_8h_source.html +++ b/docs/dd/d98/ts__packet__writer__util_8h_source.html @@ -110,7 +110,7 @@ $(function() { diff --git a/docs/dd/d9a/audio__timestamp__helper_8h_source.html b/docs/dd/d9a/audio__timestamp__helper_8h_source.html index 42150a351b..173af6dcdb 100644 --- a/docs/dd/d9a/audio__timestamp__helper_8h_source.html +++ b/docs/dd/d9a/audio__timestamp__helper_8h_source.html @@ -150,7 +150,7 @@ $(function() { 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 1576349c9e..03cf946d8f 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 @@ -122,7 +122,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 e870db754d..21484099a9 100644 --- a/docs/dd/d9d/classshaka_1_1MpdNotifier-members.html +++ b/docs/dd/d9d/classshaka_1_1MpdNotifier-members.html @@ -84,11 +84,12 @@ $(function() { NotifyNewContainer(const MediaInfo &media_info, uint32_t *container_id)=0shaka::MpdNotifierpure virtual NotifyNewSegment(uint32_t container_id, uint64_t start_time, uint64_t duration, uint64_t size)=0shaka::MpdNotifierpure virtual NotifySampleDuration(uint32_t container_id, uint32_t sample_duration)=0shaka::MpdNotifierpure virtual - ~MpdNotifier() (defined in shaka::MpdNotifier)shaka::MpdNotifierinlinevirtual + use_segment_list() constshaka::MpdNotifierinline + ~MpdNotifier() (defined in shaka::MpdNotifier)shaka::MpdNotifierinlinevirtual diff --git a/docs/dd/da4/structshaka_1_1xml_1_1XmlDeleter.html b/docs/dd/da4/structshaka_1_1xml_1_1XmlDeleter.html index c241d33af0..1f975575fa 100644 --- a/docs/dd/da4/structshaka_1_1xml_1_1XmlDeleter.html +++ b/docs/dd/da4/structshaka_1_1xml_1_1XmlDeleter.html @@ -109,7 +109,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 6a766a14be..ae241a8efc 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 @@ -205,7 +205,7 @@ uint64_t duration () c 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 eaa375300f..f5e354428d 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 @@ -98,7 +98,7 @@ $(function() {
      27 
      29  public:
      -
      30  VodMediaInfoDumpMuxerListener(const std::string& output_file_name);
      +
      30  VodMediaInfoDumpMuxerListener(const std::string& output_file_name, bool use_segment_list);
      32 
      35  void OnEncryptionInfoReady(bool is_initial_encryption_info,
      @@ -127,43 +127,47 @@ $(function() {
      63  static bool WriteMediaInfoToFile(const MediaInfo& media_info,
      64  const std::string& output_file_path);
      65 
      -
      66  private:
      -
      67  std::string output_file_name_;
      -
      68  std::unique_ptr<MediaInfo> media_info_;
      -
      69  uint64_t max_bitrate_ = 0;
      -
      70 
      -
      71  bool is_encrypted_ = false;
      -
      72  // Storage for values passed to OnEncryptionInfoReady().
      -
      73  FourCC protection_scheme_;
      -
      74  std::vector<uint8_t> default_key_id_;
      -
      75  std::vector<ProtectionSystemSpecificInfo> key_system_info_;
      -
      76 
      -
      77  DISALLOW_COPY_AND_ASSIGN(VodMediaInfoDumpMuxerListener);
      -
      78 };
      -
      79 
      -
      80 } // namespace media
      -
      81 } // namespace shaka
      -
      82 
      -
      83 #endif // PACKAGER_MEDIA_EVENT_VOD_MEDIA_INFO_DUMP_MUXER_LISTENER_H_
      +
      66  void set_use_segment_list(bool value) {use_segment_list_ = value;}
      +
      67 
      +
      68  private:
      +
      69  std::string output_file_name_;
      +
      70  std::unique_ptr<MediaInfo> media_info_;
      +
      71  uint64_t max_bitrate_ = 0;
      +
      72 
      +
      73  bool is_encrypted_ = false;
      +
      74  // Storage for values passed to OnEncryptionInfoReady().
      +
      75  FourCC protection_scheme_;
      +
      76  std::vector<uint8_t> default_key_id_;
      +
      77  std::vector<ProtectionSystemSpecificInfo> key_system_info_;
      +
      78 
      +
      79  bool use_segment_list_ = false;
      +
      80 
      +
      81  DISALLOW_COPY_AND_ASSIGN(VodMediaInfoDumpMuxerListener);
      +
      82 };
      +
      83 
      +
      84 } // namespace media
      +
      85 } // namespace shaka
      +
      86 
      +
      87 #endif // PACKAGER_MEDIA_EVENT_VOD_MEDIA_INFO_DUMP_MUXER_LISTENER_H_
      Abstract class holds stream information.
      Definition: stream_info.h:65
      -
      void OnSampleDurationReady(uint32_t sample_duration) override
      -
      void OnMediaStart(const MuxerOptions &muxer_options, const StreamInfo &stream_info, uint32_t time_scale, ContainerType container_type) override
      -
      void OnEncryptionInfoReady(bool is_initial_encryption_info, FourCC protection_scheme, const std::vector< uint8_t > &default_key_id, const std::vector< uint8_t > &iv, const std::vector< ProtectionSystemSpecificInfo > &key_system_info) override
      -
      void OnMediaEnd(const MediaRanges &media_ranges, float duration_seconds) override
      -
      void OnNewSegment(const std::string &file_name, int64_t start_time, int64_t duration, uint64_t segment_file_size) override
      -
      static bool WriteMediaInfoToFile(const MediaInfo &media_info, const std::string &output_file_path)
      - -
      void OnCueEvent(int64_t timestamp, const std::string &cue_data) override
      -
      void OnKeyFrame(int64_t timestamp, uint64_t start_byte_offset, uint64_t size)
      +
      void OnSampleDurationReady(uint32_t sample_duration) override
      +
      void OnMediaStart(const MuxerOptions &muxer_options, const StreamInfo &stream_info, uint32_t time_scale, ContainerType container_type) override
      +
      void OnEncryptionInfoReady(bool is_initial_encryption_info, FourCC protection_scheme, const std::vector< uint8_t > &default_key_id, const std::vector< uint8_t > &iv, const std::vector< ProtectionSystemSpecificInfo > &key_system_info) override
      +
      void OnMediaEnd(const MediaRanges &media_ranges, float duration_seconds) override
      +
      void OnNewSegment(const std::string &file_name, int64_t start_time, int64_t duration, uint64_t segment_file_size) override
      +
      static bool WriteMediaInfoToFile(const MediaInfo &media_info, const std::string &output_file_path)
      + +
      void OnCueEvent(int64_t timestamp, const std::string &cue_data) override
      +
      void OnKeyFrame(int64_t timestamp, uint64_t start_byte_offset, uint64_t size)
      All the methods that are virtual are virtual for mocking.
      This structure contains the list of configuration options for Muxer.
      Definition: muxer_options.h:20
      diff --git a/docs/dd/dab/webm__muxer_8h_source.html b/docs/dd/dab/webm__muxer_8h_source.html index 931549b756..5e9080fc75 100644 --- a/docs/dd/dab/webm__muxer_8h_source.html +++ b/docs/dd/dab/webm__muxer_8h_source.html @@ -123,7 +123,7 @@ $(function() { 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 d5f4beb82e..5f512c23bf 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 @@ -88,7 +88,7 @@ $(function() { 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 f8ab3ff1f5..72a551097c 100644 --- a/docs/dd/db0/classshaka_1_1media_1_1WebMAudioClient-members.html +++ b/docs/dd/db0/classshaka_1_1media_1_1WebMAudioClient-members.html @@ -86,7 +86,7 @@ $(function() { 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 321e02ba2e..b6f48377b6 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 @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/dd/db5/packager_8h_source.html b/docs/dd/db5/packager_8h_source.html index 0c80ce9032..244eb0abaf 100644 --- a/docs/dd/db5/packager_8h_source.html +++ b/docs/dd/db5/packager_8h_source.html @@ -234,7 +234,7 @@ $(function() { diff --git a/docs/dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html b/docs/dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html index 4abf0bbd23..bf9fb85055 100644 --- a/docs/dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html +++ b/docs/dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html @@ -193,7 +193,7 @@ Protected Member Functions -

      Definition at line 286 of file xml_node.cc.

      +

      Definition at line 287 of file xml_node.cc.

      @@ -230,7 +230,7 @@ Protected Member Functions -

      Definition at line 280 of file xml_node.cc.

      +

      Definition at line 281 of file xml_node.cc.

      @@ -267,7 +267,7 @@ Protected Member Functions -

      Definition at line 274 of file xml_node.cc.

      +

      Definition at line 275 of file xml_node.cc.

      @@ -278,7 +278,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 ccf06a1012..5afc992ed1 100644 --- a/docs/dd/dbc/buffer__reader_8cc_source.html +++ b/docs/dd/dbc/buffer__reader_8cc_source.html @@ -192,7 +192,7 @@ $(function() { diff --git a/docs/dd/dbc/encryption__handler_8h_source.html b/docs/dd/dbc/encryption__handler_8h_source.html index a92d4e0720..bd23134ede 100644 --- a/docs/dd/dbc/encryption__handler_8h_source.html +++ b/docs/dd/dbc/encryption__handler_8h_source.html @@ -176,7 +176,7 @@ $(function() { diff --git a/docs/dd/dbd/structshaka_1_1media_1_1EncryptionKey.html b/docs/dd/dbd/structshaka_1_1media_1_1EncryptionKey.html index 8868d28382..c033c92113 100644 --- a/docs/dd/dbd/structshaka_1_1media_1_1EncryptionKey.html +++ b/docs/dd/dbd/structshaka_1_1media_1_1EncryptionKey.html @@ -102,7 +102,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 9873f3cd37..cc33181b87 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 @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/dd/dbf/webm__webvtt__parser_8h_source.html b/docs/dd/dbf/webm__webvtt__parser_8h_source.html index 8a26e17137..f008f47c81 100644 --- a/docs/dd/dbf/webm__webvtt__parser_8h_source.html +++ b/docs/dd/dbf/webm__webvtt__parser_8h_source.html @@ -127,7 +127,7 @@ $(function() { 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 1d10acaeed..9493fc363e 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 @@ -229,7 +229,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 786714d243..38fc02f504 100644 --- a/docs/dd/dc4/classshaka_1_1media_1_1ProducerConsumerQueue-members.html +++ b/docs/dd/dc4/classshaka_1_1media_1_1ProducerConsumerQueue-members.html @@ -87,7 +87,7 @@ $(function() { 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 0e78fc1861..024573607d 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 @@ -366,7 +366,7 @@ virtual Status&# diff --git a/docs/dd/dc7/classshaka_1_1media_1_1DvbSubParser-members.html b/docs/dd/dc7/classshaka_1_1media_1_1DvbSubParser-members.html index 901fd70234..7a2f28d7c3 100644 --- a/docs/dd/dc7/classshaka_1_1media_1_1DvbSubParser-members.html +++ b/docs/dd/dc7/classshaka_1_1media_1_1DvbSubParser-members.html @@ -82,7 +82,7 @@ $(function() { 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 3557b2e4e3..3451b77c26 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/dd/dd2/buffer__writer_8h_source.html b/docs/dd/dd2/buffer__writer_8h_source.html index c5ebfc1ad9..635f3c2223 100644 --- a/docs/dd/dd2/buffer__writer_8h_source.html +++ b/docs/dd/dd2/buffer__writer_8h_source.html @@ -144,7 +144,7 @@ $(function() { diff --git a/docs/dd/dd3/buffer__writer_8cc_source.html b/docs/dd/dd3/buffer__writer_8cc_source.html index 36af80e714..b796f4ca25 100644 --- a/docs/dd/dd3/buffer__writer_8cc_source.html +++ b/docs/dd/dd3/buffer__writer_8cc_source.html @@ -174,7 +174,7 @@ $(function() { 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 22fea2d60f..c938386523 100644 --- a/docs/dd/dd6/classshaka_1_1media_1_1WebMVideoClient-members.html +++ b/docs/dd/dd6/classshaka_1_1media_1_1WebMVideoClient-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/dd/dd8/mock__muxer__listener_8cc_source.html b/docs/dd/dd8/mock__muxer__listener_8cc_source.html index 20a4114666..a6da564fba 100644 --- a/docs/dd/dd8/mock__muxer__listener_8cc_source.html +++ b/docs/dd/dd8/mock__muxer__listener_8cc_source.html @@ -114,7 +114,7 @@ $(function() { 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 cb8d2d1746..a2de12ca01 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 @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/dd/ddb/structshaka_1_1media_1_1TextSubStreamInfo.html b/docs/dd/ddb/structshaka_1_1media_1_1TextSubStreamInfo.html index c34539b1f9..f9ba399e0d 100644 --- a/docs/dd/ddb/structshaka_1_1media_1_1TextSubStreamInfo.html +++ b/docs/dd/ddb/structshaka_1_1media_1_1TextSubStreamInfo.html @@ -91,7 +91,7 @@ std::string language diff --git a/docs/dd/ddc/trick__play__handler_8h_source.html b/docs/dd/ddc/trick__play__handler_8h_source.html index a5c031c535..e720da32d2 100644 --- a/docs/dd/ddc/trick__play__handler_8h_source.html +++ b/docs/dd/ddc/trick__play__handler_8h_source.html @@ -149,7 +149,7 @@ $(function() { diff --git a/docs/dd/de1/period_8cc_source.html b/docs/dd/de1/period_8cc_source.html index c72a0ccfa8..20598a975c 100644 --- a/docs/dd/de1/period_8cc_source.html +++ b/docs/dd/de1/period_8cc_source.html @@ -426,9 +426,9 @@ $(function() {
      base::Optional< xml::XmlNode > GetXml(bool output_period_duration)
      Definition: period.cc:123
      const std::list< AdaptationSet * > GetAdaptationSets() const
      Definition: period.cc:160
      -
      bool AddChild(XmlNode child) WARN_UNUSED_RESULT
      Definition: xml_node.cc:140
      -
      bool SetStringAttribute(const std::string &attribute_name, const std::string &attribute) WARN_UNUSED_RESULT
      Definition: xml_node.cc:183
      -
      bool SetId(uint32_t id) WARN_UNUSED_RESULT
      Definition: xml_node.cc:204
      +
      bool AddChild(XmlNode child) WARN_UNUSED_RESULT
      Definition: xml_node.cc:141
      +
      bool SetStringAttribute(const std::string &attribute_name, const std::string &attribute) WARN_UNUSED_RESULT
      Definition: xml_node.cc:184
      +
      bool SetId(uint32_t id) WARN_UNUSED_RESULT
      Definition: xml_node.cc:205
      All the methods that are virtual are virtual for mocking.
      void AddContentProtectionElements(const MediaInfo &media_info, Representation *parent)
      Definition: mpd_utils.cc:473
      Defines Mpd Options.
      Definition: mpd_options.h:25
      @@ -436,7 +436,7 @@ $(function() { diff --git a/docs/dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html b/docs/dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html index 4a3c335fcc..cc84d26b01 100644 --- a/docs/dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html +++ b/docs/dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html @@ -162,7 +162,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 8e478ff9a4..b81faee3f5 100644 --- a/docs/dd/de7/structshaka_1_1media_1_1H265Pps-members.html +++ b/docs/dd/de7/structshaka_1_1media_1_1H265Pps-members.html @@ -116,7 +116,7 @@ $(function() { diff --git a/docs/dd/de7/xml__node_8h_source.html b/docs/dd/de7/xml__node_8h_source.html index 0121c581a8..8981e9cf53 100644 --- a/docs/dd/de7/xml__node_8h_source.html +++ b/docs/dd/de7/xml__node_8h_source.html @@ -211,59 +211,63 @@ $(function() {
      198 
      203  bool AddAudioInfo(const MediaInfo::AudioInfo& audio_info) WARN_UNUSED_RESULT;
      204 
      -
      209  bool AddVODOnlyInfo(const MediaInfo& media_info) WARN_UNUSED_RESULT;
      -
      210 
      -
      213  bool AddLiveOnlyInfo(const MediaInfo& media_info,
      -
      214  const std::list<SegmentInfo>& segment_infos,
      -
      215  uint32_t start_number) WARN_UNUSED_RESULT;
      -
      216 
      -
      217  private:
      -
      218  // Add AudioChannelConfiguration element. Note that it is a required element
      -
      219  // for audio Representations.
      -
      220  bool AddAudioChannelInfo(const MediaInfo::AudioInfo& audio_info)
      -
      221  WARN_UNUSED_RESULT;
      -
      222 
      -
      223  // Add audioSamplingRate attribute to this element, if present.
      -
      224  bool AddAudioSamplingRateInfo(const MediaInfo::AudioInfo& audio_info)
      -
      225  WARN_UNUSED_RESULT;
      -
      226 
      -
      227  DISALLOW_COPY_AND_ASSIGN(RepresentationXmlNode);
      -
      228 };
      +
      211  // duration of media segments. This is only used when use_segment_list
      +
      212  // is true.
      +
      214  bool AddVODOnlyInfo(const MediaInfo& media_info,
      +
      215  bool use_segment_list,
      +
      216  double target_segment_duration) WARN_UNUSED_RESULT;
      +
      217 
      +
      220  bool AddLiveOnlyInfo(const MediaInfo& media_info,
      +
      221  const std::list<SegmentInfo>& segment_infos,
      +
      222  uint32_t start_number) WARN_UNUSED_RESULT;
      +
      223 
      +
      224  private:
      +
      225  // Add AudioChannelConfiguration element. Note that it is a required element
      +
      226  // for audio Representations.
      +
      227  bool AddAudioChannelInfo(const MediaInfo::AudioInfo& audio_info)
      +
      228  WARN_UNUSED_RESULT;
      229 
      -
      230 } // namespace xml
      -
      231 } // namespace shaka
      -
      232 #endif // MPD_BASE_XML_XML_NODE_H_
      +
      230  // Add audioSamplingRate attribute to this element, if present.
      +
      231  bool AddAudioSamplingRateInfo(const MediaInfo::AudioInfo& audio_info)
      +
      232  WARN_UNUSED_RESULT;
      +
      233 
      +
      234  DISALLOW_COPY_AND_ASSIGN(RepresentationXmlNode);
      +
      235 };
      +
      236 
      +
      237 } // namespace xml
      +
      238 } // namespace shaka
      +
      239 #endif // MPD_BASE_XML_XML_NODE_H_
      AdaptationSetType specified in MPD.
      Definition: xml_node.h:162
      -
      bool AddRoleElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:328
      -
      bool AddAccessibilityElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:322
      +
      bool AddRoleElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:329
      +
      bool AddAccessibilityElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:323
      -
      bool AddDescriptor(const std::string &descriptor_name, const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:286
      -
      bool AddSupplementalProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:274
      -
      bool AddEssentialProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:280
      +
      bool AddDescriptor(const std::string &descriptor_name, const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:287
      +
      bool AddSupplementalProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:275
      +
      bool AddEssentialProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:281
      RepresentationType in MPD.
      Definition: xml_node.h:182
      -
      bool AddVideoInfo(const MediaInfo::VideoInfo &video_info, bool set_width, bool set_height, bool set_frame_rate) WARN_UNUSED_RESULT
      Definition: xml_node.cc:337
      -
      bool AddVODOnlyInfo(const MediaInfo &media_info) WARN_UNUSED_RESULT
      Definition: xml_node.cc:379
      -
      bool AddLiveOnlyInfo(const MediaInfo &media_info, const std::list< SegmentInfo > &segment_infos, uint32_t start_number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:433
      -
      bool AddAudioInfo(const MediaInfo::AudioInfo &audio_info) WARN_UNUSED_RESULT
      Definition: xml_node.cc:374
      +
      bool AddVideoInfo(const MediaInfo::VideoInfo &video_info, bool set_width, bool set_height, bool set_frame_rate) WARN_UNUSED_RESULT
      Definition: xml_node.cc:338
      +
      bool AddLiveOnlyInfo(const MediaInfo &media_info, const std::list< SegmentInfo > &segment_infos, uint32_t start_number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:460
      +
      bool AddVODOnlyInfo(const MediaInfo &media_info, bool use_segment_list, double target_segment_duration) WARN_UNUSED_RESULT
      Definition: xml_node.cc:380
      +
      bool AddAudioInfo(const MediaInfo::AudioInfo &audio_info) WARN_UNUSED_RESULT
      Definition: xml_node.cc:375
      -
      bool AddChild(XmlNode child) WARN_UNUSED_RESULT
      Definition: xml_node.cc:140
      -
      std::set< std::string > ExtractReferencedNamespaces() const
      Definition: xml_node.cc:218
      -
      void AddContent(const std::string &content)
      Similar to SetContent, but appends to the end of existing content.
      Definition: xml_node.cc:208
      -
      void SetContent(const std::string &content)
      Definition: xml_node.cc:213
      -
      bool SetFloatingPointAttribute(const std::string &attribute_name, double number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:197
      -
      bool SetIntegerAttribute(const std::string &attribute_name, uint64_t number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:190
      -
      XmlNode(const std::string &name)
      Definition: xml_node.cc:129
      -
      bool SetStringAttribute(const std::string &attribute_name, const std::string &attribute) WARN_UNUSED_RESULT
      Definition: xml_node.cc:183
      -
      bool GetAttribute(const std::string &name, std::string *value) const
      Definition: xml_node.cc:248
      -
      bool SetId(uint32_t id) WARN_UNUSED_RESULT
      Definition: xml_node.cc:204
      -
      bool AddElements(const std::vector< Element > &elements) WARN_UNUSED_RESULT
      Adds Elements to this node using the Element struct.
      Definition: xml_node.cc:151
      -
      std::string ToString(const std::string &comment) const
      Definition: xml_node.cc:224
      +
      bool AddChild(XmlNode child) WARN_UNUSED_RESULT
      Definition: xml_node.cc:141
      +
      std::set< std::string > ExtractReferencedNamespaces() const
      Definition: xml_node.cc:219
      +
      void AddContent(const std::string &content)
      Similar to SetContent, but appends to the end of existing content.
      Definition: xml_node.cc:209
      +
      void SetContent(const std::string &content)
      Definition: xml_node.cc:214
      +
      bool SetFloatingPointAttribute(const std::string &attribute_name, double number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:198
      +
      bool SetIntegerAttribute(const std::string &attribute_name, uint64_t number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:191
      +
      XmlNode(const std::string &name)
      Definition: xml_node.cc:130
      +
      bool SetStringAttribute(const std::string &attribute_name, const std::string &attribute) WARN_UNUSED_RESULT
      Definition: xml_node.cc:184
      +
      bool GetAttribute(const std::string &name, std::string *value) const
      Definition: xml_node.cc:249
      +
      bool SetId(uint32_t id) WARN_UNUSED_RESULT
      Definition: xml_node.cc:205
      +
      bool AddElements(const std::vector< Element > &elements) WARN_UNUSED_RESULT
      Adds Elements to this node using the Element struct.
      Definition: xml_node.cc:152
      +
      std::string ToString(const std::string &comment) const
      Definition: xml_node.cc:225
      All the methods that are virtual are virtual for mocking.
      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 64f44bb337..f5711573f1 100644 --- a/docs/dd/de9/classshaka_1_1media_1_1MediaHandler-members.html +++ b/docs/dd/de9/classshaka_1_1media_1_1MediaHandler-members.html @@ -99,7 +99,7 @@ $(function() { diff --git a/docs/dd/de9/structshaka_1_1ChunkingParams-members.html b/docs/dd/de9/structshaka_1_1ChunkingParams-members.html index 64c78c438e..937e645062 100644 --- a/docs/dd/de9/structshaka_1_1ChunkingParams-members.html +++ b/docs/dd/de9/structshaka_1_1ChunkingParams-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/dd/dee/box__definitions_8cc_source.html b/docs/dd/dee/box__definitions_8cc_source.html index 3d04ed2e5a..3d9496accb 100644 --- a/docs/dd/dee/box__definitions_8cc_source.html +++ b/docs/dd/dee/box__definitions_8cc_source.html @@ -3159,7 +3159,7 @@ $(function() { 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 2a380f30b4..2cbf6e7e21 100644 --- a/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html +++ b/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html @@ -135,7 +135,7 @@ $(function() { diff --git a/docs/dd/df3/classshaka_1_1media_1_1PsshGenerator-members.html b/docs/dd/df3/classshaka_1_1media_1_1PsshGenerator-members.html index e83e07c186..0985f45f5a 100644 --- a/docs/dd/df3/classshaka_1_1media_1_1PsshGenerator-members.html +++ b/docs/dd/df3/classshaka_1_1media_1_1PsshGenerator-members.html @@ -80,7 +80,7 @@ $(function() { 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 a029eb3855..c96711ce08 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 @@ -193,7 +193,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 dc4d1880b7..bf68913f98 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 @@ -166,7 +166,7 @@ Additional Inherited Members diff --git a/docs/dd/df9/classshaka_1_1media_1_1PlayReadyPsshGenerator-members.html b/docs/dd/df9/classshaka_1_1media_1_1PlayReadyPsshGenerator-members.html index 967b5a0bce..70df0a15ab 100644 --- a/docs/dd/df9/classshaka_1_1media_1_1PlayReadyPsshGenerator-members.html +++ b/docs/dd/df9/classshaka_1_1media_1_1PlayReadyPsshGenerator-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/dd/dfd/structshaka_1_1AdCueGeneratorParams.html b/docs/dd/dfd/structshaka_1_1AdCueGeneratorParams.html index 669f0e8c38..6201dc2446 100644 --- a/docs/dd/dfd/structshaka_1_1AdCueGeneratorParams.html +++ b/docs/dd/dfd/structshaka_1_1AdCueGeneratorParams.html @@ -95,7 +95,7 @@ std::vector< C diff --git a/docs/dd/dff/classshaka_1_1media_1_1SubtitleComposer-members.html b/docs/dd/dff/classshaka_1_1media_1_1SubtitleComposer-members.html index 857b4e11e7..162003bb9e 100644 --- a/docs/dd/dff/classshaka_1_1media_1_1SubtitleComposer-members.html +++ b/docs/dd/dff/classshaka_1_1media_1_1SubtitleComposer-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/de/d00/ac3__header_8h_source.html b/docs/de/d00/ac3__header_8h_source.html index 58db198caa..a579703257 100644 --- a/docs/de/d00/ac3__header_8h_source.html +++ b/docs/de/d00/ac3__header_8h_source.html @@ -140,7 +140,7 @@ $(function() { diff --git a/docs/de/d03/text__padder_8cc_source.html b/docs/de/d03/text__padder_8cc_source.html index 5f028892c6..c389965bde 100644 --- a/docs/de/d03/text__padder_8cc_source.html +++ b/docs/de/d03/text__padder_8cc_source.html @@ -137,7 +137,7 @@ $(function() { diff --git a/docs/de/d0a/classshaka_1_1media_1_1SubsampleGenerator-members.html b/docs/de/d0a/classshaka_1_1media_1_1SubsampleGenerator-members.html index 1637261e29..f576781c00 100644 --- a/docs/de/d0a/classshaka_1_1media_1_1SubsampleGenerator-members.html +++ b/docs/de/d0a/classshaka_1_1media_1_1SubsampleGenerator-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/de/d0e/widevine__pssh__generator_8h_source.html b/docs/de/d0e/widevine__pssh__generator_8h_source.html index 5c58c2c9cf..20cfa8a510 100644 --- a/docs/de/d0e/widevine__pssh__generator_8h_source.html +++ b/docs/de/d0e/widevine__pssh__generator_8h_source.html @@ -118,7 +118,7 @@ $(function() { diff --git a/docs/de/d0f/local__file_8h_source.html b/docs/de/d0f/local__file_8h_source.html index 3616db1f29..1cdaafc6d5 100644 --- a/docs/de/d0f/local__file_8h_source.html +++ b/docs/de/d0f/local__file_8h_source.html @@ -133,7 +133,7 @@ $(function() { diff --git a/docs/de/d12/container__names_8h_source.html b/docs/de/d12/container__names_8h_source.html index 12e08b4c17..d9c17e4347 100644 --- a/docs/de/d12/container__names_8h_source.html +++ b/docs/de/d12/container__names_8h_source.html @@ -143,7 +143,7 @@ $(function() { diff --git a/docs/de/d13/ts__writer_8cc_source.html b/docs/de/d13/ts__writer_8cc_source.html index 4056bbd480..52e043e5ab 100644 --- a/docs/de/d13/ts__writer_8cc_source.html +++ b/docs/de/d13/ts__writer_8cc_source.html @@ -278,7 +278,7 @@ $(function() { 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 6a20eea698..2edf65165f 100644 --- a/docs/de/d16/classshaka_1_1media_1_1TextTrackConfig-members.html +++ b/docs/de/d16/classshaka_1_1media_1_1TextTrackConfig-members.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/de/d17/cluster__builder_8cc_source.html b/docs/de/d17/cluster__builder_8cc_source.html index 91b8bc4b85..c01c2a9f9b 100644 --- a/docs/de/d17/cluster__builder_8cc_source.html +++ b/docs/de/d17/cluster__builder_8cc_source.html @@ -329,7 +329,7 @@ $(function() { 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 e8dc02e350..80ca74b63d 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 @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/de/d1a/structshaka_1_1media_1_1mp4_1_1KeyFrameInfo-members.html b/docs/de/d1a/structshaka_1_1media_1_1mp4_1_1KeyFrameInfo-members.html index 07c852c467..58f5571766 100644 --- a/docs/de/d1a/structshaka_1_1media_1_1mp4_1_1KeyFrameInfo-members.html +++ b/docs/de/d1a/structshaka_1_1media_1_1mp4_1_1KeyFrameInfo-members.html @@ -78,7 +78,7 @@ $(function() { 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 b4390e83d8..38ce890047 100644 --- a/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html +++ b/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html @@ -313,7 +313,7 @@ $(function() { diff --git a/docs/de/d22/aes__pattern__cryptor_8cc_source.html b/docs/de/d22/aes__pattern__cryptor_8cc_source.html index 6814d1ccff..c44f581d35 100644 --- a/docs/de/d22/aes__pattern__cryptor_8cc_source.html +++ b/docs/de/d22/aes__pattern__cryptor_8cc_source.html @@ -177,7 +177,7 @@ $(function() { diff --git a/docs/de/d26/classshaka_1_1media_1_1Id3Tag.html b/docs/de/d26/classshaka_1_1media_1_1Id3Tag.html index 097def0ad0..1e8d108f98 100644 --- a/docs/de/d26/classshaka_1_1media_1_1Id3Tag.html +++ b/docs/de/d26/classshaka_1_1media_1_1Id3Tag.html @@ -206,7 +206,7 @@ Public Member Functions diff --git a/docs/de/d27/es__parser__audio_8cc_source.html b/docs/de/d27/es__parser__audio_8cc_source.html index dcd897785a..3fd62c0b46 100644 --- a/docs/de/d27/es__parser__audio_8cc_source.html +++ b/docs/de/d27/es__parser__audio_8cc_source.html @@ -343,7 +343,7 @@ $(function() { diff --git a/docs/de/d29/es__parser__dvb_8cc_source.html b/docs/de/d29/es__parser__dvb_8cc_source.html index 9226399126..c0092d7482 100644 --- a/docs/de/d29/es__parser__dvb_8cc_source.html +++ b/docs/de/d29/es__parser__dvb_8cc_source.html @@ -213,7 +213,7 @@ $(function() { 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 5d04288e9c..33c6d3d38d 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 @@ -175,7 +175,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 1db972c846..091c87dd6a 100644 --- a/docs/de/d33/classshaka_1_1media_1_1WebMTracksParser-members.html +++ b/docs/de/d33/classshaka_1_1media_1_1WebMTracksParser-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/de/d33/structshaka_1_1media_1_1H265Pps.html b/docs/de/d33/structshaka_1_1media_1_1H265Pps.html index 45d0f03bb1..7f98ff70d5 100644 --- a/docs/de/d33/structshaka_1_1media_1_1H265Pps.html +++ b/docs/de/d33/structshaka_1_1media_1_1H265Pps.html @@ -203,7 +203,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 c9ccdb24cb..d7bd37e468 100644 --- a/docs/de/d34/offset__byte__queue_8h_source.html +++ b/docs/de/d34/offset__byte__queue_8h_source.html @@ -126,7 +126,7 @@ $(function() { diff --git a/docs/de/d39/id3__tag_8cc_source.html b/docs/de/d39/id3__tag_8cc_source.html index 08de68061c..f9b8119913 100644 --- a/docs/de/d39/id3__tag_8cc_source.html +++ b/docs/de/d39/id3__tag_8cc_source.html @@ -179,7 +179,7 @@ $(function() { 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 abc59e0631..2440781d52 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 @@ -184,7 +184,7 @@ $(function() { diff --git a/docs/de/d3c/macros_8h_source.html b/docs/de/d3c/macros_8h_source.html index ea69383f12..b787398d69 100644 --- a/docs/de/d3c/macros_8h_source.html +++ b/docs/de/d3c/macros_8h_source.html @@ -126,7 +126,7 @@ $(function() { diff --git a/docs/de/d3e/buffer__reader_8h_source.html b/docs/de/d3e/buffer__reader_8h_source.html index 448caa4ee0..a09b21b04c 100644 --- a/docs/de/d3e/buffer__reader_8h_source.html +++ b/docs/de/d3e/buffer__reader_8h_source.html @@ -149,7 +149,7 @@ $(function() { 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 8d81ca9afb..0ac30754cc 100644 --- a/docs/de/d3e/classshaka_1_1media_1_1H264Parser-members.html +++ b/docs/de/d3e/classshaka_1_1media_1_1H264Parser-members.html @@ -88,7 +88,7 @@ $(function() { 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 5e24c115ce..b061abd6ba 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 @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/de/d49/classshaka_1_1media_1_1DecryptConfig.html b/docs/de/d49/classshaka_1_1media_1_1DecryptConfig.html index 51bdc86367..b4b1b2a909 100644 --- a/docs/de/d49/classshaka_1_1media_1_1DecryptConfig.html +++ b/docs/de/d49/classshaka_1_1media_1_1DecryptConfig.html @@ -299,7 +299,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 0646917d42..d9a197bd4b 100644 --- a/docs/de/d4a/muxer__listener__internal_8h_source.html +++ b/docs/de/d4a/muxer__listener__internal_8h_source.html @@ -107,25 +107,26 @@ $(function() {
      40 
      43 bool SetVodInformation(const MuxerListener::MediaRanges& media_ranges,
      44  float duration_seconds,
      -
      45  MediaInfo* media_info);
      -
      46 
      -
      54 void SetContentProtectionFields(
      -
      55  FourCC protection_scheme,
      -
      56  const std::vector<uint8_t>& default_key_id,
      -
      57  const std::vector<ProtectionSystemSpecificInfo>& key_system_info,
      -
      58  MediaInfo* media_info);
      -
      59 
      -
      62 std::string CreateUUIDString(const std::vector<uint8_t>& data);
      -
      63 
      -
      64 } // namespace internal
      -
      65 } // namespace media
      -
      66 } // namespace shaka
      -
      67 #endif // PACKAGER_MEDIA_EVENT_MUXER_LISTENER_INTERNAL_H_
      +
      45  bool use_segment_list,
      +
      46  MediaInfo* media_info);
      +
      47 
      +
      55 void SetContentProtectionFields(
      +
      56  FourCC protection_scheme,
      +
      57  const std::vector<uint8_t>& default_key_id,
      +
      58  const std::vector<ProtectionSystemSpecificInfo>& key_system_info,
      +
      59  MediaInfo* media_info);
      +
      60 
      +
      63 std::string CreateUUIDString(const std::vector<uint8_t>& data);
      +
      64 
      +
      65 } // namespace internal
      +
      66 } // namespace media
      +
      67 } // namespace shaka
      +
      68 #endif // PACKAGER_MEDIA_EVENT_MUXER_LISTENER_INTERNAL_H_
      All the methods that are virtual are virtual for mocking.
      diff --git a/docs/de/d52/classshaka_1_1Representation.html b/docs/de/d52/classshaka_1_1Representation.html index 8960484700..c306b24383 100644 --- a/docs/de/d52/classshaka_1_1Representation.html +++ b/docs/de/d52/classshaka_1_1Representation.html @@ -391,7 +391,7 @@ void set_media_info (c
      Returns
      true if successful, false otherwise.
      -

      Definition at line 298 of file representation.cc.

      +

      Definition at line 300 of file representation.cc.

      @@ -514,7 +514,7 @@ void set_media_info (c

      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 @width 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 286 of file representation.cc.

      +

      Definition at line 288 of file representation.cc.

      @@ -571,7 +571,7 @@ void set_media_info (c diff --git a/docs/de/d53/classshaka_1_1media_1_1FakeInputMediaHandler-members.html b/docs/de/d53/classshaka_1_1media_1_1FakeInputMediaHandler-members.html index 9a25c88a72..ba7466737e 100644 --- a/docs/de/d53/classshaka_1_1media_1_1FakeInputMediaHandler-members.html +++ b/docs/de/d53/classshaka_1_1media_1_1FakeInputMediaHandler-members.html @@ -98,7 +98,7 @@ $(function() { diff --git a/docs/de/d54/structshaka_1_1media_1_1mp4_1_1FlacSpecific.html b/docs/de/d54/structshaka_1_1media_1_1mp4_1_1FlacSpecific.html index 26bc984cb8..0204fe5ec9 100644 --- a/docs/de/d54/structshaka_1_1media_1_1mp4_1_1FlacSpecific.html +++ b/docs/de/d54/structshaka_1_1media_1_1mp4_1_1FlacSpecific.html @@ -163,7 +163,7 @@ Additional Inherited Members 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 5e4b013894..1dfe3e6f7b 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 @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/de/d5b/adts__header_8cc_source.html b/docs/de/d5b/adts__header_8cc_source.html index 8730ffda3e..5b22420727 100644 --- a/docs/de/d5b/adts__header_8cc_source.html +++ b/docs/de/d5b/adts__header_8cc_source.html @@ -214,7 +214,7 @@ $(function() { diff --git a/docs/de/d5c/mpd__flags_8h_source.html b/docs/de/d5c/mpd__flags_8h_source.html index b1bdee9805..04337b158d 100644 --- a/docs/de/d5c/mpd__flags_8h_source.html +++ b/docs/de/d5c/mpd__flags_8h_source.html @@ -94,12 +94,13 @@ $(function() {
      23 DECLARE_bool(allow_approximate_segment_timeline);
      24 DECLARE_bool(allow_codec_switching);
      25 DECLARE_bool(include_mspr_pro_for_playready);
      -
      26 
      -
      27 #endif // APP_MPD_FLAGS_H_
      +
      26 DECLARE_bool(dash_force_segment_list);
      +
      27 
      +
      28 #endif // APP_MPD_FLAGS_H_
      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 501a0f8ec9..13c2afd8b7 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 @@ -82,7 +82,7 @@ $(function() { 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 09d835041d..481408cb13 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 @@ -182,7 +182,7 @@ virtual void  diff --git a/docs/de/d69/single__thread__job__manager_8h_source.html b/docs/de/d69/single__thread__job__manager_8h_source.html index fbe2a674cf..1cd0efca93 100644 --- a/docs/de/d69/single__thread__job__manager_8h_source.html +++ b/docs/de/d69/single__thread__job__manager_8h_source.html @@ -108,7 +108,7 @@ $(function() { diff --git a/docs/de/d6c/mock__media__playlist_8h_source.html b/docs/de/d6c/mock__media__playlist_8h_source.html index c0a499ced6..d436b6807b 100644 --- a/docs/de/d6c/mock__media__playlist_8h_source.html +++ b/docs/de/d6c/mock__media__playlist_8h_source.html @@ -153,7 +153,7 @@ $(function() { 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 81efe74da0..757d029105 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 @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/de/d6e/classshaka_1_1media_1_1MockOutputMediaHandler-members.html b/docs/de/d6e/classshaka_1_1media_1_1MockOutputMediaHandler-members.html index 2fdcc2f4c2..e426df464d 100644 --- a/docs/de/d6e/classshaka_1_1media_1_1MockOutputMediaHandler-members.html +++ b/docs/de/d6e/classshaka_1_1media_1_1MockOutputMediaHandler-members.html @@ -98,7 +98,7 @@ $(function() { diff --git a/docs/de/d6e/language__utils_8h_source.html b/docs/de/d6e/language__utils_8h_source.html index d9647d49f6..6895a8ca43 100644 --- a/docs/de/d6e/language__utils_8h_source.html +++ b/docs/de/d6e/language__utils_8h_source.html @@ -99,7 +99,7 @@ $(function() { diff --git a/docs/de/d70/http__key__fetcher_8cc_source.html b/docs/de/d70/http__key__fetcher_8cc_source.html index 4b2f6d9f79..4711362ece 100644 --- a/docs/de/d70/http__key__fetcher_8cc_source.html +++ b/docs/de/d70/http__key__fetcher_8cc_source.html @@ -159,7 +159,7 @@ $(function() { diff --git a/docs/de/d75/mpeg1__header_8cc_source.html b/docs/de/d75/mpeg1__header_8cc_source.html index 6ac38b3b6f..4d86b9154b 100644 --- a/docs/de/d75/mpeg1__header_8cc_source.html +++ b/docs/de/d75/mpeg1__header_8cc_source.html @@ -333,7 +333,7 @@ $(function() { diff --git a/docs/de/d76/proto__json__util_8h_source.html b/docs/de/d76/proto__json__util_8h_source.html index 95d92336b4..197caaf950 100644 --- a/docs/de/d76/proto__json__util_8h_source.html +++ b/docs/de/d76/proto__json__util_8h_source.html @@ -102,7 +102,7 @@ $(function() { 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 e50b768090..fe44ce081b 100644 --- a/docs/de/d77/webm__content__encodings__client_8cc_source.html +++ b/docs/de/d77/webm__content__encodings__client_8cc_source.html @@ -339,7 +339,7 @@ $(function() { diff --git a/docs/de/d7b/mp4__media__parser_8h_source.html b/docs/de/d7b/mp4__media__parser_8h_source.html index f9dce5644a..daf2aac2d0 100644 --- a/docs/de/d7b/mp4__media__parser_8h_source.html +++ b/docs/de/d7b/mp4__media__parser_8h_source.html @@ -188,7 +188,7 @@ $(function() { 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 52f938ad33..e7e4cc3753 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 @@ -126,7 +126,7 @@ Additional Inherited Members diff --git a/docs/de/d7f/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf-members.html b/docs/de/d7f/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf-members.html index 2909003a0d..f2824274e3 100644 --- a/docs/de/d7f/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf-members.html +++ b/docs/de/d7f/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/de/d83/box__definitions__comparison_8h_source.html b/docs/de/d83/box__definitions__comparison_8h_source.html index fdf0c37c0d..20f8d0da9c 100644 --- a/docs/de/d83/box__definitions__comparison_8h_source.html +++ b/docs/de/d83/box__definitions__comparison_8h_source.html @@ -584,7 +584,7 @@ $(function() { diff --git a/docs/de/d85/classshaka_1_1media_1_1OriginHandler.html b/docs/de/d85/classshaka_1_1media_1_1OriginHandler.html index e2e576b24b..6cacdf2d9a 100644 --- a/docs/de/d85/classshaka_1_1media_1_1OriginHandler.html +++ b/docs/de/d85/classshaka_1_1media_1_1OriginHandler.html @@ -181,7 +181,7 @@ const std::map< size_t, std::pair< std::shared_ptr< 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 9c8fc9b79e..c10a9f01b6 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 @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/de/d88/tag_8cc_source.html b/docs/de/d88/tag_8cc_source.html index 6f8ba42612..4ca08c929e 100644 --- a/docs/de/d88/tag_8cc_source.html +++ b/docs/de/d88/tag_8cc_source.html @@ -138,7 +138,7 @@ $(function() { 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 021f76da2f..86c14c9750 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 @@ -92,7 +92,7 @@ $(function() { 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 2f0e3e18bf..1190089c8e 100644 --- a/docs/de/d93/classshaka_1_1media_1_1VP8Parser-members.html +++ b/docs/de/d93/classshaka_1_1media_1_1VP8Parser-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/de/da6/aes__encryptor__factory_8h_source.html b/docs/de/da6/aes__encryptor__factory_8h_source.html index c2f064705a..15d8ac796c 100644 --- a/docs/de/da6/aes__encryptor__factory_8h_source.html +++ b/docs/de/da6/aes__encryptor__factory_8h_source.html @@ -114,7 +114,7 @@ $(function() { diff --git a/docs/de/da9/structshaka_1_1Element.html b/docs/de/da9/structshaka_1_1Element.html index d1a64da14f..7428e20a9f 100644 --- a/docs/de/da9/structshaka_1_1Element.html +++ b/docs/de/da9/structshaka_1_1Element.html @@ -98,7 +98,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 609456494d..787b0fa9fd 100644 --- a/docs/de/dab/es__parser__h26x_8cc_source.html +++ b/docs/de/dab/es__parser__h26x_8cc_source.html @@ -424,7 +424,7 @@ $(function() { diff --git a/docs/de/dad/classshaka_1_1MemoryFile.html b/docs/de/dad/classshaka_1_1MemoryFile.html index 02ecdf825d..0f0ce51a9f 100644 --- a/docs/de/dad/classshaka_1_1MemoryFile.html +++ b/docs/de/dad/classshaka_1_1MemoryFile.html @@ -486,7 +486,7 @@ bool  diff --git a/docs/de/dad/validate__flag_8cc_source.html b/docs/de/dad/validate__flag_8cc_source.html index 827ac717fe..a083bd293b 100644 --- a/docs/de/dad/validate__flag_8cc_source.html +++ b/docs/de/dad/validate__flag_8cc_source.html @@ -98,7 +98,7 @@ $(function() { diff --git a/docs/de/db2/classshaka_1_1media_1_1MockOutputMediaHandler.html b/docs/de/db2/classshaka_1_1media_1_1MockOutputMediaHandler.html index 9231dda756..fdf010abd3 100644 --- a/docs/de/db2/classshaka_1_1media_1_1MockOutputMediaHandler.html +++ b/docs/de/db2/classshaka_1_1media_1_1MockOutputMediaHandler.html @@ -174,7 +174,7 @@ const std::map< size_t, std::pair< std::shared_ptr< diff --git a/docs/de/db3/classshaka_1_1media_1_1TextTrackConfig.html b/docs/de/db3/classshaka_1_1media_1_1TextTrackConfig.html index bd37ef603c..c4baf4a9d5 100644 --- a/docs/de/db3/classshaka_1_1media_1_1TextTrackConfig.html +++ b/docs/de/db3/classshaka_1_1media_1_1TextTrackConfig.html @@ -104,7 +104,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 e1d9b66925..37b55c3910 100644 --- a/docs/de/db4/classshaka_1_1media_1_1H26xBitReader.html +++ b/docs/de/db4/classshaka_1_1media_1_1H26xBitReader.html @@ -113,7 +113,7 @@ size_t NumEmulationPrevent diff --git a/docs/de/db5/structshaka_1_1media_1_1MuxerListenerFactory_1_1StreamData.html b/docs/de/db5/structshaka_1_1media_1_1MuxerListenerFactory_1_1StreamData.html index 155a53e9c2..97cedde44c 100644 --- a/docs/de/db5/structshaka_1_1media_1_1MuxerListenerFactory_1_1StreamData.html +++ b/docs/de/db5/structshaka_1_1media_1_1MuxerListenerFactory_1_1StreamData.html @@ -118,7 +118,7 @@ bool dash_only = false diff --git a/docs/de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html b/docs/de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html index 074c3c5771..d252e2f180 100644 --- a/docs/de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html +++ b/docs/de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html @@ -83,8 +83,8 @@ Classes - - + + @@ -102,8 +102,8 @@ std::unique_ptr< Definition at line 33 of file muxer_listener_factory.h.

      Constructor & Destructor Documentation

      - -

      ◆ MuxerListenerFactory()

      + +

      ◆ MuxerListenerFactory()

      @@ -114,6 +114,12 @@ std::unique_ptr< bool 
      + + + + + + @@ -136,13 +142,14 @@ std::unique_ptr<
      Parameters

      Public Member Functions

       MuxerListenerFactory (bool output_media_info, MpdNotifier *mpd_notifier, hls::HlsNotifier *hls_notifier)
       
       MuxerListenerFactory (bool output_media_info, bool use_segment_list, MpdNotifier *mpd_notifier, hls::HlsNotifier *hls_notifier)
       
      std::unique_ptr< MuxerListenerCreateListener (const StreamData &stream)
       Create a listener for a stream.
      output_media_info,
      bool use_segment_list,
      +
      output_media_infomust be true for the combined listener to include a media info dump listener.
      use_segment_listis set when mpd_notifier_ is null and –output_media_info is set. If mpd_notifer is non-null, this value is the same as mpd_notifier->use_segment_list().
      mpd_notifermust be non-null for the combined listener to include a mpd listener.
      hls_notifiermust be non-null for the combined listener to include an HLS listener.
      -

      Definition at line 82 of file muxer_listener_factory.cc.

      +

      Definition at line 83 of file muxer_listener_factory.cc.

      @@ -164,7 +171,7 @@ std::unique_ptr<

      Create an HLS listener if possible. If it is not possible to create an HLS listener, this method will return null.

      -

      Definition at line 127 of file muxer_listener_factory.cc.

      +

      Definition at line 131 of file muxer_listener_factory.cc.

      @@ -175,7 +182,7 @@ std::unique_ptr< diff --git a/docs/de/dbd/structshaka_1_1media_1_1mp4_1_1NullMediaHeader-members.html b/docs/de/dbd/structshaka_1_1media_1_1mp4_1_1NullMediaHeader-members.html index 6bd4ec23cc..a04e5bd422 100644 --- a/docs/de/dbd/structshaka_1_1media_1_1mp4_1_1NullMediaHeader-members.html +++ b/docs/de/dbd/structshaka_1_1media_1_1mp4_1_1NullMediaHeader-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/docs/de/dbf/udp__options_8h_source.html b/docs/de/dbf/udp__options_8h_source.html index e0a667803e..59de3009a1 100644 --- a/docs/de/dbf/udp__options_8h_source.html +++ b/docs/de/dbf/udp__options_8h_source.html @@ -128,7 +128,7 @@ $(function() { diff --git a/docs/de/dc1/demuxer_8h_source.html b/docs/de/dc1/demuxer_8h_source.html index 44778a4bf9..426e9a7649 100644 --- a/docs/de/dc1/demuxer_8h_source.html +++ b/docs/de/dc1/demuxer_8h_source.html @@ -215,7 +215,7 @@ $(function() { diff --git a/docs/de/dc2/adaptation__set_8cc_source.html b/docs/de/dc2/adaptation__set_8cc_source.html index 3743d7668a..a72466ce69 100644 --- a/docs/de/dc2/adaptation__set_8cc_source.html +++ b/docs/de/dc2/adaptation__set_8cc_source.html @@ -685,21 +685,21 @@ $(function() {
      uint32_t id() const
      AdaptationSetType specified in MPD.
      Definition: xml_node.h:162
      -
      bool AddRoleElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:328
      -
      bool AddAccessibilityElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:322
      -
      bool AddSupplementalProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:274
      -
      bool AddEssentialProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:280
      -
      bool AddChild(XmlNode child) WARN_UNUSED_RESULT
      Definition: xml_node.cc:140
      -
      bool SetIntegerAttribute(const std::string &attribute_name, uint64_t number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:190
      -
      bool SetStringAttribute(const std::string &attribute_name, const std::string &attribute) WARN_UNUSED_RESULT
      Definition: xml_node.cc:183
      -
      bool SetId(uint32_t id) WARN_UNUSED_RESULT
      Definition: xml_node.cc:204
      +
      bool AddRoleElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:329
      +
      bool AddAccessibilityElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:323
      +
      bool AddSupplementalProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:275
      +
      bool AddEssentialProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:281
      +
      bool AddChild(XmlNode child) WARN_UNUSED_RESULT
      Definition: xml_node.cc:141
      +
      bool SetIntegerAttribute(const std::string &attribute_name, uint64_t number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:191
      +
      bool SetStringAttribute(const std::string &attribute_name, const std::string &attribute) WARN_UNUSED_RESULT
      Definition: xml_node.cc:184
      +
      bool SetId(uint32_t id) WARN_UNUSED_RESULT
      Definition: xml_node.cc:205
      All the methods that are virtual are virtual for mocking.
      Defines Mpd Options.
      Definition: mpd_options.h:25
      diff --git a/docs/de/dc2/classshaka_1_1media_1_1H265Parser.html b/docs/de/dc2/classshaka_1_1media_1_1H265Parser.html index 4b224378b0..b9575d3410 100644 --- a/docs/de/dc2/classshaka_1_1media_1_1H265Parser.html +++ b/docs/de/dc2/classshaka_1_1media_1_1H265Parser.html @@ -245,7 +245,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 b2df0e6f15..4da0083e5b 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/de/dcb/ts__segmenter_8h_source.html b/docs/de/dcb/ts__segmenter_8h_source.html index 4ca8ee3590..6e6840d085 100644 --- a/docs/de/dcb/ts__segmenter_8h_source.html +++ b/docs/de/dcb/ts__segmenter_8h_source.html @@ -177,7 +177,7 @@ $(function() { diff --git a/docs/de/dcc/key__frame__info_8h_source.html b/docs/de/dcc/key__frame__info_8h_source.html index 968eace75c..ccb49c5c2e 100644 --- a/docs/de/dcc/key__frame__info_8h_source.html +++ b/docs/de/dcc/key__frame__info_8h_source.html @@ -100,7 +100,7 @@ $(function() { diff --git a/docs/de/dcc/mock__mpd__notifier_8cc_source.html b/docs/de/dcc/mock__mpd__notifier_8cc_source.html index b81da0a070..c8c7b3db83 100644 --- a/docs/de/dcc/mock__mpd__notifier_8cc_source.html +++ b/docs/de/dcc/mock__mpd__notifier_8cc_source.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/de/dcf/file__closer_8h_source.html b/docs/de/dcf/file__closer_8h_source.html index 99fdda02c1..a684037801 100644 --- a/docs/de/dcf/file__closer_8h_source.html +++ b/docs/de/dcf/file__closer_8h_source.html @@ -105,7 +105,7 @@ $(function() { diff --git a/docs/de/dd4/protection__system__ids_8h_source.html b/docs/de/dd4/protection__system__ids_8h_source.html index 48bac9d6f3..41da7d7c20 100644 --- a/docs/de/dd4/protection__system__ids_8h_source.html +++ b/docs/de/dd4/protection__system__ids_8h_source.html @@ -117,7 +117,7 @@ $(function() { diff --git a/docs/de/dd6/content__protection__element_8h_source.html b/docs/de/dd6/content__protection__element_8h_source.html index 6c2b80aebc..aac16595e8 100644 --- a/docs/de/dd6/content__protection__element_8h_source.html +++ b/docs/de/dd6/content__protection__element_8h_source.html @@ -125,7 +125,7 @@ $(function() { 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 bc70cc8540..beac993cd1 100644 --- a/docs/de/dd6/muxer__listener__test__helper_8cc_source.html +++ b/docs/de/dd6/muxer__listener__test__helper_8cc_source.html @@ -180,7 +180,7 @@ $(function() { diff --git a/docs/de/ddc/multi__codec__muxer__listener_8h_source.html b/docs/de/ddc/multi__codec__muxer__listener_8h_source.html index a1d93deb9d..8b5a585bc8 100644 --- a/docs/de/ddc/multi__codec__muxer__listener_8h_source.html +++ b/docs/de/ddc/multi__codec__muxer__listener_8h_source.html @@ -110,7 +110,7 @@ $(function() { 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 eb028fef5f..165f627ea5 100644 --- a/docs/de/ddd/classshaka_1_1media_1_1Muxer-members.html +++ b/docs/de/ddd/classshaka_1_1media_1_1Muxer-members.html @@ -110,7 +110,7 @@ $(function() { 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 627b408c2a..3ffa218963 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 @@ -258,7 +258,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 1acb86c413..73789591fb 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html b/docs/de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html index f98af1ee24..e812a4a7d3 100644 --- a/docs/de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html +++ b/docs/de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html @@ -358,7 +358,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 5922938711..0f17dc4b0c 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 @@ -112,7 +112,7 @@ $(function() { diff --git a/docs/de/de4/structshaka_1_1media_1_1H264Pps.html b/docs/de/de4/structshaka_1_1media_1_1H264Pps.html index 3252676990..771ef32ae0 100644 --- a/docs/de/de4/structshaka_1_1media_1_1H264Pps.html +++ b/docs/de/de4/structshaka_1_1media_1_1H264Pps.html @@ -145,7 +145,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 779931ac24..add16f72d9 100644 --- a/docs/de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html +++ b/docs/de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html @@ -272,7 +272,7 @@ void WarnIfNotMatch (i diff --git a/docs/de/deb/structshaka_1_1Cuepoint.html b/docs/de/deb/structshaka_1_1Cuepoint.html index 9c94aedacd..8e966caa05 100644 --- a/docs/de/deb/structshaka_1_1Cuepoint.html +++ b/docs/de/deb/structshaka_1_1Cuepoint.html @@ -93,7 +93,7 @@ double  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 461fe4fdf3..feb850da17 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 @@ -163,7 +163,7 @@ Additional Inherited Members diff --git a/docs/de/df2/combined__muxer__listener_8h_source.html b/docs/de/df2/combined__muxer__listener_8h_source.html index 792909ef80..8823d36986 100644 --- a/docs/de/df2/combined__muxer__listener_8h_source.html +++ b/docs/de/df2/combined__muxer__listener_8h_source.html @@ -153,7 +153,7 @@ $(function() { 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 654ca53805..7c3fa308ba 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 @@ -409,7 +409,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 1cd262e2f1..75ea0acee2 100644 --- a/docs/de/dfa/muxer__listener_8h_source.html +++ b/docs/de/dfa/muxer__listener_8h_source.html @@ -172,7 +172,7 @@ $(function() { 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 c7781b6fee..0d69c859b4 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 @@ -157,7 +157,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 4a1ee8efa0..9104333aee 100644 --- a/docs/de/dfd/stream__info_8cc_source.html +++ b/docs/de/dfd/stream__info_8cc_source.html @@ -149,7 +149,7 @@ $(function() { diff --git a/docs/df/d00/playready__key__source_8h_source.html b/docs/df/d00/playready__key__source_8h_source.html index 01be5a82c7..5cb21000c6 100644 --- a/docs/df/d00/playready__key__source_8h_source.html +++ b/docs/df/d00/playready__key__source_8h_source.html @@ -139,7 +139,7 @@ $(function() { 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 f9ac283fad..de3c0b0ef3 100644 --- a/docs/df/d05/vp__codec__configuration__record_8cc_source.html +++ b/docs/df/d05/vp__codec__configuration__record_8cc_source.html @@ -491,7 +491,7 @@ $(function() { diff --git a/docs/df/d0d/classshaka_1_1media_1_1BlockReader.html b/docs/df/d0d/classshaka_1_1media_1_1BlockReader.html index a12a1dd197..e908c87f1e 100644 --- a/docs/df/d0d/classshaka_1_1media_1_1BlockReader.html +++ b/docs/df/d0d/classshaka_1_1media_1_1BlockReader.html @@ -136,7 +136,7 @@ void  diff --git a/docs/df/d11/playready__pssh__generator_8h_source.html b/docs/df/d11/playready__pssh__generator_8h_source.html index d4cf553493..74593b4001 100644 --- a/docs/df/d11/playready__pssh__generator_8h_source.html +++ b/docs/df/d11/playready__pssh__generator_8h_source.html @@ -122,7 +122,7 @@ $(function() { diff --git a/docs/df/d1a/offset__byte__queue_8cc_source.html b/docs/df/d1a/offset__byte__queue_8cc_source.html index 4ee69a99e0..c744470cd7 100644 --- a/docs/df/d1a/offset__byte__queue_8cc_source.html +++ b/docs/df/d1a/offset__byte__queue_8cc_source.html @@ -139,7 +139,7 @@ $(function() { 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 e4ff6bc617..eb288f947c 100644 --- a/docs/df/d1c/classshaka_1_1media_1_1MediaSample-members.html +++ b/docs/df/d1c/classshaka_1_1media_1_1MediaSample-members.html @@ -106,7 +106,7 @@ $(function() { diff --git a/docs/df/d1c/composition__offset__iterator_8h_source.html b/docs/df/d1c/composition__offset__iterator_8h_source.html index ab40754165..5449ee0317 100644 --- a/docs/df/d1c/composition__offset__iterator_8h_source.html +++ b/docs/df/d1c/composition__offset__iterator_8h_source.html @@ -130,7 +130,7 @@ $(function() { diff --git a/docs/df/d1d/ac3__audio__util_8h_source.html b/docs/df/d1d/ac3__audio__util_8h_source.html index a63464be6f..a8f0505f63 100644 --- a/docs/df/d1d/ac3__audio__util_8h_source.html +++ b/docs/df/d1d/ac3__audio__util_8h_source.html @@ -97,7 +97,7 @@ $(function() { 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 e9cc8bbe52..cac6d2d13b 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 @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/df/d22/structshaka_1_1WidevineSigner.html b/docs/df/d22/structshaka_1_1WidevineSigner.html index d654732be8..57639a98ba 100644 --- a/docs/df/d22/structshaka_1_1WidevineSigner.html +++ b/docs/df/d22/structshaka_1_1WidevineSigner.html @@ -144,7 +144,7 @@ struct { diff --git a/docs/df/d22/validate__flag_8h_source.html b/docs/df/d22/validate__flag_8h_source.html index 8fb8ec9236..dd85a1fe5e 100644 --- a/docs/df/d22/validate__flag_8h_source.html +++ b/docs/df/d22/validate__flag_8h_source.html @@ -122,7 +122,7 @@ $(function() { 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 67d7ccccdc..4c366c6a05 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 @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/df/d2b/pssh__generator_8cc_source.html b/docs/df/d2b/pssh__generator_8cc_source.html index 2164603148..a886fa2685 100644 --- a/docs/df/d2b/pssh__generator_8cc_source.html +++ b/docs/df/d2b/pssh__generator_8cc_source.html @@ -147,7 +147,7 @@ $(function() { diff --git a/docs/df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html b/docs/df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html index 013e0246e2..014128cc3b 100644 --- a/docs/df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html +++ b/docs/df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html @@ -262,7 +262,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 072c4a530d..98d7d27288 100644 --- a/docs/df/d31/muxer__util_8cc_source.html +++ b/docs/df/d31/muxer__util_8cc_source.html @@ -240,7 +240,7 @@ $(function() { diff --git a/docs/df/d32/audio__stream__info_8h_source.html b/docs/df/d32/audio__stream__info_8h_source.html index 85b99fdb4d..169b729afc 100644 --- a/docs/df/d32/audio__stream__info_8h_source.html +++ b/docs/df/d32/audio__stream__info_8h_source.html @@ -149,7 +149,7 @@ $(function() { diff --git a/docs/df/d33/classshaka_1_1AdaptationSet-members.html b/docs/df/d33/classshaka_1_1AdaptationSet-members.html index 84667a9672..ff88c54b67 100644 --- a/docs/df/d33/classshaka_1_1AdaptationSet-members.html +++ b/docs/df/d33/classshaka_1_1AdaptationSet-members.html @@ -107,7 +107,7 @@ $(function() { diff --git a/docs/df/d38/classshaka_1_1media_1_1SLConfigDescriptor.html b/docs/df/d38/classshaka_1_1media_1_1SLConfigDescriptor.html index 08f15f0d61..5d60008a60 100644 --- a/docs/df/d38/classshaka_1_1media_1_1SLConfigDescriptor.html +++ b/docs/df/d38/classshaka_1_1media_1_1SLConfigDescriptor.html @@ -116,7 +116,7 @@ void  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 d9a1015be8..94e826e52f 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 @@ -94,7 +94,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 5ee6888abe..582a0512b3 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 @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/df/d3c/classshaka_1_1media_1_1RequestSigner.html b/docs/df/d3c/classshaka_1_1media_1_1RequestSigner.html index d4652f1b09..c9323b53a2 100644 --- a/docs/df/d3c/classshaka_1_1media_1_1RequestSigner.html +++ b/docs/df/d3c/classshaka_1_1media_1_1RequestSigner.html @@ -160,7 +160,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 30248086c2..4e6a76a553 100644 --- a/docs/df/d46/classshaka_1_1media_1_1Muxer.html +++ b/docs/df/d46/classshaka_1_1media_1_1Muxer.html @@ -385,7 +385,7 @@ static Status diff --git a/docs/df/d47/classshaka_1_1media_1_1DecoderConfigDescriptor-members.html b/docs/df/d47/classshaka_1_1media_1_1DecoderConfigDescriptor-members.html index 68fc40cbe9..62175ca773 100644 --- a/docs/df/d47/classshaka_1_1media_1_1DecoderConfigDescriptor-members.html +++ b/docs/df/d47/classshaka_1_1media_1_1DecoderConfigDescriptor-members.html @@ -95,7 +95,7 @@ $(function() { diff --git a/docs/df/d47/structshaka_1_1PlayReadyEncryptionParams.html b/docs/df/d47/structshaka_1_1PlayReadyEncryptionParams.html index f2587cf429..ec240ac236 100644 --- a/docs/df/d47/structshaka_1_1PlayReadyEncryptionParams.html +++ b/docs/df/d47/structshaka_1_1PlayReadyEncryptionParams.html @@ -128,7 +128,7 @@ std::string  diff --git a/docs/df/d4e/classshaka_1_1IoCache.html b/docs/df/d4e/classshaka_1_1IoCache.html index 119d2b0d95..acb1bda51b 100644 --- a/docs/df/d4e/classshaka_1_1IoCache.html +++ b/docs/df/d4e/classshaka_1_1IoCache.html @@ -284,7 +284,7 @@ void  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 7f61cebbe5..7c0e9521a4 100644 --- a/docs/df/d51/classshaka_1_1media_1_1RsaPrivateKey-members.html +++ b/docs/df/d51/classshaka_1_1media_1_1RsaPrivateKey-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/df/d5b/classshaka_1_1CallbackFile-members.html b/docs/df/d5b/classshaka_1_1CallbackFile-members.html index 29701d1a60..3742247f4e 100644 --- a/docs/df/d5b/classshaka_1_1CallbackFile-members.html +++ b/docs/df/d5b/classshaka_1_1CallbackFile-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/docs/df/d60/classshaka_1_1MockMpdBuilder.html b/docs/df/d60/classshaka_1_1MockMpdBuilder.html index 4aa698ede3..1b7e6f3495 100644 --- a/docs/df/d60/classshaka_1_1MockMpdBuilder.html +++ b/docs/df/d60/classshaka_1_1MockMpdBuilder.html @@ -120,7 +120,7 @@ Additional Inherited Members diff --git a/docs/df/d60/structshaka_1_1media_1_1KeyFrameEvent-members.html b/docs/df/d60/structshaka_1_1media_1_1KeyFrameEvent-members.html index 7046f7fb8f..be2e625681 100644 --- a/docs/df/d60/structshaka_1_1media_1_1KeyFrameEvent-members.html +++ b/docs/df/d60/structshaka_1_1media_1_1KeyFrameEvent-members.html @@ -78,7 +78,7 @@ $(function() { 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 fb0c19c47e..abcb066265 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 @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/df/d66/classshaka_1_1media_1_1KeyFetcher.html b/docs/df/d66/classshaka_1_1media_1_1KeyFetcher.html index c8261be324..29adf159d4 100644 --- a/docs/df/d66/classshaka_1_1media_1_1KeyFetcher.html +++ b/docs/df/d66/classshaka_1_1media_1_1KeyFetcher.html @@ -157,7 +157,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 b3ca664203..5accac5913 100644 --- a/docs/df/d6a/classshaka_1_1MockMpdBuilder-members.html +++ b/docs/df/d6a/classshaka_1_1MockMpdBuilder-members.html @@ -86,7 +86,7 @@ $(function() { 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 67163752b8..6b8d74810c 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 @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/df/d6d/structshaka_1_1media_1_1OnNewSegmentParameters.html b/docs/df/d6d/structshaka_1_1media_1_1OnNewSegmentParameters.html index 254462f85b..8fedd68502 100644 --- a/docs/df/d6d/structshaka_1_1media_1_1OnNewSegmentParameters.html +++ b/docs/df/d6d/structshaka_1_1media_1_1OnNewSegmentParameters.html @@ -90,14 +90,14 @@ uint64_t segment_file_size

      Detailed Description

      -

      Definition at line 69 of file muxer_listener_test_helper.h.

      +

      Definition at line 96 of file muxer_listener_test_helper.h.


      The documentation for this struct was generated from the following file: 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 d32bcb09db..e5d1a8d3fb 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 @@ -163,7 +163,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 be032f85e0..58262fd6ca 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 @@ -178,7 +178,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 3500ccb2ef..527808395c 100644 --- a/docs/df/d7d/webm__info__parser_8cc_source.html +++ b/docs/df/d7d/webm__info__parser_8cc_source.html @@ -175,14 +175,14 @@ $(function() {
      104 } // namespace media
      105 } // namespace shaka
      -
      int Parse(const uint8_t *buf, int size)
      Definition: webm_parser.cc:738
      - +
      int Parse(const uint8_t *buf, int size)
      Definition: webm_parser.cc:744
      +
      All the methods that are virtual are virtual for mocking.
      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 81772e118b..dd7345d7bc 100644 --- a/docs/df/d82/classshaka_1_1media_1_1DecoderConfigurationRecord-members.html +++ b/docs/df/d82/classshaka_1_1media_1_1DecoderConfigurationRecord-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/df/d83/classshaka_1_1media_1_1TextPadder-members.html b/docs/df/d83/classshaka_1_1media_1_1TextPadder-members.html index 4897897ff1..8d824ded25 100644 --- a/docs/df/d83/classshaka_1_1media_1_1TextPadder-members.html +++ b/docs/df/d83/classshaka_1_1media_1_1TextPadder-members.html @@ -99,7 +99,7 @@ $(function() { diff --git a/docs/df/d87/classshaka_1_1media_1_1AesCryptor.html b/docs/df/d87/classshaka_1_1media_1_1AesCryptor.html index bc1115a760..08a153f49e 100644 --- a/docs/df/d87/classshaka_1_1media_1_1AesCryptor.html +++ b/docs/df/d87/classshaka_1_1media_1_1AesCryptor.html @@ -419,7 +419,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/df/d87/classshaka_1_1media_1_1ttml_1_1TtmlGenerator.html b/docs/df/d87/classshaka_1_1media_1_1ttml_1_1TtmlGenerator.html index bcf9514ab0..a9b0425a78 100644 --- a/docs/df/d87/classshaka_1_1media_1_1ttml_1_1TtmlGenerator.html +++ b/docs/df/d87/classshaka_1_1media_1_1ttml_1_1TtmlGenerator.html @@ -105,7 +105,7 @@ static const char * kTtNam 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 300dbe1a1c..c9b7142f26 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 @@ -163,7 +163,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 7636935106..37b8b0655b 100644 --- a/docs/df/d8a/vp9__parser_8h_source.html +++ b/docs/df/d8a/vp9__parser_8h_source.html @@ -119,7 +119,7 @@ $(function() { diff --git a/docs/df/d8a/vpx__parser_8h_source.html b/docs/df/d8a/vpx__parser_8h_source.html index 848fad5ac6..69e17e0929 100644 --- a/docs/df/d8a/vpx__parser_8h_source.html +++ b/docs/df/d8a/vpx__parser_8h_source.html @@ -130,7 +130,7 @@ $(function() { 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 1033887d95..bca17cc9b6 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 @@ -100,7 +100,7 @@ $(function() { diff --git a/docs/df/d8d/es__parser__h26x_8h_source.html b/docs/df/d8d/es__parser__h26x_8h_source.html index adbdc3ba3a..fe300842f6 100644 --- a/docs/df/d8d/es__parser__h26x_8h_source.html +++ b/docs/df/d8d/es__parser__h26x_8h_source.html @@ -218,7 +218,7 @@ $(function() { diff --git a/docs/df/d94/classshaka_1_1RepresentationStateChangeListener.html b/docs/df/d94/classshaka_1_1RepresentationStateChangeListener.html index 8b2ae029de..9692d67c06 100644 --- a/docs/df/d94/classshaka_1_1RepresentationStateChangeListener.html +++ b/docs/df/d94/classshaka_1_1RepresentationStateChangeListener.html @@ -176,7 +176,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 bce38bef31..a6c79f9129 100644 --- a/docs/df/d96/xml__node_8cc_source.html +++ b/docs/df/d96/xml__node_8cc_source.html @@ -80,609 +80,636 @@ $(function() {
      9 #include <gflags/gflags.h>
      10 #include <libxml/tree.h>
      11 
      -
      12 #include <limits>
      -
      13 #include <set>
      -
      14 
      -
      15 #include "packager/base/logging.h"
      -
      16 #include "packager/base/macros.h"
      -
      17 #include "packager/base/strings/string_number_conversions.h"
      -
      18 #include "packager/base/sys_byteorder.h"
      -
      19 #include "packager/media/base/rcheck.h"
      -
      20 #include "packager/mpd/base/media_info.pb.h"
      -
      21 #include "packager/mpd/base/mpd_utils.h"
      -
      22 #include "packager/mpd/base/segment_info.h"
      -
      23 #include "packager/mpd/base/xml/scoped_xml_ptr.h"
      -
      24 
      -
      25 DEFINE_bool(segment_template_constant_duration,
      -
      26  false,
      -
      27  "Generates SegmentTemplate@duration if all segments except the "
      -
      28  "last one has the same duration if this flag is set to true.");
      -
      29 
      -
      30 DEFINE_bool(dash_add_last_segment_number_when_needed,
      -
      31  false,
      -
      32  "Adds a Supplemental Descriptor with @schemeIdUri "
      -
      33  "set to http://dashif.org/guidelines/last-segment-number with "
      -
      34  "the @value set to the last segment number.");
      -
      35 
      -
      36 namespace shaka {
      -
      37 
      -
      38 using xml::XmlNode;
      -
      39 typedef MediaInfo::AudioInfo AudioInfo;
      -
      40 typedef MediaInfo::VideoInfo VideoInfo;
      -
      41 
      -
      42 namespace {
      -
      43 const char kEC3Codec[] = "ec-3";
      -
      44 const char kAC4Codec[] = "ac-4";
      -
      45 
      -
      46 std::string RangeToString(const Range& range) {
      -
      47  return base::Uint64ToString(range.begin()) + "-" +
      -
      48  base::Uint64ToString(range.end());
      -
      49 }
      -
      50 
      -
      51 // Check if segments are continuous and all segments except the last one are of
      -
      52 // the same duration.
      -
      53 bool IsTimelineConstantDuration(const std::list<SegmentInfo>& segment_infos,
      -
      54  uint32_t start_number) {
      -
      55  if (!FLAGS_segment_template_constant_duration)
      -
      56  return false;
      -
      57 
      -
      58  DCHECK(!segment_infos.empty());
      -
      59  if (segment_infos.size() > 2)
      -
      60  return false;
      -
      61 
      -
      62  const SegmentInfo& first_segment = segment_infos.front();
      -
      63  if (first_segment.start_time != first_segment.duration * (start_number - 1))
      -
      64  return false;
      -
      65 
      -
      66  if (segment_infos.size() == 1)
      -
      67  return true;
      -
      68 
      -
      69  const SegmentInfo& last_segment = segment_infos.back();
      -
      70  if (last_segment.repeat != 0)
      -
      71  return false;
      -
      72 
      -
      73  const int64_t expected_last_segment_start_time =
      -
      74  first_segment.start_time +
      -
      75  first_segment.duration * (first_segment.repeat + 1);
      -
      76  return expected_last_segment_start_time == last_segment.start_time;
      -
      77 }
      -
      78 
      -
      79 bool PopulateSegmentTimeline(const std::list<SegmentInfo>& segment_infos,
      -
      80  XmlNode* segment_timeline) {
      -
      81  for (const SegmentInfo& segment_info : segment_infos) {
      -
      82  XmlNode s_element("S");
      -
      83  RCHECK(s_element.SetIntegerAttribute("t", segment_info.start_time));
      -
      84  RCHECK(s_element.SetIntegerAttribute("d", segment_info.duration));
      -
      85  if (segment_info.repeat > 0)
      -
      86  RCHECK(s_element.SetIntegerAttribute("r", segment_info.repeat));
      -
      87 
      -
      88  RCHECK(segment_timeline->AddChild(std::move(s_element)));
      -
      89  }
      -
      90 
      -
      91  return true;
      -
      92 }
      -
      93 
      -
      94 void CollectNamespaceFromName(const std::string& name,
      -
      95  std::set<std::string>* namespaces) {
      -
      96  const size_t pos = name.find(':');
      -
      97  if (pos != std::string::npos)
      -
      98  namespaces->insert(name.substr(0, pos));
      -
      99 }
      -
      100 
      -
      101 void TraverseAttrsAndCollectNamespaces(const xmlAttr* attr,
      -
      102  std::set<std::string>* namespaces) {
      -
      103  for (const xmlAttr* cur_attr = attr; cur_attr; cur_attr = cur_attr->next) {
      -
      104  CollectNamespaceFromName(reinterpret_cast<const char*>(cur_attr->name),
      -
      105  namespaces);
      -
      106  }
      -
      107 }
      -
      108 
      -
      109 void TraverseNodesAndCollectNamespaces(const xmlNode* node,
      -
      110  std::set<std::string>* namespaces) {
      -
      111  for (const xmlNode* cur_node = node; cur_node; cur_node = cur_node->next) {
      -
      112  CollectNamespaceFromName(reinterpret_cast<const char*>(cur_node->name),
      -
      113  namespaces);
      -
      114 
      -
      115  TraverseNodesAndCollectNamespaces(cur_node->children, namespaces);
      -
      116  TraverseAttrsAndCollectNamespaces(cur_node->properties, namespaces);
      -
      117  }
      -
      118 }
      -
      119 
      -
      120 } // namespace
      -
      121 
      -
      122 namespace xml {
      -
      123 
      -
      124 class XmlNode::Impl {
      -
      125  public:
      -
      126  scoped_xml_ptr<xmlNode> node;
      -
      127 };
      -
      128 
      -
      129 XmlNode::XmlNode(const std::string& name) : impl_(new Impl) {
      -
      130  impl_->node.reset(xmlNewNode(NULL, BAD_CAST name.c_str()));
      -
      131  DCHECK(impl_->node);
      -
      132 }
      -
      133 
      -
      134 XmlNode::XmlNode(XmlNode&&) = default;
      -
      135 
      -
      136 XmlNode::~XmlNode() {}
      -
      137 
      -
      138 XmlNode& XmlNode::operator=(XmlNode&&) = default;
      -
      139 
      - -
      141  DCHECK(impl_->node);
      -
      142  DCHECK(child.impl_->node);
      -
      143  RCHECK(xmlAddChild(impl_->node.get(), child.impl_->node.get()));
      -
      144 
      -
      145  // Reaching here means the ownership of |child| transfered to |node|.
      -
      146  // Release the pointer so that it doesn't get destructed in this scope.
      -
      147  ignore_result(child.impl_->node.release());
      -
      148  return true;
      -
      149 }
      -
      150 
      -
      151 bool XmlNode::AddElements(const std::vector<Element>& elements) {
      -
      152  for (size_t element_index = 0; element_index < elements.size();
      -
      153  ++element_index) {
      -
      154  const Element& child_element = elements[element_index];
      -
      155  XmlNode child_node(child_element.name);
      -
      156  for (std::map<std::string, std::string>::const_iterator attribute_it =
      -
      157  child_element.attributes.begin();
      -
      158  attribute_it != child_element.attributes.end(); ++attribute_it) {
      -
      159  RCHECK(child_node.SetStringAttribute(attribute_it->first,
      -
      160  attribute_it->second));
      -
      161  }
      -
      162 
      -
      163  // Note that somehow |SetContent| needs to be called before |AddElements|
      -
      164  // otherwise the added children will be overwritten by the content.
      -
      165  child_node.SetContent(child_element.content);
      -
      166 
      -
      167  // Recursively set children for the child.
      -
      168  RCHECK(child_node.AddElements(child_element.subelements));
      -
      169 
      -
      170  if (!xmlAddChild(impl_->node.get(), child_node.impl_->node.get())) {
      -
      171  LOG(ERROR) << "Failed to set child " << child_element.name
      -
      172  << " to parent element "
      -
      173  << reinterpret_cast<const char*>(impl_->node->name);
      -
      174  return false;
      -
      175  }
      -
      176  // Reaching here means the ownership of |child_node| transfered to |node|.
      -
      177  // Release the pointer so that it doesn't get destructed in this scope.
      -
      178  child_node.impl_->node.release();
      -
      179  }
      -
      180  return true;
      -
      181 }
      -
      182 
      -
      183 bool XmlNode::SetStringAttribute(const std::string& attribute_name,
      -
      184  const std::string& attribute) {
      -
      185  DCHECK(impl_->node);
      -
      186  return xmlSetProp(impl_->node.get(), BAD_CAST attribute_name.c_str(),
      -
      187  BAD_CAST attribute.c_str()) != nullptr;
      -
      188 }
      -
      189 
      -
      190 bool XmlNode::SetIntegerAttribute(const std::string& attribute_name,
      -
      191  uint64_t number) {
      -
      192  DCHECK(impl_->node);
      -
      193  return xmlSetProp(impl_->node.get(), BAD_CAST attribute_name.c_str(),
      -
      194  BAD_CAST(base::Uint64ToString(number).c_str())) != nullptr;
      -
      195 }
      -
      196 
      -
      197 bool XmlNode::SetFloatingPointAttribute(const std::string& attribute_name,
      -
      198  double number) {
      -
      199  DCHECK(impl_->node);
      -
      200  return xmlSetProp(impl_->node.get(), BAD_CAST attribute_name.c_str(),
      -
      201  BAD_CAST(base::DoubleToString(number).c_str())) != nullptr;
      -
      202 }
      -
      203 
      -
      204 bool XmlNode::SetId(uint32_t id) {
      -
      205  return SetIntegerAttribute("id", id);
      -
      206 }
      -
      207 
      -
      208 void XmlNode::AddContent(const std::string& content) {
      -
      209  DCHECK(impl_->node);
      -
      210  xmlNodeAddContent(impl_->node.get(), BAD_CAST content.c_str());
      -
      211 }
      -
      212 
      -
      213 void XmlNode::SetContent(const std::string& content) {
      -
      214  DCHECK(impl_->node);
      -
      215  xmlNodeSetContent(impl_->node.get(), BAD_CAST content.c_str());
      -
      216 }
      -
      217 
      -
      218 std::set<std::string> XmlNode::ExtractReferencedNamespaces() const {
      -
      219  std::set<std::string> namespaces;
      -
      220  TraverseNodesAndCollectNamespaces(impl_->node.get(), &namespaces);
      -
      221  return namespaces;
      -
      222 }
      -
      223 
      -
      224 std::string XmlNode::ToString(const std::string& comment) const {
      -
      225  // Create an xmlDoc from xmlNodePtr. The node is copied so ownership does not
      -
      226  // transfer.
      -
      227  xml::scoped_xml_ptr<xmlDoc> doc(xmlNewDoc(BAD_CAST "1.0"));
      -
      228  if (comment.empty()) {
      -
      229  xmlDocSetRootElement(doc.get(), xmlCopyNode(impl_->node.get(), true));
      -
      230  } else {
      -
      231  xml::scoped_xml_ptr<xmlNode> comment_xml(
      -
      232  xmlNewDocComment(doc.get(), BAD_CAST comment.c_str()));
      -
      233  xmlDocSetRootElement(doc.get(), comment_xml.get());
      -
      234  xmlAddSibling(comment_xml.release(), xmlCopyNode(impl_->node.get(), true));
      -
      235  }
      -
      236 
      -
      237  // Format the xmlDoc to string.
      -
      238  static const int kNiceFormat = 1;
      -
      239  int doc_str_size = 0;
      -
      240  xmlChar* doc_str = nullptr;
      -
      241  xmlDocDumpFormatMemoryEnc(doc.get(), &doc_str, &doc_str_size, "UTF-8",
      -
      242  kNiceFormat);
      -
      243  std::string output(doc_str, doc_str + doc_str_size);
      -
      244  xmlFree(doc_str);
      -
      245  return output;
      -
      246 }
      -
      247 
      -
      248 bool XmlNode::GetAttribute(const std::string& name, std::string* value) const {
      -
      249  xml::scoped_xml_ptr<xmlChar> str(
      -
      250  xmlGetProp(impl_->node.get(), BAD_CAST name.c_str()));
      -
      251  if (!str)
      -
      252  return false;
      -
      253  *value = reinterpret_cast<const char*>(str.get());
      -
      254  return true;
      -
      255 }
      -
      256 
      -
      257 xmlNode* XmlNode::GetRawPtr() const {
      -
      258  return impl_->node.get();
      -
      259 }
      -
      260 
      -
      261 RepresentationBaseXmlNode::RepresentationBaseXmlNode(const std::string& name)
      -
      262  : XmlNode(name) {}
      -
      263 RepresentationBaseXmlNode::~RepresentationBaseXmlNode() {}
      -
      264 
      -
      265 bool RepresentationBaseXmlNode::AddContentProtectionElements(
      -
      266  const std::list<ContentProtectionElement>& content_protection_elements) {
      -
      267  for (const auto& elem : content_protection_elements) {
      -
      268  RCHECK(AddContentProtectionElement(elem));
      -
      269  }
      -
      270 
      -
      271  return true;
      -
      272 }
      -
      273 
      - -
      275  const std::string& scheme_id_uri,
      -
      276  const std::string& value) {
      -
      277  return AddDescriptor("SupplementalProperty", scheme_id_uri, value);
      -
      278 }
      -
      279 
      - -
      281  const std::string& scheme_id_uri,
      -
      282  const std::string& value) {
      -
      283  return AddDescriptor("EssentialProperty", scheme_id_uri, value);
      -
      284 }
      -
      285 
      - -
      287  const std::string& descriptor_name,
      -
      288  const std::string& scheme_id_uri,
      -
      289  const std::string& value) {
      -
      290  XmlNode descriptor(descriptor_name);
      -
      291  RCHECK(descriptor.SetStringAttribute("schemeIdUri", scheme_id_uri));
      -
      292  if (!value.empty())
      -
      293  RCHECK(descriptor.SetStringAttribute("value", value));
      -
      294  return AddChild(std::move(descriptor));
      -
      295 }
      -
      296 
      -
      297 bool RepresentationBaseXmlNode::AddContentProtectionElement(
      -
      298  const ContentProtectionElement& content_protection_element) {
      -
      299  XmlNode content_protection_node("ContentProtection");
      -
      300 
      -
      301  // @value is an optional attribute.
      -
      302  if (!content_protection_element.value.empty()) {
      -
      303  RCHECK(content_protection_node.SetStringAttribute(
      -
      304  "value", content_protection_element.value));
      -
      305  }
      -
      306  RCHECK(content_protection_node.SetStringAttribute(
      -
      307  "schemeIdUri", content_protection_element.scheme_id_uri));
      -
      308 
      -
      309  for (const auto& pair : content_protection_element.additional_attributes) {
      -
      310  RCHECK(content_protection_node.SetStringAttribute(pair.first, pair.second));
      -
      311  }
      -
      312 
      -
      313  RCHECK(content_protection_node.AddElements(
      -
      314  content_protection_element.subelements));
      -
      315  return AddChild(std::move(content_protection_node));
      -
      316 }
      -
      317 
      -
      318 AdaptationSetXmlNode::AdaptationSetXmlNode()
      -
      319  : RepresentationBaseXmlNode("AdaptationSet") {}
      -
      320 AdaptationSetXmlNode::~AdaptationSetXmlNode() {}
      -
      321 
      - -
      323  const std::string& scheme_id_uri,
      -
      324  const std::string& value) {
      -
      325  return AddDescriptor("Accessibility", scheme_id_uri, value);
      -
      326 }
      -
      327 
      -
      328 bool AdaptationSetXmlNode::AddRoleElement(const std::string& scheme_id_uri,
      -
      329  const std::string& value) {
      -
      330  return AddDescriptor("Role", scheme_id_uri, value);
      -
      331 }
      -
      332 
      -
      333 RepresentationXmlNode::RepresentationXmlNode()
      -
      334  : RepresentationBaseXmlNode("Representation") {}
      -
      335 RepresentationXmlNode::~RepresentationXmlNode() {}
      -
      336 
      -
      337 bool RepresentationXmlNode::AddVideoInfo(const VideoInfo& video_info,
      -
      338  bool set_width,
      -
      339  bool set_height,
      -
      340  bool set_frame_rate) {
      -
      341  if (!video_info.has_width() || !video_info.has_height()) {
      -
      342  LOG(ERROR) << "Missing width or height for adding a video info.";
      -
      343  return false;
      -
      344  }
      -
      345 
      -
      346  if (video_info.has_pixel_width() && video_info.has_pixel_height()) {
      -
      347  RCHECK(SetStringAttribute(
      -
      348  "sar", base::IntToString(video_info.pixel_width()) + ":" +
      -
      349  base::IntToString(video_info.pixel_height())));
      -
      350  }
      -
      351 
      -
      352  if (set_width)
      -
      353  RCHECK(SetIntegerAttribute("width", video_info.width()));
      -
      354  if (set_height)
      -
      355  RCHECK(SetIntegerAttribute("height", video_info.height()));
      -
      356  if (set_frame_rate) {
      -
      357  RCHECK(SetStringAttribute(
      -
      358  "frameRate", base::IntToString(video_info.time_scale()) + "/" +
      -
      359  base::IntToString(video_info.frame_duration())));
      -
      360  }
      -
      361 
      -
      362  if (video_info.has_playback_rate()) {
      -
      363  RCHECK(SetStringAttribute("maxPlayoutRate",
      -
      364  base::IntToString(video_info.playback_rate())));
      -
      365  // Since the trick play stream contains only key frames, there is no coding
      -
      366  // dependency on the main stream. Simply set the codingDependency to false.
      -
      367  // TODO(hmchen): propagate this attribute up to the AdaptationSet, since
      -
      368  // all are set to false.
      -
      369  RCHECK(SetStringAttribute("codingDependency", "false"));
      -
      370  }
      -
      371  return true;
      -
      372 }
      -
      373 
      -
      374 bool RepresentationXmlNode::AddAudioInfo(const AudioInfo& audio_info) {
      -
      375  return AddAudioChannelInfo(audio_info) &&
      -
      376  AddAudioSamplingRateInfo(audio_info);
      -
      377 }
      -
      378 
      -
      379 bool RepresentationXmlNode::AddVODOnlyInfo(const MediaInfo& media_info) {
      -
      380  const bool use_segment_list_text =
      -
      381  media_info.has_text_info() && media_info.has_presentation_time_offset();
      -
      382 
      -
      383  if (media_info.has_media_file_url() && !use_segment_list_text) {
      -
      384  XmlNode base_url("BaseURL");
      -
      385  base_url.SetContent(media_info.media_file_url());
      -
      386 
      -
      387  RCHECK(AddChild(std::move(base_url)));
      -
      388  }
      +
      12 #include <cmath>
      +
      13 #include <limits>
      +
      14 #include <set>
      +
      15 
      +
      16 #include "packager/base/logging.h"
      +
      17 #include "packager/base/macros.h"
      +
      18 #include "packager/base/strings/string_number_conversions.h"
      +
      19 #include "packager/base/sys_byteorder.h"
      +
      20 #include "packager/media/base/rcheck.h"
      +
      21 #include "packager/mpd/base/media_info.pb.h"
      +
      22 #include "packager/mpd/base/mpd_utils.h"
      +
      23 #include "packager/mpd/base/segment_info.h"
      +
      24 #include "packager/mpd/base/xml/scoped_xml_ptr.h"
      +
      25 
      +
      26 DEFINE_bool(segment_template_constant_duration,
      +
      27  false,
      +
      28  "Generates SegmentTemplate@duration if all segments except the "
      +
      29  "last one has the same duration if this flag is set to true.");
      +
      30 
      +
      31 DEFINE_bool(dash_add_last_segment_number_when_needed,
      +
      32  false,
      +
      33  "Adds a Supplemental Descriptor with @schemeIdUri "
      +
      34  "set to http://dashif.org/guidelines/last-segment-number with "
      +
      35  "the @value set to the last segment number.");
      +
      36 
      +
      37 namespace shaka {
      +
      38 
      +
      39 using xml::XmlNode;
      +
      40 typedef MediaInfo::AudioInfo AudioInfo;
      +
      41 typedef MediaInfo::VideoInfo VideoInfo;
      +
      42 
      +
      43 namespace {
      +
      44 const char kEC3Codec[] = "ec-3";
      +
      45 const char kAC4Codec[] = "ac-4";
      +
      46 
      +
      47 std::string RangeToString(const Range& range) {
      +
      48  return base::Uint64ToString(range.begin()) + "-" +
      +
      49  base::Uint64ToString(range.end());
      +
      50 }
      +
      51 
      +
      52 // Check if segments are continuous and all segments except the last one are of
      +
      53 // the same duration.
      +
      54 bool IsTimelineConstantDuration(const std::list<SegmentInfo>& segment_infos,
      +
      55  uint32_t start_number) {
      +
      56  if (!FLAGS_segment_template_constant_duration)
      +
      57  return false;
      +
      58 
      +
      59  DCHECK(!segment_infos.empty());
      +
      60  if (segment_infos.size() > 2)
      +
      61  return false;
      +
      62 
      +
      63  const SegmentInfo& first_segment = segment_infos.front();
      +
      64  if (first_segment.start_time != first_segment.duration * (start_number - 1))
      +
      65  return false;
      +
      66 
      +
      67  if (segment_infos.size() == 1)
      +
      68  return true;
      +
      69 
      +
      70  const SegmentInfo& last_segment = segment_infos.back();
      +
      71  if (last_segment.repeat != 0)
      +
      72  return false;
      +
      73 
      +
      74  const int64_t expected_last_segment_start_time =
      +
      75  first_segment.start_time +
      +
      76  first_segment.duration * (first_segment.repeat + 1);
      +
      77  return expected_last_segment_start_time == last_segment.start_time;
      +
      78 }
      +
      79 
      +
      80 bool PopulateSegmentTimeline(const std::list<SegmentInfo>& segment_infos,
      +
      81  XmlNode* segment_timeline) {
      +
      82  for (const SegmentInfo& segment_info : segment_infos) {
      +
      83  XmlNode s_element("S");
      +
      84  RCHECK(s_element.SetIntegerAttribute("t", segment_info.start_time));
      +
      85  RCHECK(s_element.SetIntegerAttribute("d", segment_info.duration));
      +
      86  if (segment_info.repeat > 0)
      +
      87  RCHECK(s_element.SetIntegerAttribute("r", segment_info.repeat));
      +
      88 
      +
      89  RCHECK(segment_timeline->AddChild(std::move(s_element)));
      +
      90  }
      +
      91 
      +
      92  return true;
      +
      93 }
      +
      94 
      +
      95 void CollectNamespaceFromName(const std::string& name,
      +
      96  std::set<std::string>* namespaces) {
      +
      97  const size_t pos = name.find(':');
      +
      98  if (pos != std::string::npos)
      +
      99  namespaces->insert(name.substr(0, pos));
      +
      100 }
      +
      101 
      +
      102 void TraverseAttrsAndCollectNamespaces(const xmlAttr* attr,
      +
      103  std::set<std::string>* namespaces) {
      +
      104  for (const xmlAttr* cur_attr = attr; cur_attr; cur_attr = cur_attr->next) {
      +
      105  CollectNamespaceFromName(reinterpret_cast<const char*>(cur_attr->name),
      +
      106  namespaces);
      +
      107  }
      +
      108 }
      +
      109 
      +
      110 void TraverseNodesAndCollectNamespaces(const xmlNode* node,
      +
      111  std::set<std::string>* namespaces) {
      +
      112  for (const xmlNode* cur_node = node; cur_node; cur_node = cur_node->next) {
      +
      113  CollectNamespaceFromName(reinterpret_cast<const char*>(cur_node->name),
      +
      114  namespaces);
      +
      115 
      +
      116  TraverseNodesAndCollectNamespaces(cur_node->children, namespaces);
      +
      117  TraverseAttrsAndCollectNamespaces(cur_node->properties, namespaces);
      +
      118  }
      +
      119 }
      +
      120 
      +
      121 } // namespace
      +
      122 
      +
      123 namespace xml {
      +
      124 
      +
      125 class XmlNode::Impl {
      +
      126  public:
      +
      127  scoped_xml_ptr<xmlNode> node;
      +
      128 };
      +
      129 
      +
      130 XmlNode::XmlNode(const std::string& name) : impl_(new Impl) {
      +
      131  impl_->node.reset(xmlNewNode(NULL, BAD_CAST name.c_str()));
      +
      132  DCHECK(impl_->node);
      +
      133 }
      +
      134 
      +
      135 XmlNode::XmlNode(XmlNode&&) = default;
      +
      136 
      +
      137 XmlNode::~XmlNode() {}
      +
      138 
      +
      139 XmlNode& XmlNode::operator=(XmlNode&&) = default;
      +
      140 
      + +
      142  DCHECK(impl_->node);
      +
      143  DCHECK(child.impl_->node);
      +
      144  RCHECK(xmlAddChild(impl_->node.get(), child.impl_->node.get()));
      +
      145 
      +
      146  // Reaching here means the ownership of |child| transfered to |node|.
      +
      147  // Release the pointer so that it doesn't get destructed in this scope.
      +
      148  ignore_result(child.impl_->node.release());
      +
      149  return true;
      +
      150 }
      +
      151 
      +
      152 bool XmlNode::AddElements(const std::vector<Element>& elements) {
      +
      153  for (size_t element_index = 0; element_index < elements.size();
      +
      154  ++element_index) {
      +
      155  const Element& child_element = elements[element_index];
      +
      156  XmlNode child_node(child_element.name);
      +
      157  for (std::map<std::string, std::string>::const_iterator attribute_it =
      +
      158  child_element.attributes.begin();
      +
      159  attribute_it != child_element.attributes.end(); ++attribute_it) {
      +
      160  RCHECK(child_node.SetStringAttribute(attribute_it->first,
      +
      161  attribute_it->second));
      +
      162  }
      +
      163 
      +
      164  // Note that somehow |SetContent| needs to be called before |AddElements|
      +
      165  // otherwise the added children will be overwritten by the content.
      +
      166  child_node.SetContent(child_element.content);
      +
      167 
      +
      168  // Recursively set children for the child.
      +
      169  RCHECK(child_node.AddElements(child_element.subelements));
      +
      170 
      +
      171  if (!xmlAddChild(impl_->node.get(), child_node.impl_->node.get())) {
      +
      172  LOG(ERROR) << "Failed to set child " << child_element.name
      +
      173  << " to parent element "
      +
      174  << reinterpret_cast<const char*>(impl_->node->name);
      +
      175  return false;
      +
      176  }
      +
      177  // Reaching here means the ownership of |child_node| transfered to |node|.
      +
      178  // Release the pointer so that it doesn't get destructed in this scope.
      +
      179  child_node.impl_->node.release();
      +
      180  }
      +
      181  return true;
      +
      182 }
      +
      183 
      +
      184 bool XmlNode::SetStringAttribute(const std::string& attribute_name,
      +
      185  const std::string& attribute) {
      +
      186  DCHECK(impl_->node);
      +
      187  return xmlSetProp(impl_->node.get(), BAD_CAST attribute_name.c_str(),
      +
      188  BAD_CAST attribute.c_str()) != nullptr;
      +
      189 }
      +
      190 
      +
      191 bool XmlNode::SetIntegerAttribute(const std::string& attribute_name,
      +
      192  uint64_t number) {
      +
      193  DCHECK(impl_->node);
      +
      194  return xmlSetProp(impl_->node.get(), BAD_CAST attribute_name.c_str(),
      +
      195  BAD_CAST(base::Uint64ToString(number).c_str())) != nullptr;
      +
      196 }
      +
      197 
      +
      198 bool XmlNode::SetFloatingPointAttribute(const std::string& attribute_name,
      +
      199  double number) {
      +
      200  DCHECK(impl_->node);
      +
      201  return xmlSetProp(impl_->node.get(), BAD_CAST attribute_name.c_str(),
      +
      202  BAD_CAST(base::DoubleToString(number).c_str())) != nullptr;
      +
      203 }
      +
      204 
      +
      205 bool XmlNode::SetId(uint32_t id) {
      +
      206  return SetIntegerAttribute("id", id);
      +
      207 }
      +
      208 
      +
      209 void XmlNode::AddContent(const std::string& content) {
      +
      210  DCHECK(impl_->node);
      +
      211  xmlNodeAddContent(impl_->node.get(), BAD_CAST content.c_str());
      +
      212 }
      +
      213 
      +
      214 void XmlNode::SetContent(const std::string& content) {
      +
      215  DCHECK(impl_->node);
      +
      216  xmlNodeSetContent(impl_->node.get(), BAD_CAST content.c_str());
      +
      217 }
      +
      218 
      +
      219 std::set<std::string> XmlNode::ExtractReferencedNamespaces() const {
      +
      220  std::set<std::string> namespaces;
      +
      221  TraverseNodesAndCollectNamespaces(impl_->node.get(), &namespaces);
      +
      222  return namespaces;
      +
      223 }
      +
      224 
      +
      225 std::string XmlNode::ToString(const std::string& comment) const {
      +
      226  // Create an xmlDoc from xmlNodePtr. The node is copied so ownership does not
      +
      227  // transfer.
      +
      228  xml::scoped_xml_ptr<xmlDoc> doc(xmlNewDoc(BAD_CAST "1.0"));
      +
      229  if (comment.empty()) {
      +
      230  xmlDocSetRootElement(doc.get(), xmlCopyNode(impl_->node.get(), true));
      +
      231  } else {
      +
      232  xml::scoped_xml_ptr<xmlNode> comment_xml(
      +
      233  xmlNewDocComment(doc.get(), BAD_CAST comment.c_str()));
      +
      234  xmlDocSetRootElement(doc.get(), comment_xml.get());
      +
      235  xmlAddSibling(comment_xml.release(), xmlCopyNode(impl_->node.get(), true));
      +
      236  }
      +
      237 
      +
      238  // Format the xmlDoc to string.
      +
      239  static const int kNiceFormat = 1;
      +
      240  int doc_str_size = 0;
      +
      241  xmlChar* doc_str = nullptr;
      +
      242  xmlDocDumpFormatMemoryEnc(doc.get(), &doc_str, &doc_str_size, "UTF-8",
      +
      243  kNiceFormat);
      +
      244  std::string output(doc_str, doc_str + doc_str_size);
      +
      245  xmlFree(doc_str);
      +
      246  return output;
      +
      247 }
      +
      248 
      +
      249 bool XmlNode::GetAttribute(const std::string& name, std::string* value) const {
      +
      250  xml::scoped_xml_ptr<xmlChar> str(
      +
      251  xmlGetProp(impl_->node.get(), BAD_CAST name.c_str()));
      +
      252  if (!str)
      +
      253  return false;
      +
      254  *value = reinterpret_cast<const char*>(str.get());
      +
      255  return true;
      +
      256 }
      +
      257 
      +
      258 xmlNode* XmlNode::GetRawPtr() const {
      +
      259  return impl_->node.get();
      +
      260 }
      +
      261 
      +
      262 RepresentationBaseXmlNode::RepresentationBaseXmlNode(const std::string& name)
      +
      263  : XmlNode(name) {}
      +
      264 RepresentationBaseXmlNode::~RepresentationBaseXmlNode() {}
      +
      265 
      +
      266 bool RepresentationBaseXmlNode::AddContentProtectionElements(
      +
      267  const std::list<ContentProtectionElement>& content_protection_elements) {
      +
      268  for (const auto& elem : content_protection_elements) {
      +
      269  RCHECK(AddContentProtectionElement(elem));
      +
      270  }
      +
      271 
      +
      272  return true;
      +
      273 }
      +
      274 
      + +
      276  const std::string& scheme_id_uri,
      +
      277  const std::string& value) {
      +
      278  return AddDescriptor("SupplementalProperty", scheme_id_uri, value);
      +
      279 }
      +
      280 
      + +
      282  const std::string& scheme_id_uri,
      +
      283  const std::string& value) {
      +
      284  return AddDescriptor("EssentialProperty", scheme_id_uri, value);
      +
      285 }
      +
      286 
      + +
      288  const std::string& descriptor_name,
      +
      289  const std::string& scheme_id_uri,
      +
      290  const std::string& value) {
      +
      291  XmlNode descriptor(descriptor_name);
      +
      292  RCHECK(descriptor.SetStringAttribute("schemeIdUri", scheme_id_uri));
      +
      293  if (!value.empty())
      +
      294  RCHECK(descriptor.SetStringAttribute("value", value));
      +
      295  return AddChild(std::move(descriptor));
      +
      296 }
      +
      297 
      +
      298 bool RepresentationBaseXmlNode::AddContentProtectionElement(
      +
      299  const ContentProtectionElement& content_protection_element) {
      +
      300  XmlNode content_protection_node("ContentProtection");
      +
      301 
      +
      302  // @value is an optional attribute.
      +
      303  if (!content_protection_element.value.empty()) {
      +
      304  RCHECK(content_protection_node.SetStringAttribute(
      +
      305  "value", content_protection_element.value));
      +
      306  }
      +
      307  RCHECK(content_protection_node.SetStringAttribute(
      +
      308  "schemeIdUri", content_protection_element.scheme_id_uri));
      +
      309 
      +
      310  for (const auto& pair : content_protection_element.additional_attributes) {
      +
      311  RCHECK(content_protection_node.SetStringAttribute(pair.first, pair.second));
      +
      312  }
      +
      313 
      +
      314  RCHECK(content_protection_node.AddElements(
      +
      315  content_protection_element.subelements));
      +
      316  return AddChild(std::move(content_protection_node));
      +
      317 }
      +
      318 
      +
      319 AdaptationSetXmlNode::AdaptationSetXmlNode()
      +
      320  : RepresentationBaseXmlNode("AdaptationSet") {}
      +
      321 AdaptationSetXmlNode::~AdaptationSetXmlNode() {}
      +
      322 
      + +
      324  const std::string& scheme_id_uri,
      +
      325  const std::string& value) {
      +
      326  return AddDescriptor("Accessibility", scheme_id_uri, value);
      +
      327 }
      +
      328 
      +
      329 bool AdaptationSetXmlNode::AddRoleElement(const std::string& scheme_id_uri,
      +
      330  const std::string& value) {
      +
      331  return AddDescriptor("Role", scheme_id_uri, value);
      +
      332 }
      +
      333 
      +
      334 RepresentationXmlNode::RepresentationXmlNode()
      +
      335  : RepresentationBaseXmlNode("Representation") {}
      +
      336 RepresentationXmlNode::~RepresentationXmlNode() {}
      +
      337 
      +
      338 bool RepresentationXmlNode::AddVideoInfo(const VideoInfo& video_info,
      +
      339  bool set_width,
      +
      340  bool set_height,
      +
      341  bool set_frame_rate) {
      +
      342  if (!video_info.has_width() || !video_info.has_height()) {
      +
      343  LOG(ERROR) << "Missing width or height for adding a video info.";
      +
      344  return false;
      +
      345  }
      +
      346 
      +
      347  if (video_info.has_pixel_width() && video_info.has_pixel_height()) {
      +
      348  RCHECK(SetStringAttribute(
      +
      349  "sar", base::IntToString(video_info.pixel_width()) + ":" +
      +
      350  base::IntToString(video_info.pixel_height())));
      +
      351  }
      +
      352 
      +
      353  if (set_width)
      +
      354  RCHECK(SetIntegerAttribute("width", video_info.width()));
      +
      355  if (set_height)
      +
      356  RCHECK(SetIntegerAttribute("height", video_info.height()));
      +
      357  if (set_frame_rate) {
      +
      358  RCHECK(SetStringAttribute(
      +
      359  "frameRate", base::IntToString(video_info.time_scale()) + "/" +
      +
      360  base::IntToString(video_info.frame_duration())));
      +
      361  }
      +
      362 
      +
      363  if (video_info.has_playback_rate()) {
      +
      364  RCHECK(SetStringAttribute("maxPlayoutRate",
      +
      365  base::IntToString(video_info.playback_rate())));
      +
      366  // Since the trick play stream contains only key frames, there is no coding
      +
      367  // dependency on the main stream. Simply set the codingDependency to false.
      +
      368  // TODO(hmchen): propagate this attribute up to the AdaptationSet, since
      +
      369  // all are set to false.
      +
      370  RCHECK(SetStringAttribute("codingDependency", "false"));
      +
      371  }
      +
      372  return true;
      +
      373 }
      +
      374 
      +
      375 bool RepresentationXmlNode::AddAudioInfo(const AudioInfo& audio_info) {
      +
      376  return AddAudioChannelInfo(audio_info) &&
      +
      377  AddAudioSamplingRateInfo(audio_info);
      +
      378 }
      +
      379 
      +
      380 bool RepresentationXmlNode::AddVODOnlyInfo(const MediaInfo& media_info,
      +
      381  bool use_segment_list,
      +
      382  double target_segment_duration) {
      +
      383  const bool use_single_segment_url_with_media =
      +
      384  media_info.has_text_info() && media_info.has_presentation_time_offset();
      +
      385 
      +
      386  if (media_info.has_media_file_url() && !use_single_segment_url_with_media) {
      +
      387  XmlNode base_url("BaseURL");
      +
      388  base_url.SetContent(media_info.media_file_url());
      389 
      -
      390  const bool need_segment_base =
      -
      391  media_info.has_index_range() || media_info.has_init_range() ||
      -
      392  (media_info.has_reference_time_scale() && !media_info.has_text_info());
      -
      393  DCHECK(!need_segment_base || !use_segment_list_text);
      -
      394 
      -
      395  if (need_segment_base || use_segment_list_text) {
      -
      396  XmlNode child(need_segment_base ? "SegmentBase" : "SegmentList");
      -
      397  if (media_info.has_index_range()) {
      -
      398  RCHECK(child.SetStringAttribute("indexRange",
      -
      399  RangeToString(media_info.index_range())));
      -
      400  }
      -
      401 
      -
      402  if (media_info.has_reference_time_scale()) {
      -
      403  RCHECK(child.SetIntegerAttribute("timescale",
      -
      404  media_info.reference_time_scale()));
      -
      405  }
      +
      390  RCHECK(AddChild(std::move(base_url)));
      +
      391  }
      +
      392 
      +
      393  const bool need_segment_base_or_list =
      +
      394  use_segment_list || media_info.has_index_range() ||
      +
      395  media_info.has_init_range() ||
      +
      396  (media_info.has_reference_time_scale() && !media_info.has_text_info()) ||
      +
      397  use_single_segment_url_with_media;
      +
      398 
      +
      399  if (!need_segment_base_or_list) {
      +
      400  return true;
      +
      401  }
      +
      402 
      +
      403  XmlNode child(use_segment_list || use_single_segment_url_with_media
      +
      404  ? "SegmentList"
      +
      405  : "SegmentBase");
      406 
      -
      407  if (media_info.has_presentation_time_offset()) {
      -
      408  RCHECK(child.SetIntegerAttribute("presentationTimeOffset",
      -
      409  media_info.presentation_time_offset()));
      -
      410  }
      -
      411 
      -
      412  if (media_info.has_init_range()) {
      -
      413  XmlNode initialization("Initialization");
      -
      414  RCHECK(initialization.SetStringAttribute(
      -
      415  "range", RangeToString(media_info.init_range())));
      -
      416 
      -
      417  RCHECK(child.AddChild(std::move(initialization)));
      -
      418  }
      -
      419 
      -
      420  if (use_segment_list_text) {
      -
      421  XmlNode media_url("SegmentURL");
      -
      422  RCHECK(
      -
      423  media_url.SetStringAttribute("media", media_info.media_file_url()));
      -
      424  RCHECK(child.AddChild(std::move(media_url)));
      -
      425  }
      -
      426 
      -
      427  RCHECK(AddChild(std::move(child)));
      +
      407  // Forcing SegmentList for longer audio causes sidx atom to not be
      +
      408  // generated, therefore indexRange is not added to MPD if flag is set.
      +
      409  if (media_info.has_index_range() && !use_segment_list) {
      +
      410  RCHECK(child.SetStringAttribute("indexRange",
      +
      411  RangeToString(media_info.index_range())));
      +
      412  }
      +
      413 
      +
      414  if (media_info.has_reference_time_scale()) {
      +
      415  RCHECK(child.SetIntegerAttribute("timescale",
      +
      416  media_info.reference_time_scale()));
      +
      417 
      +
      418  if (use_segment_list && !use_single_segment_url_with_media) {
      +
      419  const uint64_t duration_seconds = static_cast<uint64_t>(
      +
      420  floor(target_segment_duration * media_info.reference_time_scale()));
      +
      421  RCHECK(child.SetIntegerAttribute("duration", duration_seconds));
      +
      422  }
      +
      423  }
      +
      424 
      +
      425  if (media_info.has_presentation_time_offset()) {
      +
      426  RCHECK(child.SetIntegerAttribute("presentationTimeOffset",
      +
      427  media_info.presentation_time_offset()));
      428  }
      429 
      -
      430  return true;
      -
      431 }
      -
      432 
      - -
      434  const MediaInfo& media_info,
      -
      435  const std::list<SegmentInfo>& segment_infos,
      -
      436  uint32_t start_number) {
      -
      437  XmlNode segment_template("SegmentTemplate");
      -
      438  if (media_info.has_reference_time_scale()) {
      -
      439  RCHECK(segment_template.SetIntegerAttribute(
      -
      440  "timescale", media_info.reference_time_scale()));
      -
      441  }
      -
      442 
      -
      443  if (media_info.has_presentation_time_offset()) {
      -
      444  RCHECK(segment_template.SetIntegerAttribute(
      -
      445  "presentationTimeOffset", media_info.presentation_time_offset()));
      -
      446  }
      -
      447 
      -
      448  if (media_info.has_init_segment_url()) {
      -
      449  RCHECK(segment_template.SetStringAttribute("initialization",
      -
      450  media_info.init_segment_url()));
      -
      451  }
      -
      452 
      -
      453  if (media_info.has_segment_template_url()) {
      -
      454  RCHECK(segment_template.SetStringAttribute(
      -
      455  "media", media_info.segment_template_url()));
      -
      456  RCHECK(segment_template.SetIntegerAttribute("startNumber", start_number));
      -
      457  }
      -
      458 
      -
      459  if (!segment_infos.empty()) {
      -
      460  // Don't use SegmentTimeline if all segments except the last one are of
      -
      461  // the same duration.
      -
      462  if (IsTimelineConstantDuration(segment_infos, start_number)) {
      -
      463  RCHECK(segment_template.SetIntegerAttribute(
      -
      464  "duration", segment_infos.front().duration));
      -
      465  if (FLAGS_dash_add_last_segment_number_when_needed) {
      -
      466  uint32_t last_segment_number = start_number - 1;
      -
      467  for (const auto& segment_info_element : segment_infos)
      -
      468  last_segment_number += segment_info_element.repeat + 1;
      +
      430  if (media_info.has_init_range()) {
      +
      431  XmlNode initialization("Initialization");
      +
      432  RCHECK(initialization.SetStringAttribute(
      +
      433  "range", RangeToString(media_info.init_range())));
      +
      434 
      +
      435  RCHECK(child.AddChild(std::move(initialization)));
      +
      436  }
      +
      437 
      +
      438  if (use_single_segment_url_with_media) {
      +
      439  XmlNode media_url("SegmentURL");
      +
      440  RCHECK(media_url.SetStringAttribute("media", media_info.media_file_url()));
      +
      441  RCHECK(child.AddChild(std::move(media_url)));
      +
      442  }
      +
      443 
      +
      444  // Since the SegmentURLs here do not have a @media element,
      +
      445  // BaseURL element is mapped to the @media attribute.
      +
      446  if (use_segment_list) {
      +
      447  for (const Range& subsegment_range : media_info.subsegment_ranges()) {
      +
      448  XmlNode subsegment("SegmentURL");
      +
      449  RCHECK(subsegment.SetStringAttribute("mediaRange",
      +
      450  RangeToString(subsegment_range)));
      +
      451 
      +
      452  RCHECK(child.AddChild(std::move(subsegment)));
      +
      453  }
      +
      454  }
      +
      455 
      +
      456  RCHECK(AddChild(std::move(child)));
      +
      457  return true;
      +
      458 }
      +
      459 
      + +
      461  const MediaInfo& media_info,
      +
      462  const std::list<SegmentInfo>& segment_infos,
      +
      463  uint32_t start_number) {
      +
      464  XmlNode segment_template("SegmentTemplate");
      +
      465  if (media_info.has_reference_time_scale()) {
      +
      466  RCHECK(segment_template.SetIntegerAttribute(
      +
      467  "timescale", media_info.reference_time_scale()));
      +
      468  }
      469 
      - -
      471  "http://dashif.org/guidelines/last-segment-number",
      -
      472  std::to_string(last_segment_number)));
      -
      473  }
      -
      474  } else {
      -
      475  XmlNode segment_timeline("SegmentTimeline");
      -
      476  RCHECK(PopulateSegmentTimeline(segment_infos, &segment_timeline));
      -
      477  RCHECK(segment_template.AddChild(std::move(segment_timeline)));
      -
      478  }
      -
      479  }
      -
      480  return AddChild(std::move(segment_template));
      -
      481 }
      -
      482 
      -
      483 bool RepresentationXmlNode::AddAudioChannelInfo(const AudioInfo& audio_info) {
      -
      484  std::string audio_channel_config_scheme;
      -
      485  std::string audio_channel_config_value;
      -
      486 
      -
      487  if (audio_info.codec() == kEC3Codec) {
      -
      488  const auto& codec_data = audio_info.codec_specific_data();
      -
      489  // Use MPEG scheme if the mpeg value is available and valid, fallback to
      -
      490  // EC3 channel mapping otherwise.
      -
      491  // See https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/268
      -
      492  const uint32_t ec3_channel_mpeg_value = codec_data.channel_mpeg_value();
      -
      493  const uint32_t NO_MAPPING = 0xFFFFFFFF;
      -
      494  if (ec3_channel_mpeg_value == NO_MAPPING) {
      -
      495  // Convert EC3 channel map into string of hexadecimal digits. Spec: DASH-IF
      -
      496  // Interoperability Points v3.0 9.2.1.2.
      -
      497  const uint16_t ec3_channel_map =
      -
      498  base::HostToNet16(codec_data.channel_mask());
      -
      499  audio_channel_config_value =
      -
      500  base::HexEncode(&ec3_channel_map, sizeof(ec3_channel_map));
      -
      501  audio_channel_config_scheme =
      -
      502  "tag:dolby.com,2014:dash:audio_channel_configuration:2011";
      -
      503  } else {
      -
      504  // Calculate EC3 channel configuration descriptor value with MPEG scheme.
      -
      505  // Spec: ETSI TS 102 366 V1.4.1 Digital Audio Compression
      -
      506  // (AC-3, Enhanced AC-3) I.1.2.
      -
      507  audio_channel_config_value = base::UintToString(ec3_channel_mpeg_value);
      -
      508  audio_channel_config_scheme = "urn:mpeg:mpegB:cicp:ChannelConfiguration";
      -
      509  }
      -
      510  bool ret = AddDescriptor("AudioChannelConfiguration",
      -
      511  audio_channel_config_scheme,
      -
      512  audio_channel_config_value);
      -
      513  // Dolby Digital Plus JOC descriptor. Spec: ETSI TS 103 420 v1.2.1
      -
      514  // Backwards-compatible object audio carriage using Enhanced AC-3 Standard
      -
      515  // D.2.2.
      -
      516  if (codec_data.ec3_joc_complexity() != 0) {
      -
      517  std::string ec3_joc_complexity =
      -
      518  base::UintToString(codec_data.ec3_joc_complexity());
      -
      519  ret &= AddDescriptor("SupplementalProperty",
      -
      520  "tag:dolby.com,2018:dash:EC3_ExtensionType:2018",
      -
      521  "JOC");
      -
      522  ret &= AddDescriptor("SupplementalProperty",
      -
      523  "tag:dolby.com,2018:dash:"
      -
      524  "EC3_ExtensionComplexityIndex:2018",
      -
      525  ec3_joc_complexity);
      -
      526  }
      -
      527  return ret;
      -
      528  } else if (audio_info.codec().substr(0, 4) == kAC4Codec) {
      -
      529  const auto& codec_data = audio_info.codec_specific_data();
      -
      530  const bool ac4_ims_flag = codec_data.ac4_ims_flag();
      -
      531  // Use MPEG scheme if the mpeg value is available and valid, fallback to
      -
      532  // AC4 channel mask otherwise.
      -
      533  // See https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/268
      -
      534  const uint32_t ac4_channel_mpeg_value = codec_data.channel_mpeg_value();
      -
      535  const uint32_t NO_MAPPING = 0xFFFFFFFF;
      -
      536  if (ac4_channel_mpeg_value == NO_MAPPING) {
      -
      537  // Calculate AC-4 channel mask. Spec: ETSI TS 103 190-2 V1.2.1 Digital
      -
      538  // Audio Compression (AC-4) Standard; Part 2: Immersive and personalized
      -
      539  // audio G.3.1.
      -
      540  const uint32_t ac4_channel_mask =
      -
      541  base::HostToNet32(codec_data.channel_mask() << 8);
      -
      542  audio_channel_config_value =
      -
      543  base::HexEncode(&ac4_channel_mask, sizeof(ac4_channel_mask) - 1);
      -
      544  // Note that the channel config schemes for EC-3 and AC-4 are different.
      -
      545  // See https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/268.
      -
      546  audio_channel_config_scheme =
      -
      547  "tag:dolby.com,2015:dash:audio_channel_configuration:2015";
      -
      548  } else {
      -
      549  // Calculate AC-4 channel configuration descriptor value with MPEG scheme.
      -
      550  // Spec: ETSI TS 103 190-2 V1.2.1 Digital Audio Compression (AC-4) Standard;
      -
      551  // Part 2: Immersive and personalized audio G.3.2.
      -
      552  audio_channel_config_value = base::UintToString(ac4_channel_mpeg_value);
      -
      553  audio_channel_config_scheme = "urn:mpeg:mpegB:cicp:ChannelConfiguration";
      -
      554  }
      -
      555  bool ret = AddDescriptor("AudioChannelConfiguration",
      -
      556  audio_channel_config_scheme,
      -
      557  audio_channel_config_value);
      -
      558  if (ac4_ims_flag) {
      -
      559  ret &= AddDescriptor("SupplementalProperty",
      -
      560  "tag:dolby.com,2016:dash:virtualized_content:2016",
      -
      561  "1");
      -
      562  }
      -
      563  return ret;
      -
      564  } else {
      -
      565  audio_channel_config_value = base::UintToString(audio_info.num_channels());
      -
      566  audio_channel_config_scheme =
      -
      567  "urn:mpeg:dash:23003:3:audio_channel_configuration:2011";
      -
      568  }
      -
      569 
      -
      570  return AddDescriptor("AudioChannelConfiguration", audio_channel_config_scheme,
      -
      571  audio_channel_config_value);
      -
      572 }
      -
      573 
      -
      574 // MPD expects one number for sampling frequency, or if it is a range it should
      -
      575 // be space separated.
      -
      576 bool RepresentationXmlNode::AddAudioSamplingRateInfo(
      -
      577  const AudioInfo& audio_info) {
      -
      578  return !audio_info.has_sampling_frequency() ||
      -
      579  SetIntegerAttribute("audioSamplingRate",
      -
      580  audio_info.sampling_frequency());
      -
      581 }
      -
      582 
      -
      583 } // namespace xml
      -
      584 } // namespace shaka
      -
      bool AddRoleElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:328
      -
      bool AddAccessibilityElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:322
      +
      470  if (media_info.has_presentation_time_offset()) {
      +
      471  RCHECK(segment_template.SetIntegerAttribute(
      +
      472  "presentationTimeOffset", media_info.presentation_time_offset()));
      +
      473  }
      +
      474 
      +
      475  if (media_info.has_init_segment_url()) {
      +
      476  RCHECK(segment_template.SetStringAttribute("initialization",
      +
      477  media_info.init_segment_url()));
      +
      478  }
      +
      479 
      +
      480  if (media_info.has_segment_template_url()) {
      +
      481  RCHECK(segment_template.SetStringAttribute(
      +
      482  "media", media_info.segment_template_url()));
      +
      483  RCHECK(segment_template.SetIntegerAttribute("startNumber", start_number));
      +
      484  }
      +
      485 
      +
      486  if (!segment_infos.empty()) {
      +
      487  // Don't use SegmentTimeline if all segments except the last one are of
      +
      488  // the same duration.
      +
      489  if (IsTimelineConstantDuration(segment_infos, start_number)) {
      +
      490  RCHECK(segment_template.SetIntegerAttribute(
      +
      491  "duration", segment_infos.front().duration));
      +
      492  if (FLAGS_dash_add_last_segment_number_when_needed) {
      +
      493  uint32_t last_segment_number = start_number - 1;
      +
      494  for (const auto& segment_info_element : segment_infos)
      +
      495  last_segment_number += segment_info_element.repeat + 1;
      +
      496 
      + +
      498  "http://dashif.org/guidelines/last-segment-number",
      +
      499  std::to_string(last_segment_number)));
      +
      500  }
      +
      501  } else {
      +
      502  XmlNode segment_timeline("SegmentTimeline");
      +
      503  RCHECK(PopulateSegmentTimeline(segment_infos, &segment_timeline));
      +
      504  RCHECK(segment_template.AddChild(std::move(segment_timeline)));
      +
      505  }
      +
      506  }
      +
      507  return AddChild(std::move(segment_template));
      +
      508 }
      +
      509 
      +
      510 bool RepresentationXmlNode::AddAudioChannelInfo(const AudioInfo& audio_info) {
      +
      511  std::string audio_channel_config_scheme;
      +
      512  std::string audio_channel_config_value;
      +
      513 
      +
      514  if (audio_info.codec() == kEC3Codec) {
      +
      515  const auto& codec_data = audio_info.codec_specific_data();
      +
      516  // Use MPEG scheme if the mpeg value is available and valid, fallback to
      +
      517  // EC3 channel mapping otherwise.
      +
      518  // See https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/268
      +
      519  const uint32_t ec3_channel_mpeg_value = codec_data.channel_mpeg_value();
      +
      520  const uint32_t NO_MAPPING = 0xFFFFFFFF;
      +
      521  if (ec3_channel_mpeg_value == NO_MAPPING) {
      +
      522  // Convert EC3 channel map into string of hexadecimal digits. Spec: DASH-IF
      +
      523  // Interoperability Points v3.0 9.2.1.2.
      +
      524  const uint16_t ec3_channel_map =
      +
      525  base::HostToNet16(codec_data.channel_mask());
      +
      526  audio_channel_config_value =
      +
      527  base::HexEncode(&ec3_channel_map, sizeof(ec3_channel_map));
      +
      528  audio_channel_config_scheme =
      +
      529  "tag:dolby.com,2014:dash:audio_channel_configuration:2011";
      +
      530  } else {
      +
      531  // Calculate EC3 channel configuration descriptor value with MPEG scheme.
      +
      532  // Spec: ETSI TS 102 366 V1.4.1 Digital Audio Compression
      +
      533  // (AC-3, Enhanced AC-3) I.1.2.
      +
      534  audio_channel_config_value = base::UintToString(ec3_channel_mpeg_value);
      +
      535  audio_channel_config_scheme = "urn:mpeg:mpegB:cicp:ChannelConfiguration";
      +
      536  }
      +
      537  bool ret = AddDescriptor("AudioChannelConfiguration",
      +
      538  audio_channel_config_scheme,
      +
      539  audio_channel_config_value);
      +
      540  // Dolby Digital Plus JOC descriptor. Spec: ETSI TS 103 420 v1.2.1
      +
      541  // Backwards-compatible object audio carriage using Enhanced AC-3 Standard
      +
      542  // D.2.2.
      +
      543  if (codec_data.ec3_joc_complexity() != 0) {
      +
      544  std::string ec3_joc_complexity =
      +
      545  base::UintToString(codec_data.ec3_joc_complexity());
      +
      546  ret &= AddDescriptor("SupplementalProperty",
      +
      547  "tag:dolby.com,2018:dash:EC3_ExtensionType:2018",
      +
      548  "JOC");
      +
      549  ret &= AddDescriptor("SupplementalProperty",
      +
      550  "tag:dolby.com,2018:dash:"
      +
      551  "EC3_ExtensionComplexityIndex:2018",
      +
      552  ec3_joc_complexity);
      +
      553  }
      +
      554  return ret;
      +
      555  } else if (audio_info.codec().substr(0, 4) == kAC4Codec) {
      +
      556  const auto& codec_data = audio_info.codec_specific_data();
      +
      557  const bool ac4_ims_flag = codec_data.ac4_ims_flag();
      +
      558  // Use MPEG scheme if the mpeg value is available and valid, fallback to
      +
      559  // AC4 channel mask otherwise.
      +
      560  // See https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/268
      +
      561  const uint32_t ac4_channel_mpeg_value = codec_data.channel_mpeg_value();
      +
      562  const uint32_t NO_MAPPING = 0xFFFFFFFF;
      +
      563  if (ac4_channel_mpeg_value == NO_MAPPING) {
      +
      564  // Calculate AC-4 channel mask. Spec: ETSI TS 103 190-2 V1.2.1 Digital
      +
      565  // Audio Compression (AC-4) Standard; Part 2: Immersive and personalized
      +
      566  // audio G.3.1.
      +
      567  const uint32_t ac4_channel_mask =
      +
      568  base::HostToNet32(codec_data.channel_mask() << 8);
      +
      569  audio_channel_config_value =
      +
      570  base::HexEncode(&ac4_channel_mask, sizeof(ac4_channel_mask) - 1);
      +
      571  // Note that the channel config schemes for EC-3 and AC-4 are different.
      +
      572  // See https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/268.
      +
      573  audio_channel_config_scheme =
      +
      574  "tag:dolby.com,2015:dash:audio_channel_configuration:2015";
      +
      575  } else {
      +
      576  // Calculate AC-4 channel configuration descriptor value with MPEG scheme.
      +
      577  // Spec: ETSI TS 103 190-2 V1.2.1 Digital Audio Compression (AC-4) Standard;
      +
      578  // Part 2: Immersive and personalized audio G.3.2.
      +
      579  audio_channel_config_value = base::UintToString(ac4_channel_mpeg_value);
      +
      580  audio_channel_config_scheme = "urn:mpeg:mpegB:cicp:ChannelConfiguration";
      +
      581  }
      +
      582  bool ret = AddDescriptor("AudioChannelConfiguration",
      +
      583  audio_channel_config_scheme,
      +
      584  audio_channel_config_value);
      +
      585  if (ac4_ims_flag) {
      +
      586  ret &= AddDescriptor("SupplementalProperty",
      +
      587  "tag:dolby.com,2016:dash:virtualized_content:2016",
      +
      588  "1");
      +
      589  }
      +
      590  return ret;
      +
      591  } else {
      +
      592  audio_channel_config_value = base::UintToString(audio_info.num_channels());
      +
      593  audio_channel_config_scheme =
      +
      594  "urn:mpeg:dash:23003:3:audio_channel_configuration:2011";
      +
      595  }
      +
      596 
      +
      597  return AddDescriptor("AudioChannelConfiguration", audio_channel_config_scheme,
      +
      598  audio_channel_config_value);
      +
      599 }
      +
      600 
      +
      601 // MPD expects one number for sampling frequency, or if it is a range it should
      +
      602 // be space separated.
      +
      603 bool RepresentationXmlNode::AddAudioSamplingRateInfo(
      +
      604  const AudioInfo& audio_info) {
      +
      605  return !audio_info.has_sampling_frequency() ||
      +
      606  SetIntegerAttribute("audioSamplingRate",
      +
      607  audio_info.sampling_frequency());
      +
      608 }
      +
      609 
      +
      610 } // namespace xml
      +
      611 } // namespace shaka
      +
      bool AddRoleElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:329
      +
      bool AddAccessibilityElement(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:323
      -
      bool AddDescriptor(const std::string &descriptor_name, const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:286
      -
      bool AddSupplementalProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:274
      -
      bool AddEssentialProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:280
      -
      bool AddVideoInfo(const MediaInfo::VideoInfo &video_info, bool set_width, bool set_height, bool set_frame_rate) WARN_UNUSED_RESULT
      Definition: xml_node.cc:337
      -
      bool AddVODOnlyInfo(const MediaInfo &media_info) WARN_UNUSED_RESULT
      Definition: xml_node.cc:379
      -
      bool AddLiveOnlyInfo(const MediaInfo &media_info, const std::list< SegmentInfo > &segment_infos, uint32_t start_number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:433
      -
      bool AddAudioInfo(const MediaInfo::AudioInfo &audio_info) WARN_UNUSED_RESULT
      Definition: xml_node.cc:374
      +
      bool AddDescriptor(const std::string &descriptor_name, const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:287
      +
      bool AddSupplementalProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:275
      +
      bool AddEssentialProperty(const std::string &scheme_id_uri, const std::string &value) WARN_UNUSED_RESULT
      Definition: xml_node.cc:281
      +
      bool AddVideoInfo(const MediaInfo::VideoInfo &video_info, bool set_width, bool set_height, bool set_frame_rate) WARN_UNUSED_RESULT
      Definition: xml_node.cc:338
      +
      bool AddLiveOnlyInfo(const MediaInfo &media_info, const std::list< SegmentInfo > &segment_infos, uint32_t start_number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:460
      +
      bool AddVODOnlyInfo(const MediaInfo &media_info, bool use_segment_list, double target_segment_duration) WARN_UNUSED_RESULT
      Definition: xml_node.cc:380
      +
      bool AddAudioInfo(const MediaInfo::AudioInfo &audio_info) WARN_UNUSED_RESULT
      Definition: xml_node.cc:375
      -
      bool AddChild(XmlNode child) WARN_UNUSED_RESULT
      Definition: xml_node.cc:140
      -
      std::set< std::string > ExtractReferencedNamespaces() const
      Definition: xml_node.cc:218
      -
      void AddContent(const std::string &content)
      Similar to SetContent, but appends to the end of existing content.
      Definition: xml_node.cc:208
      -
      void SetContent(const std::string &content)
      Definition: xml_node.cc:213
      -
      bool SetFloatingPointAttribute(const std::string &attribute_name, double number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:197
      -
      bool SetIntegerAttribute(const std::string &attribute_name, uint64_t number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:190
      -
      XmlNode(const std::string &name)
      Definition: xml_node.cc:129
      -
      bool SetStringAttribute(const std::string &attribute_name, const std::string &attribute) WARN_UNUSED_RESULT
      Definition: xml_node.cc:183
      -
      bool GetAttribute(const std::string &name, std::string *value) const
      Definition: xml_node.cc:248
      -
      bool SetId(uint32_t id) WARN_UNUSED_RESULT
      Definition: xml_node.cc:204
      -
      bool AddElements(const std::vector< Element > &elements) WARN_UNUSED_RESULT
      Adds Elements to this node using the Element struct.
      Definition: xml_node.cc:151
      -
      std::string ToString(const std::string &comment) const
      Definition: xml_node.cc:224
      +
      bool AddChild(XmlNode child) WARN_UNUSED_RESULT
      Definition: xml_node.cc:141
      +
      std::set< std::string > ExtractReferencedNamespaces() const
      Definition: xml_node.cc:219
      +
      void AddContent(const std::string &content)
      Similar to SetContent, but appends to the end of existing content.
      Definition: xml_node.cc:209
      +
      void SetContent(const std::string &content)
      Definition: xml_node.cc:214
      +
      bool SetFloatingPointAttribute(const std::string &attribute_name, double number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:198
      +
      bool SetIntegerAttribute(const std::string &attribute_name, uint64_t number) WARN_UNUSED_RESULT
      Definition: xml_node.cc:191
      +
      XmlNode(const std::string &name)
      Definition: xml_node.cc:130
      +
      bool SetStringAttribute(const std::string &attribute_name, const std::string &attribute) WARN_UNUSED_RESULT
      Definition: xml_node.cc:184
      +
      bool GetAttribute(const std::string &name, std::string *value) const
      Definition: xml_node.cc:249
      +
      bool SetId(uint32_t id) WARN_UNUSED_RESULT
      Definition: xml_node.cc:205
      +
      bool AddElements(const std::vector< Element > &elements) WARN_UNUSED_RESULT
      Adds Elements to this node using the Element struct.
      Definition: xml_node.cc:152
      +
      std::string ToString(const std::string &comment) const
      Definition: xml_node.cc:225
      All the methods that are virtual are virtual for mocking.
      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 36bf0478b5..63f9a1fb4e 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 @@ -163,7 +163,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 ea30a41ddd..ef7904c4aa 100644 --- a/docs/df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html +++ b/docs/df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html @@ -94,8 +94,8 @@ Public Member Functions   bool AddAudioInfo (const MediaInfo::AudioInfo &audio_info) WARN_UNUSED_RESULT   -bool AddVODOnlyInfo (const MediaInfo &media_info) WARN_UNUSED_RESULT -  +bool AddVODOnlyInfo (const MediaInfo &media_info, bool use_segment_list, double target_segment_duration) WARN_UNUSED_RESULT +  bool AddLiveOnlyInfo (const MediaInfo &media_info, const std::list< SegmentInfo > &segment_infos, uint32_t start_number) WARN_UNUSED_RESULT   - Public Member Functions inherited from shaka::xml::RepresentationBaseXmlNode @@ -179,7 +179,7 @@ Additional Inherited Members
      Returns
      true if successfully set attributes and children elements (if applicable), false otherwise.
      -

      Definition at line 374 of file xml_node.cc.

      +

      Definition at line 375 of file xml_node.cc.

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

      Definition at line 433 of file xml_node.cc.

      +

      Definition at line 460 of file xml_node.cc.

      @@ -273,12 +273,12 @@ Additional Inherited Members
      Returns
      true if successfully set attributes and children elements (if applicable), false otherwise.
      -

      Definition at line 337 of file xml_node.cc.

      +

      Definition at line 338 of file xml_node.cc.

      - -

      ◆ AddVODOnlyInfo()

      + +

      ◆ AddVODOnlyInfo()

      @@ -287,20 +287,38 @@ Additional Inherited Members bool shaka::xml::RepresentationXmlNode::AddVODOnlyInfo ( const MediaInfo &  - media_info) + media_info, + + + + bool  + use_segment_list, + + + + + double  + target_segment_duration  + + + + ) +

      Adds fields that are specific to VOD. This ignores media_info fields for Live.

      Parameters
      + +
      media_infois a MediaInfo with VOD information.
      use_segment_listis a param that instructs the xml writer to use SegmentList instead of SegmentBase.
      target_segment_durationis a param that specifies the target
      Returns
      true on success, false otherwise.
      -

      Definition at line 379 of file xml_node.cc.

      +

      Definition at line 380 of file xml_node.cc.

      @@ -311,7 +329,7 @@ Additional Inherited Members diff --git a/docs/df/d9e/es__parser__dvb_8h_source.html b/docs/df/d9e/es__parser__dvb_8h_source.html index a1426293fd..b153cf181e 100644 --- a/docs/df/d9e/es__parser__dvb_8h_source.html +++ b/docs/df/d9e/es__parser__dvb_8h_source.html @@ -133,7 +133,7 @@ $(function() { 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 6ab55080cb..6fa5cfe585 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 @@ -94,7 +94,7 @@ $(function() { diff --git a/docs/df/da1/cc__stream__filter_8h_source.html b/docs/df/da1/cc__stream__filter_8h_source.html index a4cabf7e14..35c673e7fb 100644 --- a/docs/df/da1/cc__stream__filter_8h_source.html +++ b/docs/df/da1/cc__stream__filter_8h_source.html @@ -114,7 +114,7 @@ $(function() { 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 bd302bc63c..26c0ef0b99 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 @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/df/dab/structshaka_1_1media_1_1EventInfo-members.html b/docs/df/dab/structshaka_1_1media_1_1EventInfo-members.html index 0efd84f19a..f90fa090e5 100644 --- a/docs/df/dab/structshaka_1_1media_1_1EventInfo-members.html +++ b/docs/df/dab/structshaka_1_1media_1_1EventInfo-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/df/dad/decrypt__config_8h_source.html b/docs/df/dad/decrypt__config_8h_source.html index 87bf20c08b..dd7bbd531d 100644 --- a/docs/df/dad/decrypt__config_8h_source.html +++ b/docs/df/dad/decrypt__config_8h_source.html @@ -159,7 +159,7 @@ $(function() { diff --git a/docs/df/db9/classshaka_1_1media_1_1BaseDescriptor.html b/docs/df/db9/classshaka_1_1media_1_1BaseDescriptor.html index 239a5bb1b4..8bf161044c 100644 --- a/docs/df/db9/classshaka_1_1media_1_1BaseDescriptor.html +++ b/docs/df/db9/classshaka_1_1media_1_1BaseDescriptor.html @@ -249,7 +249,7 @@ void  diff --git a/docs/df/dc0/classshaka_1_1media_1_1WebVttToMp4Handler-members.html b/docs/df/dc0/classshaka_1_1media_1_1WebVttToMp4Handler-members.html index cc22b9b62e..e1702ff691 100644 --- a/docs/df/dc0/classshaka_1_1media_1_1WebVttToMp4Handler-members.html +++ b/docs/df/dc0/classshaka_1_1media_1_1WebVttToMp4Handler-members.html @@ -99,7 +99,7 @@ $(function() { 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 4a0f6cc069..5a9c7376dc 100644 --- a/docs/df/dc7/avc__decoder__configuration__record_8h_source.html +++ b/docs/df/dc7/avc__decoder__configuration__record_8h_source.html @@ -147,7 +147,7 @@ $(function() { diff --git a/docs/df/dce/classshaka_1_1hls_1_1MockMediaPlaylist-members.html b/docs/df/dce/classshaka_1_1hls_1_1MockMediaPlaylist-members.html index e2b4be4d7c..97457a3d38 100644 --- a/docs/df/dce/classshaka_1_1hls_1_1MockMediaPlaylist-members.html +++ b/docs/df/dce/classshaka_1_1hls_1_1MockMediaPlaylist-members.html @@ -127,7 +127,7 @@ $(function() { diff --git a/docs/df/dd2/mpd__utils_8h_source.html b/docs/df/dd2/mpd__utils_8h_source.html index 0726953c78..e1fc59dae0 100644 --- a/docs/df/dd2/mpd__utils_8h_source.html +++ b/docs/df/dd2/mpd__utils_8h_source.html @@ -154,7 +154,7 @@ $(function() { 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 d3c5dea08c..941ad2e8b0 100644 --- a/docs/df/dd2/structshaka_1_1media_1_1H264Pps-members.html +++ b/docs/df/dd2/structshaka_1_1media_1_1H264Pps-members.html @@ -95,7 +95,7 @@ $(function() { diff --git a/docs/df/dda/single__thread__job__manager_8cc_source.html b/docs/df/dda/single__thread__job__manager_8cc_source.html index 035c164eb9..8c58108aa3 100644 --- a/docs/df/dda/single__thread__job__manager_8cc_source.html +++ b/docs/df/dda/single__thread__job__manager_8cc_source.html @@ -107,7 +107,7 @@ $(function() { diff --git a/docs/df/ddc/structshaka_1_1MpdParams.html b/docs/df/ddc/structshaka_1_1MpdParams.html index 31ff8985eb..1a129e3e6b 100644 --- a/docs/df/ddc/structshaka_1_1MpdParams.html +++ b/docs/df/ddc/structshaka_1_1MpdParams.html @@ -126,6 +126,8 @@ bool   bool include_mspr_pro = true   +bool use_segment_list = false +  @@ -364,6 +366,23 @@ Static Public Attributes

      Definition at line 39 of file mpd_params.h.

      + + + +

      ◆ use_segment_list

      + +
      +
      +

      Static Public Attributes

      + + + +
      bool shaka::MpdParams::use_segment_list = false
      +
      +

      Uses SegmentList instead of SegmentBase. Use this if the content is huge and the total number of (sub)segment references is greater than what the sidx atom allows (65535).

      + +

      Definition at line 93 of file mpd_params.h.

      +

      The documentation for this struct was generated from the following file:
        @@ -372,7 +391,7 @@ Static Public Attributes diff --git a/docs/df/ddc/webm_2segmenter_8h_source.html b/docs/df/ddc/webm_2segmenter_8h_source.html index 775a3f188d..ce8a9ae34b 100644 --- a/docs/df/ddc/webm_2segmenter_8h_source.html +++ b/docs/df/ddc/webm_2segmenter_8h_source.html @@ -237,7 +237,7 @@ $(function() { diff --git a/docs/df/dde/ts__section__psi_8cc_source.html b/docs/df/dde/ts__section__psi_8cc_source.html index 364a3092e8..5ea62b81f5 100644 --- a/docs/df/dde/ts__section__psi_8cc_source.html +++ b/docs/df/dde/ts__section__psi_8cc_source.html @@ -211,7 +211,7 @@ $(function() { diff --git a/docs/df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html b/docs/df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html index 8a134324c9..14e1123830 100644 --- a/docs/df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html +++ b/docs/df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html @@ -97,7 +97,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 e3653b969f..dd4c6a1fc3 100644 --- a/docs/df/de3/text__track__config_8cc_source.html +++ b/docs/df/de3/text__track__config_8cc_source.html @@ -105,7 +105,7 @@ $(function() { diff --git a/docs/df/de9/segment__info_8h_source.html b/docs/df/de9/segment__info_8h_source.html index 19f9992fc1..072da5f2ed 100644 --- a/docs/df/de9/segment__info_8h_source.html +++ b/docs/df/de9/segment__info_8h_source.html @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/df/dee/classshaka_1_1HttpFile-members.html b/docs/df/dee/classshaka_1_1HttpFile-members.html index ad016fcd03..0412f1c6ba 100644 --- a/docs/df/dee/classshaka_1_1HttpFile-members.html +++ b/docs/df/dee/classshaka_1_1HttpFile-members.html @@ -105,7 +105,7 @@ $(function() { diff --git a/docs/df/df1/structshaka_1_1ContentProtectionElement-members.html b/docs/df/df1/structshaka_1_1ContentProtectionElement-members.html index 9e5d68bab5..340cd2d8d9 100644 --- a/docs/df/df1/structshaka_1_1ContentProtectionElement-members.html +++ b/docs/df/df1/structshaka_1_1ContentProtectionElement-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/df/df8/subsample__generator_8h_source.html b/docs/df/df8/subsample__generator_8h_source.html index e52bb325ba..1e43ae4126 100644 --- a/docs/df/df8/subsample__generator_8h_source.html +++ b/docs/df/df8/subsample__generator_8h_source.html @@ -165,7 +165,7 @@ $(function() { diff --git a/docs/df/dfa/video__util_8h_source.html b/docs/df/dfa/video__util_8h_source.html index 3153f4c112..0d611379e4 100644 --- a/docs/df/dfa/video__util_8h_source.html +++ b/docs/df/dfa/video__util_8h_source.html @@ -99,7 +99,7 @@ $(function() { 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 8c01f9c001..a59f6109d4 100644 --- a/docs/df/dfc/playready__key__encryption__flags_8cc_source.html +++ b/docs/df/dfc/playready__key__encryption__flags_8cc_source.html @@ -116,7 +116,7 @@ $(function() { diff --git a/docs/dir_121b61e6efa4d9009f3d31a3be5e474d.html b/docs/dir_121b61e6efa4d9009f3d31a3be5e474d.html index 35af8d4bf7..ccaaee2bd8 100644 --- a/docs/dir_121b61e6efa4d9009f3d31a3be5e474d.html +++ b/docs/dir_121b61e6efa4d9009f3d31a3be5e474d.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_1338cd99faf71b6cb1609e99e3340e45.html b/docs/dir_1338cd99faf71b6cb1609e99e3340e45.html index 2f92ea46aa..28e4861b85 100644 --- a/docs/dir_1338cd99faf71b6cb1609e99e3340e45.html +++ b/docs/dir_1338cd99faf71b6cb1609e99e3340e45.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_35c1fdffcdd4ade6d7f948073ab165de.html b/docs/dir_35c1fdffcdd4ade6d7f948073ab165de.html index 1b134e3917..9c0f9a9e76 100644 --- a/docs/dir_35c1fdffcdd4ade6d7f948073ab165de.html +++ b/docs/dir_35c1fdffcdd4ade6d7f948073ab165de.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_375ba2cfd8fd5b05c50b92d996b9d386.html b/docs/dir_375ba2cfd8fd5b05c50b92d996b9d386.html index fc48c18f87..14fda8c64b 100644 --- a/docs/dir_375ba2cfd8fd5b05c50b92d996b9d386.html +++ b/docs/dir_375ba2cfd8fd5b05c50b92d996b9d386.html @@ -76,7 +76,7 @@ Directories diff --git a/docs/dir_3f8eec2fc361645de4b1ec14c19fffc7.html b/docs/dir_3f8eec2fc361645de4b1ec14c19fffc7.html index ce3f37ea13..86735af065 100644 --- a/docs/dir_3f8eec2fc361645de4b1ec14c19fffc7.html +++ b/docs/dir_3f8eec2fc361645de4b1ec14c19fffc7.html @@ -82,7 +82,7 @@ Directories diff --git a/docs/dir_48fdaa95ed78e499807eaa909d50b2cd.html b/docs/dir_48fdaa95ed78e499807eaa909d50b2cd.html index 251a8d6a27..b437a8932c 100644 --- a/docs/dir_48fdaa95ed78e499807eaa909d50b2cd.html +++ b/docs/dir_48fdaa95ed78e499807eaa909d50b2cd.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_51897ee7df8868b4f901d3ff10922ac3.html b/docs/dir_51897ee7df8868b4f901d3ff10922ac3.html index d898dc14dd..3634120a26 100644 --- a/docs/dir_51897ee7df8868b4f901d3ff10922ac3.html +++ b/docs/dir_51897ee7df8868b4f901d3ff10922ac3.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_51a7c7233efd277e3898c7f3689e7b5b.html b/docs/dir_51a7c7233efd277e3898c7f3689e7b5b.html index d9f80fcc4d..efc34bdb9a 100644 --- a/docs/dir_51a7c7233efd277e3898c7f3689e7b5b.html +++ b/docs/dir_51a7c7233efd277e3898c7f3689e7b5b.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_588b87f799233a7c3afc1168633bb252.html b/docs/dir_588b87f799233a7c3afc1168633bb252.html index e02d52c37c..56fb1e8102 100644 --- a/docs/dir_588b87f799233a7c3afc1168633bb252.html +++ b/docs/dir_588b87f799233a7c3afc1168633bb252.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_64597db6ac7a9160e951a4226a03f10e.html b/docs/dir_64597db6ac7a9160e951a4226a03f10e.html index 8f66d74520..1ba0477d9d 100644 --- a/docs/dir_64597db6ac7a9160e951a4226a03f10e.html +++ b/docs/dir_64597db6ac7a9160e951a4226a03f10e.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_65bafb41b3669ba481c8da543a696a08.html b/docs/dir_65bafb41b3669ba481c8da543a696a08.html index f335d5f08a..3f46d36cfd 100644 --- a/docs/dir_65bafb41b3669ba481c8da543a696a08.html +++ b/docs/dir_65bafb41b3669ba481c8da543a696a08.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_6fe4b0529cd3ec97045d3314254a0cce.html b/docs/dir_6fe4b0529cd3ec97045d3314254a0cce.html index 2ad23924fa..c8832a31f6 100644 --- a/docs/dir_6fe4b0529cd3ec97045d3314254a0cce.html +++ b/docs/dir_6fe4b0529cd3ec97045d3314254a0cce.html @@ -76,7 +76,7 @@ Directories diff --git a/docs/dir_7053349436b45d276056de3c928a6fc6.html b/docs/dir_7053349436b45d276056de3c928a6fc6.html index d51b3e9463..f2644c57f4 100644 --- a/docs/dir_7053349436b45d276056de3c928a6fc6.html +++ b/docs/dir_7053349436b45d276056de3c928a6fc6.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_7fa7c3de4a91b9652697b9f1c2d38e70.html b/docs/dir_7fa7c3de4a91b9652697b9f1c2d38e70.html index 034d0e512a..9de3f6da07 100644 --- a/docs/dir_7fa7c3de4a91b9652697b9f1c2d38e70.html +++ b/docs/dir_7fa7c3de4a91b9652697b9f1c2d38e70.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_83c56f445d5c796bd14e4ebf939c29ad.html b/docs/dir_83c56f445d5c796bd14e4ebf939c29ad.html index 09b9fffd20..de9ac61c80 100644 --- a/docs/dir_83c56f445d5c796bd14e4ebf939c29ad.html +++ b/docs/dir_83c56f445d5c796bd14e4ebf939c29ad.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_880f0837661bea0e588ff6a42c226fba.html b/docs/dir_880f0837661bea0e588ff6a42c226fba.html index 759e7c2d0b..801facd652 100644 --- a/docs/dir_880f0837661bea0e588ff6a42c226fba.html +++ b/docs/dir_880f0837661bea0e588ff6a42c226fba.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_933242dc2ed3ec7a82c146e98110781e.html b/docs/dir_933242dc2ed3ec7a82c146e98110781e.html index 6dbc2d5b91..9e2d943e0a 100644 --- a/docs/dir_933242dc2ed3ec7a82c146e98110781e.html +++ b/docs/dir_933242dc2ed3ec7a82c146e98110781e.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_aa847bee70cdde822696c7e33a504139.html b/docs/dir_aa847bee70cdde822696c7e33a504139.html index 040efb30c8..8f9dd144e3 100644 --- a/docs/dir_aa847bee70cdde822696c7e33a504139.html +++ b/docs/dir_aa847bee70cdde822696c7e33a504139.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_ae142483ff91a68c468a97c037f98d4d.html b/docs/dir_ae142483ff91a68c468a97c037f98d4d.html index fa506db3d4..508f7c5ca1 100644 --- a/docs/dir_ae142483ff91a68c468a97c037f98d4d.html +++ b/docs/dir_ae142483ff91a68c468a97c037f98d4d.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_b23f8e22c8c095d1c8c0cb8f88104a00.html b/docs/dir_b23f8e22c8c095d1c8c0cb8f88104a00.html index 1507c5c32d..5b0a39d7c9 100644 --- a/docs/dir_b23f8e22c8c095d1c8c0cb8f88104a00.html +++ b/docs/dir_b23f8e22c8c095d1c8c0cb8f88104a00.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_b7f276137d53b05d7f6b34219adc0a31.html b/docs/dir_b7f276137d53b05d7f6b34219adc0a31.html index 82d1a466a6..bb6fb83c1c 100644 --- a/docs/dir_b7f276137d53b05d7f6b34219adc0a31.html +++ b/docs/dir_b7f276137d53b05d7f6b34219adc0a31.html @@ -76,7 +76,7 @@ Directories diff --git a/docs/dir_b885194e7131202a9b4650a8967e838c.html b/docs/dir_b885194e7131202a9b4650a8967e838c.html index 005716b2b6..3b35d9a751 100644 --- a/docs/dir_b885194e7131202a9b4650a8967e838c.html +++ b/docs/dir_b885194e7131202a9b4650a8967e838c.html @@ -76,7 +76,7 @@ Directories diff --git a/docs/dir_b8a35a7f00287a46b0da66a108ec1239.html b/docs/dir_b8a35a7f00287a46b0da66a108ec1239.html index e6e29cd794..b9c3f6a81a 100644 --- a/docs/dir_b8a35a7f00287a46b0da66a108ec1239.html +++ b/docs/dir_b8a35a7f00287a46b0da66a108ec1239.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_bf7f1d16febc509cca62cff27fb88644.html b/docs/dir_bf7f1d16febc509cca62cff27fb88644.html index a455a94487..5bef56e8d8 100644 --- a/docs/dir_bf7f1d16febc509cca62cff27fb88644.html +++ b/docs/dir_bf7f1d16febc509cca62cff27fb88644.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_c41da90e13af52a77978e497cf9cac63.html b/docs/dir_c41da90e13af52a77978e497cf9cac63.html index 7e68f2fc45..52533f57a5 100644 --- a/docs/dir_c41da90e13af52a77978e497cf9cac63.html +++ b/docs/dir_c41da90e13af52a77978e497cf9cac63.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_c727d19e3a8f99ea2539fb71bdb2ad10.html b/docs/dir_c727d19e3a8f99ea2539fb71bdb2ad10.html index fd783636b0..5ae8f42cba 100644 --- a/docs/dir_c727d19e3a8f99ea2539fb71bdb2ad10.html +++ b/docs/dir_c727d19e3a8f99ea2539fb71bdb2ad10.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_d258fb6e36cbaad69b44b6c9489b2bbb.html b/docs/dir_d258fb6e36cbaad69b44b6c9489b2bbb.html index 28625d063f..88473e08bf 100644 --- a/docs/dir_d258fb6e36cbaad69b44b6c9489b2bbb.html +++ b/docs/dir_d258fb6e36cbaad69b44b6c9489b2bbb.html @@ -76,7 +76,7 @@ Directories diff --git a/docs/dir_e329e4913ca1adf6e112c00fbb0d634f.html b/docs/dir_e329e4913ca1adf6e112c00fbb0d634f.html index bdb47f7494..ea8256462c 100644 --- a/docs/dir_e329e4913ca1adf6e112c00fbb0d634f.html +++ b/docs/dir_e329e4913ca1adf6e112c00fbb0d634f.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_e3bda0bde998a4d5063328245b9909be.html b/docs/dir_e3bda0bde998a4d5063328245b9909be.html index 2745952710..73411fb487 100644 --- a/docs/dir_e3bda0bde998a4d5063328245b9909be.html +++ b/docs/dir_e3bda0bde998a4d5063328245b9909be.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_f74090996960c752a82246b98a23aa62.html b/docs/dir_f74090996960c752a82246b98a23aa62.html index 895fdaeed7..a0b3658517 100644 --- a/docs/dir_f74090996960c752a82246b98a23aa62.html +++ b/docs/dir_f74090996960c752a82246b98a23aa62.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/dir_f99dae54fe7170f791f339b952d5067a.html b/docs/dir_f99dae54fe7170f791f339b952d5067a.html index 80fe11c940..6fb1f7325c 100644 --- a/docs/dir_f99dae54fe7170f791f339b952d5067a.html +++ b/docs/dir_f99dae54fe7170f791f339b952d5067a.html @@ -78,7 +78,7 @@ Directories diff --git a/docs/dir_ffb529e2a1792bf603304ea6ff9bf092.html b/docs/dir_ffb529e2a1792bf603304ea6ff9bf092.html index 9cb82a55d5..c1519c0c35 100644 --- a/docs/dir_ffb529e2a1792bf603304ea6ff9bf092.html +++ b/docs/dir_ffb529e2a1792bf603304ea6ff9bf092.html @@ -72,7 +72,7 @@ $(function() { diff --git a/docs/files.html b/docs/files.html index e5665948f8..f2b276c5de 100644 --- a/docs/files.html +++ b/docs/files.html @@ -584,7 +584,7 @@ $(function() { diff --git a/docs/functions.html b/docs/functions.html index 6f71a892fa..d4319a01a4 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -187,7 +187,7 @@ $(function() { : shaka::xml::RepresentationXmlNode
      • AddVODOnlyInfo() -: shaka::xml::RepresentationXmlNode +: shaka::xml::RepresentationXmlNode
      • Advance() : shaka::media::NaluReader @@ -248,7 +248,7 @@ $(function() { diff --git a/docs/functions_b.html b/docs/functions_b.html index 6cfbbf11cd..1febc5a825 100644 --- a/docs/functions_b.html +++ b/docs/functions_b.html @@ -201,7 +201,7 @@ $(function() { diff --git a/docs/functions_c.html b/docs/functions_c.html index ec8d590511..aad75be4e9 100644 --- a/docs/functions_c.html +++ b/docs/functions_c.html @@ -245,7 +245,7 @@ $(function() { diff --git a/docs/functions_d.html b/docs/functions_d.html index e989211439..53021a10af 100644 --- a/docs/functions_d.html +++ b/docs/functions_d.html @@ -165,7 +165,7 @@ $(function() { diff --git a/docs/functions_e.html b/docs/functions_e.html index 4443461e33..7ad0ad2d43 100644 --- a/docs/functions_e.html +++ b/docs/functions_e.html @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/functions_enum.html b/docs/functions_enum.html index 63a8bc58d4..b84e059d11 100644 --- a/docs/functions_enum.html +++ b/docs/functions_enum.html @@ -69,7 +69,7 @@ $(function() { diff --git a/docs/functions_eval.html b/docs/functions_eval.html index 7a9fbc23f8..edb630cc33 100644 --- a/docs/functions_eval.html +++ b/docs/functions_eval.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/functions_f.html b/docs/functions_f.html index d0f7888bd1..64aae87a8d 100644 --- a/docs/functions_f.html +++ b/docs/functions_f.html @@ -145,7 +145,7 @@ $(function() { diff --git a/docs/functions_func.html b/docs/functions_func.html index 2d649638b4..b85254a65a 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -184,7 +184,7 @@ $(function() { : shaka::xml::RepresentationXmlNode
      • AddVODOnlyInfo() -: shaka::xml::RepresentationXmlNode +: shaka::xml::RepresentationXmlNode
      • Advance() : shaka::media::NaluReader @@ -239,7 +239,7 @@ $(function() { diff --git a/docs/functions_func_b.html b/docs/functions_func_b.html index b05f2fd3b2..b48ca229cc 100644 --- a/docs/functions_func_b.html +++ b/docs/functions_func_b.html @@ -188,7 +188,7 @@ $(function() { diff --git a/docs/functions_func_c.html b/docs/functions_func_c.html index 7539a08209..22e473084c 100644 --- a/docs/functions_func_c.html +++ b/docs/functions_func_c.html @@ -215,7 +215,7 @@ $(function() { diff --git a/docs/functions_func_d.html b/docs/functions_func_d.html index b5dd79c19d..3fcaa6618b 100644 --- a/docs/functions_func_d.html +++ b/docs/functions_func_d.html @@ -139,7 +139,7 @@ $(function() { diff --git a/docs/functions_func_e.html b/docs/functions_func_e.html index b553cc7992..5621ae14a4 100644 --- a/docs/functions_func_e.html +++ b/docs/functions_func_e.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/functions_func_f.html b/docs/functions_func_f.html index 8ff534974c..8721b3ece7 100644 --- a/docs/functions_func_f.html +++ b/docs/functions_func_f.html @@ -145,7 +145,7 @@ $(function() { diff --git a/docs/functions_func_g.html b/docs/functions_func_g.html index 00f42d3f18..4d30764d8a 100644 --- a/docs/functions_func_g.html +++ b/docs/functions_func_g.html @@ -302,7 +302,7 @@ $(function() { diff --git a/docs/functions_func_h.html b/docs/functions_func_h.html index 7fee650185..224132f2a4 100644 --- a/docs/functions_func_h.html +++ b/docs/functions_func_h.html @@ -114,7 +114,7 @@ $(function() { diff --git a/docs/functions_func_i.html b/docs/functions_func_i.html index 5d097cb10b..9a2249e239 100644 --- a/docs/functions_func_i.html +++ b/docs/functions_func_i.html @@ -189,7 +189,7 @@ $(function() { diff --git a/docs/functions_func_l.html b/docs/functions_func_l.html index affc545a83..d6079eec8d 100644 --- a/docs/functions_func_l.html +++ b/docs/functions_func_l.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/functions_func_m.html b/docs/functions_func_m.html index a023fd0653..70faed2745 100644 --- a/docs/functions_func_m.html +++ b/docs/functions_func_m.html @@ -107,13 +107,13 @@ $(function() { : shaka::media::CombinedMuxerListener
      • MuxerListenerFactory() -: shaka::media::MuxerListenerFactory +: shaka::media::MuxerListenerFactory
      diff --git a/docs/functions_func_n.html b/docs/functions_func_n.html index 212fb86562..9a4ed0f595 100644 --- a/docs/functions_func_n.html +++ b/docs/functions_func_n.html @@ -138,7 +138,7 @@ $(function() { diff --git a/docs/functions_func_o.html b/docs/functions_func_o.html index 226bcc95ed..88330be558 100644 --- a/docs/functions_func_o.html +++ b/docs/functions_func_o.html @@ -167,7 +167,7 @@ $(function() { diff --git a/docs/functions_func_p.html b/docs/functions_func_p.html index 21b38423d1..e90f129faf 100644 --- a/docs/functions_func_p.html +++ b/docs/functions_func_p.html @@ -211,7 +211,7 @@ $(function() { diff --git a/docs/functions_func_r.html b/docs/functions_func_r.html index c62072b4cf..9a21e40564 100644 --- a/docs/functions_func_r.html +++ b/docs/functions_func_r.html @@ -146,7 +146,7 @@ $(function() { diff --git a/docs/functions_func_s.html b/docs/functions_func_s.html index be32aab735..6e5af65d9b 100644 --- a/docs/functions_func_s.html +++ b/docs/functions_func_s.html @@ -304,7 +304,7 @@ $(function() { diff --git a/docs/functions_func_t.html b/docs/functions_func_t.html index ba6ad95df0..201b864a78 100644 --- a/docs/functions_func_t.html +++ b/docs/functions_func_t.html @@ -135,7 +135,7 @@ $(function() { diff --git a/docs/functions_func_u.html b/docs/functions_func_u.html index f960ed8296..d79a6a4a22 100644 --- a/docs/functions_func_u.html +++ b/docs/functions_func_u.html @@ -84,11 +84,14 @@ $(function() {
    • use_constant_iv() : shaka::media::AesCryptor
    • +
    • use_segment_list() +: shaka::MpdNotifier +
    diff --git a/docs/functions_func_v.html b/docs/functions_func_v.html index 0f461e8637..a3402600c3 100644 --- a/docs/functions_func_v.html +++ b/docs/functions_func_v.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/functions_func_w.html b/docs/functions_func_w.html index ca89e77f58..d8d974e4c1 100644 --- a/docs/functions_func_w.html +++ b/docs/functions_func_w.html @@ -147,7 +147,7 @@ $(function() { diff --git a/docs/functions_func_x.html b/docs/functions_func_x.html index eb57a189f4..9f0ee0f774 100644 --- a/docs/functions_func_x.html +++ b/docs/functions_func_x.html @@ -71,7 +71,7 @@ $(function() { diff --git a/docs/functions_func_~.html b/docs/functions_func_~.html index 3937b1be2c..97d090d4bb 100644 --- a/docs/functions_func_~.html +++ b/docs/functions_func_~.html @@ -74,7 +74,7 @@ $(function() { diff --git a/docs/functions_g.html b/docs/functions_g.html index 43a9b77f31..0120c90e83 100644 --- a/docs/functions_g.html +++ b/docs/functions_g.html @@ -314,7 +314,7 @@ $(function() { diff --git a/docs/functions_h.html b/docs/functions_h.html index ec07b04412..15efbed1c8 100644 --- a/docs/functions_h.html +++ b/docs/functions_h.html @@ -137,7 +137,7 @@ $(function() { diff --git a/docs/functions_i.html b/docs/functions_i.html index 9a41232b70..0d8cdae362 100644 --- a/docs/functions_i.html +++ b/docs/functions_i.html @@ -216,7 +216,7 @@ $(function() { diff --git a/docs/functions_k.html b/docs/functions_k.html index 5969e2a08b..3fc18ebcc1 100644 --- a/docs/functions_k.html +++ b/docs/functions_k.html @@ -122,7 +122,7 @@ $(function() { diff --git a/docs/functions_l.html b/docs/functions_l.html index 087344b775..b81a5f9d16 100644 --- a/docs/functions_l.html +++ b/docs/functions_l.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/functions_m.html b/docs/functions_m.html index 26bae89b5c..ea196f3aea 100644 --- a/docs/functions_m.html +++ b/docs/functions_m.html @@ -131,13 +131,13 @@ $(function() { : shaka::media::CombinedMuxerListener
  • MuxerListenerFactory() -: shaka::media::MuxerListenerFactory +: shaka::media::MuxerListenerFactory
diff --git a/docs/functions_n.html b/docs/functions_n.html index a98ee8eb4b..95833430d6 100644 --- a/docs/functions_n.html +++ b/docs/functions_n.html @@ -144,7 +144,7 @@ $(function() { diff --git a/docs/functions_o.html b/docs/functions_o.html index dc2282ef7e..f66ec42949 100644 --- a/docs/functions_o.html +++ b/docs/functions_o.html @@ -179,7 +179,7 @@ $(function() { diff --git a/docs/functions_p.html b/docs/functions_p.html index ba155aea45..f529cb9fcd 100644 --- a/docs/functions_p.html +++ b/docs/functions_p.html @@ -239,7 +239,7 @@ $(function() { diff --git a/docs/functions_r.html b/docs/functions_r.html index c212c78d48..ba57fc11eb 100644 --- a/docs/functions_r.html +++ b/docs/functions_r.html @@ -155,7 +155,7 @@ $(function() { diff --git a/docs/functions_rela.html b/docs/functions_rela.html index 44135fc405..67f88ecd06 100644 --- a/docs/functions_rela.html +++ b/docs/functions_rela.html @@ -69,7 +69,7 @@ $(function() { diff --git a/docs/functions_s.html b/docs/functions_s.html index 3d26a1c03a..d9f008bba6 100644 --- a/docs/functions_s.html +++ b/docs/functions_s.html @@ -358,7 +358,7 @@ $(function() { diff --git a/docs/functions_t.html b/docs/functions_t.html index 16f4f59701..132d8aa87b 100644 --- a/docs/functions_t.html +++ b/docs/functions_t.html @@ -156,7 +156,7 @@ $(function() { diff --git a/docs/functions_type.html b/docs/functions_type.html index 96f706bc4e..15e35d3903 100644 --- a/docs/functions_type.html +++ b/docs/functions_type.html @@ -75,7 +75,7 @@ $(function() { diff --git a/docs/functions_u.html b/docs/functions_u.html index 451b5f1cbc..577e286688 100644 --- a/docs/functions_u.html +++ b/docs/functions_u.html @@ -84,11 +84,15 @@ $(function() {
  • use_constant_iv() : shaka::media::AesCryptor
  • +
  • use_segment_list() +: shaka::MpdNotifier +, shaka::MpdParams +
  • diff --git a/docs/functions_v.html b/docs/functions_v.html index 59fecab985..6910d6ff69 100644 --- a/docs/functions_v.html +++ b/docs/functions_v.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/functions_vars.html b/docs/functions_vars.html index e78105fbdf..be0c346af9 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -468,6 +468,13 @@ $(function() { +

    - u -

    + +

    - v -

    • vp9_subsample_encryption : shaka::EncryptionParams @@ -493,7 +500,7 @@ $(function() { diff --git a/docs/functions_w.html b/docs/functions_w.html index cb59a8597d..dbc9ec676b 100644 --- a/docs/functions_w.html +++ b/docs/functions_w.html @@ -160,7 +160,7 @@ $(function() { diff --git a/docs/functions_x.html b/docs/functions_x.html index 6fdb424d45..14ee67b780 100644 --- a/docs/functions_x.html +++ b/docs/functions_x.html @@ -71,7 +71,7 @@ $(function() { diff --git a/docs/functions_~.html b/docs/functions_~.html index efd3e45b76..57a380efc9 100644 --- a/docs/functions_~.html +++ b/docs/functions_~.html @@ -74,7 +74,7 @@ $(function() { diff --git a/docs/hierarchy.html b/docs/hierarchy.html index c8b1680751..53a315703d 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -461,7 +461,7 @@ $(function() { diff --git a/docs/index.html b/docs/index.html index 72b0c8c646..4610876acb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -68,7 +68,7 @@ $(function() { diff --git a/docs/menudata.js b/docs/menudata.js index de782b0c72..30c95187e6 100644 --- a/docs/menudata.js +++ b/docs/menudata.js @@ -99,6 +99,7 @@ var menudata={children:[ {text:"r",url:"functions_vars.html#index_r"}, {text:"s",url:"functions_vars.html#index_s"}, {text:"t",url:"functions_vars.html#index_t"}, +{text:"u",url:"functions_vars.html#index_u"}, {text:"v",url:"functions_vars.html#index_v"}, {text:"w",url:"functions_vars.html#index_w"}]}, {text:"Typedefs",url:"functions_type.html"}, diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html index 5b7cfc00d1..ee1091df31 100644 --- a/docs/namespacemembers.html +++ b/docs/namespacemembers.html @@ -120,7 +120,7 @@ $(function() { diff --git a/docs/namespacemembers_enum.html b/docs/namespacemembers_enum.html index dc1eaa5074..400287e692 100644 --- a/docs/namespacemembers_enum.html +++ b/docs/namespacemembers_enum.html @@ -75,7 +75,7 @@ $(function() { diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html index e7bf776bbe..2fce41a198 100644 --- a/docs/namespacemembers_func.html +++ b/docs/namespacemembers_func.html @@ -111,7 +111,7 @@ $(function() { diff --git a/docs/namespaces.html b/docs/namespaces.html index f641fb390e..1c16acfc91 100644 --- a/docs/namespaces.html +++ b/docs/namespaces.html @@ -470,7 +470,7 @@ $(function() { diff --git a/docs/search/all_0.js b/docs/search/all_0.js index ce85eb2d6d..de4c713441 100644 --- a/docs/search/all_0.js +++ b/docs/search/all_0.js @@ -46,7 +46,7 @@ var searchData= ['addthread_43',['AddThread',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a84f1c4ad047ffa4bd75d5d1426bf9cd2',1,'shaka::media::SyncPointQueue']]], ['addtrickplayreference_44',['AddTrickPlayReference',['../d8/d8e/classshaka_1_1AdaptationSet.html#a834d1c61e34db517169b802b8a11eeda',1,'shaka::AdaptationSet']]], ['addvideoinfo_45',['AddVideoInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#a11457f5b89522919b61d83cc0bbd51dc',1,'shaka::xml::RepresentationXmlNode']]], - ['addvodonlyinfo_46',['AddVODOnlyInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#a5141fe43e6a15233d6214bc05eb52f0d',1,'shaka::xml::RepresentationXmlNode']]], + ['addvodonlyinfo_46',['AddVODOnlyInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#aed9603fb7d1ca1b283060e2a39590be9',1,'shaka::xml::RepresentationXmlNode']]], ['adtsheader_47',['AdtsHeader',['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html',1,'shaka::media::mp2t']]], ['advance_48',['Advance',['../db/d86/classshaka_1_1media_1_1NaluReader.html#ae051f1f92d84acfcd4cc159d972d647a',1,'shaka::media::NaluReader']]], ['advancechunk_49',['AdvanceChunk',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#aacde1d08a3ce21cf187a1dff4fe031b4',1,'shaka::media::mp4::ChunkInfoIterator']]], diff --git a/docs/search/all_13.js b/docs/search/all_13.js index 645302f7af..3ea0f7b28f 100644 --- a/docs/search/all_13.js +++ b/docs/search/all_13.js @@ -8,5 +8,6 @@ var searchData= ['updateiv_873',['UpdateIv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a812dfc641212f8eb877ab153de7fbb37',1,'shaka::media::AesCryptor']]], ['updateprogress_874',['UpdateProgress',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#afd8bb3584c984c711615800ad93642a3',1,'shaka::media::mp4::Segmenter::UpdateProgress()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a32dc8b7461252b99fe52384b04e3bca2',1,'shaka::media::webm::Segmenter::UpdateProgress()']]], ['use_5fconstant_5fiv_875',['use_constant_iv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a94d868d19deb5bdc8083328d3e5da6a8',1,'shaka::media::AesCryptor']]], - ['utctiming_876',['UtcTiming',['../d3/d6e/structshaka_1_1MpdParams_1_1UtcTiming.html',1,'shaka::MpdParams']]] + ['use_5fsegment_5flist_876',['use_segment_list',['../df/ddc/structshaka_1_1MpdParams.html#a32f74783f0055bff430910defb2c5a3b',1,'shaka::MpdParams::use_segment_list()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#a0c44f9156ecc3dcef724b891aae65b24',1,'shaka::MpdNotifier::use_segment_list()']]], + ['utctiming_877',['UtcTiming',['../d3/d6e/structshaka_1_1MpdParams_1_1UtcTiming.html',1,'shaka::MpdParams']]] ]; diff --git a/docs/search/all_14.js b/docs/search/all_14.js index a88aa8cdaa..bbc224e8b7 100644 --- a/docs/search/all_14.js +++ b/docs/search/all_14.js @@ -1,27 +1,27 @@ var searchData= [ - ['validateflag_877',['ValidateFlag',['../d8/daf/namespaceshaka.html#a952293a7213f285843f28b7363ee14d6',1,'shaka']]], - ['validateoutputstreamindex_878',['ValidateOutputStreamIndex',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a908f4c9bb410d1528b85e2c7f824deb6',1,'shaka::media::Demuxer::ValidateOutputStreamIndex()'],['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#abe33a7328099b7917b2b3ba1038997b0',1,'shaka::media::MediaHandler::ValidateOutputStreamIndex()']]], - ['validateprcryptoflags_879',['ValidatePRCryptoFlags',['../d8/daf/namespaceshaka.html#a8b6212ccc4b98e5fdb72f84acf252c6b',1,'shaka']]], - ['validaterawkeycryptoflags_880',['ValidateRawKeyCryptoFlags',['../d8/daf/namespaceshaka.html#ab611f8e843f4834b9d7c30db212a946e',1,'shaka']]], - ['validatewidevinecryptoflags_881',['ValidateWidevineCryptoFlags',['../d8/daf/namespaceshaka.html#ade3cbb360c0dcaacc5667676af885008',1,'shaka']]], - ['verifysignature_882',['VerifySignature',['../d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html#a146cc97c8fcacadde1b08c373b766fe4',1,'shaka::media::RsaPublicKey']]], - ['video_5fdescription_883',['video_description',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a463f421423621ec47b3df614526597dd',1,'shaka::media::mp4::TrackRunIterator']]], - ['videomediaheader_884',['VideoMediaHeader',['../d1/db0/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader.html',1,'shaka::media::mp4']]], - ['videoprogrammaptablewriter_885',['VideoProgramMapTableWriter',['../da/d6a/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter.html',1,'shaka::media::mp2t']]], - ['videosampleentry_886',['VideoSampleEntry',['../d0/d73/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry.html',1,'shaka::media::mp4']]], - ['videosliceheaderparser_887',['VideoSliceHeaderParser',['../dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html',1,'shaka::media']]], - ['videosliceinfo_888',['VideoSliceInfo',['../d8/dc2/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo.html',1,'shaka::media::mp2t::EsParserH26x']]], - ['videostreaminfo_889',['VideoStreamInfo',['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html',1,'shaka::media::VideoStreamInfo'],['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a7c4eb713af9de075f4214de0b3c4aaf4',1,'shaka::media::VideoStreamInfo::VideoStreamInfo()']]], - ['videostreaminfoparameters_890',['VideoStreamInfoParameters',['../d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html',1,'shaka::media']]], - ['vodmediainfodumpmuxerlistener_891',['VodMediaInfoDumpMuxerListener',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html',1,'shaka::media']]], - ['vp8parser_892',['VP8Parser',['../d8/d14/classshaka_1_1media_1_1VP8Parser.html',1,'shaka::media']]], - ['vp9_5fsubsample_5fencryption_893',['vp9_subsample_encryption',['../dc/da0/structshaka_1_1EncryptionParams.html#a48d415f17d51306ce7e1931fd954c37c',1,'shaka::EncryptionParams']]], - ['vp9parser_894',['VP9Parser',['../db/d5a/classshaka_1_1media_1_1VP9Parser.html',1,'shaka::media']]], - ['vpcodecconfigurationrecord_895',['VPCodecConfigurationRecord',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html',1,'shaka::media']]], - ['vpxframeinfo_896',['VPxFrameInfo',['../d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html',1,'shaka::media']]], - ['vpxparser_897',['VPxParser',['../db/dcb/classshaka_1_1media_1_1VPxParser.html',1,'shaka::media']]], - ['vttadditionaltextbox_898',['VTTAdditionalTextBox',['../d6/d79/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html',1,'shaka::media::mp4']]], - ['vttcuebox_899',['VTTCueBox',['../d6/daa/structshaka_1_1media_1_1mp4_1_1VTTCueBox.html',1,'shaka::media::mp4']]], - ['vttemptycuebox_900',['VTTEmptyCueBox',['../d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html',1,'shaka::media::mp4']]] + ['validateflag_878',['ValidateFlag',['../d8/daf/namespaceshaka.html#a952293a7213f285843f28b7363ee14d6',1,'shaka']]], + ['validateoutputstreamindex_879',['ValidateOutputStreamIndex',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a908f4c9bb410d1528b85e2c7f824deb6',1,'shaka::media::Demuxer::ValidateOutputStreamIndex()'],['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#abe33a7328099b7917b2b3ba1038997b0',1,'shaka::media::MediaHandler::ValidateOutputStreamIndex()']]], + ['validateprcryptoflags_880',['ValidatePRCryptoFlags',['../d8/daf/namespaceshaka.html#a8b6212ccc4b98e5fdb72f84acf252c6b',1,'shaka']]], + ['validaterawkeycryptoflags_881',['ValidateRawKeyCryptoFlags',['../d8/daf/namespaceshaka.html#ab611f8e843f4834b9d7c30db212a946e',1,'shaka']]], + ['validatewidevinecryptoflags_882',['ValidateWidevineCryptoFlags',['../d8/daf/namespaceshaka.html#ade3cbb360c0dcaacc5667676af885008',1,'shaka']]], + ['verifysignature_883',['VerifySignature',['../d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html#a146cc97c8fcacadde1b08c373b766fe4',1,'shaka::media::RsaPublicKey']]], + ['video_5fdescription_884',['video_description',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a463f421423621ec47b3df614526597dd',1,'shaka::media::mp4::TrackRunIterator']]], + ['videomediaheader_885',['VideoMediaHeader',['../d1/db0/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader.html',1,'shaka::media::mp4']]], + ['videoprogrammaptablewriter_886',['VideoProgramMapTableWriter',['../da/d6a/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter.html',1,'shaka::media::mp2t']]], + ['videosampleentry_887',['VideoSampleEntry',['../d0/d73/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry.html',1,'shaka::media::mp4']]], + ['videosliceheaderparser_888',['VideoSliceHeaderParser',['../dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html',1,'shaka::media']]], + ['videosliceinfo_889',['VideoSliceInfo',['../d8/dc2/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo.html',1,'shaka::media::mp2t::EsParserH26x']]], + ['videostreaminfo_890',['VideoStreamInfo',['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html',1,'shaka::media::VideoStreamInfo'],['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a7c4eb713af9de075f4214de0b3c4aaf4',1,'shaka::media::VideoStreamInfo::VideoStreamInfo()']]], + ['videostreaminfoparameters_891',['VideoStreamInfoParameters',['../d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html',1,'shaka::media']]], + ['vodmediainfodumpmuxerlistener_892',['VodMediaInfoDumpMuxerListener',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html',1,'shaka::media']]], + ['vp8parser_893',['VP8Parser',['../d8/d14/classshaka_1_1media_1_1VP8Parser.html',1,'shaka::media']]], + ['vp9_5fsubsample_5fencryption_894',['vp9_subsample_encryption',['../dc/da0/structshaka_1_1EncryptionParams.html#a48d415f17d51306ce7e1931fd954c37c',1,'shaka::EncryptionParams']]], + ['vp9parser_895',['VP9Parser',['../db/d5a/classshaka_1_1media_1_1VP9Parser.html',1,'shaka::media']]], + ['vpcodecconfigurationrecord_896',['VPCodecConfigurationRecord',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html',1,'shaka::media']]], + ['vpxframeinfo_897',['VPxFrameInfo',['../d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html',1,'shaka::media']]], + ['vpxparser_898',['VPxParser',['../db/dcb/classshaka_1_1media_1_1VPxParser.html',1,'shaka::media']]], + ['vttadditionaltextbox_899',['VTTAdditionalTextBox',['../d6/d79/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html',1,'shaka::media::mp4']]], + ['vttcuebox_900',['VTTCueBox',['../d6/daa/structshaka_1_1media_1_1mp4_1_1VTTCueBox.html',1,'shaka::media::mp4']]], + ['vttemptycuebox_901',['VTTEmptyCueBox',['../d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html',1,'shaka::media::mp4']]] ]; diff --git a/docs/search/all_15.js b/docs/search/all_15.js index 1d53d4389a..0bfeea5891 100644 --- a/docs/search/all_15.js +++ b/docs/search/all_15.js @@ -1,48 +1,48 @@ var searchData= [ - ['waituntilemptyorclosed_901',['WaitUntilEmptyOrClosed',['../df/d4e/classshaka_1_1IoCache.html#abafe56067c5961d56611271b6fc5a760',1,'shaka::IoCache']]], - ['webmaudioclient_902',['WebMAudioClient',['../d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html',1,'shaka::media']]], - ['webmclusterparser_903',['WebMClusterParser',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html',1,'shaka::media::WebMClusterParser'],['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#a7a9c787af1bbd47c4a8a7c4e6ce9ff78',1,'shaka::media::WebMClusterParser::WebMClusterParser()']]], - ['webmcontentencodingsclient_904',['WebMContentEncodingsClient',['../d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html',1,'shaka::media']]], - ['webminfoparser_905',['WebMInfoParser',['../db/dae/classshaka_1_1media_1_1WebMInfoParser.html',1,'shaka::media']]], - ['webmlistparser_906',['WebMListParser',['../dc/dca/classshaka_1_1media_1_1WebMListParser.html',1,'shaka::media::WebMListParser'],['../dc/dca/classshaka_1_1media_1_1WebMListParser.html#ac228770d1828937f8aa6becec23210e1',1,'shaka::media::WebMListParser::WebMListParser()']]], - ['webmmediaparser_907',['WebMMediaParser',['../d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html',1,'shaka::media']]], - ['webmmuxer_908',['WebMMuxer',['../d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html',1,'shaka::media::webm::WebMMuxer'],['../d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html#a17b47db217334b2ec328bdbf1a9c7e29',1,'shaka::media::webm::WebMMuxer::WebMMuxer()']]], - ['webmparserclient_909',['WebMParserClient',['../d5/dec/classshaka_1_1media_1_1WebMParserClient.html',1,'shaka::media']]], - ['webmtracksparser_910',['WebMTracksParser',['../d8/d86/classshaka_1_1media_1_1WebMTracksParser.html',1,'shaka::media']]], - ['webmvideoclient_911',['WebMVideoClient',['../d3/d67/classshaka_1_1media_1_1WebMVideoClient.html',1,'shaka::media']]], - ['webmwebvttparser_912',['WebMWebVTTParser',['../d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html',1,'shaka::media']]], - ['webvttconfigurationbox_913',['WebVTTConfigurationBox',['../d8/d20/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html',1,'shaka::media::mp4']]], - ['webvttfilebuffer_914',['WebVttFileBuffer',['../d6/dda/classshaka_1_1media_1_1WebVttFileBuffer.html',1,'shaka::media']]], - ['webvttmuxer_915',['WebVttMuxer',['../da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html',1,'shaka::media::webvtt::WebVttMuxer'],['../da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html#afee98006c3a5f19548c494f251785fc9',1,'shaka::media::webvtt::WebVttMuxer::WebVttMuxer()']]], - ['webvttparser_916',['WebVttParser',['../d9/d40/classshaka_1_1media_1_1WebVttParser.html',1,'shaka::media']]], - ['webvttsourcelabelbox_917',['WebVTTSourceLabelBox',['../d4/d33/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html',1,'shaka::media::mp4']]], - ['webvtttomp4handler_918',['WebVttToMp4Handler',['../d7/d53/classshaka_1_1media_1_1WebVttToMp4Handler.html',1,'shaka::media']]], - ['widevinedecryptionparams_919',['WidevineDecryptionParams',['../d8/d48/structshaka_1_1WidevineDecryptionParams.html',1,'shaka']]], - ['widevineencryptionparams_920',['WidevineEncryptionParams',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html',1,'shaka']]], - ['widevinekeysource_921',['WidevineKeySource',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html',1,'shaka::media::WidevineKeySource'],['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#aa292ed08d3bc9b0e84f700e6cde16950',1,'shaka::media::WidevineKeySource::WidevineKeySource()']]], - ['widevinepsshgenerator_922',['WidevinePsshGenerator',['../d5/d69/classshaka_1_1media_1_1WidevinePsshGenerator.html',1,'shaka::media']]], - ['widevinesigner_923',['WidevineSigner',['../df/d22/structshaka_1_1WidevineSigner.html',1,'shaka']]], - ['width_924',['width',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a9ec6b15406e4877a59cefe00e0c00dcf',1,'shaka::media::TextSettings::width()'],['../d4/d60/structshaka_1_1media_1_1TextRegion.html#aaa1f0ff704a50c7b6e45b47c2f43b123',1,'shaka::media::TextRegion::width()']]], - ['window_5fanchor_5fx_925',['window_anchor_x',['../d4/d60/structshaka_1_1media_1_1TextRegion.html#a4552d1ca8127535c9041222e548a20f6',1,'shaka::media::TextRegion']]], - ['write_926',['Write',['../dc/d16/classshaka_1_1media_1_1SeekHead.html#a46313134eebf68a7c34187705726b982',1,'shaka::media::SeekHead::Write()'],['../dd/d40/classshaka_1_1CallbackFile.html#aa758dfb05daff81afa1ddfaf0bb0a105',1,'shaka::CallbackFile::Write()'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a2468514d1d9efdb15a9e4df2e44b75d8',1,'shaka::media::MkvWriter::Write()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a15bd0622fdb129d921287e690f117bde',1,'shaka::media::mp4::Box::Write()'],['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#aaf6147c9fe6648e04fba0993c8006e6b',1,'shaka::media::BaseDescriptor::Write()'],['../d4/dcb/classshaka_1_1UdpFile.html#a36722f3c436c88e451093ee21c0db754',1,'shaka::UdpFile::Write()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#ab8acfe4af14c1120ae6d2baa44a10583',1,'shaka::ThreadedIoFile::Write()'],['../d7/dbd/classshaka_1_1LocalFile.html#aee10b7f2898c5047eb8505f16c49311c',1,'shaka::LocalFile::Write()'],['../df/d4e/classshaka_1_1IoCache.html#a483277a6c68dd58cebb8dafb5c1dcd21',1,'shaka::IoCache::Write()'],['../d1/dc7/classshaka_1_1HttpFile.html#a412524f57722517b39d186fd10be445b',1,'shaka::HttpFile::Write()'],['../d3/d73/classshaka_1_1File.html#a8c498531ecbd205fceb0be3478361801',1,'shaka::File::Write()'],['../de/dad/classshaka_1_1MemoryFile.html#aa3d9455b7bc9d1c44d58ab39bd8bd27c',1,'shaka::MemoryFile::Write()']]], - ['write_5ffunc_927',['write_func',['../d9/da8/structshaka_1_1BufferCallbackParams.html#ad966040c5a75389ac6376c6378a0f307',1,'shaka::BufferCallbackParams']]], - ['writebits_928',['WriteBits',['../dc/d76/classshaka_1_1media_1_1BitWriter.html#aee5f905e55f262e38f5df506611663f1',1,'shaka::media::BitWriter']]], - ['writefileatomically_929',['WriteFileAtomically',['../d3/d73/classshaka_1_1File.html#a4b5280fe058359b5991037f90dde2b77',1,'shaka::File']]], - ['writefromfile_930',['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_931',['WriteHeader',['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#a7d0d63d60398a6bb2c0d738f1b6a4283',1,'shaka::media::BaseDescriptor::WriteHeader()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a57b8837c93d51f5cf03d3862069d509a',1,'shaka::media::mp4::Box::WriteHeader()']]], - ['writemasterplaylist_932',['WriteMasterPlaylist',['../d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html#af45d5809a7b5c807c92cde95ddf6c70c',1,'shaka::hls::MasterPlaylist']]], - ['writemediainfotofile_933',['WriteMediaInfoToFile',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#ae0a573e1c785164f40bfbfba2ced6a16',1,'shaka::media::VodMediaInfoDumpMuxerListener']]], - ['writemp4_934',['WriteMP4',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a17c95b92810ebb43d7dc9ab0783e5f2a',1,'shaka::media::VPCodecConfigurationRecord']]], - ['writempdtofile_935',['WriteMpdToFile',['../d8/daf/namespaceshaka.html#a7e940cda37fa0dbefef3b3cc9c802ab8',1,'shaka']]], - ['writer_936',['writer',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a0b9aa5e5669d771e12563e168d5c967d',1,'shaka::media::mp4::BoxBuffer']]], - ['writesegmentheader_937',['WriteSegmentHeader',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#aebcf73c5a1c3ae0f2608032d2a6ee445',1,'shaka::media::webm::Segmenter']]], - ['writestringtofile_938',['WriteStringToFile',['../d3/d73/classshaka_1_1File.html#a483ce187d628385d342748315d72f8ab',1,'shaka::File']]], - ['writetobuffer_939',['WriteToBuffer',['../de/d26/classshaka_1_1media_1_1Id3Tag.html#a3ac31812c4504b353472bd222580d68a',1,'shaka::media::Id3Tag']]], - ['writetofile_940',['WriteToFile',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a182ca5726d4fb7d3053f76b515042440',1,'shaka::hls::MediaPlaylist::WriteToFile()'],['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#a868dba843fcf923dd140fdda859a3a6d',1,'shaka::media::BufferWriter::WriteToFile()']]], - ['writetovector_941',['WriteToVector',['../de/d26/classshaka_1_1media_1_1Id3Tag.html#abf7b6258d9c648d93122631de698431e',1,'shaka::media::Id3Tag']]], - ['writevoid_942',['WriteVoid',['../dc/d16/classshaka_1_1media_1_1SeekHead.html#a1a7895c6f5548405377aabb9521111a1',1,'shaka::media::SeekHead']]], - ['writewebm_943',['WriteWebM',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a62bb64ea665385ae67c2fce8fb8b76bd',1,'shaka::media::VPCodecConfigurationRecord']]], - ['writing_5fdirection_944',['writing_direction',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a94dca124ccd2902b0e7466c37d05567e',1,'shaka::media::TextSettings']]], - ['wvmmediaparser_945',['WvmMediaParser',['../dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html',1,'shaka::media::wvm']]] + ['waituntilemptyorclosed_902',['WaitUntilEmptyOrClosed',['../df/d4e/classshaka_1_1IoCache.html#abafe56067c5961d56611271b6fc5a760',1,'shaka::IoCache']]], + ['webmaudioclient_903',['WebMAudioClient',['../d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html',1,'shaka::media']]], + ['webmclusterparser_904',['WebMClusterParser',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html',1,'shaka::media::WebMClusterParser'],['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#a7a9c787af1bbd47c4a8a7c4e6ce9ff78',1,'shaka::media::WebMClusterParser::WebMClusterParser()']]], + ['webmcontentencodingsclient_905',['WebMContentEncodingsClient',['../d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html',1,'shaka::media']]], + ['webminfoparser_906',['WebMInfoParser',['../db/dae/classshaka_1_1media_1_1WebMInfoParser.html',1,'shaka::media']]], + ['webmlistparser_907',['WebMListParser',['../dc/dca/classshaka_1_1media_1_1WebMListParser.html',1,'shaka::media::WebMListParser'],['../dc/dca/classshaka_1_1media_1_1WebMListParser.html#ac228770d1828937f8aa6becec23210e1',1,'shaka::media::WebMListParser::WebMListParser()']]], + ['webmmediaparser_908',['WebMMediaParser',['../d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html',1,'shaka::media']]], + ['webmmuxer_909',['WebMMuxer',['../d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html',1,'shaka::media::webm::WebMMuxer'],['../d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html#a17b47db217334b2ec328bdbf1a9c7e29',1,'shaka::media::webm::WebMMuxer::WebMMuxer()']]], + ['webmparserclient_910',['WebMParserClient',['../d5/dec/classshaka_1_1media_1_1WebMParserClient.html',1,'shaka::media']]], + ['webmtracksparser_911',['WebMTracksParser',['../d8/d86/classshaka_1_1media_1_1WebMTracksParser.html',1,'shaka::media']]], + ['webmvideoclient_912',['WebMVideoClient',['../d3/d67/classshaka_1_1media_1_1WebMVideoClient.html',1,'shaka::media']]], + ['webmwebvttparser_913',['WebMWebVTTParser',['../d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html',1,'shaka::media']]], + ['webvttconfigurationbox_914',['WebVTTConfigurationBox',['../d8/d20/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html',1,'shaka::media::mp4']]], + ['webvttfilebuffer_915',['WebVttFileBuffer',['../d6/dda/classshaka_1_1media_1_1WebVttFileBuffer.html',1,'shaka::media']]], + ['webvttmuxer_916',['WebVttMuxer',['../da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html',1,'shaka::media::webvtt::WebVttMuxer'],['../da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html#afee98006c3a5f19548c494f251785fc9',1,'shaka::media::webvtt::WebVttMuxer::WebVttMuxer()']]], + ['webvttparser_917',['WebVttParser',['../d9/d40/classshaka_1_1media_1_1WebVttParser.html',1,'shaka::media']]], + ['webvttsourcelabelbox_918',['WebVTTSourceLabelBox',['../d4/d33/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html',1,'shaka::media::mp4']]], + ['webvtttomp4handler_919',['WebVttToMp4Handler',['../d7/d53/classshaka_1_1media_1_1WebVttToMp4Handler.html',1,'shaka::media']]], + ['widevinedecryptionparams_920',['WidevineDecryptionParams',['../d8/d48/structshaka_1_1WidevineDecryptionParams.html',1,'shaka']]], + ['widevineencryptionparams_921',['WidevineEncryptionParams',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html',1,'shaka']]], + ['widevinekeysource_922',['WidevineKeySource',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html',1,'shaka::media::WidevineKeySource'],['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#aa292ed08d3bc9b0e84f700e6cde16950',1,'shaka::media::WidevineKeySource::WidevineKeySource()']]], + ['widevinepsshgenerator_923',['WidevinePsshGenerator',['../d5/d69/classshaka_1_1media_1_1WidevinePsshGenerator.html',1,'shaka::media']]], + ['widevinesigner_924',['WidevineSigner',['../df/d22/structshaka_1_1WidevineSigner.html',1,'shaka']]], + ['width_925',['width',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a9ec6b15406e4877a59cefe00e0c00dcf',1,'shaka::media::TextSettings::width()'],['../d4/d60/structshaka_1_1media_1_1TextRegion.html#aaa1f0ff704a50c7b6e45b47c2f43b123',1,'shaka::media::TextRegion::width()']]], + ['window_5fanchor_5fx_926',['window_anchor_x',['../d4/d60/structshaka_1_1media_1_1TextRegion.html#a4552d1ca8127535c9041222e548a20f6',1,'shaka::media::TextRegion']]], + ['write_927',['Write',['../dc/d16/classshaka_1_1media_1_1SeekHead.html#a46313134eebf68a7c34187705726b982',1,'shaka::media::SeekHead::Write()'],['../dd/d40/classshaka_1_1CallbackFile.html#aa758dfb05daff81afa1ddfaf0bb0a105',1,'shaka::CallbackFile::Write()'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a2468514d1d9efdb15a9e4df2e44b75d8',1,'shaka::media::MkvWriter::Write()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a15bd0622fdb129d921287e690f117bde',1,'shaka::media::mp4::Box::Write()'],['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#aaf6147c9fe6648e04fba0993c8006e6b',1,'shaka::media::BaseDescriptor::Write()'],['../d4/dcb/classshaka_1_1UdpFile.html#a36722f3c436c88e451093ee21c0db754',1,'shaka::UdpFile::Write()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#ab8acfe4af14c1120ae6d2baa44a10583',1,'shaka::ThreadedIoFile::Write()'],['../d7/dbd/classshaka_1_1LocalFile.html#aee10b7f2898c5047eb8505f16c49311c',1,'shaka::LocalFile::Write()'],['../df/d4e/classshaka_1_1IoCache.html#a483277a6c68dd58cebb8dafb5c1dcd21',1,'shaka::IoCache::Write()'],['../d1/dc7/classshaka_1_1HttpFile.html#a412524f57722517b39d186fd10be445b',1,'shaka::HttpFile::Write()'],['../d3/d73/classshaka_1_1File.html#a8c498531ecbd205fceb0be3478361801',1,'shaka::File::Write()'],['../de/dad/classshaka_1_1MemoryFile.html#aa3d9455b7bc9d1c44d58ab39bd8bd27c',1,'shaka::MemoryFile::Write()']]], + ['write_5ffunc_928',['write_func',['../d9/da8/structshaka_1_1BufferCallbackParams.html#ad966040c5a75389ac6376c6378a0f307',1,'shaka::BufferCallbackParams']]], + ['writebits_929',['WriteBits',['../dc/d76/classshaka_1_1media_1_1BitWriter.html#aee5f905e55f262e38f5df506611663f1',1,'shaka::media::BitWriter']]], + ['writefileatomically_930',['WriteFileAtomically',['../d3/d73/classshaka_1_1File.html#a4b5280fe058359b5991037f90dde2b77',1,'shaka::File']]], + ['writefromfile_931',['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_932',['WriteHeader',['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#a7d0d63d60398a6bb2c0d738f1b6a4283',1,'shaka::media::BaseDescriptor::WriteHeader()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a57b8837c93d51f5cf03d3862069d509a',1,'shaka::media::mp4::Box::WriteHeader()']]], + ['writemasterplaylist_933',['WriteMasterPlaylist',['../d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html#af45d5809a7b5c807c92cde95ddf6c70c',1,'shaka::hls::MasterPlaylist']]], + ['writemediainfotofile_934',['WriteMediaInfoToFile',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#ae0a573e1c785164f40bfbfba2ced6a16',1,'shaka::media::VodMediaInfoDumpMuxerListener']]], + ['writemp4_935',['WriteMP4',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a17c95b92810ebb43d7dc9ab0783e5f2a',1,'shaka::media::VPCodecConfigurationRecord']]], + ['writempdtofile_936',['WriteMpdToFile',['../d8/daf/namespaceshaka.html#a7e940cda37fa0dbefef3b3cc9c802ab8',1,'shaka']]], + ['writer_937',['writer',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a0b9aa5e5669d771e12563e168d5c967d',1,'shaka::media::mp4::BoxBuffer']]], + ['writesegmentheader_938',['WriteSegmentHeader',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#aebcf73c5a1c3ae0f2608032d2a6ee445',1,'shaka::media::webm::Segmenter']]], + ['writestringtofile_939',['WriteStringToFile',['../d3/d73/classshaka_1_1File.html#a483ce187d628385d342748315d72f8ab',1,'shaka::File']]], + ['writetobuffer_940',['WriteToBuffer',['../de/d26/classshaka_1_1media_1_1Id3Tag.html#a3ac31812c4504b353472bd222580d68a',1,'shaka::media::Id3Tag']]], + ['writetofile_941',['WriteToFile',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a182ca5726d4fb7d3053f76b515042440',1,'shaka::hls::MediaPlaylist::WriteToFile()'],['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#a868dba843fcf923dd140fdda859a3a6d',1,'shaka::media::BufferWriter::WriteToFile()']]], + ['writetovector_942',['WriteToVector',['../de/d26/classshaka_1_1media_1_1Id3Tag.html#abf7b6258d9c648d93122631de698431e',1,'shaka::media::Id3Tag']]], + ['writevoid_943',['WriteVoid',['../dc/d16/classshaka_1_1media_1_1SeekHead.html#a1a7895c6f5548405377aabb9521111a1',1,'shaka::media::SeekHead']]], + ['writewebm_944',['WriteWebM',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a62bb64ea665385ae67c2fce8fb8b76bd',1,'shaka::media::VPCodecConfigurationRecord']]], + ['writing_5fdirection_945',['writing_direction',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a94dca124ccd2902b0e7466c37d05567e',1,'shaka::media::TextSettings']]], + ['wvmmediaparser_946',['WvmMediaParser',['../dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html',1,'shaka::media::wvm']]] ]; diff --git a/docs/search/all_16.js b/docs/search/all_16.js index b36a246d3d..6eb981f91e 100644 --- a/docs/search/all_16.js +++ b/docs/search/all_16.js @@ -1,5 +1,5 @@ var searchData= [ - ['xmldeleter_946',['XmlDeleter',['../dd/da4/structshaka_1_1xml_1_1XmlDeleter.html',1,'shaka::xml']]], - ['xmlnode_947',['XmlNode',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html',1,'shaka::xml::XmlNode'],['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a99c8998d8f53f0d37c3c22aec0d693eb',1,'shaka::xml::XmlNode::XmlNode()']]] + ['xmldeleter_947',['XmlDeleter',['../dd/da4/structshaka_1_1xml_1_1XmlDeleter.html',1,'shaka::xml']]], + ['xmlnode_948',['XmlNode',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html',1,'shaka::xml::XmlNode'],['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a99c8998d8f53f0d37c3c22aec0d693eb',1,'shaka::xml::XmlNode::XmlNode()']]] ]; diff --git a/docs/search/all_17.js b/docs/search/all_17.js index 909c38bfa8..4f91585528 100644 --- a/docs/search/all_17.js +++ b/docs/search/all_17.js @@ -1,5 +1,5 @@ var searchData= [ - ['_7eclosurethread_948',['~ClosureThread',['../dc/df0/classshaka_1_1media_1_1ClosureThread.html#a811ad9bb9367c0ff74093c4a337d1398',1,'shaka::media::ClosureThread']]], - ['_7efile_949',['~File',['../d3/d73/classshaka_1_1File.html#a92d1a67d1560a5290eb36447c50fabf9',1,'shaka::File']]] + ['_7eclosurethread_949',['~ClosureThread',['../dc/df0/classshaka_1_1media_1_1ClosureThread.html#a811ad9bb9367c0ff74093c4a337d1398',1,'shaka::media::ClosureThread']]], + ['_7efile_950',['~File',['../d3/d73/classshaka_1_1File.html#a92d1a67d1560a5290eb36447c50fabf9',1,'shaka::File']]] ]; diff --git a/docs/search/all_c.js b/docs/search/all_c.js index 61159760ff..7eb3c788ec 100644 --- a/docs/search/all_c.js +++ b/docs/search/all_c.js @@ -65,6 +65,6 @@ var searchData= ['muxerfactory_526',['MuxerFactory',['../da/d2a/classshaka_1_1media_1_1MuxerFactory.html',1,'shaka::media']]], ['muxerlistener_527',['MuxerListener',['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html',1,'shaka::media']]], ['muxerlistenerat_528',['MuxerListenerAt',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a9098555ce57c631f6cf0998e62fcc68b',1,'shaka::media::CombinedMuxerListener']]], - ['muxerlistenerfactory_529',['MuxerListenerFactory',['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html#acca820fdaa838f08770b58e57d97f7e3',1,'shaka::media::MuxerListenerFactory::MuxerListenerFactory()'],['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html',1,'shaka::media::MuxerListenerFactory']]], + ['muxerlistenerfactory_529',['MuxerListenerFactory',['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html#ae72549917a0dc982f3fe44c4a961da91',1,'shaka::media::MuxerListenerFactory::MuxerListenerFactory()'],['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html',1,'shaka::media::MuxerListenerFactory']]], ['muxeroptions_530',['MuxerOptions',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html',1,'shaka::media']]] ]; diff --git a/docs/search/all_f.js b/docs/search/all_f.js index 4c527996fc..21c8027572 100644 --- a/docs/search/all_f.js +++ b/docs/search/all_f.js @@ -35,8 +35,8 @@ var searchData= ['policy_614',['policy',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a469f3db91b42af20f270a280c4d42b4f',1,'shaka::WidevineEncryptionParams']]], ['pop_615',['Pop',['../d7/dda/classshaka_1_1media_1_1ByteQueue.html#a31b30d39d14fca3ce722b4233de95c79',1,'shaka::media::ByteQueue::Pop()'],['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a935e9ddee232be82d224c9b81b3b4f88',1,'shaka::media::ProducerConsumerQueue::Pop()']]], ['pos_616',['Pos',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#afedc11a2920e04f116802c33d2fda851',1,'shaka::media::mp4::BoxBuffer']]], - ['position_617',['position',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a63c91deef5b34b528e7f03e61cebe873',1,'shaka::media::TextSettings']]], - ['position_618',['Position',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a468dcd83a7c087cc83e755703488e92b',1,'shaka::media::MkvWriter::Position() const override'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a33db41e57d0ef5a35b7f929e1a1d90db',1,'shaka::media::MkvWriter::Position(mkvmuxer::int64 position) override']]], + ['position_617',['Position',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a468dcd83a7c087cc83e755703488e92b',1,'shaka::media::MkvWriter::Position() const override'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a33db41e57d0ef5a35b7f929e1a1d90db',1,'shaka::media::MkvWriter::Position(mkvmuxer::int64 position) override']]], + ['position_618',['position',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a63c91deef5b34b528e7f03e61cebe873',1,'shaka::media::TextSettings']]], ['post_619',['Post',['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#a31e904e2f802e5626c4420675c76d513',1,'shaka::media::HttpKeyFetcher']]], ['preparechildren_620',['PrepareChildren',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a29158ec9769dafbdcf1192abf9a2aa2a',1,'shaka::media::mp4::BoxBuffer']]], ['preserved_5fsegments_5foutside_5flive_5fwindow_621',['preserved_segments_outside_live_window',['../d0/da8/structshaka_1_1HlsParams.html#aa471aaa93cb7c95996902648e376c2e6',1,'shaka::HlsParams::preserved_segments_outside_live_window()'],['../df/ddc/structshaka_1_1MpdParams.html#a84378ed480ed2e9b8915afd9c349b458',1,'shaka::MpdParams::preserved_segments_outside_live_window()']]], diff --git a/docs/search/classes_0.js b/docs/search/classes_0.js index 3894d04c09..4d0fc9ab53 100644 --- a/docs/search/classes_0.js +++ b/docs/search/classes_0.js @@ -1,28 +1,28 @@ var searchData= [ - ['aacaudiospecificconfig_950',['AACAudioSpecificConfig',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html',1,'shaka::media']]], - ['ac3header_951',['Ac3Header',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html',1,'shaka::media::mp2t']]], - ['ac3specific_952',['AC3Specific',['../d4/dfa/structshaka_1_1media_1_1mp4_1_1AC3Specific.html',1,'shaka::media::mp4']]], - ['ac4specific_953',['AC4Specific',['../d6/da2/structshaka_1_1media_1_1mp4_1_1AC4Specific.html',1,'shaka::media::mp4']]], - ['adaptationset_954',['AdaptationSet',['../d8/d8e/classshaka_1_1AdaptationSet.html',1,'shaka']]], - ['adaptationsetxmlnode_955',['AdaptationSetXmlNode',['../d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html',1,'shaka::xml']]], - ['adcuegeneratorparams_956',['AdCueGeneratorParams',['../dd/dfd/structshaka_1_1AdCueGeneratorParams.html',1,'shaka']]], - ['adtsheader_957',['AdtsHeader',['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html',1,'shaka::media::mp2t']]], - ['aescbcdecryptor_958',['AesCbcDecryptor',['../df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html',1,'shaka::media']]], - ['aescbcencryptor_959',['AesCbcEncryptor',['../d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html',1,'shaka::media']]], - ['aescryptor_960',['AesCryptor',['../df/d87/classshaka_1_1media_1_1AesCryptor.html',1,'shaka::media']]], - ['aesctrencryptor_961',['AesCtrEncryptor',['../d0/dd8/classshaka_1_1media_1_1AesCtrEncryptor.html',1,'shaka::media']]], - ['aesencryptor_962',['AesEncryptor',['../d3/d75/classshaka_1_1media_1_1AesEncryptor.html',1,'shaka::media']]], - ['aesencryptorfactory_963',['AesEncryptorFactory',['../d4/d07/classshaka_1_1media_1_1AesEncryptorFactory.html',1,'shaka::media']]], - ['aespatterncryptor_964',['AesPatternCryptor',['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html',1,'shaka::media']]], - ['aesrequestsigner_965',['AesRequestSigner',['../d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html',1,'shaka::media']]], - ['audioheader_966',['AudioHeader',['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html',1,'shaka::media::mp2t']]], - ['audioprogrammaptablewriter_967',['AudioProgramMapTableWriter',['../dc/d1c/classshaka_1_1media_1_1mp2t_1_1AudioProgramMapTableWriter.html',1,'shaka::media::mp2t']]], - ['audiorollrecoveryentry_968',['AudioRollRecoveryEntry',['../da/d6e/structshaka_1_1media_1_1mp4_1_1AudioRollRecoveryEntry.html',1,'shaka::media::mp4']]], - ['audiosampleentry_969',['AudioSampleEntry',['../d8/d5b/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry.html',1,'shaka::media::mp4']]], - ['audiostreaminfo_970',['AudioStreamInfo',['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html',1,'shaka::media']]], - ['audiotimestamphelper_971',['AudioTimestampHelper',['../d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html',1,'shaka::media']]], - ['av1codecconfigurationrecord_972',['AV1CodecConfigurationRecord',['../d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html',1,'shaka::media']]], - ['av1parser_973',['AV1Parser',['../db/dc7/classshaka_1_1media_1_1AV1Parser.html',1,'shaka::media']]], - ['avcdecoderconfigurationrecord_974',['AVCDecoderConfigurationRecord',['../d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html',1,'shaka::media']]] + ['aacaudiospecificconfig_951',['AACAudioSpecificConfig',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html',1,'shaka::media']]], + ['ac3header_952',['Ac3Header',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html',1,'shaka::media::mp2t']]], + ['ac3specific_953',['AC3Specific',['../d4/dfa/structshaka_1_1media_1_1mp4_1_1AC3Specific.html',1,'shaka::media::mp4']]], + ['ac4specific_954',['AC4Specific',['../d6/da2/structshaka_1_1media_1_1mp4_1_1AC4Specific.html',1,'shaka::media::mp4']]], + ['adaptationset_955',['AdaptationSet',['../d8/d8e/classshaka_1_1AdaptationSet.html',1,'shaka']]], + ['adaptationsetxmlnode_956',['AdaptationSetXmlNode',['../d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html',1,'shaka::xml']]], + ['adcuegeneratorparams_957',['AdCueGeneratorParams',['../dd/dfd/structshaka_1_1AdCueGeneratorParams.html',1,'shaka']]], + ['adtsheader_958',['AdtsHeader',['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html',1,'shaka::media::mp2t']]], + ['aescbcdecryptor_959',['AesCbcDecryptor',['../df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html',1,'shaka::media']]], + ['aescbcencryptor_960',['AesCbcEncryptor',['../d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html',1,'shaka::media']]], + ['aescryptor_961',['AesCryptor',['../df/d87/classshaka_1_1media_1_1AesCryptor.html',1,'shaka::media']]], + ['aesctrencryptor_962',['AesCtrEncryptor',['../d0/dd8/classshaka_1_1media_1_1AesCtrEncryptor.html',1,'shaka::media']]], + ['aesencryptor_963',['AesEncryptor',['../d3/d75/classshaka_1_1media_1_1AesEncryptor.html',1,'shaka::media']]], + ['aesencryptorfactory_964',['AesEncryptorFactory',['../d4/d07/classshaka_1_1media_1_1AesEncryptorFactory.html',1,'shaka::media']]], + ['aespatterncryptor_965',['AesPatternCryptor',['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html',1,'shaka::media']]], + ['aesrequestsigner_966',['AesRequestSigner',['../d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html',1,'shaka::media']]], + ['audioheader_967',['AudioHeader',['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html',1,'shaka::media::mp2t']]], + ['audioprogrammaptablewriter_968',['AudioProgramMapTableWriter',['../dc/d1c/classshaka_1_1media_1_1mp2t_1_1AudioProgramMapTableWriter.html',1,'shaka::media::mp2t']]], + ['audiorollrecoveryentry_969',['AudioRollRecoveryEntry',['../da/d6e/structshaka_1_1media_1_1mp4_1_1AudioRollRecoveryEntry.html',1,'shaka::media::mp4']]], + ['audiosampleentry_970',['AudioSampleEntry',['../d8/d5b/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry.html',1,'shaka::media::mp4']]], + ['audiostreaminfo_971',['AudioStreamInfo',['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html',1,'shaka::media']]], + ['audiotimestamphelper_972',['AudioTimestampHelper',['../d0/d4d/classshaka_1_1media_1_1AudioTimestampHelper.html',1,'shaka::media']]], + ['av1codecconfigurationrecord_973',['AV1CodecConfigurationRecord',['../d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html',1,'shaka::media']]], + ['av1parser_974',['AV1Parser',['../db/dc7/classshaka_1_1media_1_1AV1Parser.html',1,'shaka::media']]], + ['avcdecoderconfigurationrecord_975',['AVCDecoderConfigurationRecord',['../d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html',1,'shaka::media']]] ]; diff --git a/docs/search/classes_1.js b/docs/search/classes_1.js index e91f81e804..b9f09ff1aa 100644 --- a/docs/search/classes_1.js +++ b/docs/search/classes_1.js @@ -1,15 +1,15 @@ var searchData= [ - ['bandwidthestimator_975',['BandwidthEstimator',['../da/d2c/classshaka_1_1BandwidthEstimator.html',1,'shaka']]], - ['basedescriptor_976',['BaseDescriptor',['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html',1,'shaka::media']]], - ['bitreader_977',['BitReader',['../d6/da9/classshaka_1_1media_1_1BitReader.html',1,'shaka::media']]], - ['bitwriter_978',['BitWriter',['../dc/d76/classshaka_1_1media_1_1BitWriter.html',1,'shaka::media']]], - ['blockreader_979',['BlockReader',['../df/d0d/classshaka_1_1media_1_1BlockReader.html',1,'shaka::media']]], - ['box_980',['Box',['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html',1,'shaka::media::mp4']]], - ['boxbuffer_981',['BoxBuffer',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html',1,'shaka::media::mp4']]], - ['boxreader_982',['BoxReader',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html',1,'shaka::media::mp4']]], - ['buffercallbackparams_983',['BufferCallbackParams',['../d9/da8/structshaka_1_1BufferCallbackParams.html',1,'shaka']]], - ['bufferreader_984',['BufferReader',['../d9/d13/classshaka_1_1media_1_1BufferReader.html',1,'shaka::media']]], - ['bufferwriter_985',['BufferWriter',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html',1,'shaka::media']]], - ['bytequeue_986',['ByteQueue',['../d7/dda/classshaka_1_1media_1_1ByteQueue.html',1,'shaka::media']]] + ['bandwidthestimator_976',['BandwidthEstimator',['../da/d2c/classshaka_1_1BandwidthEstimator.html',1,'shaka']]], + ['basedescriptor_977',['BaseDescriptor',['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html',1,'shaka::media']]], + ['bitreader_978',['BitReader',['../d6/da9/classshaka_1_1media_1_1BitReader.html',1,'shaka::media']]], + ['bitwriter_979',['BitWriter',['../dc/d76/classshaka_1_1media_1_1BitWriter.html',1,'shaka::media']]], + ['blockreader_980',['BlockReader',['../df/d0d/classshaka_1_1media_1_1BlockReader.html',1,'shaka::media']]], + ['box_981',['Box',['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html',1,'shaka::media::mp4']]], + ['boxbuffer_982',['BoxBuffer',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html',1,'shaka::media::mp4']]], + ['boxreader_983',['BoxReader',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html',1,'shaka::media::mp4']]], + ['buffercallbackparams_984',['BufferCallbackParams',['../d9/da8/structshaka_1_1BufferCallbackParams.html',1,'shaka']]], + ['bufferreader_985',['BufferReader',['../d9/d13/classshaka_1_1media_1_1BufferReader.html',1,'shaka::media']]], + ['bufferwriter_986',['BufferWriter',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html',1,'shaka::media']]], + ['bytequeue_987',['ByteQueue',['../d7/dda/classshaka_1_1media_1_1ByteQueue.html',1,'shaka::media']]] ]; diff --git a/docs/search/classes_10.js b/docs/search/classes_10.js index ba8a537776..ca3f3f984d 100644 --- a/docs/search/classes_10.js +++ b/docs/search/classes_10.js @@ -1,43 +1,43 @@ var searchData= [ - ['sampleaesec3cryptor_1205',['SampleAesEc3Cryptor',['../d9/da0/classshaka_1_1media_1_1SampleAesEc3Cryptor.html',1,'shaka::media']]], - ['sampleauxiliaryinformationoffset_1206',['SampleAuxiliaryInformationOffset',['../d5/dca/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html',1,'shaka::media::mp4']]], - ['sampleauxiliaryinformationsize_1207',['SampleAuxiliaryInformationSize',['../dd/d13/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html',1,'shaka::media::mp4']]], - ['sampledescription_1208',['SampleDescription',['../da/df5/structshaka_1_1media_1_1mp4_1_1SampleDescription.html',1,'shaka::media::mp4']]], - ['sampleencryption_1209',['SampleEncryption',['../d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html',1,'shaka::media::mp4']]], - ['sampleencryptionentry_1210',['SampleEncryptionEntry',['../d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html',1,'shaka::media::mp4']]], - ['samplegroupdescription_1211',['SampleGroupDescription',['../d7/d01/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription.html',1,'shaka::media::mp4']]], - ['samplesize_1212',['SampleSize',['../d7/d42/structshaka_1_1media_1_1mp4_1_1SampleSize.html',1,'shaka::media::mp4']]], - ['sampletable_1213',['SampleTable',['../d1/dee/structshaka_1_1media_1_1mp4_1_1SampleTable.html',1,'shaka::media::mp4']]], - ['sampletochunk_1214',['SampleToChunk',['../d3/d87/structshaka_1_1media_1_1mp4_1_1SampleToChunk.html',1,'shaka::media::mp4']]], - ['sampletogroup_1215',['SampleToGroup',['../d0/d7c/structshaka_1_1media_1_1mp4_1_1SampleToGroup.html',1,'shaka::media::mp4']]], - ['sampletogroupentry_1216',['SampleToGroupEntry',['../d7/de0/structshaka_1_1media_1_1mp4_1_1SampleToGroupEntry.html',1,'shaka::media::mp4']]], - ['schemeinfo_1217',['SchemeInfo',['../d2/d70/structshaka_1_1media_1_1mp4_1_1SchemeInfo.html',1,'shaka::media::mp4']]], - ['schemetype_1218',['SchemeType',['../d3/da2/structshaka_1_1media_1_1mp4_1_1SchemeType.html',1,'shaka::media::mp4']]], - ['scte35event_1219',['Scte35Event',['../d1/d41/structshaka_1_1media_1_1Scte35Event.html',1,'shaka::media']]], - ['seekhead_1220',['SeekHead',['../dc/d16/classshaka_1_1media_1_1SeekHead.html',1,'shaka::media']]], - ['segmenter_1221',['Segmenter',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html',1,'shaka::media::mp4::Segmenter'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html',1,'shaka::media::webm::Segmenter']]], - ['segmenteventinfo_1222',['SegmentEventInfo',['../dd/d03/structshaka_1_1media_1_1SegmentEventInfo.html',1,'shaka::media']]], - ['segmentindex_1223',['SegmentIndex',['../d4/df9/structshaka_1_1media_1_1mp4_1_1SegmentIndex.html',1,'shaka::media::mp4']]], - ['segmentinfo_1224',['SegmentInfo',['../d0/dc0/structshaka_1_1media_1_1SegmentInfo.html',1,'shaka::media::SegmentInfo'],['../dc/de1/structshaka_1_1SegmentInfo.html',1,'shaka::SegmentInfo']]], - ['segmentreference_1225',['SegmentReference',['../dd/d9b/structshaka_1_1media_1_1mp4_1_1SegmentReference.html',1,'shaka::media::mp4']]], - ['segmenttestbase_1226',['SegmentTestBase',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html',1,'shaka::media']]], - ['segmenttype_1227',['SegmentType',['../d3/dd0/structshaka_1_1media_1_1mp4_1_1SegmentType.html',1,'shaka::media::mp4']]], - ['simplehlsnotifier_1228',['SimpleHlsNotifier',['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html',1,'shaka::hls']]], - ['simplempdnotifier_1229',['SimpleMpdNotifier',['../d8/de1/classshaka_1_1SimpleMpdNotifier.html',1,'shaka']]], - ['singlesegmentsegmenter_1230',['SingleSegmentSegmenter',['../d0/dab/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html',1,'shaka::media::mp4::SingleSegmentSegmenter'],['../d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html',1,'shaka::media::webm::SingleSegmentSegmenter']]], - ['singlethreadjobmanager_1231',['SingleThreadJobManager',['../d9/d65/classshaka_1_1media_1_1SingleThreadJobManager.html',1,'shaka::media']]], - ['slconfigdescriptor_1232',['SLConfigDescriptor',['../df/d38/classshaka_1_1media_1_1SLConfigDescriptor.html',1,'shaka::media']]], - ['soundmediaheader_1233',['SoundMediaHeader',['../d7/d07/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader.html',1,'shaka::media::mp4']]], - ['status_1234',['Status',['../d2/d20/classshaka_1_1Status.html',1,'shaka']]], - ['streamdata_1235',['StreamData',['../de/db5/structshaka_1_1media_1_1MuxerListenerFactory_1_1StreamData.html',1,'shaka::media::MuxerListenerFactory::StreamData'],['../d0/d4c/structshaka_1_1media_1_1StreamData.html',1,'shaka::media::StreamData']]], - ['streamdescriptor_1236',['StreamDescriptor',['../d2/d7b/structshaka_1_1StreamDescriptor.html',1,'shaka']]], - ['streaminfo_1237',['StreamInfo',['../d5/db1/classshaka_1_1media_1_1StreamInfo.html',1,'shaka::media']]], - ['subsampleentry_1238',['SubsampleEntry',['../d1/d34/structshaka_1_1media_1_1SubsampleEntry.html',1,'shaka::media']]], - ['subsamplegenerator_1239',['SubsampleGenerator',['../d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html',1,'shaka::media']]], - ['subtitlecomposer_1240',['SubtitleComposer',['../d7/d30/classshaka_1_1media_1_1SubtitleComposer.html',1,'shaka::media']]], - ['subtitlemediaheader_1241',['SubtitleMediaHeader',['../db/d21/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader.html',1,'shaka::media::mp4']]], - ['syncpointqueue_1242',['SyncPointQueue',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html',1,'shaka::media']]], - ['syncsample_1243',['SyncSample',['../dd/d3f/structshaka_1_1media_1_1mp4_1_1SyncSample.html',1,'shaka::media::mp4']]], - ['syncsampleiterator_1244',['SyncSampleIterator',['../d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html',1,'shaka::media::mp4']]] + ['sampleaesec3cryptor_1206',['SampleAesEc3Cryptor',['../d9/da0/classshaka_1_1media_1_1SampleAesEc3Cryptor.html',1,'shaka::media']]], + ['sampleauxiliaryinformationoffset_1207',['SampleAuxiliaryInformationOffset',['../d5/dca/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html',1,'shaka::media::mp4']]], + ['sampleauxiliaryinformationsize_1208',['SampleAuxiliaryInformationSize',['../dd/d13/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html',1,'shaka::media::mp4']]], + ['sampledescription_1209',['SampleDescription',['../da/df5/structshaka_1_1media_1_1mp4_1_1SampleDescription.html',1,'shaka::media::mp4']]], + ['sampleencryption_1210',['SampleEncryption',['../d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html',1,'shaka::media::mp4']]], + ['sampleencryptionentry_1211',['SampleEncryptionEntry',['../d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html',1,'shaka::media::mp4']]], + ['samplegroupdescription_1212',['SampleGroupDescription',['../d7/d01/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription.html',1,'shaka::media::mp4']]], + ['samplesize_1213',['SampleSize',['../d7/d42/structshaka_1_1media_1_1mp4_1_1SampleSize.html',1,'shaka::media::mp4']]], + ['sampletable_1214',['SampleTable',['../d1/dee/structshaka_1_1media_1_1mp4_1_1SampleTable.html',1,'shaka::media::mp4']]], + ['sampletochunk_1215',['SampleToChunk',['../d3/d87/structshaka_1_1media_1_1mp4_1_1SampleToChunk.html',1,'shaka::media::mp4']]], + ['sampletogroup_1216',['SampleToGroup',['../d0/d7c/structshaka_1_1media_1_1mp4_1_1SampleToGroup.html',1,'shaka::media::mp4']]], + ['sampletogroupentry_1217',['SampleToGroupEntry',['../d7/de0/structshaka_1_1media_1_1mp4_1_1SampleToGroupEntry.html',1,'shaka::media::mp4']]], + ['schemeinfo_1218',['SchemeInfo',['../d2/d70/structshaka_1_1media_1_1mp4_1_1SchemeInfo.html',1,'shaka::media::mp4']]], + ['schemetype_1219',['SchemeType',['../d3/da2/structshaka_1_1media_1_1mp4_1_1SchemeType.html',1,'shaka::media::mp4']]], + ['scte35event_1220',['Scte35Event',['../d1/d41/structshaka_1_1media_1_1Scte35Event.html',1,'shaka::media']]], + ['seekhead_1221',['SeekHead',['../dc/d16/classshaka_1_1media_1_1SeekHead.html',1,'shaka::media']]], + ['segmenter_1222',['Segmenter',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html',1,'shaka::media::mp4::Segmenter'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html',1,'shaka::media::webm::Segmenter']]], + ['segmenteventinfo_1223',['SegmentEventInfo',['../dd/d03/structshaka_1_1media_1_1SegmentEventInfo.html',1,'shaka::media']]], + ['segmentindex_1224',['SegmentIndex',['../d4/df9/structshaka_1_1media_1_1mp4_1_1SegmentIndex.html',1,'shaka::media::mp4']]], + ['segmentinfo_1225',['SegmentInfo',['../d0/dc0/structshaka_1_1media_1_1SegmentInfo.html',1,'shaka::media::SegmentInfo'],['../dc/de1/structshaka_1_1SegmentInfo.html',1,'shaka::SegmentInfo']]], + ['segmentreference_1226',['SegmentReference',['../dd/d9b/structshaka_1_1media_1_1mp4_1_1SegmentReference.html',1,'shaka::media::mp4']]], + ['segmenttestbase_1227',['SegmentTestBase',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html',1,'shaka::media']]], + ['segmenttype_1228',['SegmentType',['../d3/dd0/structshaka_1_1media_1_1mp4_1_1SegmentType.html',1,'shaka::media::mp4']]], + ['simplehlsnotifier_1229',['SimpleHlsNotifier',['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html',1,'shaka::hls']]], + ['simplempdnotifier_1230',['SimpleMpdNotifier',['../d8/de1/classshaka_1_1SimpleMpdNotifier.html',1,'shaka']]], + ['singlesegmentsegmenter_1231',['SingleSegmentSegmenter',['../d0/dab/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html',1,'shaka::media::mp4::SingleSegmentSegmenter'],['../d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html',1,'shaka::media::webm::SingleSegmentSegmenter']]], + ['singlethreadjobmanager_1232',['SingleThreadJobManager',['../d9/d65/classshaka_1_1media_1_1SingleThreadJobManager.html',1,'shaka::media']]], + ['slconfigdescriptor_1233',['SLConfigDescriptor',['../df/d38/classshaka_1_1media_1_1SLConfigDescriptor.html',1,'shaka::media']]], + ['soundmediaheader_1234',['SoundMediaHeader',['../d7/d07/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader.html',1,'shaka::media::mp4']]], + ['status_1235',['Status',['../d2/d20/classshaka_1_1Status.html',1,'shaka']]], + ['streamdata_1236',['StreamData',['../de/db5/structshaka_1_1media_1_1MuxerListenerFactory_1_1StreamData.html',1,'shaka::media::MuxerListenerFactory::StreamData'],['../d0/d4c/structshaka_1_1media_1_1StreamData.html',1,'shaka::media::StreamData']]], + ['streamdescriptor_1237',['StreamDescriptor',['../d2/d7b/structshaka_1_1StreamDescriptor.html',1,'shaka']]], + ['streaminfo_1238',['StreamInfo',['../d5/db1/classshaka_1_1media_1_1StreamInfo.html',1,'shaka::media']]], + ['subsampleentry_1239',['SubsampleEntry',['../d1/d34/structshaka_1_1media_1_1SubsampleEntry.html',1,'shaka::media']]], + ['subsamplegenerator_1240',['SubsampleGenerator',['../d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html',1,'shaka::media']]], + ['subtitlecomposer_1241',['SubtitleComposer',['../d7/d30/classshaka_1_1media_1_1SubtitleComposer.html',1,'shaka::media']]], + ['subtitlemediaheader_1242',['SubtitleMediaHeader',['../db/d21/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader.html',1,'shaka::media::mp4']]], + ['syncpointqueue_1243',['SyncPointQueue',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html',1,'shaka::media']]], + ['syncsample_1244',['SyncSample',['../dd/d3f/structshaka_1_1media_1_1mp4_1_1SyncSample.html',1,'shaka::media::mp4']]], + ['syncsampleiterator_1245',['SyncSampleIterator',['../d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html',1,'shaka::media::mp4']]] ]; diff --git a/docs/search/classes_11.js b/docs/search/classes_11.js index db29de7754..aee5333d9b 100644 --- a/docs/search/classes_11.js +++ b/docs/search/classes_11.js @@ -1,45 +1,45 @@ var searchData= [ - ['tag_1245',['Tag',['../d1/d7e/classshaka_1_1hls_1_1Tag.html',1,'shaka::hls']]], - ['testparams_1246',['TestParams',['../d6/d62/structshaka_1_1TestParams.html',1,'shaka']]], - ['textchunker_1247',['TextChunker',['../d5/d3e/classshaka_1_1media_1_1TextChunker.html',1,'shaka::media']]], - ['textfragment_1248',['TextFragment',['../d3/d54/structshaka_1_1media_1_1TextFragment.html',1,'shaka::media']]], - ['textfragmentstyle_1249',['TextFragmentStyle',['../d4/d9f/structshaka_1_1media_1_1TextFragmentStyle.html',1,'shaka::media']]], - ['textmuxer_1250',['TextMuxer',['../d1/d4e/classshaka_1_1media_1_1TextMuxer.html',1,'shaka::media']]], - ['textnumber_1251',['TextNumber',['../d8/d99/structshaka_1_1media_1_1TextNumber.html',1,'shaka::media']]], - ['textpadder_1252',['TextPadder',['../d8/df8/classshaka_1_1media_1_1TextPadder.html',1,'shaka::media']]], - ['textregion_1253',['TextRegion',['../d4/d60/structshaka_1_1media_1_1TextRegion.html',1,'shaka::media']]], - ['textsample_1254',['TextSample',['../db/d1f/classshaka_1_1media_1_1TextSample.html',1,'shaka::media']]], - ['textsampleentry_1255',['TextSampleEntry',['../d7/dc3/structshaka_1_1media_1_1mp4_1_1TextSampleEntry.html',1,'shaka::media::mp4']]], - ['textsettings_1256',['TextSettings',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html',1,'shaka::media']]], - ['textstreaminfo_1257',['TextStreamInfo',['../db/dab/classshaka_1_1media_1_1TextStreamInfo.html',1,'shaka::media']]], - ['textsubstreaminfo_1258',['TextSubStreamInfo',['../dd/ddb/structshaka_1_1media_1_1TextSubStreamInfo.html',1,'shaka::media']]], - ['texttrack_1259',['TextTrack',['../d4/d0b/classshaka_1_1media_1_1TextTrack.html',1,'shaka::media']]], - ['texttrackconfig_1260',['TextTrackConfig',['../de/db3/classshaka_1_1media_1_1TextTrackConfig.html',1,'shaka::media']]], - ['threadediofile_1261',['ThreadedIoFile',['../dd/d0c/classshaka_1_1ThreadedIoFile.html',1,'shaka']]], - ['tile_1262',['Tile',['../d7/d36/structshaka_1_1media_1_1AV1Parser_1_1Tile.html',1,'shaka::media::AV1Parser']]], - ['track_1263',['Track',['../d3/db5/structshaka_1_1media_1_1mp4_1_1Track.html',1,'shaka::media::mp4']]], - ['trackencryption_1264',['TrackEncryption',['../db/db8/structshaka_1_1media_1_1mp4_1_1TrackEncryption.html',1,'shaka::media::mp4']]], - ['trackextends_1265',['TrackExtends',['../de/d29/structshaka_1_1media_1_1mp4_1_1TrackExtends.html',1,'shaka::media::mp4']]], - ['trackfragment_1266',['TrackFragment',['../df/d7b/structshaka_1_1media_1_1mp4_1_1TrackFragment.html',1,'shaka::media::mp4']]], - ['trackfragmentdecodetime_1267',['TrackFragmentDecodeTime',['../df/d9a/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html',1,'shaka::media::mp4']]], - ['trackfragmentheader_1268',['TrackFragmentHeader',['../d1/d6e/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader.html',1,'shaka::media::mp4']]], - ['trackfragmentrun_1269',['TrackFragmentRun',['../dd/df5/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun.html',1,'shaka::media::mp4']]], - ['trackheader_1270',['TrackHeader',['../da/dc4/structshaka_1_1media_1_1mp4_1_1TrackHeader.html',1,'shaka::media::mp4']]], - ['trackruniterator_1271',['TrackRunIterator',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html',1,'shaka::media::mp4']]], - ['tracksbuilder_1272',['TracksBuilder',['../d8/d74/classshaka_1_1media_1_1TracksBuilder.html',1,'shaka::media']]], - ['trickplayhandler_1273',['TrickPlayHandler',['../db/dea/classshaka_1_1media_1_1TrickPlayHandler.html',1,'shaka::media']]], - ['tsmuxer_1274',['TsMuxer',['../d3/d71/classshaka_1_1media_1_1mp2t_1_1TsMuxer.html',1,'shaka::media::mp2t']]], - ['tspacket_1275',['TsPacket',['../da/da1/classshaka_1_1media_1_1mp2t_1_1TsPacket.html',1,'shaka::media::mp2t']]], - ['tssection_1276',['TsSection',['../da/d1c/classshaka_1_1media_1_1mp2t_1_1TsSection.html',1,'shaka::media::mp2t']]], - ['tssectionpat_1277',['TsSectionPat',['../d0/d26/classshaka_1_1media_1_1mp2t_1_1TsSectionPat.html',1,'shaka::media::mp2t']]], - ['tssectionpes_1278',['TsSectionPes',['../d1/d30/classshaka_1_1media_1_1mp2t_1_1TsSectionPes.html',1,'shaka::media::mp2t']]], - ['tssectionpmt_1279',['TsSectionPmt',['../d2/de3/classshaka_1_1media_1_1mp2t_1_1TsSectionPmt.html',1,'shaka::media::mp2t']]], - ['tssectionpsi_1280',['TsSectionPsi',['../de/d7e/classshaka_1_1media_1_1mp2t_1_1TsSectionPsi.html',1,'shaka::media::mp2t']]], - ['tssegmenter_1281',['TsSegmenter',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html',1,'shaka::media::mp2t']]], - ['tswriter_1282',['TsWriter',['../de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html',1,'shaka::media::mp2t']]], - ['ttmlgenerator_1283',['TtmlGenerator',['../df/d87/classshaka_1_1media_1_1ttml_1_1TtmlGenerator.html',1,'shaka::media::ttml']]], - ['ttmlmuxer_1284',['TtmlMuxer',['../db/d30/classshaka_1_1media_1_1ttml_1_1TtmlMuxer.html',1,'shaka::media::ttml']]], - ['ttmltomp4handler_1285',['TtmlToMp4Handler',['../d0/df2/classshaka_1_1media_1_1ttml_1_1TtmlToMp4Handler.html',1,'shaka::media::ttml']]], - ['twopasssinglesegmentsegmenter_1286',['TwoPassSingleSegmentSegmenter',['../dd/da5/classshaka_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html',1,'shaka::media::webm']]] + ['tag_1246',['Tag',['../d1/d7e/classshaka_1_1hls_1_1Tag.html',1,'shaka::hls']]], + ['testparams_1247',['TestParams',['../d6/d62/structshaka_1_1TestParams.html',1,'shaka']]], + ['textchunker_1248',['TextChunker',['../d5/d3e/classshaka_1_1media_1_1TextChunker.html',1,'shaka::media']]], + ['textfragment_1249',['TextFragment',['../d3/d54/structshaka_1_1media_1_1TextFragment.html',1,'shaka::media']]], + ['textfragmentstyle_1250',['TextFragmentStyle',['../d4/d9f/structshaka_1_1media_1_1TextFragmentStyle.html',1,'shaka::media']]], + ['textmuxer_1251',['TextMuxer',['../d1/d4e/classshaka_1_1media_1_1TextMuxer.html',1,'shaka::media']]], + ['textnumber_1252',['TextNumber',['../d8/d99/structshaka_1_1media_1_1TextNumber.html',1,'shaka::media']]], + ['textpadder_1253',['TextPadder',['../d8/df8/classshaka_1_1media_1_1TextPadder.html',1,'shaka::media']]], + ['textregion_1254',['TextRegion',['../d4/d60/structshaka_1_1media_1_1TextRegion.html',1,'shaka::media']]], + ['textsample_1255',['TextSample',['../db/d1f/classshaka_1_1media_1_1TextSample.html',1,'shaka::media']]], + ['textsampleentry_1256',['TextSampleEntry',['../d7/dc3/structshaka_1_1media_1_1mp4_1_1TextSampleEntry.html',1,'shaka::media::mp4']]], + ['textsettings_1257',['TextSettings',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html',1,'shaka::media']]], + ['textstreaminfo_1258',['TextStreamInfo',['../db/dab/classshaka_1_1media_1_1TextStreamInfo.html',1,'shaka::media']]], + ['textsubstreaminfo_1259',['TextSubStreamInfo',['../dd/ddb/structshaka_1_1media_1_1TextSubStreamInfo.html',1,'shaka::media']]], + ['texttrack_1260',['TextTrack',['../d4/d0b/classshaka_1_1media_1_1TextTrack.html',1,'shaka::media']]], + ['texttrackconfig_1261',['TextTrackConfig',['../de/db3/classshaka_1_1media_1_1TextTrackConfig.html',1,'shaka::media']]], + ['threadediofile_1262',['ThreadedIoFile',['../dd/d0c/classshaka_1_1ThreadedIoFile.html',1,'shaka']]], + ['tile_1263',['Tile',['../d7/d36/structshaka_1_1media_1_1AV1Parser_1_1Tile.html',1,'shaka::media::AV1Parser']]], + ['track_1264',['Track',['../d3/db5/structshaka_1_1media_1_1mp4_1_1Track.html',1,'shaka::media::mp4']]], + ['trackencryption_1265',['TrackEncryption',['../db/db8/structshaka_1_1media_1_1mp4_1_1TrackEncryption.html',1,'shaka::media::mp4']]], + ['trackextends_1266',['TrackExtends',['../de/d29/structshaka_1_1media_1_1mp4_1_1TrackExtends.html',1,'shaka::media::mp4']]], + ['trackfragment_1267',['TrackFragment',['../df/d7b/structshaka_1_1media_1_1mp4_1_1TrackFragment.html',1,'shaka::media::mp4']]], + ['trackfragmentdecodetime_1268',['TrackFragmentDecodeTime',['../df/d9a/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html',1,'shaka::media::mp4']]], + ['trackfragmentheader_1269',['TrackFragmentHeader',['../d1/d6e/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader.html',1,'shaka::media::mp4']]], + ['trackfragmentrun_1270',['TrackFragmentRun',['../dd/df5/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun.html',1,'shaka::media::mp4']]], + ['trackheader_1271',['TrackHeader',['../da/dc4/structshaka_1_1media_1_1mp4_1_1TrackHeader.html',1,'shaka::media::mp4']]], + ['trackruniterator_1272',['TrackRunIterator',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html',1,'shaka::media::mp4']]], + ['tracksbuilder_1273',['TracksBuilder',['../d8/d74/classshaka_1_1media_1_1TracksBuilder.html',1,'shaka::media']]], + ['trickplayhandler_1274',['TrickPlayHandler',['../db/dea/classshaka_1_1media_1_1TrickPlayHandler.html',1,'shaka::media']]], + ['tsmuxer_1275',['TsMuxer',['../d3/d71/classshaka_1_1media_1_1mp2t_1_1TsMuxer.html',1,'shaka::media::mp2t']]], + ['tspacket_1276',['TsPacket',['../da/da1/classshaka_1_1media_1_1mp2t_1_1TsPacket.html',1,'shaka::media::mp2t']]], + ['tssection_1277',['TsSection',['../da/d1c/classshaka_1_1media_1_1mp2t_1_1TsSection.html',1,'shaka::media::mp2t']]], + ['tssectionpat_1278',['TsSectionPat',['../d0/d26/classshaka_1_1media_1_1mp2t_1_1TsSectionPat.html',1,'shaka::media::mp2t']]], + ['tssectionpes_1279',['TsSectionPes',['../d1/d30/classshaka_1_1media_1_1mp2t_1_1TsSectionPes.html',1,'shaka::media::mp2t']]], + ['tssectionpmt_1280',['TsSectionPmt',['../d2/de3/classshaka_1_1media_1_1mp2t_1_1TsSectionPmt.html',1,'shaka::media::mp2t']]], + ['tssectionpsi_1281',['TsSectionPsi',['../de/d7e/classshaka_1_1media_1_1mp2t_1_1TsSectionPsi.html',1,'shaka::media::mp2t']]], + ['tssegmenter_1282',['TsSegmenter',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html',1,'shaka::media::mp2t']]], + ['tswriter_1283',['TsWriter',['../de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html',1,'shaka::media::mp2t']]], + ['ttmlgenerator_1284',['TtmlGenerator',['../df/d87/classshaka_1_1media_1_1ttml_1_1TtmlGenerator.html',1,'shaka::media::ttml']]], + ['ttmlmuxer_1285',['TtmlMuxer',['../db/d30/classshaka_1_1media_1_1ttml_1_1TtmlMuxer.html',1,'shaka::media::ttml']]], + ['ttmltomp4handler_1286',['TtmlToMp4Handler',['../d0/df2/classshaka_1_1media_1_1ttml_1_1TtmlToMp4Handler.html',1,'shaka::media::ttml']]], + ['twopasssinglesegmentsegmenter_1287',['TwoPassSingleSegmentSegmenter',['../dd/da5/classshaka_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html',1,'shaka::media::webm']]] ]; diff --git a/docs/search/classes_12.js b/docs/search/classes_12.js index 65e17c3d3a..fc23eb0789 100644 --- a/docs/search/classes_12.js +++ b/docs/search/classes_12.js @@ -1,6 +1,6 @@ var searchData= [ - ['udpfile_1287',['UdpFile',['../d4/dcb/classshaka_1_1UdpFile.html',1,'shaka']]], - ['udpoptions_1288',['UdpOptions',['../d9/dfe/classshaka_1_1UdpOptions.html',1,'shaka']]], - ['utctiming_1289',['UtcTiming',['../d3/d6e/structshaka_1_1MpdParams_1_1UtcTiming.html',1,'shaka::MpdParams']]] + ['udpfile_1288',['UdpFile',['../d4/dcb/classshaka_1_1UdpFile.html',1,'shaka']]], + ['udpoptions_1289',['UdpOptions',['../d9/dfe/classshaka_1_1UdpOptions.html',1,'shaka']]], + ['utctiming_1290',['UtcTiming',['../d3/d6e/structshaka_1_1MpdParams_1_1UtcTiming.html',1,'shaka::MpdParams']]] ]; diff --git a/docs/search/classes_13.js b/docs/search/classes_13.js index be706e9eb4..2b89692819 100644 --- a/docs/search/classes_13.js +++ b/docs/search/classes_13.js @@ -1,19 +1,19 @@ var searchData= [ - ['videomediaheader_1290',['VideoMediaHeader',['../d1/db0/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader.html',1,'shaka::media::mp4']]], - ['videoprogrammaptablewriter_1291',['VideoProgramMapTableWriter',['../da/d6a/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter.html',1,'shaka::media::mp2t']]], - ['videosampleentry_1292',['VideoSampleEntry',['../d0/d73/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry.html',1,'shaka::media::mp4']]], - ['videosliceheaderparser_1293',['VideoSliceHeaderParser',['../dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html',1,'shaka::media']]], - ['videosliceinfo_1294',['VideoSliceInfo',['../d8/dc2/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo.html',1,'shaka::media::mp2t::EsParserH26x']]], - ['videostreaminfo_1295',['VideoStreamInfo',['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html',1,'shaka::media']]], - ['videostreaminfoparameters_1296',['VideoStreamInfoParameters',['../d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html',1,'shaka::media']]], - ['vodmediainfodumpmuxerlistener_1297',['VodMediaInfoDumpMuxerListener',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html',1,'shaka::media']]], - ['vp8parser_1298',['VP8Parser',['../d8/d14/classshaka_1_1media_1_1VP8Parser.html',1,'shaka::media']]], - ['vp9parser_1299',['VP9Parser',['../db/d5a/classshaka_1_1media_1_1VP9Parser.html',1,'shaka::media']]], - ['vpcodecconfigurationrecord_1300',['VPCodecConfigurationRecord',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html',1,'shaka::media']]], - ['vpxframeinfo_1301',['VPxFrameInfo',['../d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html',1,'shaka::media']]], - ['vpxparser_1302',['VPxParser',['../db/dcb/classshaka_1_1media_1_1VPxParser.html',1,'shaka::media']]], - ['vttadditionaltextbox_1303',['VTTAdditionalTextBox',['../d6/d79/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html',1,'shaka::media::mp4']]], - ['vttcuebox_1304',['VTTCueBox',['../d6/daa/structshaka_1_1media_1_1mp4_1_1VTTCueBox.html',1,'shaka::media::mp4']]], - ['vttemptycuebox_1305',['VTTEmptyCueBox',['../d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html',1,'shaka::media::mp4']]] + ['videomediaheader_1291',['VideoMediaHeader',['../d1/db0/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader.html',1,'shaka::media::mp4']]], + ['videoprogrammaptablewriter_1292',['VideoProgramMapTableWriter',['../da/d6a/classshaka_1_1media_1_1mp2t_1_1VideoProgramMapTableWriter.html',1,'shaka::media::mp2t']]], + ['videosampleentry_1293',['VideoSampleEntry',['../d0/d73/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry.html',1,'shaka::media::mp4']]], + ['videosliceheaderparser_1294',['VideoSliceHeaderParser',['../dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html',1,'shaka::media']]], + ['videosliceinfo_1295',['VideoSliceInfo',['../d8/dc2/structshaka_1_1media_1_1mp2t_1_1EsParserH26x_1_1VideoSliceInfo.html',1,'shaka::media::mp2t::EsParserH26x']]], + ['videostreaminfo_1296',['VideoStreamInfo',['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html',1,'shaka::media']]], + ['videostreaminfoparameters_1297',['VideoStreamInfoParameters',['../d6/d26/structshaka_1_1media_1_1VideoStreamInfoParameters.html',1,'shaka::media']]], + ['vodmediainfodumpmuxerlistener_1298',['VodMediaInfoDumpMuxerListener',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html',1,'shaka::media']]], + ['vp8parser_1299',['VP8Parser',['../d8/d14/classshaka_1_1media_1_1VP8Parser.html',1,'shaka::media']]], + ['vp9parser_1300',['VP9Parser',['../db/d5a/classshaka_1_1media_1_1VP9Parser.html',1,'shaka::media']]], + ['vpcodecconfigurationrecord_1301',['VPCodecConfigurationRecord',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html',1,'shaka::media']]], + ['vpxframeinfo_1302',['VPxFrameInfo',['../d0/d11/structshaka_1_1media_1_1VPxFrameInfo.html',1,'shaka::media']]], + ['vpxparser_1303',['VPxParser',['../db/dcb/classshaka_1_1media_1_1VPxParser.html',1,'shaka::media']]], + ['vttadditionaltextbox_1304',['VTTAdditionalTextBox',['../d6/d79/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html',1,'shaka::media::mp4']]], + ['vttcuebox_1305',['VTTCueBox',['../d6/daa/structshaka_1_1media_1_1mp4_1_1VTTCueBox.html',1,'shaka::media::mp4']]], + ['vttemptycuebox_1306',['VTTEmptyCueBox',['../d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html',1,'shaka::media::mp4']]] ]; diff --git a/docs/search/classes_14.js b/docs/search/classes_14.js index 6d78973f0f..4e46116059 100644 --- a/docs/search/classes_14.js +++ b/docs/search/classes_14.js @@ -1,26 +1,26 @@ var searchData= [ - ['webmaudioclient_1306',['WebMAudioClient',['../d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html',1,'shaka::media']]], - ['webmclusterparser_1307',['WebMClusterParser',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html',1,'shaka::media']]], - ['webmcontentencodingsclient_1308',['WebMContentEncodingsClient',['../d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html',1,'shaka::media']]], - ['webminfoparser_1309',['WebMInfoParser',['../db/dae/classshaka_1_1media_1_1WebMInfoParser.html',1,'shaka::media']]], - ['webmlistparser_1310',['WebMListParser',['../dc/dca/classshaka_1_1media_1_1WebMListParser.html',1,'shaka::media']]], - ['webmmediaparser_1311',['WebMMediaParser',['../d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html',1,'shaka::media']]], - ['webmmuxer_1312',['WebMMuxer',['../d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html',1,'shaka::media::webm']]], - ['webmparserclient_1313',['WebMParserClient',['../d5/dec/classshaka_1_1media_1_1WebMParserClient.html',1,'shaka::media']]], - ['webmtracksparser_1314',['WebMTracksParser',['../d8/d86/classshaka_1_1media_1_1WebMTracksParser.html',1,'shaka::media']]], - ['webmvideoclient_1315',['WebMVideoClient',['../d3/d67/classshaka_1_1media_1_1WebMVideoClient.html',1,'shaka::media']]], - ['webmwebvttparser_1316',['WebMWebVTTParser',['../d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html',1,'shaka::media']]], - ['webvttconfigurationbox_1317',['WebVTTConfigurationBox',['../d8/d20/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html',1,'shaka::media::mp4']]], - ['webvttfilebuffer_1318',['WebVttFileBuffer',['../d6/dda/classshaka_1_1media_1_1WebVttFileBuffer.html',1,'shaka::media']]], - ['webvttmuxer_1319',['WebVttMuxer',['../da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html',1,'shaka::media::webvtt']]], - ['webvttparser_1320',['WebVttParser',['../d9/d40/classshaka_1_1media_1_1WebVttParser.html',1,'shaka::media']]], - ['webvttsourcelabelbox_1321',['WebVTTSourceLabelBox',['../d4/d33/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html',1,'shaka::media::mp4']]], - ['webvtttomp4handler_1322',['WebVttToMp4Handler',['../d7/d53/classshaka_1_1media_1_1WebVttToMp4Handler.html',1,'shaka::media']]], - ['widevinedecryptionparams_1323',['WidevineDecryptionParams',['../d8/d48/structshaka_1_1WidevineDecryptionParams.html',1,'shaka']]], - ['widevineencryptionparams_1324',['WidevineEncryptionParams',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html',1,'shaka']]], - ['widevinekeysource_1325',['WidevineKeySource',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html',1,'shaka::media']]], - ['widevinepsshgenerator_1326',['WidevinePsshGenerator',['../d5/d69/classshaka_1_1media_1_1WidevinePsshGenerator.html',1,'shaka::media']]], - ['widevinesigner_1327',['WidevineSigner',['../df/d22/structshaka_1_1WidevineSigner.html',1,'shaka']]], - ['wvmmediaparser_1328',['WvmMediaParser',['../dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html',1,'shaka::media::wvm']]] + ['webmaudioclient_1307',['WebMAudioClient',['../d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html',1,'shaka::media']]], + ['webmclusterparser_1308',['WebMClusterParser',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html',1,'shaka::media']]], + ['webmcontentencodingsclient_1309',['WebMContentEncodingsClient',['../d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html',1,'shaka::media']]], + ['webminfoparser_1310',['WebMInfoParser',['../db/dae/classshaka_1_1media_1_1WebMInfoParser.html',1,'shaka::media']]], + ['webmlistparser_1311',['WebMListParser',['../dc/dca/classshaka_1_1media_1_1WebMListParser.html',1,'shaka::media']]], + ['webmmediaparser_1312',['WebMMediaParser',['../d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html',1,'shaka::media']]], + ['webmmuxer_1313',['WebMMuxer',['../d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html',1,'shaka::media::webm']]], + ['webmparserclient_1314',['WebMParserClient',['../d5/dec/classshaka_1_1media_1_1WebMParserClient.html',1,'shaka::media']]], + ['webmtracksparser_1315',['WebMTracksParser',['../d8/d86/classshaka_1_1media_1_1WebMTracksParser.html',1,'shaka::media']]], + ['webmvideoclient_1316',['WebMVideoClient',['../d3/d67/classshaka_1_1media_1_1WebMVideoClient.html',1,'shaka::media']]], + ['webmwebvttparser_1317',['WebMWebVTTParser',['../d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html',1,'shaka::media']]], + ['webvttconfigurationbox_1318',['WebVTTConfigurationBox',['../d8/d20/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html',1,'shaka::media::mp4']]], + ['webvttfilebuffer_1319',['WebVttFileBuffer',['../d6/dda/classshaka_1_1media_1_1WebVttFileBuffer.html',1,'shaka::media']]], + ['webvttmuxer_1320',['WebVttMuxer',['../da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html',1,'shaka::media::webvtt']]], + ['webvttparser_1321',['WebVttParser',['../d9/d40/classshaka_1_1media_1_1WebVttParser.html',1,'shaka::media']]], + ['webvttsourcelabelbox_1322',['WebVTTSourceLabelBox',['../d4/d33/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html',1,'shaka::media::mp4']]], + ['webvtttomp4handler_1323',['WebVttToMp4Handler',['../d7/d53/classshaka_1_1media_1_1WebVttToMp4Handler.html',1,'shaka::media']]], + ['widevinedecryptionparams_1324',['WidevineDecryptionParams',['../d8/d48/structshaka_1_1WidevineDecryptionParams.html',1,'shaka']]], + ['widevineencryptionparams_1325',['WidevineEncryptionParams',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html',1,'shaka']]], + ['widevinekeysource_1326',['WidevineKeySource',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html',1,'shaka::media']]], + ['widevinepsshgenerator_1327',['WidevinePsshGenerator',['../d5/d69/classshaka_1_1media_1_1WidevinePsshGenerator.html',1,'shaka::media']]], + ['widevinesigner_1328',['WidevineSigner',['../df/d22/structshaka_1_1WidevineSigner.html',1,'shaka']]], + ['wvmmediaparser_1329',['WvmMediaParser',['../dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html',1,'shaka::media::wvm']]] ]; diff --git a/docs/search/classes_15.js b/docs/search/classes_15.js index 0f47c4c360..ebb8dcf336 100644 --- a/docs/search/classes_15.js +++ b/docs/search/classes_15.js @@ -1,5 +1,5 @@ var searchData= [ - ['xmldeleter_1329',['XmlDeleter',['../dd/da4/structshaka_1_1xml_1_1XmlDeleter.html',1,'shaka::xml']]], - ['xmlnode_1330',['XmlNode',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html',1,'shaka::xml']]] + ['xmldeleter_1330',['XmlDeleter',['../dd/da4/structshaka_1_1xml_1_1XmlDeleter.html',1,'shaka::xml']]], + ['xmlnode_1331',['XmlNode',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html',1,'shaka::xml']]] ]; diff --git a/docs/search/classes_2.js b/docs/search/classes_2.js index 576e8c2ae9..a5d7de9351 100644 --- a/docs/search/classes_2.js +++ b/docs/search/classes_2.js @@ -1,36 +1,36 @@ var searchData= [ - ['cachingmediahandler_987',['CachingMediaHandler',['../d7/d94/classshaka_1_1media_1_1CachingMediaHandler.html',1,'shaka::media']]], - ['callbackfile_988',['CallbackFile',['../dd/d40/classshaka_1_1CallbackFile.html',1,'shaka']]], - ['ccstreamfilter_989',['CcStreamFilter',['../db/d5a/classshaka_1_1media_1_1CcStreamFilter.html',1,'shaka::media']]], - ['cencsampleencryptioninfoentry_990',['CencSampleEncryptionInfoEntry',['../d8/dd6/structshaka_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html',1,'shaka::media::mp4']]], - ['chunkinfo_991',['ChunkInfo',['../df/d38/structshaka_1_1media_1_1mp4_1_1ChunkInfo.html',1,'shaka::media::mp4']]], - ['chunkinfoiterator_992',['ChunkInfoIterator',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html',1,'shaka::media::mp4']]], - ['chunkinghandler_993',['ChunkingHandler',['../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html',1,'shaka::media']]], - ['chunkingparams_994',['ChunkingParams',['../d2/d1f/structshaka_1_1ChunkingParams.html',1,'shaka']]], - ['chunklargeoffset_995',['ChunkLargeOffset',['../db/d95/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset.html',1,'shaka::media::mp4']]], - ['chunkoffset_996',['ChunkOffset',['../dd/d06/structshaka_1_1media_1_1mp4_1_1ChunkOffset.html',1,'shaka::media::mp4']]], - ['closurethread_997',['ClosureThread',['../dc/df0/classshaka_1_1media_1_1ClosureThread.html',1,'shaka::media']]], - ['cluster_998',['Cluster',['../d1/dd5/classshaka_1_1media_1_1Cluster.html',1,'shaka::media']]], - ['clusterbuilder_999',['ClusterBuilder',['../db/d94/classshaka_1_1media_1_1ClusterBuilder.html',1,'shaka::media']]], - ['clusterparser_1000',['ClusterParser',['../d2/df8/classshaka_1_1media_1_1SegmentTestBase_1_1ClusterParser.html',1,'shaka::media::SegmentTestBase']]], - ['codecconfiguration_1001',['CodecConfiguration',['../db/d11/structshaka_1_1media_1_1mp4_1_1CodecConfiguration.html',1,'shaka::media::mp4']]], - ['combinedmuxerlistener_1002',['CombinedMuxerListener',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html',1,'shaka::media']]], - ['commonpsshgenerator_1003',['CommonPsshGenerator',['../d0/da2/classshaka_1_1media_1_1CommonPsshGenerator.html',1,'shaka::media']]], - ['compactsamplesize_1004',['CompactSampleSize',['../da/d59/structshaka_1_1media_1_1mp4_1_1CompactSampleSize.html',1,'shaka::media::mp4']]], - ['compositionoffset_1005',['CompositionOffset',['../d5/d8c/structshaka_1_1media_1_1mp4_1_1CompositionOffset.html',1,'shaka::media::mp4']]], - ['compositionoffsetiterator_1006',['CompositionOffsetIterator',['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html',1,'shaka::media::mp4']]], - ['compositiontimetosample_1007',['CompositionTimeToSample',['../df/d7b/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample.html',1,'shaka::media::mp4']]], - ['contentencoding_1008',['ContentEncoding',['../dc/da6/classshaka_1_1media_1_1ContentEncoding.html',1,'shaka::media']]], - ['contentprotectionelement_1009',['ContentProtectionElement',['../da/d43/structshaka_1_1ContentProtectionElement.html',1,'shaka']]], - ['continuitycounter_1010',['ContinuityCounter',['../d8/dd6/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter.html',1,'shaka::media::mp2t']]], - ['cuealignmenthandler_1011',['CueAlignmentHandler',['../da/dab/classshaka_1_1media_1_1CueAlignmentHandler.html',1,'shaka::media']]], - ['cueevent_1012',['CueEvent',['../da/d93/structshaka_1_1media_1_1CueEvent.html',1,'shaka::media']]], - ['cueeventinfo_1013',['CueEventInfo',['../d6/d46/structshaka_1_1media_1_1CueEventInfo.html',1,'shaka::media']]], - ['cueidbox_1014',['CueIDBox',['../d5/d09/structshaka_1_1media_1_1mp4_1_1CueIDBox.html',1,'shaka::media::mp4']]], - ['cuepayloadbox_1015',['CuePayloadBox',['../d2/d7f/structshaka_1_1media_1_1mp4_1_1CuePayloadBox.html',1,'shaka::media::mp4']]], - ['cuepoint_1016',['Cuepoint',['../de/deb/structshaka_1_1Cuepoint.html',1,'shaka']]], - ['cuesettingsbox_1017',['CueSettingsBox',['../d0/dd0/structshaka_1_1media_1_1mp4_1_1CueSettingsBox.html',1,'shaka::media::mp4']]], - ['cuesourceidbox_1018',['CueSourceIDBox',['../d9/d3e/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox.html',1,'shaka::media::mp4']]], - ['cuetimebox_1019',['CueTimeBox',['../d8/dc3/structshaka_1_1media_1_1mp4_1_1CueTimeBox.html',1,'shaka::media::mp4']]] + ['cachingmediahandler_988',['CachingMediaHandler',['../d7/d94/classshaka_1_1media_1_1CachingMediaHandler.html',1,'shaka::media']]], + ['callbackfile_989',['CallbackFile',['../dd/d40/classshaka_1_1CallbackFile.html',1,'shaka']]], + ['ccstreamfilter_990',['CcStreamFilter',['../db/d5a/classshaka_1_1media_1_1CcStreamFilter.html',1,'shaka::media']]], + ['cencsampleencryptioninfoentry_991',['CencSampleEncryptionInfoEntry',['../d8/dd6/structshaka_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html',1,'shaka::media::mp4']]], + ['chunkinfo_992',['ChunkInfo',['../df/d38/structshaka_1_1media_1_1mp4_1_1ChunkInfo.html',1,'shaka::media::mp4']]], + ['chunkinfoiterator_993',['ChunkInfoIterator',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html',1,'shaka::media::mp4']]], + ['chunkinghandler_994',['ChunkingHandler',['../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html',1,'shaka::media']]], + ['chunkingparams_995',['ChunkingParams',['../d2/d1f/structshaka_1_1ChunkingParams.html',1,'shaka']]], + ['chunklargeoffset_996',['ChunkLargeOffset',['../db/d95/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset.html',1,'shaka::media::mp4']]], + ['chunkoffset_997',['ChunkOffset',['../dd/d06/structshaka_1_1media_1_1mp4_1_1ChunkOffset.html',1,'shaka::media::mp4']]], + ['closurethread_998',['ClosureThread',['../dc/df0/classshaka_1_1media_1_1ClosureThread.html',1,'shaka::media']]], + ['cluster_999',['Cluster',['../d1/dd5/classshaka_1_1media_1_1Cluster.html',1,'shaka::media']]], + ['clusterbuilder_1000',['ClusterBuilder',['../db/d94/classshaka_1_1media_1_1ClusterBuilder.html',1,'shaka::media']]], + ['clusterparser_1001',['ClusterParser',['../d2/df8/classshaka_1_1media_1_1SegmentTestBase_1_1ClusterParser.html',1,'shaka::media::SegmentTestBase']]], + ['codecconfiguration_1002',['CodecConfiguration',['../db/d11/structshaka_1_1media_1_1mp4_1_1CodecConfiguration.html',1,'shaka::media::mp4']]], + ['combinedmuxerlistener_1003',['CombinedMuxerListener',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html',1,'shaka::media']]], + ['commonpsshgenerator_1004',['CommonPsshGenerator',['../d0/da2/classshaka_1_1media_1_1CommonPsshGenerator.html',1,'shaka::media']]], + ['compactsamplesize_1005',['CompactSampleSize',['../da/d59/structshaka_1_1media_1_1mp4_1_1CompactSampleSize.html',1,'shaka::media::mp4']]], + ['compositionoffset_1006',['CompositionOffset',['../d5/d8c/structshaka_1_1media_1_1mp4_1_1CompositionOffset.html',1,'shaka::media::mp4']]], + ['compositionoffsetiterator_1007',['CompositionOffsetIterator',['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html',1,'shaka::media::mp4']]], + ['compositiontimetosample_1008',['CompositionTimeToSample',['../df/d7b/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample.html',1,'shaka::media::mp4']]], + ['contentencoding_1009',['ContentEncoding',['../dc/da6/classshaka_1_1media_1_1ContentEncoding.html',1,'shaka::media']]], + ['contentprotectionelement_1010',['ContentProtectionElement',['../da/d43/structshaka_1_1ContentProtectionElement.html',1,'shaka']]], + ['continuitycounter_1011',['ContinuityCounter',['../d8/dd6/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter.html',1,'shaka::media::mp2t']]], + ['cuealignmenthandler_1012',['CueAlignmentHandler',['../da/dab/classshaka_1_1media_1_1CueAlignmentHandler.html',1,'shaka::media']]], + ['cueevent_1013',['CueEvent',['../da/d93/structshaka_1_1media_1_1CueEvent.html',1,'shaka::media']]], + ['cueeventinfo_1014',['CueEventInfo',['../d6/d46/structshaka_1_1media_1_1CueEventInfo.html',1,'shaka::media']]], + ['cueidbox_1015',['CueIDBox',['../d5/d09/structshaka_1_1media_1_1mp4_1_1CueIDBox.html',1,'shaka::media::mp4']]], + ['cuepayloadbox_1016',['CuePayloadBox',['../d2/d7f/structshaka_1_1media_1_1mp4_1_1CuePayloadBox.html',1,'shaka::media::mp4']]], + ['cuepoint_1017',['Cuepoint',['../de/deb/structshaka_1_1Cuepoint.html',1,'shaka']]], + ['cuesettingsbox_1018',['CueSettingsBox',['../d0/dd0/structshaka_1_1media_1_1mp4_1_1CueSettingsBox.html',1,'shaka::media::mp4']]], + ['cuesourceidbox_1019',['CueSourceIDBox',['../d9/d3e/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox.html',1,'shaka::media::mp4']]], + ['cuetimebox_1020',['CueTimeBox',['../d8/dc3/structshaka_1_1media_1_1mp4_1_1CueTimeBox.html',1,'shaka::media::mp4']]] ]; diff --git a/docs/search/classes_3.js b/docs/search/classes_3.js index 50542ff1fe..fd57bd1ffe 100644 --- a/docs/search/classes_3.js +++ b/docs/search/classes_3.js @@ -1,22 +1,22 @@ var searchData= [ - ['dataentryurl_1020',['DataEntryUrl',['../df/d8a/structshaka_1_1media_1_1mp4_1_1DataEntryUrl.html',1,'shaka::media::mp4']]], - ['datainformation_1021',['DataInformation',['../d8/d6d/structshaka_1_1media_1_1mp4_1_1DataInformation.html',1,'shaka::media::mp4']]], - ['datareference_1022',['DataReference',['../d4/de3/structshaka_1_1media_1_1mp4_1_1DataReference.html',1,'shaka::media::mp4']]], - ['decoderconfigdescriptor_1023',['DecoderConfigDescriptor',['../d5/d58/classshaka_1_1media_1_1DecoderConfigDescriptor.html',1,'shaka::media']]], - ['decoderconfigurationrecord_1024',['DecoderConfigurationRecord',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html',1,'shaka::media']]], - ['decoderspecificinfodescriptor_1025',['DecoderSpecificInfoDescriptor',['../d0/de9/classshaka_1_1media_1_1DecoderSpecificInfoDescriptor.html',1,'shaka::media']]], - ['decodingtime_1026',['DecodingTime',['../d8/d12/structshaka_1_1media_1_1mp4_1_1DecodingTime.html',1,'shaka::media::mp4']]], - ['decodingtimeiterator_1027',['DecodingTimeIterator',['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html',1,'shaka::media::mp4']]], - ['decodingtimetosample_1028',['DecodingTimeToSample',['../de/def/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample.html',1,'shaka::media::mp4']]], - ['decryptconfig_1029',['DecryptConfig',['../de/d49/classshaka_1_1media_1_1DecryptConfig.html',1,'shaka::media']]], - ['decryptionparams_1030',['DecryptionParams',['../d1/d4f/structshaka_1_1DecryptionParams.html',1,'shaka']]], - ['decryptorsource_1031',['DecryptorSource',['../d7/d59/classshaka_1_1media_1_1DecryptorSource.html',1,'shaka::media']]], - ['demuxer_1032',['Demuxer',['../dd/d17/classshaka_1_1media_1_1Demuxer.html',1,'shaka::media']]], - ['demuxstreamidmediasample_1033',['DemuxStreamIdMediaSample',['../d1/da1/structshaka_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html',1,'shaka::media::wvm']]], - ['dovidecoderconfigurationrecord_1034',['DOVIDecoderConfigurationRecord',['../da/dbb/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord.html',1,'shaka::media']]], - ['dtsspecific_1035',['DTSSpecific',['../dc/da0/structshaka_1_1media_1_1mp4_1_1DTSSpecific.html',1,'shaka::media::mp4']]], - ['dvbimagebuilder_1036',['DvbImageBuilder',['../d9/d28/classshaka_1_1media_1_1DvbImageBuilder.html',1,'shaka::media']]], - ['dvbimagecolorspace_1037',['DvbImageColorSpace',['../d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html',1,'shaka::media']]], - ['dvbsubparser_1038',['DvbSubParser',['../d8/da9/classshaka_1_1media_1_1DvbSubParser.html',1,'shaka::media']]] + ['dataentryurl_1021',['DataEntryUrl',['../df/d8a/structshaka_1_1media_1_1mp4_1_1DataEntryUrl.html',1,'shaka::media::mp4']]], + ['datainformation_1022',['DataInformation',['../d8/d6d/structshaka_1_1media_1_1mp4_1_1DataInformation.html',1,'shaka::media::mp4']]], + ['datareference_1023',['DataReference',['../d4/de3/structshaka_1_1media_1_1mp4_1_1DataReference.html',1,'shaka::media::mp4']]], + ['decoderconfigdescriptor_1024',['DecoderConfigDescriptor',['../d5/d58/classshaka_1_1media_1_1DecoderConfigDescriptor.html',1,'shaka::media']]], + ['decoderconfigurationrecord_1025',['DecoderConfigurationRecord',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html',1,'shaka::media']]], + ['decoderspecificinfodescriptor_1026',['DecoderSpecificInfoDescriptor',['../d0/de9/classshaka_1_1media_1_1DecoderSpecificInfoDescriptor.html',1,'shaka::media']]], + ['decodingtime_1027',['DecodingTime',['../d8/d12/structshaka_1_1media_1_1mp4_1_1DecodingTime.html',1,'shaka::media::mp4']]], + ['decodingtimeiterator_1028',['DecodingTimeIterator',['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html',1,'shaka::media::mp4']]], + ['decodingtimetosample_1029',['DecodingTimeToSample',['../de/def/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample.html',1,'shaka::media::mp4']]], + ['decryptconfig_1030',['DecryptConfig',['../de/d49/classshaka_1_1media_1_1DecryptConfig.html',1,'shaka::media']]], + ['decryptionparams_1031',['DecryptionParams',['../d1/d4f/structshaka_1_1DecryptionParams.html',1,'shaka']]], + ['decryptorsource_1032',['DecryptorSource',['../d7/d59/classshaka_1_1media_1_1DecryptorSource.html',1,'shaka::media']]], + ['demuxer_1033',['Demuxer',['../dd/d17/classshaka_1_1media_1_1Demuxer.html',1,'shaka::media']]], + ['demuxstreamidmediasample_1034',['DemuxStreamIdMediaSample',['../d1/da1/structshaka_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html',1,'shaka::media::wvm']]], + ['dovidecoderconfigurationrecord_1035',['DOVIDecoderConfigurationRecord',['../da/dbb/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord.html',1,'shaka::media']]], + ['dtsspecific_1036',['DTSSpecific',['../dc/da0/structshaka_1_1media_1_1mp4_1_1DTSSpecific.html',1,'shaka::media::mp4']]], + ['dvbimagebuilder_1037',['DvbImageBuilder',['../d9/d28/classshaka_1_1media_1_1DvbImageBuilder.html',1,'shaka::media']]], + ['dvbimagecolorspace_1038',['DvbImageColorSpace',['../d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html',1,'shaka::media']]], + ['dvbsubparser_1039',['DvbSubParser',['../d8/da9/classshaka_1_1media_1_1DvbSubParser.html',1,'shaka::media']]] ]; diff --git a/docs/search/classes_4.js b/docs/search/classes_4.js index 894b437ed5..87c66d6819 100644 --- a/docs/search/classes_4.js +++ b/docs/search/classes_4.js @@ -1,22 +1,22 @@ var searchData= [ - ['ec3specific_1039',['EC3Specific',['../d4/d8d/structshaka_1_1media_1_1mp4_1_1EC3Specific.html',1,'shaka::media::mp4']]], - ['edit_1040',['Edit',['../da/dd0/structshaka_1_1media_1_1mp4_1_1Edit.html',1,'shaka::media::mp4']]], - ['editlist_1041',['EditList',['../d3/dbe/structshaka_1_1media_1_1mp4_1_1EditList.html',1,'shaka::media::mp4']]], - ['editlistentry_1042',['EditListEntry',['../d4/d18/structshaka_1_1media_1_1mp4_1_1EditListEntry.html',1,'shaka::media::mp4']]], - ['element_1043',['Element',['../de/da9/structshaka_1_1Element.html',1,'shaka']]], - ['elementarystreamdescriptor_1044',['ElementaryStreamDescriptor',['../d5/d11/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html',1,'shaka::media::mp4']]], - ['encryptedstreamattributes_1045',['EncryptedStreamAttributes',['../d7/d6d/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes.html',1,'shaka::EncryptionParams']]], - ['encryptionconfig_1046',['EncryptionConfig',['../d7/d34/structshaka_1_1media_1_1EncryptionConfig.html',1,'shaka::media']]], - ['encryptionhandler_1047',['EncryptionHandler',['../d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html',1,'shaka::media']]], - ['encryptionkey_1048',['EncryptionKey',['../dd/dbd/structshaka_1_1media_1_1EncryptionKey.html',1,'shaka::media']]], - ['encryptionparams_1049',['EncryptionParams',['../dc/da0/structshaka_1_1EncryptionParams.html',1,'shaka']]], - ['esdescriptor_1050',['ESDescriptor',['../d5/d13/classshaka_1_1media_1_1ESDescriptor.html',1,'shaka::media']]], - ['esparser_1051',['EsParser',['../da/d10/classshaka_1_1media_1_1mp2t_1_1EsParser.html',1,'shaka::media::mp2t']]], - ['esparseraudio_1052',['EsParserAudio',['../dc/d8a/classshaka_1_1media_1_1mp2t_1_1EsParserAudio.html',1,'shaka::media::mp2t']]], - ['esparserdvb_1053',['EsParserDvb',['../d0/d6c/classshaka_1_1media_1_1mp2t_1_1EsParserDvb.html',1,'shaka::media::mp2t']]], - ['esparserh264_1054',['EsParserH264',['../d5/db9/classshaka_1_1media_1_1mp2t_1_1EsParserH264.html',1,'shaka::media::mp2t']]], - ['esparserh265_1055',['EsParserH265',['../d5/d63/classshaka_1_1media_1_1mp2t_1_1EsParserH265.html',1,'shaka::media::mp2t']]], - ['esparserh26x_1056',['EsParserH26x',['../da/d23/classshaka_1_1media_1_1mp2t_1_1EsParserH26x.html',1,'shaka::media::mp2t']]], - ['eventinfo_1057',['EventInfo',['../db/d49/structshaka_1_1media_1_1EventInfo.html',1,'shaka::media']]] + ['ec3specific_1040',['EC3Specific',['../d4/d8d/structshaka_1_1media_1_1mp4_1_1EC3Specific.html',1,'shaka::media::mp4']]], + ['edit_1041',['Edit',['../da/dd0/structshaka_1_1media_1_1mp4_1_1Edit.html',1,'shaka::media::mp4']]], + ['editlist_1042',['EditList',['../d3/dbe/structshaka_1_1media_1_1mp4_1_1EditList.html',1,'shaka::media::mp4']]], + ['editlistentry_1043',['EditListEntry',['../d4/d18/structshaka_1_1media_1_1mp4_1_1EditListEntry.html',1,'shaka::media::mp4']]], + ['element_1044',['Element',['../de/da9/structshaka_1_1Element.html',1,'shaka']]], + ['elementarystreamdescriptor_1045',['ElementaryStreamDescriptor',['../d5/d11/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html',1,'shaka::media::mp4']]], + ['encryptedstreamattributes_1046',['EncryptedStreamAttributes',['../d7/d6d/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes.html',1,'shaka::EncryptionParams']]], + ['encryptionconfig_1047',['EncryptionConfig',['../d7/d34/structshaka_1_1media_1_1EncryptionConfig.html',1,'shaka::media']]], + ['encryptionhandler_1048',['EncryptionHandler',['../d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html',1,'shaka::media']]], + ['encryptionkey_1049',['EncryptionKey',['../dd/dbd/structshaka_1_1media_1_1EncryptionKey.html',1,'shaka::media']]], + ['encryptionparams_1050',['EncryptionParams',['../dc/da0/structshaka_1_1EncryptionParams.html',1,'shaka']]], + ['esdescriptor_1051',['ESDescriptor',['../d5/d13/classshaka_1_1media_1_1ESDescriptor.html',1,'shaka::media']]], + ['esparser_1052',['EsParser',['../da/d10/classshaka_1_1media_1_1mp2t_1_1EsParser.html',1,'shaka::media::mp2t']]], + ['esparseraudio_1053',['EsParserAudio',['../dc/d8a/classshaka_1_1media_1_1mp2t_1_1EsParserAudio.html',1,'shaka::media::mp2t']]], + ['esparserdvb_1054',['EsParserDvb',['../d0/d6c/classshaka_1_1media_1_1mp2t_1_1EsParserDvb.html',1,'shaka::media::mp2t']]], + ['esparserh264_1055',['EsParserH264',['../d5/db9/classshaka_1_1media_1_1mp2t_1_1EsParserH264.html',1,'shaka::media::mp2t']]], + ['esparserh265_1056',['EsParserH265',['../d5/d63/classshaka_1_1media_1_1mp2t_1_1EsParserH265.html',1,'shaka::media::mp2t']]], + ['esparserh26x_1057',['EsParserH26x',['../da/d23/classshaka_1_1media_1_1mp2t_1_1EsParserH26x.html',1,'shaka::media::mp2t']]], + ['eventinfo_1058',['EventInfo',['../db/d49/structshaka_1_1media_1_1EventInfo.html',1,'shaka::media']]] ]; diff --git a/docs/search/classes_5.js b/docs/search/classes_5.js index 563663981c..ff2411b166 100644 --- a/docs/search/classes_5.js +++ b/docs/search/classes_5.js @@ -1,10 +1,10 @@ var searchData= [ - ['fakeinputmediahandler_1058',['FakeInputMediaHandler',['../d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html',1,'shaka::media']]], - ['file_1059',['File',['../d3/d73/classshaka_1_1File.html',1,'shaka']]], - ['filecloser_1060',['FileCloser',['../d3/de2/structshaka_1_1FileCloser.html',1,'shaka']]], - ['filetype_1061',['FileType',['../d5/d03/structshaka_1_1media_1_1mp4_1_1FileType.html',1,'shaka::media::mp4']]], - ['flacspecific_1062',['FlacSpecific',['../de/d54/structshaka_1_1media_1_1mp4_1_1FlacSpecific.html',1,'shaka::media::mp4']]], - ['fragmenter_1063',['Fragmenter',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html',1,'shaka::media::mp4']]], - ['fullbox_1064',['FullBox',['../dd/dc1/structshaka_1_1media_1_1mp4_1_1FullBox.html',1,'shaka::media::mp4']]] + ['fakeinputmediahandler_1059',['FakeInputMediaHandler',['../d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html',1,'shaka::media']]], + ['file_1060',['File',['../d3/d73/classshaka_1_1File.html',1,'shaka']]], + ['filecloser_1061',['FileCloser',['../d3/de2/structshaka_1_1FileCloser.html',1,'shaka']]], + ['filetype_1062',['FileType',['../d5/d03/structshaka_1_1media_1_1mp4_1_1FileType.html',1,'shaka::media::mp4']]], + ['flacspecific_1063',['FlacSpecific',['../de/d54/structshaka_1_1media_1_1mp4_1_1FlacSpecific.html',1,'shaka::media::mp4']]], + ['fragmenter_1064',['Fragmenter',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html',1,'shaka::media::mp4']]], + ['fullbox_1065',['FullBox',['../dd/dc1/structshaka_1_1media_1_1mp4_1_1FullBox.html',1,'shaka::media::mp4']]] ]; diff --git a/docs/search/classes_6.js b/docs/search/classes_6.js index 89acc746e4..a67a8d41bf 100644 --- a/docs/search/classes_6.js +++ b/docs/search/classes_6.js @@ -1,33 +1,33 @@ var searchData= [ - ['h264bytetounitstreamconverter_1065',['H264ByteToUnitStreamConverter',['../d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html',1,'shaka::media']]], - ['h264decrefpicmarking_1066',['H264DecRefPicMarking',['../dc/d54/structshaka_1_1media_1_1H264DecRefPicMarking.html',1,'shaka::media']]], - ['h264modificationofpicnum_1067',['H264ModificationOfPicNum',['../d9/dff/structshaka_1_1media_1_1H264ModificationOfPicNum.html',1,'shaka::media']]], - ['h264parser_1068',['H264Parser',['../d3/d91/classshaka_1_1media_1_1H264Parser.html',1,'shaka::media']]], - ['h264pps_1069',['H264Pps',['../de/de4/structshaka_1_1media_1_1H264Pps.html',1,'shaka::media']]], - ['h264seimessage_1070',['H264SEIMessage',['../d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html',1,'shaka::media']]], - ['h264seirecoverypoint_1071',['H264SEIRecoveryPoint',['../df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html',1,'shaka::media']]], - ['h264sliceheader_1072',['H264SliceHeader',['../d2/d59/structshaka_1_1media_1_1H264SliceHeader.html',1,'shaka::media']]], - ['h264sps_1073',['H264Sps',['../d1/d0a/structshaka_1_1media_1_1H264Sps.html',1,'shaka::media']]], - ['h264videosliceheaderparser_1074',['H264VideoSliceHeaderParser',['../da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html',1,'shaka::media']]], - ['h264weightingfactors_1075',['H264WeightingFactors',['../d4/d4c/structshaka_1_1media_1_1H264WeightingFactors.html',1,'shaka::media']]], - ['h265bytetounitstreamconverter_1076',['H265ByteToUnitStreamConverter',['../db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html',1,'shaka::media']]], - ['h265parser_1077',['H265Parser',['../de/dc2/classshaka_1_1media_1_1H265Parser.html',1,'shaka::media']]], - ['h265pps_1078',['H265Pps',['../de/d33/structshaka_1_1media_1_1H265Pps.html',1,'shaka::media']]], - ['h265referencepicturelistmodifications_1079',['H265ReferencePictureListModifications',['../d5/d9d/structshaka_1_1media_1_1H265ReferencePictureListModifications.html',1,'shaka::media']]], - ['h265referencepictureset_1080',['H265ReferencePictureSet',['../d5/dad/structshaka_1_1media_1_1H265ReferencePictureSet.html',1,'shaka::media']]], - ['h265sliceheader_1081',['H265SliceHeader',['../db/d05/structshaka_1_1media_1_1H265SliceHeader.html',1,'shaka::media']]], - ['h265sps_1082',['H265Sps',['../d4/dfd/structshaka_1_1media_1_1H265Sps.html',1,'shaka::media']]], - ['h265videosliceheaderparser_1083',['H265VideoSliceHeaderParser',['../d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html',1,'shaka::media']]], - ['h265vuiparameters_1084',['H265VuiParameters',['../d9/d67/structshaka_1_1media_1_1H265VuiParameters.html',1,'shaka::media']]], - ['h26xbitreader_1085',['H26xBitReader',['../de/db4/classshaka_1_1media_1_1H26xBitReader.html',1,'shaka::media']]], - ['h26xbytetounitstreamconverter_1086',['H26xByteToUnitStreamConverter',['../de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html',1,'shaka::media']]], - ['handlerreference_1087',['HandlerReference',['../da/dbb/structshaka_1_1media_1_1mp4_1_1HandlerReference.html',1,'shaka::media::mp4']]], - ['hevcdecoderconfigurationrecord_1088',['HEVCDecoderConfigurationRecord',['../d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html',1,'shaka::media']]], - ['hlsentry_1089',['HlsEntry',['../d5/d76/classshaka_1_1hls_1_1HlsEntry.html',1,'shaka::hls']]], - ['hlsnotifier_1090',['HlsNotifier',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html',1,'shaka::hls']]], - ['hlsnotifymuxerlistener_1091',['HlsNotifyMuxerListener',['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html',1,'shaka::media']]], - ['hlsparams_1092',['HlsParams',['../d0/da8/structshaka_1_1HlsParams.html',1,'shaka']]], - ['httpfile_1093',['HttpFile',['../d1/dc7/classshaka_1_1HttpFile.html',1,'shaka']]], - ['httpkeyfetcher_1094',['HttpKeyFetcher',['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html',1,'shaka::media']]] + ['h264bytetounitstreamconverter_1066',['H264ByteToUnitStreamConverter',['../d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html',1,'shaka::media']]], + ['h264decrefpicmarking_1067',['H264DecRefPicMarking',['../dc/d54/structshaka_1_1media_1_1H264DecRefPicMarking.html',1,'shaka::media']]], + ['h264modificationofpicnum_1068',['H264ModificationOfPicNum',['../d9/dff/structshaka_1_1media_1_1H264ModificationOfPicNum.html',1,'shaka::media']]], + ['h264parser_1069',['H264Parser',['../d3/d91/classshaka_1_1media_1_1H264Parser.html',1,'shaka::media']]], + ['h264pps_1070',['H264Pps',['../de/de4/structshaka_1_1media_1_1H264Pps.html',1,'shaka::media']]], + ['h264seimessage_1071',['H264SEIMessage',['../d6/dd0/structshaka_1_1media_1_1H264SEIMessage.html',1,'shaka::media']]], + ['h264seirecoverypoint_1072',['H264SEIRecoveryPoint',['../df/de2/structshaka_1_1media_1_1H264SEIRecoveryPoint.html',1,'shaka::media']]], + ['h264sliceheader_1073',['H264SliceHeader',['../d2/d59/structshaka_1_1media_1_1H264SliceHeader.html',1,'shaka::media']]], + ['h264sps_1074',['H264Sps',['../d1/d0a/structshaka_1_1media_1_1H264Sps.html',1,'shaka::media']]], + ['h264videosliceheaderparser_1075',['H264VideoSliceHeaderParser',['../da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html',1,'shaka::media']]], + ['h264weightingfactors_1076',['H264WeightingFactors',['../d4/d4c/structshaka_1_1media_1_1H264WeightingFactors.html',1,'shaka::media']]], + ['h265bytetounitstreamconverter_1077',['H265ByteToUnitStreamConverter',['../db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html',1,'shaka::media']]], + ['h265parser_1078',['H265Parser',['../de/dc2/classshaka_1_1media_1_1H265Parser.html',1,'shaka::media']]], + ['h265pps_1079',['H265Pps',['../de/d33/structshaka_1_1media_1_1H265Pps.html',1,'shaka::media']]], + ['h265referencepicturelistmodifications_1080',['H265ReferencePictureListModifications',['../d5/d9d/structshaka_1_1media_1_1H265ReferencePictureListModifications.html',1,'shaka::media']]], + ['h265referencepictureset_1081',['H265ReferencePictureSet',['../d5/dad/structshaka_1_1media_1_1H265ReferencePictureSet.html',1,'shaka::media']]], + ['h265sliceheader_1082',['H265SliceHeader',['../db/d05/structshaka_1_1media_1_1H265SliceHeader.html',1,'shaka::media']]], + ['h265sps_1083',['H265Sps',['../d4/dfd/structshaka_1_1media_1_1H265Sps.html',1,'shaka::media']]], + ['h265videosliceheaderparser_1084',['H265VideoSliceHeaderParser',['../d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html',1,'shaka::media']]], + ['h265vuiparameters_1085',['H265VuiParameters',['../d9/d67/structshaka_1_1media_1_1H265VuiParameters.html',1,'shaka::media']]], + ['h26xbitreader_1086',['H26xBitReader',['../de/db4/classshaka_1_1media_1_1H26xBitReader.html',1,'shaka::media']]], + ['h26xbytetounitstreamconverter_1087',['H26xByteToUnitStreamConverter',['../de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html',1,'shaka::media']]], + ['handlerreference_1088',['HandlerReference',['../da/dbb/structshaka_1_1media_1_1mp4_1_1HandlerReference.html',1,'shaka::media::mp4']]], + ['hevcdecoderconfigurationrecord_1089',['HEVCDecoderConfigurationRecord',['../d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html',1,'shaka::media']]], + ['hlsentry_1090',['HlsEntry',['../d5/d76/classshaka_1_1hls_1_1HlsEntry.html',1,'shaka::hls']]], + ['hlsnotifier_1091',['HlsNotifier',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html',1,'shaka::hls']]], + ['hlsnotifymuxerlistener_1092',['HlsNotifyMuxerListener',['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html',1,'shaka::media']]], + ['hlsparams_1093',['HlsParams',['../d0/da8/structshaka_1_1HlsParams.html',1,'shaka']]], + ['httpfile_1094',['HttpFile',['../d1/dc7/classshaka_1_1HttpFile.html',1,'shaka']]], + ['httpkeyfetcher_1095',['HttpKeyFetcher',['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html',1,'shaka::media']]] ]; diff --git a/docs/search/classes_7.js b/docs/search/classes_7.js index 19b557dc6d..3242308457 100644 --- a/docs/search/classes_7.js +++ b/docs/search/classes_7.js @@ -1,6 +1,6 @@ var searchData= [ - ['id3tag_1095',['Id3Tag',['../de/d26/classshaka_1_1media_1_1Id3Tag.html',1,'shaka::media']]], - ['id3v2_1096',['ID3v2',['../d3/dad/structshaka_1_1media_1_1mp4_1_1ID3v2.html',1,'shaka::media::mp4']]], - ['iocache_1097',['IoCache',['../df/d4e/classshaka_1_1IoCache.html',1,'shaka']]] + ['id3tag_1096',['Id3Tag',['../de/d26/classshaka_1_1media_1_1Id3Tag.html',1,'shaka::media']]], + ['id3v2_1097',['ID3v2',['../d3/dad/structshaka_1_1media_1_1mp4_1_1ID3v2.html',1,'shaka::media::mp4']]], + ['iocache_1098',['IoCache',['../df/d4e/classshaka_1_1IoCache.html',1,'shaka']]] ]; diff --git a/docs/search/classes_8.js b/docs/search/classes_8.js index ed9dd4d109..53ba4ea0b6 100644 --- a/docs/search/classes_8.js +++ b/docs/search/classes_8.js @@ -1,6 +1,6 @@ var searchData= [ - ['job_1098',['Job',['../d0/d59/classshaka_1_1media_1_1Job.html',1,'shaka::media']]], - ['jobentry_1099',['JobEntry',['../d2/d76/structshaka_1_1media_1_1JobManager_1_1JobEntry.html',1,'shaka::media::JobManager']]], - ['jobmanager_1100',['JobManager',['../d3/d53/classshaka_1_1media_1_1JobManager.html',1,'shaka::media']]] + ['job_1099',['Job',['../d0/d59/classshaka_1_1media_1_1Job.html',1,'shaka::media']]], + ['jobentry_1100',['JobEntry',['../d2/d76/structshaka_1_1media_1_1JobManager_1_1JobEntry.html',1,'shaka::media::JobManager']]], + ['jobmanager_1101',['JobManager',['../d3/d53/classshaka_1_1media_1_1JobManager.html',1,'shaka::media']]] ]; diff --git a/docs/search/classes_9.js b/docs/search/classes_9.js index cc7e099c1a..a891f85ad5 100644 --- a/docs/search/classes_9.js +++ b/docs/search/classes_9.js @@ -1,8 +1,8 @@ var searchData= [ - ['keyfetcher_1101',['KeyFetcher',['../df/d66/classshaka_1_1media_1_1KeyFetcher.html',1,'shaka::media']]], - ['keyframeevent_1102',['KeyFrameEvent',['../d9/d52/structshaka_1_1media_1_1KeyFrameEvent.html',1,'shaka::media']]], - ['keyframeinfo_1103',['KeyFrameInfo',['../d6/de2/structshaka_1_1media_1_1mp4_1_1KeyFrameInfo.html',1,'shaka::media::mp4']]], - ['keyinfo_1104',['KeyInfo',['../d0/dbe/structshaka_1_1RawKeyParams_1_1KeyInfo.html',1,'shaka::RawKeyParams']]], - ['keysource_1105',['KeySource',['../d1/d1f/classshaka_1_1media_1_1KeySource.html',1,'shaka::media']]] + ['keyfetcher_1102',['KeyFetcher',['../df/d66/classshaka_1_1media_1_1KeyFetcher.html',1,'shaka::media']]], + ['keyframeevent_1103',['KeyFrameEvent',['../d9/d52/structshaka_1_1media_1_1KeyFrameEvent.html',1,'shaka::media']]], + ['keyframeinfo_1104',['KeyFrameInfo',['../d6/de2/structshaka_1_1media_1_1mp4_1_1KeyFrameInfo.html',1,'shaka::media::mp4']]], + ['keyinfo_1105',['KeyInfo',['../d0/dbe/structshaka_1_1RawKeyParams_1_1KeyInfo.html',1,'shaka::RawKeyParams']]], + ['keysource_1106',['KeySource',['../d1/d1f/classshaka_1_1media_1_1KeySource.html',1,'shaka::media']]] ]; diff --git a/docs/search/classes_a.js b/docs/search/classes_a.js index bd2fffab3b..6f9059b3fd 100644 --- a/docs/search/classes_a.js +++ b/docs/search/classes_a.js @@ -1,8 +1,8 @@ var searchData= [ - ['language_1106',['Language',['../da/d1a/structshaka_1_1media_1_1mp4_1_1Language.html',1,'shaka::media::mp4']]], - ['libcryptothreading_1107',['LibcryptoThreading',['../d3/d51/classshaka_1_1media_1_1LibcryptoThreading.html',1,'shaka::media']]], - ['linereader_1108',['LineReader',['../db/de2/classshaka_1_1media_1_1LineReader.html',1,'shaka::media']]], - ['localfile_1109',['LocalFile',['../d7/dbd/classshaka_1_1LocalFile.html',1,'shaka']]], - ['longtermpicsinfo_1110',['LongTermPicsInfo',['../d7/d9c/structshaka_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html',1,'shaka::media::H265SliceHeader']]] + ['language_1107',['Language',['../da/d1a/structshaka_1_1media_1_1mp4_1_1Language.html',1,'shaka::media::mp4']]], + ['libcryptothreading_1108',['LibcryptoThreading',['../d3/d51/classshaka_1_1media_1_1LibcryptoThreading.html',1,'shaka::media']]], + ['linereader_1109',['LineReader',['../db/de2/classshaka_1_1media_1_1LineReader.html',1,'shaka::media']]], + ['localfile_1110',['LocalFile',['../d7/dbd/classshaka_1_1LocalFile.html',1,'shaka']]], + ['longtermpicsinfo_1111',['LongTermPicsInfo',['../d7/d9c/structshaka_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html',1,'shaka::media::H265SliceHeader']]] ]; diff --git a/docs/search/classes_b.js b/docs/search/classes_b.js index 80f9c4e309..8f2e40c1c4 100644 --- a/docs/search/classes_b.js +++ b/docs/search/classes_b.js @@ -1,53 +1,53 @@ var searchData= [ - ['masterplaylist_1111',['MasterPlaylist',['../d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html',1,'shaka::hls']]], - ['media_1112',['Media',['../dc/ddf/structshaka_1_1media_1_1mp4_1_1Media.html',1,'shaka::media::mp4']]], - ['mediadata_1113',['MediaData',['../d7/dae/structshaka_1_1media_1_1mp4_1_1MediaData.html',1,'shaka::media::mp4']]], - ['mediahandler_1114',['MediaHandler',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html',1,'shaka::media']]], - ['mediahandlergraphtestbase_1115',['MediaHandlerGraphTestBase',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html',1,'shaka::media']]], - ['mediahandlertestbase_1116',['MediaHandlerTestBase',['../d4/d9b/classshaka_1_1media_1_1MediaHandlerTestBase.html',1,'shaka::media']]], - ['mediaheader_1117',['MediaHeader',['../d4/db9/structshaka_1_1media_1_1mp4_1_1MediaHeader.html',1,'shaka::media::mp4']]], - ['mediainformation_1118',['MediaInformation',['../d5/d86/structshaka_1_1media_1_1mp4_1_1MediaInformation.html',1,'shaka::media::mp4']]], - ['mediaparser_1119',['MediaParser',['../d3/d0a/classshaka_1_1media_1_1MediaParser.html',1,'shaka::media']]], - ['mediaplaylist_1120',['MediaPlaylist',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html',1,'shaka::hls']]], - ['mediaplaylistfactory_1121',['MediaPlaylistFactory',['../d9/d9b/classshaka_1_1hls_1_1MediaPlaylistFactory.html',1,'shaka::hls']]], - ['mediaranges_1122',['MediaRanges',['../d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html',1,'shaka::media::MuxerListener']]], - ['mediasample_1123',['MediaSample',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html',1,'shaka::media']]], - ['memoryfile_1124',['MemoryFile',['../de/dad/classshaka_1_1MemoryFile.html',1,'shaka']]], - ['metadata_1125',['Metadata',['../dd/df6/structshaka_1_1media_1_1mp4_1_1Metadata.html',1,'shaka::media::mp4']]], - ['mkvwriter_1126',['MkvWriter',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html',1,'shaka::media']]], - ['mockadaptationset_1127',['MockAdaptationSet',['../db/d4b/classshaka_1_1MockAdaptationSet.html',1,'shaka']]], - ['mockaescryptor_1128',['MockAesCryptor',['../d1/d1b/classshaka_1_1media_1_1MockAesCryptor.html',1,'shaka::media']]], - ['mockmediaplaylist_1129',['MockMediaPlaylist',['../d3/d95/classshaka_1_1hls_1_1MockMediaPlaylist.html',1,'shaka::hls']]], - ['mockmpdbuilder_1130',['MockMpdBuilder',['../df/d60/classshaka_1_1MockMpdBuilder.html',1,'shaka']]], - ['mockmpdnotifier_1131',['MockMpdNotifier',['../dc/d5c/classshaka_1_1MockMpdNotifier.html',1,'shaka']]], - ['mockmuxerlistener_1132',['MockMuxerListener',['../dc/d73/classshaka_1_1media_1_1MockMuxerListener.html',1,'shaka::media']]], - ['mockoutputmediahandler_1133',['MockOutputMediaHandler',['../de/db2/classshaka_1_1media_1_1MockOutputMediaHandler.html',1,'shaka::media']]], - ['mockperiod_1134',['MockPeriod',['../d8/d02/classshaka_1_1MockPeriod.html',1,'shaka']]], - ['mockrepresentation_1135',['MockRepresentation',['../d0/d33/classshaka_1_1MockRepresentation.html',1,'shaka']]], - ['movie_1136',['Movie',['../d0/d9a/structshaka_1_1media_1_1mp4_1_1Movie.html',1,'shaka::media::mp4']]], - ['movieextends_1137',['MovieExtends',['../d1/d3e/structshaka_1_1media_1_1mp4_1_1MovieExtends.html',1,'shaka::media::mp4']]], - ['movieextendsheader_1138',['MovieExtendsHeader',['../da/d50/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader.html',1,'shaka::media::mp4']]], - ['moviefragment_1139',['MovieFragment',['../d9/d1f/structshaka_1_1media_1_1mp4_1_1MovieFragment.html',1,'shaka::media::mp4']]], - ['moviefragmentheader_1140',['MovieFragmentHeader',['../dc/d8f/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader.html',1,'shaka::media::mp4']]], - ['movieheader_1141',['MovieHeader',['../d6/d1a/structshaka_1_1media_1_1mp4_1_1MovieHeader.html',1,'shaka::media::mp4']]], - ['mp2tmediaparser_1142',['Mp2tMediaParser',['../d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html',1,'shaka::media::mp2t']]], - ['mp4mediaparser_1143',['MP4MediaParser',['../d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html',1,'shaka::media::mp4']]], - ['mp4muxer_1144',['MP4Muxer',['../db/d30/classshaka_1_1media_1_1mp4_1_1MP4Muxer.html',1,'shaka::media::mp4']]], - ['mp4outputparams_1145',['Mp4OutputParams',['../d0/d43/structshaka_1_1Mp4OutputParams.html',1,'shaka']]], - ['mpdbuilder_1146',['MpdBuilder',['../dc/da1/classshaka_1_1MpdBuilder.html',1,'shaka']]], - ['mpdnotifier_1147',['MpdNotifier',['../d3/dd0/classshaka_1_1MpdNotifier.html',1,'shaka']]], - ['mpdnotifierfactory_1148',['MpdNotifierFactory',['../d4/db4/classshaka_1_1MpdNotifierFactory.html',1,'shaka']]], - ['mpdnotifymuxerlistener_1149',['MpdNotifyMuxerListener',['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html',1,'shaka::media']]], - ['mpdoptions_1150',['MpdOptions',['../d1/df3/structshaka_1_1MpdOptions.html',1,'shaka']]], - ['mpdparams_1151',['MpdParams',['../df/ddc/structshaka_1_1MpdParams.html',1,'shaka']]], - ['mpdwriter_1152',['MpdWriter',['../db/dcd/classshaka_1_1MpdWriter.html',1,'shaka']]], - ['mpeg1header_1153',['Mpeg1Header',['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html',1,'shaka::media::mp2t']]], - ['multicodecmuxerlistener_1154',['MultiCodecMuxerListener',['../d9/d44/classshaka_1_1media_1_1MultiCodecMuxerListener.html',1,'shaka::media']]], - ['multisegmentsegmenter_1155',['MultiSegmentSegmenter',['../d8/db7/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html',1,'shaka::media::mp4::MultiSegmentSegmenter'],['../d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html',1,'shaka::media::webm::MultiSegmentSegmenter']]], - ['muxer_1156',['Muxer',['../df/d46/classshaka_1_1media_1_1Muxer.html',1,'shaka::media']]], - ['muxerfactory_1157',['MuxerFactory',['../da/d2a/classshaka_1_1media_1_1MuxerFactory.html',1,'shaka::media']]], - ['muxerlistener_1158',['MuxerListener',['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html',1,'shaka::media']]], - ['muxerlistenerfactory_1159',['MuxerListenerFactory',['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html',1,'shaka::media']]], - ['muxeroptions_1160',['MuxerOptions',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html',1,'shaka::media']]] + ['masterplaylist_1112',['MasterPlaylist',['../d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html',1,'shaka::hls']]], + ['media_1113',['Media',['../dc/ddf/structshaka_1_1media_1_1mp4_1_1Media.html',1,'shaka::media::mp4']]], + ['mediadata_1114',['MediaData',['../d7/dae/structshaka_1_1media_1_1mp4_1_1MediaData.html',1,'shaka::media::mp4']]], + ['mediahandler_1115',['MediaHandler',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html',1,'shaka::media']]], + ['mediahandlergraphtestbase_1116',['MediaHandlerGraphTestBase',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html',1,'shaka::media']]], + ['mediahandlertestbase_1117',['MediaHandlerTestBase',['../d4/d9b/classshaka_1_1media_1_1MediaHandlerTestBase.html',1,'shaka::media']]], + ['mediaheader_1118',['MediaHeader',['../d4/db9/structshaka_1_1media_1_1mp4_1_1MediaHeader.html',1,'shaka::media::mp4']]], + ['mediainformation_1119',['MediaInformation',['../d5/d86/structshaka_1_1media_1_1mp4_1_1MediaInformation.html',1,'shaka::media::mp4']]], + ['mediaparser_1120',['MediaParser',['../d3/d0a/classshaka_1_1media_1_1MediaParser.html',1,'shaka::media']]], + ['mediaplaylist_1121',['MediaPlaylist',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html',1,'shaka::hls']]], + ['mediaplaylistfactory_1122',['MediaPlaylistFactory',['../d9/d9b/classshaka_1_1hls_1_1MediaPlaylistFactory.html',1,'shaka::hls']]], + ['mediaranges_1123',['MediaRanges',['../d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html',1,'shaka::media::MuxerListener']]], + ['mediasample_1124',['MediaSample',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html',1,'shaka::media']]], + ['memoryfile_1125',['MemoryFile',['../de/dad/classshaka_1_1MemoryFile.html',1,'shaka']]], + ['metadata_1126',['Metadata',['../dd/df6/structshaka_1_1media_1_1mp4_1_1Metadata.html',1,'shaka::media::mp4']]], + ['mkvwriter_1127',['MkvWriter',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html',1,'shaka::media']]], + ['mockadaptationset_1128',['MockAdaptationSet',['../db/d4b/classshaka_1_1MockAdaptationSet.html',1,'shaka']]], + ['mockaescryptor_1129',['MockAesCryptor',['../d1/d1b/classshaka_1_1media_1_1MockAesCryptor.html',1,'shaka::media']]], + ['mockmediaplaylist_1130',['MockMediaPlaylist',['../d3/d95/classshaka_1_1hls_1_1MockMediaPlaylist.html',1,'shaka::hls']]], + ['mockmpdbuilder_1131',['MockMpdBuilder',['../df/d60/classshaka_1_1MockMpdBuilder.html',1,'shaka']]], + ['mockmpdnotifier_1132',['MockMpdNotifier',['../dc/d5c/classshaka_1_1MockMpdNotifier.html',1,'shaka']]], + ['mockmuxerlistener_1133',['MockMuxerListener',['../dc/d73/classshaka_1_1media_1_1MockMuxerListener.html',1,'shaka::media']]], + ['mockoutputmediahandler_1134',['MockOutputMediaHandler',['../de/db2/classshaka_1_1media_1_1MockOutputMediaHandler.html',1,'shaka::media']]], + ['mockperiod_1135',['MockPeriod',['../d8/d02/classshaka_1_1MockPeriod.html',1,'shaka']]], + ['mockrepresentation_1136',['MockRepresentation',['../d0/d33/classshaka_1_1MockRepresentation.html',1,'shaka']]], + ['movie_1137',['Movie',['../d0/d9a/structshaka_1_1media_1_1mp4_1_1Movie.html',1,'shaka::media::mp4']]], + ['movieextends_1138',['MovieExtends',['../d1/d3e/structshaka_1_1media_1_1mp4_1_1MovieExtends.html',1,'shaka::media::mp4']]], + ['movieextendsheader_1139',['MovieExtendsHeader',['../da/d50/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader.html',1,'shaka::media::mp4']]], + ['moviefragment_1140',['MovieFragment',['../d9/d1f/structshaka_1_1media_1_1mp4_1_1MovieFragment.html',1,'shaka::media::mp4']]], + ['moviefragmentheader_1141',['MovieFragmentHeader',['../dc/d8f/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader.html',1,'shaka::media::mp4']]], + ['movieheader_1142',['MovieHeader',['../d6/d1a/structshaka_1_1media_1_1mp4_1_1MovieHeader.html',1,'shaka::media::mp4']]], + ['mp2tmediaparser_1143',['Mp2tMediaParser',['../d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html',1,'shaka::media::mp2t']]], + ['mp4mediaparser_1144',['MP4MediaParser',['../d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html',1,'shaka::media::mp4']]], + ['mp4muxer_1145',['MP4Muxer',['../db/d30/classshaka_1_1media_1_1mp4_1_1MP4Muxer.html',1,'shaka::media::mp4']]], + ['mp4outputparams_1146',['Mp4OutputParams',['../d0/d43/structshaka_1_1Mp4OutputParams.html',1,'shaka']]], + ['mpdbuilder_1147',['MpdBuilder',['../dc/da1/classshaka_1_1MpdBuilder.html',1,'shaka']]], + ['mpdnotifier_1148',['MpdNotifier',['../d3/dd0/classshaka_1_1MpdNotifier.html',1,'shaka']]], + ['mpdnotifierfactory_1149',['MpdNotifierFactory',['../d4/db4/classshaka_1_1MpdNotifierFactory.html',1,'shaka']]], + ['mpdnotifymuxerlistener_1150',['MpdNotifyMuxerListener',['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html',1,'shaka::media']]], + ['mpdoptions_1151',['MpdOptions',['../d1/df3/structshaka_1_1MpdOptions.html',1,'shaka']]], + ['mpdparams_1152',['MpdParams',['../df/ddc/structshaka_1_1MpdParams.html',1,'shaka']]], + ['mpdwriter_1153',['MpdWriter',['../db/dcd/classshaka_1_1MpdWriter.html',1,'shaka']]], + ['mpeg1header_1154',['Mpeg1Header',['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html',1,'shaka::media::mp2t']]], + ['multicodecmuxerlistener_1155',['MultiCodecMuxerListener',['../d9/d44/classshaka_1_1media_1_1MultiCodecMuxerListener.html',1,'shaka::media']]], + ['multisegmentsegmenter_1156',['MultiSegmentSegmenter',['../d8/db7/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html',1,'shaka::media::mp4::MultiSegmentSegmenter'],['../d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html',1,'shaka::media::webm::MultiSegmentSegmenter']]], + ['muxer_1157',['Muxer',['../df/d46/classshaka_1_1media_1_1Muxer.html',1,'shaka::media']]], + ['muxerfactory_1158',['MuxerFactory',['../da/d2a/classshaka_1_1media_1_1MuxerFactory.html',1,'shaka::media']]], + ['muxerlistener_1159',['MuxerListener',['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html',1,'shaka::media']]], + ['muxerlistenerfactory_1160',['MuxerListenerFactory',['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html',1,'shaka::media']]], + ['muxeroptions_1161',['MuxerOptions',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html',1,'shaka::media']]] ]; diff --git a/docs/search/classes_c.js b/docs/search/classes_c.js index ae740e6fea..e57d9819d9 100644 --- a/docs/search/classes_c.js +++ b/docs/search/classes_c.js @@ -1,7 +1,7 @@ var searchData= [ - ['nalu_1161',['Nalu',['../d6/dff/classshaka_1_1media_1_1Nalu.html',1,'shaka::media']]], - ['nalunittobytestreamconverter_1162',['NalUnitToByteStreamConverter',['../d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html',1,'shaka::media']]], - ['nalureader_1163',['NaluReader',['../db/d86/classshaka_1_1media_1_1NaluReader.html',1,'shaka::media']]], - ['nullmediaheader_1164',['NullMediaHeader',['../d2/d0e/structshaka_1_1media_1_1mp4_1_1NullMediaHeader.html',1,'shaka::media::mp4']]] + ['nalu_1162',['Nalu',['../d6/dff/classshaka_1_1media_1_1Nalu.html',1,'shaka::media']]], + ['nalunittobytestreamconverter_1163',['NalUnitToByteStreamConverter',['../d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html',1,'shaka::media']]], + ['nalureader_1164',['NaluReader',['../db/d86/classshaka_1_1media_1_1NaluReader.html',1,'shaka::media']]], + ['nullmediaheader_1165',['NullMediaHeader',['../d2/d0e/structshaka_1_1media_1_1mp4_1_1NullMediaHeader.html',1,'shaka::media::mp4']]] ]; diff --git a/docs/search/classes_d.js b/docs/search/classes_d.js index fe28494ac0..10b356d21d 100644 --- a/docs/search/classes_d.js +++ b/docs/search/classes_d.js @@ -1,10 +1,10 @@ var searchData= [ - ['offsetbytequeue_1165',['OffsetByteQueue',['../d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html',1,'shaka::media']]], - ['oneof_1166',['OneOf',['../d0/d37/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf.html',1,'shaka::EncryptionParams::EncryptedStreamAttributes']]], - ['onmediaendparameters_1167',['OnMediaEndParameters',['../db/db8/structshaka_1_1media_1_1OnMediaEndParameters.html',1,'shaka::media']]], - ['onnewsegmentparameters_1168',['OnNewSegmentParameters',['../df/d6d/structshaka_1_1media_1_1OnNewSegmentParameters.html',1,'shaka::media']]], - ['opusspecific_1169',['OpusSpecific',['../de/dfa/structshaka_1_1media_1_1mp4_1_1OpusSpecific.html',1,'shaka::media::mp4']]], - ['originalformat_1170',['OriginalFormat',['../d5/d05/structshaka_1_1media_1_1mp4_1_1OriginalFormat.html',1,'shaka::media::mp4']]], - ['originhandler_1171',['OriginHandler',['../de/d85/classshaka_1_1media_1_1OriginHandler.html',1,'shaka::media']]] + ['offsetbytequeue_1166',['OffsetByteQueue',['../d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html',1,'shaka::media']]], + ['oneof_1167',['OneOf',['../d0/d37/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf.html',1,'shaka::EncryptionParams::EncryptedStreamAttributes']]], + ['onmediaendparameters_1168',['OnMediaEndParameters',['../db/db8/structshaka_1_1media_1_1OnMediaEndParameters.html',1,'shaka::media']]], + ['onnewsegmentparameters_1169',['OnNewSegmentParameters',['../df/d6d/structshaka_1_1media_1_1OnNewSegmentParameters.html',1,'shaka::media']]], + ['opusspecific_1170',['OpusSpecific',['../de/dfa/structshaka_1_1media_1_1mp4_1_1OpusSpecific.html',1,'shaka::media::mp4']]], + ['originalformat_1171',['OriginalFormat',['../d5/d05/structshaka_1_1media_1_1mp4_1_1OriginalFormat.html',1,'shaka::media::mp4']]], + ['originhandler_1172',['OriginHandler',['../de/d85/classshaka_1_1media_1_1OriginHandler.html',1,'shaka::media']]] ]; diff --git a/docs/search/classes_e.js b/docs/search/classes_e.js index ea014d07e2..4f466e23a4 100644 --- a/docs/search/classes_e.js +++ b/docs/search/classes_e.js @@ -1,23 +1,23 @@ var searchData= [ - ['packager_1172',['Packager',['../db/dd0/classshaka_1_1Packager.html',1,'shaka']]], - ['packagingparams_1173',['PackagingParams',['../d5/de3/structshaka_1_1PackagingParams.html',1,'shaka']]], - ['packedaudiosegmenter_1174',['PackedAudioSegmenter',['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html',1,'shaka::media']]], - ['packedaudiowriter_1175',['PackedAudioWriter',['../d6/d48/classshaka_1_1media_1_1PackedAudioWriter.html',1,'shaka::media']]], - ['period_1176',['Period',['../d8/de1/classshaka_1_1Period.html',1,'shaka']]], - ['pespacket_1177',['PesPacket',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html',1,'shaka::media::mp2t']]], - ['pespacketgenerator_1178',['PesPacketGenerator',['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html',1,'shaka::media::mp2t']]], - ['pixelaspectratio_1179',['PixelAspectRatio',['../dd/d71/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio.html',1,'shaka::media::mp4']]], - ['playreadyencryptionparams_1180',['PlayReadyEncryptionParams',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html',1,'shaka']]], - ['playreadykeysource_1181',['PlayReadyKeySource',['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html',1,'shaka::media']]], - ['playreadypsshgenerator_1182',['PlayReadyPsshGenerator',['../d3/ddf/classshaka_1_1media_1_1PlayReadyPsshGenerator.html',1,'shaka::media']]], - ['prevsampledata_1183',['PrevSampleData',['../d2/d0f/structshaka_1_1media_1_1wvm_1_1PrevSampleData.html',1,'shaka::media::wvm']]], - ['producerconsumerqueue_1184',['ProducerConsumerQueue',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html',1,'shaka::media']]], - ['programmaptablewriter_1185',['ProgramMapTableWriter',['../dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html',1,'shaka::media::mp2t']]], - ['progresslistener_1186',['ProgressListener',['../d4/de6/classshaka_1_1media_1_1ProgressListener.html',1,'shaka::media']]], - ['protectionschemeinfo_1187',['ProtectionSchemeInfo',['../da/de9/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html',1,'shaka::media::mp4']]], - ['protectionsystemspecificheader_1188',['ProtectionSystemSpecificHeader',['../d0/d3c/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html',1,'shaka::media::mp4']]], - ['protectionsystemspecificinfo_1189',['ProtectionSystemSpecificInfo',['../d0/d86/structshaka_1_1media_1_1ProtectionSystemSpecificInfo.html',1,'shaka::media']]], - ['psshboxbuilder_1190',['PsshBoxBuilder',['../d2/d24/classshaka_1_1media_1_1PsshBoxBuilder.html',1,'shaka::media']]], - ['psshgenerator_1191',['PsshGenerator',['../d8/dbf/classshaka_1_1media_1_1PsshGenerator.html',1,'shaka::media']]] + ['packager_1173',['Packager',['../db/dd0/classshaka_1_1Packager.html',1,'shaka']]], + ['packagingparams_1174',['PackagingParams',['../d5/de3/structshaka_1_1PackagingParams.html',1,'shaka']]], + ['packedaudiosegmenter_1175',['PackedAudioSegmenter',['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html',1,'shaka::media']]], + ['packedaudiowriter_1176',['PackedAudioWriter',['../d6/d48/classshaka_1_1media_1_1PackedAudioWriter.html',1,'shaka::media']]], + ['period_1177',['Period',['../d8/de1/classshaka_1_1Period.html',1,'shaka']]], + ['pespacket_1178',['PesPacket',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html',1,'shaka::media::mp2t']]], + ['pespacketgenerator_1179',['PesPacketGenerator',['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html',1,'shaka::media::mp2t']]], + ['pixelaspectratio_1180',['PixelAspectRatio',['../dd/d71/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio.html',1,'shaka::media::mp4']]], + ['playreadyencryptionparams_1181',['PlayReadyEncryptionParams',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html',1,'shaka']]], + ['playreadykeysource_1182',['PlayReadyKeySource',['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html',1,'shaka::media']]], + ['playreadypsshgenerator_1183',['PlayReadyPsshGenerator',['../d3/ddf/classshaka_1_1media_1_1PlayReadyPsshGenerator.html',1,'shaka::media']]], + ['prevsampledata_1184',['PrevSampleData',['../d2/d0f/structshaka_1_1media_1_1wvm_1_1PrevSampleData.html',1,'shaka::media::wvm']]], + ['producerconsumerqueue_1185',['ProducerConsumerQueue',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html',1,'shaka::media']]], + ['programmaptablewriter_1186',['ProgramMapTableWriter',['../dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html',1,'shaka::media::mp2t']]], + ['progresslistener_1187',['ProgressListener',['../d4/de6/classshaka_1_1media_1_1ProgressListener.html',1,'shaka::media']]], + ['protectionschemeinfo_1188',['ProtectionSchemeInfo',['../da/de9/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html',1,'shaka::media::mp4']]], + ['protectionsystemspecificheader_1189',['ProtectionSystemSpecificHeader',['../d0/d3c/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html',1,'shaka::media::mp4']]], + ['protectionsystemspecificinfo_1190',['ProtectionSystemSpecificInfo',['../d0/d86/structshaka_1_1media_1_1ProtectionSystemSpecificInfo.html',1,'shaka::media']]], + ['psshboxbuilder_1191',['PsshBoxBuilder',['../d2/d24/classshaka_1_1media_1_1PsshBoxBuilder.html',1,'shaka::media']]], + ['psshgenerator_1192',['PsshGenerator',['../d8/dbf/classshaka_1_1media_1_1PsshGenerator.html',1,'shaka::media']]] ]; diff --git a/docs/search/classes_f.js b/docs/search/classes_f.js index b0abeb378d..e01ced00ee 100644 --- a/docs/search/classes_f.js +++ b/docs/search/classes_f.js @@ -1,16 +1,16 @@ var searchData= [ - ['range_1192',['Range',['../d9/de0/structshaka_1_1media_1_1Range.html',1,'shaka::media']]], - ['rawkeyparams_1193',['RawKeyParams',['../d0/db4/structshaka_1_1RawKeyParams.html',1,'shaka']]], - ['rawkeysource_1194',['RawKeySource',['../db/dd0/classshaka_1_1media_1_1RawKeySource.html',1,'shaka::media']]], - ['replicator_1195',['Replicator',['../d3/d1a/classshaka_1_1media_1_1Replicator.html',1,'shaka::media']]], - ['representation_1196',['Representation',['../de/d52/classshaka_1_1Representation.html',1,'shaka']]], - ['representationbasexmlnode_1197',['RepresentationBaseXmlNode',['../dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html',1,'shaka::xml']]], - ['representationstatechangelistener_1198',['RepresentationStateChangeListener',['../df/d94/classshaka_1_1RepresentationStateChangeListener.html',1,'shaka']]], - ['representationxmlnode_1199',['RepresentationXmlNode',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html',1,'shaka::xml']]], - ['requestsigner_1200',['RequestSigner',['../df/d3c/classshaka_1_1media_1_1RequestSigner.html',1,'shaka::media']]], - ['rgbacolor_1201',['RgbaColor',['../d4/dfa/structshaka_1_1media_1_1RgbaColor.html',1,'shaka::media']]], - ['rsaprivatekey_1202',['RsaPrivateKey',['../d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html',1,'shaka::media']]], - ['rsapublickey_1203',['RsaPublicKey',['../d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html',1,'shaka::media']]], - ['rsarequestsigner_1204',['RsaRequestSigner',['../d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html',1,'shaka::media']]] + ['range_1193',['Range',['../d9/de0/structshaka_1_1media_1_1Range.html',1,'shaka::media']]], + ['rawkeyparams_1194',['RawKeyParams',['../d0/db4/structshaka_1_1RawKeyParams.html',1,'shaka']]], + ['rawkeysource_1195',['RawKeySource',['../db/dd0/classshaka_1_1media_1_1RawKeySource.html',1,'shaka::media']]], + ['replicator_1196',['Replicator',['../d3/d1a/classshaka_1_1media_1_1Replicator.html',1,'shaka::media']]], + ['representation_1197',['Representation',['../de/d52/classshaka_1_1Representation.html',1,'shaka']]], + ['representationbasexmlnode_1198',['RepresentationBaseXmlNode',['../dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html',1,'shaka::xml']]], + ['representationstatechangelistener_1199',['RepresentationStateChangeListener',['../df/d94/classshaka_1_1RepresentationStateChangeListener.html',1,'shaka']]], + ['representationxmlnode_1200',['RepresentationXmlNode',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html',1,'shaka::xml']]], + ['requestsigner_1201',['RequestSigner',['../df/d3c/classshaka_1_1media_1_1RequestSigner.html',1,'shaka::media']]], + ['rgbacolor_1202',['RgbaColor',['../d4/dfa/structshaka_1_1media_1_1RgbaColor.html',1,'shaka::media']]], + ['rsaprivatekey_1203',['RsaPrivateKey',['../d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html',1,'shaka::media']]], + ['rsapublickey_1204',['RsaPublicKey',['../d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html',1,'shaka::media']]], + ['rsarequestsigner_1205',['RsaRequestSigner',['../d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html',1,'shaka::media']]] ]; diff --git a/docs/search/enums_0.js b/docs/search/enums_0.js index 82c5fd1af4..6a21a5aa7b 100644 --- a/docs/search/enums_0.js +++ b/docs/search/enums_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['hlsplaylisttype_1954',['HlsPlaylistType',['../d8/daf/namespaceshaka.html#ab63a3c00cdbf61cfb6dd7a2497b26f8d',1,'shaka']]] + ['hlsplaylisttype_1957',['HlsPlaylistType',['../d8/daf/namespaceshaka.html#ab63a3c00cdbf61cfb6dd7a2497b26f8d',1,'shaka']]] ]; diff --git a/docs/search/enums_1.js b/docs/search/enums_1.js index 85778c8962..9364be5683 100644 --- a/docs/search/enums_1.js +++ b/docs/search/enums_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['keyprovider_1955',['KeyProvider',['../d8/daf/namespaceshaka.html#a539b99ce5c34193e294bc544437e9185',1,'shaka']]] + ['keyprovider_1958',['KeyProvider',['../d8/daf/namespaceshaka.html#a539b99ce5c34193e294bc544437e9185',1,'shaka']]] ]; diff --git a/docs/search/enums_2.js b/docs/search/enums_2.js index d225827297..3c2d770736 100644 --- a/docs/search/enums_2.js +++ b/docs/search/enums_2.js @@ -1,5 +1,5 @@ var searchData= [ - ['patternencryptionmode_1956',['PatternEncryptionMode',['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html#a54fd35d7782d3b4948c7eb68387711f0',1,'shaka::media::AesPatternCryptor']]], - ['protectionsystem_1957',['ProtectionSystem',['../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac',1,'shaka']]] + ['patternencryptionmode_1959',['PatternEncryptionMode',['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html#a54fd35d7782d3b4948c7eb68387711f0',1,'shaka::media::AesPatternCryptor']]], + ['protectionsystem_1960',['ProtectionSystem',['../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac',1,'shaka']]] ]; diff --git a/docs/search/enumvalues_0.js b/docs/search/enumvalues_0.js index 3c61c7bc93..592960a5ad 100644 --- a/docs/search/enumvalues_0.js +++ b/docs/search/enumvalues_0.js @@ -1,8 +1,8 @@ var searchData= [ - ['kcommon_1958',['kCommon',['../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673aca4a8a926ca6c8454f8249deec51b47e66',1,'shaka']]], - ['kdefaultaudiobufferdurationinms_1959',['kDefaultAudioBufferDurationInMs',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#a3b443a69d0303fbee31c06510090b179a696e4587c758dc7908ad6bbb376ae06d',1,'shaka::media::WebMClusterParser']]], - ['kdefaultvideobufferdurationinms_1960',['kDefaultVideoBufferDurationInMs',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#a3b443a69d0303fbee31c06510090b179ae4ed667d0b90505a42a7983b0aa4d57f',1,'shaka::media::WebMClusterParser']]], - ['kencryptifcryptbyteblockremaining_1961',['kEncryptIfCryptByteBlockRemaining',['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html#a54fd35d7782d3b4948c7eb68387711f0a76b19d202e22b2b0f661f933b47b3b16',1,'shaka::media::AesPatternCryptor']]], - ['kskipifcryptbyteblockremaining_1962',['kSkipIfCryptByteBlockRemaining',['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html#a54fd35d7782d3b4948c7eb68387711f0a09674e418b61763fdc5cf22c248efd4f',1,'shaka::media::AesPatternCryptor']]] + ['kcommon_1961',['kCommon',['../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673aca4a8a926ca6c8454f8249deec51b47e66',1,'shaka']]], + ['kdefaultaudiobufferdurationinms_1962',['kDefaultAudioBufferDurationInMs',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#a3b443a69d0303fbee31c06510090b179a696e4587c758dc7908ad6bbb376ae06d',1,'shaka::media::WebMClusterParser']]], + ['kdefaultvideobufferdurationinms_1963',['kDefaultVideoBufferDurationInMs',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#a3b443a69d0303fbee31c06510090b179ae4ed667d0b90505a42a7983b0aa4d57f',1,'shaka::media::WebMClusterParser']]], + ['kencryptifcryptbyteblockremaining_1964',['kEncryptIfCryptByteBlockRemaining',['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html#a54fd35d7782d3b4948c7eb68387711f0a76b19d202e22b2b0f661f933b47b3b16',1,'shaka::media::AesPatternCryptor']]], + ['kskipifcryptbyteblockremaining_1965',['kSkipIfCryptByteBlockRemaining',['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html#a54fd35d7782d3b4948c7eb68387711f0a09674e418b61763fdc5cf22c248efd4f',1,'shaka::media::AesPatternCryptor']]] ]; diff --git a/docs/search/functions_0.js b/docs/search/functions_0.js index e703f03864..d10b880dd2 100644 --- a/docs/search/functions_0.js +++ b/docs/search/functions_0.js @@ -1,58 +1,58 @@ var searchData= [ - ['adaptationset_1332',['AdaptationSet',['../d8/d8e/classshaka_1_1AdaptationSet.html#aba5cf29752df034cc620f2ed38e2d4ec',1,'shaka::AdaptationSet']]], - ['addaccessibility_1333',['AddAccessibility',['../d8/d8e/classshaka_1_1AdaptationSet.html#a20609cca5e9416194697615ec4086623',1,'shaka::AdaptationSet']]], - ['addaccessibilityelement_1334',['AddAccessibilityElement',['../d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html#af98b8af322edcd40db858ad250e1747d',1,'shaka::xml::AdaptationSetXmlNode']]], - ['addadaptationsetswitching_1335',['AddAdaptationSetSwitching',['../d8/d8e/classshaka_1_1AdaptationSet.html#a979cef296d0e67c271641a0c3146e8f3',1,'shaka::AdaptationSet']]], - ['addaudioinfo_1336',['AddAudioInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#af22f2360db2e18d4ebee8034e01d58d8',1,'shaka::xml::RepresentationXmlNode']]], - ['addbaseurl_1337',['AddBaseUrl',['../dc/da1/classshaka_1_1MpdBuilder.html#ab6fd968035d1cba5060fe23a107f8bdb',1,'shaka::MpdBuilder']]], - ['addblock_1338',['AddBlock',['../da/d2c/classshaka_1_1BandwidthEstimator.html#a53c67d33f000489d1ebb31a2bdd766a4',1,'shaka::BandwidthEstimator']]], - ['addchild_1339',['AddChild',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a224400ce2dd8168ef7d8d4f47998600c',1,'shaka::xml::XmlNode']]], - ['addcontent_1340',['AddContent',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a54ce31ffe673463dfa6133bb2868a846',1,'shaka::xml::XmlNode']]], - ['addcontentprotectionelement_1341',['AddContentProtectionElement',['../d8/d8e/classshaka_1_1AdaptationSet.html#a28c52febc71a581ebec2c1308f6ea15c',1,'shaka::AdaptationSet::AddContentProtectionElement()'],['../de/d52/classshaka_1_1Representation.html#a265d014093c9073b08505013886aaa8d',1,'shaka::Representation::AddContentProtectionElement()']]], - ['addcontentprotectionelements_1342',['AddContentProtectionElements',['../d8/daf/namespaceshaka.html#ac917945d578a03ce53b902f6c1bc4e33',1,'shaka::AddContentProtectionElements(const MediaInfo &media_info, AdaptationSet *parent)'],['../d8/daf/namespaceshaka.html#abfd977a0dfb051a942d1694442692814',1,'shaka::AddContentProtectionElements(const MediaInfo &media_info, Representation *parent)']]], - ['adddescriptor_1343',['AddDescriptor',['../dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html#a192e88ff8d78a8efe3557b64d867ee71',1,'shaka::xml::RepresentationBaseXmlNode']]], - ['addelements_1344',['AddElements',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#adb764dde412a8ac6137fef1500767553',1,'shaka::xml::XmlNode']]], - ['addencryptioninfo_1345',['AddEncryptionInfo',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a4aaa21da07864789895048e8558ab816',1,'shaka::hls::MediaPlaylist']]], - ['addessentialproperty_1346',['AddEssentialProperty',['../dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html#a8e75f087fb8bc82ad4c0f1f20c8c4be2',1,'shaka::xml::RepresentationBaseXmlNode']]], - ['addfloat_1347',['AddFloat',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#a649e5cc3cb3df73de76cff07363a6918',1,'shaka::hls::Tag']]], - ['addhandler_1348',['AddHandler',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#afc48a2450ce50162de18071aef516b6c',1,'shaka::media::MediaHandler']]], - ['addkeyframe_1349',['AddKeyFrame',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a505b247de5ec210a0f95d543cf7acc38',1,'shaka::hls::MediaPlaylist']]], - ['addliveonlyinfo_1350',['AddLiveOnlyInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#ac9a4d8ed5a9710408904ca0f7c13b66e',1,'shaka::xml::RepresentationXmlNode']]], - ['addnalu_1351',['AddNalu',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#a6b2234ce5bdffaaaad217414df314598',1,'shaka::media::DecoderConfigurationRecord']]], - ['addnewsegment_1352',['AddNewSegment',['../de/d52/classshaka_1_1Representation.html#ae9b6536925d1107e3f22ad3130cb9fe9',1,'shaka::Representation']]], - ['addnumber_1353',['AddNumber',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#ad0ccc1afed35fa68222d4079768ba03a',1,'shaka::hls::Tag']]], - ['addnumberpair_1354',['AddNumberPair',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#acdd693c365eb0809290d6cd04fb0a5a9',1,'shaka::hls::Tag']]], - ['addpespacket_1355',['AddPesPacket',['../de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html#aec681429563e0237c3d0bfd312ff729a',1,'shaka::media::mp2t::TsWriter']]], - ['addplacementopportunity_1356',['AddPlacementOpportunity',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#ab17c3587576580af5c033b3828299b46',1,'shaka::hls::MediaPlaylist']]], - ['addprivateframe_1357',['AddPrivateFrame',['../de/d26/classshaka_1_1media_1_1Id3Tag.html#a90a47470efaf3a956ec60da770bb3f37',1,'shaka::media::Id3Tag']]], - ['addquotednumberpair_1358',['AddQuotedNumberPair',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#acc9646f3df4fd5c7aebc09f05a62edcd',1,'shaka::hls::Tag']]], - ['addquotedstring_1359',['AddQuotedString',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#a56ad283301e336971c67a0e4ead40cff',1,'shaka::hls::Tag']]], - ['addrepresentation_1360',['AddRepresentation',['../d8/d8e/classshaka_1_1AdaptationSet.html#a124e3c1ba5e3209f3214a556ecae28c3',1,'shaka::AdaptationSet']]], - ['addrole_1361',['AddRole',['../d8/d8e/classshaka_1_1AdaptationSet.html#ae96ad89ec7cc7d5ef1db467a9cf13730',1,'shaka::AdaptationSet']]], - ['addroleelement_1362',['AddRoleElement',['../d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html#ac2cd7f5ffe474ea701e93c719b9c1237',1,'shaka::xml::AdaptationSetXmlNode']]], - ['addsample_1363',['AddSample',['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#ac403002f18ebdecfbdcb0b6dd5b3da4e',1,'shaka::media::PackedAudioSegmenter::AddSample()'],['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#ad1f32c39f29599522f58fe6567b890e4',1,'shaka::media::mp2t::TsSegmenter::AddSample()'],['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#a993d83a58a8407d46279b3490723c5ca',1,'shaka::media::mp4::Fragmenter::AddSample()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#a6b859a1e564cf007a34f6bfa2d48baeb',1,'shaka::media::mp4::Segmenter::AddSample()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a94352e60afa9b2409fecd4e45a56e547',1,'shaka::media::webm::Segmenter::AddSample()']]], - ['addsegment_1364',['AddSegment',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#afecc7ca28e4eb44e69d5771cadd0e3b9',1,'shaka::hls::MediaPlaylist']]], - ['addstring_1365',['AddString',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#ade787a45b10eb23c267c0abe4cb8b647',1,'shaka::hls::Tag']]], - ['addsubsample_1366',['AddSubsample',['../de/d49/classshaka_1_1media_1_1DecryptConfig.html#a36681ecf1eeb8a4effb0f00b232bda58',1,'shaka::media::DecryptConfig']]], - ['addsupplementalproperty_1367',['AddSupplementalProperty',['../dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html#a32a01b59d1b8e49488d49cff2662e3be',1,'shaka::xml::RepresentationBaseXmlNode']]], - ['addthread_1368',['AddThread',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a84f1c4ad047ffa4bd75d5d1426bf9cd2',1,'shaka::media::SyncPointQueue']]], - ['addtrickplayreference_1369',['AddTrickPlayReference',['../d8/d8e/classshaka_1_1AdaptationSet.html#a834d1c61e34db517169b802b8a11eeda',1,'shaka::AdaptationSet']]], - ['addvideoinfo_1370',['AddVideoInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#a11457f5b89522919b61d83cc0bbd51dc',1,'shaka::xml::RepresentationXmlNode']]], - ['addvodonlyinfo_1371',['AddVODOnlyInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#a5141fe43e6a15233d6214bc05eb52f0d',1,'shaka::xml::RepresentationXmlNode']]], - ['advance_1372',['Advance',['../db/d86/classshaka_1_1media_1_1NaluReader.html#ae051f1f92d84acfcd4cc159d972d647a',1,'shaka::media::NaluReader']]], - ['advancechunk_1373',['AdvanceChunk',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#aacde1d08a3ce21cf187a1dff4fe031b4',1,'shaka::media::mp4::ChunkInfoIterator']]], - ['advancerun_1374',['AdvanceRun',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#ada6e03ef97d03b7c11ef7ac873461364',1,'shaka::media::mp4::TrackRunIterator']]], - ['advancesample_1375',['AdvanceSample',['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#aec68fe0d0dcccedfe2d898320fd534d5',1,'shaka::media::mp4::DecodingTimeIterator::AdvanceSample()'],['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#abed93049cf801c0c3795801da9d5ff7c',1,'shaka::media::mp4::ChunkInfoIterator::AdvanceSample()'],['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a6ff6e2ce67a54051c5a7e39dfadcb48d',1,'shaka::media::mp4::TrackRunIterator::AdvanceSample()'],['../d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html#a2f3f28acc6ecd10f8b30bab65334609d',1,'shaka::media::mp4::SyncSampleIterator::AdvanceSample()'],['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#afa13feae7d7b96708264877e3198f939',1,'shaka::media::mp4::CompositionOffsetIterator::AdvanceSample()']]], - ['aescbcdecryptor_1376',['AesCbcDecryptor',['../df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html#a855ab9fa2f350879a7716ec90033f825',1,'shaka::media::AesCbcDecryptor::AesCbcDecryptor(CbcPaddingScheme padding_scheme)'],['../df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html#a350d11c34c42ee4d4e62cdd7aebc5fbb',1,'shaka::media::AesCbcDecryptor::AesCbcDecryptor(CbcPaddingScheme padding_scheme, ConstantIvFlag constant_iv_flag)']]], - ['aescbcencryptor_1377',['AesCbcEncryptor',['../d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html#a2cc8f20b92d884d959b3a586b527fece',1,'shaka::media::AesCbcEncryptor::AesCbcEncryptor(CbcPaddingScheme padding_scheme)'],['../d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html#adbe4df9a37be949487a806301d143230',1,'shaka::media::AesCbcEncryptor::AesCbcEncryptor(CbcPaddingScheme padding_scheme, ConstantIvFlag constant_iv_flag)']]], - ['aescryptor_1378',['AesCryptor',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a47fbdacc296fbddd899c47ec0c17e5e8',1,'shaka::media::AesCryptor']]], - ['aesencryptor_1379',['AesEncryptor',['../d3/d75/classshaka_1_1media_1_1AesEncryptor.html#a873b0794baca91b36dbc484fc9c37e58',1,'shaka::media::AesEncryptor']]], - ['aespatterncryptor_1380',['AesPatternCryptor',['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html#abb94f2d6a527b12854e81839fd10e1d5',1,'shaka::media::AesPatternCryptor']]], - ['appendint_1381',['AppendInt',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#abd8854feedd8b45146eb04dacf7d5b2f',1,'shaka::media::BufferWriter']]], - ['appendnbytes_1382',['AppendNBytes',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#ae44b09c03c9b8f0fbf58deb80355f299',1,'shaka::media::BufferWriter']]], - ['audio_5fdescription_1383',['audio_description',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a9bfb539ed94fca57859cd9fa2814044d',1,'shaka::media::mp4::TrackRunIterator']]], - ['audiostreaminfo_1384',['AudioStreamInfo',['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html#a1333ea7b15790da37addb60ba49131b4',1,'shaka::media::AudioStreamInfo']]], - ['auxinfoneedstobecached_1385',['AuxInfoNeedsToBeCached',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a8d4fb433e66fec693035cac796ca6851',1,'shaka::media::mp4::TrackRunIterator']]], - ['avgbitrate_1386',['AvgBitrate',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a66ea7bbe872b17c0a41402226c203378',1,'shaka::hls::MediaPlaylist']]] + ['adaptationset_1333',['AdaptationSet',['../d8/d8e/classshaka_1_1AdaptationSet.html#aba5cf29752df034cc620f2ed38e2d4ec',1,'shaka::AdaptationSet']]], + ['addaccessibility_1334',['AddAccessibility',['../d8/d8e/classshaka_1_1AdaptationSet.html#a20609cca5e9416194697615ec4086623',1,'shaka::AdaptationSet']]], + ['addaccessibilityelement_1335',['AddAccessibilityElement',['../d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html#af98b8af322edcd40db858ad250e1747d',1,'shaka::xml::AdaptationSetXmlNode']]], + ['addadaptationsetswitching_1336',['AddAdaptationSetSwitching',['../d8/d8e/classshaka_1_1AdaptationSet.html#a979cef296d0e67c271641a0c3146e8f3',1,'shaka::AdaptationSet']]], + ['addaudioinfo_1337',['AddAudioInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#af22f2360db2e18d4ebee8034e01d58d8',1,'shaka::xml::RepresentationXmlNode']]], + ['addbaseurl_1338',['AddBaseUrl',['../dc/da1/classshaka_1_1MpdBuilder.html#ab6fd968035d1cba5060fe23a107f8bdb',1,'shaka::MpdBuilder']]], + ['addblock_1339',['AddBlock',['../da/d2c/classshaka_1_1BandwidthEstimator.html#a53c67d33f000489d1ebb31a2bdd766a4',1,'shaka::BandwidthEstimator']]], + ['addchild_1340',['AddChild',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a224400ce2dd8168ef7d8d4f47998600c',1,'shaka::xml::XmlNode']]], + ['addcontent_1341',['AddContent',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a54ce31ffe673463dfa6133bb2868a846',1,'shaka::xml::XmlNode']]], + ['addcontentprotectionelement_1342',['AddContentProtectionElement',['../d8/d8e/classshaka_1_1AdaptationSet.html#a28c52febc71a581ebec2c1308f6ea15c',1,'shaka::AdaptationSet::AddContentProtectionElement()'],['../de/d52/classshaka_1_1Representation.html#a265d014093c9073b08505013886aaa8d',1,'shaka::Representation::AddContentProtectionElement()']]], + ['addcontentprotectionelements_1343',['AddContentProtectionElements',['../d8/daf/namespaceshaka.html#ac917945d578a03ce53b902f6c1bc4e33',1,'shaka::AddContentProtectionElements(const MediaInfo &media_info, AdaptationSet *parent)'],['../d8/daf/namespaceshaka.html#abfd977a0dfb051a942d1694442692814',1,'shaka::AddContentProtectionElements(const MediaInfo &media_info, Representation *parent)']]], + ['adddescriptor_1344',['AddDescriptor',['../dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html#a192e88ff8d78a8efe3557b64d867ee71',1,'shaka::xml::RepresentationBaseXmlNode']]], + ['addelements_1345',['AddElements',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#adb764dde412a8ac6137fef1500767553',1,'shaka::xml::XmlNode']]], + ['addencryptioninfo_1346',['AddEncryptionInfo',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a4aaa21da07864789895048e8558ab816',1,'shaka::hls::MediaPlaylist']]], + ['addessentialproperty_1347',['AddEssentialProperty',['../dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html#a8e75f087fb8bc82ad4c0f1f20c8c4be2',1,'shaka::xml::RepresentationBaseXmlNode']]], + ['addfloat_1348',['AddFloat',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#a649e5cc3cb3df73de76cff07363a6918',1,'shaka::hls::Tag']]], + ['addhandler_1349',['AddHandler',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#afc48a2450ce50162de18071aef516b6c',1,'shaka::media::MediaHandler']]], + ['addkeyframe_1350',['AddKeyFrame',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a505b247de5ec210a0f95d543cf7acc38',1,'shaka::hls::MediaPlaylist']]], + ['addliveonlyinfo_1351',['AddLiveOnlyInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#ac9a4d8ed5a9710408904ca0f7c13b66e',1,'shaka::xml::RepresentationXmlNode']]], + ['addnalu_1352',['AddNalu',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#a6b2234ce5bdffaaaad217414df314598',1,'shaka::media::DecoderConfigurationRecord']]], + ['addnewsegment_1353',['AddNewSegment',['../de/d52/classshaka_1_1Representation.html#ae9b6536925d1107e3f22ad3130cb9fe9',1,'shaka::Representation']]], + ['addnumber_1354',['AddNumber',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#ad0ccc1afed35fa68222d4079768ba03a',1,'shaka::hls::Tag']]], + ['addnumberpair_1355',['AddNumberPair',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#acdd693c365eb0809290d6cd04fb0a5a9',1,'shaka::hls::Tag']]], + ['addpespacket_1356',['AddPesPacket',['../de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html#aec681429563e0237c3d0bfd312ff729a',1,'shaka::media::mp2t::TsWriter']]], + ['addplacementopportunity_1357',['AddPlacementOpportunity',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#ab17c3587576580af5c033b3828299b46',1,'shaka::hls::MediaPlaylist']]], + ['addprivateframe_1358',['AddPrivateFrame',['../de/d26/classshaka_1_1media_1_1Id3Tag.html#a90a47470efaf3a956ec60da770bb3f37',1,'shaka::media::Id3Tag']]], + ['addquotednumberpair_1359',['AddQuotedNumberPair',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#acc9646f3df4fd5c7aebc09f05a62edcd',1,'shaka::hls::Tag']]], + ['addquotedstring_1360',['AddQuotedString',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#a56ad283301e336971c67a0e4ead40cff',1,'shaka::hls::Tag']]], + ['addrepresentation_1361',['AddRepresentation',['../d8/d8e/classshaka_1_1AdaptationSet.html#a124e3c1ba5e3209f3214a556ecae28c3',1,'shaka::AdaptationSet']]], + ['addrole_1362',['AddRole',['../d8/d8e/classshaka_1_1AdaptationSet.html#ae96ad89ec7cc7d5ef1db467a9cf13730',1,'shaka::AdaptationSet']]], + ['addroleelement_1363',['AddRoleElement',['../d1/de7/classshaka_1_1xml_1_1AdaptationSetXmlNode.html#ac2cd7f5ffe474ea701e93c719b9c1237',1,'shaka::xml::AdaptationSetXmlNode']]], + ['addsample_1364',['AddSample',['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#ac403002f18ebdecfbdcb0b6dd5b3da4e',1,'shaka::media::PackedAudioSegmenter::AddSample()'],['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#ad1f32c39f29599522f58fe6567b890e4',1,'shaka::media::mp2t::TsSegmenter::AddSample()'],['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#a993d83a58a8407d46279b3490723c5ca',1,'shaka::media::mp4::Fragmenter::AddSample()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#a6b859a1e564cf007a34f6bfa2d48baeb',1,'shaka::media::mp4::Segmenter::AddSample()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a94352e60afa9b2409fecd4e45a56e547',1,'shaka::media::webm::Segmenter::AddSample()']]], + ['addsegment_1365',['AddSegment',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#afecc7ca28e4eb44e69d5771cadd0e3b9',1,'shaka::hls::MediaPlaylist']]], + ['addstring_1366',['AddString',['../d1/d7e/classshaka_1_1hls_1_1Tag.html#ade787a45b10eb23c267c0abe4cb8b647',1,'shaka::hls::Tag']]], + ['addsubsample_1367',['AddSubsample',['../de/d49/classshaka_1_1media_1_1DecryptConfig.html#a36681ecf1eeb8a4effb0f00b232bda58',1,'shaka::media::DecryptConfig']]], + ['addsupplementalproperty_1368',['AddSupplementalProperty',['../dd/db9/classshaka_1_1xml_1_1RepresentationBaseXmlNode.html#a32a01b59d1b8e49488d49cff2662e3be',1,'shaka::xml::RepresentationBaseXmlNode']]], + ['addthread_1369',['AddThread',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a84f1c4ad047ffa4bd75d5d1426bf9cd2',1,'shaka::media::SyncPointQueue']]], + ['addtrickplayreference_1370',['AddTrickPlayReference',['../d8/d8e/classshaka_1_1AdaptationSet.html#a834d1c61e34db517169b802b8a11eeda',1,'shaka::AdaptationSet']]], + ['addvideoinfo_1371',['AddVideoInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#a11457f5b89522919b61d83cc0bbd51dc',1,'shaka::xml::RepresentationXmlNode']]], + ['addvodonlyinfo_1372',['AddVODOnlyInfo',['../df/d9e/classshaka_1_1xml_1_1RepresentationXmlNode.html#aed9603fb7d1ca1b283060e2a39590be9',1,'shaka::xml::RepresentationXmlNode']]], + ['advance_1373',['Advance',['../db/d86/classshaka_1_1media_1_1NaluReader.html#ae051f1f92d84acfcd4cc159d972d647a',1,'shaka::media::NaluReader']]], + ['advancechunk_1374',['AdvanceChunk',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#aacde1d08a3ce21cf187a1dff4fe031b4',1,'shaka::media::mp4::ChunkInfoIterator']]], + ['advancerun_1375',['AdvanceRun',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#ada6e03ef97d03b7c11ef7ac873461364',1,'shaka::media::mp4::TrackRunIterator']]], + ['advancesample_1376',['AdvanceSample',['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#aec68fe0d0dcccedfe2d898320fd534d5',1,'shaka::media::mp4::DecodingTimeIterator::AdvanceSample()'],['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#abed93049cf801c0c3795801da9d5ff7c',1,'shaka::media::mp4::ChunkInfoIterator::AdvanceSample()'],['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a6ff6e2ce67a54051c5a7e39dfadcb48d',1,'shaka::media::mp4::TrackRunIterator::AdvanceSample()'],['../d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html#a2f3f28acc6ecd10f8b30bab65334609d',1,'shaka::media::mp4::SyncSampleIterator::AdvanceSample()'],['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#afa13feae7d7b96708264877e3198f939',1,'shaka::media::mp4::CompositionOffsetIterator::AdvanceSample()']]], + ['aescbcdecryptor_1377',['AesCbcDecryptor',['../df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html#a855ab9fa2f350879a7716ec90033f825',1,'shaka::media::AesCbcDecryptor::AesCbcDecryptor(CbcPaddingScheme padding_scheme)'],['../df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html#a350d11c34c42ee4d4e62cdd7aebc5fbb',1,'shaka::media::AesCbcDecryptor::AesCbcDecryptor(CbcPaddingScheme padding_scheme, ConstantIvFlag constant_iv_flag)']]], + ['aescbcencryptor_1378',['AesCbcEncryptor',['../d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html#a2cc8f20b92d884d959b3a586b527fece',1,'shaka::media::AesCbcEncryptor::AesCbcEncryptor(CbcPaddingScheme padding_scheme)'],['../d4/d20/classshaka_1_1media_1_1AesCbcEncryptor.html#adbe4df9a37be949487a806301d143230',1,'shaka::media::AesCbcEncryptor::AesCbcEncryptor(CbcPaddingScheme padding_scheme, ConstantIvFlag constant_iv_flag)']]], + ['aescryptor_1379',['AesCryptor',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a47fbdacc296fbddd899c47ec0c17e5e8',1,'shaka::media::AesCryptor']]], + ['aesencryptor_1380',['AesEncryptor',['../d3/d75/classshaka_1_1media_1_1AesEncryptor.html#a873b0794baca91b36dbc484fc9c37e58',1,'shaka::media::AesEncryptor']]], + ['aespatterncryptor_1381',['AesPatternCryptor',['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html#abb94f2d6a527b12854e81839fd10e1d5',1,'shaka::media::AesPatternCryptor']]], + ['appendint_1382',['AppendInt',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#abd8854feedd8b45146eb04dacf7d5b2f',1,'shaka::media::BufferWriter']]], + ['appendnbytes_1383',['AppendNBytes',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#ae44b09c03c9b8f0fbf58deb80355f299',1,'shaka::media::BufferWriter']]], + ['audio_5fdescription_1384',['audio_description',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a9bfb539ed94fca57859cd9fa2814044d',1,'shaka::media::mp4::TrackRunIterator']]], + ['audiostreaminfo_1385',['AudioStreamInfo',['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html#a1333ea7b15790da37addb60ba49131b4',1,'shaka::media::AudioStreamInfo']]], + ['auxinfoneedstobecached_1386',['AuxInfoNeedsToBeCached',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a8d4fb433e66fec693035cac796ca6851',1,'shaka::media::mp4::TrackRunIterator']]], + ['avgbitrate_1387',['AvgBitrate',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a66ea7bbe872b17c0a41402226c203378',1,'shaka::hls::MediaPlaylist']]] ]; diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js index cc159449c6..3e74cf4049 100644 --- a/docs/search/functions_1.js +++ b/docs/search/functions_1.js @@ -1,18 +1,18 @@ var searchData= [ - ['bit_5fposition_1387',['bit_position',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a100abf1165633b67359bb3d813594f7e',1,'shaka::media::BitReader']]], - ['bitpos_1388',['BitPos',['../dc/d76/classshaka_1_1media_1_1BitWriter.html#a66164c7c6fcd524dd1f87b07f4c2e7fd',1,'shaka::media::BitWriter']]], - ['bitreader_1389',['BitReader',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a264dbe3e94ba76214c1af75ab3877945',1,'shaka::media::BitReader']]], - ['bits_5favailable_1390',['bits_available',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a94b03de069b0054ee4a534b12644a986',1,'shaka::media::BitReader']]], - ['bitwriter_1391',['BitWriter',['../dc/d76/classshaka_1_1media_1_1BitWriter.html#a09495a53bd1f1885dcc328b1621041f4',1,'shaka::media::BitWriter']]], - ['box_5fsize_1392',['box_size',['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#ad0186e0f9301bd07c52a55a8b1db0419',1,'shaka::media::mp4::Box']]], - ['boxbuffer_1393',['BoxBuffer',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a787a6a6404dfc1fed10dfd903b4e4d22',1,'shaka::media::mp4::BoxBuffer::BoxBuffer(BoxReader *reader)'],['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a021513a50af89992b15691dfc79ed447',1,'shaka::media::mp4::BoxBuffer::BoxBuffer(BufferWriter *writer)']]], - ['boxtype_1394',['BoxType',['../da/d50/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader.html#ab2afa24c2f0b694a141ebe58b06635aa',1,'shaka::media::mp4::MovieExtendsHeader::BoxType()'],['../d7/d42/structshaka_1_1media_1_1mp4_1_1SampleSize.html#a18b9c0277deec16ff5ffef98c2dbadf3',1,'shaka::media::mp4::SampleSize::BoxType()'],['../d3/db5/structshaka_1_1media_1_1mp4_1_1Track.html#a9ab0be777c96c884b73d2bb85cbb482c',1,'shaka::media::mp4::Track::BoxType()'],['../dc/ddf/structshaka_1_1media_1_1mp4_1_1Media.html#a3a083251ea157e44befabf84b66b0c9e',1,'shaka::media::mp4::Media::BoxType()'],['../d5/d86/structshaka_1_1media_1_1mp4_1_1MediaInformation.html#a5536ed5769a974f5094c4120c66667fe',1,'shaka::media::mp4::MediaInformation::BoxType()'],['../d8/d6d/structshaka_1_1media_1_1mp4_1_1DataInformation.html#ad590eaa2b74fc18d22044abdeafe04c8',1,'shaka::media::mp4::DataInformation::BoxType()'],['../d4/de3/structshaka_1_1media_1_1mp4_1_1DataReference.html#ad4241f10042e77cb12b30c654746253b',1,'shaka::media::mp4::DataReference::BoxType()'],['../df/d8a/structshaka_1_1media_1_1mp4_1_1DataEntryUrl.html#a8d46c2ad8b3dd9ae07bc3a73bb45da06',1,'shaka::media::mp4::DataEntryUrl::BoxType()'],['../db/d21/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader.html#a66a134f3ab023831f569873177d4e727',1,'shaka::media::mp4::SubtitleMediaHeader::BoxType()'],['../d2/d0e/structshaka_1_1media_1_1mp4_1_1NullMediaHeader.html#aeb38ef17682c5a60cb6eb8703879485c',1,'shaka::media::mp4::NullMediaHeader::BoxType()'],['../d7/d07/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader.html#a0a546689f087197c1f9fa7db68887e76',1,'shaka::media::mp4::SoundMediaHeader::BoxType()'],['../d1/db0/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader.html#afcca5343a3de868510a53de508730813',1,'shaka::media::mp4::VideoMediaHeader::BoxType()'],['../d4/db9/structshaka_1_1media_1_1mp4_1_1MediaHeader.html#ad8edc72b3035e93b38ca51505ae01412',1,'shaka::media::mp4::MediaHeader::BoxType()'],['../d1/dee/structshaka_1_1media_1_1mp4_1_1SampleTable.html#a2771a6a7d82c1f544bafaf0709043fc1',1,'shaka::media::mp4::SampleTable::BoxType()'],['../d0/d7c/structshaka_1_1media_1_1mp4_1_1SampleToGroup.html#a4bbaf4bfb39fb569eaeb78f1e9169794',1,'shaka::media::mp4::SampleToGroup::BoxType()'],['../d7/d01/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription.html#ad5d87ea02a51983fdb555f2e3638bfed',1,'shaka::media::mp4::SampleGroupDescription::BoxType()'],['../dd/d3f/structshaka_1_1media_1_1mp4_1_1SyncSample.html#a9d03c709f7d1e51f8809322794756b3b',1,'shaka::media::mp4::SyncSample::BoxType()'],['../dd/d06/structshaka_1_1media_1_1mp4_1_1ChunkOffset.html#af4dd3a3ea67a2efb95ac3761b33a8fa0',1,'shaka::media::mp4::ChunkOffset::BoxType()'],['../db/d95/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset.html#a8215c57361432ca6459cb0333034614d',1,'shaka::media::mp4::ChunkLargeOffset::BoxType()'],['../d4/df9/structshaka_1_1media_1_1mp4_1_1SegmentIndex.html#ac95186c204fe8aeffc6c41ca8181af35',1,'shaka::media::mp4::SegmentIndex::BoxType()'],['../d6/daa/structshaka_1_1media_1_1mp4_1_1VTTCueBox.html#ae19e44ca727ff4ae010a8c62fc566f41',1,'shaka::media::mp4::VTTCueBox::BoxType()'],['../d6/d79/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html#ab22709c67041094daaaa6f0b42eca51d',1,'shaka::media::mp4::VTTAdditionalTextBox::BoxType()'],['../d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html#a0e463ad10c04f13125f146c5ef908f69',1,'shaka::media::mp4::VTTEmptyCueBox::BoxType()'],['../d2/d7f/structshaka_1_1media_1_1mp4_1_1CuePayloadBox.html#aefca706b24f701502a071d6c3bd51c2a',1,'shaka::media::mp4::CuePayloadBox::BoxType()'],['../d0/dd0/structshaka_1_1media_1_1mp4_1_1CueSettingsBox.html#ab3ab5a5e7b1702bd713433046b380c8d',1,'shaka::media::mp4::CueSettingsBox::BoxType()'],['../d5/d09/structshaka_1_1media_1_1mp4_1_1CueIDBox.html#a29fe876a3059aa2f7a936ff1bf49b0ff',1,'shaka::media::mp4::CueIDBox::BoxType()'],['../d8/dc3/structshaka_1_1media_1_1mp4_1_1CueTimeBox.html#ae027ee1285bc5d397c450df88d653ae1',1,'shaka::media::mp4::CueTimeBox::BoxType()'],['../d9/d3e/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox.html#a5a9cf523bd1f53f5d2abeaa5cfa20e4c',1,'shaka::media::mp4::CueSourceIDBox::BoxType()'],['../d7/dae/structshaka_1_1media_1_1mp4_1_1MediaData.html#a6b0601ae1defd84cda96d27e4659058a',1,'shaka::media::mp4::MediaData::BoxType()'],['../de/d29/structshaka_1_1media_1_1mp4_1_1TrackExtends.html#adb2087c3c85693054596a26d6f31d4dd',1,'shaka::media::mp4::TrackExtends::BoxType()'],['../d9/d1f/structshaka_1_1media_1_1mp4_1_1MovieFragment.html#ac6fab326de1329f291c8e427e99ce971',1,'shaka::media::mp4::MovieFragment::BoxType()'],['../df/d7b/structshaka_1_1media_1_1mp4_1_1TrackFragment.html#a5776ac8e8cfd7fe2033432a4581e19ea',1,'shaka::media::mp4::TrackFragment::BoxType()'],['../dd/df5/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun.html#a4484ad0299e15e642960702764427f2f',1,'shaka::media::mp4::TrackFragmentRun::BoxType()'],['../d1/d6e/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader.html#a227b3fd6cf16ac250ee08f1e41e27ef9',1,'shaka::media::mp4::TrackFragmentHeader::BoxType()'],['../dc/d8f/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader.html#a68efde9cb48af4236d106dbfa46e96b0',1,'shaka::media::mp4::MovieFragmentHeader::BoxType()'],['../df/d9a/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html#a036a76de5bb9287116a9ad94f8895e84',1,'shaka::media::mp4::TrackFragmentDecodeTime::BoxType()'],['../d0/d9a/structshaka_1_1media_1_1mp4_1_1Movie.html#a623b673fb897f68e9c4e55682d6114dc',1,'shaka::media::mp4::Movie::BoxType()'],['../d1/d3e/structshaka_1_1media_1_1mp4_1_1MovieExtends.html#a3a24ad79e39a6dd24268a90fa5e3d47f',1,'shaka::media::mp4::MovieExtends::BoxType()'],['../d3/da2/structshaka_1_1media_1_1mp4_1_1SchemeType.html#a76da5fef2de39a070fe61055e013b7c1',1,'shaka::media::mp4::SchemeType::BoxType()'],['../d3/dad/structshaka_1_1media_1_1mp4_1_1ID3v2.html#acb41577286eeba57541fed6cd0cabbf2',1,'shaka::media::mp4::ID3v2::BoxType()'],['../da/dbb/structshaka_1_1media_1_1mp4_1_1HandlerReference.html#a71203a734c203f04967eaf1676440ad9',1,'shaka::media::mp4::HandlerReference::BoxType()'],['../da/dd0/structshaka_1_1media_1_1mp4_1_1Edit.html#a44e5523c2fa791cae8dd3e36feee81ac',1,'shaka::media::mp4::Edit::BoxType()'],['../d3/dbe/structshaka_1_1media_1_1mp4_1_1EditList.html#af8ba6778f3fa9b239126ae635d8e9703',1,'shaka::media::mp4::EditList::BoxType()'],['../da/dc4/structshaka_1_1media_1_1mp4_1_1TrackHeader.html#a7880b5742f038be62ca83693883814d3',1,'shaka::media::mp4::TrackHeader::BoxType()'],['../d6/d1a/structshaka_1_1media_1_1mp4_1_1MovieHeader.html#a0bbd09e7f0bc8effc1c1ba7f5b8d49d6',1,'shaka::media::mp4::MovieHeader::BoxType()'],['../da/de9/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html#a09f2c7d00252d23003506285b30d9267',1,'shaka::media::mp4::ProtectionSchemeInfo::BoxType()'],['../d2/d70/structshaka_1_1media_1_1mp4_1_1SchemeInfo.html#a5a50e58f6dcd3969bdeb07fb66a9d4dc',1,'shaka::media::mp4::SchemeInfo::BoxType()'],['../db/db8/structshaka_1_1media_1_1mp4_1_1TrackEncryption.html#a702b5c406fdac82ea3e3cb4de88d1c55',1,'shaka::media::mp4::TrackEncryption::BoxType()'],['../d3/d87/structshaka_1_1media_1_1mp4_1_1SampleToChunk.html#a610c358480034e85cbea93b0b3406655',1,'shaka::media::mp4::SampleToChunk::BoxType()'],['../d5/d05/structshaka_1_1media_1_1mp4_1_1OriginalFormat.html#a4901c12c42b47485da0a95e8671de686',1,'shaka::media::mp4::OriginalFormat::BoxType()'],['../d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html#a62cd7e5cc8c102db09cbd3d7947604dd',1,'shaka::media::mp4::SampleEncryption::BoxType()'],['../dd/d13/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html#a909bcffee3acdc7754539a22546d1c76',1,'shaka::media::mp4::SampleAuxiliaryInformationSize::BoxType()'],['../d5/dca/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html#a63843ee864061fef2d6f788ad240aa44',1,'shaka::media::mp4::SampleAuxiliaryInformationOffset::BoxType()'],['../d0/d3c/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html#aae81fc1f70a0cdb8161dbafdbe80b099',1,'shaka::media::mp4::ProtectionSystemSpecificHeader::BoxType()'],['../d3/dd0/structshaka_1_1media_1_1mp4_1_1SegmentType.html#ab3c10a2cd4a8162a91265b0cfd53de09',1,'shaka::media::mp4::SegmentType::BoxType()'],['../d5/d03/structshaka_1_1media_1_1mp4_1_1FileType.html#a038c8454ffed2e8bf32c858ddae320e1',1,'shaka::media::mp4::FileType::BoxType()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#ac7c07671ab4c56d19e085570862015ca',1,'shaka::media::mp4::Box::BoxType()'],['../db/d11/structshaka_1_1media_1_1mp4_1_1CodecConfiguration.html#a1e9cb483b993bff202ec6143f892972e',1,'shaka::media::mp4::CodecConfiguration::BoxType()'],['../da/d59/structshaka_1_1media_1_1mp4_1_1CompactSampleSize.html#affe88ea3f7899a791b616dfa12f794ee',1,'shaka::media::mp4::CompactSampleSize::BoxType()'],['../df/d7b/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample.html#a53a999ce269642a6f6cb5b9301ca0740',1,'shaka::media::mp4::CompositionTimeToSample::BoxType()'],['../de/def/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample.html#a16599ced0758987dec6d8678faa7a7b9',1,'shaka::media::mp4::DecodingTimeToSample::BoxType()'],['../da/df5/structshaka_1_1media_1_1mp4_1_1SampleDescription.html#a55c299ae4b388109dccc7b84feb45089',1,'shaka::media::mp4::SampleDescription::BoxType()'],['../d7/dc3/structshaka_1_1media_1_1mp4_1_1TextSampleEntry.html#aa3471e1884adc4351293a18fb2ee33fb',1,'shaka::media::mp4::TextSampleEntry::BoxType()'],['../d4/d33/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html#a90a955dc811f20242aa03eea0758ae55',1,'shaka::media::mp4::WebVTTSourceLabelBox::BoxType()'],['../d8/d20/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html#a90c78b82d88afcce6bcb4f5c96fa08b9',1,'shaka::media::mp4::WebVTTConfigurationBox::BoxType()'],['../d8/d5b/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry.html#ab10582a2954863ffcc26ec7373d42d56',1,'shaka::media::mp4::AudioSampleEntry::BoxType()'],['../de/d54/structshaka_1_1media_1_1mp4_1_1FlacSpecific.html#a03dbcc1a317207a677c155f74b255cd1',1,'shaka::media::mp4::FlacSpecific::BoxType()'],['../de/dfa/structshaka_1_1media_1_1mp4_1_1OpusSpecific.html#a6d71265a8782db78c4ed3c2331179418',1,'shaka::media::mp4::OpusSpecific::BoxType()'],['../d6/da2/structshaka_1_1media_1_1mp4_1_1AC4Specific.html#a596a12330615ccbaf8d3986e721b9d8d',1,'shaka::media::mp4::AC4Specific::BoxType()'],['../d4/d8d/structshaka_1_1media_1_1mp4_1_1EC3Specific.html#a926ae9221e26938071abb3ec5988eaf5',1,'shaka::media::mp4::EC3Specific::BoxType()'],['../d4/dfa/structshaka_1_1media_1_1mp4_1_1AC3Specific.html#aa3d0fa9297d15d210f1529eeff8e3d09',1,'shaka::media::mp4::AC3Specific::BoxType()'],['../dc/da0/structshaka_1_1media_1_1mp4_1_1DTSSpecific.html#aa84cd76627aaaf58e2137935b6116346',1,'shaka::media::mp4::DTSSpecific::BoxType()'],['../d5/d11/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html#a579ea111ae1e304e27cb0b8d9f52c99c',1,'shaka::media::mp4::ElementaryStreamDescriptor::BoxType()'],['../d0/d73/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry.html#a56ed4864ffdb37094b5f3352f53bc755',1,'shaka::media::mp4::VideoSampleEntry::BoxType()'],['../dd/d71/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio.html#ae12482d2916a9e6b7ecdee1c944c3c91',1,'shaka::media::mp4::PixelAspectRatio::BoxType()'],['../dd/df6/structshaka_1_1media_1_1mp4_1_1Metadata.html#aca63db6a124f0d0a62b6a355a89d9f1d',1,'shaka::media::mp4::Metadata::BoxType()']]], - ['buffer_1395',['Buffer',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#abe93b64e488c65f8c1595191d659f7dc',1,'shaka::media::BufferWriter']]], - ['bufferreader_1396',['BufferReader',['../d9/d13/classshaka_1_1media_1_1BufferReader.html#a94771befc54d444630ade726689b7bf7',1,'shaka::media::BufferReader']]], - ['bufferwriter_1397',['BufferWriter',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#a01d91524fd5c5491bafcc1cff16db916',1,'shaka::media::BufferWriter']]], - ['bytepos_1398',['BytePos',['../dc/d76/classshaka_1_1media_1_1BitWriter.html#aab523b5008232852ede4f31c1d4b2644',1,'shaka::media::BitWriter']]], - ['bytescached_1399',['BytesCached',['../df/d4e/classshaka_1_1IoCache.html#a8033da711e62112877be7a6ac2186622',1,'shaka::IoCache']]], - ['bytesfree_1400',['BytesFree',['../df/d4e/classshaka_1_1IoCache.html#a744559cbb0a3878027ca6fc2a12555c1',1,'shaka::IoCache']]], - ['bytesleft_1401',['BytesLeft',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#aa3eca1248b1df48d23c0d66a6bc80b1f',1,'shaka::media::mp4::BoxBuffer']]] + ['bit_5fposition_1388',['bit_position',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a100abf1165633b67359bb3d813594f7e',1,'shaka::media::BitReader']]], + ['bitpos_1389',['BitPos',['../dc/d76/classshaka_1_1media_1_1BitWriter.html#a66164c7c6fcd524dd1f87b07f4c2e7fd',1,'shaka::media::BitWriter']]], + ['bitreader_1390',['BitReader',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a264dbe3e94ba76214c1af75ab3877945',1,'shaka::media::BitReader']]], + ['bits_5favailable_1391',['bits_available',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a94b03de069b0054ee4a534b12644a986',1,'shaka::media::BitReader']]], + ['bitwriter_1392',['BitWriter',['../dc/d76/classshaka_1_1media_1_1BitWriter.html#a09495a53bd1f1885dcc328b1621041f4',1,'shaka::media::BitWriter']]], + ['box_5fsize_1393',['box_size',['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#ad0186e0f9301bd07c52a55a8b1db0419',1,'shaka::media::mp4::Box']]], + ['boxbuffer_1394',['BoxBuffer',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a787a6a6404dfc1fed10dfd903b4e4d22',1,'shaka::media::mp4::BoxBuffer::BoxBuffer(BoxReader *reader)'],['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a021513a50af89992b15691dfc79ed447',1,'shaka::media::mp4::BoxBuffer::BoxBuffer(BufferWriter *writer)']]], + ['boxtype_1395',['BoxType',['../da/d50/structshaka_1_1media_1_1mp4_1_1MovieExtendsHeader.html#ab2afa24c2f0b694a141ebe58b06635aa',1,'shaka::media::mp4::MovieExtendsHeader::BoxType()'],['../d7/d42/structshaka_1_1media_1_1mp4_1_1SampleSize.html#a18b9c0277deec16ff5ffef98c2dbadf3',1,'shaka::media::mp4::SampleSize::BoxType()'],['../d3/db5/structshaka_1_1media_1_1mp4_1_1Track.html#a9ab0be777c96c884b73d2bb85cbb482c',1,'shaka::media::mp4::Track::BoxType()'],['../dc/ddf/structshaka_1_1media_1_1mp4_1_1Media.html#a3a083251ea157e44befabf84b66b0c9e',1,'shaka::media::mp4::Media::BoxType()'],['../d5/d86/structshaka_1_1media_1_1mp4_1_1MediaInformation.html#a5536ed5769a974f5094c4120c66667fe',1,'shaka::media::mp4::MediaInformation::BoxType()'],['../d8/d6d/structshaka_1_1media_1_1mp4_1_1DataInformation.html#ad590eaa2b74fc18d22044abdeafe04c8',1,'shaka::media::mp4::DataInformation::BoxType()'],['../d4/de3/structshaka_1_1media_1_1mp4_1_1DataReference.html#ad4241f10042e77cb12b30c654746253b',1,'shaka::media::mp4::DataReference::BoxType()'],['../df/d8a/structshaka_1_1media_1_1mp4_1_1DataEntryUrl.html#a8d46c2ad8b3dd9ae07bc3a73bb45da06',1,'shaka::media::mp4::DataEntryUrl::BoxType()'],['../db/d21/structshaka_1_1media_1_1mp4_1_1SubtitleMediaHeader.html#a66a134f3ab023831f569873177d4e727',1,'shaka::media::mp4::SubtitleMediaHeader::BoxType()'],['../d2/d0e/structshaka_1_1media_1_1mp4_1_1NullMediaHeader.html#aeb38ef17682c5a60cb6eb8703879485c',1,'shaka::media::mp4::NullMediaHeader::BoxType()'],['../d7/d07/structshaka_1_1media_1_1mp4_1_1SoundMediaHeader.html#a0a546689f087197c1f9fa7db68887e76',1,'shaka::media::mp4::SoundMediaHeader::BoxType()'],['../d1/db0/structshaka_1_1media_1_1mp4_1_1VideoMediaHeader.html#afcca5343a3de868510a53de508730813',1,'shaka::media::mp4::VideoMediaHeader::BoxType()'],['../d4/db9/structshaka_1_1media_1_1mp4_1_1MediaHeader.html#ad8edc72b3035e93b38ca51505ae01412',1,'shaka::media::mp4::MediaHeader::BoxType()'],['../d1/dee/structshaka_1_1media_1_1mp4_1_1SampleTable.html#a2771a6a7d82c1f544bafaf0709043fc1',1,'shaka::media::mp4::SampleTable::BoxType()'],['../d0/d7c/structshaka_1_1media_1_1mp4_1_1SampleToGroup.html#a4bbaf4bfb39fb569eaeb78f1e9169794',1,'shaka::media::mp4::SampleToGroup::BoxType()'],['../d7/d01/structshaka_1_1media_1_1mp4_1_1SampleGroupDescription.html#ad5d87ea02a51983fdb555f2e3638bfed',1,'shaka::media::mp4::SampleGroupDescription::BoxType()'],['../dd/d3f/structshaka_1_1media_1_1mp4_1_1SyncSample.html#a9d03c709f7d1e51f8809322794756b3b',1,'shaka::media::mp4::SyncSample::BoxType()'],['../dd/d06/structshaka_1_1media_1_1mp4_1_1ChunkOffset.html#af4dd3a3ea67a2efb95ac3761b33a8fa0',1,'shaka::media::mp4::ChunkOffset::BoxType()'],['../db/d95/structshaka_1_1media_1_1mp4_1_1ChunkLargeOffset.html#a8215c57361432ca6459cb0333034614d',1,'shaka::media::mp4::ChunkLargeOffset::BoxType()'],['../d4/df9/structshaka_1_1media_1_1mp4_1_1SegmentIndex.html#ac95186c204fe8aeffc6c41ca8181af35',1,'shaka::media::mp4::SegmentIndex::BoxType()'],['../d6/daa/structshaka_1_1media_1_1mp4_1_1VTTCueBox.html#ae19e44ca727ff4ae010a8c62fc566f41',1,'shaka::media::mp4::VTTCueBox::BoxType()'],['../d6/d79/structshaka_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html#ab22709c67041094daaaa6f0b42eca51d',1,'shaka::media::mp4::VTTAdditionalTextBox::BoxType()'],['../d9/d3c/structshaka_1_1media_1_1mp4_1_1VTTEmptyCueBox.html#a0e463ad10c04f13125f146c5ef908f69',1,'shaka::media::mp4::VTTEmptyCueBox::BoxType()'],['../d2/d7f/structshaka_1_1media_1_1mp4_1_1CuePayloadBox.html#aefca706b24f701502a071d6c3bd51c2a',1,'shaka::media::mp4::CuePayloadBox::BoxType()'],['../d0/dd0/structshaka_1_1media_1_1mp4_1_1CueSettingsBox.html#ab3ab5a5e7b1702bd713433046b380c8d',1,'shaka::media::mp4::CueSettingsBox::BoxType()'],['../d5/d09/structshaka_1_1media_1_1mp4_1_1CueIDBox.html#a29fe876a3059aa2f7a936ff1bf49b0ff',1,'shaka::media::mp4::CueIDBox::BoxType()'],['../d8/dc3/structshaka_1_1media_1_1mp4_1_1CueTimeBox.html#ae027ee1285bc5d397c450df88d653ae1',1,'shaka::media::mp4::CueTimeBox::BoxType()'],['../d9/d3e/structshaka_1_1media_1_1mp4_1_1CueSourceIDBox.html#a5a9cf523bd1f53f5d2abeaa5cfa20e4c',1,'shaka::media::mp4::CueSourceIDBox::BoxType()'],['../d7/dae/structshaka_1_1media_1_1mp4_1_1MediaData.html#a6b0601ae1defd84cda96d27e4659058a',1,'shaka::media::mp4::MediaData::BoxType()'],['../de/d29/structshaka_1_1media_1_1mp4_1_1TrackExtends.html#adb2087c3c85693054596a26d6f31d4dd',1,'shaka::media::mp4::TrackExtends::BoxType()'],['../d9/d1f/structshaka_1_1media_1_1mp4_1_1MovieFragment.html#ac6fab326de1329f291c8e427e99ce971',1,'shaka::media::mp4::MovieFragment::BoxType()'],['../df/d7b/structshaka_1_1media_1_1mp4_1_1TrackFragment.html#a5776ac8e8cfd7fe2033432a4581e19ea',1,'shaka::media::mp4::TrackFragment::BoxType()'],['../dd/df5/structshaka_1_1media_1_1mp4_1_1TrackFragmentRun.html#a4484ad0299e15e642960702764427f2f',1,'shaka::media::mp4::TrackFragmentRun::BoxType()'],['../d1/d6e/structshaka_1_1media_1_1mp4_1_1TrackFragmentHeader.html#a227b3fd6cf16ac250ee08f1e41e27ef9',1,'shaka::media::mp4::TrackFragmentHeader::BoxType()'],['../dc/d8f/structshaka_1_1media_1_1mp4_1_1MovieFragmentHeader.html#a68efde9cb48af4236d106dbfa46e96b0',1,'shaka::media::mp4::MovieFragmentHeader::BoxType()'],['../df/d9a/structshaka_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html#a036a76de5bb9287116a9ad94f8895e84',1,'shaka::media::mp4::TrackFragmentDecodeTime::BoxType()'],['../d0/d9a/structshaka_1_1media_1_1mp4_1_1Movie.html#a623b673fb897f68e9c4e55682d6114dc',1,'shaka::media::mp4::Movie::BoxType()'],['../d1/d3e/structshaka_1_1media_1_1mp4_1_1MovieExtends.html#a3a24ad79e39a6dd24268a90fa5e3d47f',1,'shaka::media::mp4::MovieExtends::BoxType()'],['../d3/da2/structshaka_1_1media_1_1mp4_1_1SchemeType.html#a76da5fef2de39a070fe61055e013b7c1',1,'shaka::media::mp4::SchemeType::BoxType()'],['../d3/dad/structshaka_1_1media_1_1mp4_1_1ID3v2.html#acb41577286eeba57541fed6cd0cabbf2',1,'shaka::media::mp4::ID3v2::BoxType()'],['../da/dbb/structshaka_1_1media_1_1mp4_1_1HandlerReference.html#a71203a734c203f04967eaf1676440ad9',1,'shaka::media::mp4::HandlerReference::BoxType()'],['../da/dd0/structshaka_1_1media_1_1mp4_1_1Edit.html#a44e5523c2fa791cae8dd3e36feee81ac',1,'shaka::media::mp4::Edit::BoxType()'],['../d3/dbe/structshaka_1_1media_1_1mp4_1_1EditList.html#af8ba6778f3fa9b239126ae635d8e9703',1,'shaka::media::mp4::EditList::BoxType()'],['../da/dc4/structshaka_1_1media_1_1mp4_1_1TrackHeader.html#a7880b5742f038be62ca83693883814d3',1,'shaka::media::mp4::TrackHeader::BoxType()'],['../d6/d1a/structshaka_1_1media_1_1mp4_1_1MovieHeader.html#a0bbd09e7f0bc8effc1c1ba7f5b8d49d6',1,'shaka::media::mp4::MovieHeader::BoxType()'],['../da/de9/structshaka_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html#a09f2c7d00252d23003506285b30d9267',1,'shaka::media::mp4::ProtectionSchemeInfo::BoxType()'],['../d2/d70/structshaka_1_1media_1_1mp4_1_1SchemeInfo.html#a5a50e58f6dcd3969bdeb07fb66a9d4dc',1,'shaka::media::mp4::SchemeInfo::BoxType()'],['../db/db8/structshaka_1_1media_1_1mp4_1_1TrackEncryption.html#a702b5c406fdac82ea3e3cb4de88d1c55',1,'shaka::media::mp4::TrackEncryption::BoxType()'],['../d3/d87/structshaka_1_1media_1_1mp4_1_1SampleToChunk.html#a610c358480034e85cbea93b0b3406655',1,'shaka::media::mp4::SampleToChunk::BoxType()'],['../d5/d05/structshaka_1_1media_1_1mp4_1_1OriginalFormat.html#a4901c12c42b47485da0a95e8671de686',1,'shaka::media::mp4::OriginalFormat::BoxType()'],['../d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html#a62cd7e5cc8c102db09cbd3d7947604dd',1,'shaka::media::mp4::SampleEncryption::BoxType()'],['../dd/d13/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html#a909bcffee3acdc7754539a22546d1c76',1,'shaka::media::mp4::SampleAuxiliaryInformationSize::BoxType()'],['../d5/dca/structshaka_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html#a63843ee864061fef2d6f788ad240aa44',1,'shaka::media::mp4::SampleAuxiliaryInformationOffset::BoxType()'],['../d0/d3c/structshaka_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html#aae81fc1f70a0cdb8161dbafdbe80b099',1,'shaka::media::mp4::ProtectionSystemSpecificHeader::BoxType()'],['../d3/dd0/structshaka_1_1media_1_1mp4_1_1SegmentType.html#ab3c10a2cd4a8162a91265b0cfd53de09',1,'shaka::media::mp4::SegmentType::BoxType()'],['../d5/d03/structshaka_1_1media_1_1mp4_1_1FileType.html#a038c8454ffed2e8bf32c858ddae320e1',1,'shaka::media::mp4::FileType::BoxType()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#ac7c07671ab4c56d19e085570862015ca',1,'shaka::media::mp4::Box::BoxType()'],['../db/d11/structshaka_1_1media_1_1mp4_1_1CodecConfiguration.html#a1e9cb483b993bff202ec6143f892972e',1,'shaka::media::mp4::CodecConfiguration::BoxType()'],['../da/d59/structshaka_1_1media_1_1mp4_1_1CompactSampleSize.html#affe88ea3f7899a791b616dfa12f794ee',1,'shaka::media::mp4::CompactSampleSize::BoxType()'],['../df/d7b/structshaka_1_1media_1_1mp4_1_1CompositionTimeToSample.html#a53a999ce269642a6f6cb5b9301ca0740',1,'shaka::media::mp4::CompositionTimeToSample::BoxType()'],['../de/def/structshaka_1_1media_1_1mp4_1_1DecodingTimeToSample.html#a16599ced0758987dec6d8678faa7a7b9',1,'shaka::media::mp4::DecodingTimeToSample::BoxType()'],['../da/df5/structshaka_1_1media_1_1mp4_1_1SampleDescription.html#a55c299ae4b388109dccc7b84feb45089',1,'shaka::media::mp4::SampleDescription::BoxType()'],['../d7/dc3/structshaka_1_1media_1_1mp4_1_1TextSampleEntry.html#aa3471e1884adc4351293a18fb2ee33fb',1,'shaka::media::mp4::TextSampleEntry::BoxType()'],['../d4/d33/structshaka_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html#a90a955dc811f20242aa03eea0758ae55',1,'shaka::media::mp4::WebVTTSourceLabelBox::BoxType()'],['../d8/d20/structshaka_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html#a90c78b82d88afcce6bcb4f5c96fa08b9',1,'shaka::media::mp4::WebVTTConfigurationBox::BoxType()'],['../d8/d5b/structshaka_1_1media_1_1mp4_1_1AudioSampleEntry.html#ab10582a2954863ffcc26ec7373d42d56',1,'shaka::media::mp4::AudioSampleEntry::BoxType()'],['../de/d54/structshaka_1_1media_1_1mp4_1_1FlacSpecific.html#a03dbcc1a317207a677c155f74b255cd1',1,'shaka::media::mp4::FlacSpecific::BoxType()'],['../de/dfa/structshaka_1_1media_1_1mp4_1_1OpusSpecific.html#a6d71265a8782db78c4ed3c2331179418',1,'shaka::media::mp4::OpusSpecific::BoxType()'],['../d6/da2/structshaka_1_1media_1_1mp4_1_1AC4Specific.html#a596a12330615ccbaf8d3986e721b9d8d',1,'shaka::media::mp4::AC4Specific::BoxType()'],['../d4/d8d/structshaka_1_1media_1_1mp4_1_1EC3Specific.html#a926ae9221e26938071abb3ec5988eaf5',1,'shaka::media::mp4::EC3Specific::BoxType()'],['../d4/dfa/structshaka_1_1media_1_1mp4_1_1AC3Specific.html#aa3d0fa9297d15d210f1529eeff8e3d09',1,'shaka::media::mp4::AC3Specific::BoxType()'],['../dc/da0/structshaka_1_1media_1_1mp4_1_1DTSSpecific.html#aa84cd76627aaaf58e2137935b6116346',1,'shaka::media::mp4::DTSSpecific::BoxType()'],['../d5/d11/structshaka_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html#a579ea111ae1e304e27cb0b8d9f52c99c',1,'shaka::media::mp4::ElementaryStreamDescriptor::BoxType()'],['../d0/d73/structshaka_1_1media_1_1mp4_1_1VideoSampleEntry.html#a56ed4864ffdb37094b5f3352f53bc755',1,'shaka::media::mp4::VideoSampleEntry::BoxType()'],['../dd/d71/structshaka_1_1media_1_1mp4_1_1PixelAspectRatio.html#ae12482d2916a9e6b7ecdee1c944c3c91',1,'shaka::media::mp4::PixelAspectRatio::BoxType()'],['../dd/df6/structshaka_1_1media_1_1mp4_1_1Metadata.html#aca63db6a124f0d0a62b6a355a89d9f1d',1,'shaka::media::mp4::Metadata::BoxType()']]], + ['buffer_1396',['Buffer',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#abe93b64e488c65f8c1595191d659f7dc',1,'shaka::media::BufferWriter']]], + ['bufferreader_1397',['BufferReader',['../d9/d13/classshaka_1_1media_1_1BufferReader.html#a94771befc54d444630ade726689b7bf7',1,'shaka::media::BufferReader']]], + ['bufferwriter_1398',['BufferWriter',['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#a01d91524fd5c5491bafcc1cff16db916',1,'shaka::media::BufferWriter']]], + ['bytepos_1399',['BytePos',['../dc/d76/classshaka_1_1media_1_1BitWriter.html#aab523b5008232852ede4f31c1d4b2644',1,'shaka::media::BitWriter']]], + ['bytescached_1400',['BytesCached',['../df/d4e/classshaka_1_1IoCache.html#a8033da711e62112877be7a6ac2186622',1,'shaka::IoCache']]], + ['bytesfree_1401',['BytesFree',['../df/d4e/classshaka_1_1IoCache.html#a744559cbb0a3878027ca6fc2a12555c1',1,'shaka::IoCache']]], + ['bytesleft_1402',['BytesLeft',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#aa3eca1248b1df48d23c0d66a6bc80b1f',1,'shaka::media::mp4::BoxBuffer']]] ]; diff --git a/docs/search/functions_10.js b/docs/search/functions_10.js index b913208dbe..28e58c17e8 100644 --- a/docs/search/functions_10.js +++ b/docs/search/functions_10.js @@ -1,22 +1,22 @@ var searchData= [ - ['tail_1777',['tail',['../d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html#ab1aa8f95daa784e4dc1ce34566cea164',1,'shaka::media::OffsetByteQueue']]], - ['tailpos_1778',['TailPos',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a7d92eabaee0d6a862e759a154e1e5df6',1,'shaka::media::ProducerConsumerQueue']]], - ['tell_1779',['Tell',['../dd/d40/classshaka_1_1CallbackFile.html#adef67a4de398b8be95bb3ae4ce770d69',1,'shaka::CallbackFile::Tell()'],['../d3/d73/classshaka_1_1File.html#a07ae6476e88dab6c0cd9d8c0073b667d',1,'shaka::File::Tell()'],['../d1/dc7/classshaka_1_1HttpFile.html#a97d709df373c5fcbdbcb7e61b6e4f415',1,'shaka::HttpFile::Tell()'],['../d7/dbd/classshaka_1_1LocalFile.html#af111d93e10ae0128f082eef77eaa914b',1,'shaka::LocalFile::Tell()'],['../de/dad/classshaka_1_1MemoryFile.html#a4dfdba703861d211e7111612f5ac029c',1,'shaka::MemoryFile::Tell()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#a6ee5bcbe6bb8dd232679b2c50d968f4e',1,'shaka::ThreadedIoFile::Tell()'],['../d4/dcb/classshaka_1_1UdpFile.html#a4024a139655cf22f2cf2b4e56be8e1fc',1,'shaka::UdpFile::Tell()']]], - ['tempfilepath_1780',['TempFilePath',['../d8/daf/namespaceshaka.html#a66e7e156c1f83435fb6c130803e48f62',1,'shaka']]], - ['templatefilename_1781',['TemplateFileName',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#a08c5db7b7f28da29ca40147cf8673a7a',1,'shaka::media::SegmentTestBase']]], - ['textpadder_1782',['TextPadder',['../d8/df8/classshaka_1_1media_1_1TextPadder.html#a49115d6d5b4af3b19f3d5ade342594da',1,'shaka::media::TextPadder']]], - ['textstreaminfo_1783',['TextStreamInfo',['../db/dab/classshaka_1_1media_1_1TextStreamInfo.html#a3e759066195689154ef2a8cf2825ea4b',1,'shaka::media::TextStreamInfo']]], - ['timescalescale_1784',['TimescaleScale',['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#ae74956e5b79d0e74ecce440bd7849670',1,'shaka::media::PackedAudioSegmenter']]], - ['tostring_1785',['ToString',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#ac73cd44d0804ccb8e686912caec9873e',1,'shaka::media::MediaSample::ToString()'],['../d2/d20/classshaka_1_1Status.html#a6c5c3c528296f2cb0dec56506cb8d3c3',1,'shaka::Status::ToString()'],['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#aef2471579573cb910d2f3d32d6e0afe0',1,'shaka::xml::XmlNode::ToString()'],['../dc/da1/classshaka_1_1MpdBuilder.html#a058a7c0bde155071773bcfaa5f0f5b3b',1,'shaka::MpdBuilder::ToString()'],['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a9cac8e75d76f1192a48d1dcf61435537',1,'shaka::media::VideoStreamInfo::ToString()'],['../db/dab/classshaka_1_1media_1_1TextStreamInfo.html#a66a548f3c813e07a1d87b0e9b389efc0',1,'shaka::media::TextStreamInfo::ToString()'],['../d5/db1/classshaka_1_1media_1_1StreamInfo.html#ab3628e7fdcfccd0dc530df4b0f6e83b8',1,'shaka::media::StreamInfo::ToString()'],['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html#a7f94e51abcf522ff70e2456a8c8595df',1,'shaka::media::AudioStreamInfo::ToString()']]], - ['trackruniterator_1786',['TrackRunIterator',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a743961add0060500509c3fc74ffd26ab',1,'shaka::media::mp4::TrackRunIterator']]], - ['transfer_5fcharacteristics_1787',['transfer_characteristics',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#a302bcd9a86a479961335d21817edb2c4',1,'shaka::media::DecoderConfigurationRecord']]], - ['transferdata_1788',['TransferData',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a5402405ad4abb5102078d047972a56fa',1,'shaka::media::MediaSample']]], - ['trickplay_5fcache_1789',['trickplay_cache',['../d8/de1/classshaka_1_1Period.html#a99e11102f8b1cb3a6ad71552f3e28128',1,'shaka::Period']]], - ['trim_1790',['Trim',['../d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html#a77b9a12145dad80df95845bd2b66b6a8',1,'shaka::media::OffsetByteQueue']]], - ['tryreadchild_1791',['TryReadChild',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#a1a4457e9638e8cf3fb30b0031b513cec',1,'shaka::media::mp4::BoxReader']]], - ['tryreadchildren_1792',['TryReadChildren',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#a3da91efd030e0d85a889b2c02fe96bea',1,'shaka::media::mp4::BoxReader']]], - ['tryreadwritechild_1793',['TryReadWriteChild',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a7aacff091ff415be3da48be4fc620654',1,'shaka::media::mp4::BoxBuffer']]], - ['tssegmenter_1794',['TsSegmenter',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#af0e91f691388ecffb8a473554707c917',1,'shaka::media::mp2t::TsSegmenter']]], - ['type_1795',['type',['../d6/dff/classshaka_1_1media_1_1Nalu.html#a7a3b4358f56619fc63fe74525f4eb92b',1,'shaka::media::Nalu']]] + ['tail_1778',['tail',['../d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html#ab1aa8f95daa784e4dc1ce34566cea164',1,'shaka::media::OffsetByteQueue']]], + ['tailpos_1779',['TailPos',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a7d92eabaee0d6a862e759a154e1e5df6',1,'shaka::media::ProducerConsumerQueue']]], + ['tell_1780',['Tell',['../dd/d40/classshaka_1_1CallbackFile.html#adef67a4de398b8be95bb3ae4ce770d69',1,'shaka::CallbackFile::Tell()'],['../d3/d73/classshaka_1_1File.html#a07ae6476e88dab6c0cd9d8c0073b667d',1,'shaka::File::Tell()'],['../d1/dc7/classshaka_1_1HttpFile.html#a97d709df373c5fcbdbcb7e61b6e4f415',1,'shaka::HttpFile::Tell()'],['../d7/dbd/classshaka_1_1LocalFile.html#af111d93e10ae0128f082eef77eaa914b',1,'shaka::LocalFile::Tell()'],['../de/dad/classshaka_1_1MemoryFile.html#a4dfdba703861d211e7111612f5ac029c',1,'shaka::MemoryFile::Tell()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#a6ee5bcbe6bb8dd232679b2c50d968f4e',1,'shaka::ThreadedIoFile::Tell()'],['../d4/dcb/classshaka_1_1UdpFile.html#a4024a139655cf22f2cf2b4e56be8e1fc',1,'shaka::UdpFile::Tell()']]], + ['tempfilepath_1781',['TempFilePath',['../d8/daf/namespaceshaka.html#a66e7e156c1f83435fb6c130803e48f62',1,'shaka']]], + ['templatefilename_1782',['TemplateFileName',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#a08c5db7b7f28da29ca40147cf8673a7a',1,'shaka::media::SegmentTestBase']]], + ['textpadder_1783',['TextPadder',['../d8/df8/classshaka_1_1media_1_1TextPadder.html#a49115d6d5b4af3b19f3d5ade342594da',1,'shaka::media::TextPadder']]], + ['textstreaminfo_1784',['TextStreamInfo',['../db/dab/classshaka_1_1media_1_1TextStreamInfo.html#a3e759066195689154ef2a8cf2825ea4b',1,'shaka::media::TextStreamInfo']]], + ['timescalescale_1785',['TimescaleScale',['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#ae74956e5b79d0e74ecce440bd7849670',1,'shaka::media::PackedAudioSegmenter']]], + ['tostring_1786',['ToString',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#ac73cd44d0804ccb8e686912caec9873e',1,'shaka::media::MediaSample::ToString()'],['../d2/d20/classshaka_1_1Status.html#a6c5c3c528296f2cb0dec56506cb8d3c3',1,'shaka::Status::ToString()'],['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#aef2471579573cb910d2f3d32d6e0afe0',1,'shaka::xml::XmlNode::ToString()'],['../dc/da1/classshaka_1_1MpdBuilder.html#a058a7c0bde155071773bcfaa5f0f5b3b',1,'shaka::MpdBuilder::ToString()'],['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a9cac8e75d76f1192a48d1dcf61435537',1,'shaka::media::VideoStreamInfo::ToString()'],['../db/dab/classshaka_1_1media_1_1TextStreamInfo.html#a66a548f3c813e07a1d87b0e9b389efc0',1,'shaka::media::TextStreamInfo::ToString()'],['../d5/db1/classshaka_1_1media_1_1StreamInfo.html#ab3628e7fdcfccd0dc530df4b0f6e83b8',1,'shaka::media::StreamInfo::ToString()'],['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html#a7f94e51abcf522ff70e2456a8c8595df',1,'shaka::media::AudioStreamInfo::ToString()']]], + ['trackruniterator_1787',['TrackRunIterator',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a743961add0060500509c3fc74ffd26ab',1,'shaka::media::mp4::TrackRunIterator']]], + ['transfer_5fcharacteristics_1788',['transfer_characteristics',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#a302bcd9a86a479961335d21817edb2c4',1,'shaka::media::DecoderConfigurationRecord']]], + ['transferdata_1789',['TransferData',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a5402405ad4abb5102078d047972a56fa',1,'shaka::media::MediaSample']]], + ['trickplay_5fcache_1790',['trickplay_cache',['../d8/de1/classshaka_1_1Period.html#a99e11102f8b1cb3a6ad71552f3e28128',1,'shaka::Period']]], + ['trim_1791',['Trim',['../d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html#a77b9a12145dad80df95845bd2b66b6a8',1,'shaka::media::OffsetByteQueue']]], + ['tryreadchild_1792',['TryReadChild',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#a1a4457e9638e8cf3fb30b0031b513cec',1,'shaka::media::mp4::BoxReader']]], + ['tryreadchildren_1793',['TryReadChildren',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#a3da91efd030e0d85a889b2c02fe96bea',1,'shaka::media::mp4::BoxReader']]], + ['tryreadwritechild_1794',['TryReadWriteChild',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a7aacff091ff415be3da48be4fc620654',1,'shaka::media::mp4::BoxBuffer']]], + ['tssegmenter_1795',['TsSegmenter',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#af0e91f691388ecffb8a473554707c917',1,'shaka::media::mp2t::TsSegmenter']]], + ['type_1796',['type',['../d6/dff/classshaka_1_1media_1_1Nalu.html#a7a3b4358f56619fc63fe74525f4eb92b',1,'shaka::media::Nalu']]] ]; diff --git a/docs/search/functions_11.js b/docs/search/functions_11.js index 75c175feb3..dd7b8532a3 100644 --- a/docs/search/functions_11.js +++ b/docs/search/functions_11.js @@ -1,10 +1,11 @@ var searchData= [ - ['udpfile_1796',['UdpFile',['../d4/dcb/classshaka_1_1UdpFile.html#ad56ac611e6a1f6e4e44777c3c55e9020',1,'shaka::UdpFile']]], - ['uint8vectortobase64_1797',['Uint8VectorToBase64',['../d8/daf/namespaceshaka.html#a4c7f8f964fec2bb9543e7ee8da9cd994',1,'shaka']]], - ['update_1798',['Update',['../d2/d20/classshaka_1_1Status.html#a9c0536749c9abc21c1111e622de6b7c8',1,'shaka::Status']]], - ['updatecontentprotectionpssh_1799',['UpdateContentProtectionPssh',['../d8/d8e/classshaka_1_1AdaptationSet.html#ae8a28838bf1bbc1ad8f5b80961fe33c2',1,'shaka::AdaptationSet::UpdateContentProtectionPssh()'],['../de/d52/classshaka_1_1Representation.html#a3d17325903aa01f0c8ff7753d94ff330',1,'shaka::Representation::UpdateContentProtectionPssh()']]], - ['updateiv_1800',['UpdateIv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a812dfc641212f8eb877ab153de7fbb37',1,'shaka::media::AesCryptor']]], - ['updateprogress_1801',['UpdateProgress',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#afd8bb3584c984c711615800ad93642a3',1,'shaka::media::mp4::Segmenter::UpdateProgress()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a32dc8b7461252b99fe52384b04e3bca2',1,'shaka::media::webm::Segmenter::UpdateProgress()']]], - ['use_5fconstant_5fiv_1802',['use_constant_iv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a94d868d19deb5bdc8083328d3e5da6a8',1,'shaka::media::AesCryptor']]] + ['udpfile_1797',['UdpFile',['../d4/dcb/classshaka_1_1UdpFile.html#ad56ac611e6a1f6e4e44777c3c55e9020',1,'shaka::UdpFile']]], + ['uint8vectortobase64_1798',['Uint8VectorToBase64',['../d8/daf/namespaceshaka.html#a4c7f8f964fec2bb9543e7ee8da9cd994',1,'shaka']]], + ['update_1799',['Update',['../d2/d20/classshaka_1_1Status.html#a9c0536749c9abc21c1111e622de6b7c8',1,'shaka::Status']]], + ['updatecontentprotectionpssh_1800',['UpdateContentProtectionPssh',['../d8/d8e/classshaka_1_1AdaptationSet.html#ae8a28838bf1bbc1ad8f5b80961fe33c2',1,'shaka::AdaptationSet::UpdateContentProtectionPssh()'],['../de/d52/classshaka_1_1Representation.html#a3d17325903aa01f0c8ff7753d94ff330',1,'shaka::Representation::UpdateContentProtectionPssh()']]], + ['updateiv_1801',['UpdateIv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a812dfc641212f8eb877ab153de7fbb37',1,'shaka::media::AesCryptor']]], + ['updateprogress_1802',['UpdateProgress',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#afd8bb3584c984c711615800ad93642a3',1,'shaka::media::mp4::Segmenter::UpdateProgress()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a32dc8b7461252b99fe52384b04e3bca2',1,'shaka::media::webm::Segmenter::UpdateProgress()']]], + ['use_5fconstant_5fiv_1803',['use_constant_iv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a94d868d19deb5bdc8083328d3e5da6a8',1,'shaka::media::AesCryptor']]], + ['use_5fsegment_5flist_1804',['use_segment_list',['../d3/dd0/classshaka_1_1MpdNotifier.html#a0c44f9156ecc3dcef724b891aae65b24',1,'shaka::MpdNotifier']]] ]; diff --git a/docs/search/functions_12.js b/docs/search/functions_12.js index 756df4bdfb..0f3ee8f135 100644 --- a/docs/search/functions_12.js +++ b/docs/search/functions_12.js @@ -1,11 +1,11 @@ var searchData= [ - ['validateflag_1803',['ValidateFlag',['../d8/daf/namespaceshaka.html#a952293a7213f285843f28b7363ee14d6',1,'shaka']]], - ['validateoutputstreamindex_1804',['ValidateOutputStreamIndex',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#abe33a7328099b7917b2b3ba1038997b0',1,'shaka::media::MediaHandler::ValidateOutputStreamIndex()'],['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a908f4c9bb410d1528b85e2c7f824deb6',1,'shaka::media::Demuxer::ValidateOutputStreamIndex()']]], - ['validateprcryptoflags_1805',['ValidatePRCryptoFlags',['../d8/daf/namespaceshaka.html#a8b6212ccc4b98e5fdb72f84acf252c6b',1,'shaka']]], - ['validaterawkeycryptoflags_1806',['ValidateRawKeyCryptoFlags',['../d8/daf/namespaceshaka.html#ab611f8e843f4834b9d7c30db212a946e',1,'shaka']]], - ['validatewidevinecryptoflags_1807',['ValidateWidevineCryptoFlags',['../d8/daf/namespaceshaka.html#ade3cbb360c0dcaacc5667676af885008',1,'shaka']]], - ['verifysignature_1808',['VerifySignature',['../d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html#a146cc97c8fcacadde1b08c373b766fe4',1,'shaka::media::RsaPublicKey']]], - ['video_5fdescription_1809',['video_description',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a463f421423621ec47b3df614526597dd',1,'shaka::media::mp4::TrackRunIterator']]], - ['videostreaminfo_1810',['VideoStreamInfo',['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a7c4eb713af9de075f4214de0b3c4aaf4',1,'shaka::media::VideoStreamInfo']]] + ['validateflag_1805',['ValidateFlag',['../d8/daf/namespaceshaka.html#a952293a7213f285843f28b7363ee14d6',1,'shaka']]], + ['validateoutputstreamindex_1806',['ValidateOutputStreamIndex',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#abe33a7328099b7917b2b3ba1038997b0',1,'shaka::media::MediaHandler::ValidateOutputStreamIndex()'],['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a908f4c9bb410d1528b85e2c7f824deb6',1,'shaka::media::Demuxer::ValidateOutputStreamIndex()']]], + ['validateprcryptoflags_1807',['ValidatePRCryptoFlags',['../d8/daf/namespaceshaka.html#a8b6212ccc4b98e5fdb72f84acf252c6b',1,'shaka']]], + ['validaterawkeycryptoflags_1808',['ValidateRawKeyCryptoFlags',['../d8/daf/namespaceshaka.html#ab611f8e843f4834b9d7c30db212a946e',1,'shaka']]], + ['validatewidevinecryptoflags_1809',['ValidateWidevineCryptoFlags',['../d8/daf/namespaceshaka.html#ade3cbb360c0dcaacc5667676af885008',1,'shaka']]], + ['verifysignature_1810',['VerifySignature',['../d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html#a146cc97c8fcacadde1b08c373b766fe4',1,'shaka::media::RsaPublicKey']]], + ['video_5fdescription_1811',['video_description',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a463f421423621ec47b3df614526597dd',1,'shaka::media::mp4::TrackRunIterator']]], + ['videostreaminfo_1812',['VideoStreamInfo',['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a7c4eb713af9de075f4214de0b3c4aaf4',1,'shaka::media::VideoStreamInfo']]] ]; diff --git a/docs/search/functions_13.js b/docs/search/functions_13.js index caf037b2d5..eb2e2025a5 100644 --- a/docs/search/functions_13.js +++ b/docs/search/functions_13.js @@ -1,26 +1,26 @@ var searchData= [ - ['waituntilemptyorclosed_1811',['WaitUntilEmptyOrClosed',['../df/d4e/classshaka_1_1IoCache.html#abafe56067c5961d56611271b6fc5a760',1,'shaka::IoCache']]], - ['webmclusterparser_1812',['WebMClusterParser',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#a7a9c787af1bbd47c4a8a7c4e6ce9ff78',1,'shaka::media::WebMClusterParser']]], - ['webmlistparser_1813',['WebMListParser',['../dc/dca/classshaka_1_1media_1_1WebMListParser.html#ac228770d1828937f8aa6becec23210e1',1,'shaka::media::WebMListParser']]], - ['webmmuxer_1814',['WebMMuxer',['../d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html#a17b47db217334b2ec328bdbf1a9c7e29',1,'shaka::media::webm::WebMMuxer']]], - ['webvttmuxer_1815',['WebVttMuxer',['../da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html#afee98006c3a5f19548c494f251785fc9',1,'shaka::media::webvtt::WebVttMuxer']]], - ['widevinekeysource_1816',['WidevineKeySource',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#aa292ed08d3bc9b0e84f700e6cde16950',1,'shaka::media::WidevineKeySource']]], - ['write_1817',['Write',['../d7/dbd/classshaka_1_1LocalFile.html#aee10b7f2898c5047eb8505f16c49311c',1,'shaka::LocalFile::Write()'],['../dc/d16/classshaka_1_1media_1_1SeekHead.html#a46313134eebf68a7c34187705726b982',1,'shaka::media::SeekHead::Write()'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a2468514d1d9efdb15a9e4df2e44b75d8',1,'shaka::media::MkvWriter::Write()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a15bd0622fdb129d921287e690f117bde',1,'shaka::media::mp4::Box::Write()'],['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#aaf6147c9fe6648e04fba0993c8006e6b',1,'shaka::media::BaseDescriptor::Write()'],['../d4/dcb/classshaka_1_1UdpFile.html#a36722f3c436c88e451093ee21c0db754',1,'shaka::UdpFile::Write()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#ab8acfe4af14c1120ae6d2baa44a10583',1,'shaka::ThreadedIoFile::Write()'],['../de/dad/classshaka_1_1MemoryFile.html#aa3d9455b7bc9d1c44d58ab39bd8bd27c',1,'shaka::MemoryFile::Write()'],['../df/d4e/classshaka_1_1IoCache.html#a483277a6c68dd58cebb8dafb5c1dcd21',1,'shaka::IoCache::Write()'],['../d1/dc7/classshaka_1_1HttpFile.html#a412524f57722517b39d186fd10be445b',1,'shaka::HttpFile::Write()'],['../d3/d73/classshaka_1_1File.html#a8c498531ecbd205fceb0be3478361801',1,'shaka::File::Write()'],['../dd/d40/classshaka_1_1CallbackFile.html#aa758dfb05daff81afa1ddfaf0bb0a105',1,'shaka::CallbackFile::Write()']]], - ['writebits_1818',['WriteBits',['../dc/d76/classshaka_1_1media_1_1BitWriter.html#aee5f905e55f262e38f5df506611663f1',1,'shaka::media::BitWriter']]], - ['writefileatomically_1819',['WriteFileAtomically',['../d3/d73/classshaka_1_1File.html#a4b5280fe058359b5991037f90dde2b77',1,'shaka::File']]], - ['writefromfile_1820',['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_1821',['WriteHeader',['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#a7d0d63d60398a6bb2c0d738f1b6a4283',1,'shaka::media::BaseDescriptor::WriteHeader()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a57b8837c93d51f5cf03d3862069d509a',1,'shaka::media::mp4::Box::WriteHeader()']]], - ['writemasterplaylist_1822',['WriteMasterPlaylist',['../d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html#af45d5809a7b5c807c92cde95ddf6c70c',1,'shaka::hls::MasterPlaylist']]], - ['writemediainfotofile_1823',['WriteMediaInfoToFile',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#ae0a573e1c785164f40bfbfba2ced6a16',1,'shaka::media::VodMediaInfoDumpMuxerListener']]], - ['writemp4_1824',['WriteMP4',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a17c95b92810ebb43d7dc9ab0783e5f2a',1,'shaka::media::VPCodecConfigurationRecord']]], - ['writempdtofile_1825',['WriteMpdToFile',['../d8/daf/namespaceshaka.html#a7e940cda37fa0dbefef3b3cc9c802ab8',1,'shaka']]], - ['writer_1826',['writer',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a0b9aa5e5669d771e12563e168d5c967d',1,'shaka::media::mp4::BoxBuffer']]], - ['writesegmentheader_1827',['WriteSegmentHeader',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#aebcf73c5a1c3ae0f2608032d2a6ee445',1,'shaka::media::webm::Segmenter']]], - ['writestringtofile_1828',['WriteStringToFile',['../d3/d73/classshaka_1_1File.html#a483ce187d628385d342748315d72f8ab',1,'shaka::File']]], - ['writetobuffer_1829',['WriteToBuffer',['../de/d26/classshaka_1_1media_1_1Id3Tag.html#a3ac31812c4504b353472bd222580d68a',1,'shaka::media::Id3Tag']]], - ['writetofile_1830',['WriteToFile',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a182ca5726d4fb7d3053f76b515042440',1,'shaka::hls::MediaPlaylist::WriteToFile()'],['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#a868dba843fcf923dd140fdda859a3a6d',1,'shaka::media::BufferWriter::WriteToFile()']]], - ['writetovector_1831',['WriteToVector',['../de/d26/classshaka_1_1media_1_1Id3Tag.html#abf7b6258d9c648d93122631de698431e',1,'shaka::media::Id3Tag']]], - ['writevoid_1832',['WriteVoid',['../dc/d16/classshaka_1_1media_1_1SeekHead.html#a1a7895c6f5548405377aabb9521111a1',1,'shaka::media::SeekHead']]], - ['writewebm_1833',['WriteWebM',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a62bb64ea665385ae67c2fce8fb8b76bd',1,'shaka::media::VPCodecConfigurationRecord']]] + ['waituntilemptyorclosed_1813',['WaitUntilEmptyOrClosed',['../df/d4e/classshaka_1_1IoCache.html#abafe56067c5961d56611271b6fc5a760',1,'shaka::IoCache']]], + ['webmclusterparser_1814',['WebMClusterParser',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#a7a9c787af1bbd47c4a8a7c4e6ce9ff78',1,'shaka::media::WebMClusterParser']]], + ['webmlistparser_1815',['WebMListParser',['../dc/dca/classshaka_1_1media_1_1WebMListParser.html#ac228770d1828937f8aa6becec23210e1',1,'shaka::media::WebMListParser']]], + ['webmmuxer_1816',['WebMMuxer',['../d3/d73/classshaka_1_1media_1_1webm_1_1WebMMuxer.html#a17b47db217334b2ec328bdbf1a9c7e29',1,'shaka::media::webm::WebMMuxer']]], + ['webvttmuxer_1817',['WebVttMuxer',['../da/d33/classshaka_1_1media_1_1webvtt_1_1WebVttMuxer.html#afee98006c3a5f19548c494f251785fc9',1,'shaka::media::webvtt::WebVttMuxer']]], + ['widevinekeysource_1818',['WidevineKeySource',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#aa292ed08d3bc9b0e84f700e6cde16950',1,'shaka::media::WidevineKeySource']]], + ['write_1819',['Write',['../d7/dbd/classshaka_1_1LocalFile.html#aee10b7f2898c5047eb8505f16c49311c',1,'shaka::LocalFile::Write()'],['../dc/d16/classshaka_1_1media_1_1SeekHead.html#a46313134eebf68a7c34187705726b982',1,'shaka::media::SeekHead::Write()'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a2468514d1d9efdb15a9e4df2e44b75d8',1,'shaka::media::MkvWriter::Write()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a15bd0622fdb129d921287e690f117bde',1,'shaka::media::mp4::Box::Write()'],['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#aaf6147c9fe6648e04fba0993c8006e6b',1,'shaka::media::BaseDescriptor::Write()'],['../d4/dcb/classshaka_1_1UdpFile.html#a36722f3c436c88e451093ee21c0db754',1,'shaka::UdpFile::Write()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#ab8acfe4af14c1120ae6d2baa44a10583',1,'shaka::ThreadedIoFile::Write()'],['../de/dad/classshaka_1_1MemoryFile.html#aa3d9455b7bc9d1c44d58ab39bd8bd27c',1,'shaka::MemoryFile::Write()'],['../df/d4e/classshaka_1_1IoCache.html#a483277a6c68dd58cebb8dafb5c1dcd21',1,'shaka::IoCache::Write()'],['../d1/dc7/classshaka_1_1HttpFile.html#a412524f57722517b39d186fd10be445b',1,'shaka::HttpFile::Write()'],['../d3/d73/classshaka_1_1File.html#a8c498531ecbd205fceb0be3478361801',1,'shaka::File::Write()'],['../dd/d40/classshaka_1_1CallbackFile.html#aa758dfb05daff81afa1ddfaf0bb0a105',1,'shaka::CallbackFile::Write()']]], + ['writebits_1820',['WriteBits',['../dc/d76/classshaka_1_1media_1_1BitWriter.html#aee5f905e55f262e38f5df506611663f1',1,'shaka::media::BitWriter']]], + ['writefileatomically_1821',['WriteFileAtomically',['../d3/d73/classshaka_1_1File.html#a4b5280fe058359b5991037f90dde2b77',1,'shaka::File']]], + ['writefromfile_1822',['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_1823',['WriteHeader',['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#a7d0d63d60398a6bb2c0d738f1b6a4283',1,'shaka::media::BaseDescriptor::WriteHeader()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a57b8837c93d51f5cf03d3862069d509a',1,'shaka::media::mp4::Box::WriteHeader()']]], + ['writemasterplaylist_1824',['WriteMasterPlaylist',['../d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html#af45d5809a7b5c807c92cde95ddf6c70c',1,'shaka::hls::MasterPlaylist']]], + ['writemediainfotofile_1825',['WriteMediaInfoToFile',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#ae0a573e1c785164f40bfbfba2ced6a16',1,'shaka::media::VodMediaInfoDumpMuxerListener']]], + ['writemp4_1826',['WriteMP4',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a17c95b92810ebb43d7dc9ab0783e5f2a',1,'shaka::media::VPCodecConfigurationRecord']]], + ['writempdtofile_1827',['WriteMpdToFile',['../d8/daf/namespaceshaka.html#a7e940cda37fa0dbefef3b3cc9c802ab8',1,'shaka']]], + ['writer_1828',['writer',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a0b9aa5e5669d771e12563e168d5c967d',1,'shaka::media::mp4::BoxBuffer']]], + ['writesegmentheader_1829',['WriteSegmentHeader',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#aebcf73c5a1c3ae0f2608032d2a6ee445',1,'shaka::media::webm::Segmenter']]], + ['writestringtofile_1830',['WriteStringToFile',['../d3/d73/classshaka_1_1File.html#a483ce187d628385d342748315d72f8ab',1,'shaka::File']]], + ['writetobuffer_1831',['WriteToBuffer',['../de/d26/classshaka_1_1media_1_1Id3Tag.html#a3ac31812c4504b353472bd222580d68a',1,'shaka::media::Id3Tag']]], + ['writetofile_1832',['WriteToFile',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a182ca5726d4fb7d3053f76b515042440',1,'shaka::hls::MediaPlaylist::WriteToFile()'],['../dc/d41/classshaka_1_1media_1_1BufferWriter.html#a868dba843fcf923dd140fdda859a3a6d',1,'shaka::media::BufferWriter::WriteToFile()']]], + ['writetovector_1833',['WriteToVector',['../de/d26/classshaka_1_1media_1_1Id3Tag.html#abf7b6258d9c648d93122631de698431e',1,'shaka::media::Id3Tag']]], + ['writevoid_1834',['WriteVoid',['../dc/d16/classshaka_1_1media_1_1SeekHead.html#a1a7895c6f5548405377aabb9521111a1',1,'shaka::media::SeekHead']]], + ['writewebm_1835',['WriteWebM',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a62bb64ea665385ae67c2fce8fb8b76bd',1,'shaka::media::VPCodecConfigurationRecord']]] ]; diff --git a/docs/search/functions_14.js b/docs/search/functions_14.js index 058a12a057..3f3b9eb987 100644 --- a/docs/search/functions_14.js +++ b/docs/search/functions_14.js @@ -1,4 +1,4 @@ var searchData= [ - ['xmlnode_1834',['XmlNode',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a99c8998d8f53f0d37c3c22aec0d693eb',1,'shaka::xml::XmlNode']]] + ['xmlnode_1836',['XmlNode',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a99c8998d8f53f0d37c3c22aec0d693eb',1,'shaka::xml::XmlNode']]] ]; diff --git a/docs/search/functions_15.js b/docs/search/functions_15.js index 3e51be20f9..9bc238accc 100644 --- a/docs/search/functions_15.js +++ b/docs/search/functions_15.js @@ -1,5 +1,5 @@ var searchData= [ - ['_7eclosurethread_1835',['~ClosureThread',['../dc/df0/classshaka_1_1media_1_1ClosureThread.html#a811ad9bb9367c0ff74093c4a337d1398',1,'shaka::media::ClosureThread']]], - ['_7efile_1836',['~File',['../d3/d73/classshaka_1_1File.html#a92d1a67d1560a5290eb36447c50fabf9',1,'shaka::File']]] + ['_7eclosurethread_1837',['~ClosureThread',['../dc/df0/classshaka_1_1media_1_1ClosureThread.html#a811ad9bb9367c0ff74093c4a337d1398',1,'shaka::media::ClosureThread']]], + ['_7efile_1838',['~File',['../d3/d73/classshaka_1_1File.html#a92d1a67d1560a5290eb36447c50fabf9',1,'shaka::File']]] ]; diff --git a/docs/search/functions_2.js b/docs/search/functions_2.js index 7daa783384..fcf4926e6d 100644 --- a/docs/search/functions_2.js +++ b/docs/search/functions_2.js @@ -1,45 +1,45 @@ var searchData= [ - ['cacheauxinfo_1402',['CacheAuxInfo',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#ab7a8d3f44a663d63ef2415542239c540',1,'shaka::media::mp4::TrackRunIterator']]], - ['callbackfile_1403',['CallbackFile',['../dd/d40/classshaka_1_1CallbackFile.html#a0e1e50e81d926b17938b0dad89d1c05f',1,'shaka::CallbackFile']]], - ['cancel_1404',['Cancel',['../df/d46/classshaka_1_1media_1_1Muxer.html#a9204fe352d13cea8a367ae9c14e9639e',1,'shaka::media::Muxer::Cancel()'],['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a77ec615ca1fa21d347bf03c537af9ed8',1,'shaka::media::SyncPointQueue::Cancel()'],['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a683de4ad66155311d90d92635546dc8d',1,'shaka::media::Demuxer::Cancel()'],['../db/dd0/classshaka_1_1Packager.html#a5323e6dc242b1cdd6208cd6ea77dd0c7',1,'shaka::Packager::Cancel()']]], - ['childexist_1405',['ChildExist',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#aa65236a6b94ac59d5da409412992211c',1,'shaka::media::mp4::BoxReader']]], - ['chunkinfoiterator_1406',['ChunkInfoIterator',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#adae19e8f34f3f962e9858c67f984445d',1,'shaka::media::mp4::ChunkInfoIterator']]], - ['clear_1407',['Clear',['../df/d4e/classshaka_1_1IoCache.html#a10c8e56478fe7bc4c30ea0087eb22804',1,'shaka::IoCache']]], - ['clearoutputstreamdatavector_1408',['ClearOutputStreamDataVector',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html#a051758e3cfa419622565e65a08fd8a00',1,'shaka::media::MediaHandlerGraphTestBase']]], - ['clearsegmentpmt_1409',['ClearSegmentPmt',['../dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html#abeab8da6e10fb156bd38dd9e47669c0f',1,'shaka::media::mp2t::ProgramMapTableWriter']]], - ['clone_1410',['Clone',['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html#a306c5ebb4a42eced7d1a3deaad23c17b',1,'shaka::media::AudioStreamInfo::Clone()'],['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a5cf07ebc02514de4c2e2adf8280acedf',1,'shaka::media::MediaSample::Clone()'],['../d5/db1/classshaka_1_1media_1_1StreamInfo.html#afdd9b2df8ae1c11bb033c44eaba5e38d',1,'shaka::media::StreamInfo::Clone()'],['../db/dab/classshaka_1_1media_1_1TextStreamInfo.html#aa8cfad62fa0186a4f82a8dc43ee1c96d',1,'shaka::media::TextStreamInfo::Clone()'],['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a0d62499eaf37fe6df75f35beaebf71f1',1,'shaka::media::VideoStreamInfo::Clone()']]], - ['close_1411',['Close',['../d3/d73/classshaka_1_1File.html#a932666ed1d6a565bf387a9d8b39a8948',1,'shaka::File::Close()'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#af560b12e0298ca3dcd8f88fddff1443b',1,'shaka::media::MkvWriter::Close()'],['../d4/dcb/classshaka_1_1UdpFile.html#a61cdb937b3a996bb8b054679d98df812',1,'shaka::UdpFile::Close()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#a79292b93c39f609b5348787a39fc77b2',1,'shaka::ThreadedIoFile::Close()'],['../de/dad/classshaka_1_1MemoryFile.html#a4cfe38684f4fdde650a2ed7fdc780f05',1,'shaka::MemoryFile::Close()'],['../d7/dbd/classshaka_1_1LocalFile.html#a3d881c251c19a36eaf50483971095370',1,'shaka::LocalFile::Close()'],['../df/d4e/classshaka_1_1IoCache.html#a1c54ca1d747cf0b0b9ab681babff73e6',1,'shaka::IoCache::Close()'],['../d1/dc7/classshaka_1_1HttpFile.html#a3fba23d4dc1f8ad1d92d2e2de377e1f6',1,'shaka::HttpFile::Close()'],['../dd/d40/classshaka_1_1CallbackFile.html#aac23ef04e5bafef7d5b4c5d7a3fcfbb5',1,'shaka::CallbackFile::Close()']]], - ['closed_1412',['closed',['../df/d4e/classshaka_1_1IoCache.html#a69c0074123339c9c60dec6a27a5c085c',1,'shaka::IoCache']]], - ['closurethread_1413',['ClosureThread',['../dc/df0/classshaka_1_1media_1_1ClosureThread.html#a480ff10ca3ff9de7f9ed9582d305281f',1,'shaka::media::ClosureThread']]], - ['cluster_5fended_1414',['cluster_ended',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#a97f7c19e8dd7fb57e9f36bd70bcdb56a',1,'shaka::media::WebMClusterParser']]], - ['codec_1415',['codec',['../dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html#ae241202f41b47404256bae5ee0fbfc25',1,'shaka::media::mp2t::ProgramMapTableWriter::codec()'],['../d8/d8e/classshaka_1_1AdaptationSet.html#a43856955a18170c490493b0d9107ab15',1,'shaka::AdaptationSet::codec()']]], - ['codec_5fconfig_1416',['codec_config',['../db/dcb/classshaka_1_1media_1_1VPxParser.html#a56513f4759d34201c9a5f86840811910',1,'shaka::media::VPxParser']]], - ['compositionoffsetiterator_1417',['CompositionOffsetIterator',['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#a70511a15ee2f03d447b18668de57ca93',1,'shaka::media::mp4::CompositionOffsetIterator']]], - ['computesize_1418',['ComputeSize',['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#a2ba53752e5146af951e378998fc076a3',1,'shaka::media::BaseDescriptor::ComputeSize()'],['../d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html#aded832d0c1f43718b12f3a3e16d9c476',1,'shaka::media::mp4::SampleEncryptionEntry::ComputeSize()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#aa4e47d0ba81e234707c76ca36e32c1d5',1,'shaka::media::mp4::Box::ComputeSize()']]], - ['container_5fname_1419',['container_name',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a385c93fd8d589b7d3bccd35e14c58290',1,'shaka::media::Demuxer']]], - ['convertbytestreamtonalunitstream_1420',['ConvertByteStreamToNalUnitStream',['../de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html#a8f85f99c1cc939382c4eecd6580ecd17',1,'shaka::media::H26xByteToUnitStreamConverter']]], - ['converttoadts_1421',['ConvertToADTS',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a5cde95e7125bcee23be34a00a92f4097',1,'shaka::media::AACAudioSpecificConfig']]], - ['convertunittobytestream_1422',['ConvertUnitToByteStream',['../d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html#acde0ff823ed23fd3d8b8704cf243f3d5',1,'shaka::media::NalUnitToByteStreamConverter']]], - ['convertunittobytestreamwithsubsamples_1423',['ConvertUnitToByteStreamWithSubsamples',['../d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html#ae727e801c989d3ede17f1d1bd86a4ab4',1,'shaka::media::NalUnitToByteStreamConverter']]], - ['copy_1424',['Copy',['../d3/d73/classshaka_1_1File.html#af2cbec5c6dc1c97ada010acd83b9728a',1,'shaka::File']]], - ['copyfile_1425',['CopyFile',['../d3/d73/classshaka_1_1File.html#a85633ec9f051eb9f32b07ff7e7740d1c',1,'shaka::File::CopyFile(File *source, File *destination)'],['../d3/d73/classshaka_1_1File.html#a07e2d2f98597320f71fb96dff74cfcb2',1,'shaka::File::CopyFile(File *source, File *destination, int64_t max_copy)']]], - ['copyfrom_1426',['CopyFrom',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#ad8975dbb21747ff32c8604f5489bf5c9',1,'shaka::media::MediaSample::CopyFrom(const uint8_t *data, size_t size, bool is_key_frame)'],['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a910e68f46b9464e4ea36cf9cd5116b55',1,'shaka::media::MediaSample::CopyFrom(const uint8_t *data, size_t size, const uint8_t *side_data, size_t side_data_size, bool is_key_frame)']]], - ['copyrepresentation_1427',['CopyRepresentation',['../d8/d8e/classshaka_1_1AdaptationSet.html#a48a144f36f6ba4736f683f102582fabc',1,'shaka::AdaptationSet']]], - ['create_1428',['Create',['../db/dd0/classshaka_1_1media_1_1RawKeySource.html#aea32604de0ad9489731d188c50e7accf',1,'shaka::media::RawKeySource::Create()'],['../d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html#aef45d0014d7971b936ce3d0109935ba8',1,'shaka::media::RsaPrivateKey::Create()'],['../d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html#aabe4a2f1541ca1e741305f58329e3881',1,'shaka::media::RsaPublicKey::Create()']]], - ['createandinitializesegmenter_1429',['CreateAndInitializeSegmenter',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#a89f8406b8a174eb5bdc611bec92f9f4f',1,'shaka::media::SegmentTestBase']]], - ['createbox_1430',['CreateBox',['../d2/d24/classshaka_1_1media_1_1PsshBoxBuilder.html#a171ae52bfa8b3991bacee5c38ed2d529',1,'shaka::media::PsshBoxBuilder']]], - ['createemptymediasample_1431',['CreateEmptyMediaSample',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a4a7f8d79f9ec3cd3df9a395eef71f0c6',1,'shaka::media::MediaSample']]], - ['createeosbuffer_1432',['CreateEOSBuffer',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a236e80a98d7f22ec585bbbf2e91397f5',1,'shaka::media::MediaSample']]], - ['createfromkeyandkeyid_1433',['CreateFromKeyAndKeyId',['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#a4d2c2abf7deb4ea04aa11b268155c50b',1,'shaka::media::PlayReadyKeySource']]], - ['createhlslistener_1434',['CreateHlsListener',['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html#a01593fac3541a02e6624019a24f9c9c3',1,'shaka::media::MuxerListenerFactory']]], - ['createlistener_1435',['CreateListener',['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html#a8eb1eaf0b57ef7d491353ba57792f071',1,'shaka::media::MuxerListenerFactory']]], - ['createmuxer_1436',['CreateMuxer',['../da/d2a/classshaka_1_1media_1_1MuxerFactory.html#a14cec51b20fe34bd2d3c3763d0cfd789',1,'shaka::media::MuxerFactory']]], - ['createmuxeroptions_1437',['CreateMuxerOptions',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#a87fefed1921b0dad84b1d082e30cce37',1,'shaka::media::SegmentTestBase']]], - ['createsample_1438',['CreateSample',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#afd8845d029698f556ca09436da0c62ef',1,'shaka::media::SegmentTestBase']]], - ['createsigner_1439',['CreateSigner',['../d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html#a8ae2058318e5894422acb95586e3c471',1,'shaka::media::AesRequestSigner::CreateSigner()'],['../d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html#af6af635a7c0a01bb638befb71b88386c',1,'shaka::media::RsaRequestSigner::CreateSigner()']]], - ['createvideostreaminfo_1440',['CreateVideoStreamInfo',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#aeba2d28eb9f605bae1536e13c1cac950',1,'shaka::media::SegmentTestBase']]], - ['crypt_1441',['Crypt',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#ac5fc6e563807e6fce36c2dd43c928b3e',1,'shaka::media::AesCryptor']]], - ['current_5fbyte_5fptr_1442',['current_byte_ptr',['../d6/da9/classshaka_1_1media_1_1BitReader.html#abc5a89a9c0664a097c55d72d7540ac82',1,'shaka::media::BitReader']]], - ['current_5fchunk_1443',['current_chunk',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#a5cf09046b87870e6ecbb8e2522b3ae3a',1,'shaka::media::mp4::ChunkInfoIterator']]] + ['cacheauxinfo_1403',['CacheAuxInfo',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#ab7a8d3f44a663d63ef2415542239c540',1,'shaka::media::mp4::TrackRunIterator']]], + ['callbackfile_1404',['CallbackFile',['../dd/d40/classshaka_1_1CallbackFile.html#a0e1e50e81d926b17938b0dad89d1c05f',1,'shaka::CallbackFile']]], + ['cancel_1405',['Cancel',['../df/d46/classshaka_1_1media_1_1Muxer.html#a9204fe352d13cea8a367ae9c14e9639e',1,'shaka::media::Muxer::Cancel()'],['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a77ec615ca1fa21d347bf03c537af9ed8',1,'shaka::media::SyncPointQueue::Cancel()'],['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a683de4ad66155311d90d92635546dc8d',1,'shaka::media::Demuxer::Cancel()'],['../db/dd0/classshaka_1_1Packager.html#a5323e6dc242b1cdd6208cd6ea77dd0c7',1,'shaka::Packager::Cancel()']]], + ['childexist_1406',['ChildExist',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#aa65236a6b94ac59d5da409412992211c',1,'shaka::media::mp4::BoxReader']]], + ['chunkinfoiterator_1407',['ChunkInfoIterator',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#adae19e8f34f3f962e9858c67f984445d',1,'shaka::media::mp4::ChunkInfoIterator']]], + ['clear_1408',['Clear',['../df/d4e/classshaka_1_1IoCache.html#a10c8e56478fe7bc4c30ea0087eb22804',1,'shaka::IoCache']]], + ['clearoutputstreamdatavector_1409',['ClearOutputStreamDataVector',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html#a051758e3cfa419622565e65a08fd8a00',1,'shaka::media::MediaHandlerGraphTestBase']]], + ['clearsegmentpmt_1410',['ClearSegmentPmt',['../dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html#abeab8da6e10fb156bd38dd9e47669c0f',1,'shaka::media::mp2t::ProgramMapTableWriter']]], + ['clone_1411',['Clone',['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html#a306c5ebb4a42eced7d1a3deaad23c17b',1,'shaka::media::AudioStreamInfo::Clone()'],['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a5cf07ebc02514de4c2e2adf8280acedf',1,'shaka::media::MediaSample::Clone()'],['../d5/db1/classshaka_1_1media_1_1StreamInfo.html#afdd9b2df8ae1c11bb033c44eaba5e38d',1,'shaka::media::StreamInfo::Clone()'],['../db/dab/classshaka_1_1media_1_1TextStreamInfo.html#aa8cfad62fa0186a4f82a8dc43ee1c96d',1,'shaka::media::TextStreamInfo::Clone()'],['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a0d62499eaf37fe6df75f35beaebf71f1',1,'shaka::media::VideoStreamInfo::Clone()']]], + ['close_1412',['Close',['../d3/d73/classshaka_1_1File.html#a932666ed1d6a565bf387a9d8b39a8948',1,'shaka::File::Close()'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#af560b12e0298ca3dcd8f88fddff1443b',1,'shaka::media::MkvWriter::Close()'],['../d4/dcb/classshaka_1_1UdpFile.html#a61cdb937b3a996bb8b054679d98df812',1,'shaka::UdpFile::Close()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#a79292b93c39f609b5348787a39fc77b2',1,'shaka::ThreadedIoFile::Close()'],['../de/dad/classshaka_1_1MemoryFile.html#a4cfe38684f4fdde650a2ed7fdc780f05',1,'shaka::MemoryFile::Close()'],['../d7/dbd/classshaka_1_1LocalFile.html#a3d881c251c19a36eaf50483971095370',1,'shaka::LocalFile::Close()'],['../df/d4e/classshaka_1_1IoCache.html#a1c54ca1d747cf0b0b9ab681babff73e6',1,'shaka::IoCache::Close()'],['../d1/dc7/classshaka_1_1HttpFile.html#a3fba23d4dc1f8ad1d92d2e2de377e1f6',1,'shaka::HttpFile::Close()'],['../dd/d40/classshaka_1_1CallbackFile.html#aac23ef04e5bafef7d5b4c5d7a3fcfbb5',1,'shaka::CallbackFile::Close()']]], + ['closed_1413',['closed',['../df/d4e/classshaka_1_1IoCache.html#a69c0074123339c9c60dec6a27a5c085c',1,'shaka::IoCache']]], + ['closurethread_1414',['ClosureThread',['../dc/df0/classshaka_1_1media_1_1ClosureThread.html#a480ff10ca3ff9de7f9ed9582d305281f',1,'shaka::media::ClosureThread']]], + ['cluster_5fended_1415',['cluster_ended',['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#a97f7c19e8dd7fb57e9f36bd70bcdb56a',1,'shaka::media::WebMClusterParser']]], + ['codec_1416',['codec',['../dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html#ae241202f41b47404256bae5ee0fbfc25',1,'shaka::media::mp2t::ProgramMapTableWriter::codec()'],['../d8/d8e/classshaka_1_1AdaptationSet.html#a43856955a18170c490493b0d9107ab15',1,'shaka::AdaptationSet::codec()']]], + ['codec_5fconfig_1417',['codec_config',['../db/dcb/classshaka_1_1media_1_1VPxParser.html#a56513f4759d34201c9a5f86840811910',1,'shaka::media::VPxParser']]], + ['compositionoffsetiterator_1418',['CompositionOffsetIterator',['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#a70511a15ee2f03d447b18668de57ca93',1,'shaka::media::mp4::CompositionOffsetIterator']]], + ['computesize_1419',['ComputeSize',['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#a2ba53752e5146af951e378998fc076a3',1,'shaka::media::BaseDescriptor::ComputeSize()'],['../d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html#aded832d0c1f43718b12f3a3e16d9c476',1,'shaka::media::mp4::SampleEncryptionEntry::ComputeSize()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#aa4e47d0ba81e234707c76ca36e32c1d5',1,'shaka::media::mp4::Box::ComputeSize()']]], + ['container_5fname_1420',['container_name',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a385c93fd8d589b7d3bccd35e14c58290',1,'shaka::media::Demuxer']]], + ['convertbytestreamtonalunitstream_1421',['ConvertByteStreamToNalUnitStream',['../de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html#a8f85f99c1cc939382c4eecd6580ecd17',1,'shaka::media::H26xByteToUnitStreamConverter']]], + ['converttoadts_1422',['ConvertToADTS',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a5cde95e7125bcee23be34a00a92f4097',1,'shaka::media::AACAudioSpecificConfig']]], + ['convertunittobytestream_1423',['ConvertUnitToByteStream',['../d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html#acde0ff823ed23fd3d8b8704cf243f3d5',1,'shaka::media::NalUnitToByteStreamConverter']]], + ['convertunittobytestreamwithsubsamples_1424',['ConvertUnitToByteStreamWithSubsamples',['../d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html#ae727e801c989d3ede17f1d1bd86a4ab4',1,'shaka::media::NalUnitToByteStreamConverter']]], + ['copy_1425',['Copy',['../d3/d73/classshaka_1_1File.html#af2cbec5c6dc1c97ada010acd83b9728a',1,'shaka::File']]], + ['copyfile_1426',['CopyFile',['../d3/d73/classshaka_1_1File.html#a85633ec9f051eb9f32b07ff7e7740d1c',1,'shaka::File::CopyFile(File *source, File *destination)'],['../d3/d73/classshaka_1_1File.html#a07e2d2f98597320f71fb96dff74cfcb2',1,'shaka::File::CopyFile(File *source, File *destination, int64_t max_copy)']]], + ['copyfrom_1427',['CopyFrom',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#ad8975dbb21747ff32c8604f5489bf5c9',1,'shaka::media::MediaSample::CopyFrom(const uint8_t *data, size_t size, bool is_key_frame)'],['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a910e68f46b9464e4ea36cf9cd5116b55',1,'shaka::media::MediaSample::CopyFrom(const uint8_t *data, size_t size, const uint8_t *side_data, size_t side_data_size, bool is_key_frame)']]], + ['copyrepresentation_1428',['CopyRepresentation',['../d8/d8e/classshaka_1_1AdaptationSet.html#a48a144f36f6ba4736f683f102582fabc',1,'shaka::AdaptationSet']]], + ['create_1429',['Create',['../db/dd0/classshaka_1_1media_1_1RawKeySource.html#aea32604de0ad9489731d188c50e7accf',1,'shaka::media::RawKeySource::Create()'],['../d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html#aef45d0014d7971b936ce3d0109935ba8',1,'shaka::media::RsaPrivateKey::Create()'],['../d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html#aabe4a2f1541ca1e741305f58329e3881',1,'shaka::media::RsaPublicKey::Create()']]], + ['createandinitializesegmenter_1430',['CreateAndInitializeSegmenter',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#a89f8406b8a174eb5bdc611bec92f9f4f',1,'shaka::media::SegmentTestBase']]], + ['createbox_1431',['CreateBox',['../d2/d24/classshaka_1_1media_1_1PsshBoxBuilder.html#a171ae52bfa8b3991bacee5c38ed2d529',1,'shaka::media::PsshBoxBuilder']]], + ['createemptymediasample_1432',['CreateEmptyMediaSample',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a4a7f8d79f9ec3cd3df9a395eef71f0c6',1,'shaka::media::MediaSample']]], + ['createeosbuffer_1433',['CreateEOSBuffer',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a236e80a98d7f22ec585bbbf2e91397f5',1,'shaka::media::MediaSample']]], + ['createfromkeyandkeyid_1434',['CreateFromKeyAndKeyId',['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#a4d2c2abf7deb4ea04aa11b268155c50b',1,'shaka::media::PlayReadyKeySource']]], + ['createhlslistener_1435',['CreateHlsListener',['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html#a01593fac3541a02e6624019a24f9c9c3',1,'shaka::media::MuxerListenerFactory']]], + ['createlistener_1436',['CreateListener',['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html#a8eb1eaf0b57ef7d491353ba57792f071',1,'shaka::media::MuxerListenerFactory']]], + ['createmuxer_1437',['CreateMuxer',['../da/d2a/classshaka_1_1media_1_1MuxerFactory.html#a14cec51b20fe34bd2d3c3763d0cfd789',1,'shaka::media::MuxerFactory']]], + ['createmuxeroptions_1438',['CreateMuxerOptions',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#a87fefed1921b0dad84b1d082e30cce37',1,'shaka::media::SegmentTestBase']]], + ['createsample_1439',['CreateSample',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#afd8845d029698f556ca09436da0c62ef',1,'shaka::media::SegmentTestBase']]], + ['createsigner_1440',['CreateSigner',['../d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html#a8ae2058318e5894422acb95586e3c471',1,'shaka::media::AesRequestSigner::CreateSigner()'],['../d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html#af6af635a7c0a01bb638befb71b88386c',1,'shaka::media::RsaRequestSigner::CreateSigner()']]], + ['createvideostreaminfo_1441',['CreateVideoStreamInfo',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#aeba2d28eb9f605bae1536e13c1cac950',1,'shaka::media::SegmentTestBase']]], + ['crypt_1442',['Crypt',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#ac5fc6e563807e6fce36c2dd43c928b3e',1,'shaka::media::AesCryptor']]], + ['current_5fbyte_5fptr_1443',['current_byte_ptr',['../d6/da9/classshaka_1_1media_1_1BitReader.html#abc5a89a9c0664a097c55d72d7540ac82',1,'shaka::media::BitReader']]], + ['current_5fchunk_1444',['current_chunk',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#a5cf09046b87870e6ecbb8e2522b3ae3a',1,'shaka::media::mp4::ChunkInfoIterator']]] ]; diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js index f7b3df09c4..70eadd329e 100644 --- a/docs/search/functions_3.js +++ b/docs/search/functions_3.js @@ -1,25 +1,25 @@ var searchData= [ - ['dash_5fprofile_1444',['dash_profile',['../d3/dd0/classshaka_1_1MpdNotifier.html#a28714ebd081aa9244aca2beb85c78d37',1,'shaka::MpdNotifier']]], - ['data_1445',['data',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#a09f2c913c2d98c8136ec8d07a5ae1e27',1,'shaka::media::DecoderConfigurationRecord::data()'],['../d6/dff/classshaka_1_1media_1_1Nalu.html#a52dc6f445a09c36a64c634ccc2891489',1,'shaka::media::Nalu::data()']]], - ['data_5fsize_1446',['data_size',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#ada228c2392a0ff3069f2be7c27347a4f',1,'shaka::media::DecoderConfigurationRecord::data_size()'],['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#ae953afe76a6b5c65260c89949dd87ba2',1,'shaka::media::BaseDescriptor::data_size()']]], - ['decodingtimeiterator_1447',['DecodingTimeIterator',['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#aa2b6f0a9697cfd606bfe95b5377c953e',1,'shaka::media::mp4::DecodingTimeIterator']]], - ['decrypt_1448',['Decrypt',['../d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html#a89a475ffe2d96bfab09536b864038ca4',1,'shaka::media::RsaPrivateKey']]], - ['decryptconfig_1449',['DecryptConfig',['../de/d49/classshaka_1_1media_1_1DecryptConfig.html#a24035bb6edcb3aaaa9923bf385376ae5',1,'shaka::media::DecryptConfig::DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples)'],['../de/d49/classshaka_1_1media_1_1DecryptConfig.html#ab2dfe0a2ee285539843ac55b5f1ac7c7',1,'shaka::media::DecryptConfig::DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples, FourCC protection_scheme, uint8_t crypt_byte_block, uint8_t skip_byte_block)']]], - ['decryptorsource_1450',['DecryptorSource',['../d7/d59/classshaka_1_1media_1_1DecryptorSource.html#a045c97bdeb9996d6003ac926849880c8',1,'shaka::media::DecryptorSource']]], - ['decryptsamplebuffer_1451',['DecryptSampleBuffer',['../d7/d59/classshaka_1_1media_1_1DecryptorSource.html#a8a1bd6a5a63b3f3c54028b43dfc67a6d',1,'shaka::media::DecryptorSource']]], - ['defaultstreamlabelfunction_1452',['DefaultStreamLabelFunction',['../db/dd0/classshaka_1_1Packager.html#a59fec4e3f33138081e5222d3553ab948',1,'shaka::Packager']]], - ['delete_1453',['Delete',['../de/dad/classshaka_1_1MemoryFile.html#a3ac9c9e8e3a31ef8f70a904384f89bed',1,'shaka::MemoryFile::Delete()'],['../d7/dbd/classshaka_1_1LocalFile.html#a7eb47bb6ceff52c57e3eb4a21fb0ba8d',1,'shaka::LocalFile::Delete()'],['../d3/d73/classshaka_1_1File.html#a383c9f670511961f334569fd1a7a103b',1,'shaka::File::Delete()']]], - ['deleteall_1454',['DeleteAll',['../de/dad/classshaka_1_1MemoryFile.html#acd947572c2bbe3595b403a483c82e899',1,'shaka::MemoryFile']]], - ['demuxer_1455',['Demuxer',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#ae2fee69f99e5815de4f686b24393402e',1,'shaka::media::Demuxer']]], - ['dispatch_1456',['Dispatch',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#afe98a4fd19eabe0fc78afc91959c34a6',1,'shaka::media::MediaHandler::Dispatch()'],['../d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html#afe98a4fd19eabe0fc78afc91959c34a6',1,'shaka::media::FakeInputMediaHandler::Dispatch()']]], - ['dispatchcueevent_1457',['DispatchCueEvent',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0dcba8fa849d5f031ab3e2b4803a7804',1,'shaka::media::MediaHandler']]], - ['dispatchmediasample_1458',['DispatchMediaSample',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a9a74fead95bc16255e73908bbebbced9',1,'shaka::media::MediaHandler']]], - ['dispatchscte35event_1459',['DispatchScte35Event',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#aaea265e5d6e765b75ad622c5588e09f8',1,'shaka::media::MediaHandler']]], - ['dispatchsegmentinfo_1460',['DispatchSegmentInfo',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a2acc1c84a61aee93229d493aa93308d5',1,'shaka::media::MediaHandler']]], - ['dispatchstreaminfo_1461',['DispatchStreamInfo',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#ad165375cd0a2074c5a740b42f847c499',1,'shaka::media::MediaHandler']]], - ['dispatchtextsample_1462',['DispatchTextSample',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a9c44df529fead65c007ee27b84ebd32a',1,'shaka::media::MediaHandler']]], - ['dts_1463',['dts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a02537ce70272a3e22426c46e4540ac64',1,'shaka::media::mp2t::PesPacket']]], - ['duration_1464',['Duration',['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#a30c32c95fd45e372c25e96769ca7862a',1,'shaka::media::mp4::DecodingTimeIterator']]], - ['duration_5fseconds_1465',['duration_seconds',['../d8/de1/classshaka_1_1Period.html#a53fff2b4d8ac731857ec5a33cfcfaf86',1,'shaka::Period']]] + ['dash_5fprofile_1445',['dash_profile',['../d3/dd0/classshaka_1_1MpdNotifier.html#a28714ebd081aa9244aca2beb85c78d37',1,'shaka::MpdNotifier']]], + ['data_1446',['data',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#a09f2c913c2d98c8136ec8d07a5ae1e27',1,'shaka::media::DecoderConfigurationRecord::data()'],['../d6/dff/classshaka_1_1media_1_1Nalu.html#a52dc6f445a09c36a64c634ccc2891489',1,'shaka::media::Nalu::data()']]], + ['data_5fsize_1447',['data_size',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#ada228c2392a0ff3069f2be7c27347a4f',1,'shaka::media::DecoderConfigurationRecord::data_size()'],['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#ae953afe76a6b5c65260c89949dd87ba2',1,'shaka::media::BaseDescriptor::data_size()']]], + ['decodingtimeiterator_1448',['DecodingTimeIterator',['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#aa2b6f0a9697cfd606bfe95b5377c953e',1,'shaka::media::mp4::DecodingTimeIterator']]], + ['decrypt_1449',['Decrypt',['../d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html#a89a475ffe2d96bfab09536b864038ca4',1,'shaka::media::RsaPrivateKey']]], + ['decryptconfig_1450',['DecryptConfig',['../de/d49/classshaka_1_1media_1_1DecryptConfig.html#a24035bb6edcb3aaaa9923bf385376ae5',1,'shaka::media::DecryptConfig::DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples)'],['../de/d49/classshaka_1_1media_1_1DecryptConfig.html#ab2dfe0a2ee285539843ac55b5f1ac7c7',1,'shaka::media::DecryptConfig::DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples, FourCC protection_scheme, uint8_t crypt_byte_block, uint8_t skip_byte_block)']]], + ['decryptorsource_1451',['DecryptorSource',['../d7/d59/classshaka_1_1media_1_1DecryptorSource.html#a045c97bdeb9996d6003ac926849880c8',1,'shaka::media::DecryptorSource']]], + ['decryptsamplebuffer_1452',['DecryptSampleBuffer',['../d7/d59/classshaka_1_1media_1_1DecryptorSource.html#a8a1bd6a5a63b3f3c54028b43dfc67a6d',1,'shaka::media::DecryptorSource']]], + ['defaultstreamlabelfunction_1453',['DefaultStreamLabelFunction',['../db/dd0/classshaka_1_1Packager.html#a59fec4e3f33138081e5222d3553ab948',1,'shaka::Packager']]], + ['delete_1454',['Delete',['../de/dad/classshaka_1_1MemoryFile.html#a3ac9c9e8e3a31ef8f70a904384f89bed',1,'shaka::MemoryFile::Delete()'],['../d7/dbd/classshaka_1_1LocalFile.html#a7eb47bb6ceff52c57e3eb4a21fb0ba8d',1,'shaka::LocalFile::Delete()'],['../d3/d73/classshaka_1_1File.html#a383c9f670511961f334569fd1a7a103b',1,'shaka::File::Delete()']]], + ['deleteall_1455',['DeleteAll',['../de/dad/classshaka_1_1MemoryFile.html#acd947572c2bbe3595b403a483c82e899',1,'shaka::MemoryFile']]], + ['demuxer_1456',['Demuxer',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#ae2fee69f99e5815de4f686b24393402e',1,'shaka::media::Demuxer']]], + ['dispatch_1457',['Dispatch',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#afe98a4fd19eabe0fc78afc91959c34a6',1,'shaka::media::MediaHandler::Dispatch()'],['../d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html#afe98a4fd19eabe0fc78afc91959c34a6',1,'shaka::media::FakeInputMediaHandler::Dispatch()']]], + ['dispatchcueevent_1458',['DispatchCueEvent',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0dcba8fa849d5f031ab3e2b4803a7804',1,'shaka::media::MediaHandler']]], + ['dispatchmediasample_1459',['DispatchMediaSample',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a9a74fead95bc16255e73908bbebbced9',1,'shaka::media::MediaHandler']]], + ['dispatchscte35event_1460',['DispatchScte35Event',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#aaea265e5d6e765b75ad622c5588e09f8',1,'shaka::media::MediaHandler']]], + ['dispatchsegmentinfo_1461',['DispatchSegmentInfo',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a2acc1c84a61aee93229d493aa93308d5',1,'shaka::media::MediaHandler']]], + ['dispatchstreaminfo_1462',['DispatchStreamInfo',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#ad165375cd0a2074c5a740b42f847c499',1,'shaka::media::MediaHandler']]], + ['dispatchtextsample_1463',['DispatchTextSample',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a9c44df529fead65c007ee27b84ebd32a',1,'shaka::media::MediaHandler']]], + ['dts_1464',['dts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a02537ce70272a3e22426c46e4540ac64',1,'shaka::media::mp2t::PesPacket']]], + ['duration_1465',['Duration',['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#a30c32c95fd45e372c25e96769ca7862a',1,'shaka::media::mp4::DecodingTimeIterator']]], + ['duration_5fseconds_1466',['duration_seconds',['../d8/de1/classshaka_1_1Period.html#a53fff2b4d8ac731857ec5a33cfcfaf86',1,'shaka::Period']]] ]; diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js index 89539d4645..c207562756 100644 --- a/docs/search/functions_4.js +++ b/docs/search/functions_4.js @@ -1,9 +1,9 @@ var searchData= [ - ['elementstartnotify_1466',['ElementStartNotify',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a6603ba573e802e660921f329192738f3',1,'shaka::media::MkvWriter']]], - ['empty_1467',['Empty',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a19881dbe30e5ace8b9844b81b1f33350',1,'shaka::media::ProducerConsumerQueue']]], - ['encrypt_1468',['Encrypt',['../d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html#ab9dcf591f3235b8f4eaa02886f9845e3',1,'shaka::media::RsaPublicKey']]], - ['encryptedsegmentpmt_1469',['EncryptedSegmentPmt',['../dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html#a258bff0465507799b591006138698150',1,'shaka::media::mp2t::ProgramMapTableWriter']]], - ['estimate_1470',['Estimate',['../da/d2c/classshaka_1_1BandwidthEstimator.html#a9414560e16c46e7e2da3683a4dfb86cc',1,'shaka::BandwidthEstimator']]], - ['extractreferencednamespaces_1471',['ExtractReferencedNamespaces',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a386a3bf89fe34f30d856c8fd0f36cba3',1,'shaka::xml::XmlNode']]] + ['elementstartnotify_1467',['ElementStartNotify',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a6603ba573e802e660921f329192738f3',1,'shaka::media::MkvWriter']]], + ['empty_1468',['Empty',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a19881dbe30e5ace8b9844b81b1f33350',1,'shaka::media::ProducerConsumerQueue']]], + ['encrypt_1469',['Encrypt',['../d9/d0c/classshaka_1_1media_1_1RsaPublicKey.html#ab9dcf591f3235b8f4eaa02886f9845e3',1,'shaka::media::RsaPublicKey']]], + ['encryptedsegmentpmt_1470',['EncryptedSegmentPmt',['../dc/d03/classshaka_1_1media_1_1mp2t_1_1ProgramMapTableWriter.html#a258bff0465507799b591006138698150',1,'shaka::media::mp2t::ProgramMapTableWriter']]], + ['estimate_1471',['Estimate',['../da/d2c/classshaka_1_1BandwidthEstimator.html#a9414560e16c46e7e2da3683a4dfb86cc',1,'shaka::BandwidthEstimator']]], + ['extractreferencednamespaces_1472',['ExtractReferencedNamespaces',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a386a3bf89fe34f30d856c8fd0f36cba3',1,'shaka::xml::XmlNode']]] ]; diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js index e9f52dc2bb..54b864dc10 100644 --- a/docs/search/functions_5.js +++ b/docs/search/functions_5.js @@ -1,17 +1,17 @@ var searchData= [ - ['fetchkeys_1472',['FetchKeys',['../df/d66/classshaka_1_1media_1_1KeyFetcher.html#aa3c6011a0dd7c8e7f53dbaf48b92718d',1,'shaka::media::KeyFetcher::FetchKeys()'],['../d1/d1f/classshaka_1_1media_1_1KeySource.html#a38dc8e7c48f86e2b3ab3c1ffe0d7916f',1,'shaka::media::KeySource::FetchKeys()'],['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#a6311482a3f3ddec70da595f0dc1580ae',1,'shaka::media::PlayReadyKeySource::FetchKeys()'],['../db/dd0/classshaka_1_1media_1_1RawKeySource.html#a0849f7000c4ab37139cc9c9ea1a031f3',1,'shaka::media::RawKeySource::FetchKeys()'],['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#aeea3e62921c176aa6be1f0a95f03b6cf',1,'shaka::media::WidevineKeySource::FetchKeys(EmeInitDataType init_data_type, const std::vector< uint8_t > &init_data) override'],['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#a6fb9680be887d3b9367e015029f909f2',1,'shaka::media::WidevineKeySource::FetchKeys(const std::vector< uint8_t > &content_id, const std::string &policy)'],['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#ab8e9b01fac00aa5dafb8983acd7a297b',1,'shaka::media::HttpKeyFetcher::FetchKeys()']]], - ['file_5fname_1473',['file_name',['../d3/d73/classshaka_1_1File.html#a4b06e08bb0295cb89fca45f9356ecbae',1,'shaka::File']]], - ['finalize_1474',['Finalize',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#ac92da7c996e2a270fd704facc8f7a149',1,'shaka::media::mp2t::TsSegmenter::Finalize()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#a464a30159b8888a54254356d191947ac',1,'shaka::media::mp4::Segmenter::Finalize()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#aa84782877f1afaf9519a552ac3d5d417',1,'shaka::media::webm::Segmenter::Finalize()']]], - ['finalizefragment_1475',['FinalizeFragment',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#ae943e13eb86d54cffb7174d4513e4541',1,'shaka::media::mp4::Fragmenter']]], - ['finalizesegment_1476',['FinalizeSegment',['../d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html#acadda71dd534ab0f6889ab653fbffe42',1,'shaka::media::webm::MultiSegmentSegmenter::FinalizeSegment()'],['../d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html#a7c34c5c8dacbe1a18444cdb6abce0a30',1,'shaka::media::webm::SingleSegmentSegmenter::FinalizeSegment()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a3c7123d6d9321c72d8bd737f1f9d3c01',1,'shaka::media::webm::Segmenter::FinalizeSegment()'],['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#ad9e72b3ecdde3e2e200c2566a33e08c7',1,'shaka::media::PackedAudioSegmenter::FinalizeSegment()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#adfe43b76600564a2836ed78070549656',1,'shaka::media::mp4::Segmenter::FinalizeSegment()'],['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#ac0c76888b5c3b3a25600a3f126dc92f8',1,'shaka::media::mp2t::TsSegmenter::FinalizeSegment()']]], - ['findstartcodeinclearrange_1477',['FindStartCodeInClearRange',['../db/d86/classshaka_1_1media_1_1NaluReader.html#aa14b3cd5da5657d8a3d0ecfdf301a184',1,'shaka::media::NaluReader']]], - ['flush_1478',['Flush',['../d4/dcb/classshaka_1_1UdpFile.html#a4b5430ec1d24434f5f6d9b20692efbc2',1,'shaka::UdpFile::Flush()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a8ea622a21a5807775bb2d998fa04658f',1,'shaka::SimpleMpdNotifier::Flush()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#af8149126f4793506bef385d067561dbf',1,'shaka::MpdNotifier::Flush()'],['../dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html#ac5680e3bd6cdb07fd65af3f39fce999a',1,'shaka::media::wvm::WvmMediaParser::Flush()'],['../d9/d40/classshaka_1_1media_1_1WebVttParser.html#a521d223f2fe3c80f66cdc3bda8c07e91',1,'shaka::media::WebVttParser::Flush()'],['../df/d0d/classshaka_1_1media_1_1BlockReader.html#a9ea2f0207b36f6adf1314796c701cc9f',1,'shaka::media::BlockReader::Flush()'],['../db/de2/classshaka_1_1media_1_1LineReader.html#a225861ff0be8f69c62a3649ca993e50a',1,'shaka::media::LineReader::Flush()'],['../d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html#a6c2d4b5b36304831e637f7ae1b9e54a2',1,'shaka::media::WebMMediaParser::Flush()'],['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#ac3d4be1a12667ed722915be727747eee',1,'shaka::media::WebMClusterParser::Flush()'],['../d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html#a6f26e0d76aeda601fa87190901de27ea',1,'shaka::media::mp4::MP4MediaParser::Flush()'],['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a71ea0819224b94ba9df5c951424bc6b1',1,'shaka::media::mp2t::PesPacketGenerator::Flush()'],['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#a26752164d7e8ae6a9a894512291ad9cd',1,'shaka::media::MediaParser::Flush()'],['../dd/d40/classshaka_1_1CallbackFile.html#aef34f60f2e94f862e495c254edc58bd9',1,'shaka::CallbackFile::Flush()'],['../d3/d73/classshaka_1_1File.html#a5fa625751e03b9e7652ba1bfa98b8ca4',1,'shaka::File::Flush()'],['../d1/dc7/classshaka_1_1HttpFile.html#ad032c195629f85f8725192443518efd3',1,'shaka::HttpFile::Flush()'],['../d7/dbd/classshaka_1_1LocalFile.html#a04b4523a7352572b2c6d72f1d6f3a077',1,'shaka::LocalFile::Flush()'],['../de/dad/classshaka_1_1MemoryFile.html#aecf76d1658ea5f088ef1e42f04b9b64d',1,'shaka::MemoryFile::Flush()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#a2b53b72d99aad4439781e3887492452c',1,'shaka::ThreadedIoFile::Flush()'],['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a5d788d47d01aee4f75c7b55251d69edf',1,'shaka::hls::HlsNotifier::Flush()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a153fe931c8e6fe3e585ebd925d75d229',1,'shaka::hls::SimpleHlsNotifier::Flush()'],['../dc/d76/classshaka_1_1media_1_1BitWriter.html#a1c14f04a0bb3090edb3ac0fffa346bc1',1,'shaka::media::BitWriter::Flush()'],['../d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#afdb1a88116e3347e67afeb7715847135',1,'shaka::media::mp2t::Mp2tMediaParser::Flush()']]], - ['flushalldownstreams_1479',['FlushAllDownstreams',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#ab644ca7b0a0dbcbc42936f2dfb979ca5',1,'shaka::media::MediaHandler::FlushAllDownstreams()'],['../d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html#ab644ca7b0a0dbcbc42936f2dfb979ca5',1,'shaka::media::FakeInputMediaHandler::FlushAllDownstreams()']]], - ['flushdownstream_1480',['FlushDownstream',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#ad5001bf12073101a949b062943769f5b',1,'shaka::media::MediaHandler::FlushDownstream()'],['../d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html#ad5001bf12073101a949b062943769f5b',1,'shaka::media::FakeInputMediaHandler::FlushDownstream()']]], - ['forcesetsegmentalignment_1481',['ForceSetSegmentAlignment',['../d8/d8e/classshaka_1_1AdaptationSet.html#a40532ecbed5f71de85bde0cb7eb1ef9d',1,'shaka::AdaptationSet']]], - ['fragmenter_1482',['Fragmenter',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#af4fc5984b941644f381122cffdd2c998',1,'shaka::media::mp4::Fragmenter']]], - ['frombmfftimestamp_1483',['FromBmffTimestamp',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#aaa34bab8904436eb3e67f392eaa0b549',1,'shaka::media::webm::Segmenter']]], - ['frommetadata_1484',['FromMetadata',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a8c70ae863851c7a1066923cf387fb178',1,'shaka::media::MediaSample']]], - ['fromwebmtimecode_1485',['FromWebMTimecode',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#ab85d8456bc9e4990b1c5e5d9738a2d1b',1,'shaka::media::webm::Segmenter']]] + ['fetchkeys_1473',['FetchKeys',['../df/d66/classshaka_1_1media_1_1KeyFetcher.html#aa3c6011a0dd7c8e7f53dbaf48b92718d',1,'shaka::media::KeyFetcher::FetchKeys()'],['../d1/d1f/classshaka_1_1media_1_1KeySource.html#a38dc8e7c48f86e2b3ab3c1ffe0d7916f',1,'shaka::media::KeySource::FetchKeys()'],['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#a6311482a3f3ddec70da595f0dc1580ae',1,'shaka::media::PlayReadyKeySource::FetchKeys()'],['../db/dd0/classshaka_1_1media_1_1RawKeySource.html#a0849f7000c4ab37139cc9c9ea1a031f3',1,'shaka::media::RawKeySource::FetchKeys()'],['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#aeea3e62921c176aa6be1f0a95f03b6cf',1,'shaka::media::WidevineKeySource::FetchKeys(EmeInitDataType init_data_type, const std::vector< uint8_t > &init_data) override'],['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#a6fb9680be887d3b9367e015029f909f2',1,'shaka::media::WidevineKeySource::FetchKeys(const std::vector< uint8_t > &content_id, const std::string &policy)'],['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#ab8e9b01fac00aa5dafb8983acd7a297b',1,'shaka::media::HttpKeyFetcher::FetchKeys()']]], + ['file_5fname_1474',['file_name',['../d3/d73/classshaka_1_1File.html#a4b06e08bb0295cb89fca45f9356ecbae',1,'shaka::File']]], + ['finalize_1475',['Finalize',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#ac92da7c996e2a270fd704facc8f7a149',1,'shaka::media::mp2t::TsSegmenter::Finalize()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#a464a30159b8888a54254356d191947ac',1,'shaka::media::mp4::Segmenter::Finalize()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#aa84782877f1afaf9519a552ac3d5d417',1,'shaka::media::webm::Segmenter::Finalize()']]], + ['finalizefragment_1476',['FinalizeFragment',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#ae943e13eb86d54cffb7174d4513e4541',1,'shaka::media::mp4::Fragmenter']]], + ['finalizesegment_1477',['FinalizeSegment',['../d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html#acadda71dd534ab0f6889ab653fbffe42',1,'shaka::media::webm::MultiSegmentSegmenter::FinalizeSegment()'],['../d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html#a7c34c5c8dacbe1a18444cdb6abce0a30',1,'shaka::media::webm::SingleSegmentSegmenter::FinalizeSegment()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a3c7123d6d9321c72d8bd737f1f9d3c01',1,'shaka::media::webm::Segmenter::FinalizeSegment()'],['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#ad9e72b3ecdde3e2e200c2566a33e08c7',1,'shaka::media::PackedAudioSegmenter::FinalizeSegment()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#adfe43b76600564a2836ed78070549656',1,'shaka::media::mp4::Segmenter::FinalizeSegment()'],['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#ac0c76888b5c3b3a25600a3f126dc92f8',1,'shaka::media::mp2t::TsSegmenter::FinalizeSegment()']]], + ['findstartcodeinclearrange_1478',['FindStartCodeInClearRange',['../db/d86/classshaka_1_1media_1_1NaluReader.html#aa14b3cd5da5657d8a3d0ecfdf301a184',1,'shaka::media::NaluReader']]], + ['flush_1479',['Flush',['../d4/dcb/classshaka_1_1UdpFile.html#a4b5430ec1d24434f5f6d9b20692efbc2',1,'shaka::UdpFile::Flush()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a8ea622a21a5807775bb2d998fa04658f',1,'shaka::SimpleMpdNotifier::Flush()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#af8149126f4793506bef385d067561dbf',1,'shaka::MpdNotifier::Flush()'],['../dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html#ac5680e3bd6cdb07fd65af3f39fce999a',1,'shaka::media::wvm::WvmMediaParser::Flush()'],['../d9/d40/classshaka_1_1media_1_1WebVttParser.html#a521d223f2fe3c80f66cdc3bda8c07e91',1,'shaka::media::WebVttParser::Flush()'],['../df/d0d/classshaka_1_1media_1_1BlockReader.html#a9ea2f0207b36f6adf1314796c701cc9f',1,'shaka::media::BlockReader::Flush()'],['../db/de2/classshaka_1_1media_1_1LineReader.html#a225861ff0be8f69c62a3649ca993e50a',1,'shaka::media::LineReader::Flush()'],['../d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html#a6c2d4b5b36304831e637f7ae1b9e54a2',1,'shaka::media::WebMMediaParser::Flush()'],['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#ac3d4be1a12667ed722915be727747eee',1,'shaka::media::WebMClusterParser::Flush()'],['../d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html#a6f26e0d76aeda601fa87190901de27ea',1,'shaka::media::mp4::MP4MediaParser::Flush()'],['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a71ea0819224b94ba9df5c951424bc6b1',1,'shaka::media::mp2t::PesPacketGenerator::Flush()'],['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#a26752164d7e8ae6a9a894512291ad9cd',1,'shaka::media::MediaParser::Flush()'],['../dd/d40/classshaka_1_1CallbackFile.html#aef34f60f2e94f862e495c254edc58bd9',1,'shaka::CallbackFile::Flush()'],['../d3/d73/classshaka_1_1File.html#a5fa625751e03b9e7652ba1bfa98b8ca4',1,'shaka::File::Flush()'],['../d1/dc7/classshaka_1_1HttpFile.html#ad032c195629f85f8725192443518efd3',1,'shaka::HttpFile::Flush()'],['../d7/dbd/classshaka_1_1LocalFile.html#a04b4523a7352572b2c6d72f1d6f3a077',1,'shaka::LocalFile::Flush()'],['../de/dad/classshaka_1_1MemoryFile.html#aecf76d1658ea5f088ef1e42f04b9b64d',1,'shaka::MemoryFile::Flush()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#a2b53b72d99aad4439781e3887492452c',1,'shaka::ThreadedIoFile::Flush()'],['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a5d788d47d01aee4f75c7b55251d69edf',1,'shaka::hls::HlsNotifier::Flush()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a153fe931c8e6fe3e585ebd925d75d229',1,'shaka::hls::SimpleHlsNotifier::Flush()'],['../dc/d76/classshaka_1_1media_1_1BitWriter.html#a1c14f04a0bb3090edb3ac0fffa346bc1',1,'shaka::media::BitWriter::Flush()'],['../d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#afdb1a88116e3347e67afeb7715847135',1,'shaka::media::mp2t::Mp2tMediaParser::Flush()']]], + ['flushalldownstreams_1480',['FlushAllDownstreams',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#ab644ca7b0a0dbcbc42936f2dfb979ca5',1,'shaka::media::MediaHandler::FlushAllDownstreams()'],['../d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html#ab644ca7b0a0dbcbc42936f2dfb979ca5',1,'shaka::media::FakeInputMediaHandler::FlushAllDownstreams()']]], + ['flushdownstream_1481',['FlushDownstream',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#ad5001bf12073101a949b062943769f5b',1,'shaka::media::MediaHandler::FlushDownstream()'],['../d3/d1e/classshaka_1_1media_1_1FakeInputMediaHandler.html#ad5001bf12073101a949b062943769f5b',1,'shaka::media::FakeInputMediaHandler::FlushDownstream()']]], + ['forcesetsegmentalignment_1482',['ForceSetSegmentAlignment',['../d8/d8e/classshaka_1_1AdaptationSet.html#a40532ecbed5f71de85bde0cb7eb1ef9d',1,'shaka::AdaptationSet']]], + ['fragmenter_1483',['Fragmenter',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#af4fc5984b941644f381122cffdd2c998',1,'shaka::media::mp4::Fragmenter']]], + ['frombmfftimestamp_1484',['FromBmffTimestamp',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#aaa34bab8904436eb3e67f392eaa0b549',1,'shaka::media::webm::Segmenter']]], + ['frommetadata_1485',['FromMetadata',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#a8c70ae863851c7a1066923cf387fb178',1,'shaka::media::MediaSample']]], + ['fromwebmtimecode_1486',['FromWebMTimecode',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#ab85d8456bc9e4990b1c5e5d9738a2d1b',1,'shaka::media::webm::Segmenter']]] ]; diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js index 2a541ba4bc..ebc096be7a 100644 --- a/docs/search/functions_6.js +++ b/docs/search/functions_6.js @@ -1,62 +1,62 @@ var searchData= [ - ['generatepsshfromkeyidandkey_1486',['GeneratePsshFromKeyIdAndKey',['../d8/dbf/classshaka_1_1media_1_1PsshGenerator.html#af3b145050b28bca84380c4179b4ab8ff',1,'shaka::media::PsshGenerator']]], - ['generatepsshfromkeyids_1487',['GeneratePsshFromKeyIds',['../d8/dbf/classshaka_1_1media_1_1PsshGenerator.html#a0916d098396ad0bd04c3a5ee37c87e38',1,'shaka::media::PsshGenerator']]], - ['generaterandomiv_1488',['GenerateRandomIv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a40d9a82d274d6fbaee5346328f11dedd',1,'shaka::media::AesCryptor']]], - ['generatesegmentreference_1489',['GenerateSegmentReference',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#abbce724853d98b2ae1f92b504a24ce54',1,'shaka::media::mp4::Fragmenter']]], - ['generatesignature_1490',['GenerateSignature',['../df/d3c/classshaka_1_1media_1_1RequestSigner.html#a1c77d503f9ffc3462c1bf45b4f35bf32',1,'shaka::media::RequestSigner::GenerateSignature()'],['../d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html#a3010ad8c4c1588358a8d31a97afd6428',1,'shaka::media::AesRequestSigner::GenerateSignature()'],['../d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html#ac83306b0555581b8ac9591b6e3d3bdbc',1,'shaka::media::RsaRequestSigner::GenerateSignature()'],['../d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html#ad05d8951dfe3a8af754490022e95e5f2',1,'shaka::media::RsaPrivateKey::GenerateSignature()']]], - ['generatesubsamples_1491',['GenerateSubsamples',['../d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html#a8d4d840fd11c1c89b8ed03cdf076c64e',1,'shaka::media::SubsampleGenerator']]], - ['get_1492',['Get',['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#a6b5b2c193d6055ca49d2d6af2b2ac4cc',1,'shaka::media::HttpKeyFetcher']]], - ['getac4cbiflag_1493',['GetAC4CbiFlag',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#ae8ca25b851b5df70830ed0c76168392b',1,'shaka::hls::MediaPlaylist']]], - ['getac4imsflag_1494',['GetAC4ImsFlag',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a26d93a17b322f88c9a10f8ee6bb8ba51',1,'shaka::hls::MediaPlaylist']]], - ['getadaptationsets_1495',['GetAdaptationSets',['../d8/de1/classshaka_1_1Period.html#aee153103e77326b21f7f7c92af608654',1,'shaka::Period']]], - ['getattribute_1496',['GetAttribute',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#ab3bcc7c628fb40f44205a9b2cc732097',1,'shaka::xml::XmlNode']]], - ['getaudiodefaultduration_1497',['GetAudioDefaultDuration',['../d8/d86/classshaka_1_1media_1_1WebMTracksParser.html#a705e3db731b14aa692abad4e2c7ad4c8',1,'shaka::media::WebMTracksParser']]], - ['getaudioobjecttype_1498',['GetAudioObjectType',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#ae7936da4be5297ea78e0cbbb0f167941',1,'shaka::media::AACAudioSpecificConfig']]], - ['getaudiospecificconfig_1499',['GetAudioSpecificConfig',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a9a3da0ed02d1790ec176a75bbbdef146',1,'shaka::media::mp2t::Ac3Header::GetAudioSpecificConfig()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#a97a2aae441248e718e056ac3559ecfd9',1,'shaka::media::mp2t::AdtsHeader::GetAudioSpecificConfig()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a80da92426102c52da09690a7587d4272',1,'shaka::media::mp2t::AudioHeader::GetAudioSpecificConfig()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a6cb1a3e117dbca962b4b970885d79808',1,'shaka::media::mp2t::Mpeg1Header::GetAudioSpecificConfig()']]], - ['getaudiostreaminfo_1500',['GetAudioStreamInfo',['../d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html#a0fcbddd20199044f860331b3bd9ef3b8',1,'shaka::media::WebMAudioClient']]], - ['getcodecstring_1501',['GetCodecString',['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html#aee79e7aa61b741bb96f451c6de1c9d42',1,'shaka::media::AudioStreamInfo::GetCodecString()'],['../d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html#a113485810b305690a44cafa3ca3c1c9f',1,'shaka::media::AV1CodecConfigurationRecord::GetCodecString()'],['../d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html#a181ff17209bad998dfed5bc953165e42',1,'shaka::media::AVCDecoderConfigurationRecord::GetCodecString(FourCC codec_fourcc) const'],['../d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html#a30a6df8df89c670fd4c8894b8bacffa9',1,'shaka::media::AVCDecoderConfigurationRecord::GetCodecString(FourCC codec_fourcc, uint8_t profile_indication, uint8_t profile_compatibility, uint8_t avc_level)'],['../da/dbb/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord.html#ae41c9cfd23df72ce990467cabb079754',1,'shaka::media::DOVIDecoderConfigurationRecord::GetCodecString()'],['../d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html#ac05f90cecec3c6bf379d2bcfe13172db',1,'shaka::media::HEVCDecoderConfigurationRecord::GetCodecString()'],['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a44e4733d99e48fdc669eaca606ea259f',1,'shaka::media::VPCodecConfigurationRecord::GetCodecString()']]], - ['getcontenttype_1502',['GetContentType',['../d8/daf/namespaceshaka.html#a5ea880937da26d677ff6a48c0219d090',1,'shaka']]], - ['getcryptoperiodkey_1503',['GetCryptoPeriodKey',['../db/dd0/classshaka_1_1media_1_1RawKeySource.html#a7518bb799554beefebda75eb76aafbd5',1,'shaka::media::RawKeySource::GetCryptoPeriodKey()'],['../d1/d1f/classshaka_1_1media_1_1KeySource.html#aef67793f02b0cd34b57993fab9f789ae',1,'shaka::media::KeySource::GetCryptoPeriodKey()'],['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#aab3666bda5a756ccdd1855cea088b4c6',1,'shaka::media::WidevineKeySource::GetCryptoPeriodKey()'],['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#ad155a38ccb7bd7cfa991580eb0e1bbd3',1,'shaka::media::PlayReadyKeySource::GetCryptoPeriodKey()']]], - ['getdecoderconfigurationrecord_1504',['GetDecoderConfigurationRecord',['../d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html#a6a7a73841ded1942364f88aad90dcbc9',1,'shaka::media::H264ByteToUnitStreamConverter::GetDecoderConfigurationRecord()'],['../de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html#a57f8a71d948f27303ba41dd5aafb5445',1,'shaka::media::H26xByteToUnitStreamConverter::GetDecoderConfigurationRecord()'],['../db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html#a9a866e255a2b267f2b44d0156c479de9',1,'shaka::media::H265ByteToUnitStreamConverter::GetDecoderConfigurationRecord()']]], - ['getdecryptconfig_1505',['GetDecryptConfig',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#af1dbb0a9037617c2b80506ee161dfcfa',1,'shaka::media::mp4::TrackRunIterator']]], - ['getdisplayresolution_1506',['GetDisplayResolution',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a6df3438b8ec8708041fbbd24e4c15878',1,'shaka::hls::MediaPlaylist']]], - ['getduration_1507',['GetDuration',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#a4a8e69eff130e3ce8817541958a8e4fe',1,'shaka::media::mp4::Segmenter']]], - ['getdurationinseconds_1508',['GetDurationInSeconds',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a81fbf25831d9a5311cab9f6c5184772d',1,'shaka::media::webm::Segmenter']]], - ['getec3joccomplexity_1509',['GetEC3JocComplexity',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a720a730c6fa78958b6da6da67c53c6df',1,'shaka::hls::MediaPlaylist']]], - ['getfilesize_1510',['GetFileSize',['../d3/d73/classshaka_1_1File.html#ac978d5c0585850d4d9948fdf39b33292',1,'shaka::File']]], - ['getframerate_1511',['GetFrameRate',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a559ff230a5b751fb04f7df20637976a0',1,'shaka::hls::MediaPlaylist']]], - ['getframesize_1512',['GetFrameSize',['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#af8acf05003d2c0dbd062a9f12a2140b3',1,'shaka::media::mp2t::AudioHeader::GetFrameSize()'],['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a8065975e78028683180cd3ae65925c37',1,'shaka::media::mp2t::Ac3Header::GetFrameSize()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a5729b3abb8dc68d52041854638fc36c8',1,'shaka::media::mp2t::Mpeg1Header::GetFrameSize()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#ae12d18e7fcbff02121886ca4b459340d',1,'shaka::media::mp2t::AdtsHeader::GetFrameSize()']]], - ['getframesizewithoutparsing_1513',['GetFrameSizeWithoutParsing',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a96b66d1749bfafc8a7326fa37f435cd5',1,'shaka::media::mp2t::Ac3Header::GetFrameSizeWithoutParsing()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a81caa6dafd34688f2ef5a4c9e076b5f5',1,'shaka::media::mp2t::Mpeg1Header::GetFrameSizeWithoutParsing()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#ab2cc02601e113e34b99023ae55c033d1',1,'shaka::media::mp2t::AudioHeader::GetFrameSizeWithoutParsing()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#aaa2a9fd0c9384b734c4c2395cceb05a6',1,'shaka::media::mp2t::AdtsHeader::GetFrameSizeWithoutParsing()']]], - ['getheadersize_1514',['GetHeaderSize',['../dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html#a3346c5afaf83a18cfcf688c36049d586',1,'shaka::media::VideoSliceHeaderParser::GetHeaderSize()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#ae0affa07b94967c15d964c6d8e765281',1,'shaka::media::mp2t::Mpeg1Header::GetHeaderSize()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a60fce7a6810efa2fc0f40a8038805116',1,'shaka::media::mp2t::AudioHeader::GetHeaderSize()'],['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a58d93e453c2fed3d500badb40a349eed',1,'shaka::media::mp2t::Ac3Header::GetHeaderSize()'],['../da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html#a5957ea62985810662158c02a163aac60',1,'shaka::media::H264VideoSliceHeaderParser::GetHeaderSize()'],['../d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html#a54459b6748f64be2bd328c5af79798f3',1,'shaka::media::H265VideoSliceHeaderParser::GetHeaderSize()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#aadfb99a9a34a9684040e9b9aa000a402',1,'shaka::media::mp2t::AdtsHeader::GetHeaderSize()']]], - ['gethint_1515',['GetHint',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#aef18f6547ff76cb8c6a5e14270950a59',1,'shaka::media::SyncPointQueue']]], - ['getindexrange_1516',['GetIndexRange',['../d0/dab/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html#a5877fd31ed73a048529385b36437364a',1,'shaka::media::mp4::SingleSegmentSegmenter::GetIndexRange()'],['../d8/db7/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html#acd917150490f8e5721fad28904422eca',1,'shaka::media::mp4::MultiSegmentSegmenter::GetIndexRange()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#a7ab68d898343b322dc32c08ad42e859c',1,'shaka::media::mp4::Segmenter::GetIndexRange()']]], - ['getindexrangestartandend_1517',['GetIndexRangeStartAndEnd',['../d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html#a1708739c73c4565d5dfda6bedffd89a8',1,'shaka::media::webm::SingleSegmentSegmenter::GetIndexRangeStartAndEnd()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a3a6c1932e6c4894a61eb7230022bceb5',1,'shaka::media::webm::Segmenter::GetIndexRangeStartAndEnd()'],['../d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html#a75b572a055a0de68bf2809f61b319526',1,'shaka::media::webm::MultiSegmentSegmenter::GetIndexRangeStartAndEnd()']]], - ['getinitrange_1518',['GetInitRange',['../d8/db7/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html#a15f78aada048b15472d485b80875e838',1,'shaka::media::mp4::MultiSegmentSegmenter::GetInitRange()'],['../d0/dab/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html#a61e71cfc720342ecb16b830e6fca0fe4',1,'shaka::media::mp4::SingleSegmentSegmenter::GetInitRange()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#a3a1c6721aa53a124af8be50bb3f7599c',1,'shaka::media::mp4::Segmenter::GetInitRange()']]], - ['getinitrangestartandend_1519',['GetInitRangeStartAndEnd',['../d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html#ae1395bcb6fb255b2695766c1e85b1aa3',1,'shaka::media::webm::SingleSegmentSegmenter::GetInitRangeStartAndEnd()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a611b919c82885b6bcfe39a1def78548c',1,'shaka::media::webm::Segmenter::GetInitRangeStartAndEnd()'],['../d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html#ae88bf7cfee4a1ad12c6060310b8f464e',1,'shaka::media::webm::MultiSegmentSegmenter::GetInitRangeStartAndEnd()']]], - ['getkey_1520',['GetKey',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#ae7fa01a2f2f91e26e45b54146c929580',1,'shaka::media::WidevineKeySource::GetKey(const std::string &stream_label, EncryptionKey *key) override'],['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#a59699cd998290adae74e6596ba44fdc3',1,'shaka::media::WidevineKeySource::GetKey(const std::vector< uint8_t > &key_id, EncryptionKey *key) override'],['../d1/d1f/classshaka_1_1media_1_1KeySource.html#af56c833453d65297c4dc96c9d2f83e1a',1,'shaka::media::KeySource::GetKey(const std::string &stream_label, EncryptionKey *key)=0'],['../d1/d1f/classshaka_1_1media_1_1KeySource.html#ae33f2cdbd045572095acd7b8d6c1a789',1,'shaka::media::KeySource::GetKey(const std::vector< uint8_t > &key_id, EncryptionKey *key)=0'],['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#a0d2e038e477a5a2bc903292977fc65bd',1,'shaka::media::PlayReadyKeySource::GetKey(const std::string &stream_label, EncryptionKey *key) override'],['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#a41c393f477ff4b723aa448b35e9ee896',1,'shaka::media::PlayReadyKeySource::GetKey(const std::vector< uint8_t > &key_id, EncryptionKey *key) override'],['../db/dd0/classshaka_1_1media_1_1RawKeySource.html#a29b20968ba46f1ad3c206b8173fa6f7a',1,'shaka::media::RawKeySource::GetKey(const std::string &stream_label, EncryptionKey *key) override'],['../db/dd0/classshaka_1_1media_1_1RawKeySource.html#aa5b34dcc690e695f64846a8293335967',1,'shaka::media::RawKeySource::GetKey(const std::vector< uint8_t > &key_id, EncryptionKey *key) override']]], - ['getlibraryversion_1521',['GetLibraryVersion',['../db/dd0/classshaka_1_1Packager.html#a7bae5b5c202a716f5d890e70afae51b2',1,'shaka::Packager']]], - ['getlongestsegmentduration_1522',['GetLongestSegmentDuration',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a6e848f7f91643ca6216b6618c4512124',1,'shaka::hls::MediaPlaylist']]], - ['getmaxclearoffset_1523',['GetMaxClearOffset',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#ae7a223474c46dd542e7390030893cca4',1,'shaka::media::mp4::TrackRunIterator']]], - ['getmediainfo_1524',['GetMediaInfo',['../de/d52/classshaka_1_1Representation.html#a524291f7a968cb040fdce0ac1db5fbd3',1,'shaka::Representation']]], - ['getminframesize_1525',['GetMinFrameSize',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a3c589cda189b06d9ca3b90a56db24829',1,'shaka::media::mp2t::Ac3Header::GetMinFrameSize()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#ad35ff50f5159e663103613901eccb7a9',1,'shaka::media::mp2t::AdtsHeader::GetMinFrameSize()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a95018a4488867e584338126922bf128a',1,'shaka::media::mp2t::AudioHeader::GetMinFrameSize()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a258a401815c7c6268da2717da829103d',1,'shaka::media::mp2t::Mpeg1Header::GetMinFrameSize()']]], - ['getnext_1526',['GetNext',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a49bdaa61608fe2229eaff4032dd804b1',1,'shaka::media::SyncPointQueue::GetNext()'],['../d8/dd6/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter.html#a63950483c11df9c44e3cb8d559f629d9',1,'shaka::media::mp2t::ContinuityCounter::GetNext()']]], - ['getnextpespacket_1527',['GetNextPesPacket',['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#acf11010f62ab9d2b46308f2cce8b3650',1,'shaka::media::mp2t::PesPacketGenerator']]], - ['getnumchannels_1528',['GetNumChannels',['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#a6093f6f4a01414cef59347be4c2df5c6',1,'shaka::media::mp2t::AdtsHeader::GetNumChannels()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a47b7cff7bfced3a5e5d02a848627a0c8',1,'shaka::media::mp2t::AudioHeader::GetNumChannels()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a97407fbb7c10535233b6005cf06d3c95',1,'shaka::media::mp2t::Mpeg1Header::GetNumChannels()'],['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a98b813343f29341e612fff2964cd0bb2',1,'shaka::hls::MediaPlaylist::GetNumChannels()'],['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a92165f6d17f688cbf39693686b2c0feb',1,'shaka::media::AACAudioSpecificConfig::GetNumChannels()'],['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#abab9685652b78baf25b7399477401bd7',1,'shaka::media::mp2t::Ac3Header::GetNumChannels() const override']]], - ['getobjecttype_1529',['GetObjectType',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a56de14f98afd205f03bda6b110835aae',1,'shaka::media::mp2t::Ac3Header::GetObjectType()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#ad8d15d73650add3af331f847719efab6',1,'shaka::media::mp2t::AdtsHeader::GetObjectType()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a9959124b369045fce424f845c50b9c02',1,'shaka::media::mp2t::AudioHeader::GetObjectType()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a9415d54734d3e6ca017455239504e4fe',1,'shaka::media::mp2t::Mpeg1Header::GetObjectType()']]], - ['getorcreateadaptationset_1530',['GetOrCreateAdaptationSet',['../d8/de1/classshaka_1_1Period.html#a6481aa2a87b0154796f49cb6198d0deb',1,'shaka::Period']]], - ['getorcreateperiod_1531',['GetOrCreatePeriod',['../dc/da1/classshaka_1_1MpdBuilder.html#ae03eb3ac55f8b1360a57a1af16f593e6',1,'shaka::MpdBuilder']]], - ['getoutputstreamdatavector_1532',['GetOutputStreamDataVector',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html#a23d9219606019b25119b2b56adba422e',1,'shaka::media::MediaHandlerGraphTestBase']]], - ['getpixels_1533',['GetPixels',['../d9/d28/classshaka_1_1media_1_1DvbImageBuilder.html#a4e952ceca8ca59c293936039df49c1ef',1,'shaka::media::DvbImageBuilder']]], - ['getpps_1534',['GetPps',['../de/dc2/classshaka_1_1media_1_1H265Parser.html#af4a103a131c849bf54018b747dbdd80c',1,'shaka::media::H265Parser']]], - ['getsamplesperframe_1535',['GetSamplesPerFrame',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#ac5d9c726fd88989e36e490d2aeb1011f',1,'shaka::media::mp2t::Ac3Header::GetSamplesPerFrame()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#a606154feab4b731e1d51a56d21cb23e8',1,'shaka::media::mp2t::AdtsHeader::GetSamplesPerFrame()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#abe0df0b59f89036c9c39a2070875a6a7',1,'shaka::media::mp2t::AudioHeader::GetSamplesPerFrame()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#ab0290813a0e04d3a84f85598455f261d',1,'shaka::media::mp2t::Mpeg1Header::GetSamplesPerFrame()']]], - ['getsamplespersecond_1536',['GetSamplesPerSecond',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a784e2b9e2371c8757c9a5cae62935c68',1,'shaka::media::AACAudioSpecificConfig']]], - ['getsamplingfrequency_1537',['GetSamplingFrequency',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#aa238ec0832e097f2f5791e915bf30127',1,'shaka::media::mp2t::Ac3Header::GetSamplingFrequency()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#af4b6c9af726bf95d296e478d350055f0',1,'shaka::media::mp2t::AdtsHeader::GetSamplingFrequency()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#aeb3121ddde96b3e6ca456586c8efdd8c',1,'shaka::media::mp2t::AudioHeader::GetSamplingFrequency()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#ab6ceb2d6d3f820f56f2ecbdb93e9f81a',1,'shaka::media::mp2t::Mpeg1Header::GetSamplingFrequency()']]], - ['getsps_1538',['GetSps',['../de/dc2/classshaka_1_1media_1_1H265Parser.html#ab917855df00b9003c6be4612e2fe0211',1,'shaka::media::H265Parser']]], - ['getstartandendtimestamps_1539',['GetStartAndEndTimestamps',['../de/d52/classshaka_1_1Representation.html#a94fcb546e555637d33286515c1a44545',1,'shaka::Representation']]], - ['gettotalsizeofsubsamples_1540',['GetTotalSizeOfSubsamples',['../de/d49/classshaka_1_1media_1_1DecryptConfig.html#af01188eb9ea205e60f992f32fe2f4a11',1,'shaka::media::DecryptConfig::GetTotalSizeOfSubsamples()'],['../d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html#ad578c23c523988d21391ac61b88bcb5c',1,'shaka::media::mp4::SampleEncryptionEntry::GetTotalSizeOfSubsamples()']]], - ['getvideorange_1541',['GetVideoRange',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#aa947ee84df71b2d46120953c32542fed',1,'shaka::hls::MediaPlaylist']]], - ['getvideostreaminfo_1542',['GetVideoStreamInfo',['../d3/d67/classshaka_1_1media_1_1WebMVideoClient.html#ae71e739feadfb8e9207b8ceb9689ca66',1,'shaka::media::WebMVideoClient']]], - ['getvpcodecconfig_1543',['GetVpCodecConfig',['../d3/d67/classshaka_1_1media_1_1WebMVideoClient.html#aea98a1f803ed3d710a5d39fae089c5ea',1,'shaka::media::WebMVideoClient']]], - ['getxml_1544',['GetXml',['../d8/d8e/classshaka_1_1AdaptationSet.html#a254a429c1ba021a021cf06e8b64451f3',1,'shaka::AdaptationSet::GetXml()'],['../d8/de1/classshaka_1_1Period.html#aabd4c14420c37f958523b84505a5dea1',1,'shaka::Period::GetXml()'],['../de/d52/classshaka_1_1Representation.html#ab4008b130a91b83198e769d15b3dfac3',1,'shaka::Representation::GetXml()']]] + ['generatepsshfromkeyidandkey_1487',['GeneratePsshFromKeyIdAndKey',['../d8/dbf/classshaka_1_1media_1_1PsshGenerator.html#af3b145050b28bca84380c4179b4ab8ff',1,'shaka::media::PsshGenerator']]], + ['generatepsshfromkeyids_1488',['GeneratePsshFromKeyIds',['../d8/dbf/classshaka_1_1media_1_1PsshGenerator.html#a0916d098396ad0bd04c3a5ee37c87e38',1,'shaka::media::PsshGenerator']]], + ['generaterandomiv_1489',['GenerateRandomIv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a40d9a82d274d6fbaee5346328f11dedd',1,'shaka::media::AesCryptor']]], + ['generatesegmentreference_1490',['GenerateSegmentReference',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#abbce724853d98b2ae1f92b504a24ce54',1,'shaka::media::mp4::Fragmenter']]], + ['generatesignature_1491',['GenerateSignature',['../df/d3c/classshaka_1_1media_1_1RequestSigner.html#a1c77d503f9ffc3462c1bf45b4f35bf32',1,'shaka::media::RequestSigner::GenerateSignature()'],['../d9/d8c/classshaka_1_1media_1_1AesRequestSigner.html#a3010ad8c4c1588358a8d31a97afd6428',1,'shaka::media::AesRequestSigner::GenerateSignature()'],['../d7/ddd/classshaka_1_1media_1_1RsaRequestSigner.html#ac83306b0555581b8ac9591b6e3d3bdbc',1,'shaka::media::RsaRequestSigner::GenerateSignature()'],['../d0/dce/classshaka_1_1media_1_1RsaPrivateKey.html#ad05d8951dfe3a8af754490022e95e5f2',1,'shaka::media::RsaPrivateKey::GenerateSignature()']]], + ['generatesubsamples_1492',['GenerateSubsamples',['../d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html#a8d4d840fd11c1c89b8ed03cdf076c64e',1,'shaka::media::SubsampleGenerator']]], + ['get_1493',['Get',['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#a6b5b2c193d6055ca49d2d6af2b2ac4cc',1,'shaka::media::HttpKeyFetcher']]], + ['getac4cbiflag_1494',['GetAC4CbiFlag',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#ae8ca25b851b5df70830ed0c76168392b',1,'shaka::hls::MediaPlaylist']]], + ['getac4imsflag_1495',['GetAC4ImsFlag',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a26d93a17b322f88c9a10f8ee6bb8ba51',1,'shaka::hls::MediaPlaylist']]], + ['getadaptationsets_1496',['GetAdaptationSets',['../d8/de1/classshaka_1_1Period.html#aee153103e77326b21f7f7c92af608654',1,'shaka::Period']]], + ['getattribute_1497',['GetAttribute',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#ab3bcc7c628fb40f44205a9b2cc732097',1,'shaka::xml::XmlNode']]], + ['getaudiodefaultduration_1498',['GetAudioDefaultDuration',['../d8/d86/classshaka_1_1media_1_1WebMTracksParser.html#a705e3db731b14aa692abad4e2c7ad4c8',1,'shaka::media::WebMTracksParser']]], + ['getaudioobjecttype_1499',['GetAudioObjectType',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#ae7936da4be5297ea78e0cbbb0f167941',1,'shaka::media::AACAudioSpecificConfig']]], + ['getaudiospecificconfig_1500',['GetAudioSpecificConfig',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a9a3da0ed02d1790ec176a75bbbdef146',1,'shaka::media::mp2t::Ac3Header::GetAudioSpecificConfig()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#a97a2aae441248e718e056ac3559ecfd9',1,'shaka::media::mp2t::AdtsHeader::GetAudioSpecificConfig()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a80da92426102c52da09690a7587d4272',1,'shaka::media::mp2t::AudioHeader::GetAudioSpecificConfig()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a6cb1a3e117dbca962b4b970885d79808',1,'shaka::media::mp2t::Mpeg1Header::GetAudioSpecificConfig()']]], + ['getaudiostreaminfo_1501',['GetAudioStreamInfo',['../d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html#a0fcbddd20199044f860331b3bd9ef3b8',1,'shaka::media::WebMAudioClient']]], + ['getcodecstring_1502',['GetCodecString',['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html#aee79e7aa61b741bb96f451c6de1c9d42',1,'shaka::media::AudioStreamInfo::GetCodecString()'],['../d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html#a113485810b305690a44cafa3ca3c1c9f',1,'shaka::media::AV1CodecConfigurationRecord::GetCodecString()'],['../d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html#a181ff17209bad998dfed5bc953165e42',1,'shaka::media::AVCDecoderConfigurationRecord::GetCodecString(FourCC codec_fourcc) const'],['../d6/d57/classshaka_1_1media_1_1AVCDecoderConfigurationRecord.html#a30a6df8df89c670fd4c8894b8bacffa9',1,'shaka::media::AVCDecoderConfigurationRecord::GetCodecString(FourCC codec_fourcc, uint8_t profile_indication, uint8_t profile_compatibility, uint8_t avc_level)'],['../da/dbb/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord.html#ae41c9cfd23df72ce990467cabb079754',1,'shaka::media::DOVIDecoderConfigurationRecord::GetCodecString()'],['../d4/d8a/classshaka_1_1media_1_1HEVCDecoderConfigurationRecord.html#ac05f90cecec3c6bf379d2bcfe13172db',1,'shaka::media::HEVCDecoderConfigurationRecord::GetCodecString()'],['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a44e4733d99e48fdc669eaca606ea259f',1,'shaka::media::VPCodecConfigurationRecord::GetCodecString()']]], + ['getcontenttype_1503',['GetContentType',['../d8/daf/namespaceshaka.html#a5ea880937da26d677ff6a48c0219d090',1,'shaka']]], + ['getcryptoperiodkey_1504',['GetCryptoPeriodKey',['../db/dd0/classshaka_1_1media_1_1RawKeySource.html#a7518bb799554beefebda75eb76aafbd5',1,'shaka::media::RawKeySource::GetCryptoPeriodKey()'],['../d1/d1f/classshaka_1_1media_1_1KeySource.html#aef67793f02b0cd34b57993fab9f789ae',1,'shaka::media::KeySource::GetCryptoPeriodKey()'],['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#aab3666bda5a756ccdd1855cea088b4c6',1,'shaka::media::WidevineKeySource::GetCryptoPeriodKey()'],['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#ad155a38ccb7bd7cfa991580eb0e1bbd3',1,'shaka::media::PlayReadyKeySource::GetCryptoPeriodKey()']]], + ['getdecoderconfigurationrecord_1505',['GetDecoderConfigurationRecord',['../d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html#a6a7a73841ded1942364f88aad90dcbc9',1,'shaka::media::H264ByteToUnitStreamConverter::GetDecoderConfigurationRecord()'],['../de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html#a57f8a71d948f27303ba41dd5aafb5445',1,'shaka::media::H26xByteToUnitStreamConverter::GetDecoderConfigurationRecord()'],['../db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html#a9a866e255a2b267f2b44d0156c479de9',1,'shaka::media::H265ByteToUnitStreamConverter::GetDecoderConfigurationRecord()']]], + ['getdecryptconfig_1506',['GetDecryptConfig',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#af1dbb0a9037617c2b80506ee161dfcfa',1,'shaka::media::mp4::TrackRunIterator']]], + ['getdisplayresolution_1507',['GetDisplayResolution',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a6df3438b8ec8708041fbbd24e4c15878',1,'shaka::hls::MediaPlaylist']]], + ['getduration_1508',['GetDuration',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#a4a8e69eff130e3ce8817541958a8e4fe',1,'shaka::media::mp4::Segmenter']]], + ['getdurationinseconds_1509',['GetDurationInSeconds',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a81fbf25831d9a5311cab9f6c5184772d',1,'shaka::media::webm::Segmenter']]], + ['getec3joccomplexity_1510',['GetEC3JocComplexity',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a720a730c6fa78958b6da6da67c53c6df',1,'shaka::hls::MediaPlaylist']]], + ['getfilesize_1511',['GetFileSize',['../d3/d73/classshaka_1_1File.html#ac978d5c0585850d4d9948fdf39b33292',1,'shaka::File']]], + ['getframerate_1512',['GetFrameRate',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a559ff230a5b751fb04f7df20637976a0',1,'shaka::hls::MediaPlaylist']]], + ['getframesize_1513',['GetFrameSize',['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#af8acf05003d2c0dbd062a9f12a2140b3',1,'shaka::media::mp2t::AudioHeader::GetFrameSize()'],['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a8065975e78028683180cd3ae65925c37',1,'shaka::media::mp2t::Ac3Header::GetFrameSize()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a5729b3abb8dc68d52041854638fc36c8',1,'shaka::media::mp2t::Mpeg1Header::GetFrameSize()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#ae12d18e7fcbff02121886ca4b459340d',1,'shaka::media::mp2t::AdtsHeader::GetFrameSize()']]], + ['getframesizewithoutparsing_1514',['GetFrameSizeWithoutParsing',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a96b66d1749bfafc8a7326fa37f435cd5',1,'shaka::media::mp2t::Ac3Header::GetFrameSizeWithoutParsing()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a81caa6dafd34688f2ef5a4c9e076b5f5',1,'shaka::media::mp2t::Mpeg1Header::GetFrameSizeWithoutParsing()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#ab2cc02601e113e34b99023ae55c033d1',1,'shaka::media::mp2t::AudioHeader::GetFrameSizeWithoutParsing()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#aaa2a9fd0c9384b734c4c2395cceb05a6',1,'shaka::media::mp2t::AdtsHeader::GetFrameSizeWithoutParsing()']]], + ['getheadersize_1515',['GetHeaderSize',['../dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html#a3346c5afaf83a18cfcf688c36049d586',1,'shaka::media::VideoSliceHeaderParser::GetHeaderSize()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#ae0affa07b94967c15d964c6d8e765281',1,'shaka::media::mp2t::Mpeg1Header::GetHeaderSize()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a60fce7a6810efa2fc0f40a8038805116',1,'shaka::media::mp2t::AudioHeader::GetHeaderSize()'],['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a58d93e453c2fed3d500badb40a349eed',1,'shaka::media::mp2t::Ac3Header::GetHeaderSize()'],['../da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html#a5957ea62985810662158c02a163aac60',1,'shaka::media::H264VideoSliceHeaderParser::GetHeaderSize()'],['../d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html#a54459b6748f64be2bd328c5af79798f3',1,'shaka::media::H265VideoSliceHeaderParser::GetHeaderSize()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#aadfb99a9a34a9684040e9b9aa000a402',1,'shaka::media::mp2t::AdtsHeader::GetHeaderSize()']]], + ['gethint_1516',['GetHint',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#aef18f6547ff76cb8c6a5e14270950a59',1,'shaka::media::SyncPointQueue']]], + ['getindexrange_1517',['GetIndexRange',['../d0/dab/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html#a5877fd31ed73a048529385b36437364a',1,'shaka::media::mp4::SingleSegmentSegmenter::GetIndexRange()'],['../d8/db7/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html#acd917150490f8e5721fad28904422eca',1,'shaka::media::mp4::MultiSegmentSegmenter::GetIndexRange()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#a7ab68d898343b322dc32c08ad42e859c',1,'shaka::media::mp4::Segmenter::GetIndexRange()']]], + ['getindexrangestartandend_1518',['GetIndexRangeStartAndEnd',['../d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html#a1708739c73c4565d5dfda6bedffd89a8',1,'shaka::media::webm::SingleSegmentSegmenter::GetIndexRangeStartAndEnd()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a3a6c1932e6c4894a61eb7230022bceb5',1,'shaka::media::webm::Segmenter::GetIndexRangeStartAndEnd()'],['../d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html#a75b572a055a0de68bf2809f61b319526',1,'shaka::media::webm::MultiSegmentSegmenter::GetIndexRangeStartAndEnd()']]], + ['getinitrange_1519',['GetInitRange',['../d8/db7/classshaka_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html#a15f78aada048b15472d485b80875e838',1,'shaka::media::mp4::MultiSegmentSegmenter::GetInitRange()'],['../d0/dab/classshaka_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html#a61e71cfc720342ecb16b830e6fca0fe4',1,'shaka::media::mp4::SingleSegmentSegmenter::GetInitRange()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#a3a1c6721aa53a124af8be50bb3f7599c',1,'shaka::media::mp4::Segmenter::GetInitRange()']]], + ['getinitrangestartandend_1520',['GetInitRangeStartAndEnd',['../d3/da1/classshaka_1_1media_1_1webm_1_1SingleSegmentSegmenter.html#ae1395bcb6fb255b2695766c1e85b1aa3',1,'shaka::media::webm::SingleSegmentSegmenter::GetInitRangeStartAndEnd()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a611b919c82885b6bcfe39a1def78548c',1,'shaka::media::webm::Segmenter::GetInitRangeStartAndEnd()'],['../d2/dd5/classshaka_1_1media_1_1webm_1_1MultiSegmentSegmenter.html#ae88bf7cfee4a1ad12c6060310b8f464e',1,'shaka::media::webm::MultiSegmentSegmenter::GetInitRangeStartAndEnd()']]], + ['getkey_1521',['GetKey',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#ae7fa01a2f2f91e26e45b54146c929580',1,'shaka::media::WidevineKeySource::GetKey(const std::string &stream_label, EncryptionKey *key) override'],['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#a59699cd998290adae74e6596ba44fdc3',1,'shaka::media::WidevineKeySource::GetKey(const std::vector< uint8_t > &key_id, EncryptionKey *key) override'],['../d1/d1f/classshaka_1_1media_1_1KeySource.html#af56c833453d65297c4dc96c9d2f83e1a',1,'shaka::media::KeySource::GetKey(const std::string &stream_label, EncryptionKey *key)=0'],['../d1/d1f/classshaka_1_1media_1_1KeySource.html#ae33f2cdbd045572095acd7b8d6c1a789',1,'shaka::media::KeySource::GetKey(const std::vector< uint8_t > &key_id, EncryptionKey *key)=0'],['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#a0d2e038e477a5a2bc903292977fc65bd',1,'shaka::media::PlayReadyKeySource::GetKey(const std::string &stream_label, EncryptionKey *key) override'],['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#a41c393f477ff4b723aa448b35e9ee896',1,'shaka::media::PlayReadyKeySource::GetKey(const std::vector< uint8_t > &key_id, EncryptionKey *key) override'],['../db/dd0/classshaka_1_1media_1_1RawKeySource.html#a29b20968ba46f1ad3c206b8173fa6f7a',1,'shaka::media::RawKeySource::GetKey(const std::string &stream_label, EncryptionKey *key) override'],['../db/dd0/classshaka_1_1media_1_1RawKeySource.html#aa5b34dcc690e695f64846a8293335967',1,'shaka::media::RawKeySource::GetKey(const std::vector< uint8_t > &key_id, EncryptionKey *key) override']]], + ['getlibraryversion_1522',['GetLibraryVersion',['../db/dd0/classshaka_1_1Packager.html#a7bae5b5c202a716f5d890e70afae51b2',1,'shaka::Packager']]], + ['getlongestsegmentduration_1523',['GetLongestSegmentDuration',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a6e848f7f91643ca6216b6618c4512124',1,'shaka::hls::MediaPlaylist']]], + ['getmaxclearoffset_1524',['GetMaxClearOffset',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#ae7a223474c46dd542e7390030893cca4',1,'shaka::media::mp4::TrackRunIterator']]], + ['getmediainfo_1525',['GetMediaInfo',['../de/d52/classshaka_1_1Representation.html#a524291f7a968cb040fdce0ac1db5fbd3',1,'shaka::Representation']]], + ['getminframesize_1526',['GetMinFrameSize',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a3c589cda189b06d9ca3b90a56db24829',1,'shaka::media::mp2t::Ac3Header::GetMinFrameSize()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#ad35ff50f5159e663103613901eccb7a9',1,'shaka::media::mp2t::AdtsHeader::GetMinFrameSize()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a95018a4488867e584338126922bf128a',1,'shaka::media::mp2t::AudioHeader::GetMinFrameSize()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a258a401815c7c6268da2717da829103d',1,'shaka::media::mp2t::Mpeg1Header::GetMinFrameSize()']]], + ['getnext_1527',['GetNext',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a49bdaa61608fe2229eaff4032dd804b1',1,'shaka::media::SyncPointQueue::GetNext()'],['../d8/dd6/classshaka_1_1media_1_1mp2t_1_1ContinuityCounter.html#a63950483c11df9c44e3cb8d559f629d9',1,'shaka::media::mp2t::ContinuityCounter::GetNext()']]], + ['getnextpespacket_1528',['GetNextPesPacket',['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#acf11010f62ab9d2b46308f2cce8b3650',1,'shaka::media::mp2t::PesPacketGenerator']]], + ['getnumchannels_1529',['GetNumChannels',['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#a6093f6f4a01414cef59347be4c2df5c6',1,'shaka::media::mp2t::AdtsHeader::GetNumChannels()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a47b7cff7bfced3a5e5d02a848627a0c8',1,'shaka::media::mp2t::AudioHeader::GetNumChannels()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a97407fbb7c10535233b6005cf06d3c95',1,'shaka::media::mp2t::Mpeg1Header::GetNumChannels()'],['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a98b813343f29341e612fff2964cd0bb2',1,'shaka::hls::MediaPlaylist::GetNumChannels()'],['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a92165f6d17f688cbf39693686b2c0feb',1,'shaka::media::AACAudioSpecificConfig::GetNumChannels()'],['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#abab9685652b78baf25b7399477401bd7',1,'shaka::media::mp2t::Ac3Header::GetNumChannels() const override']]], + ['getobjecttype_1530',['GetObjectType',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a56de14f98afd205f03bda6b110835aae',1,'shaka::media::mp2t::Ac3Header::GetObjectType()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#ad8d15d73650add3af331f847719efab6',1,'shaka::media::mp2t::AdtsHeader::GetObjectType()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a9959124b369045fce424f845c50b9c02',1,'shaka::media::mp2t::AudioHeader::GetObjectType()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a9415d54734d3e6ca017455239504e4fe',1,'shaka::media::mp2t::Mpeg1Header::GetObjectType()']]], + ['getorcreateadaptationset_1531',['GetOrCreateAdaptationSet',['../d8/de1/classshaka_1_1Period.html#a6481aa2a87b0154796f49cb6198d0deb',1,'shaka::Period']]], + ['getorcreateperiod_1532',['GetOrCreatePeriod',['../dc/da1/classshaka_1_1MpdBuilder.html#ae03eb3ac55f8b1360a57a1af16f593e6',1,'shaka::MpdBuilder']]], + ['getoutputstreamdatavector_1533',['GetOutputStreamDataVector',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html#a23d9219606019b25119b2b56adba422e',1,'shaka::media::MediaHandlerGraphTestBase']]], + ['getpixels_1534',['GetPixels',['../d9/d28/classshaka_1_1media_1_1DvbImageBuilder.html#a4e952ceca8ca59c293936039df49c1ef',1,'shaka::media::DvbImageBuilder']]], + ['getpps_1535',['GetPps',['../de/dc2/classshaka_1_1media_1_1H265Parser.html#af4a103a131c849bf54018b747dbdd80c',1,'shaka::media::H265Parser']]], + ['getsamplesperframe_1536',['GetSamplesPerFrame',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#ac5d9c726fd88989e36e490d2aeb1011f',1,'shaka::media::mp2t::Ac3Header::GetSamplesPerFrame()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#a606154feab4b731e1d51a56d21cb23e8',1,'shaka::media::mp2t::AdtsHeader::GetSamplesPerFrame()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#abe0df0b59f89036c9c39a2070875a6a7',1,'shaka::media::mp2t::AudioHeader::GetSamplesPerFrame()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#ab0290813a0e04d3a84f85598455f261d',1,'shaka::media::mp2t::Mpeg1Header::GetSamplesPerFrame()']]], + ['getsamplespersecond_1537',['GetSamplesPerSecond',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a784e2b9e2371c8757c9a5cae62935c68',1,'shaka::media::AACAudioSpecificConfig']]], + ['getsamplingfrequency_1538',['GetSamplingFrequency',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#aa238ec0832e097f2f5791e915bf30127',1,'shaka::media::mp2t::Ac3Header::GetSamplingFrequency()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#af4b6c9af726bf95d296e478d350055f0',1,'shaka::media::mp2t::AdtsHeader::GetSamplingFrequency()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#aeb3121ddde96b3e6ca456586c8efdd8c',1,'shaka::media::mp2t::AudioHeader::GetSamplingFrequency()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#ab6ceb2d6d3f820f56f2ecbdb93e9f81a',1,'shaka::media::mp2t::Mpeg1Header::GetSamplingFrequency()']]], + ['getsps_1539',['GetSps',['../de/dc2/classshaka_1_1media_1_1H265Parser.html#ab917855df00b9003c6be4612e2fe0211',1,'shaka::media::H265Parser']]], + ['getstartandendtimestamps_1540',['GetStartAndEndTimestamps',['../de/d52/classshaka_1_1Representation.html#a94fcb546e555637d33286515c1a44545',1,'shaka::Representation']]], + ['gettotalsizeofsubsamples_1541',['GetTotalSizeOfSubsamples',['../de/d49/classshaka_1_1media_1_1DecryptConfig.html#af01188eb9ea205e60f992f32fe2f4a11',1,'shaka::media::DecryptConfig::GetTotalSizeOfSubsamples()'],['../d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html#ad578c23c523988d21391ac61b88bcb5c',1,'shaka::media::mp4::SampleEncryptionEntry::GetTotalSizeOfSubsamples()']]], + ['getvideorange_1542',['GetVideoRange',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#aa947ee84df71b2d46120953c32542fed',1,'shaka::hls::MediaPlaylist']]], + ['getvideostreaminfo_1543',['GetVideoStreamInfo',['../d3/d67/classshaka_1_1media_1_1WebMVideoClient.html#ae71e739feadfb8e9207b8ceb9689ca66',1,'shaka::media::WebMVideoClient']]], + ['getvpcodecconfig_1544',['GetVpCodecConfig',['../d3/d67/classshaka_1_1media_1_1WebMVideoClient.html#aea98a1f803ed3d710a5d39fae089c5ea',1,'shaka::media::WebMVideoClient']]], + ['getxml_1545',['GetXml',['../d8/d8e/classshaka_1_1AdaptationSet.html#a254a429c1ba021a021cf06e8b64451f3',1,'shaka::AdaptationSet::GetXml()'],['../d8/de1/classshaka_1_1Period.html#aabd4c14420c37f958523b84505a5dea1',1,'shaka::Period::GetXml()'],['../de/d52/classshaka_1_1Representation.html#ab4008b130a91b83198e769d15b3dfac3',1,'shaka::Representation::GetXml()']]] ]; diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js index 20d8cc70d6..141da4964f 100644 --- a/docs/search/functions_7.js +++ b/docs/search/functions_7.js @@ -1,19 +1,19 @@ var searchData= [ - ['h264bytetounitstreamconverter_1545',['H264ByteToUnitStreamConverter',['../d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html#a53e3cd94807541ce82739715c5a50ae0',1,'shaka::media::H264ByteToUnitStreamConverter::H264ByteToUnitStreamConverter(H26xStreamFormat stream_format)'],['../d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html#a46b95534c0bcae5985dc10806fab9a07',1,'shaka::media::H264ByteToUnitStreamConverter::H264ByteToUnitStreamConverter()']]], - ['h265bytetounitstreamconverter_1546',['H265ByteToUnitStreamConverter',['../db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html#a2ec8824525ceca4e1320e1c11a5be24b',1,'shaka::media::H265ByteToUnitStreamConverter::H265ByteToUnitStreamConverter()'],['../db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html#a49f20c495bb0bff62214ba4f25620d19',1,'shaka::media::H265ByteToUnitStreamConverter::H265ByteToUnitStreamConverter(H26xStreamFormat stream_format)']]], - ['h26xbytetounitstreamconverter_1547',['H26xByteToUnitStreamConverter',['../de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html#ac57b1509f83fa8a3e508fee61bb2eaf7',1,'shaka::media::H26xByteToUnitStreamConverter::H26xByteToUnitStreamConverter(Nalu::CodecType type)'],['../de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html#a43fd12a6ac3c9749e2cf0c29b2262cd1',1,'shaka::media::H26xByteToUnitStreamConverter::H26xByteToUnitStreamConverter(Nalu::CodecType type, H26xStreamFormat stream_format)']]], - ['has_5fdts_1548',['has_dts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#af6a978c909d7cbc22d12193597f239a3',1,'shaka::media::mp2t::PesPacket']]], - ['has_5fid_1549',['has_id',['../d8/d8e/classshaka_1_1AdaptationSet.html#a4c4f483919b62a28c3a9061b3384f68b',1,'shaka::AdaptationSet']]], - ['has_5fpts_1550',['has_pts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a0dece95da54cbce150162a35a80b13a7',1,'shaka::media::mp2t::PesPacket']]], - ['hasbytes_1551',['HasBytes',['../d9/d13/classshaka_1_1media_1_1BufferReader.html#a208f2fda9ea3e79583284c951642c356',1,'shaka::media::BufferReader']]], - ['hasmore_1552',['HasMore',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a5d27bfb8e8c3209222352f721f9b5236',1,'shaka::media::SyncPointQueue']]], - ['head_1553',['head',['../d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html#a1dfd11c891dd3b3171002cbc484eacdd',1,'shaka::media::OffsetByteQueue']]], - ['header_5fsize_1554',['header_size',['../d6/dff/classshaka_1_1media_1_1Nalu.html#a835d8f01a8ab94887ee3dce3b5d3721e',1,'shaka::media::Nalu']]], - ['headersize_1555',['HeaderSize',['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a07928a0497473150999ceaee018edaa2',1,'shaka::media::mp4::Box::HeaderSize()'],['../dd/dc1/structshaka_1_1media_1_1mp4_1_1FullBox.html#a21cc4d085f650dc18a20a4dd05cb6750',1,'shaka::media::mp4::FullBox::HeaderSize()']]], - ['headpos_1556',['HeadPos',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a3ad0ff1e27d529820e27656581a8542b',1,'shaka::media::ProducerConsumerQueue']]], - ['hextouuid_1557',['HexToUUID',['../d8/daf/namespaceshaka.html#a4c2ea2c3e7055657ca68a6b8e285d4d6',1,'shaka']]], - ['hls_5fparams_1558',['hls_params',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a56af7fda2e9c5e1d376ba8a73ecb188c',1,'shaka::hls::HlsNotifier']]], - ['hlsnotifymuxerlistener_1559',['HlsNotifyMuxerListener',['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#adf85beae98cc27683b4628a5545840e9',1,'shaka::media::HlsNotifyMuxerListener']]], - ['httpkeyfetcher_1560',['HttpKeyFetcher',['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#a02561dcbbaf66152dce3ebd466810f15',1,'shaka::media::HttpKeyFetcher::HttpKeyFetcher()'],['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#a11829a5c6e3507998c4d93c83c3069a4',1,'shaka::media::HttpKeyFetcher::HttpKeyFetcher(uint32_t timeout_in_seconds)']]] + ['h264bytetounitstreamconverter_1546',['H264ByteToUnitStreamConverter',['../d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html#a53e3cd94807541ce82739715c5a50ae0',1,'shaka::media::H264ByteToUnitStreamConverter::H264ByteToUnitStreamConverter(H26xStreamFormat stream_format)'],['../d8/d08/classshaka_1_1media_1_1H264ByteToUnitStreamConverter.html#a46b95534c0bcae5985dc10806fab9a07',1,'shaka::media::H264ByteToUnitStreamConverter::H264ByteToUnitStreamConverter()']]], + ['h265bytetounitstreamconverter_1547',['H265ByteToUnitStreamConverter',['../db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html#a2ec8824525ceca4e1320e1c11a5be24b',1,'shaka::media::H265ByteToUnitStreamConverter::H265ByteToUnitStreamConverter()'],['../db/df8/classshaka_1_1media_1_1H265ByteToUnitStreamConverter.html#a49f20c495bb0bff62214ba4f25620d19',1,'shaka::media::H265ByteToUnitStreamConverter::H265ByteToUnitStreamConverter(H26xStreamFormat stream_format)']]], + ['h26xbytetounitstreamconverter_1548',['H26xByteToUnitStreamConverter',['../de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html#ac57b1509f83fa8a3e508fee61bb2eaf7',1,'shaka::media::H26xByteToUnitStreamConverter::H26xByteToUnitStreamConverter(Nalu::CodecType type)'],['../de/dea/classshaka_1_1media_1_1H26xByteToUnitStreamConverter.html#a43fd12a6ac3c9749e2cf0c29b2262cd1',1,'shaka::media::H26xByteToUnitStreamConverter::H26xByteToUnitStreamConverter(Nalu::CodecType type, H26xStreamFormat stream_format)']]], + ['has_5fdts_1549',['has_dts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#af6a978c909d7cbc22d12193597f239a3',1,'shaka::media::mp2t::PesPacket']]], + ['has_5fid_1550',['has_id',['../d8/d8e/classshaka_1_1AdaptationSet.html#a4c4f483919b62a28c3a9061b3384f68b',1,'shaka::AdaptationSet']]], + ['has_5fpts_1551',['has_pts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a0dece95da54cbce150162a35a80b13a7',1,'shaka::media::mp2t::PesPacket']]], + ['hasbytes_1552',['HasBytes',['../d9/d13/classshaka_1_1media_1_1BufferReader.html#a208f2fda9ea3e79583284c951642c356',1,'shaka::media::BufferReader']]], + ['hasmore_1553',['HasMore',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a5d27bfb8e8c3209222352f721f9b5236',1,'shaka::media::SyncPointQueue']]], + ['head_1554',['head',['../d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html#a1dfd11c891dd3b3171002cbc484eacdd',1,'shaka::media::OffsetByteQueue']]], + ['header_5fsize_1555',['header_size',['../d6/dff/classshaka_1_1media_1_1Nalu.html#a835d8f01a8ab94887ee3dce3b5d3721e',1,'shaka::media::Nalu']]], + ['headersize_1556',['HeaderSize',['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a07928a0497473150999ceaee018edaa2',1,'shaka::media::mp4::Box::HeaderSize()'],['../dd/dc1/structshaka_1_1media_1_1mp4_1_1FullBox.html#a21cc4d085f650dc18a20a4dd05cb6750',1,'shaka::media::mp4::FullBox::HeaderSize()']]], + ['headpos_1557',['HeadPos',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a3ad0ff1e27d529820e27656581a8542b',1,'shaka::media::ProducerConsumerQueue']]], + ['hextouuid_1558',['HexToUUID',['../d8/daf/namespaceshaka.html#a4c2ea2c3e7055657ca68a6b8e285d4d6',1,'shaka']]], + ['hls_5fparams_1559',['hls_params',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a56af7fda2e9c5e1d376ba8a73ecb188c',1,'shaka::hls::HlsNotifier']]], + ['hlsnotifymuxerlistener_1560',['HlsNotifyMuxerListener',['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#adf85beae98cc27683b4628a5545840e9',1,'shaka::media::HlsNotifyMuxerListener']]], + ['httpkeyfetcher_1561',['HttpKeyFetcher',['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#a02561dcbbaf66152dce3ebd466810f15',1,'shaka::media::HttpKeyFetcher::HttpKeyFetcher()'],['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#a11829a5c6e3507998c4d93c83c3069a4',1,'shaka::media::HttpKeyFetcher::HttpKeyFetcher(uint32_t timeout_in_seconds)']]] ]; diff --git a/docs/search/functions_8.js b/docs/search/functions_8.js index f3675f0d7e..26e9802abd 100644 --- a/docs/search/functions_8.js +++ b/docs/search/functions_8.js @@ -1,30 +1,30 @@ var searchData= [ - ['id_1561',['id',['../de/d52/classshaka_1_1Representation.html#a9cb9a38de5e57bff1feb81d2575ae1b2',1,'shaka::Representation']]], - ['ignorebytes_1562',['IgnoreBytes',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a1a0c70e3124677ae08164f7b89f6a1d4',1,'shaka::media::mp4::BoxBuffer']]], - ['include_5fmspr_5fpro_1563',['include_mspr_pro',['../d3/dd0/classshaka_1_1MpdNotifier.html#ae926a171d926eb142f0e8cffe64bb2a2',1,'shaka::MpdNotifier']]], - ['init_1564',['Init',['../d9/d40/classshaka_1_1media_1_1WebVttParser.html#a748578474cffb5e3a817a2eeeca50abb',1,'shaka::media::WebVttParser::Init()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a59bcb401b5ca8d5b893ec7da9461569f',1,'shaka::SimpleMpdNotifier::Init()'],['../de/d52/classshaka_1_1Representation.html#ae998409ae94f3ba12909a96e8f3f4f7e',1,'shaka::Representation::Init()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#ad6171481d6fb437767b1f5b9e0dac1a3',1,'shaka::MpdNotifier::Init()'],['../dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html#a02ede8f75108e8d0a911b1e8da3f7263',1,'shaka::media::wvm::WvmMediaParser::Init()'],['../d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html#ac66eb6507aef7995a3dcb02967e1cb8b',1,'shaka::media::WebMMediaParser::Init()'],['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a4d39eaf8568da29b597411c56f50d86f',1,'shaka::media::mp4::TrackRunIterator::Init(const MovieFragment &moof)'],['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#ae9f02c32b4e2be8fc41a20f3f00f3494',1,'shaka::media::mp4::TrackRunIterator::Init()'],['../d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html#abcde83a8740d8d9bbf8776784cf3227b',1,'shaka::media::mp4::MP4MediaParser::Init()'],['../d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#a59ca18170e57921f961cb773527d3bab',1,'shaka::media::mp2t::Mp2tMediaParser::Init()'],['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#a6934a294d4601fdcaf53719ecbcb82ff',1,'shaka::media::MediaParser::Init()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a40850c462766a0ce4e9c92014ed77a91',1,'shaka::hls::SimpleHlsNotifier::Init()'],['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a8bd9273a1893899036e640c1e35fbaff',1,'shaka::hls::HlsNotifier::Init()']]], - ['initialize_1565',['Initialize',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#aed0da512bbd998ec9d0a5c019ad17acb',1,'shaka::media::MediaHandler::Initialize()'],['../db/dd0/classshaka_1_1Packager.html#ae40969a98da3a27a0b1633927afb3ce2',1,'shaka::Packager::Initialize()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a32c8a682b36241529d0c302a023140d2',1,'shaka::media::webm::Segmenter::Initialize()'],['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#aaca6b224a4fc198b4c7d599c1348d6c2',1,'shaka::media::PackedAudioSegmenter::Initialize()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#acc2d4e58b3fa4b41a0637f52288d81d9',1,'shaka::media::mp4::Segmenter::Initialize()'],['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#aac6e3950224709b78b9f1e054a8ca194',1,'shaka::media::mp2t::TsSegmenter::Initialize()'],['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#aa0346189f99b2f0fc2c71da1543155fa',1,'shaka::media::mp2t::PesPacketGenerator::Initialize()'],['../d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html#ac4478f9099344a05be5b9b3e4e209817',1,'shaka::media::SubsampleGenerator::Initialize()'],['../d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html#a83a25520f713f4818a765ea3324a1438',1,'shaka::media::H265VideoSliceHeaderParser::Initialize()'],['../da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html#a551bd1e2a852d1a3b23b77df8505b7f7',1,'shaka::media::H264VideoSliceHeaderParser::Initialize()'],['../dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html#a862422cdf78f370069055037338fa53d',1,'shaka::media::VideoSliceHeaderParser::Initialize()'],['../d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html#a27986db8a2e62669fe1983a39383c546',1,'shaka::media::NalUnitToByteStreamConverter::Initialize()']]], - ['initializefragment_1566',['InitializeFragment',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#aa702c2af5ea5096d94f2943076a21e4a',1,'shaka::media::mp4::Fragmenter']]], - ['initializeinternal_1567',['InitializeInternal',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a7488d8ea312be5822c67f5b69a8dbd9f',1,'shaka::media::Demuxer::InitializeInternal()'],['../d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html#a3f1808a4386081e5e1c9a798a1a69dd0',1,'shaka::media::EncryptionHandler::InitializeInternal()'],['../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html#a76a5f4b74da3876cc72f44301c389ebd',1,'shaka::media::ChunkingHandler::InitializeInternal()'],['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0e05325d62bfb66318301c1ed790a46e',1,'shaka::media::MediaHandler::InitializeInternal()'],['../df/d46/classshaka_1_1media_1_1Muxer.html#a36882e12df5c5bfd48a7b94d1dfad857',1,'shaka::media::Muxer::InitializeInternal()'],['../db/d5a/classshaka_1_1media_1_1CcStreamFilter.html#aea60c40b6d500f62d012140396ecc34a',1,'shaka::media::CcStreamFilter::InitializeInternal()']]], - ['initializewithiv_1568',['InitializeWithIv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a41954df34b76b04d561892732dd0ec2f',1,'shaka::media::AesCryptor::InitializeWithIv()'],['../df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html#a71ff0b9654de96f9990b29c35fa9b7bf',1,'shaka::media::AesCbcDecryptor::InitializeWithIv()'],['../d3/d75/classshaka_1_1media_1_1AesEncryptor.html#a0695df5615cadf6977fdbac978daeffa',1,'shaka::media::AesEncryptor::InitializeWithIv()'],['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html#af878688f0f277f3f6757e85654439c34',1,'shaka::media::AesPatternCryptor::InitializeWithIv()'],['../d9/da0/classshaka_1_1media_1_1SampleAesEc3Cryptor.html#ae92fbc45e95b1b2abc98a7f79ce3fcf3',1,'shaka::media::SampleAesEc3Cryptor::InitializeWithIv()']]], - ['injectclockfortesting_1569',['InjectClockForTesting',['../dc/da1/classshaka_1_1MpdBuilder.html#a7a4f96f12b589cfc4b5c2f44532eec53',1,'shaka::MpdBuilder']]], - ['injectpespacketgeneratorfortesting_1570',['InjectPesPacketGeneratorForTesting',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#abb78b18426643d58bc44ea61823dc29c',1,'shaka::media::mp2t::TsSegmenter']]], - ['injecttswriterfortesting_1571',['InjectTsWriterForTesting',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#ae3ed0f86d2163444e24a2577e35517a9',1,'shaka::media::mp2t::TsSegmenter']]], - ['is_5fkey_5fframe_1572',['is_key_frame',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#abab77433f6495ddc5ff075e86fd10154',1,'shaka::media::mp2t::PesPacket']]], - ['is_5fvideo_5fslice_1573',['is_video_slice',['../d6/dff/classshaka_1_1media_1_1Nalu.html#a63f091b3dbe862fd4519c1b374dfc937',1,'shaka::media::Nalu']]], - ['isaac_1574',['IsAAC',['../d5/d58/classshaka_1_1media_1_1DecoderConfigDescriptor.html#aa157fcce41823c85c27f145a007f7626',1,'shaka::media::DecoderConfigDescriptor']]], - ['isconnected_1575',['IsConnected',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0e169e81344ce4ccfed3194ec5f4a3a1',1,'shaka::media::MediaHandler']]], - ['isdts_1576',['IsDTS',['../d5/d58/classshaka_1_1media_1_1DecoderConfigDescriptor.html#a35a0c6bcc4fc8fade9ed8b9a86e86eba',1,'shaka::media::DecoderConfigDescriptor']]], - ['iskeyframe_1577',['IsKeyframe',['../d8/d14/classshaka_1_1media_1_1VP8Parser.html#afae2dcb0c2652d53f2e23c9d3c07db37',1,'shaka::media::VP8Parser::IsKeyframe()'],['../db/d5a/classshaka_1_1media_1_1VP9Parser.html#a52e6a17fa34c5676cd0cdc547cb355a5',1,'shaka::media::VP9Parser::IsKeyframe()']]], - ['islocalregularfile_1578',['IsLocalRegularFile',['../d3/d73/classshaka_1_1File.html#a8eb71689f5456ba0b1a401c57386caaf',1,'shaka::File']]], - ['isparsingcomplete_1579',['IsParsingComplete',['../dc/dca/classshaka_1_1media_1_1WebMListParser.html#afc8ac334c5ba56d874137797ed23820f',1,'shaka::media::WebMListParser']]], - ['isrunvalid_1580',['IsRunValid',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a124697828b7b1e890c6e0f44aa1c4a40',1,'shaka::media::mp4::TrackRunIterator']]], - ['issamplevalid_1581',['IsSampleValid',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a55579ed1df93a36703892e22e405425f',1,'shaka::media::mp4::TrackRunIterator']]], - ['issyncsample_1582',['IsSyncSample',['../d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html#a2e2fd7bb29b79e14eb44954034928a9f',1,'shaka::media::mp4::SyncSampleIterator::IsSyncSample() const'],['../d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html#ace678dff3b99f81252b87b4c7b9f7445',1,'shaka::media::mp4::SyncSampleIterator::IsSyncSample(uint32_t sample) const']]], - ['issyncword_1583',['IsSyncWord',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a44c8ac7a2dd57a1b099722632e7e39f0',1,'shaka::media::mp2t::Ac3Header::IsSyncWord()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#ab7385cf2dfd15688dbd87f97706e3690',1,'shaka::media::mp2t::AdtsHeader::IsSyncWord()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a1e5c41162d4a4ff75dc9760a4d12e496',1,'shaka::media::mp2t::AudioHeader::IsSyncWord()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a878cf2eb2643d7bca7a823e82c01ff26',1,'shaka::media::mp2t::Mpeg1Header::IsSyncWord()']]], - ['isvalid_1584',['IsValid',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#a8ff1f9298c8a5f0c3a44f6950073d9ea',1,'shaka::media::mp4::ChunkInfoIterator::IsValid()'],['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#ae3e77b438f2483d9cf4f35be33335a74',1,'shaka::media::mp4::DecodingTimeIterator::IsValid()'],['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#aa052ba9dbefba43a2b3d456f095944e9',1,'shaka::media::mp4::CompositionOffsetIterator::IsValid()']]], - ['isvalidconfig_1585',['IsValidConfig',['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html#a3c50d026e8deadac46741143d4b5ddb9',1,'shaka::media::AudioStreamInfo::IsValidConfig()'],['../d5/db1/classshaka_1_1media_1_1StreamInfo.html#a6e5c5ade77b7bcf0b7822de568695dc8',1,'shaka::media::StreamInfo::IsValidConfig()'],['../db/dab/classshaka_1_1media_1_1TextStreamInfo.html#ab40aed17c046e639efde04a2075e25a8',1,'shaka::media::TextStreamInfo::IsValidConfig()'],['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a8978ca2bc2dd63c2e25e77cdcf676162',1,'shaka::media::VideoStreamInfo::IsValidConfig()']]], - ['isvideo_1586',['IsVideo',['../d8/d8e/classshaka_1_1AdaptationSet.html#ac9642eb0276b8f455d096c2e380ab9ac',1,'shaka::AdaptationSet']]], - ['iv_1587',['iv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a15094d3249fa0b82b8acc4d52209c51e',1,'shaka::media::AesCryptor']]] + ['id_1562',['id',['../de/d52/classshaka_1_1Representation.html#a9cb9a38de5e57bff1feb81d2575ae1b2',1,'shaka::Representation']]], + ['ignorebytes_1563',['IgnoreBytes',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a1a0c70e3124677ae08164f7b89f6a1d4',1,'shaka::media::mp4::BoxBuffer']]], + ['include_5fmspr_5fpro_1564',['include_mspr_pro',['../d3/dd0/classshaka_1_1MpdNotifier.html#ae926a171d926eb142f0e8cffe64bb2a2',1,'shaka::MpdNotifier']]], + ['init_1565',['Init',['../d9/d40/classshaka_1_1media_1_1WebVttParser.html#a748578474cffb5e3a817a2eeeca50abb',1,'shaka::media::WebVttParser::Init()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a59bcb401b5ca8d5b893ec7da9461569f',1,'shaka::SimpleMpdNotifier::Init()'],['../de/d52/classshaka_1_1Representation.html#ae998409ae94f3ba12909a96e8f3f4f7e',1,'shaka::Representation::Init()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#ad6171481d6fb437767b1f5b9e0dac1a3',1,'shaka::MpdNotifier::Init()'],['../dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html#a02ede8f75108e8d0a911b1e8da3f7263',1,'shaka::media::wvm::WvmMediaParser::Init()'],['../d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html#ac66eb6507aef7995a3dcb02967e1cb8b',1,'shaka::media::WebMMediaParser::Init()'],['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a4d39eaf8568da29b597411c56f50d86f',1,'shaka::media::mp4::TrackRunIterator::Init(const MovieFragment &moof)'],['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#ae9f02c32b4e2be8fc41a20f3f00f3494',1,'shaka::media::mp4::TrackRunIterator::Init()'],['../d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html#abcde83a8740d8d9bbf8776784cf3227b',1,'shaka::media::mp4::MP4MediaParser::Init()'],['../d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#a59ca18170e57921f961cb773527d3bab',1,'shaka::media::mp2t::Mp2tMediaParser::Init()'],['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#a6934a294d4601fdcaf53719ecbcb82ff',1,'shaka::media::MediaParser::Init()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a40850c462766a0ce4e9c92014ed77a91',1,'shaka::hls::SimpleHlsNotifier::Init()'],['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a8bd9273a1893899036e640c1e35fbaff',1,'shaka::hls::HlsNotifier::Init()']]], + ['initialize_1566',['Initialize',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#aed0da512bbd998ec9d0a5c019ad17acb',1,'shaka::media::MediaHandler::Initialize()'],['../db/dd0/classshaka_1_1Packager.html#ae40969a98da3a27a0b1633927afb3ce2',1,'shaka::Packager::Initialize()'],['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a32c8a682b36241529d0c302a023140d2',1,'shaka::media::webm::Segmenter::Initialize()'],['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#aaca6b224a4fc198b4c7d599c1348d6c2',1,'shaka::media::PackedAudioSegmenter::Initialize()'],['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#acc2d4e58b3fa4b41a0637f52288d81d9',1,'shaka::media::mp4::Segmenter::Initialize()'],['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#aac6e3950224709b78b9f1e054a8ca194',1,'shaka::media::mp2t::TsSegmenter::Initialize()'],['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#aa0346189f99b2f0fc2c71da1543155fa',1,'shaka::media::mp2t::PesPacketGenerator::Initialize()'],['../d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html#ac4478f9099344a05be5b9b3e4e209817',1,'shaka::media::SubsampleGenerator::Initialize()'],['../d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html#a83a25520f713f4818a765ea3324a1438',1,'shaka::media::H265VideoSliceHeaderParser::Initialize()'],['../da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html#a551bd1e2a852d1a3b23b77df8505b7f7',1,'shaka::media::H264VideoSliceHeaderParser::Initialize()'],['../dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html#a862422cdf78f370069055037338fa53d',1,'shaka::media::VideoSliceHeaderParser::Initialize()'],['../d5/d66/classshaka_1_1media_1_1NalUnitToByteStreamConverter.html#a27986db8a2e62669fe1983a39383c546',1,'shaka::media::NalUnitToByteStreamConverter::Initialize()']]], + ['initializefragment_1567',['InitializeFragment',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#aa702c2af5ea5096d94f2943076a21e4a',1,'shaka::media::mp4::Fragmenter']]], + ['initializeinternal_1568',['InitializeInternal',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a7488d8ea312be5822c67f5b69a8dbd9f',1,'shaka::media::Demuxer::InitializeInternal()'],['../d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html#a3f1808a4386081e5e1c9a798a1a69dd0',1,'shaka::media::EncryptionHandler::InitializeInternal()'],['../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html#a76a5f4b74da3876cc72f44301c389ebd',1,'shaka::media::ChunkingHandler::InitializeInternal()'],['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0e05325d62bfb66318301c1ed790a46e',1,'shaka::media::MediaHandler::InitializeInternal()'],['../df/d46/classshaka_1_1media_1_1Muxer.html#a36882e12df5c5bfd48a7b94d1dfad857',1,'shaka::media::Muxer::InitializeInternal()'],['../db/d5a/classshaka_1_1media_1_1CcStreamFilter.html#aea60c40b6d500f62d012140396ecc34a',1,'shaka::media::CcStreamFilter::InitializeInternal()']]], + ['initializewithiv_1569',['InitializeWithIv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a41954df34b76b04d561892732dd0ec2f',1,'shaka::media::AesCryptor::InitializeWithIv()'],['../df/d2d/classshaka_1_1media_1_1AesCbcDecryptor.html#a71ff0b9654de96f9990b29c35fa9b7bf',1,'shaka::media::AesCbcDecryptor::InitializeWithIv()'],['../d3/d75/classshaka_1_1media_1_1AesEncryptor.html#a0695df5615cadf6977fdbac978daeffa',1,'shaka::media::AesEncryptor::InitializeWithIv()'],['../d3/dfe/classshaka_1_1media_1_1AesPatternCryptor.html#af878688f0f277f3f6757e85654439c34',1,'shaka::media::AesPatternCryptor::InitializeWithIv()'],['../d9/da0/classshaka_1_1media_1_1SampleAesEc3Cryptor.html#ae92fbc45e95b1b2abc98a7f79ce3fcf3',1,'shaka::media::SampleAesEc3Cryptor::InitializeWithIv()']]], + ['injectclockfortesting_1570',['InjectClockForTesting',['../dc/da1/classshaka_1_1MpdBuilder.html#a7a4f96f12b589cfc4b5c2f44532eec53',1,'shaka::MpdBuilder']]], + ['injectpespacketgeneratorfortesting_1571',['InjectPesPacketGeneratorForTesting',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#abb78b18426643d58bc44ea61823dc29c',1,'shaka::media::mp2t::TsSegmenter']]], + ['injecttswriterfortesting_1572',['InjectTsWriterForTesting',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#ae3ed0f86d2163444e24a2577e35517a9',1,'shaka::media::mp2t::TsSegmenter']]], + ['is_5fkey_5fframe_1573',['is_key_frame',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#abab77433f6495ddc5ff075e86fd10154',1,'shaka::media::mp2t::PesPacket']]], + ['is_5fvideo_5fslice_1574',['is_video_slice',['../d6/dff/classshaka_1_1media_1_1Nalu.html#a63f091b3dbe862fd4519c1b374dfc937',1,'shaka::media::Nalu']]], + ['isaac_1575',['IsAAC',['../d5/d58/classshaka_1_1media_1_1DecoderConfigDescriptor.html#aa157fcce41823c85c27f145a007f7626',1,'shaka::media::DecoderConfigDescriptor']]], + ['isconnected_1576',['IsConnected',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0e169e81344ce4ccfed3194ec5f4a3a1',1,'shaka::media::MediaHandler']]], + ['isdts_1577',['IsDTS',['../d5/d58/classshaka_1_1media_1_1DecoderConfigDescriptor.html#a35a0c6bcc4fc8fade9ed8b9a86e86eba',1,'shaka::media::DecoderConfigDescriptor']]], + ['iskeyframe_1578',['IsKeyframe',['../d8/d14/classshaka_1_1media_1_1VP8Parser.html#afae2dcb0c2652d53f2e23c9d3c07db37',1,'shaka::media::VP8Parser::IsKeyframe()'],['../db/d5a/classshaka_1_1media_1_1VP9Parser.html#a52e6a17fa34c5676cd0cdc547cb355a5',1,'shaka::media::VP9Parser::IsKeyframe()']]], + ['islocalregularfile_1579',['IsLocalRegularFile',['../d3/d73/classshaka_1_1File.html#a8eb71689f5456ba0b1a401c57386caaf',1,'shaka::File']]], + ['isparsingcomplete_1580',['IsParsingComplete',['../dc/dca/classshaka_1_1media_1_1WebMListParser.html#afc8ac334c5ba56d874137797ed23820f',1,'shaka::media::WebMListParser']]], + ['isrunvalid_1581',['IsRunValid',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a124697828b7b1e890c6e0f44aa1c4a40',1,'shaka::media::mp4::TrackRunIterator']]], + ['issamplevalid_1582',['IsSampleValid',['../de/df6/classshaka_1_1media_1_1mp4_1_1TrackRunIterator.html#a55579ed1df93a36703892e22e405425f',1,'shaka::media::mp4::TrackRunIterator']]], + ['issyncsample_1583',['IsSyncSample',['../d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html#a2e2fd7bb29b79e14eb44954034928a9f',1,'shaka::media::mp4::SyncSampleIterator::IsSyncSample() const'],['../d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html#ace678dff3b99f81252b87b4c7b9f7445',1,'shaka::media::mp4::SyncSampleIterator::IsSyncSample(uint32_t sample) const']]], + ['issyncword_1584',['IsSyncWord',['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a44c8ac7a2dd57a1b099722632e7e39f0',1,'shaka::media::mp2t::Ac3Header::IsSyncWord()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#ab7385cf2dfd15688dbd87f97706e3690',1,'shaka::media::mp2t::AdtsHeader::IsSyncWord()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a1e5c41162d4a4ff75dc9760a4d12e496',1,'shaka::media::mp2t::AudioHeader::IsSyncWord()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#a878cf2eb2643d7bca7a823e82c01ff26',1,'shaka::media::mp2t::Mpeg1Header::IsSyncWord()']]], + ['isvalid_1585',['IsValid',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#a8ff1f9298c8a5f0c3a44f6950073d9ea',1,'shaka::media::mp4::ChunkInfoIterator::IsValid()'],['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#ae3e77b438f2483d9cf4f35be33335a74',1,'shaka::media::mp4::DecodingTimeIterator::IsValid()'],['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#aa052ba9dbefba43a2b3d456f095944e9',1,'shaka::media::mp4::CompositionOffsetIterator::IsValid()']]], + ['isvalidconfig_1586',['IsValidConfig',['../da/d4e/classshaka_1_1media_1_1AudioStreamInfo.html#a3c50d026e8deadac46741143d4b5ddb9',1,'shaka::media::AudioStreamInfo::IsValidConfig()'],['../d5/db1/classshaka_1_1media_1_1StreamInfo.html#a6e5c5ade77b7bcf0b7822de568695dc8',1,'shaka::media::StreamInfo::IsValidConfig()'],['../db/dab/classshaka_1_1media_1_1TextStreamInfo.html#ab40aed17c046e639efde04a2075e25a8',1,'shaka::media::TextStreamInfo::IsValidConfig()'],['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a8978ca2bc2dd63c2e25e77cdcf676162',1,'shaka::media::VideoStreamInfo::IsValidConfig()']]], + ['isvideo_1587',['IsVideo',['../d8/d8e/classshaka_1_1AdaptationSet.html#ac9642eb0276b8f455d096c2e380ab9ac',1,'shaka::AdaptationSet']]], + ['iv_1588',['iv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a15094d3249fa0b82b8acc4d52209c51e',1,'shaka::media::AesCryptor']]] ]; diff --git a/docs/search/functions_9.js b/docs/search/functions_9.js index 8f1b3ddfb4..5069978b49 100644 --- a/docs/search/functions_9.js +++ b/docs/search/functions_9.js @@ -1,10 +1,10 @@ var searchData= [ - ['language_1588',['language',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a499a495bcd51b4121585dfb2cc5861c1',1,'shaka::hls::MediaPlaylist']]], - ['languagetoiso_5f639_5f2_1589',['LanguageToISO_639_2',['../d8/daf/namespaceshaka.html#a05a31cd741e2ee18f1399284e921e527',1,'shaka']]], - ['languagetoshortestform_1590',['LanguageToShortestForm',['../d8/daf/namespaceshaka.html#a5f657931280fdf63cae2ed8a8f891288',1,'shaka']]], - ['lastfirstchunk_1591',['LastFirstChunk',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#aa964520745fa35c95a1631732583aee9',1,'shaka::media::mp4::ChunkInfoIterator']]], - ['limitnumofmuxerlistners_1592',['LimitNumOfMuxerListners',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a095ea41f43ea33761b0cedb442fdcd4e',1,'shaka::media::CombinedMuxerListener']]], - ['loadmoov_1593',['LoadMoov',['../d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html#af0ec1b44528a2997c0d548bee47862cf',1,'shaka::media::mp4::MP4MediaParser']]], - ['localfile_1594',['LocalFile',['../d7/dbd/classshaka_1_1LocalFile.html#a2bc14434191cdc36e7e9f67c6ebf282f',1,'shaka::LocalFile']]] + ['language_1589',['language',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a499a495bcd51b4121585dfb2cc5861c1',1,'shaka::hls::MediaPlaylist']]], + ['languagetoiso_5f639_5f2_1590',['LanguageToISO_639_2',['../d8/daf/namespaceshaka.html#a05a31cd741e2ee18f1399284e921e527',1,'shaka']]], + ['languagetoshortestform_1591',['LanguageToShortestForm',['../d8/daf/namespaceshaka.html#a5f657931280fdf63cae2ed8a8f891288',1,'shaka']]], + ['lastfirstchunk_1592',['LastFirstChunk',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#aa964520745fa35c95a1631732583aee9',1,'shaka::media::mp4::ChunkInfoIterator']]], + ['limitnumofmuxerlistners_1593',['LimitNumOfMuxerListners',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a095ea41f43ea33761b0cedb442fdcd4e',1,'shaka::media::CombinedMuxerListener']]], + ['loadmoov_1594',['LoadMoov',['../d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html#af0ec1b44528a2997c0d548bee47862cf',1,'shaka::media::mp4::MP4MediaParser']]], + ['localfile_1595',['LocalFile',['../d7/dbd/classshaka_1_1LocalFile.html#a2bc14434191cdc36e7e9f67c6ebf282f',1,'shaka::LocalFile']]] ]; diff --git a/docs/search/functions_a.js b/docs/search/functions_a.js index cf23c1ac44..2851b93621 100644 --- a/docs/search/functions_a.js +++ b/docs/search/functions_a.js @@ -1,18 +1,18 @@ var searchData= [ - ['makecallbackfilename_1595',['MakeCallbackFileName',['../d3/d73/classshaka_1_1File.html#a7a90ebd27f7728a7075cf3ba97396cae',1,'shaka::File']]], - ['makepathsrelativetompd_1596',['MakePathsRelativeToMpd',['../dc/da1/classshaka_1_1MpdBuilder.html#a247a9c807274d4e707530f24e2d207f9',1,'shaka::MpdBuilder']]], - ['masterplaylist_1597',['MasterPlaylist',['../d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html#aaae679a4ce4fb9d69ace93e4b0af0fd4',1,'shaka::hls::MasterPlaylist']]], - ['max_1598',['Max',['../da/d2c/classshaka_1_1BandwidthEstimator.html#a0df6c40f43a89d3d481392ac0298e37c',1,'shaka::BandwidthEstimator']]], - ['maxbitrate_1599',['MaxBitrate',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a889e16239425ce84673cb78bc267b552',1,'shaka::hls::MediaPlaylist']]], - ['mediaplaylist_1600',['MediaPlaylist',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#ad0b067471c77f2f9a6adb4df0aa85925',1,'shaka::hls::MediaPlaylist']]], - ['mergefrom_1601',['MergeFrom',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a36dddd88a09f038adfbf87063786178c',1,'shaka::media::VPCodecConfigurationRecord']]], - ['mirrortobottomrows_1602',['MirrorToBottomRows',['../d9/d28/classshaka_1_1media_1_1DvbImageBuilder.html#a54dd37c2291b7b988f636527330b0d53',1,'shaka::media::DvbImageBuilder']]], - ['mp4muxer_1603',['MP4Muxer',['../db/d30/classshaka_1_1media_1_1mp4_1_1MP4Muxer.html#a5b6a878865250e3e17268c011a361497',1,'shaka::media::mp4::MP4Muxer']]], - ['mpd_5ftype_1604',['mpd_type',['../d3/dd0/classshaka_1_1MpdNotifier.html#a050bde7afb601661a5db508152ffc508',1,'shaka::MpdNotifier']]], - ['mpdbuilder_1605',['MpdBuilder',['../dc/da1/classshaka_1_1MpdBuilder.html#ab364102e01afedd8a4dcc9be4fdcc0ab',1,'shaka::MpdBuilder']]], - ['mpdnotifymuxerlistener_1606',['MpdNotifyMuxerListener',['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a6912e6cfc341c1a768d214ce08bb0f82',1,'shaka::media::MpdNotifyMuxerListener']]], - ['mutable_5fdata_1607',['mutable_data',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a41aa532d0953db4ed9308ad176c6d878',1,'shaka::media::mp2t::PesPacket']]], - ['muxerlistenerat_1608',['MuxerListenerAt',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a9098555ce57c631f6cf0998e62fcc68b',1,'shaka::media::CombinedMuxerListener']]], - ['muxerlistenerfactory_1609',['MuxerListenerFactory',['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html#acca820fdaa838f08770b58e57d97f7e3',1,'shaka::media::MuxerListenerFactory']]] + ['makecallbackfilename_1596',['MakeCallbackFileName',['../d3/d73/classshaka_1_1File.html#a7a90ebd27f7728a7075cf3ba97396cae',1,'shaka::File']]], + ['makepathsrelativetompd_1597',['MakePathsRelativeToMpd',['../dc/da1/classshaka_1_1MpdBuilder.html#a247a9c807274d4e707530f24e2d207f9',1,'shaka::MpdBuilder']]], + ['masterplaylist_1598',['MasterPlaylist',['../d1/d87/classshaka_1_1hls_1_1MasterPlaylist.html#aaae679a4ce4fb9d69ace93e4b0af0fd4',1,'shaka::hls::MasterPlaylist']]], + ['max_1599',['Max',['../da/d2c/classshaka_1_1BandwidthEstimator.html#a0df6c40f43a89d3d481392ac0298e37c',1,'shaka::BandwidthEstimator']]], + ['maxbitrate_1600',['MaxBitrate',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a889e16239425ce84673cb78bc267b552',1,'shaka::hls::MediaPlaylist']]], + ['mediaplaylist_1601',['MediaPlaylist',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#ad0b067471c77f2f9a6adb4df0aa85925',1,'shaka::hls::MediaPlaylist']]], + ['mergefrom_1602',['MergeFrom',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a36dddd88a09f038adfbf87063786178c',1,'shaka::media::VPCodecConfigurationRecord']]], + ['mirrortobottomrows_1603',['MirrorToBottomRows',['../d9/d28/classshaka_1_1media_1_1DvbImageBuilder.html#a54dd37c2291b7b988f636527330b0d53',1,'shaka::media::DvbImageBuilder']]], + ['mp4muxer_1604',['MP4Muxer',['../db/d30/classshaka_1_1media_1_1mp4_1_1MP4Muxer.html#a5b6a878865250e3e17268c011a361497',1,'shaka::media::mp4::MP4Muxer']]], + ['mpd_5ftype_1605',['mpd_type',['../d3/dd0/classshaka_1_1MpdNotifier.html#a050bde7afb601661a5db508152ffc508',1,'shaka::MpdNotifier']]], + ['mpdbuilder_1606',['MpdBuilder',['../dc/da1/classshaka_1_1MpdBuilder.html#ab364102e01afedd8a4dcc9be4fdcc0ab',1,'shaka::MpdBuilder']]], + ['mpdnotifymuxerlistener_1607',['MpdNotifyMuxerListener',['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a6912e6cfc341c1a768d214ce08bb0f82',1,'shaka::media::MpdNotifyMuxerListener']]], + ['mutable_5fdata_1608',['mutable_data',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a41aa532d0953db4ed9308ad176c6d878',1,'shaka::media::mp2t::PesPacket']]], + ['muxerlistenerat_1609',['MuxerListenerAt',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a9098555ce57c631f6cf0998e62fcc68b',1,'shaka::media::CombinedMuxerListener']]], + ['muxerlistenerfactory_1610',['MuxerListenerFactory',['../de/dbb/classshaka_1_1media_1_1MuxerListenerFactory.html#ae72549917a0dc982f3fe44c4a961da91',1,'shaka::media::MuxerListenerFactory']]] ]; diff --git a/docs/search/functions_b.js b/docs/search/functions_b.js index 2aebd2fbb8..93114730ea 100644 --- a/docs/search/functions_b.js +++ b/docs/search/functions_b.js @@ -1,20 +1,20 @@ var searchData= [ - ['nalu_1610',['nalu',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#ab30071699c74739626524ca05fe8d09f',1,'shaka::media::DecoderConfigurationRecord']]], - ['nalu_5fcount_1611',['nalu_count',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#af2d32a59846b455a051a039db6ef772a',1,'shaka::media::DecoderConfigurationRecord']]], - ['nalu_5flength_5fsize_1612',['nalu_length_size',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#a4a78cd42a73d598f002039c2ac68d9a5',1,'shaka::media::DecoderConfigurationRecord']]], - ['nalureader_1613',['NaluReader',['../db/d86/classshaka_1_1media_1_1NaluReader.html#a2d1611fe3e60fc6570fe0c21e13911b0',1,'shaka::media::NaluReader::NaluReader(Nalu::CodecType type, uint8_t nal_length_size, const uint8_t *stream, uint64_t stream_size)'],['../db/d86/classshaka_1_1media_1_1NaluReader.html#a6890eb05c83bb540af84494ed0590c6b',1,'shaka::media::NaluReader::NaluReader(Nalu::CodecType type, uint8_t nal_length_size, const uint8_t *stream, uint64_t stream_size, const std::vector< SubsampleEntry > &subsamples)']]], - ['newsegment_1614',['NewSegment',['../de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html#a64edabc405e60f7cb765b31a6b6bdb38',1,'shaka::media::mp2t::TsWriter']]], - ['next_1615',['Next',['../db/de2/classshaka_1_1media_1_1LineReader.html#ad75892efb765091aabcede75dac10cc3',1,'shaka::media::LineReader::Next()'],['../df/d0d/classshaka_1_1media_1_1BlockReader.html#aaab26080db4e71f585de85c392c9745d',1,'shaka::media::BlockReader::Next()']]], - ['next_5fhandler_1616',['next_handler',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html#ac08d3b5a07e941a4b582675681bcf948',1,'shaka::media::MediaHandlerGraphTestBase']]], - ['notifycueevent_1617',['NotifyCueEvent',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a064753b88baf3e2db4cbb316b07fd236',1,'shaka::hls::HlsNotifier::NotifyCueEvent()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a1e7faa024bed78aa7bc8e3a2a36b3ad7',1,'shaka::hls::SimpleHlsNotifier::NotifyCueEvent()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#a74fed9807b9584387e5da5f0fd28d54d',1,'shaka::MpdNotifier::NotifyCueEvent()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a165f1237a3c70abe524289837f3b135d',1,'shaka::SimpleMpdNotifier::NotifyCueEvent()']]], - ['notifyencryptionupdate_1618',['NotifyEncryptionUpdate',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a310fadabce7f3ac4a3313631340b880f',1,'shaka::hls::HlsNotifier::NotifyEncryptionUpdate()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#ac2df072e5fbfcbf172319222a180e73d',1,'shaka::hls::SimpleHlsNotifier::NotifyEncryptionUpdate()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#acf6a0bde4fc907053cc9f1ff9a38b59a',1,'shaka::MpdNotifier::NotifyEncryptionUpdate()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#ae1a1231fb13e0bc97cdea5fc239184bf',1,'shaka::SimpleMpdNotifier::NotifyEncryptionUpdate()']]], - ['notifykeyframe_1619',['NotifyKeyFrame',['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a3eed6f6e65b079b3ece7d3c503b33fbf',1,'shaka::hls::SimpleHlsNotifier::NotifyKeyFrame()'],['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#ad97b17a04765577090ef9b6124928af2',1,'shaka::hls::HlsNotifier::NotifyKeyFrame()']]], - ['notifymediainfoupdate_1620',['NotifyMediaInfoUpdate',['../d3/dd0/classshaka_1_1MpdNotifier.html#a4d55e7b557c624954b4e05edf6bd83d1',1,'shaka::MpdNotifier::NotifyMediaInfoUpdate()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a6a811c3721117dcc6aac9595a8311e70',1,'shaka::SimpleMpdNotifier::NotifyMediaInfoUpdate()']]], - ['notifynewcontainer_1621',['NotifyNewContainer',['../d3/dd0/classshaka_1_1MpdNotifier.html#ae10c06fe6022a1020fc889de389be430',1,'shaka::MpdNotifier::NotifyNewContainer()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a3f4aabd86ec08e5ff427120ed39fda29',1,'shaka::SimpleMpdNotifier::NotifyNewContainer()']]], - ['notifynewsegment_1622',['NotifyNewSegment',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#af5a0d6670313d81eff20bb959732a2cd',1,'shaka::hls::HlsNotifier::NotifyNewSegment()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#afab88a610a6d2ac8b21dd86a456c2c06',1,'shaka::hls::SimpleHlsNotifier::NotifyNewSegment()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#a100236a249477afcda4f50e4914f0eee',1,'shaka::MpdNotifier::NotifyNewSegment()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a8e9cc7fbe2e13a2b65ce9314428e48b8',1,'shaka::SimpleMpdNotifier::NotifyNewSegment()']]], - ['notifynewstream_1623',['NotifyNewStream',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a2b85f6e4c2798f2634cd535011c230a2',1,'shaka::hls::HlsNotifier::NotifyNewStream()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a44409a32566bb416e572946fc2f511c9',1,'shaka::hls::SimpleHlsNotifier::NotifyNewStream()']]], - ['notifysampleduration_1624',['NotifySampleDuration',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a63a11df343b1f75a5d89327a23d5249c',1,'shaka::hls::HlsNotifier::NotifySampleDuration()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#aa7af83ad4387d28f5aa391a8a558d104',1,'shaka::hls::SimpleHlsNotifier::NotifySampleDuration()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#a721edf600dc9165e96e4b6c154a2d4f6',1,'shaka::MpdNotifier::NotifySampleDuration()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#ad876de8c9909394b6fb47f387066fc83',1,'shaka::SimpleMpdNotifier::NotifySampleDuration()']]], - ['numberofreadypespackets_1625',['NumberOfReadyPesPackets',['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a27a700967eb692a8207fd5054263fc3a',1,'shaka::media::mp2t::PesPacketGenerator']]], - ['numsamples_1626',['NumSamples',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#ab03447658c66e205524cdc57f5e21331',1,'shaka::media::mp4::ChunkInfoIterator::NumSamples()'],['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#a7d3ae037899193e4610d9f0028b6358a',1,'shaka::media::mp4::CompositionOffsetIterator::NumSamples()'],['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#a3a2823a312d55c28e06cf79507c42b4d',1,'shaka::media::mp4::DecodingTimeIterator::NumSamples()']]] + ['nalu_1611',['nalu',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#ab30071699c74739626524ca05fe8d09f',1,'shaka::media::DecoderConfigurationRecord']]], + ['nalu_5fcount_1612',['nalu_count',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#af2d32a59846b455a051a039db6ef772a',1,'shaka::media::DecoderConfigurationRecord']]], + ['nalu_5flength_5fsize_1613',['nalu_length_size',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#a4a78cd42a73d598f002039c2ac68d9a5',1,'shaka::media::DecoderConfigurationRecord']]], + ['nalureader_1614',['NaluReader',['../db/d86/classshaka_1_1media_1_1NaluReader.html#a2d1611fe3e60fc6570fe0c21e13911b0',1,'shaka::media::NaluReader::NaluReader(Nalu::CodecType type, uint8_t nal_length_size, const uint8_t *stream, uint64_t stream_size)'],['../db/d86/classshaka_1_1media_1_1NaluReader.html#a6890eb05c83bb540af84494ed0590c6b',1,'shaka::media::NaluReader::NaluReader(Nalu::CodecType type, uint8_t nal_length_size, const uint8_t *stream, uint64_t stream_size, const std::vector< SubsampleEntry > &subsamples)']]], + ['newsegment_1615',['NewSegment',['../de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html#a64edabc405e60f7cb765b31a6b6bdb38',1,'shaka::media::mp2t::TsWriter']]], + ['next_1616',['Next',['../db/de2/classshaka_1_1media_1_1LineReader.html#ad75892efb765091aabcede75dac10cc3',1,'shaka::media::LineReader::Next()'],['../df/d0d/classshaka_1_1media_1_1BlockReader.html#aaab26080db4e71f585de85c392c9745d',1,'shaka::media::BlockReader::Next()']]], + ['next_5fhandler_1617',['next_handler',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html#ac08d3b5a07e941a4b582675681bcf948',1,'shaka::media::MediaHandlerGraphTestBase']]], + ['notifycueevent_1618',['NotifyCueEvent',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a064753b88baf3e2db4cbb316b07fd236',1,'shaka::hls::HlsNotifier::NotifyCueEvent()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a1e7faa024bed78aa7bc8e3a2a36b3ad7',1,'shaka::hls::SimpleHlsNotifier::NotifyCueEvent()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#a74fed9807b9584387e5da5f0fd28d54d',1,'shaka::MpdNotifier::NotifyCueEvent()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a165f1237a3c70abe524289837f3b135d',1,'shaka::SimpleMpdNotifier::NotifyCueEvent()']]], + ['notifyencryptionupdate_1619',['NotifyEncryptionUpdate',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a310fadabce7f3ac4a3313631340b880f',1,'shaka::hls::HlsNotifier::NotifyEncryptionUpdate()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#ac2df072e5fbfcbf172319222a180e73d',1,'shaka::hls::SimpleHlsNotifier::NotifyEncryptionUpdate()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#acf6a0bde4fc907053cc9f1ff9a38b59a',1,'shaka::MpdNotifier::NotifyEncryptionUpdate()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#ae1a1231fb13e0bc97cdea5fc239184bf',1,'shaka::SimpleMpdNotifier::NotifyEncryptionUpdate()']]], + ['notifykeyframe_1620',['NotifyKeyFrame',['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a3eed6f6e65b079b3ece7d3c503b33fbf',1,'shaka::hls::SimpleHlsNotifier::NotifyKeyFrame()'],['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#ad97b17a04765577090ef9b6124928af2',1,'shaka::hls::HlsNotifier::NotifyKeyFrame()']]], + ['notifymediainfoupdate_1621',['NotifyMediaInfoUpdate',['../d3/dd0/classshaka_1_1MpdNotifier.html#a4d55e7b557c624954b4e05edf6bd83d1',1,'shaka::MpdNotifier::NotifyMediaInfoUpdate()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a6a811c3721117dcc6aac9595a8311e70',1,'shaka::SimpleMpdNotifier::NotifyMediaInfoUpdate()']]], + ['notifynewcontainer_1622',['NotifyNewContainer',['../d3/dd0/classshaka_1_1MpdNotifier.html#ae10c06fe6022a1020fc889de389be430',1,'shaka::MpdNotifier::NotifyNewContainer()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a3f4aabd86ec08e5ff427120ed39fda29',1,'shaka::SimpleMpdNotifier::NotifyNewContainer()']]], + ['notifynewsegment_1623',['NotifyNewSegment',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#af5a0d6670313d81eff20bb959732a2cd',1,'shaka::hls::HlsNotifier::NotifyNewSegment()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#afab88a610a6d2ac8b21dd86a456c2c06',1,'shaka::hls::SimpleHlsNotifier::NotifyNewSegment()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#a100236a249477afcda4f50e4914f0eee',1,'shaka::MpdNotifier::NotifyNewSegment()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#a8e9cc7fbe2e13a2b65ce9314428e48b8',1,'shaka::SimpleMpdNotifier::NotifyNewSegment()']]], + ['notifynewstream_1624',['NotifyNewStream',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a2b85f6e4c2798f2634cd535011c230a2',1,'shaka::hls::HlsNotifier::NotifyNewStream()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a44409a32566bb416e572946fc2f511c9',1,'shaka::hls::SimpleHlsNotifier::NotifyNewStream()']]], + ['notifysampleduration_1625',['NotifySampleDuration',['../d9/deb/classshaka_1_1hls_1_1HlsNotifier.html#a63a11df343b1f75a5d89327a23d5249c',1,'shaka::hls::HlsNotifier::NotifySampleDuration()'],['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#aa7af83ad4387d28f5aa391a8a558d104',1,'shaka::hls::SimpleHlsNotifier::NotifySampleDuration()'],['../d3/dd0/classshaka_1_1MpdNotifier.html#a721edf600dc9165e96e4b6c154a2d4f6',1,'shaka::MpdNotifier::NotifySampleDuration()'],['../d8/de1/classshaka_1_1SimpleMpdNotifier.html#ad876de8c9909394b6fb47f387066fc83',1,'shaka::SimpleMpdNotifier::NotifySampleDuration()']]], + ['numberofreadypespackets_1626',['NumberOfReadyPesPackets',['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a27a700967eb692a8207fd5054263fc3a',1,'shaka::media::mp2t::PesPacketGenerator']]], + ['numsamples_1627',['NumSamples',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#ab03447658c66e205524cdc57f5e21331',1,'shaka::media::mp4::ChunkInfoIterator::NumSamples()'],['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#a7d3ae037899193e4610d9f0028b6358a',1,'shaka::media::mp4::CompositionOffsetIterator::NumSamples()'],['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#a3a2823a312d55c28e06cf79507c42b4d',1,'shaka::media::mp4::DecodingTimeIterator::NumSamples()']]] ]; diff --git a/docs/search/functions_c.js b/docs/search/functions_c.js index 2a53cb19fb..5c10c78f85 100644 --- a/docs/search/functions_c.js +++ b/docs/search/functions_c.js @@ -1,21 +1,21 @@ var searchData= [ - ['oncueevent_1627',['OnCueEvent',['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#a63f5e613bba435a8496d48d87ea66505',1,'shaka::media::HlsNotifyMuxerListener::OnCueEvent()'],['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a6d4c96d42b1fb17b4b1194dd7d584956',1,'shaka::media::CombinedMuxerListener::OnCueEvent()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#aec15d878b48b81b4aafd8e7f8a059613',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnCueEvent()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a1837b4ff54c1eef191448c49bb3ccc56',1,'shaka::media::MpdNotifyMuxerListener::OnCueEvent()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#aa9d6d113d7a0b58fffc1abac99013757',1,'shaka::media::MuxerListener::OnCueEvent()']]], - ['onencryptioninfoready_1628',['OnEncryptionInfoReady',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a445b97bf06c20a44ae5d0fef926cbd9f',1,'shaka::media::CombinedMuxerListener::OnEncryptionInfoReady()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#a8be7a524212bdd401150aa6bcb374792',1,'shaka::media::HlsNotifyMuxerListener::OnEncryptionInfoReady()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a10071445982f736bb1e6e04133dd60cb',1,'shaka::media::MpdNotifyMuxerListener::OnEncryptionInfoReady()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#ab521acca727bbe01aa15c751325c0001',1,'shaka::media::MuxerListener::OnEncryptionInfoReady()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#a683882564ac762e2e94795964f8be4b8',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnEncryptionInfoReady()']]], - ['onencryptionstart_1629',['OnEncryptionStart',['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a56ccf04196458894f31d0db102153334',1,'shaka::media::MpdNotifyMuxerListener::OnEncryptionStart()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#ae8f6f65fbab9f301be5bb35f5b8d1cbc',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnEncryptionStart()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#a897463091f0effa647a8e2822f48b2ee',1,'shaka::media::MuxerListener::OnEncryptionStart()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#a49b4187f39abe517768364f7ecb280f9',1,'shaka::media::HlsNotifyMuxerListener::OnEncryptionStart()'],['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a40a2b9e923b6a6e255ee5632bffc1134',1,'shaka::media::CombinedMuxerListener::OnEncryptionStart()']]], - ['onflushrequest_1630',['OnFlushRequest',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a69a31b8ec1b85fd4790c7c2013c69a73',1,'shaka::media::MediaHandler::OnFlushRequest()'],['../df/d46/classshaka_1_1media_1_1Muxer.html#a9f08c1385506636b800769480869e04f',1,'shaka::media::Muxer::OnFlushRequest()'],['../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html#ab526bd53e4d49d7209f01d9b10b9ab52',1,'shaka::media::ChunkingHandler::OnFlushRequest()']]], - ['onkeyframe_1631',['OnKeyFrame',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a24b45b02ae133efedace054329469058',1,'shaka::media::CombinedMuxerListener::OnKeyFrame()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#af6c31f1a534d288e77953bc685248074',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnKeyFrame()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#ade7b35913ba90256e567085af1649138',1,'shaka::media::MuxerListener::OnKeyFrame()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#af18042e753bda8897128b0e091cf9999',1,'shaka::media::MpdNotifyMuxerListener::OnKeyFrame()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#a939b705752c295745cc076a20977c731',1,'shaka::media::HlsNotifyMuxerListener::OnKeyFrame()']]], - ['onliststart_1632',['OnListStart',['../d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html#a7b8b5447b3d573657f6dc029d2e6d8b7',1,'shaka::media::WebMContentEncodingsClient']]], - ['onmediaend_1633',['OnMediaEnd',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#aaf16580970d5e65d33c80cb9e8a57651',1,'shaka::media::CombinedMuxerListener::OnMediaEnd()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#aa2af080963ca02454786b8bb2ff6dd6d',1,'shaka::media::HlsNotifyMuxerListener::OnMediaEnd()'],['../dc/d73/classshaka_1_1media_1_1MockMuxerListener.html#a915fc76c19622d7e82aa74dd996edacd',1,'shaka::media::MockMuxerListener::OnMediaEnd()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#aa42f5472d5450d897f036ff582a31612',1,'shaka::media::MpdNotifyMuxerListener::OnMediaEnd()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#a11d4301cd53ab421f524bfa143eac21a',1,'shaka::media::MuxerListener::OnMediaEnd()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#ab2ab9bc34256f8016f0e827097b97ca1',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnMediaEnd(const MediaRanges &media_ranges, float duration_seconds) override']]], - ['onmediastart_1634',['OnMediaStart',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#a4811b4ce8292f0f449a35a837aeab74f',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnMediaStart()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#a31536ec385a7ec22f323a42b872b499a',1,'shaka::media::MuxerListener::OnMediaStart()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#ad0aeb94e2e1fe1b5ead506b690e6f70f',1,'shaka::media::MpdNotifyMuxerListener::OnMediaStart()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#ac60d8aed79f2a1581dfec1ed5ad10f22',1,'shaka::media::HlsNotifyMuxerListener::OnMediaStart()'],['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a289148dbb60121fb0f9ef0b469bc18be',1,'shaka::media::CombinedMuxerListener::OnMediaStart()'],['../d9/d44/classshaka_1_1media_1_1MultiCodecMuxerListener.html#a8faf6cac3ee794c43df74d27e0483b76',1,'shaka::media::MultiCodecMuxerListener::OnMediaStart()']]], - ['onnewsegment_1635',['OnNewSegment',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#afb4ac528f1f2650f02450b92b29c0101',1,'shaka::media::CombinedMuxerListener::OnNewSegment()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#a90a293a14ff0b63c0b07c7ea8adde59a',1,'shaka::media::HlsNotifyMuxerListener::OnNewSegment()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a5d9681e36de82c75c99631a55863d2fb',1,'shaka::media::MpdNotifyMuxerListener::OnNewSegment()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#aaf755e05c40fdadcca6113164f0585c6',1,'shaka::media::MuxerListener::OnNewSegment()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#abea88e872e32c4deaa0b2c54b9fc8c48',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnNewSegment()']]], - ['onnewsegmentforrepresentation_1636',['OnNewSegmentForRepresentation',['../d8/d8e/classshaka_1_1AdaptationSet.html#afcfb8f59204f6ec2f5dcd9cbd81dddf9',1,'shaka::AdaptationSet::OnNewSegmentForRepresentation()'],['../df/d94/classshaka_1_1RepresentationStateChangeListener.html#aae4407f3eeec13299f6f778a382ae5d5',1,'shaka::RepresentationStateChangeListener::OnNewSegmentForRepresentation()']]], - ['onprogress_1637',['OnProgress',['../d4/de6/classshaka_1_1media_1_1ProgressListener.html#a9c32e569c50194a106f7e9242749e7e7',1,'shaka::media::ProgressListener']]], - ['onsampledurationready_1638',['OnSampleDurationReady',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#a25fc470ed18733954876a4d4256aacf9',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnSampleDurationReady()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#ad54aef6c349082d996a436ebea11eff2',1,'shaka::media::MuxerListener::OnSampleDurationReady()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#ae6e2531350df353910b1d777427b822d',1,'shaka::media::HlsNotifyMuxerListener::OnSampleDurationReady()'],['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#abe3741f816b44948586cf17b2c31eb7f',1,'shaka::media::CombinedMuxerListener::OnSampleDurationReady()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a3b0457b0147310ba07169cf84cfce2aa',1,'shaka::media::MpdNotifyMuxerListener::OnSampleDurationReady()']]], - ['onsetframerateforrepresentation_1639',['OnSetFrameRateForRepresentation',['../d8/d8e/classshaka_1_1AdaptationSet.html#a37904780833b552b7f95f124ffd10456',1,'shaka::AdaptationSet::OnSetFrameRateForRepresentation()'],['../df/d94/classshaka_1_1RepresentationStateChangeListener.html#a64bc6f8299a1479c85f294f8ab3f6819',1,'shaka::RepresentationStateChangeListener::OnSetFrameRateForRepresentation()']]], - ['open_1640',['Open',['../d7/dbd/classshaka_1_1LocalFile.html#a8de3e633211e896c43319a5b6f080804',1,'shaka::LocalFile::Open()'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a9490dbf4bc02903484acb68f038f7fe2',1,'shaka::media::MkvWriter::Open()'],['../d4/dcb/classshaka_1_1UdpFile.html#abebdd864ece2240f84faf0f602fc27ce',1,'shaka::UdpFile::Open()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#a353eb138e2f23f4e75c8c56580050aa0',1,'shaka::ThreadedIoFile::Open()'],['../de/dad/classshaka_1_1MemoryFile.html#adcfb56e702dcee156b4b103180134241',1,'shaka::MemoryFile::Open()'],['../d1/dc7/classshaka_1_1HttpFile.html#a268437f6b45da1fe07f3d541c6b6f808',1,'shaka::HttpFile::Open()'],['../d3/d73/classshaka_1_1File.html#a68a15f623c2a1601879f291f93a1f464',1,'shaka::File::Open()=0'],['../d3/d73/classshaka_1_1File.html#ac7b5143f9b8c3e786762fe4ada2b8dcf',1,'shaka::File::Open(const char *file_name, const char *mode)'],['../dd/d40/classshaka_1_1CallbackFile.html#ac7260f6114fc4f234df79a163abc6c0e',1,'shaka::CallbackFile::Open()']]], - ['openwithnobuffering_1641',['OpenWithNoBuffering',['../d3/d73/classshaka_1_1File.html#a0a50526352bd6e946c4f33d3e8431b2d',1,'shaka::File']]], - ['optimizesampleentries_1642',['OptimizeSampleEntries',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#a208b7b8dd83e73c4206469695a3216d4',1,'shaka::media::mp4::Fragmenter']]], - ['outputfilename_1643',['OutputFileName',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#a8d4178714145fa2d18821840db8fb2a6',1,'shaka::media::SegmentTestBase']]], - ['overrideclock_1644',['OverrideClock',['../da/d2a/classshaka_1_1media_1_1MuxerFactory.html#a619bcd10471523c7298718d29a51b191',1,'shaka::media::MuxerFactory']]] + ['oncueevent_1628',['OnCueEvent',['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#a63f5e613bba435a8496d48d87ea66505',1,'shaka::media::HlsNotifyMuxerListener::OnCueEvent()'],['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a6d4c96d42b1fb17b4b1194dd7d584956',1,'shaka::media::CombinedMuxerListener::OnCueEvent()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#aec15d878b48b81b4aafd8e7f8a059613',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnCueEvent()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a1837b4ff54c1eef191448c49bb3ccc56',1,'shaka::media::MpdNotifyMuxerListener::OnCueEvent()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#aa9d6d113d7a0b58fffc1abac99013757',1,'shaka::media::MuxerListener::OnCueEvent()']]], + ['onencryptioninfoready_1629',['OnEncryptionInfoReady',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a445b97bf06c20a44ae5d0fef926cbd9f',1,'shaka::media::CombinedMuxerListener::OnEncryptionInfoReady()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#a8be7a524212bdd401150aa6bcb374792',1,'shaka::media::HlsNotifyMuxerListener::OnEncryptionInfoReady()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a10071445982f736bb1e6e04133dd60cb',1,'shaka::media::MpdNotifyMuxerListener::OnEncryptionInfoReady()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#ab521acca727bbe01aa15c751325c0001',1,'shaka::media::MuxerListener::OnEncryptionInfoReady()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#a683882564ac762e2e94795964f8be4b8',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnEncryptionInfoReady()']]], + ['onencryptionstart_1630',['OnEncryptionStart',['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a56ccf04196458894f31d0db102153334',1,'shaka::media::MpdNotifyMuxerListener::OnEncryptionStart()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#ae8f6f65fbab9f301be5bb35f5b8d1cbc',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnEncryptionStart()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#a897463091f0effa647a8e2822f48b2ee',1,'shaka::media::MuxerListener::OnEncryptionStart()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#a49b4187f39abe517768364f7ecb280f9',1,'shaka::media::HlsNotifyMuxerListener::OnEncryptionStart()'],['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a40a2b9e923b6a6e255ee5632bffc1134',1,'shaka::media::CombinedMuxerListener::OnEncryptionStart()']]], + ['onflushrequest_1631',['OnFlushRequest',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a69a31b8ec1b85fd4790c7c2013c69a73',1,'shaka::media::MediaHandler::OnFlushRequest()'],['../df/d46/classshaka_1_1media_1_1Muxer.html#a9f08c1385506636b800769480869e04f',1,'shaka::media::Muxer::OnFlushRequest()'],['../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html#ab526bd53e4d49d7209f01d9b10b9ab52',1,'shaka::media::ChunkingHandler::OnFlushRequest()']]], + ['onkeyframe_1632',['OnKeyFrame',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a24b45b02ae133efedace054329469058',1,'shaka::media::CombinedMuxerListener::OnKeyFrame()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#af6c31f1a534d288e77953bc685248074',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnKeyFrame()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#ade7b35913ba90256e567085af1649138',1,'shaka::media::MuxerListener::OnKeyFrame()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#af18042e753bda8897128b0e091cf9999',1,'shaka::media::MpdNotifyMuxerListener::OnKeyFrame()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#a939b705752c295745cc076a20977c731',1,'shaka::media::HlsNotifyMuxerListener::OnKeyFrame()']]], + ['onliststart_1633',['OnListStart',['../d9/d87/classshaka_1_1media_1_1WebMContentEncodingsClient.html#a7b8b5447b3d573657f6dc029d2e6d8b7',1,'shaka::media::WebMContentEncodingsClient']]], + ['onmediaend_1634',['OnMediaEnd',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#aaf16580970d5e65d33c80cb9e8a57651',1,'shaka::media::CombinedMuxerListener::OnMediaEnd()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#aa2af080963ca02454786b8bb2ff6dd6d',1,'shaka::media::HlsNotifyMuxerListener::OnMediaEnd()'],['../dc/d73/classshaka_1_1media_1_1MockMuxerListener.html#a915fc76c19622d7e82aa74dd996edacd',1,'shaka::media::MockMuxerListener::OnMediaEnd()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#aa42f5472d5450d897f036ff582a31612',1,'shaka::media::MpdNotifyMuxerListener::OnMediaEnd()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#a11d4301cd53ab421f524bfa143eac21a',1,'shaka::media::MuxerListener::OnMediaEnd()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#ab2ab9bc34256f8016f0e827097b97ca1',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnMediaEnd(const MediaRanges &media_ranges, float duration_seconds) override']]], + ['onmediastart_1635',['OnMediaStart',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#a4811b4ce8292f0f449a35a837aeab74f',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnMediaStart()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#a31536ec385a7ec22f323a42b872b499a',1,'shaka::media::MuxerListener::OnMediaStart()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#ad0aeb94e2e1fe1b5ead506b690e6f70f',1,'shaka::media::MpdNotifyMuxerListener::OnMediaStart()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#ac60d8aed79f2a1581dfec1ed5ad10f22',1,'shaka::media::HlsNotifyMuxerListener::OnMediaStart()'],['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#a289148dbb60121fb0f9ef0b469bc18be',1,'shaka::media::CombinedMuxerListener::OnMediaStart()'],['../d9/d44/classshaka_1_1media_1_1MultiCodecMuxerListener.html#a8faf6cac3ee794c43df74d27e0483b76',1,'shaka::media::MultiCodecMuxerListener::OnMediaStart()']]], + ['onnewsegment_1636',['OnNewSegment',['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#afb4ac528f1f2650f02450b92b29c0101',1,'shaka::media::CombinedMuxerListener::OnNewSegment()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#a90a293a14ff0b63c0b07c7ea8adde59a',1,'shaka::media::HlsNotifyMuxerListener::OnNewSegment()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a5d9681e36de82c75c99631a55863d2fb',1,'shaka::media::MpdNotifyMuxerListener::OnNewSegment()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#aaf755e05c40fdadcca6113164f0585c6',1,'shaka::media::MuxerListener::OnNewSegment()'],['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#abea88e872e32c4deaa0b2c54b9fc8c48',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnNewSegment()']]], + ['onnewsegmentforrepresentation_1637',['OnNewSegmentForRepresentation',['../d8/d8e/classshaka_1_1AdaptationSet.html#afcfb8f59204f6ec2f5dcd9cbd81dddf9',1,'shaka::AdaptationSet::OnNewSegmentForRepresentation()'],['../df/d94/classshaka_1_1RepresentationStateChangeListener.html#aae4407f3eeec13299f6f778a382ae5d5',1,'shaka::RepresentationStateChangeListener::OnNewSegmentForRepresentation()']]], + ['onprogress_1638',['OnProgress',['../d4/de6/classshaka_1_1media_1_1ProgressListener.html#a9c32e569c50194a106f7e9242749e7e7',1,'shaka::media::ProgressListener']]], + ['onsampledurationready_1639',['OnSampleDurationReady',['../db/dd0/classshaka_1_1media_1_1VodMediaInfoDumpMuxerListener.html#a25fc470ed18733954876a4d4256aacf9',1,'shaka::media::VodMediaInfoDumpMuxerListener::OnSampleDurationReady()'],['../dd/d7a/classshaka_1_1media_1_1MuxerListener.html#ad54aef6c349082d996a436ebea11eff2',1,'shaka::media::MuxerListener::OnSampleDurationReady()'],['../d5/dfa/classshaka_1_1media_1_1HlsNotifyMuxerListener.html#ae6e2531350df353910b1d777427b822d',1,'shaka::media::HlsNotifyMuxerListener::OnSampleDurationReady()'],['../d9/d68/classshaka_1_1media_1_1CombinedMuxerListener.html#abe3741f816b44948586cf17b2c31eb7f',1,'shaka::media::CombinedMuxerListener::OnSampleDurationReady()'],['../d9/da5/classshaka_1_1media_1_1MpdNotifyMuxerListener.html#a3b0457b0147310ba07169cf84cfce2aa',1,'shaka::media::MpdNotifyMuxerListener::OnSampleDurationReady()']]], + ['onsetframerateforrepresentation_1640',['OnSetFrameRateForRepresentation',['../d8/d8e/classshaka_1_1AdaptationSet.html#a37904780833b552b7f95f124ffd10456',1,'shaka::AdaptationSet::OnSetFrameRateForRepresentation()'],['../df/d94/classshaka_1_1RepresentationStateChangeListener.html#a64bc6f8299a1479c85f294f8ab3f6819',1,'shaka::RepresentationStateChangeListener::OnSetFrameRateForRepresentation()']]], + ['open_1641',['Open',['../d7/dbd/classshaka_1_1LocalFile.html#a8de3e633211e896c43319a5b6f080804',1,'shaka::LocalFile::Open()'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a9490dbf4bc02903484acb68f038f7fe2',1,'shaka::media::MkvWriter::Open()'],['../d4/dcb/classshaka_1_1UdpFile.html#abebdd864ece2240f84faf0f602fc27ce',1,'shaka::UdpFile::Open()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#a353eb138e2f23f4e75c8c56580050aa0',1,'shaka::ThreadedIoFile::Open()'],['../de/dad/classshaka_1_1MemoryFile.html#adcfb56e702dcee156b4b103180134241',1,'shaka::MemoryFile::Open()'],['../d1/dc7/classshaka_1_1HttpFile.html#a268437f6b45da1fe07f3d541c6b6f808',1,'shaka::HttpFile::Open()'],['../d3/d73/classshaka_1_1File.html#a68a15f623c2a1601879f291f93a1f464',1,'shaka::File::Open()=0'],['../d3/d73/classshaka_1_1File.html#ac7b5143f9b8c3e786762fe4ada2b8dcf',1,'shaka::File::Open(const char *file_name, const char *mode)'],['../dd/d40/classshaka_1_1CallbackFile.html#ac7260f6114fc4f234df79a163abc6c0e',1,'shaka::CallbackFile::Open()']]], + ['openwithnobuffering_1642',['OpenWithNoBuffering',['../d3/d73/classshaka_1_1File.html#a0a50526352bd6e946c4f33d3e8431b2d',1,'shaka::File']]], + ['optimizesampleentries_1643',['OptimizeSampleEntries',['../db/d95/classshaka_1_1media_1_1mp4_1_1Fragmenter.html#a208b7b8dd83e73c4206469695a3216d4',1,'shaka::media::mp4::Fragmenter']]], + ['outputfilename_1644',['OutputFileName',['../d2/dba/classshaka_1_1media_1_1SegmentTestBase.html#a8d4178714145fa2d18821840db8fb2a6',1,'shaka::media::SegmentTestBase']]], + ['overrideclock_1645',['OverrideClock',['../da/d2a/classshaka_1_1media_1_1MuxerFactory.html#a619bcd10471523c7298718d29a51b191',1,'shaka::media::MuxerFactory']]] ]; diff --git a/docs/search/functions_d.js b/docs/search/functions_d.js index f0504ec6f4..d017885fd1 100644 --- a/docs/search/functions_d.js +++ b/docs/search/functions_d.js @@ -1,42 +1,42 @@ var searchData= [ - ['packedaudiosegmenter_1645',['PackedAudioSegmenter',['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#a7cadce72cd6c52fd8564b79a5c328b9a',1,'shaka::media::PackedAudioSegmenter']]], - ['packedaudiowriter_1646',['PackedAudioWriter',['../d6/d48/classshaka_1_1media_1_1PackedAudioWriter.html#a8454bb12d56cb1e209822363ad3b0bc5',1,'shaka::media::PackedAudioWriter']]], - ['parse_1647',['Parse',['../d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html#a4105cdbe5ece03071a17c06fb27699b0',1,'shaka::media::mp4::MP4MediaParser::Parse()'],['../dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html#a246702aa75891cbe396ca7cc11e13eeb',1,'shaka::media::wvm::WvmMediaParser::Parse()'],['../d9/d40/classshaka_1_1media_1_1WebVttParser.html#aa38d64a81319d43a1194d26e9a39ac1d',1,'shaka::media::WebVttParser::Parse()'],['../d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html#a4e6f754e4fba24f7ea77fd0db959908b',1,'shaka::media::WebMWebVTTParser::Parse()'],['../d8/d86/classshaka_1_1media_1_1WebMTracksParser.html#aa4b6d4ac9fa57b47cbc17ee7c1bd3639',1,'shaka::media::WebMTracksParser::Parse()'],['../dc/dca/classshaka_1_1media_1_1WebMListParser.html#acd805b7eb25afcd9a3be2d8d88e3c6af',1,'shaka::media::WebMListParser::Parse()'],['../d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html#a40940ec01d965e3a78213861a93f7cfc',1,'shaka::media::WebMMediaParser::Parse()'],['../db/dae/classshaka_1_1media_1_1WebMInfoParser.html#ae0b4d37e02d43627b1bc9c64f43ee3f7',1,'shaka::media::WebMInfoParser::Parse()'],['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#aba1bae97c2d96181027e43b0a1993e67',1,'shaka::media::WebMClusterParser::Parse()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a209382fcd42e82a896c29e856627ca52',1,'shaka::media::mp4::Box::Parse()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#ad1bab37253425b1b7dd40182cbfc382d',1,'shaka::media::mp2t::Mpeg1Header::Parse()'],['../d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#af1a8a33b4ce61777c876717b005d0026',1,'shaka::media::mp2t::Mp2tMediaParser::Parse()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a334c1ceea413b309a5950cc06619853f',1,'shaka::media::mp2t::AudioHeader::Parse()'],['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a04733336c57460238d0279decaa3939c',1,'shaka::media::mp2t::Ac3Header::Parse()'],['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#a0c85f3cb0591f67c036276be82a1ba9d',1,'shaka::media::MediaParser::Parse()'],['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a6b3deca725a42113bf7303387ab74f0f',1,'shaka::media::AACAudioSpecificConfig::Parse()'],['../d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html#a31d8b37d8331b0d885ea5047e2587c32',1,'shaka::media::AV1CodecConfigurationRecord::Parse(const std::vector< uint8_t > &data)'],['../d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html#a14de696a901c49f7e69deabc1014507a',1,'shaka::media::AV1CodecConfigurationRecord::Parse(const uint8_t *data, size_t data_size)'],['../db/dc7/classshaka_1_1media_1_1AV1Parser.html#ae0f20c4724f1c65b27f9f155c6362e6d',1,'shaka::media::AV1Parser::Parse()'],['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#ab05a1971c60e510b7bc0b5b578dfb04b',1,'shaka::media::DecoderConfigurationRecord::Parse(const std::vector< uint8_t > &data)'],['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#a07b7d0dbae45971d4fd4a24652980f65',1,'shaka::media::DecoderConfigurationRecord::Parse(const uint8_t *data, size_t data_size)'],['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#a521cd928cf32e26701536e659917c970',1,'shaka::media::BaseDescriptor::Parse()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#ac1cdf6cf0f3d4a7438ae4c4cc8fb0762',1,'shaka::media::mp2t::AdtsHeader::Parse()'],['../d8/d14/classshaka_1_1media_1_1VP8Parser.html#a8baec0e4c74b0b220b777426d0c463e1',1,'shaka::media::VP8Parser::Parse()'],['../db/d5a/classshaka_1_1media_1_1VP9Parser.html#ae915c36aa472d70b55e3d65b24612e57',1,'shaka::media::VP9Parser::Parse()'],['../db/dcb/classshaka_1_1media_1_1VPxParser.html#abb83c8c74d304e83efb8fa60bd7bb722',1,'shaka::media::VPxParser::Parse()'],['../da/dbb/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord.html#a668d81b9e16ea4474eae99faed570f5f',1,'shaka::media::DOVIDecoderConfigurationRecord::Parse()']]], - ['parseboxes_1648',['ParseBoxes',['../d0/d86/structshaka_1_1media_1_1ProtectionSystemSpecificInfo.html#aa984e27d2655a451ea87ff0a4ddd8b79',1,'shaka::media::ProtectionSystemSpecificInfo']]], - ['parsecallbackfilename_1649',['ParseCallbackFileName',['../d3/d73/classshaka_1_1File.html#ae87642f9661588e47479721cd101bf7d',1,'shaka::File']]], - ['parsefrombox_1650',['ParseFromBox',['../d2/d24/classshaka_1_1media_1_1PsshBoxBuilder.html#a7ebab252f964cd679ca7cf232c61c947',1,'shaka::media::PsshBoxBuilder']]], - ['parsefrombuffer_1651',['ParseFromBuffer',['../d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html#a247ca9987470a6c724f1e099a78d3460',1,'shaka::media::mp4::SampleEncryptionEntry']]], - ['parsefromsampleencryptiondata_1652',['ParseFromSampleEncryptionData',['../d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html#a51f7a69108ea6dc32ea4ea6d5147d5a1',1,'shaka::media::mp4::SampleEncryption']]], - ['parsefromstring_1653',['ParseFromString',['../d9/dfe/classshaka_1_1UdpOptions.html#a3dff92e7ffb1ed0864dd87842aa2ad03',1,'shaka::UdpOptions']]], - ['parsemp4_1654',['ParseMP4',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#aac5eac6e0a62201dcb68fd3f084bb281',1,'shaka::media::VPCodecConfigurationRecord']]], - ['parsepps_1655',['ParsePps',['../de/dc2/classshaka_1_1media_1_1H265Parser.html#a222c85ac46e908c8478304f2be769d6d',1,'shaka::media::H265Parser']]], - ['parsesliceheader_1656',['ParseSliceHeader',['../de/dc2/classshaka_1_1media_1_1H265Parser.html#ae94e80774a60cc7b9cfdb7503f5047fe',1,'shaka::media::H265Parser']]], - ['parsesps_1657',['ParseSps',['../de/dc2/classshaka_1_1media_1_1H265Parser.html#a142cb83465f0fed7dba0da8e165b68fc',1,'shaka::media::H265Parser']]], - ['parsestreamdescriptor_1658',['ParseStreamDescriptor',['../d8/daf/namespaceshaka.html#a8d03e8120932485c8fa0c686e1e32dac',1,'shaka']]], - ['parsewebm_1659',['ParseWebM',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a3c432f4e5a256ed5fb18112ead37df10',1,'shaka::media::VPCodecConfigurationRecord']]], - ['payload_5fsize_1660',['payload_size',['../d6/dff/classshaka_1_1media_1_1Nalu.html#abe782e4298e7add8ce0a1c33e66cfcdb',1,'shaka::media::Nalu']]], - ['peek_1661',['Peek',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a92d6cca0ecfb54f6edf9a0408305e9cd',1,'shaka::media::ProducerConsumerQueue::Peek()'],['../d7/dda/classshaka_1_1media_1_1ByteQueue.html#a8565a6999f73f210ad2ac2e2ee5ada0e',1,'shaka::media::ByteQueue::Peek()']]], - ['peekat_1662',['PeekAt',['../d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html#a68832e85b25a9b543e54033bb70c4df6',1,'shaka::media::OffsetByteQueue']]], - ['period_1663',['Period',['../d8/de1/classshaka_1_1Period.html#a92f0486f20c430533a65d37a450ea020',1,'shaka::Period']]], - ['pespacketgenerator_1664',['PesPacketGenerator',['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a9aa5e45420af57c97605377487cb415a',1,'shaka::media::mp2t::PesPacketGenerator']]], - ['pixel_5fheight_1665',['pixel_height',['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a40b2e26c533904ff890f4ea8086d7f71',1,'shaka::media::VideoStreamInfo']]], - ['pixel_5fwidth_1666',['pixel_width',['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#ac0356f4786e3cc2699c13a253c5f3cb5',1,'shaka::media::VideoStreamInfo']]], - ['playreadykeysource_1667',['PlayReadyKeySource',['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#abe508cd48429ff2c6935b47e77672c5f',1,'shaka::media::PlayReadyKeySource']]], - ['pop_1668',['Pop',['../d7/dda/classshaka_1_1media_1_1ByteQueue.html#a31b30d39d14fca3ce722b4233de95c79',1,'shaka::media::ByteQueue::Pop()'],['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a935e9ddee232be82d224c9b81b3b4f88',1,'shaka::media::ProducerConsumerQueue::Pop()']]], - ['pos_1669',['Pos',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#afedc11a2920e04f116802c33d2fda851',1,'shaka::media::mp4::BoxBuffer']]], - ['position_1670',['Position',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a468dcd83a7c087cc83e755703488e92b',1,'shaka::media::MkvWriter::Position() const override'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a33db41e57d0ef5a35b7f929e1a1d90db',1,'shaka::media::MkvWriter::Position(mkvmuxer::int64 position) override']]], - ['post_1671',['Post',['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#a31e904e2f802e5626c4420675c76d513',1,'shaka::media::HttpKeyFetcher']]], - ['preparechildren_1672',['PrepareChildren',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a29158ec9769dafbdcf1192abf9a2aa2a',1,'shaka::media::mp4::BoxBuffer']]], - ['printerror_1673',['PrintError',['../d8/daf/namespaceshaka.html#a54fadd9c7ef14b39cd0355a5c269c772',1,'shaka']]], - ['printwarning_1674',['PrintWarning',['../d8/daf/namespaceshaka.html#a42273d2ca4220d3de00a759a711e385e',1,'shaka']]], - ['process_1675',['Process',['../d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html#a7887e6060eb572036674ecb9a7e045c4',1,'shaka::media::EncryptionHandler::Process()'],['../db/d5a/classshaka_1_1media_1_1CcStreamFilter.html#a10dcba65d3832002231d1ec368eab002',1,'shaka::media::CcStreamFilter::Process()'],['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#acb614e9f43e1eb6f837801b15b78c0b4',1,'shaka::media::MediaHandler::Process()'],['../df/d46/classshaka_1_1media_1_1Muxer.html#aec730b070245231a0887787005c06eee',1,'shaka::media::Muxer::Process()'],['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a869b21d13f02d4d5c0519f9eb35117cd',1,'shaka::media::Demuxer::Process()'],['../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html#a44c30ffd7c283be2ba4347bda7848633',1,'shaka::media::ChunkingHandler::Process()']]], - ['processnalu_1676',['ProcessNalu',['../da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html#a3520720e77722049f2ddaeec87461b42',1,'shaka::media::H264VideoSliceHeaderParser::ProcessNalu()'],['../d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html#af388dbe825193fa7844b84a120db9d9b',1,'shaka::media::H265VideoSliceHeaderParser::ProcessNalu()'],['../dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html#acd737bfa18b3a0db900df0665143fe5f',1,'shaka::media::VideoSliceHeaderParser::ProcessNalu()']]], - ['producerconsumerqueue_1677',['ProducerConsumerQueue',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#ad7ccb149baa88e5f8356be18344d2baf',1,'shaka::media::ProducerConsumerQueue::ProducerConsumerQueue(size_t capacity)'],['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a80ff75afdbbf7f567dcb57a755542ffc',1,'shaka::media::ProducerConsumerQueue::ProducerConsumerQueue(size_t capacity, size_t starting_pos)']]], - ['promoteat_1678',['PromoteAt',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a17af2cb9949f40ee8aa06cfdd55b2c16',1,'shaka::media::SyncPointQueue']]], - ['psshgenerator_1679',['PsshGenerator',['../d8/dbf/classshaka_1_1media_1_1PsshGenerator.html#a59fd5e52484336b34f9c25887362dbb5',1,'shaka::media::PsshGenerator']]], - ['pts_1680',['pts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#aab384f93421d95631f70ec4850f93a5b',1,'shaka::media::mp2t::PesPacket']]], - ['push_1681',['Push',['../d7/dda/classshaka_1_1media_1_1ByteQueue.html#acea792e406efe5119cec2e3e522e02c2',1,'shaka::media::ByteQueue::Push()'],['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a6eaf80daa8c96b0157f5fcd9763dbec1',1,'shaka::media::ProducerConsumerQueue::Push()']]], - ['pushdata_1682',['PushData',['../db/de2/classshaka_1_1media_1_1LineReader.html#aefbf919837a91de33bac0f14feb25a96',1,'shaka::media::LineReader::PushData()'],['../df/d0d/classshaka_1_1media_1_1BlockReader.html#a3db5ba0a907ab3d9332e8d2eac23c9c8',1,'shaka::media::BlockReader::PushData()']]], - ['pushsample_1683',['PushSample',['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a7c6b935ff8daea26e918b243f996da2a',1,'shaka::media::mp2t::PesPacketGenerator']]] + ['packedaudiosegmenter_1646',['PackedAudioSegmenter',['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#a7cadce72cd6c52fd8564b79a5c328b9a',1,'shaka::media::PackedAudioSegmenter']]], + ['packedaudiowriter_1647',['PackedAudioWriter',['../d6/d48/classshaka_1_1media_1_1PackedAudioWriter.html#a8454bb12d56cb1e209822363ad3b0bc5',1,'shaka::media::PackedAudioWriter']]], + ['parse_1648',['Parse',['../d7/dd5/classshaka_1_1media_1_1mp4_1_1MP4MediaParser.html#a4105cdbe5ece03071a17c06fb27699b0',1,'shaka::media::mp4::MP4MediaParser::Parse()'],['../dc/d18/classshaka_1_1media_1_1wvm_1_1WvmMediaParser.html#a246702aa75891cbe396ca7cc11e13eeb',1,'shaka::media::wvm::WvmMediaParser::Parse()'],['../d9/d40/classshaka_1_1media_1_1WebVttParser.html#aa38d64a81319d43a1194d26e9a39ac1d',1,'shaka::media::WebVttParser::Parse()'],['../d4/d59/classshaka_1_1media_1_1WebMWebVTTParser.html#a4e6f754e4fba24f7ea77fd0db959908b',1,'shaka::media::WebMWebVTTParser::Parse()'],['../d8/d86/classshaka_1_1media_1_1WebMTracksParser.html#aa4b6d4ac9fa57b47cbc17ee7c1bd3639',1,'shaka::media::WebMTracksParser::Parse()'],['../dc/dca/classshaka_1_1media_1_1WebMListParser.html#acd805b7eb25afcd9a3be2d8d88e3c6af',1,'shaka::media::WebMListParser::Parse()'],['../d2/ddb/classshaka_1_1media_1_1WebMMediaParser.html#a40940ec01d965e3a78213861a93f7cfc',1,'shaka::media::WebMMediaParser::Parse()'],['../db/dae/classshaka_1_1media_1_1WebMInfoParser.html#ae0b4d37e02d43627b1bc9c64f43ee3f7',1,'shaka::media::WebMInfoParser::Parse()'],['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#aba1bae97c2d96181027e43b0a1993e67',1,'shaka::media::WebMClusterParser::Parse()'],['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a209382fcd42e82a896c29e856627ca52',1,'shaka::media::mp4::Box::Parse()'],['../dd/d79/classshaka_1_1media_1_1mp2t_1_1Mpeg1Header.html#ad1bab37253425b1b7dd40182cbfc382d',1,'shaka::media::mp2t::Mpeg1Header::Parse()'],['../d3/dc1/classshaka_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#af1a8a33b4ce61777c876717b005d0026',1,'shaka::media::mp2t::Mp2tMediaParser::Parse()'],['../d1/dba/classshaka_1_1media_1_1mp2t_1_1AudioHeader.html#a334c1ceea413b309a5950cc06619853f',1,'shaka::media::mp2t::AudioHeader::Parse()'],['../dc/d21/classshaka_1_1media_1_1mp2t_1_1Ac3Header.html#a04733336c57460238d0279decaa3939c',1,'shaka::media::mp2t::Ac3Header::Parse()'],['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#a0c85f3cb0591f67c036276be82a1ba9d',1,'shaka::media::MediaParser::Parse()'],['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a6b3deca725a42113bf7303387ab74f0f',1,'shaka::media::AACAudioSpecificConfig::Parse()'],['../d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html#a31d8b37d8331b0d885ea5047e2587c32',1,'shaka::media::AV1CodecConfigurationRecord::Parse(const std::vector< uint8_t > &data)'],['../d1/d83/classshaka_1_1media_1_1AV1CodecConfigurationRecord.html#a14de696a901c49f7e69deabc1014507a',1,'shaka::media::AV1CodecConfigurationRecord::Parse(const uint8_t *data, size_t data_size)'],['../db/dc7/classshaka_1_1media_1_1AV1Parser.html#ae0f20c4724f1c65b27f9f155c6362e6d',1,'shaka::media::AV1Parser::Parse()'],['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#ab05a1971c60e510b7bc0b5b578dfb04b',1,'shaka::media::DecoderConfigurationRecord::Parse(const std::vector< uint8_t > &data)'],['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#a07b7d0dbae45971d4fd4a24652980f65',1,'shaka::media::DecoderConfigurationRecord::Parse(const uint8_t *data, size_t data_size)'],['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#a521cd928cf32e26701536e659917c970',1,'shaka::media::BaseDescriptor::Parse()'],['../d3/d0c/classshaka_1_1media_1_1mp2t_1_1AdtsHeader.html#ac1cdf6cf0f3d4a7438ae4c4cc8fb0762',1,'shaka::media::mp2t::AdtsHeader::Parse()'],['../d8/d14/classshaka_1_1media_1_1VP8Parser.html#a8baec0e4c74b0b220b777426d0c463e1',1,'shaka::media::VP8Parser::Parse()'],['../db/d5a/classshaka_1_1media_1_1VP9Parser.html#ae915c36aa472d70b55e3d65b24612e57',1,'shaka::media::VP9Parser::Parse()'],['../db/dcb/classshaka_1_1media_1_1VPxParser.html#abb83c8c74d304e83efb8fa60bd7bb722',1,'shaka::media::VPxParser::Parse()'],['../da/dbb/classshaka_1_1media_1_1DOVIDecoderConfigurationRecord.html#a668d81b9e16ea4474eae99faed570f5f',1,'shaka::media::DOVIDecoderConfigurationRecord::Parse()']]], + ['parseboxes_1649',['ParseBoxes',['../d0/d86/structshaka_1_1media_1_1ProtectionSystemSpecificInfo.html#aa984e27d2655a451ea87ff0a4ddd8b79',1,'shaka::media::ProtectionSystemSpecificInfo']]], + ['parsecallbackfilename_1650',['ParseCallbackFileName',['../d3/d73/classshaka_1_1File.html#ae87642f9661588e47479721cd101bf7d',1,'shaka::File']]], + ['parsefrombox_1651',['ParseFromBox',['../d2/d24/classshaka_1_1media_1_1PsshBoxBuilder.html#a7ebab252f964cd679ca7cf232c61c947',1,'shaka::media::PsshBoxBuilder']]], + ['parsefrombuffer_1652',['ParseFromBuffer',['../d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html#a247ca9987470a6c724f1e099a78d3460',1,'shaka::media::mp4::SampleEncryptionEntry']]], + ['parsefromsampleencryptiondata_1653',['ParseFromSampleEncryptionData',['../d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html#a51f7a69108ea6dc32ea4ea6d5147d5a1',1,'shaka::media::mp4::SampleEncryption']]], + ['parsefromstring_1654',['ParseFromString',['../d9/dfe/classshaka_1_1UdpOptions.html#a3dff92e7ffb1ed0864dd87842aa2ad03',1,'shaka::UdpOptions']]], + ['parsemp4_1655',['ParseMP4',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#aac5eac6e0a62201dcb68fd3f084bb281',1,'shaka::media::VPCodecConfigurationRecord']]], + ['parsepps_1656',['ParsePps',['../de/dc2/classshaka_1_1media_1_1H265Parser.html#a222c85ac46e908c8478304f2be769d6d',1,'shaka::media::H265Parser']]], + ['parsesliceheader_1657',['ParseSliceHeader',['../de/dc2/classshaka_1_1media_1_1H265Parser.html#ae94e80774a60cc7b9cfdb7503f5047fe',1,'shaka::media::H265Parser']]], + ['parsesps_1658',['ParseSps',['../de/dc2/classshaka_1_1media_1_1H265Parser.html#a142cb83465f0fed7dba0da8e165b68fc',1,'shaka::media::H265Parser']]], + ['parsestreamdescriptor_1659',['ParseStreamDescriptor',['../d8/daf/namespaceshaka.html#a8d03e8120932485c8fa0c686e1e32dac',1,'shaka']]], + ['parsewebm_1660',['ParseWebM',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a3c432f4e5a256ed5fb18112ead37df10',1,'shaka::media::VPCodecConfigurationRecord']]], + ['payload_5fsize_1661',['payload_size',['../d6/dff/classshaka_1_1media_1_1Nalu.html#abe782e4298e7add8ce0a1c33e66cfcdb',1,'shaka::media::Nalu']]], + ['peek_1662',['Peek',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a92d6cca0ecfb54f6edf9a0408305e9cd',1,'shaka::media::ProducerConsumerQueue::Peek()'],['../d7/dda/classshaka_1_1media_1_1ByteQueue.html#a8565a6999f73f210ad2ac2e2ee5ada0e',1,'shaka::media::ByteQueue::Peek()']]], + ['peekat_1663',['PeekAt',['../d9/df9/classshaka_1_1media_1_1OffsetByteQueue.html#a68832e85b25a9b543e54033bb70c4df6',1,'shaka::media::OffsetByteQueue']]], + ['period_1664',['Period',['../d8/de1/classshaka_1_1Period.html#a92f0486f20c430533a65d37a450ea020',1,'shaka::Period']]], + ['pespacketgenerator_1665',['PesPacketGenerator',['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a9aa5e45420af57c97605377487cb415a',1,'shaka::media::mp2t::PesPacketGenerator']]], + ['pixel_5fheight_1666',['pixel_height',['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#a40b2e26c533904ff890f4ea8086d7f71',1,'shaka::media::VideoStreamInfo']]], + ['pixel_5fwidth_1667',['pixel_width',['../d6/db1/classshaka_1_1media_1_1VideoStreamInfo.html#ac0356f4786e3cc2699c13a253c5f3cb5',1,'shaka::media::VideoStreamInfo']]], + ['playreadykeysource_1668',['PlayReadyKeySource',['../d4/da6/classshaka_1_1media_1_1PlayReadyKeySource.html#abe508cd48429ff2c6935b47e77672c5f',1,'shaka::media::PlayReadyKeySource']]], + ['pop_1669',['Pop',['../d7/dda/classshaka_1_1media_1_1ByteQueue.html#a31b30d39d14fca3ce722b4233de95c79',1,'shaka::media::ByteQueue::Pop()'],['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a935e9ddee232be82d224c9b81b3b4f88',1,'shaka::media::ProducerConsumerQueue::Pop()']]], + ['pos_1670',['Pos',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#afedc11a2920e04f116802c33d2fda851',1,'shaka::media::mp4::BoxBuffer']]], + ['position_1671',['Position',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a468dcd83a7c087cc83e755703488e92b',1,'shaka::media::MkvWriter::Position() const override'],['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a33db41e57d0ef5a35b7f929e1a1d90db',1,'shaka::media::MkvWriter::Position(mkvmuxer::int64 position) override']]], + ['post_1672',['Post',['../d7/de0/classshaka_1_1media_1_1HttpKeyFetcher.html#a31e904e2f802e5626c4420675c76d513',1,'shaka::media::HttpKeyFetcher']]], + ['preparechildren_1673',['PrepareChildren',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a29158ec9769dafbdcf1192abf9a2aa2a',1,'shaka::media::mp4::BoxBuffer']]], + ['printerror_1674',['PrintError',['../d8/daf/namespaceshaka.html#a54fadd9c7ef14b39cd0355a5c269c772',1,'shaka']]], + ['printwarning_1675',['PrintWarning',['../d8/daf/namespaceshaka.html#a42273d2ca4220d3de00a759a711e385e',1,'shaka']]], + ['process_1676',['Process',['../d6/d4c/classshaka_1_1media_1_1EncryptionHandler.html#a7887e6060eb572036674ecb9a7e045c4',1,'shaka::media::EncryptionHandler::Process()'],['../db/d5a/classshaka_1_1media_1_1CcStreamFilter.html#a10dcba65d3832002231d1ec368eab002',1,'shaka::media::CcStreamFilter::Process()'],['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#acb614e9f43e1eb6f837801b15b78c0b4',1,'shaka::media::MediaHandler::Process()'],['../df/d46/classshaka_1_1media_1_1Muxer.html#aec730b070245231a0887787005c06eee',1,'shaka::media::Muxer::Process()'],['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a869b21d13f02d4d5c0519f9eb35117cd',1,'shaka::media::Demuxer::Process()'],['../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html#a44c30ffd7c283be2ba4347bda7848633',1,'shaka::media::ChunkingHandler::Process()']]], + ['processnalu_1677',['ProcessNalu',['../da/df0/classshaka_1_1media_1_1H264VideoSliceHeaderParser.html#a3520720e77722049f2ddaeec87461b42',1,'shaka::media::H264VideoSliceHeaderParser::ProcessNalu()'],['../d1/d79/classshaka_1_1media_1_1H265VideoSliceHeaderParser.html#af388dbe825193fa7844b84a120db9d9b',1,'shaka::media::H265VideoSliceHeaderParser::ProcessNalu()'],['../dd/de4/classshaka_1_1media_1_1VideoSliceHeaderParser.html#acd737bfa18b3a0db900df0665143fe5f',1,'shaka::media::VideoSliceHeaderParser::ProcessNalu()']]], + ['producerconsumerqueue_1678',['ProducerConsumerQueue',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#ad7ccb149baa88e5f8356be18344d2baf',1,'shaka::media::ProducerConsumerQueue::ProducerConsumerQueue(size_t capacity)'],['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a80ff75afdbbf7f567dcb57a755542ffc',1,'shaka::media::ProducerConsumerQueue::ProducerConsumerQueue(size_t capacity, size_t starting_pos)']]], + ['promoteat_1679',['PromoteAt',['../d0/dea/classshaka_1_1media_1_1SyncPointQueue.html#a17af2cb9949f40ee8aa06cfdd55b2c16',1,'shaka::media::SyncPointQueue']]], + ['psshgenerator_1680',['PsshGenerator',['../d8/dbf/classshaka_1_1media_1_1PsshGenerator.html#a59fd5e52484336b34f9c25887362dbb5',1,'shaka::media::PsshGenerator']]], + ['pts_1681',['pts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#aab384f93421d95631f70ec4850f93a5b',1,'shaka::media::mp2t::PesPacket']]], + ['push_1682',['Push',['../d7/dda/classshaka_1_1media_1_1ByteQueue.html#acea792e406efe5119cec2e3e522e02c2',1,'shaka::media::ByteQueue::Push()'],['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a6eaf80daa8c96b0157f5fcd9763dbec1',1,'shaka::media::ProducerConsumerQueue::Push()']]], + ['pushdata_1683',['PushData',['../db/de2/classshaka_1_1media_1_1LineReader.html#aefbf919837a91de33bac0f14feb25a96',1,'shaka::media::LineReader::PushData()'],['../df/d0d/classshaka_1_1media_1_1BlockReader.html#a3db5ba0a907ab3d9332e8d2eac23c9c8',1,'shaka::media::BlockReader::PushData()']]], + ['pushsample_1684',['PushSample',['../d5/de0/classshaka_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a7c6b935ff8daea26e918b243f996da2a',1,'shaka::media::mp2t::PesPacketGenerator']]] ]; diff --git a/docs/search/functions_e.js b/docs/search/functions_e.js index 27cf3a418a..e3ea619b22 100644 --- a/docs/search/functions_e.js +++ b/docs/search/functions_e.js @@ -1,24 +1,24 @@ var searchData= [ - ['read_1684',['Read',['../d3/d73/classshaka_1_1File.html#a6e1ecb2904b609554d332290f20fde0a',1,'shaka::File::Read()'],['../dd/d40/classshaka_1_1CallbackFile.html#a867e0c5eaf81a41902e1370deb912617',1,'shaka::CallbackFile::Read()'],['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#aa2d2dcf924e531e0ce11194eac3cb497',1,'shaka::media::BaseDescriptor::Read()'],['../d4/dcb/classshaka_1_1UdpFile.html#a74d352b51d543905abd4a12687e1bb98',1,'shaka::UdpFile::Read()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#af45702d95d4e46e93b1f4a897844212e',1,'shaka::ThreadedIoFile::Read()'],['../de/dad/classshaka_1_1MemoryFile.html#aeacb3b7f72e0c412bd0cba8a6f1ed62f',1,'shaka::MemoryFile::Read()'],['../d7/dbd/classshaka_1_1LocalFile.html#a27c3bf51fe18ebc10bf42ebcec20c9cb',1,'shaka::LocalFile::Read()'],['../df/d4e/classshaka_1_1IoCache.html#a7cc144c2f848725db08b3ca175475fc2',1,'shaka::IoCache::Read()'],['../d1/dc7/classshaka_1_1HttpFile.html#a5ae6eb4ad069afe42a6b3e940cefd49a',1,'shaka::HttpFile::Read()']]], - ['read1_1685',['Read1',['../d9/d13/classshaka_1_1media_1_1BufferReader.html#a65b65ad5a5ebc9d66182c38ec9876c05',1,'shaka::media::BufferReader']]], - ['readallchildren_1686',['ReadAllChildren',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#a8b5c7d5a487fb3063eae1495aa3a7566',1,'shaka::media::mp4::BoxReader']]], - ['readbits_1687',['ReadBits',['../d6/da9/classshaka_1_1media_1_1BitReader.html#ae40382c4ca4a57b3bb3531a337aebbe4',1,'shaka::media::BitReader']]], - ['readbox_1688',['ReadBox',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#ae348922875d67128d2af6d88b692e205',1,'shaka::media::mp4::BoxReader']]], - ['readchild_1689',['ReadChild',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#a68defcd9be85bbd5cbded3bee86aa03a',1,'shaka::media::mp4::BoxReader']]], - ['readchildren_1690',['ReadChildren',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#aedb3a49da398833cda1caa1ad01a364a',1,'shaka::media::mp4::BoxReader']]], - ['readcstring_1691',['ReadCString',['../d9/d13/classshaka_1_1media_1_1BufferReader.html#ae2e74844020e15fb3c2d2a7b5bfb31f5',1,'shaka::media::BufferReader']]], - ['reader_1692',['reader',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a6e7c1f50071b52d7f68e094f0401d3d9',1,'shaka::media::mp4::BoxBuffer']]], - ['readfiletostring_1693',['ReadFileToString',['../d3/d73/classshaka_1_1File.html#ac9a19cb5fc45664ca440996bf1201c30',1,'shaka::File']]], - ['reading_1694',['Reading',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#ab644d8a65ae5acb37059a0fc50dc164a',1,'shaka::media::mp4::BoxBuffer']]], - ['readnbytesinto8_1695',['ReadNBytesInto8',['../d9/d13/classshaka_1_1media_1_1BufferReader.html#ac98c6631c07300a6b78ec58bfd4ced30',1,'shaka::media::BufferReader']]], - ['readwrite_1696',['ReadWrite',['../d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html#ac32331c506252793b4447940abbeafd9',1,'shaka::media::mp4::SampleEncryptionEntry']]], - ['readwritechild_1697',['ReadWriteChild',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#af1a1b7ca8e4749e862abdda9ba4501cb',1,'shaka::media::mp4::BoxBuffer']]], - ['readwriteheaderinternal_1698',['ReadWriteHeaderInternal',['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a160958fd4dd933f8b760bf61ec0f72c6',1,'shaka::media::mp4::Box::ReadWriteHeaderInternal()'],['../dd/dc1/structshaka_1_1media_1_1mp4_1_1FullBox.html#ad72e5a2d0def5bbba75b440d060ef1cf',1,'shaka::media::mp4::FullBox::ReadWriteHeaderInternal()']]], - ['readwritestring_1699',['ReadWriteString',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#ac00df060effff87645b9508ba15fb67d',1,'shaka::media::mp4::BoxBuffer']]], - ['readwriteuint64nbytes_1700',['ReadWriteUInt64NBytes',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a53c6b6a9bce0bb0fa61b9ce95c3f5cef',1,'shaka::media::mp4::BoxBuffer']]], - ['reopen_1701',['Reopen',['../df/d4e/classshaka_1_1IoCache.html#ac2c7cbec6d771de00fe0cfe0b7d0e454',1,'shaka::IoCache']]], - ['representation_1702',['Representation',['../de/d52/classshaka_1_1Representation.html#a1854062c6c5a3a1e622fca4d47eb4903',1,'shaka::Representation::Representation(const Representation &representation, std::unique_ptr< RepresentationStateChangeListener > state_change_listener)'],['../de/d52/classshaka_1_1Representation.html#a997138fcaa5deef5151a64a2d7ce6aeb',1,'shaka::Representation::Representation(const MediaInfo &media_info, const MpdOptions &mpd_options, uint32_t representation_id, std::unique_ptr< RepresentationStateChangeListener > state_change_listener)']]], - ['reset_1703',['Reset',['../d7/dda/classshaka_1_1media_1_1ByteQueue.html#ab1659ef71098c37e9fb4e55ab1664e84',1,'shaka::media::ByteQueue::Reset()'],['../d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html#afd1a338848c52dc4db79d89ae13b6ea6',1,'shaka::media::WebMAudioClient::Reset()'],['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#abb306c3299a7279125b8f321ef5bbc94',1,'shaka::media::WebMClusterParser::Reset()'],['../dc/dca/classshaka_1_1media_1_1WebMListParser.html#a4ebac4e1a4165017d206d4aa5c4c0350',1,'shaka::media::WebMListParser::Reset()'],['../d3/d67/classshaka_1_1media_1_1WebMVideoClient.html#af3ad16a6046f60abf43a798747fc1edc',1,'shaka::media::WebMVideoClient::Reset()']]], - ['run_1704',['Run',['../dc/df0/classshaka_1_1media_1_1ClosureThread.html#a2c95d317c0b83b66ac7991c3506dc4e7',1,'shaka::media::ClosureThread::Run()'],['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a006e77dc91701543231bfda75b946d3c',1,'shaka::media::Demuxer::Run()'],['../db/dd0/classshaka_1_1Packager.html#a48275206bc7032eb69607081ac0ada08',1,'shaka::Packager::Run()']]] + ['read_1685',['Read',['../d3/d73/classshaka_1_1File.html#a6e1ecb2904b609554d332290f20fde0a',1,'shaka::File::Read()'],['../dd/d40/classshaka_1_1CallbackFile.html#a867e0c5eaf81a41902e1370deb912617',1,'shaka::CallbackFile::Read()'],['../df/db9/classshaka_1_1media_1_1BaseDescriptor.html#aa2d2dcf924e531e0ce11194eac3cb497',1,'shaka::media::BaseDescriptor::Read()'],['../d4/dcb/classshaka_1_1UdpFile.html#a74d352b51d543905abd4a12687e1bb98',1,'shaka::UdpFile::Read()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#af45702d95d4e46e93b1f4a897844212e',1,'shaka::ThreadedIoFile::Read()'],['../de/dad/classshaka_1_1MemoryFile.html#aeacb3b7f72e0c412bd0cba8a6f1ed62f',1,'shaka::MemoryFile::Read()'],['../d7/dbd/classshaka_1_1LocalFile.html#a27c3bf51fe18ebc10bf42ebcec20c9cb',1,'shaka::LocalFile::Read()'],['../df/d4e/classshaka_1_1IoCache.html#a7cc144c2f848725db08b3ca175475fc2',1,'shaka::IoCache::Read()'],['../d1/dc7/classshaka_1_1HttpFile.html#a5ae6eb4ad069afe42a6b3e940cefd49a',1,'shaka::HttpFile::Read()']]], + ['read1_1686',['Read1',['../d9/d13/classshaka_1_1media_1_1BufferReader.html#a65b65ad5a5ebc9d66182c38ec9876c05',1,'shaka::media::BufferReader']]], + ['readallchildren_1687',['ReadAllChildren',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#a8b5c7d5a487fb3063eae1495aa3a7566',1,'shaka::media::mp4::BoxReader']]], + ['readbits_1688',['ReadBits',['../d6/da9/classshaka_1_1media_1_1BitReader.html#ae40382c4ca4a57b3bb3531a337aebbe4',1,'shaka::media::BitReader']]], + ['readbox_1689',['ReadBox',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#ae348922875d67128d2af6d88b692e205',1,'shaka::media::mp4::BoxReader']]], + ['readchild_1690',['ReadChild',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#a68defcd9be85bbd5cbded3bee86aa03a',1,'shaka::media::mp4::BoxReader']]], + ['readchildren_1691',['ReadChildren',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#aedb3a49da398833cda1caa1ad01a364a',1,'shaka::media::mp4::BoxReader']]], + ['readcstring_1692',['ReadCString',['../d9/d13/classshaka_1_1media_1_1BufferReader.html#ae2e74844020e15fb3c2d2a7b5bfb31f5',1,'shaka::media::BufferReader']]], + ['reader_1693',['reader',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a6e7c1f50071b52d7f68e094f0401d3d9',1,'shaka::media::mp4::BoxBuffer']]], + ['readfiletostring_1694',['ReadFileToString',['../d3/d73/classshaka_1_1File.html#ac9a19cb5fc45664ca440996bf1201c30',1,'shaka::File']]], + ['reading_1695',['Reading',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#ab644d8a65ae5acb37059a0fc50dc164a',1,'shaka::media::mp4::BoxBuffer']]], + ['readnbytesinto8_1696',['ReadNBytesInto8',['../d9/d13/classshaka_1_1media_1_1BufferReader.html#ac98c6631c07300a6b78ec58bfd4ced30',1,'shaka::media::BufferReader']]], + ['readwrite_1697',['ReadWrite',['../d6/dcb/structshaka_1_1media_1_1mp4_1_1SampleEncryptionEntry.html#ac32331c506252793b4447940abbeafd9',1,'shaka::media::mp4::SampleEncryptionEntry']]], + ['readwritechild_1698',['ReadWriteChild',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#af1a1b7ca8e4749e862abdda9ba4501cb',1,'shaka::media::mp4::BoxBuffer']]], + ['readwriteheaderinternal_1699',['ReadWriteHeaderInternal',['../d1/d2d/structshaka_1_1media_1_1mp4_1_1Box.html#a160958fd4dd933f8b760bf61ec0f72c6',1,'shaka::media::mp4::Box::ReadWriteHeaderInternal()'],['../dd/dc1/structshaka_1_1media_1_1mp4_1_1FullBox.html#ad72e5a2d0def5bbba75b440d060ef1cf',1,'shaka::media::mp4::FullBox::ReadWriteHeaderInternal()']]], + ['readwritestring_1700',['ReadWriteString',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#ac00df060effff87645b9508ba15fb67d',1,'shaka::media::mp4::BoxBuffer']]], + ['readwriteuint64nbytes_1701',['ReadWriteUInt64NBytes',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a53c6b6a9bce0bb0fa61b9ce95c3f5cef',1,'shaka::media::mp4::BoxBuffer']]], + ['reopen_1702',['Reopen',['../df/d4e/classshaka_1_1IoCache.html#ac2c7cbec6d771de00fe0cfe0b7d0e454',1,'shaka::IoCache']]], + ['representation_1703',['Representation',['../de/d52/classshaka_1_1Representation.html#a1854062c6c5a3a1e622fca4d47eb4903',1,'shaka::Representation::Representation(const Representation &representation, std::unique_ptr< RepresentationStateChangeListener > state_change_listener)'],['../de/d52/classshaka_1_1Representation.html#a997138fcaa5deef5151a64a2d7ce6aeb',1,'shaka::Representation::Representation(const MediaInfo &media_info, const MpdOptions &mpd_options, uint32_t representation_id, std::unique_ptr< RepresentationStateChangeListener > state_change_listener)']]], + ['reset_1704',['Reset',['../d7/dda/classshaka_1_1media_1_1ByteQueue.html#ab1659ef71098c37e9fb4e55ab1664e84',1,'shaka::media::ByteQueue::Reset()'],['../d3/d7c/classshaka_1_1media_1_1WebMAudioClient.html#afd1a338848c52dc4db79d89ae13b6ea6',1,'shaka::media::WebMAudioClient::Reset()'],['../da/de4/classshaka_1_1media_1_1WebMClusterParser.html#abb306c3299a7279125b8f321ef5bbc94',1,'shaka::media::WebMClusterParser::Reset()'],['../dc/dca/classshaka_1_1media_1_1WebMListParser.html#a4ebac4e1a4165017d206d4aa5c4c0350',1,'shaka::media::WebMListParser::Reset()'],['../d3/d67/classshaka_1_1media_1_1WebMVideoClient.html#af3ad16a6046f60abf43a798747fc1edc',1,'shaka::media::WebMVideoClient::Reset()']]], + ['run_1705',['Run',['../dc/df0/classshaka_1_1media_1_1ClosureThread.html#a2c95d317c0b83b66ac7991c3506dc4e7',1,'shaka::media::ClosureThread::Run()'],['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a006e77dc91701543231bfda75b946d3c',1,'shaka::media::Demuxer::Run()'],['../db/dd0/classshaka_1_1Packager.html#a48275206bc7032eb69607081ac0ada08',1,'shaka::Packager::Run()']]] ]; diff --git a/docs/search/functions_f.js b/docs/search/functions_f.js index 7f38207f38..6d4c380686 100644 --- a/docs/search/functions_f.js +++ b/docs/search/functions_f.js @@ -1,75 +1,75 @@ var searchData= [ - ['sample_5fdelta_1705',['sample_delta',['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#ac508e7ecb1a0cb2f1124e8bf03c1666e',1,'shaka::media::mp4::DecodingTimeIterator']]], - ['sample_5fdescription_5findex_1706',['sample_description_index',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#a0e23de0c3a10d5de5aa527d3736e186d',1,'shaka::media::mp4::ChunkInfoIterator']]], - ['sample_5fduration_1707',['sample_duration',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#ad8dbd1f6993274a599c72a18b363d195',1,'shaka::media::mp4::Segmenter']]], - ['sample_5foffset_1708',['sample_offset',['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#a88c63620114850512c81d4a5c7bf4569',1,'shaka::media::mp4::CompositionOffsetIterator']]], - ['sampleaesec3cryptor_1709',['SampleAesEc3Cryptor',['../d9/da0/classshaka_1_1media_1_1SampleAesEc3Cryptor.html#a9945076f423e3e88d7e0ca0075254b5a',1,'shaka::media::SampleAesEc3Cryptor']]], - ['sampleoffset_1710',['SampleOffset',['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#a47887bfa1713dc2d49bd66372c3d0ebb',1,'shaka::media::mp4::CompositionOffsetIterator']]], - ['samples_5fper_5fchunk_1711',['samples_per_chunk',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#a1fbad96098f96be560ab5e0c7bd0746e',1,'shaka::media::mp4::ChunkInfoIterator']]], - ['sbr_5fpresent_1712',['sbr_present',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#aa32c2ae4bc59f5ced62cfb0acf283850',1,'shaka::media::AACAudioSpecificConfig']]], - ['scanchildren_1713',['ScanChildren',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#acc5a55985f95b73ac64c9eab7bd09242',1,'shaka::media::mp4::BoxReader']]], - ['seek_1714',['Seek',['../dd/d0c/classshaka_1_1ThreadedIoFile.html#a9b95550cf6342f970645c086a2ed58c2',1,'shaka::ThreadedIoFile::Seek()'],['../d4/dcb/classshaka_1_1UdpFile.html#a33d10d2f1558a35aaba192f7746bb23f',1,'shaka::UdpFile::Seek()'],['../de/dad/classshaka_1_1MemoryFile.html#a0e3bffa9859fdcb7c28c20a15e2d3e98',1,'shaka::MemoryFile::Seek()'],['../d7/dbd/classshaka_1_1LocalFile.html#a082cd6d64c8f04acff251cdafb66b203',1,'shaka::LocalFile::Seek()'],['../d1/dc7/classshaka_1_1HttpFile.html#a1664c0e4a8d13db5a1e1cadc5b637cd6',1,'shaka::HttpFile::Seek()'],['../d3/d73/classshaka_1_1File.html#a486bda715b58b1a1863fbfc8d48da62a',1,'shaka::File::Seek()'],['../dd/d40/classshaka_1_1CallbackFile.html#a7c9039e25fcc468a7ec2cdfa8394ffc2',1,'shaka::CallbackFile::Seek()']]], - ['seekable_1715',['Seekable',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a8d0429e7922752db3f01d43e6340465a',1,'shaka::media::MkvWriter']]], - ['segment_5fbuffer_1716',['segment_buffer',['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#a345a5117da1d4a34061f7293fdffd16d',1,'shaka::media::PackedAudioSegmenter']]], - ['set2to4bitdepthmap_1717',['Set2To4BitDepthMap',['../d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html#afc8aacea2caeed42592db778482d9db7',1,'shaka::media::DvbImageColorSpace']]], - ['set2to8bitdepthmap_1718',['Set2To8BitDepthMap',['../d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html#a8731ee55d7b47980541b78783477c01c',1,'shaka::media::DvbImageColorSpace']]], - ['set4to8bitdepthmap_1719',['Set4To8BitDepthMap',['../d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html#a49ca0b16ffc9d5cc6e3c8daa03bea8c7',1,'shaka::media::DvbImageColorSpace']]], - ['set_5fclock_1720',['set_clock',['../df/d46/classshaka_1_1media_1_1Muxer.html#a3cc7feaee9a2c3a7d0569cb9c67c8c68',1,'shaka::media::Muxer']]], - ['set_5fcodec_1721',['set_codec',['../d8/d8e/classshaka_1_1AdaptationSet.html#adaeef853587aca397fdebfd31d4f0504',1,'shaka::AdaptationSet']]], - ['set_5fdts_1722',['set_dts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a9917d625989f0eaac93fec12fec8dca0',1,'shaka::media::mp2t::PesPacket']]], - ['set_5fduration_5fseconds_1723',['set_duration_seconds',['../d8/de1/classshaka_1_1Period.html#a5519676b3185c9902e98f5f3762d6d71',1,'shaka::Period']]], - ['set_5fid_1724',['set_id',['../d8/d8e/classshaka_1_1AdaptationSet.html#af4172e846f376783c39fe48230aefa8a',1,'shaka::AdaptationSet']]], - ['set_5fis_5fkey_5fframe_1725',['set_is_key_frame',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a1fc2acbb0bf3f50ba4706e077a53315a',1,'shaka::media::mp2t::PesPacket']]], - ['set_5fkey_5ffetcher_1726',['set_key_fetcher',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#a97c0565df9381e178ebb50c193cebd04',1,'shaka::media::WidevineKeySource']]], - ['set_5fnalu_5flength_5fsize_1727',['set_nalu_length_size',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#ab0c889c2382b6f41ad1993c136b03d07',1,'shaka::media::DecoderConfigurationRecord']]], - ['set_5fpts_1728',['set_pts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a02ffa1c0ad370f047e6f09b6bbc8b3b8',1,'shaka::media::mp2t::PesPacket']]], - ['set_5fsbr_5fpresent_1729',['set_sbr_present',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a9271c9f0d8ef8029da8bd48baa7a757b',1,'shaka::media::AACAudioSpecificConfig']]], - ['set_5fsigner_1730',['set_signer',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#a48d182da15ecc85e2ae7fd164ba0a526',1,'shaka::media::WidevineKeySource']]], - ['set_5fstream_5fid_1731',['set_stream_id',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#ad4be259c146b57f61f41638970839fc4',1,'shaka::media::mp2t::PesPacket']]], - ['set_5ftransfer_5fcharacteristics_1732',['set_transfer_characteristics',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#aaa9790c3d2f0a032347f10f8bdf36868',1,'shaka::media::DecoderConfigurationRecord']]], - ['setcharacteristicsfortesting_1733',['SetCharacteristicsForTesting',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a4ba276c327424377ecdb90bfe0e86121',1,'shaka::hls::MediaPlaylist']]], - ['setcluster_1734',['SetCluster',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a6060ddc97c58e4435d1db932de17e131',1,'shaka::media::webm::Segmenter']]], - ['setcodecfortesting_1735',['SetCodecForTesting',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#aad5c985ef4bbdbe7c8f38494114abdf7',1,'shaka::hls::MediaPlaylist']]], - ['setcomplete_1736',['SetComplete',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#adea4bf88a29660bd8612ae3bc5048068',1,'shaka::media::mp4::Segmenter']]], - ['setcontent_1737',['SetContent',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a73d758186470e7dbcb4f4339eb53458c',1,'shaka::xml::XmlNode']]], - ['setdata_1738',['SetData',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#ab9be744240871d88cd76d04adbd2d702',1,'shaka::media::MediaSample']]], - ['setfloatingpointattribute_1739',['SetFloatingPointAttribute',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a882ff956a58d2a43d763692ce830d286',1,'shaka::xml::XmlNode']]], - ['sethandler_1740',['SetHandler',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0fac1fe2d593e78d47244acdfa21759d',1,'shaka::media::MediaHandler::SetHandler()'],['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a1247302b6c57fbafb09aec71ce0109e3',1,'shaka::media::Demuxer::SetHandler()']]], - ['setid_1741',['SetId',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#ad9f818024466c4dcce3026a9e7f439a3',1,'shaka::xml::XmlNode']]], - ['setintegerattribute_1742',['SetIntegerAttribute',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a8d216627fb556f526df48a61a921a115',1,'shaka::xml::XmlNode']]], - ['setiv_1743',['SetIv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a4875146da4761bb757d6b00132ae6fea',1,'shaka::media::AesCryptor']]], - ['setkeysource_1744',['SetKeySource',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#abfcf3a9a3f64c0e27497c72324049a1e',1,'shaka::media::Demuxer']]], - ['setlanguagefortesting_1745',['SetLanguageForTesting',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a9216e655849174b9d524127a3bf84e2e',1,'shaka::hls::MediaPlaylist']]], - ['setlanguageoverride_1746',['SetLanguageOverride',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#aa3fe0a64a2745fa6f462c3d179809c3b',1,'shaka::media::Demuxer']]], - ['setmediainfo_1747',['SetMediaInfo',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#acacd79e086a620c82101f1a0f3ba8df9',1,'shaka::hls::MediaPlaylist']]], - ['setmuxerlistener_1748',['SetMuxerListener',['../df/d46/classshaka_1_1media_1_1Muxer.html#a0e76dd0a5c07dd538221459365ae824a',1,'shaka::media::Muxer']]], - ['setpresentationtimeoffset_1749',['SetPresentationTimeOffset',['../de/d52/classshaka_1_1Representation.html#aa93fd6cd965d3091a280debc93656d57',1,'shaka::Representation']]], - ['setprogresslistener_1750',['SetProgressListener',['../df/d46/classshaka_1_1media_1_1Muxer.html#a25a146d553c385aad70dbff6b3e87eec',1,'shaka::media::Muxer']]], - ['setsampleduration_1751',['SetSampleDuration',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a329a5fa45ab80e78545bafe3866efa71',1,'shaka::hls::MediaPlaylist::SetSampleDuration()'],['../de/d52/classshaka_1_1Representation.html#a11b32833166b9c4bea78cca2c6069d98',1,'shaka::Representation::SetSampleDuration()']]], - ['setsegmentstartedfortesting_1752',['SetSegmentStartedForTesting',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#a386f30026b2699bfaeba60fa6bb835fb',1,'shaka::media::mp2t::TsSegmenter']]], - ['setstreamtypefortesting_1753',['SetStreamTypeForTesting',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a2ab66ed311668017fd62d04db0476e79',1,'shaka::hls::MediaPlaylist']]], - ['setstringattribute_1754',['SetStringAttribute',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#aa30909ee27d10b448c6706ceba01ace7',1,'shaka::xml::XmlNode']]], - ['settargetduration_1755',['SetTargetDuration',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#ae912291a5be66ae6256006654cc04dd6',1,'shaka::hls::MediaPlaylist']]], - ['setupgraph_1756',['SetUpGraph',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html#af0a4c542b34e3e3a340c4e9b0ac2c152',1,'shaka::media::MediaHandlerGraphTestBase']]], - ['setvp9level_1757',['SetVP9Level',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a31b0c3fd4fbbbdd8d588af7b37edec82',1,'shaka::media::VPCodecConfigurationRecord']]], - ['signalencrypted_1758',['SignalEncrypted',['../de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html#afc47f61bce7cd4f8f6a6ea0ec2c96d4c',1,'shaka::media::mp2t::TsWriter']]], - ['simplehlsnotifier_1759',['SimpleHlsNotifier',['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a2c89465cec6141d5db3dcdce576486ae',1,'shaka::hls::SimpleHlsNotifier']]], - ['size_1760',['Size',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a2ba0406c7f52656dde9ee6928a29814f',1,'shaka::media::mp4::BoxBuffer::Size()'],['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a12f9de3067fe5cf43fd002b56a9811a4',1,'shaka::media::ProducerConsumerQueue::Size()'],['../d4/dcb/classshaka_1_1UdpFile.html#a0a1c8d7af211bba4da62eb44504d745d',1,'shaka::UdpFile::Size()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#af23f2da404e1602c240bb59d2601f1b9',1,'shaka::ThreadedIoFile::Size()'],['../d7/dbd/classshaka_1_1LocalFile.html#ad20649d0ee575b81830a5abf88e2bde1',1,'shaka::LocalFile::Size()'],['../d1/dc7/classshaka_1_1HttpFile.html#aa88365f37eda6210577db4a70d68319e',1,'shaka::HttpFile::Size()'],['../d3/d73/classshaka_1_1File.html#aeb98b64a05f141140e110170bef1bc55',1,'shaka::File::Size()'],['../dd/d40/classshaka_1_1CallbackFile.html#ab6bcbc6773b29fee1664507558e8759f',1,'shaka::CallbackFile::Size()'],['../de/dad/classshaka_1_1MemoryFile.html#a151634866be009cf0eb10e783432d5cb',1,'shaka::MemoryFile::Size()']]], - ['skipbits_1761',['SkipBits',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a4ab20ef220c76072eaecb982aba0541d',1,'shaka::media::BitReader']]], - ['skipbitsconditional_1762',['SkipBitsConditional',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a98bbbbc849a3fadc1a136662174d470e',1,'shaka::media::BitReader']]], - ['skipbytes_1763',['SkipBytes',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a7d349253d5cc8f9aa33f1ca2ea94677c',1,'shaka::media::BitReader::SkipBytes()'],['../d9/d13/classshaka_1_1media_1_1BufferReader.html#a2b15dfcd6ff891a9cb7b76f48d91d15d',1,'shaka::media::BufferReader::SkipBytes()']]], - ['skiptonextbyte_1764',['SkipToNextByte',['../d6/da9/classshaka_1_1media_1_1BitReader.html#ab0b44ad45f2afcfecd23c64ae5644694',1,'shaka::media::BitReader']]], - ['some_5fhandler_1765',['some_handler',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html#a02f13711d72781e74f0ce794cbd7044a',1,'shaka::media::MediaHandlerGraphTestBase']]], - ['start_5ftime_5fin_5fseconds_1766',['start_time_in_seconds',['../d8/de1/classshaka_1_1Period.html#a93ec8606ac8aa96139d3b5459ccb303d',1,'shaka::Period']]], - ['startbox_1767',['StartBox',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#a6bafd9cd95a97c4c1475d1806d602ae2',1,'shaka::media::mp4::BoxReader']]], - ['startswithstartcode_1768',['StartsWithStartCode',['../db/d86/classshaka_1_1media_1_1NaluReader.html#a9ed9d56a06f43717cdb7035f86075975',1,'shaka::media::NaluReader']]], - ['status_1769',['Status',['../d2/d20/classshaka_1_1Status.html#a12c04257e2480e0ce87cd16b944921d0',1,'shaka::Status::Status()'],['../d2/d20/classshaka_1_1Status.html#a2fa2116c9e12215a4e3430b362ba622b',1,'shaka::Status::Status(error::Code error_code, const std::string &error_message)']]], - ['stop_1770',['Stop',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#ac600977b708381facf07f87e36b43d79',1,'shaka::media::ProducerConsumerQueue']]], - ['stopped_1771',['Stopped',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a83045f2ceb8b6ce77b66dddef00d93be',1,'shaka::media::ProducerConsumerQueue']]], - ['stream_5fid_1772',['stream_id',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a1a854ecaba22741115804eb7799c8b10',1,'shaka::media::mp2t::PesPacket']]], - ['subsamplegenerator_1773',['SubsampleGenerator',['../d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html#a1674b4a68974db06ad4efa9a9b699a46',1,'shaka::media::SubsampleGenerator']]], - ['supportmultiplekeys_1774',['SupportMultipleKeys',['../d0/da2/classshaka_1_1media_1_1CommonPsshGenerator.html#adb0fa61dcea2916d2485d8c08143b6cd',1,'shaka::media::CommonPsshGenerator::SupportMultipleKeys()'],['../d3/ddf/classshaka_1_1media_1_1PlayReadyPsshGenerator.html#ac0e9c2f4b41e554a110d265422857a0d',1,'shaka::media::PlayReadyPsshGenerator::SupportMultipleKeys()'],['../d8/dbf/classshaka_1_1media_1_1PsshGenerator.html#a0444384f6ccc3bb52408fd02be14db21',1,'shaka::media::PsshGenerator::SupportMultipleKeys()'],['../d5/d69/classshaka_1_1media_1_1WidevinePsshGenerator.html#a89b5666768896b82537b54d02752402c',1,'shaka::media::WidevinePsshGenerator::SupportMultipleKeys()']]], - ['suppressonce_1775',['SuppressOnce',['../de/d52/classshaka_1_1Representation.html#a473e45dbbf64e6ab6ed670ccedac84ed',1,'shaka::Representation']]], - ['syncsampleiterator_1776',['SyncSampleIterator',['../d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html#af8bc2d5d153bfdd168f145213c47d3fe',1,'shaka::media::mp4::SyncSampleIterator']]] + ['sample_5fdelta_1706',['sample_delta',['../d1/d20/classshaka_1_1media_1_1mp4_1_1DecodingTimeIterator.html#ac508e7ecb1a0cb2f1124e8bf03c1666e',1,'shaka::media::mp4::DecodingTimeIterator']]], + ['sample_5fdescription_5findex_1707',['sample_description_index',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#a0e23de0c3a10d5de5aa527d3736e186d',1,'shaka::media::mp4::ChunkInfoIterator']]], + ['sample_5fduration_1708',['sample_duration',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#ad8dbd1f6993274a599c72a18b363d195',1,'shaka::media::mp4::Segmenter']]], + ['sample_5foffset_1709',['sample_offset',['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#a88c63620114850512c81d4a5c7bf4569',1,'shaka::media::mp4::CompositionOffsetIterator']]], + ['sampleaesec3cryptor_1710',['SampleAesEc3Cryptor',['../d9/da0/classshaka_1_1media_1_1SampleAesEc3Cryptor.html#a9945076f423e3e88d7e0ca0075254b5a',1,'shaka::media::SampleAesEc3Cryptor']]], + ['sampleoffset_1711',['SampleOffset',['../db/d4e/classshaka_1_1media_1_1mp4_1_1CompositionOffsetIterator.html#a47887bfa1713dc2d49bd66372c3d0ebb',1,'shaka::media::mp4::CompositionOffsetIterator']]], + ['samples_5fper_5fchunk_1712',['samples_per_chunk',['../d9/d57/classshaka_1_1media_1_1mp4_1_1ChunkInfoIterator.html#a1fbad96098f96be560ab5e0c7bd0746e',1,'shaka::media::mp4::ChunkInfoIterator']]], + ['sbr_5fpresent_1713',['sbr_present',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#aa32c2ae4bc59f5ced62cfb0acf283850',1,'shaka::media::AACAudioSpecificConfig']]], + ['scanchildren_1714',['ScanChildren',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#acc5a55985f95b73ac64c9eab7bd09242',1,'shaka::media::mp4::BoxReader']]], + ['seek_1715',['Seek',['../dd/d0c/classshaka_1_1ThreadedIoFile.html#a9b95550cf6342f970645c086a2ed58c2',1,'shaka::ThreadedIoFile::Seek()'],['../d4/dcb/classshaka_1_1UdpFile.html#a33d10d2f1558a35aaba192f7746bb23f',1,'shaka::UdpFile::Seek()'],['../de/dad/classshaka_1_1MemoryFile.html#a0e3bffa9859fdcb7c28c20a15e2d3e98',1,'shaka::MemoryFile::Seek()'],['../d7/dbd/classshaka_1_1LocalFile.html#a082cd6d64c8f04acff251cdafb66b203',1,'shaka::LocalFile::Seek()'],['../d1/dc7/classshaka_1_1HttpFile.html#a1664c0e4a8d13db5a1e1cadc5b637cd6',1,'shaka::HttpFile::Seek()'],['../d3/d73/classshaka_1_1File.html#a486bda715b58b1a1863fbfc8d48da62a',1,'shaka::File::Seek()'],['../dd/d40/classshaka_1_1CallbackFile.html#a7c9039e25fcc468a7ec2cdfa8394ffc2',1,'shaka::CallbackFile::Seek()']]], + ['seekable_1716',['Seekable',['../d1/d0a/classshaka_1_1media_1_1MkvWriter.html#a8d0429e7922752db3f01d43e6340465a',1,'shaka::media::MkvWriter']]], + ['segment_5fbuffer_1717',['segment_buffer',['../d9/d66/classshaka_1_1media_1_1PackedAudioSegmenter.html#a345a5117da1d4a34061f7293fdffd16d',1,'shaka::media::PackedAudioSegmenter']]], + ['set2to4bitdepthmap_1718',['Set2To4BitDepthMap',['../d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html#afc8aacea2caeed42592db778482d9db7',1,'shaka::media::DvbImageColorSpace']]], + ['set2to8bitdepthmap_1719',['Set2To8BitDepthMap',['../d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html#a8731ee55d7b47980541b78783477c01c',1,'shaka::media::DvbImageColorSpace']]], + ['set4to8bitdepthmap_1720',['Set4To8BitDepthMap',['../d8/db4/classshaka_1_1media_1_1DvbImageColorSpace.html#a49ca0b16ffc9d5cc6e3c8daa03bea8c7',1,'shaka::media::DvbImageColorSpace']]], + ['set_5fclock_1721',['set_clock',['../df/d46/classshaka_1_1media_1_1Muxer.html#a3cc7feaee9a2c3a7d0569cb9c67c8c68',1,'shaka::media::Muxer']]], + ['set_5fcodec_1722',['set_codec',['../d8/d8e/classshaka_1_1AdaptationSet.html#adaeef853587aca397fdebfd31d4f0504',1,'shaka::AdaptationSet']]], + ['set_5fdts_1723',['set_dts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a9917d625989f0eaac93fec12fec8dca0',1,'shaka::media::mp2t::PesPacket']]], + ['set_5fduration_5fseconds_1724',['set_duration_seconds',['../d8/de1/classshaka_1_1Period.html#a5519676b3185c9902e98f5f3762d6d71',1,'shaka::Period']]], + ['set_5fid_1725',['set_id',['../d8/d8e/classshaka_1_1AdaptationSet.html#af4172e846f376783c39fe48230aefa8a',1,'shaka::AdaptationSet']]], + ['set_5fis_5fkey_5fframe_1726',['set_is_key_frame',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a1fc2acbb0bf3f50ba4706e077a53315a',1,'shaka::media::mp2t::PesPacket']]], + ['set_5fkey_5ffetcher_1727',['set_key_fetcher',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#a97c0565df9381e178ebb50c193cebd04',1,'shaka::media::WidevineKeySource']]], + ['set_5fnalu_5flength_5fsize_1728',['set_nalu_length_size',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#ab0c889c2382b6f41ad1993c136b03d07',1,'shaka::media::DecoderConfigurationRecord']]], + ['set_5fpts_1729',['set_pts',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a02ffa1c0ad370f047e6f09b6bbc8b3b8',1,'shaka::media::mp2t::PesPacket']]], + ['set_5fsbr_5fpresent_1730',['set_sbr_present',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a9271c9f0d8ef8029da8bd48baa7a757b',1,'shaka::media::AACAudioSpecificConfig']]], + ['set_5fsigner_1731',['set_signer',['../da/ddd/classshaka_1_1media_1_1WidevineKeySource.html#a48d182da15ecc85e2ae7fd164ba0a526',1,'shaka::media::WidevineKeySource']]], + ['set_5fstream_5fid_1732',['set_stream_id',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#ad4be259c146b57f61f41638970839fc4',1,'shaka::media::mp2t::PesPacket']]], + ['set_5ftransfer_5fcharacteristics_1733',['set_transfer_characteristics',['../de/de0/classshaka_1_1media_1_1DecoderConfigurationRecord.html#aaa9790c3d2f0a032347f10f8bdf36868',1,'shaka::media::DecoderConfigurationRecord']]], + ['setcharacteristicsfortesting_1734',['SetCharacteristicsForTesting',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a4ba276c327424377ecdb90bfe0e86121',1,'shaka::hls::MediaPlaylist']]], + ['setcluster_1735',['SetCluster',['../dd/dc5/classshaka_1_1media_1_1webm_1_1Segmenter.html#a6060ddc97c58e4435d1db932de17e131',1,'shaka::media::webm::Segmenter']]], + ['setcodecfortesting_1736',['SetCodecForTesting',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#aad5c985ef4bbdbe7c8f38494114abdf7',1,'shaka::hls::MediaPlaylist']]], + ['setcomplete_1737',['SetComplete',['../d9/d26/classshaka_1_1media_1_1mp4_1_1Segmenter.html#adea4bf88a29660bd8612ae3bc5048068',1,'shaka::media::mp4::Segmenter']]], + ['setcontent_1738',['SetContent',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a73d758186470e7dbcb4f4339eb53458c',1,'shaka::xml::XmlNode']]], + ['setdata_1739',['SetData',['../d7/d6d/classshaka_1_1media_1_1MediaSample.html#ab9be744240871d88cd76d04adbd2d702',1,'shaka::media::MediaSample']]], + ['setfloatingpointattribute_1740',['SetFloatingPointAttribute',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a882ff956a58d2a43d763692ce830d286',1,'shaka::xml::XmlNode']]], + ['sethandler_1741',['SetHandler',['../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0fac1fe2d593e78d47244acdfa21759d',1,'shaka::media::MediaHandler::SetHandler()'],['../dd/d17/classshaka_1_1media_1_1Demuxer.html#a1247302b6c57fbafb09aec71ce0109e3',1,'shaka::media::Demuxer::SetHandler()']]], + ['setid_1742',['SetId',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#ad9f818024466c4dcce3026a9e7f439a3',1,'shaka::xml::XmlNode']]], + ['setintegerattribute_1743',['SetIntegerAttribute',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#a8d216627fb556f526df48a61a921a115',1,'shaka::xml::XmlNode']]], + ['setiv_1744',['SetIv',['../df/d87/classshaka_1_1media_1_1AesCryptor.html#a4875146da4761bb757d6b00132ae6fea',1,'shaka::media::AesCryptor']]], + ['setkeysource_1745',['SetKeySource',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#abfcf3a9a3f64c0e27497c72324049a1e',1,'shaka::media::Demuxer']]], + ['setlanguagefortesting_1746',['SetLanguageForTesting',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a9216e655849174b9d524127a3bf84e2e',1,'shaka::hls::MediaPlaylist']]], + ['setlanguageoverride_1747',['SetLanguageOverride',['../dd/d17/classshaka_1_1media_1_1Demuxer.html#aa3fe0a64a2745fa6f462c3d179809c3b',1,'shaka::media::Demuxer']]], + ['setmediainfo_1748',['SetMediaInfo',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#acacd79e086a620c82101f1a0f3ba8df9',1,'shaka::hls::MediaPlaylist']]], + ['setmuxerlistener_1749',['SetMuxerListener',['../df/d46/classshaka_1_1media_1_1Muxer.html#a0e76dd0a5c07dd538221459365ae824a',1,'shaka::media::Muxer']]], + ['setpresentationtimeoffset_1750',['SetPresentationTimeOffset',['../de/d52/classshaka_1_1Representation.html#aa93fd6cd965d3091a280debc93656d57',1,'shaka::Representation']]], + ['setprogresslistener_1751',['SetProgressListener',['../df/d46/classshaka_1_1media_1_1Muxer.html#a25a146d553c385aad70dbff6b3e87eec',1,'shaka::media::Muxer']]], + ['setsampleduration_1752',['SetSampleDuration',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a329a5fa45ab80e78545bafe3866efa71',1,'shaka::hls::MediaPlaylist::SetSampleDuration()'],['../de/d52/classshaka_1_1Representation.html#a11b32833166b9c4bea78cca2c6069d98',1,'shaka::Representation::SetSampleDuration()']]], + ['setsegmentstartedfortesting_1753',['SetSegmentStartedForTesting',['../de/dde/classshaka_1_1media_1_1mp2t_1_1TsSegmenter.html#a386f30026b2699bfaeba60fa6bb835fb',1,'shaka::media::mp2t::TsSegmenter']]], + ['setstreamtypefortesting_1754',['SetStreamTypeForTesting',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#a2ab66ed311668017fd62d04db0476e79',1,'shaka::hls::MediaPlaylist']]], + ['setstringattribute_1755',['SetStringAttribute',['../d1/d31/classshaka_1_1xml_1_1XmlNode.html#aa30909ee27d10b448c6706ceba01ace7',1,'shaka::xml::XmlNode']]], + ['settargetduration_1756',['SetTargetDuration',['../dd/d1c/classshaka_1_1hls_1_1MediaPlaylist.html#ae912291a5be66ae6256006654cc04dd6',1,'shaka::hls::MediaPlaylist']]], + ['setupgraph_1757',['SetUpGraph',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html#af0a4c542b34e3e3a340c4e9b0ac2c152',1,'shaka::media::MediaHandlerGraphTestBase']]], + ['setvp9level_1758',['SetVP9Level',['../d1/da5/classshaka_1_1media_1_1VPCodecConfigurationRecord.html#a31b0c3fd4fbbbdd8d588af7b37edec82',1,'shaka::media::VPCodecConfigurationRecord']]], + ['signalencrypted_1759',['SignalEncrypted',['../de/d64/classshaka_1_1media_1_1mp2t_1_1TsWriter.html#afc47f61bce7cd4f8f6a6ea0ec2c96d4c',1,'shaka::media::mp2t::TsWriter']]], + ['simplehlsnotifier_1760',['SimpleHlsNotifier',['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a2c89465cec6141d5db3dcdce576486ae',1,'shaka::hls::SimpleHlsNotifier']]], + ['size_1761',['Size',['../d1/da1/classshaka_1_1media_1_1mp4_1_1BoxBuffer.html#a2ba0406c7f52656dde9ee6928a29814f',1,'shaka::media::mp4::BoxBuffer::Size()'],['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a12f9de3067fe5cf43fd002b56a9811a4',1,'shaka::media::ProducerConsumerQueue::Size()'],['../d4/dcb/classshaka_1_1UdpFile.html#a0a1c8d7af211bba4da62eb44504d745d',1,'shaka::UdpFile::Size()'],['../dd/d0c/classshaka_1_1ThreadedIoFile.html#af23f2da404e1602c240bb59d2601f1b9',1,'shaka::ThreadedIoFile::Size()'],['../d7/dbd/classshaka_1_1LocalFile.html#ad20649d0ee575b81830a5abf88e2bde1',1,'shaka::LocalFile::Size()'],['../d1/dc7/classshaka_1_1HttpFile.html#aa88365f37eda6210577db4a70d68319e',1,'shaka::HttpFile::Size()'],['../d3/d73/classshaka_1_1File.html#aeb98b64a05f141140e110170bef1bc55',1,'shaka::File::Size()'],['../dd/d40/classshaka_1_1CallbackFile.html#ab6bcbc6773b29fee1664507558e8759f',1,'shaka::CallbackFile::Size()'],['../de/dad/classshaka_1_1MemoryFile.html#a151634866be009cf0eb10e783432d5cb',1,'shaka::MemoryFile::Size()']]], + ['skipbits_1762',['SkipBits',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a4ab20ef220c76072eaecb982aba0541d',1,'shaka::media::BitReader']]], + ['skipbitsconditional_1763',['SkipBitsConditional',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a98bbbbc849a3fadc1a136662174d470e',1,'shaka::media::BitReader']]], + ['skipbytes_1764',['SkipBytes',['../d6/da9/classshaka_1_1media_1_1BitReader.html#a7d349253d5cc8f9aa33f1ca2ea94677c',1,'shaka::media::BitReader::SkipBytes()'],['../d9/d13/classshaka_1_1media_1_1BufferReader.html#a2b15dfcd6ff891a9cb7b76f48d91d15d',1,'shaka::media::BufferReader::SkipBytes()']]], + ['skiptonextbyte_1765',['SkipToNextByte',['../d6/da9/classshaka_1_1media_1_1BitReader.html#ab0b44ad45f2afcfecd23c64ae5644694',1,'shaka::media::BitReader']]], + ['some_5fhandler_1766',['some_handler',['../d3/d9a/classshaka_1_1media_1_1MediaHandlerGraphTestBase.html#a02f13711d72781e74f0ce794cbd7044a',1,'shaka::media::MediaHandlerGraphTestBase']]], + ['start_5ftime_5fin_5fseconds_1767',['start_time_in_seconds',['../d8/de1/classshaka_1_1Period.html#a93ec8606ac8aa96139d3b5459ccb303d',1,'shaka::Period']]], + ['startbox_1768',['StartBox',['../d1/dee/classshaka_1_1media_1_1mp4_1_1BoxReader.html#a6bafd9cd95a97c4c1475d1806d602ae2',1,'shaka::media::mp4::BoxReader']]], + ['startswithstartcode_1769',['StartsWithStartCode',['../db/d86/classshaka_1_1media_1_1NaluReader.html#a9ed9d56a06f43717cdb7035f86075975',1,'shaka::media::NaluReader']]], + ['status_1770',['Status',['../d2/d20/classshaka_1_1Status.html#a12c04257e2480e0ce87cd16b944921d0',1,'shaka::Status::Status()'],['../d2/d20/classshaka_1_1Status.html#a2fa2116c9e12215a4e3430b362ba622b',1,'shaka::Status::Status(error::Code error_code, const std::string &error_message)']]], + ['stop_1771',['Stop',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#ac600977b708381facf07f87e36b43d79',1,'shaka::media::ProducerConsumerQueue']]], + ['stopped_1772',['Stopped',['../d5/d33/classshaka_1_1media_1_1ProducerConsumerQueue.html#a83045f2ceb8b6ce77b66dddef00d93be',1,'shaka::media::ProducerConsumerQueue']]], + ['stream_5fid_1773',['stream_id',['../d2/d93/classshaka_1_1media_1_1mp2t_1_1PesPacket.html#a1a854ecaba22741115804eb7799c8b10',1,'shaka::media::mp2t::PesPacket']]], + ['subsamplegenerator_1774',['SubsampleGenerator',['../d0/d9f/classshaka_1_1media_1_1SubsampleGenerator.html#a1674b4a68974db06ad4efa9a9b699a46',1,'shaka::media::SubsampleGenerator']]], + ['supportmultiplekeys_1775',['SupportMultipleKeys',['../d0/da2/classshaka_1_1media_1_1CommonPsshGenerator.html#adb0fa61dcea2916d2485d8c08143b6cd',1,'shaka::media::CommonPsshGenerator::SupportMultipleKeys()'],['../d3/ddf/classshaka_1_1media_1_1PlayReadyPsshGenerator.html#ac0e9c2f4b41e554a110d265422857a0d',1,'shaka::media::PlayReadyPsshGenerator::SupportMultipleKeys()'],['../d8/dbf/classshaka_1_1media_1_1PsshGenerator.html#a0444384f6ccc3bb52408fd02be14db21',1,'shaka::media::PsshGenerator::SupportMultipleKeys()'],['../d5/d69/classshaka_1_1media_1_1WidevinePsshGenerator.html#a89b5666768896b82537b54d02752402c',1,'shaka::media::WidevinePsshGenerator::SupportMultipleKeys()']]], + ['suppressonce_1776',['SuppressOnce',['../de/d52/classshaka_1_1Representation.html#a473e45dbbf64e6ab6ed670ccedac84ed',1,'shaka::Representation']]], + ['syncsampleiterator_1777',['SyncSampleIterator',['../d7/d26/classshaka_1_1media_1_1mp4_1_1SyncSampleIterator.html#af8bc2d5d153bfdd168f145213c47d3fe',1,'shaka::media::mp4::SyncSampleIterator']]] ]; diff --git a/docs/search/namespaces_0.js b/docs/search/namespaces_0.js index b12ee7ef32..e0d5dbe1ca 100644 --- a/docs/search/namespaces_0.js +++ b/docs/search/namespaces_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['shaka_1331',['shaka',['../d8/daf/namespaceshaka.html',1,'']]] + ['shaka_1332',['shaka',['../d8/daf/namespaceshaka.html',1,'']]] ]; diff --git a/docs/search/related_0.js b/docs/search/related_0.js index 9ab8922b51..109e3a50f6 100644 --- a/docs/search/related_0.js +++ b/docs/search/related_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['simplehlsnotifiertest_1963',['SimpleHlsNotifierTest',['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a8abffabc108b3ccbbf1725a83da70827',1,'shaka::hls::SimpleHlsNotifier']]] + ['simplehlsnotifiertest_1966',['SimpleHlsNotifierTest',['../d7/d5c/classshaka_1_1hls_1_1SimpleHlsNotifier.html#a8abffabc108b3ccbbf1725a83da70827',1,'shaka::hls::SimpleHlsNotifier']]] ]; diff --git a/docs/search/searchdata.js b/docs/search/searchdata.js index 4964670f0d..5f8096dc3a 100644 --- a/docs/search/searchdata.js +++ b/docs/search/searchdata.js @@ -4,7 +4,7 @@ var indexSectionsWithContent = 1: "abcdefhijklmnoprstuvwx", 2: "s", 3: "abcdefghilmnoprstuvwx~", - 4: "abcdeghiklmoprstvw", + 4: "abcdeghiklmoprstuvw", 5: "in", 6: "hkp", 7: "k", diff --git a/docs/search/typedefs_0.js b/docs/search/typedefs_0.js index c2abcc2ed1..21a34e2543 100644 --- a/docs/search/typedefs_0.js +++ b/docs/search/typedefs_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['initcb_1951',['InitCB',['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#aef5795d2b3df2526c6e8afe1e4d072bf',1,'shaka::media::MediaParser']]] + ['initcb_1954',['InitCB',['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#aef5795d2b3df2526c6e8afe1e4d072bf',1,'shaka::media::MediaParser']]] ]; diff --git a/docs/search/typedefs_1.js b/docs/search/typedefs_1.js index 7ff65edd9f..42a2d584b6 100644 --- a/docs/search/typedefs_1.js +++ b/docs/search/typedefs_1.js @@ -1,5 +1,5 @@ var searchData= [ - ['newmediasamplecb_1952',['NewMediaSampleCB',['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#ad86528c837c0a773f7e853c38a4a3af2',1,'shaka::media::MediaParser']]], - ['newtextsamplecb_1953',['NewTextSampleCB',['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#a1df661cd2b63498a87d6a253f6f7c195',1,'shaka::media::MediaParser']]] + ['newmediasamplecb_1955',['NewMediaSampleCB',['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#ad86528c837c0a773f7e853c38a4a3af2',1,'shaka::media::MediaParser']]], + ['newtextsamplecb_1956',['NewTextSampleCB',['../d3/d0a/classshaka_1_1media_1_1MediaParser.html#a1df661cd2b63498a87d6a253f6f7c195',1,'shaka::media::MediaParser']]] ]; diff --git a/docs/search/variables_0.js b/docs/search/variables_0.js index 6255308c85..59eff10a41 100644 --- a/docs/search/variables_0.js +++ b/docs/search/variables_0.js @@ -1,6 +1,6 @@ var searchData= [ - ['ad_5fcue_5fgenerator_5fparams_1837',['ad_cue_generator_params',['../d5/de3/structshaka_1_1PackagingParams.html#aa52d546c86b3b36234bcfc0cd50ef083',1,'shaka::PackagingParams']]], - ['allow_5fapproximate_5fsegment_5ftimeline_1838',['allow_approximate_segment_timeline',['../df/ddc/structshaka_1_1MpdParams.html#af4424dc23f81ff4000584db2866f24c9',1,'shaka::MpdParams']]], - ['allow_5fcodec_5fswitching_1839',['allow_codec_switching',['../df/ddc/structshaka_1_1MpdParams.html#a6462a0b4d325e183c4f20ead905c5f49',1,'shaka::MpdParams']]] + ['ad_5fcue_5fgenerator_5fparams_1839',['ad_cue_generator_params',['../d5/de3/structshaka_1_1PackagingParams.html#aa52d546c86b3b36234bcfc0cd50ef083',1,'shaka::PackagingParams']]], + ['allow_5fapproximate_5fsegment_5ftimeline_1840',['allow_approximate_segment_timeline',['../df/ddc/structshaka_1_1MpdParams.html#af4424dc23f81ff4000584db2866f24c9',1,'shaka::MpdParams']]], + ['allow_5fcodec_5fswitching_1841',['allow_codec_switching',['../df/ddc/structshaka_1_1MpdParams.html#a6462a0b4d325e183c4f20ead905c5f49',1,'shaka::MpdParams']]] ]; diff --git a/docs/search/variables_1.js b/docs/search/variables_1.js index d139526200..fa2b79af97 100644 --- a/docs/search/variables_1.js +++ b/docs/search/variables_1.js @@ -1,7 +1,7 @@ var searchData= [ - ['bandwidth_1840',['bandwidth',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html#a930587b1f3a3e38cf1e7974f01d8ce1e',1,'shaka::media::MuxerOptions::bandwidth()'],['../d2/d7b/structshaka_1_1StreamDescriptor.html#a9bcce2ca86a33f41803f7a6417a2758c',1,'shaka::StreamDescriptor::bandwidth()']]], - ['base_5furl_1841',['base_url',['../d0/da8/structshaka_1_1HlsParams.html#a546dcdf68c8a0a5e188f84b5c9fca9dd',1,'shaka::HlsParams']]], - ['base_5furls_1842',['base_urls',['../df/ddc/structshaka_1_1MpdParams.html#a9fe508f9c56a6424fd857d43a4a69e7c',1,'shaka::MpdParams']]], - ['buffer_5fcallback_5fparams_1843',['buffer_callback_params',['../d5/de3/structshaka_1_1PackagingParams.html#aaaf233248e46b6ff3285bbac87857f81',1,'shaka::PackagingParams']]] + ['bandwidth_1842',['bandwidth',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html#a930587b1f3a3e38cf1e7974f01d8ce1e',1,'shaka::media::MuxerOptions::bandwidth()'],['../d2/d7b/structshaka_1_1StreamDescriptor.html#a9bcce2ca86a33f41803f7a6417a2758c',1,'shaka::StreamDescriptor::bandwidth()']]], + ['base_5furl_1843',['base_url',['../d0/da8/structshaka_1_1HlsParams.html#a546dcdf68c8a0a5e188f84b5c9fca9dd',1,'shaka::HlsParams']]], + ['base_5furls_1844',['base_urls',['../df/ddc/structshaka_1_1MpdParams.html#a9fe508f9c56a6424fd857d43a4a69e7c',1,'shaka::MpdParams']]], + ['buffer_5fcallback_5fparams_1845',['buffer_callback_params',['../d5/de3/structshaka_1_1PackagingParams.html#aaaf233248e46b6ff3285bbac87857f81',1,'shaka::PackagingParams']]] ]; diff --git a/docs/search/variables_10.js b/docs/search/variables_10.js index 83d773a455..d3cea922fc 100644 --- a/docs/search/variables_10.js +++ b/docs/search/variables_10.js @@ -1,4 +1,4 @@ var searchData= [ - ['vp9_5fsubsample_5fencryption_1946',['vp9_subsample_encryption',['../dc/da0/structshaka_1_1EncryptionParams.html#a48d415f17d51306ce7e1931fd954c37c',1,'shaka::EncryptionParams']]] + ['use_5fsegment_5flist_1948',['use_segment_list',['../df/ddc/structshaka_1_1MpdParams.html#a32f74783f0055bff430910defb2c5a3b',1,'shaka::MpdParams']]] ]; diff --git a/docs/search/variables_11.js b/docs/search/variables_11.js index b890dac868..55cddff93e 100644 --- a/docs/search/variables_11.js +++ b/docs/search/variables_11.js @@ -1,7 +1,4 @@ var searchData= [ - ['width_1947',['width',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a9ec6b15406e4877a59cefe00e0c00dcf',1,'shaka::media::TextSettings::width()'],['../d4/d60/structshaka_1_1media_1_1TextRegion.html#aaa1f0ff704a50c7b6e45b47c2f43b123',1,'shaka::media::TextRegion::width()']]], - ['window_5fanchor_5fx_1948',['window_anchor_x',['../d4/d60/structshaka_1_1media_1_1TextRegion.html#a4552d1ca8127535c9041222e548a20f6',1,'shaka::media::TextRegion']]], - ['write_5ffunc_1949',['write_func',['../d9/da8/structshaka_1_1BufferCallbackParams.html#ad966040c5a75389ac6376c6378a0f307',1,'shaka::BufferCallbackParams']]], - ['writing_5fdirection_1950',['writing_direction',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a94dca124ccd2902b0e7466c37d05567e',1,'shaka::media::TextSettings']]] + ['vp9_5fsubsample_5fencryption_1949',['vp9_subsample_encryption',['../dc/da0/structshaka_1_1EncryptionParams.html#a48d415f17d51306ce7e1931fd954c37c',1,'shaka::EncryptionParams']]] ]; diff --git a/docs/search/variables_12.html b/docs/search/variables_12.html new file mode 100644 index 0000000000..a3a32eb8e7 --- /dev/null +++ b/docs/search/variables_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
      +
      Loading...
      +
      + +
      Searching...
      +
      No Matches
      + +
      + + diff --git a/docs/search/variables_12.js b/docs/search/variables_12.js new file mode 100644 index 0000000000..b5e6ba17ea --- /dev/null +++ b/docs/search/variables_12.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['width_1950',['width',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a9ec6b15406e4877a59cefe00e0c00dcf',1,'shaka::media::TextSettings::width()'],['../d4/d60/structshaka_1_1media_1_1TextRegion.html#aaa1f0ff704a50c7b6e45b47c2f43b123',1,'shaka::media::TextRegion::width()']]], + ['window_5fanchor_5fx_1951',['window_anchor_x',['../d4/d60/structshaka_1_1media_1_1TextRegion.html#a4552d1ca8127535c9041222e548a20f6',1,'shaka::media::TextRegion']]], + ['write_5ffunc_1952',['write_func',['../d9/da8/structshaka_1_1BufferCallbackParams.html#ad966040c5a75389ac6376c6378a0f307',1,'shaka::BufferCallbackParams']]], + ['writing_5fdirection_1953',['writing_direction',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a94dca124ccd2902b0e7466c37d05567e',1,'shaka::media::TextSettings']]] +]; diff --git a/docs/search/variables_2.js b/docs/search/variables_2.js index 04b745ed87..e97ac9cf37 100644 --- a/docs/search/variables_2.js +++ b/docs/search/variables_2.js @@ -1,13 +1,13 @@ var searchData= [ - ['ca_5ffile_1844',['ca_file',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#aff3107b2636f730056c6c5a673376226',1,'shaka::PlayReadyEncryptionParams']]], - ['cc_5findex_1845',['cc_index',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a3ab51319dcdbd7457aa92608460a21cf',1,'shaka::StreamDescriptor']]], - ['chunking_5fparams_1846',['chunking_params',['../d5/de3/structshaka_1_1PackagingParams.html#ac992ff58f67ad9b737dfc62d517be8ed',1,'shaka::PackagingParams']]], - ['clear_5flead_5fin_5fseconds_1847',['clear_lead_in_seconds',['../dc/da0/structshaka_1_1EncryptionParams.html#a1ad46963dc926aa4b72813dccb3f6a45',1,'shaka::EncryptionParams']]], - ['client_5fcert_5ffile_1848',['client_cert_file',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a8e3c7d3b038b602e09589e0fda0aad66',1,'shaka::PlayReadyEncryptionParams']]], - ['client_5fcert_5fprivate_5fkey_5ffile_1849',['client_cert_private_key_file',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a63e0f55b12ef1a0305bd51315322b153',1,'shaka::PlayReadyEncryptionParams']]], - ['client_5fcert_5fprivate_5fkey_5fpassword_1850',['client_cert_private_key_password',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a672dbcea4caa427b3fd83e1a2e329859',1,'shaka::PlayReadyEncryptionParams']]], - ['content_5fid_1851',['content_id',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a6b9770524a9507d0a9a3606ceef23075',1,'shaka::WidevineEncryptionParams']]], - ['crypt_5fbyte_5fblock_1852',['crypt_byte_block',['../dc/da0/structshaka_1_1EncryptionParams.html#a87b1deb1705f07c01efa69f14260e0af',1,'shaka::EncryptionParams']]], - ['cue_5fpoints_1853',['cue_points',['../dd/dfd/structshaka_1_1AdCueGeneratorParams.html#aad54b86efce820dc46959aafd9faab7c',1,'shaka::AdCueGeneratorParams']]] + ['ca_5ffile_1846',['ca_file',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#aff3107b2636f730056c6c5a673376226',1,'shaka::PlayReadyEncryptionParams']]], + ['cc_5findex_1847',['cc_index',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a3ab51319dcdbd7457aa92608460a21cf',1,'shaka::StreamDescriptor']]], + ['chunking_5fparams_1848',['chunking_params',['../d5/de3/structshaka_1_1PackagingParams.html#ac992ff58f67ad9b737dfc62d517be8ed',1,'shaka::PackagingParams']]], + ['clear_5flead_5fin_5fseconds_1849',['clear_lead_in_seconds',['../dc/da0/structshaka_1_1EncryptionParams.html#a1ad46963dc926aa4b72813dccb3f6a45',1,'shaka::EncryptionParams']]], + ['client_5fcert_5ffile_1850',['client_cert_file',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a8e3c7d3b038b602e09589e0fda0aad66',1,'shaka::PlayReadyEncryptionParams']]], + ['client_5fcert_5fprivate_5fkey_5ffile_1851',['client_cert_private_key_file',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a63e0f55b12ef1a0305bd51315322b153',1,'shaka::PlayReadyEncryptionParams']]], + ['client_5fcert_5fprivate_5fkey_5fpassword_1852',['client_cert_private_key_password',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a672dbcea4caa427b3fd83e1a2e329859',1,'shaka::PlayReadyEncryptionParams']]], + ['content_5fid_1853',['content_id',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a6b9770524a9507d0a9a3606ceef23075',1,'shaka::WidevineEncryptionParams']]], + ['crypt_5fbyte_5fblock_1854',['crypt_byte_block',['../dc/da0/structshaka_1_1EncryptionParams.html#a87b1deb1705f07c01efa69f14260e0af',1,'shaka::EncryptionParams']]], + ['cue_5fpoints_1855',['cue_points',['../dd/dfd/structshaka_1_1AdCueGeneratorParams.html#aad54b86efce820dc46959aafd9faab7c',1,'shaka::AdCueGeneratorParams']]] ]; diff --git a/docs/search/variables_3.js b/docs/search/variables_3.js index 6afdf60ee5..8c5252466c 100644 --- a/docs/search/variables_3.js +++ b/docs/search/variables_3.js @@ -1,11 +1,11 @@ var searchData= [ - ['dash_5faccessiblities_1854',['dash_accessiblities',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a03bb87af04ca55f1cc83221fa4f3efdc',1,'shaka::StreamDescriptor']]], - ['dash_5fonly_1855',['dash_only',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a2dc5c175f1c9ffd32d8014b8f3163696',1,'shaka::StreamDescriptor']]], - ['dash_5froles_1856',['dash_roles',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a14f5522df8e5a06fa9e0f7852efdfca0',1,'shaka::StreamDescriptor']]], - ['default_5flanguage_1857',['default_language',['../d0/da8/structshaka_1_1HlsParams.html#abeea3a7ebfe7b2d1e29b3e4445bfd113',1,'shaka::HlsParams::default_language()'],['../df/ddc/structshaka_1_1MpdParams.html#a74df80bd74635090e97837f3a5941d73',1,'shaka::MpdParams::default_language()']]], - ['default_5ftext_5flanguage_1858',['default_text_language',['../d0/da8/structshaka_1_1HlsParams.html#a77961998aa8083ec8f9e58f02521566b',1,'shaka::HlsParams::default_text_language()'],['../df/ddc/structshaka_1_1MpdParams.html#acafb3925f5d32826a241d00f2bf09509',1,'shaka::MpdParams::default_text_language()']]], - ['drm_5flabel_1859',['drm_label',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a8f2a517450433cf69bbc87cef17d05cf',1,'shaka::StreamDescriptor']]], - ['dump_5fstream_5finfo_1860',['dump_stream_info',['../d6/d62/structshaka_1_1TestParams.html#a7a22e04cdfc14d73266397bf673fae6e',1,'shaka::TestParams']]], - ['duration_5fin_5fseconds_1861',['duration_in_seconds',['../de/deb/structshaka_1_1Cuepoint.html#a31f0ed2c50901473e6b8ce3180c63793',1,'shaka::Cuepoint']]] + ['dash_5faccessiblities_1856',['dash_accessiblities',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a03bb87af04ca55f1cc83221fa4f3efdc',1,'shaka::StreamDescriptor']]], + ['dash_5fonly_1857',['dash_only',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a2dc5c175f1c9ffd32d8014b8f3163696',1,'shaka::StreamDescriptor']]], + ['dash_5froles_1858',['dash_roles',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a14f5522df8e5a06fa9e0f7852efdfca0',1,'shaka::StreamDescriptor']]], + ['default_5flanguage_1859',['default_language',['../d0/da8/structshaka_1_1HlsParams.html#abeea3a7ebfe7b2d1e29b3e4445bfd113',1,'shaka::HlsParams::default_language()'],['../df/ddc/structshaka_1_1MpdParams.html#a74df80bd74635090e97837f3a5941d73',1,'shaka::MpdParams::default_language()']]], + ['default_5ftext_5flanguage_1860',['default_text_language',['../d0/da8/structshaka_1_1HlsParams.html#a77961998aa8083ec8f9e58f02521566b',1,'shaka::HlsParams::default_text_language()'],['../df/ddc/structshaka_1_1MpdParams.html#acafb3925f5d32826a241d00f2bf09509',1,'shaka::MpdParams::default_text_language()']]], + ['drm_5flabel_1861',['drm_label',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a8f2a517450433cf69bbc87cef17d05cf',1,'shaka::StreamDescriptor']]], + ['dump_5fstream_5finfo_1862',['dump_stream_info',['../d6/d62/structshaka_1_1TestParams.html#a7a22e04cdfc14d73266397bf673fae6e',1,'shaka::TestParams']]], + ['duration_5fin_5fseconds_1863',['duration_in_seconds',['../de/deb/structshaka_1_1Cuepoint.html#a31f0ed2c50901473e6b8ce3180c63793',1,'shaka::Cuepoint']]] ]; diff --git a/docs/search/variables_4.js b/docs/search/variables_4.js index 8d3a650018..38a84cbed3 100644 --- a/docs/search/variables_4.js +++ b/docs/search/variables_4.js @@ -1,5 +1,5 @@ var searchData= [ - ['enable_5fentitlement_5flicense_1862',['enable_entitlement_license',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a47239bcc571757930ba89e8831013234',1,'shaka::WidevineEncryptionParams']]], - ['encryption_5fparams_1863',['encryption_params',['../d5/de3/structshaka_1_1PackagingParams.html#a7792bf4a71a35d2a3f99d8b4806a3913',1,'shaka::PackagingParams']]] + ['enable_5fentitlement_5flicense_1864',['enable_entitlement_license',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a47239bcc571757930ba89e8831013234',1,'shaka::WidevineEncryptionParams']]], + ['encryption_5fparams_1865',['encryption_params',['../d5/de3/structshaka_1_1PackagingParams.html#a7792bf4a71a35d2a3f99d8b4806a3913',1,'shaka::PackagingParams']]] ]; diff --git a/docs/search/variables_5.js b/docs/search/variables_5.js index 88913828fe..9518a35793 100644 --- a/docs/search/variables_5.js +++ b/docs/search/variables_5.js @@ -1,7 +1,7 @@ var searchData= [ - ['generate_5fdash_5fif_5fiop_5fcompliant_5fmpd_1864',['generate_dash_if_iop_compliant_mpd',['../df/ddc/structshaka_1_1MpdParams.html#aa1b2ec6746586d4981655cee62669ba2',1,'shaka::MpdParams']]], - ['generate_5fsidx_5fin_5fmedia_5fsegments_1865',['generate_sidx_in_media_segments',['../d0/d43/structshaka_1_1Mp4OutputParams.html#a26b0505cea21a43ca4ce963f8fa84cf3',1,'shaka::Mp4OutputParams']]], - ['generate_5fstatic_5flive_5fmpd_1866',['generate_static_live_mpd',['../df/ddc/structshaka_1_1MpdParams.html#ab5a09b17ee41a0960e813bd0c72bf4f6',1,'shaka::MpdParams']]], - ['group_5fid_1867',['group_id',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a6d69402cd4c66d546be180c7800e6d09',1,'shaka::WidevineEncryptionParams']]] + ['generate_5fdash_5fif_5fiop_5fcompliant_5fmpd_1866',['generate_dash_if_iop_compliant_mpd',['../df/ddc/structshaka_1_1MpdParams.html#aa1b2ec6746586d4981655cee62669ba2',1,'shaka::MpdParams']]], + ['generate_5fsidx_5fin_5fmedia_5fsegments_1867',['generate_sidx_in_media_segments',['../d0/d43/structshaka_1_1Mp4OutputParams.html#a26b0505cea21a43ca4ce963f8fa84cf3',1,'shaka::Mp4OutputParams']]], + ['generate_5fstatic_5flive_5fmpd_1868',['generate_static_live_mpd',['../df/ddc/structshaka_1_1MpdParams.html#ab5a09b17ee41a0960e813bd0c72bf4f6',1,'shaka::MpdParams']]], + ['group_5fid_1869',['group_id',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a6d69402cd4c66d546be180c7800e6d09',1,'shaka::WidevineEncryptionParams']]] ]; diff --git a/docs/search/variables_6.js b/docs/search/variables_6.js index e045fb7077..4048db154a 100644 --- a/docs/search/variables_6.js +++ b/docs/search/variables_6.js @@ -1,11 +1,11 @@ var searchData= [ - ['height_1868',['height',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a8876f7e978d8b59641947b19d75e532f',1,'shaka::media::TextSettings::height()'],['../d4/d60/structshaka_1_1media_1_1TextRegion.html#af64ab49246f086cf620e555e2582fdbc',1,'shaka::media::TextRegion::height()']]], - ['hls_5fcharacteristics_1869',['hls_characteristics',['../d2/d7b/structshaka_1_1StreamDescriptor.html#ac10d35524ea73cc860a3f027181dc627',1,'shaka::StreamDescriptor']]], - ['hls_5fgroup_5fid_1870',['hls_group_id',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a25764b4ffa8cb0da3b88cc251928ad96',1,'shaka::StreamDescriptor']]], - ['hls_5fiframe_5fplaylist_5fname_1871',['hls_iframe_playlist_name',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a05f0489a76ea049bc8c9f144b4189591',1,'shaka::StreamDescriptor']]], - ['hls_5fname_1872',['hls_name',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a92efcc01f52430f3d3ec030beb8c65c7',1,'shaka::StreamDescriptor']]], - ['hls_5fonly_1873',['hls_only',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a7268e685cd7673fa3fc9a3b36040c1b5',1,'shaka::StreamDescriptor']]], - ['hls_5fparams_1874',['hls_params',['../d5/de3/structshaka_1_1PackagingParams.html#a88e4e2cc444fb79b8e35075dd5a20fbe',1,'shaka::PackagingParams']]], - ['hls_5fplaylist_5fname_1875',['hls_playlist_name',['../d2/d7b/structshaka_1_1StreamDescriptor.html#aa0d36cf55c46def14bc2fa6c293859ef',1,'shaka::StreamDescriptor']]] + ['height_1870',['height',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a8876f7e978d8b59641947b19d75e532f',1,'shaka::media::TextSettings::height()'],['../d4/d60/structshaka_1_1media_1_1TextRegion.html#af64ab49246f086cf620e555e2582fdbc',1,'shaka::media::TextRegion::height()']]], + ['hls_5fcharacteristics_1871',['hls_characteristics',['../d2/d7b/structshaka_1_1StreamDescriptor.html#ac10d35524ea73cc860a3f027181dc627',1,'shaka::StreamDescriptor']]], + ['hls_5fgroup_5fid_1872',['hls_group_id',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a25764b4ffa8cb0da3b88cc251928ad96',1,'shaka::StreamDescriptor']]], + ['hls_5fiframe_5fplaylist_5fname_1873',['hls_iframe_playlist_name',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a05f0489a76ea049bc8c9f144b4189591',1,'shaka::StreamDescriptor']]], + ['hls_5fname_1874',['hls_name',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a92efcc01f52430f3d3ec030beb8c65c7',1,'shaka::StreamDescriptor']]], + ['hls_5fonly_1875',['hls_only',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a7268e685cd7673fa3fc9a3b36040c1b5',1,'shaka::StreamDescriptor']]], + ['hls_5fparams_1876',['hls_params',['../d5/de3/structshaka_1_1PackagingParams.html#a88e4e2cc444fb79b8e35075dd5a20fbe',1,'shaka::PackagingParams']]], + ['hls_5fplaylist_5fname_1877',['hls_playlist_name',['../d2/d7b/structshaka_1_1StreamDescriptor.html#aa0d36cf55c46def14bc2fa6c293859ef',1,'shaka::StreamDescriptor']]] ]; diff --git a/docs/search/variables_7.js b/docs/search/variables_7.js index e17820c904..a1126900c5 100644 --- a/docs/search/variables_7.js +++ b/docs/search/variables_7.js @@ -1,12 +1,12 @@ var searchData= [ - ['image_1876',['image',['../d3/d54/structshaka_1_1media_1_1TextFragment.html#afee4e59f62972eec056a326a324e518d',1,'shaka::media::TextFragment']]], - ['include_5fmspr_5fpro_1877',['include_mspr_pro',['../df/ddc/structshaka_1_1MpdParams.html#a0b9e838af6d1a602e7eaee30a0a9c979',1,'shaka::MpdParams']]], - ['include_5fpssh_5fin_5fstream_1878',['include_pssh_in_stream',['../d0/d43/structshaka_1_1Mp4OutputParams.html#abdff0b6ab552e27e275d8d23cc2f60b1',1,'shaka::Mp4OutputParams']]], - ['index_5frange_1879',['index_range',['../d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html#aa15231fb064efc4b56800df24b074b29',1,'shaka::media::MuxerListener::MediaRanges']]], - ['init_5frange_1880',['init_range',['../d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html#a6070da9ce7fab251c82b25a4020373c0',1,'shaka::media::MuxerListener::MediaRanges']]], - ['inject_5ffake_5fclock_1881',['inject_fake_clock',['../d6/d62/structshaka_1_1TestParams.html#a90ba653c71c94709b8ef3e7c3cc07e6c',1,'shaka::TestParams']]], - ['injected_5flibrary_5fversion_1882',['injected_library_version',['../d6/d62/structshaka_1_1TestParams.html#ac72df3ec74369d0723f0217eac6b5098',1,'shaka::TestParams']]], - ['input_1883',['input',['../d2/d7b/structshaka_1_1StreamDescriptor.html#ae86324b838baa66dbab9a3d35352e200',1,'shaka::StreamDescriptor']]], - ['iv_1884',['iv',['../df/d22/structshaka_1_1WidevineSigner.html#a6db96d4c3f1189bbd09515732bec94d9',1,'shaka::WidevineSigner::iv()'],['../d0/db4/structshaka_1_1RawKeyParams.html#aab733ab6920dd8fbed523810e64ea3f1',1,'shaka::RawKeyParams::iv()']]] + ['image_1878',['image',['../d3/d54/structshaka_1_1media_1_1TextFragment.html#afee4e59f62972eec056a326a324e518d',1,'shaka::media::TextFragment']]], + ['include_5fmspr_5fpro_1879',['include_mspr_pro',['../df/ddc/structshaka_1_1MpdParams.html#a0b9e838af6d1a602e7eaee30a0a9c979',1,'shaka::MpdParams']]], + ['include_5fpssh_5fin_5fstream_1880',['include_pssh_in_stream',['../d0/d43/structshaka_1_1Mp4OutputParams.html#abdff0b6ab552e27e275d8d23cc2f60b1',1,'shaka::Mp4OutputParams']]], + ['index_5frange_1881',['index_range',['../d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html#aa15231fb064efc4b56800df24b074b29',1,'shaka::media::MuxerListener::MediaRanges']]], + ['init_5frange_1882',['init_range',['../d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html#a6070da9ce7fab251c82b25a4020373c0',1,'shaka::media::MuxerListener::MediaRanges']]], + ['inject_5ffake_5fclock_1883',['inject_fake_clock',['../d6/d62/structshaka_1_1TestParams.html#a90ba653c71c94709b8ef3e7c3cc07e6c',1,'shaka::TestParams']]], + ['injected_5flibrary_5fversion_1884',['injected_library_version',['../d6/d62/structshaka_1_1TestParams.html#ac72df3ec74369d0723f0217eac6b5098',1,'shaka::TestParams']]], + ['input_1885',['input',['../d2/d7b/structshaka_1_1StreamDescriptor.html#ae86324b838baa66dbab9a3d35352e200',1,'shaka::StreamDescriptor']]], + ['iv_1886',['iv',['../df/d22/structshaka_1_1WidevineSigner.html#a6db96d4c3f1189bbd09515732bec94d9',1,'shaka::WidevineSigner::iv()'],['../d0/db4/structshaka_1_1RawKeyParams.html#aab733ab6920dd8fbed523810e64ea3f1',1,'shaka::RawKeyParams::iv()']]] ]; diff --git a/docs/search/variables_8.js b/docs/search/variables_8.js index 8593601b26..6d9f01d3c5 100644 --- a/docs/search/variables_8.js +++ b/docs/search/variables_8.js @@ -1,16 +1,16 @@ var searchData= [ - ['kadtsheadersize_1885',['kADTSHeaderSize',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a233ffcb063079b9ca34863c48d4a19e1',1,'shaka::media::AACAudioSpecificConfig']]], - ['kdecryptionkeysize_1886',['kDecryptionKeySize',['../de/d49/classshaka_1_1media_1_1DecryptConfig.html#afa140203b87d3e46d5fd94b231734f53',1,'shaka::media::DecryptConfig']]], - ['key_1887',['key',['../df/d22/structshaka_1_1WidevineSigner.html#ad5c378d29df509280d8697f986163324',1,'shaka::WidevineSigner::key()'],['../df/d22/structshaka_1_1WidevineSigner.html#a25bb558aa06563d24c3d7f9733ff8898',1,'shaka::WidevineSigner::key()']]], - ['key_5fid_1888',['key_id',['../dd/dbd/structshaka_1_1media_1_1EncryptionKey.html#ae5f52aa3deab964bef8191a88f1096bd',1,'shaka::media::EncryptionKey']]], - ['key_5fids_1889',['key_ids',['../dd/dbd/structshaka_1_1media_1_1EncryptionKey.html#a2d97e5d3b7b6716e2e5305489165fdb6',1,'shaka::media::EncryptionKey']]], - ['key_5fmap_1890',['key_map',['../d0/db4/structshaka_1_1RawKeyParams.html#a14e44fed95583d0bb319c082fb1ddb84',1,'shaka::RawKeyParams']]], - ['key_5fprovider_1891',['key_provider',['../d1/d4f/structshaka_1_1DecryptionParams.html#ad93d153f9e777cccb6404611d5b4d339',1,'shaka::DecryptionParams::key_provider()'],['../dc/da0/structshaka_1_1EncryptionParams.html#adcf61ebf8d129a5bcf3f159b9b076eed',1,'shaka::EncryptionParams::key_provider()']]], - ['key_5fserver_5furl_1892',['key_server_url',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#ac222c5bd0620e5a6f9bf5e9fec534fb9',1,'shaka::WidevineEncryptionParams::key_server_url()'],['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#ac5298ee04e36296e8dd4b7a56e8bc464',1,'shaka::PlayReadyEncryptionParams::key_server_url()'],['../d8/d48/structshaka_1_1WidevineDecryptionParams.html#adb765979bcc7f63ce46c9ed6ead1ee5b',1,'shaka::WidevineDecryptionParams::key_server_url()']]], - ['key_5furi_1893',['key_uri',['../d0/da8/structshaka_1_1HlsParams.html#a68414aff0f65059c2d05c8d168aadf5f',1,'shaka::HlsParams']]], - ['knokeyrotation_1894',['kNoKeyRotation',['../dc/da0/structshaka_1_1EncryptionParams.html#a92ad4ca8e1ccb7d6b5fa2ee0b1b196fa',1,'shaka::EncryptionParams']]], - ['korderinvalid_1895',['kOrderInvalid',['../dc/da6/classshaka_1_1media_1_1ContentEncoding.html#a3ba32d5ca8b0688b2dc6b2ec8a5be6d2',1,'shaka::media::ContentEncoding']]], - ['kprotectionschemecenc_1896',['kProtectionSchemeCenc',['../dc/da0/structshaka_1_1EncryptionParams.html#a1d7a8c6b5e46b51ccadcaef3f9cf9cb0',1,'shaka::EncryptionParams']]], - ['ksuggestedpresentationdelaynotset_1897',['kSuggestedPresentationDelayNotSet',['../df/ddc/structshaka_1_1MpdParams.html#a13705544aac44c5d2065b8a842744bf0',1,'shaka::MpdParams']]] + ['kadtsheadersize_1887',['kADTSHeaderSize',['../d0/da2/classshaka_1_1media_1_1AACAudioSpecificConfig.html#a233ffcb063079b9ca34863c48d4a19e1',1,'shaka::media::AACAudioSpecificConfig']]], + ['kdecryptionkeysize_1888',['kDecryptionKeySize',['../de/d49/classshaka_1_1media_1_1DecryptConfig.html#afa140203b87d3e46d5fd94b231734f53',1,'shaka::media::DecryptConfig']]], + ['key_1889',['key',['../df/d22/structshaka_1_1WidevineSigner.html#ad5c378d29df509280d8697f986163324',1,'shaka::WidevineSigner::key()'],['../df/d22/structshaka_1_1WidevineSigner.html#a25bb558aa06563d24c3d7f9733ff8898',1,'shaka::WidevineSigner::key()']]], + ['key_5fid_1890',['key_id',['../dd/dbd/structshaka_1_1media_1_1EncryptionKey.html#ae5f52aa3deab964bef8191a88f1096bd',1,'shaka::media::EncryptionKey']]], + ['key_5fids_1891',['key_ids',['../dd/dbd/structshaka_1_1media_1_1EncryptionKey.html#a2d97e5d3b7b6716e2e5305489165fdb6',1,'shaka::media::EncryptionKey']]], + ['key_5fmap_1892',['key_map',['../d0/db4/structshaka_1_1RawKeyParams.html#a14e44fed95583d0bb319c082fb1ddb84',1,'shaka::RawKeyParams']]], + ['key_5fprovider_1893',['key_provider',['../d1/d4f/structshaka_1_1DecryptionParams.html#ad93d153f9e777cccb6404611d5b4d339',1,'shaka::DecryptionParams::key_provider()'],['../dc/da0/structshaka_1_1EncryptionParams.html#adcf61ebf8d129a5bcf3f159b9b076eed',1,'shaka::EncryptionParams::key_provider()']]], + ['key_5fserver_5furl_1894',['key_server_url',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#ac222c5bd0620e5a6f9bf5e9fec534fb9',1,'shaka::WidevineEncryptionParams::key_server_url()'],['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#ac5298ee04e36296e8dd4b7a56e8bc464',1,'shaka::PlayReadyEncryptionParams::key_server_url()'],['../d8/d48/structshaka_1_1WidevineDecryptionParams.html#adb765979bcc7f63ce46c9ed6ead1ee5b',1,'shaka::WidevineDecryptionParams::key_server_url()']]], + ['key_5furi_1895',['key_uri',['../d0/da8/structshaka_1_1HlsParams.html#a68414aff0f65059c2d05c8d168aadf5f',1,'shaka::HlsParams']]], + ['knokeyrotation_1896',['kNoKeyRotation',['../dc/da0/structshaka_1_1EncryptionParams.html#a92ad4ca8e1ccb7d6b5fa2ee0b1b196fa',1,'shaka::EncryptionParams']]], + ['korderinvalid_1897',['kOrderInvalid',['../dc/da6/classshaka_1_1media_1_1ContentEncoding.html#a3ba32d5ca8b0688b2dc6b2ec8a5be6d2',1,'shaka::media::ContentEncoding']]], + ['kprotectionschemecenc_1898',['kProtectionSchemeCenc',['../dc/da0/structshaka_1_1EncryptionParams.html#a1d7a8c6b5e46b51ccadcaef3f9cf9cb0',1,'shaka::EncryptionParams']]], + ['ksuggestedpresentationdelaynotset_1899',['kSuggestedPresentationDelayNotSet',['../df/ddc/structshaka_1_1MpdParams.html#a13705544aac44c5d2065b8a842744bf0',1,'shaka::MpdParams']]] ]; diff --git a/docs/search/variables_9.js b/docs/search/variables_9.js index c0f23add18..ae87a0973e 100644 --- a/docs/search/variables_9.js +++ b/docs/search/variables_9.js @@ -1,5 +1,5 @@ var searchData= [ - ['language_1898',['language',['../d2/d7b/structshaka_1_1StreamDescriptor.html#af2e3479d90070a03a801ecc5a3d35d7e',1,'shaka::StreamDescriptor']]], - ['line_1899',['line',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a002ea8c52d9ab966f6f8a2616a21da46',1,'shaka::media::TextSettings']]] + ['language_1900',['language',['../d2/d7b/structshaka_1_1StreamDescriptor.html#af2e3479d90070a03a801ecc5a3d35d7e',1,'shaka::StreamDescriptor']]], + ['line_1901',['line',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a002ea8c52d9ab966f6f8a2616a21da46',1,'shaka::media::TextSettings']]] ]; diff --git a/docs/search/variables_a.js b/docs/search/variables_a.js index 92974abf0d..6f4d7a94f5 100644 --- a/docs/search/variables_a.js +++ b/docs/search/variables_a.js @@ -1,11 +1,11 @@ var searchData= [ - ['master_5fplaylist_5foutput_1900',['master_playlist_output',['../d0/da8/structshaka_1_1HlsParams.html#ae3706891d39f8da72ed59d8fb13f2e30',1,'shaka::HlsParams']]], - ['media_5fsequence_5fnumber_1901',['media_sequence_number',['../d0/da8/structshaka_1_1HlsParams.html#a21e605e6e09e2592edba4dab8a0f5d4d',1,'shaka::HlsParams']]], - ['min_5fbuffer_5ftime_1902',['min_buffer_time',['../df/ddc/structshaka_1_1MpdParams.html#aee1510b64b9acbc17b8bfccac2e132a3',1,'shaka::MpdParams']]], - ['minimum_5fupdate_5fperiod_1903',['minimum_update_period',['../df/ddc/structshaka_1_1MpdParams.html#a4a5dafe570fd7e35749ce12d83ca9559',1,'shaka::MpdParams']]], - ['mp4_5foutput_5fparams_1904',['mp4_output_params',['../d5/de3/structshaka_1_1PackagingParams.html#a794072e13c04de6b98e5d1e7cc5b57d6',1,'shaka::PackagingParams']]], - ['mp4_5fparams_1905',['mp4_params',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html#aa616f5958ea9df2d70f3fe42ff47ff43',1,'shaka::media::MuxerOptions']]], - ['mpd_5foutput_1906',['mpd_output',['../df/ddc/structshaka_1_1MpdParams.html#aa6ca18997bb307d3b5fe1c9ced161ff6',1,'shaka::MpdParams']]], - ['mpd_5fparams_1907',['mpd_params',['../d5/de3/structshaka_1_1PackagingParams.html#acfa10a8e9c877a3c2baf83525837a254',1,'shaka::PackagingParams']]] + ['master_5fplaylist_5foutput_1902',['master_playlist_output',['../d0/da8/structshaka_1_1HlsParams.html#ae3706891d39f8da72ed59d8fb13f2e30',1,'shaka::HlsParams']]], + ['media_5fsequence_5fnumber_1903',['media_sequence_number',['../d0/da8/structshaka_1_1HlsParams.html#a21e605e6e09e2592edba4dab8a0f5d4d',1,'shaka::HlsParams']]], + ['min_5fbuffer_5ftime_1904',['min_buffer_time',['../df/ddc/structshaka_1_1MpdParams.html#aee1510b64b9acbc17b8bfccac2e132a3',1,'shaka::MpdParams']]], + ['minimum_5fupdate_5fperiod_1905',['minimum_update_period',['../df/ddc/structshaka_1_1MpdParams.html#a4a5dafe570fd7e35749ce12d83ca9559',1,'shaka::MpdParams']]], + ['mp4_5foutput_5fparams_1906',['mp4_output_params',['../d5/de3/structshaka_1_1PackagingParams.html#a794072e13c04de6b98e5d1e7cc5b57d6',1,'shaka::PackagingParams']]], + ['mp4_5fparams_1907',['mp4_params',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html#aa616f5958ea9df2d70f3fe42ff47ff43',1,'shaka::media::MuxerOptions']]], + ['mpd_5foutput_1908',['mpd_output',['../df/ddc/structshaka_1_1MpdParams.html#aa6ca18997bb307d3b5fe1c9ced161ff6',1,'shaka::MpdParams']]], + ['mpd_5fparams_1909',['mpd_params',['../d5/de3/structshaka_1_1PackagingParams.html#acfa10a8e9c877a3c2baf83525837a254',1,'shaka::PackagingParams']]] ]; diff --git a/docs/search/variables_b.js b/docs/search/variables_b.js index 7b0c51c1ce..dbab191565 100644 --- a/docs/search/variables_b.js +++ b/docs/search/variables_b.js @@ -1,7 +1,7 @@ var searchData= [ - ['output_1908',['output',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a08ce812991297de47354b99cdaec5415',1,'shaka::StreamDescriptor']]], - ['output_5ffile_5fname_1909',['output_file_name',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html#a5397ee8759a663aea68261600e528d82',1,'shaka::media::MuxerOptions']]], - ['output_5fformat_1910',['output_format',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a025d9a9a1612654da2b0c99fe81378db',1,'shaka::StreamDescriptor']]], - ['output_5fmedia_5finfo_1911',['output_media_info',['../d5/de3/structshaka_1_1PackagingParams.html#a9206160a0fb92a9e9ee27fd8e9725ea1',1,'shaka::PackagingParams']]] + ['output_1910',['output',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a08ce812991297de47354b99cdaec5415',1,'shaka::StreamDescriptor']]], + ['output_5ffile_5fname_1911',['output_file_name',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html#a5397ee8759a663aea68261600e528d82',1,'shaka::media::MuxerOptions']]], + ['output_5fformat_1912',['output_format',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a025d9a9a1612654da2b0c99fe81378db',1,'shaka::StreamDescriptor']]], + ['output_5fmedia_5finfo_1913',['output_media_info',['../d5/de3/structshaka_1_1PackagingParams.html#a9206160a0fb92a9e9ee27fd8e9725ea1',1,'shaka::PackagingParams']]] ]; diff --git a/docs/search/variables_c.js b/docs/search/variables_c.js index 74ac54d1ec..8f70863c39 100644 --- a/docs/search/variables_c.js +++ b/docs/search/variables_c.js @@ -1,11 +1,11 @@ var searchData= [ - ['playlist_5ftype_1912',['playlist_type',['../d0/da8/structshaka_1_1HlsParams.html#a9bfeae8a0c112ca82830dd3f228438e6',1,'shaka::HlsParams']]], - ['playready_5fextra_5fheader_5fdata_1913',['playready_extra_header_data',['../dc/da0/structshaka_1_1EncryptionParams.html#a750b46e3c52157c6a05ff074d4355833',1,'shaka::EncryptionParams']]], - ['policy_1914',['policy',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a469f3db91b42af20f270a280c4d42b4f',1,'shaka::WidevineEncryptionParams']]], - ['position_1915',['position',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a63c91deef5b34b528e7f03e61cebe873',1,'shaka::media::TextSettings']]], - ['preserved_5fsegments_5foutside_5flive_5fwindow_1916',['preserved_segments_outside_live_window',['../d0/da8/structshaka_1_1HlsParams.html#aa471aaa93cb7c95996902648e376c2e6',1,'shaka::HlsParams::preserved_segments_outside_live_window()'],['../df/ddc/structshaka_1_1MpdParams.html#a84378ed480ed2e9b8915afd9c349b458',1,'shaka::MpdParams::preserved_segments_outside_live_window()']]], - ['program_5fidentifier_1917',['program_identifier',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a8716552505d244227bf93c4878071f2d',1,'shaka::PlayReadyEncryptionParams']]], - ['protection_5fsystems_1918',['protection_systems',['../dc/da0/structshaka_1_1EncryptionParams.html#a8e1877b4a4cbd071b6bd68c54341f8bc',1,'shaka::EncryptionParams']]], - ['pssh_1919',['pssh',['../d0/db4/structshaka_1_1RawKeyParams.html#a448b8c435fc86d4fbc85214e523f2ac5',1,'shaka::RawKeyParams']]] + ['playlist_5ftype_1914',['playlist_type',['../d0/da8/structshaka_1_1HlsParams.html#a9bfeae8a0c112ca82830dd3f228438e6',1,'shaka::HlsParams']]], + ['playready_5fextra_5fheader_5fdata_1915',['playready_extra_header_data',['../dc/da0/structshaka_1_1EncryptionParams.html#a750b46e3c52157c6a05ff074d4355833',1,'shaka::EncryptionParams']]], + ['policy_1916',['policy',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a469f3db91b42af20f270a280c4d42b4f',1,'shaka::WidevineEncryptionParams']]], + ['position_1917',['position',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a63c91deef5b34b528e7f03e61cebe873',1,'shaka::media::TextSettings']]], + ['preserved_5fsegments_5foutside_5flive_5fwindow_1918',['preserved_segments_outside_live_window',['../d0/da8/structshaka_1_1HlsParams.html#aa471aaa93cb7c95996902648e376c2e6',1,'shaka::HlsParams::preserved_segments_outside_live_window()'],['../df/ddc/structshaka_1_1MpdParams.html#a84378ed480ed2e9b8915afd9c349b458',1,'shaka::MpdParams::preserved_segments_outside_live_window()']]], + ['program_5fidentifier_1919',['program_identifier',['../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a8716552505d244227bf93c4878071f2d',1,'shaka::PlayReadyEncryptionParams']]], + ['protection_5fsystems_1920',['protection_systems',['../dc/da0/structshaka_1_1EncryptionParams.html#a8e1877b4a4cbd071b6bd68c54341f8bc',1,'shaka::EncryptionParams']]], + ['pssh_1921',['pssh',['../d0/db4/structshaka_1_1RawKeyParams.html#a448b8c435fc86d4fbc85214e523f2ac5',1,'shaka::RawKeyParams']]] ]; diff --git a/docs/search/variables_d.js b/docs/search/variables_d.js index 86b90c75a5..5f30a73df4 100644 --- a/docs/search/variables_d.js +++ b/docs/search/variables_d.js @@ -1,6 +1,6 @@ var searchData= [ - ['read_5ffunc_1920',['read_func',['../d9/da8/structshaka_1_1BufferCallbackParams.html#a6e6e97682ba2be686a2d1e9b62d26e13',1,'shaka::BufferCallbackParams']]], - ['region_1921',['region',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a2e1043e8268bc0c1c515d77c7b099d10',1,'shaka::media::TextSettings']]], - ['region_5fanchor_5fx_1922',['region_anchor_x',['../d4/d60/structshaka_1_1media_1_1TextRegion.html#a063364e900e64c4be3e5e563c7c67649',1,'shaka::media::TextRegion']]] + ['read_5ffunc_1922',['read_func',['../d9/da8/structshaka_1_1BufferCallbackParams.html#a6e6e97682ba2be686a2d1e9b62d26e13',1,'shaka::BufferCallbackParams']]], + ['region_1923',['region',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a2e1043e8268bc0c1c515d77c7b099d10',1,'shaka::media::TextSettings']]], + ['region_5fanchor_5fx_1924',['region_anchor_x',['../d4/d60/structshaka_1_1media_1_1TextRegion.html#a063364e900e64c4be3e5e563c7c67649',1,'shaka::media::TextRegion']]] ]; diff --git a/docs/search/variables_e.js b/docs/search/variables_e.js index c3a4e5eba8..6b06acc01f 100644 --- a/docs/search/variables_e.js +++ b/docs/search/variables_e.js @@ -1,20 +1,20 @@ var searchData= [ - ['sample_5fencryption_5fdata_1923',['sample_encryption_data',['../d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html#a621791262888f30b4ee8a8acb37cd5a3',1,'shaka::media::mp4::SampleEncryption']]], - ['scroll_1924',['scroll',['../d4/d60/structshaka_1_1media_1_1TextRegion.html#aebbc17097e3959a5aa9eb96c58a7a513',1,'shaka::media::TextRegion']]], - ['segment_5fduration_5fin_5fseconds_1925',['segment_duration_in_seconds',['../d2/d1f/structshaka_1_1ChunkingParams.html#a01414f1502775576d68e45d172029358',1,'shaka::ChunkingParams']]], - ['segment_5fsap_5faligned_1926',['segment_sap_aligned',['../d2/d1f/structshaka_1_1ChunkingParams.html#a1ab10c82260dc073fb3830efcdabb171',1,'shaka::ChunkingParams']]], - ['segment_5ftemplate_1927',['segment_template',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html#ab98cfd28046fc5c52ab2a45dba1a339a',1,'shaka::media::MuxerOptions::segment_template()'],['../d2/d7b/structshaka_1_1StreamDescriptor.html#af3e55c8970e8a7604ca79a98f4642872',1,'shaka::StreamDescriptor::segment_template()']]], - ['signer_1928',['signer',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a233141ad4baf2f2afce30f96adf340ae',1,'shaka::WidevineEncryptionParams::signer()'],['../d8/d48/structshaka_1_1WidevineDecryptionParams.html#acf84772bb9787f61110e388490412939',1,'shaka::WidevineDecryptionParams::signer()']]], - ['signer_5fname_1929',['signer_name',['../df/d22/structshaka_1_1WidevineSigner.html#a6768d5addb3c90f33ce5f241705c827e',1,'shaka::WidevineSigner']]], - ['signing_5fkey_5ftype_1930',['signing_key_type',['../df/d22/structshaka_1_1WidevineSigner.html#a656fbc14799c96fa8b822e3917070cf6',1,'shaka::WidevineSigner']]], - ['single_5fthreaded_1931',['single_threaded',['../d5/de3/structshaka_1_1PackagingParams.html#af3fef4c5d477496c5e99b59c99b5a7db',1,'shaka::PackagingParams']]], - ['skip_5fbyte_5fblock_1932',['skip_byte_block',['../dc/da0/structshaka_1_1EncryptionParams.html#afa236ca5a091603c2bc6d28b1f84d816',1,'shaka::EncryptionParams']]], - ['skip_5fencryption_1933',['skip_encryption',['../d2/d7b/structshaka_1_1StreamDescriptor.html#abbaf07b1faa84803478f89bc6dd8cb4a',1,'shaka::StreamDescriptor']]], - ['start_5ftime_5fin_5fseconds_1934',['start_time_in_seconds',['../de/deb/structshaka_1_1Cuepoint.html#a18272c3d7ac008355717b75816fba4b8',1,'shaka::Cuepoint']]], - ['stream_5flabel_5ffunc_1935',['stream_label_func',['../dc/da0/structshaka_1_1EncryptionParams.html#a7686a6aca6a7c3d077a5d7215c39fc51',1,'shaka::EncryptionParams']]], - ['stream_5fselector_1936',['stream_selector',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a386c5e3717b5f982f72698abba09df2c',1,'shaka::StreamDescriptor']]], - ['subsegment_5fduration_5fin_5fseconds_1937',['subsegment_duration_in_seconds',['../d2/d1f/structshaka_1_1ChunkingParams.html#ae303f5bf58edbb231b0cfbbf9c4e05d7',1,'shaka::ChunkingParams']]], - ['subsegment_5franges_1938',['subsegment_ranges',['../d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html#a836626da601a9f6ea54502c7e5bdd7c9',1,'shaka::media::MuxerListener::MediaRanges']]], - ['subsegment_5fsap_5faligned_1939',['subsegment_sap_aligned',['../d2/d1f/structshaka_1_1ChunkingParams.html#afcde8cc6cf9646c78f5bf13181022aa7',1,'shaka::ChunkingParams']]] + ['sample_5fencryption_5fdata_1925',['sample_encryption_data',['../d4/dad/structshaka_1_1media_1_1mp4_1_1SampleEncryption.html#a621791262888f30b4ee8a8acb37cd5a3',1,'shaka::media::mp4::SampleEncryption']]], + ['scroll_1926',['scroll',['../d4/d60/structshaka_1_1media_1_1TextRegion.html#aebbc17097e3959a5aa9eb96c58a7a513',1,'shaka::media::TextRegion']]], + ['segment_5fduration_5fin_5fseconds_1927',['segment_duration_in_seconds',['../d2/d1f/structshaka_1_1ChunkingParams.html#a01414f1502775576d68e45d172029358',1,'shaka::ChunkingParams']]], + ['segment_5fsap_5faligned_1928',['segment_sap_aligned',['../d2/d1f/structshaka_1_1ChunkingParams.html#a1ab10c82260dc073fb3830efcdabb171',1,'shaka::ChunkingParams']]], + ['segment_5ftemplate_1929',['segment_template',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html#ab98cfd28046fc5c52ab2a45dba1a339a',1,'shaka::media::MuxerOptions::segment_template()'],['../d2/d7b/structshaka_1_1StreamDescriptor.html#af3e55c8970e8a7604ca79a98f4642872',1,'shaka::StreamDescriptor::segment_template()']]], + ['signer_1930',['signer',['../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a233141ad4baf2f2afce30f96adf340ae',1,'shaka::WidevineEncryptionParams::signer()'],['../d8/d48/structshaka_1_1WidevineDecryptionParams.html#acf84772bb9787f61110e388490412939',1,'shaka::WidevineDecryptionParams::signer()']]], + ['signer_5fname_1931',['signer_name',['../df/d22/structshaka_1_1WidevineSigner.html#a6768d5addb3c90f33ce5f241705c827e',1,'shaka::WidevineSigner']]], + ['signing_5fkey_5ftype_1932',['signing_key_type',['../df/d22/structshaka_1_1WidevineSigner.html#a656fbc14799c96fa8b822e3917070cf6',1,'shaka::WidevineSigner']]], + ['single_5fthreaded_1933',['single_threaded',['../d5/de3/structshaka_1_1PackagingParams.html#af3fef4c5d477496c5e99b59c99b5a7db',1,'shaka::PackagingParams']]], + ['skip_5fbyte_5fblock_1934',['skip_byte_block',['../dc/da0/structshaka_1_1EncryptionParams.html#afa236ca5a091603c2bc6d28b1f84d816',1,'shaka::EncryptionParams']]], + ['skip_5fencryption_1935',['skip_encryption',['../d2/d7b/structshaka_1_1StreamDescriptor.html#abbaf07b1faa84803478f89bc6dd8cb4a',1,'shaka::StreamDescriptor']]], + ['start_5ftime_5fin_5fseconds_1936',['start_time_in_seconds',['../de/deb/structshaka_1_1Cuepoint.html#a18272c3d7ac008355717b75816fba4b8',1,'shaka::Cuepoint']]], + ['stream_5flabel_5ffunc_1937',['stream_label_func',['../dc/da0/structshaka_1_1EncryptionParams.html#a7686a6aca6a7c3d077a5d7215c39fc51',1,'shaka::EncryptionParams']]], + ['stream_5fselector_1938',['stream_selector',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a386c5e3717b5f982f72698abba09df2c',1,'shaka::StreamDescriptor']]], + ['subsegment_5fduration_5fin_5fseconds_1939',['subsegment_duration_in_seconds',['../d2/d1f/structshaka_1_1ChunkingParams.html#ae303f5bf58edbb231b0cfbbf9c4e05d7',1,'shaka::ChunkingParams']]], + ['subsegment_5franges_1940',['subsegment_ranges',['../d1/d03/structshaka_1_1media_1_1MuxerListener_1_1MediaRanges.html#a836626da601a9f6ea54502c7e5bdd7c9',1,'shaka::media::MuxerListener::MediaRanges']]], + ['subsegment_5fsap_5faligned_1941',['subsegment_sap_aligned',['../d2/d1f/structshaka_1_1ChunkingParams.html#afcde8cc6cf9646c78f5bf13181022aa7',1,'shaka::ChunkingParams']]] ]; diff --git a/docs/search/variables_f.js b/docs/search/variables_f.js index f07fd9338c..9b530581db 100644 --- a/docs/search/variables_f.js +++ b/docs/search/variables_f.js @@ -1,9 +1,9 @@ var searchData= [ - ['target_5fsegment_5fduration_1940',['target_segment_duration',['../d0/da8/structshaka_1_1HlsParams.html#aaa9c66720a8fb0e7ee3ef362825919a6',1,'shaka::HlsParams::target_segment_duration()'],['../df/ddc/structshaka_1_1MpdParams.html#a88b8d28e263b2dcb36909869d3c2ceca',1,'shaka::MpdParams::target_segment_duration()']]], - ['temp_5fdir_1941',['temp_dir',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html#a872d1150a71d9f0fb5db0ab81334d614',1,'shaka::media::MuxerOptions::temp_dir()'],['../d5/de3/structshaka_1_1PackagingParams.html#ae179e88ad853856b0e006326ff445f6e',1,'shaka::PackagingParams::temp_dir()']]], - ['text_5falignment_1942',['text_alignment',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a1d13993b1682b88332a6ea07aaca5a58',1,'shaka::media::TextSettings']]], - ['time_5fshift_5fbuffer_5fdepth_1943',['time_shift_buffer_depth',['../d0/da8/structshaka_1_1HlsParams.html#adc19a9eebbfe20c3f9fe03dd452e4b1b',1,'shaka::HlsParams::time_shift_buffer_depth()'],['../df/ddc/structshaka_1_1MpdParams.html#a95e4824708c8de4b882b86772f680032',1,'shaka::MpdParams::time_shift_buffer_depth()']]], - ['transport_5fstream_5ftimestamp_5foffset_5fms_1944',['transport_stream_timestamp_offset_ms',['../d5/de3/structshaka_1_1PackagingParams.html#aa2c8c5254f14048368edb652dd329556',1,'shaka::PackagingParams']]], - ['trick_5fplay_5ffactor_1945',['trick_play_factor',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a5cc00f367691729460e0b75b8ec6c512',1,'shaka::StreamDescriptor']]] + ['target_5fsegment_5fduration_1942',['target_segment_duration',['../d0/da8/structshaka_1_1HlsParams.html#aaa9c66720a8fb0e7ee3ef362825919a6',1,'shaka::HlsParams::target_segment_duration()'],['../df/ddc/structshaka_1_1MpdParams.html#a88b8d28e263b2dcb36909869d3c2ceca',1,'shaka::MpdParams::target_segment_duration()']]], + ['temp_5fdir_1943',['temp_dir',['../d0/d27/structshaka_1_1media_1_1MuxerOptions.html#a872d1150a71d9f0fb5db0ab81334d614',1,'shaka::media::MuxerOptions::temp_dir()'],['../d5/de3/structshaka_1_1PackagingParams.html#ae179e88ad853856b0e006326ff445f6e',1,'shaka::PackagingParams::temp_dir()']]], + ['text_5falignment_1944',['text_alignment',['../dd/d5e/structshaka_1_1media_1_1TextSettings.html#a1d13993b1682b88332a6ea07aaca5a58',1,'shaka::media::TextSettings']]], + ['time_5fshift_5fbuffer_5fdepth_1945',['time_shift_buffer_depth',['../d0/da8/structshaka_1_1HlsParams.html#adc19a9eebbfe20c3f9fe03dd452e4b1b',1,'shaka::HlsParams::time_shift_buffer_depth()'],['../df/ddc/structshaka_1_1MpdParams.html#a95e4824708c8de4b882b86772f680032',1,'shaka::MpdParams::time_shift_buffer_depth()']]], + ['transport_5fstream_5ftimestamp_5foffset_5fms_1946',['transport_stream_timestamp_offset_ms',['../d5/de3/structshaka_1_1PackagingParams.html#aa2c8c5254f14048368edb652dd329556',1,'shaka::PackagingParams']]], + ['trick_5fplay_5ffactor_1947',['trick_play_factor',['../d2/d7b/structshaka_1_1StreamDescriptor.html#a5cc00f367691729460e0b75b8ec6c512',1,'shaka::StreamDescriptor']]] ]; diff --git a/html/_images/plantuml-d388f7ab1eb3f4d70c57feb299c189351a097db9.png b/html/_images/plantuml-d388f7ab1eb3f4d70c57feb299c189351a097db9.png index 7fa3a1d200..c40e27e4dc 100644 Binary files a/html/_images/plantuml-d388f7ab1eb3f4d70c57feb299c189351a097db9.png and b/html/_images/plantuml-d388f7ab1eb3f4d70c57feb299c189351a097db9.png differ diff --git a/html/_plantuml/d3/d388f7ab1eb3f4d70c57feb299c189351a097db9.png b/html/_plantuml/d3/d388f7ab1eb3f4d70c57feb299c189351a097db9.png index 7fa3a1d200..c40e27e4dc 100644 Binary files a/html/_plantuml/d3/d388f7ab1eb3f4d70c57feb299c189351a097db9.png and b/html/_plantuml/d3/d388f7ab1eb3f4d70c57feb299c189351a097db9.png differ diff --git a/html/_sources/tutorials/dash_hls_example.rst.txt b/html/_sources/tutorials/dash_hls_example.rst.txt index dcd6e95151..dc9649f268 100644 --- a/html/_sources/tutorials/dash_hls_example.rst.txt +++ b/html/_sources/tutorials/dash_hls_example.rst.txt @@ -12,7 +12,7 @@ The above packaging command creates five single file MP4 streams, and HLS playlists as well as DASH manifests. -* Output DASH + HLS with dash_only and hls_only options +* Output DASH + HLS with dash_only and hls_only options:: $ packager \ 'in=h264_baseline_360p_600.mp4,stream=audio,init_segment=audio/init.mp4,segment_template=audio/$Number$.m4s' \ diff --git a/html/_static/jquery.js b/html/_static/jquery.js deleted file mode 100644 index b8eb73cba2..0000000000 --- a/html/_static/jquery.js +++ /dev/null @@ -1,10870 +0,0 @@ -/*! - * jQuery JavaScript Library v3.5.1 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var flat = arr.flat ? function( array ) { - return arr.flat.call( array ); -} : function( array ) { - return arr.concat.apply( [], array ); -}; - - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - -var document = window.document; - - - - var preservedScriptAttributes = { - type: true, - src: true, - nonce: true, - noModule: true - }; - - function DOMEval( code, node, doc ) { - doc = doc || document; - - var i, val, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - - // Support: Firefox 64+, Edge 18+ - // Some browsers don't support the "nonce" property on scripts. - // On the other hand, just using `getAttribute` is not enough as - // the `nonce` attribute is reset to an empty string whenever it - // becomes browsing-context connected. - // See https://github.com/whatwg/html/issues/2369 - // See https://html.spec.whatwg.org/#nonce-attributes - // The `node.getAttribute` check was added for the sake of - // `jQuery.globalEval` so that it can fake a nonce-containing node - // via an object. - val = node[ i ] || node.getAttribute && node.getAttribute( i ); - if ( val ) { - script.setAttribute( i, val ); - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.5.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - even: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return ( i + 1 ) % 2; - } ) ); - }, - - odd: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return i % 2; - } ) ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - copy = options[ name ]; - - // Prevent Object.prototype pollution - // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; - } else { - clone = src; - } - copyIsArray = false; - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a provided context; falls back to the global one - // if not specified. - globalEval: function( code, options, doc ) { - DOMEval( code, { nonce: options && options.nonce }, doc ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return flat( ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.5 - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://js.foundation/ - * - * Date: 2020-03-14 - */ -( function( window ) { -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - nonnativeSelectorCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ( {} ).hasOwnProperty, - arr = [], - pop = arr.pop, - pushNative = arr.push, - push = arr.push, - slice = arr.slice, - - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[ i ] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + - "ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram - identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + - "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - - // "Attribute values must be CSS identifiers [capture 5] - // or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + - whitespace + "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + - whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + - "*" ), - rdescend = new RegExp( whitespace + "|>" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + - whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + - whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + - "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + - "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rhtml = /HTML$/i, - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), - funescape = function( escape, nonHex ) { - var high = "0x" + escape.slice( 1 ) - 0x10000; - - return nonHex ? - - // Strip the backslash prefix from a non-hex escape sequence - nonHex : - - // Replace a hexadecimal escape sequence with the encoded Unicode code point - // Support: IE <=11+ - // For values outside the Basic Multilingual Plane (BMP), manually construct a - // surrogate pair - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + - ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - inDisabledFieldset = addCombinator( - function( elem ) { - return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - ( arr = slice.call( preferredDoc.childNodes ) ), - preferredDoc.childNodes - ); - - // Support: Android<4.0 - // Detect silently failing push.apply - // eslint-disable-next-line no-unused-expressions - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - pushNative.apply( target, slice.call( els ) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - - // Can't trust NodeList.length - while ( ( target[ j++ ] = els[ i++ ] ) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - setDocument( context ); - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { - - // ID selector - if ( ( m = match[ 1 ] ) ) { - - // Document context - if ( nodeType === 9 ) { - if ( ( elem = context.getElementById( m ) ) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && ( elem = newContext.getElementById( m ) ) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[ 2 ] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !nonnativeSelectorCache[ selector + " " ] && - ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && - - // Support: IE 8 only - // Exclude object elements - ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { - - newSelector = selector; - newContext = context; - - // qSA considers elements outside a scoping root when evaluating child or - // descendant combinators, which is not what we want. - // In such cases, we work around the behavior by prefixing every selector in the - // list with an ID selector referencing the scope context. - // The technique has to be used as well when a leading combinator is used - // as such selectors are not recognized by querySelectorAll. - // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && - ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - - // We can use :scope instead of the ID hack if the browser - // supports it & if we're not changing the context. - if ( newContext !== context || !support.scope ) { - - // Capture the context ID, setting it first if necessary - if ( ( nid = context.getAttribute( "id" ) ) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", ( nid = expando ) ); - } - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + - toSelector( groups[ i ] ); - } - newSelector = groups.join( "," ); - } - - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - nonnativeSelectorCache( selector, true ); - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return ( cache[ key + " " ] = value ); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement( "fieldset" ); - - try { - return !!fn( el ); - } catch ( e ) { - return false; - } finally { - - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split( "|" ), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[ i ] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( ( cur = cur.nextSibling ) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return ( name === "input" || name === "button" ) && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction( function( argument ) { - argument = +argument; - return markFunction( function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ ( j = matchIndexes[ i ] ) ] ) { - seed[ j ] = !( matches[ j ] = seed[ j ] ); - } - } - } ); - } ); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; - - // Support: IE <=8 - // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes - // https://bugs.jquery.com/ticket/4833 - return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9 - 11+, Edge 12 - 18+ - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( preferredDoc != document && - ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, - // Safari 4 - 5 only, Opera <=11.6 - 12.x only - // IE/Edge & older browsers don't support the :scope pseudo-class. - // Support: Safari 6.0 only - // Safari 6.0 supports :scope but it's an alias of :root there. - support.scope = assert( function( el ) { - docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); - return typeof el.querySelectorAll !== "undefined" && - !el.querySelectorAll( ":scope fieldset div" ).length; - } ); - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert( function( el ) { - el.className = "i"; - return !el.getAttribute( "className" ); - } ); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert( function( el ) { - el.appendChild( document.createComment( "" ) ); - return !el.getElementsByTagName( "*" ).length; - } ); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert( function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - } ); - - // ID filter and find - if ( support.getById ) { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute( "id" ) === attrId; - }; - }; - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode( "id" ); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( ( elem = elems[ i++ ] ) ) { - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find[ "TAG" ] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { - - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert( function( el ) { - - var input; - - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll( "[selected]" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push( "~=" ); - } - - // Support: IE 11+, Edge 15 - 18+ - // IE 11/Edge don't find elements on a `[name='']` query in some cases. - // Adding a temporary attribute to the document before the selection works - // around the issue. - // Interestingly, IE 10 & older don't seem to have the issue. - input = document.createElement( "input" ); - input.setAttribute( "name", "" ); - el.appendChild( input ); - if ( !el.querySelectorAll( "[name='']" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + - whitespace + "*(?:''|\"\")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll( ":checked" ).length ) { - rbuggyQSA.push( ":checked" ); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push( ".#.+[+~]" ); - } - - // Support: Firefox <=3.6 - 5 only - // Old Firefox doesn't throw on a badly-escaped identifier. - el.querySelectorAll( "\\\f" ); - rbuggyQSA.push( "[\\r\\n\\f]" ); - } ); - - assert( function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement( "input" ); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll( "[name=d]" ).length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: Opera 10 - 11 only - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll( "*,:x" ); - rbuggyQSA.push( ",.*:" ); - } ); - } - - if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector ) ) ) ) { - - assert( function( el ) { - - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - } ); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - ) ); - } : - function( a, b ) { - if ( b ) { - while ( ( b = b.parentNode ) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { - - // Choose the first element that is related to our preferred document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( a == document || a.ownerDocument == preferredDoc && - contains( preferredDoc, a ) ) { - return -1; - } - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( b == document || b.ownerDocument == preferredDoc && - contains( preferredDoc, b ) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - return a == document ? -1 : - b == document ? 1 : - /* eslint-enable eqeqeq */ - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( ( cur = cur.parentNode ) ) { - ap.unshift( cur ); - } - cur = b; - while ( ( cur = cur.parentNode ) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[ i ] === bp[ i ] ) { - i++; - } - - return i ? - - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[ i ], bp[ i ] ) : - - // Otherwise nodes in our document sort first - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - ap[ i ] == preferredDoc ? -1 : - bp[ i ] == preferredDoc ? 1 : - /* eslint-enable eqeqeq */ - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - setDocument( elem ); - - if ( support.matchesSelector && documentIsHTML && - !nonnativeSelectorCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch ( e ) { - nonnativeSelectorCache( expr, true ); - } - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( context.ownerDocument || context ) != document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( elem.ownerDocument || elem ) != document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return ( sel + "" ).replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - - // If no nodeType, this is expected to be an array - while ( ( node = elem[ i++ ] ) ) { - - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[ 1 ] = match[ 1 ].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[ 3 ] = ( match[ 3 ] || match[ 4 ] || - match[ 5 ] || "" ).replace( runescape, funescape ); - - if ( match[ 2 ] === "~=" ) { - match[ 3 ] = " " + match[ 3 ] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[ 1 ] = match[ 1 ].toLowerCase(); - - if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - - // nth-* requires argument - if ( !match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[ 4 ] = +( match[ 4 ] ? - match[ 5 ] + ( match[ 6 ] || 1 ) : - 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); - match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - - // other types prohibit arguments - } else if ( match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[ 6 ] && match[ 2 ]; - - if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[ 3 ] ) { - match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - - // Get excess from tokenize (recursively) - ( excess = tokenize( unquoted, true ) ) && - - // advance to the next closing parenthesis - ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { - - // excess is a negative index - match[ 0 ] = match[ 0 ].slice( 0, excess ); - match[ 2 ] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { - return true; - } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - ( pattern = new RegExp( "(^|" + whitespace + - ")" + className + "(" + whitespace + "|$)" ) ) && classCache( - className, function( elem ) { - return pattern.test( - typeof elem.className === "string" && elem.className || - typeof elem.getAttribute !== "undefined" && - elem.getAttribute( "class" ) || - "" - ); - } ); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - /* eslint-disable max-len */ - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - /* eslint-enable max-len */ - - }; - }, - - "CHILD": function( type, what, _argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, _context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( ( node = node[ dir ] ) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( ( node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - - // Use previously-cached element index if available - if ( useCache ) { - - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - - // Use the same loop as above to seek `elem` from the start - while ( ( node = ++nodeIndex && node && node[ dir ] || - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || - ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction( function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[ i ] ); - seed[ idx ] = !( matches[ idx ] = matched[ i ] ); - } - } ) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - - // Potentially complex pseudos - "not": markFunction( function( selector ) { - - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction( function( seed, matches, _context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( ( elem = unmatched[ i ] ) ) { - seed[ i ] = !( matches[ i ] = elem ); - } - } - } ) : - function( elem, _context, xml ) { - input[ 0 ] = elem; - matcher( input, null, xml, results ); - - // Don't keep the element (issue #299) - input[ 0 ] = null; - return !results.pop(); - }; - } ), - - "has": markFunction( function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - } ), - - "contains": markFunction( function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; - }; - } ), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - - // lang value must be a valid identifier - if ( !ridentifier.test( lang || "" ) ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( ( elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); - return false; - }; - } ), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && - ( !document.hasFocus || document.hasFocus() ) && - !!( elem.type || elem.href || ~elem.tabIndex ); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return ( nodeName === "input" && !!elem.checked ) || - ( nodeName === "option" && !!elem.selected ); - }, - - "selected": function( elem ) { - - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - // eslint-disable-next-line no-unused-expressions - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos[ "empty" ]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( ( attr = elem.getAttribute( "type" ) ) == null || - attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo( function() { - return [ 0 ]; - } ), - - "last": createPositionalPseudo( function( _matchIndexes, length ) { - return [ length - 1 ]; - } ), - - "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - } ), - - "even": createPositionalPseudo( function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "odd": createPositionalPseudo( function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? - argument + length : - argument > length ? - length : - argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ) - } -}; - -Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || ( match = rcomma.exec( soFar ) ) ) { - if ( match ) { - - // Don't consume trailing commas as valid - soFar = soFar.slice( match[ 0 ].length ) || soFar; - } - groups.push( ( tokens = [] ) ); - } - - matched = false; - - // Combinators - if ( ( match = rcombinators.exec( soFar ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - - // Cast descendant combinators to space - type: match[ 0 ].replace( rtrim, " " ) - } ); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || - ( match = preFilters[ type ]( match ) ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - type: type, - matches: match - } ); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[ i ].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || ( elem[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || - ( outerCache[ elem.uniqueID ] = {} ); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( ( oldCache = uniqueCache[ key ] ) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return ( newCache[ 2 ] = oldCache[ 2 ] ); - } else { - - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[ i ]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[ 0 ]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[ i ], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( ( elem = unmatched[ i ] ) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction( function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( - selector || "*", - context.nodeType ? [ context ] : context, - [] - ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( ( elem = temp[ i ] ) ) { - matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) ) { - - // Restore matcherIn since elem is not yet a final match - temp.push( ( matcherIn[ i ] = elem ) ); - } - } - postFinder( null, ( matcherOut = [] ), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) && - ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - - seed[ temp ] = !( results[ temp ] = elem ); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - } ); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[ 0 ].type ], - implicitRelative = leadingRelative || Expr.relative[ " " ], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - ( checkContext = context ).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { - matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; - } else { - matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[ j ].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens - .slice( 0, i - 1 ) - .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), - - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), - len = elems.length; - - if ( outermost ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - outermostContext = context == document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( !context && elem.ownerDocument != document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( ( matcher = elementMatchers[ j++ ] ) ) { - if ( matcher( elem, context || document, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - - // They will have gone through all possible matchers - if ( ( elem = !matcher && elem ) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( ( matcher = setMatchers[ j++ ] ) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !( unmatched[ i ] || setMatched[ i ] ) ) { - setMatched[ i ] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[ i ] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( - selector, - matcherFromGroupMatchers( elementMatchers, setMatchers ) - ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( ( selector = compiled.selector || selector ) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[ 0 ] = match[ 0 ].slice( 0 ); - if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - - context = ( Expr.find[ "ID" ]( token.matches[ 0 ] - .replace( runescape, funescape ), context ) || [] )[ 0 ]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[ i ]; - - // Abort if we hit a combinator - if ( Expr.relative[ ( type = token.type ) ] ) { - break; - } - if ( ( find = Expr.find[ type ] ) ) { - - // Search, expanding context for leading sibling combinators - if ( ( seed = find( - token.matches[ 0 ].replace( runescape, funescape ), - rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || - context - ) ) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert( function( el ) { - - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; -} ); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert( function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute( "href" ) === "#"; -} ) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - } ); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert( function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -} ) ) { - addHandle( "value", function( elem, _name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - } ); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert( function( el ) { - return el.getAttribute( "disabled" ) == null; -} ) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; - } - } ); -} - -return Sizzle; - -} )( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, _i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, _i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, _i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( elem.contentDocument != null && - - // Support: IE 11+ - // elements with no `data` attribute has an object - // `contentDocument` with a `null` prototype. - getProto( elem.contentDocument ) ) { - - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && toType( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( _i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[ 3 - i ][ 3 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock, - - // progress_handlers.lock - tuples[ 0 ][ 3 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the master Deferred - master = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return master.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); - } - - return master.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( toType( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, _key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; - - -// Matches dashed string for camelizing -var rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g; - -// Used by camelCase as callback to replace() -function fcamelCase( _all, letter ) { - return letter.toUpperCase(); -} - -// Convert dashed to camelCase; used by the css and data modules -// Support: IE <=9 - 11, Edge 12 - 15 -// Microsoft forgot to hump their vendor prefix (#9572) -function camelCase( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); -} -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( camelCase ); - } else { - key = camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var documentElement = document.documentElement; - - - - var isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ); - }, - composed = { composed: true }; - - // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only - // Check attachment across shadow DOM boundaries when possible (gh-3504) - // Support: iOS 10.0-10.2 only - // Early iOS 10 versions support `attachShadow` but not `getRootNode`, - // leading to errors. We need to check for `getRootNode`. - if ( documentElement.getRootNode ) { - isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ) || - elem.getRootNode( composed ) === elem.ownerDocument; - }; - } -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - isAttached( elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, scale, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = elem.nodeType && - ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Support: Firefox <=54 - // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) - initial = initial / 2; - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - while ( maxIterations-- ) { - - // Evaluate and update our best guess (doubling guesses that zero out). - // Finish if the scale equals or crosses 1 (making the old*new product non-positive). - jQuery.style( elem, prop, initialInUnit + unit ); - if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale; - - } - - initialInUnit = initialInUnit * 2; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); - -var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); - - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // Support: IE <=9 only - // IE <=9 replaces "; - support.option = !!div.lastChild; -} )(); - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
      " ], - col: [ 2, "", "
      " ], - tr: [ 2, "", "
      " ], - td: [ 3, "", "
      " ], - - _default: [ 0, "", "" ] -}; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: IE <=9 only -if ( !support.option ) { - wrapMap.optgroup = wrapMap.option = [ 1, "" ]; -} - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - attached = isAttached( elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( attached ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - -// Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Only attach events to objects that accept data - if ( !acceptData( elem ) ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = Object.create( null ); - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( nativeEvent ), - - handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); - } - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); - } - - // Return non-false to allow normal event-path propagation - return true; - }, - - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack - _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - return result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - code: true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - delegateType: delegateType - }; -} ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.get( src ); - events = pdataOld.events; - - if ( events ) { - dataPriv.remove( dest, "handle events" ); - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = flat( args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - }, doc ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html; - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = isAttached( elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var swap = function( elem, options, callback ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) - div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableTrDimensionsVal, reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - }, - - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if ( reliableTrDimensionsVal == null ) { - table = document.createElement( "table" ); - tr = document.createElement( "tr" ); - trChild = document.createElement( "div" ); - - table.style.cssText = "position:absolute;left:-11111px"; - tr.style.height = "1px"; - trChild.style.height = "9px"; - - documentElement - .appendChild( table ) - .appendChild( tr ) - .appendChild( trChild ); - - trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; - - documentElement.removeChild( table ); - } - return reliableTrDimensionsVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !isAttached( elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; - -// Return a vendor-prefixed property or undefined -function vendorPropName( name ) { - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property -function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; - } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( _elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - - // Support: IE 9 - 11 only - // Use offsetWidth/offsetHeight for when box sizing is unreliable. - // In those cases, the computed value can be trusted to be border-box. - if ( ( !support.boxSizingReliable() && isBorderBox || - - // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName( elem, "tr" ) || - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - val === "auto" || - - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && - - // Make sure the element is visible & connected - elem.getClientRects().length ) { - - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( _i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( isValidValue ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = classesToArray( value ); - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - - // Handle: regular nodes (via `this.ownerDocument`), window - // (via `this.document`) & document (via `this`). - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = { guid: Date.now() }; - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - if ( a == null ) { - return ""; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); - } - } - match = responseHeaders[ key.toLowerCase() + " " ]; - } - return match == null ? null : match.join( ", " ); - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + - uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { - s.converters[ "text script" ] = function() {}; - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( _i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - -jQuery.ajaxPrefilter( function( s ) { - var i; - for ( i in s.headers ) { - if ( i.toLowerCase() === "content-type" ) { - s.contentType = s.headers[ i ] || ""; - } - } -} ); - - -jQuery._evalUrl = function( url, options, doc ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options, doc ); - } - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( "