#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "media/formats/webm/webm_stream_parser.h"
#include <memory>
#include <string>
#include "base/functional/callback.h"
#include "base/functional/callback_helpers.h"
#include "base/logging.h"
#include "base/numerics/checked_math.h"
#include "base/strings/string_number_conversions.h"
#include "media/base/byte_queue.h"
#include "media/base/media_track.h"
#include "media/base/media_tracks.h"
#include "media/base/stream_parser.h"
#include "media/base/timestamp_constants.h"
#include "media/formats/webm/webm_cluster_parser.h"
#include "media/formats/webm/webm_constants.h"
#include "media/formats/webm/webm_content_encodings.h"
#include "media/formats/webm/webm_info_parser.h"
#include "media/formats/webm/webm_tracks_parser.h"
namespace media {
WebMStreamParser::WebMStreamParser()
: … { … }
WebMStreamParser::~WebMStreamParser() = default;
void WebMStreamParser::Init(
InitCB init_cb,
NewConfigCB config_cb,
NewBuffersCB new_buffers_cb,
EncryptedMediaInitDataCB encrypted_media_init_data_cb,
NewMediaSegmentCB new_segment_cb,
EndMediaSegmentCB end_of_segment_cb,
MediaLog* media_log) { … }
void WebMStreamParser::Flush() { … }
bool WebMStreamParser::GetGenerateTimestampsFlag() const { … }
bool WebMStreamParser::AppendToParseBuffer(base::span<const uint8_t> buf) { … }
StreamParser::ParseStatus WebMStreamParser::Parse(
int max_pending_bytes_to_inspect) { … }
void WebMStreamParser::ChangeState(State new_state) { … }
int WebMStreamParser::ParseInfoAndTracks(const uint8_t* data, int size) { … }
int WebMStreamParser::ParseCluster(const uint8_t* data, int size) { … }
void WebMStreamParser::OnEncryptedMediaInitData(const std::string& key_id) { … }
}