| Index: media/base/media_track.h
|
| diff --git a/media/base/media_track.h b/media/base/media_track.h
|
| index 3cd41d736ffa05cd702b6402e5ad91a57b300ada..1b97622d966aa41e06dda4cae298823b55198b50 100644
|
| --- a/media/base/media_track.h
|
| +++ b/media/base/media_track.h
|
| @@ -15,6 +15,7 @@ namespace media {
|
| class MEDIA_EXPORT MediaTrack {
|
| public:
|
| enum Type { Text, Audio, Video };
|
| + using Id = std::string;
|
| MediaTrack(Type type,
|
| StreamParser::TrackId bytestream_track_id,
|
| const std::string& kind,
|
| @@ -31,9 +32,29 @@ class MEDIA_EXPORT MediaTrack {
|
| const std::string& label() const { return label_; }
|
| const std::string& language() const { return language_; }
|
|
|
| + Id id() const { return id_; }
|
| + void set_id(Id id) {
|
| + DCHECK(id_.empty());
|
| + DCHECK(!id.empty());
|
| + id_ = id;
|
| + }
|
| +
|
| private:
|
| Type type_;
|
| +
|
| + // |bytestream_track_id_| is read from the bytestream and is guaranteed to be
|
| + // unique only within the scope of single bytestream's initialization segment.
|
| + // But we might have multiple bytestreams (MediaSource might have multiple
|
| + // SourceBuffers attached to it, which translates into ChunkDemuxer having
|
| + // multiple MediaSourceStates and multiple bytestreams) or subsequent init
|
| + // segments may redefine the bytestream ids. Thus bytestream track ids are not
|
| + // guaranteed to be unique at the Demuxer and HTMLMediaElement level. So we
|
| + // generate truly unique media track |id_| on the Demuxer level.
|
| StreamParser::TrackId bytestream_track_id_;
|
| + Id id_;
|
| +
|
| + // These properties are read from input streams by stream parsers as specified
|
| + // in https://dev.w3.org/html5/html-sourcing-inband-tracks/.
|
| std::string kind_;
|
| std::string label_;
|
| std::string language_;
|
|
|