#include "media/formats/hls/types.h"
#include <cmath>
#include <functional>
#include <limits>
#include "base/containers/contains.h"
#include "base/no_destructor.h"
#include "base/ranges/algorithm.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "media/formats/hls/parse_status.h"
#include "media/formats/hls/source_string.h"
#include "third_party/re2/src/re2/re2.h"
namespace media::hls::types {
namespace parsing {
ParseStatus::Or<base::TimeDelta> TimeDelta::Parse(ResolvedSourceString str) { … }
ParseStatus::Or<ByteRangeExpression> ByteRangeExpression::Parse(
ResolvedSourceString source_str) { … }
ParseStatus::Or<ResolvedSourceString> RawStr::Parse(ResolvedSourceString str) { … }
ParseStatus::Or<bool> YesOrNo::Parse(ResolvedSourceString str) { … }
}
namespace {
bool IsOneOf(char c, std::string_view set) { … }
std::optional<SourceString> ExtractAttributeName(SourceString* source_str) { … }
std::optional<SourceString> ExtractAttributeValue(SourceString* source_str) { … }
}
ParseStatus::Or<DecimalInteger> ParseDecimalInteger(
ResolvedSourceString source_str) { … }
ParseStatus::Or<DecimalFloatingPoint> ParseDecimalFloatingPoint(
ResolvedSourceString source_str) { … }
ParseStatus::Or<SignedDecimalFloatingPoint> ParseSignedDecimalFloatingPoint(
ResolvedSourceString source_str) { … }
ParseStatus::Or<DecimalResolution> DecimalResolution::Parse(
ResolvedSourceString source_str) { … }
std::optional<ByteRange> ByteRange::Validate(DecimalInteger length,
DecimalInteger offset) { … }
ParseStatus::Or<ResolvedSourceString> ParseQuotedString(
SourceString source_str,
const VariableDictionary& variable_dict,
VariableDictionary::SubstitutionBuffer& sub_buffer,
bool allow_empty) { … }
ParseStatus::Or<SourceString> ParseQuotedStringWithoutSubstitution(
SourceString source_str,
bool allow_empty) { … }
AttributeListIterator::AttributeListIterator(SourceString content)
: … { … }
ParseStatus::Or<AttributeListIterator::Item> AttributeListIterator::Next() { … }
AttributeMap::AttributeMap(base::span<Item> sorted_items)
: … { … }
ParseStatus::Or<AttributeListIterator::Item> AttributeMap::Fill(
AttributeListIterator* iter) { … }
ParseStatus AttributeMap::FillUntilError(AttributeListIterator* iter) { … }
AttributeMap::~AttributeMap() = default;
ParseStatus::Or<VariableName> VariableName::Parse(SourceString source_str) { … }
ParseStatus::Or<StableId> StableId::Parse(ResolvedSourceString str) { … }
ParseStatus::Or<InstreamId> InstreamId::Parse(ResolvedSourceString str) { … }
AudioChannels::AudioChannels(DecimalInteger max_channels,
std::vector<std::string> audio_coding_identifiers)
: … { … }
AudioChannels::AudioChannels(const AudioChannels&) = default;
AudioChannels::AudioChannels(AudioChannels&&) = default;
AudioChannels& AudioChannels::operator=(const AudioChannels&) = default;
AudioChannels& AudioChannels::operator=(AudioChannels&&) = default;
AudioChannels::~AudioChannels() = default;
ParseStatus::Or<AudioChannels> AudioChannels::Parse(ResolvedSourceString str) { … }
}