Index: media/base/media_track.h |
diff --git a/media/base/media_track.h b/media/base/media_track.h |
index 3cd41d736ffa05cd702b6402e5ad91a57b300ada..df1165c957a722136551c9d1ce887fc09e01224d 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,28 @@ 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. But we might have |
wolenetz
2016/06/13 19:51:37
nit: s//single bytestream/single bytestream's init
servolk
2016/06/13 22:00:15
Yep, good catch, thanks, I've updated the comment
wolenetz
2016/06/13 23:23:57
Acknowledged.
|
+ // multiple bytestreams (MediaSource might have multiple SourceBuffers |
+ // attached to it, which translates into ChunkDemuxer having multiple |
+ // MediaSourceStates and multiple bytestreams). 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_; |