Chromium Code Reviews| Index: third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| diff --git a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| index f27b7dbb68e2694b0d328e1af049050618130c41..727008af5cc2e3f4843290c7760303e8ada34e67 100644 |
| --- a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| +++ b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| @@ -43,6 +43,14 @@ |
| namespace blink { |
| +namespace { |
| +static const char contentHintStringNone[] = ""; |
|
esprehn
2016/12/09 02:30:09
k prefix constants
pbos
2016/12/09 17:34:46
Done.
|
| +static const char contentHintStringAudioSpeech[] = "speech"; |
| +static const char contentHintStringAudioMusic[] = "music"; |
| +static const char contentHintStringVideoFluid[] = "fluid"; |
| +static const char contentHintStringVideoDetailed[] = "detailed"; |
| +} // namespace |
| + |
| MediaStreamTrack* MediaStreamTrack::create(ExecutionContext* context, |
| MediaStreamComponent* component) { |
| MediaStreamTrack* track = new MediaStreamTrack(context, component); |
| @@ -107,6 +115,57 @@ bool MediaStreamTrack::muted() const { |
| return m_component->muted(); |
| } |
| +String MediaStreamTrack::contentHint() const { |
| + WebMediaStreamTrack::ContentHint hint = m_component->contentHint(); |
| + switch (hint) { |
| + case WebMediaStreamTrack::ContentHint::None: |
| + return contentHintStringNone; |
| + case WebMediaStreamTrack::ContentHint::AudioSpeech: |
| + return contentHintStringAudioSpeech; |
| + case WebMediaStreamTrack::ContentHint::AudioMusic: |
| + return contentHintStringAudioMusic; |
| + case WebMediaStreamTrack::ContentHint::VideoFluid: |
| + return contentHintStringVideoFluid; |
| + case WebMediaStreamTrack::ContentHint::VideoDetailed: |
| + return contentHintStringVideoDetailed; |
| + } |
| + |
| + NOTREACHED(); |
| + return String(); |
| +} |
| + |
| +void MediaStreamTrack::setContentHint(const String& hint) { |
| + WebMediaStreamTrack::ContentHint translatedHint = |
| + WebMediaStreamTrack::ContentHint::None; |
| + switch (m_component->source()->type()) { |
| + case MediaStreamSource::TypeAudio: |
| + if (hint == contentHintStringNone) { |
| + translatedHint = WebMediaStreamTrack::ContentHint::None; |
| + } else if (hint == contentHintStringAudioSpeech) { |
| + translatedHint = WebMediaStreamTrack::ContentHint::AudioSpeech; |
| + } else if (hint == contentHintStringAudioMusic) { |
| + translatedHint = WebMediaStreamTrack::ContentHint::AudioMusic; |
| + } else { |
| + // TODO(pbos): Log warning? |
|
esprehn
2016/12/09 02:30:09
What does the spec say you should do with an inval
pbos
2016/12/09 17:34:46
Ignore, similar to enums. I put a comment in.
|
| + return; |
| + } |
| + break; |
| + case MediaStreamSource::TypeVideo: |
| + if (hint == contentHintStringNone) { |
| + translatedHint = WebMediaStreamTrack::ContentHint::None; |
| + } else if (hint == contentHintStringVideoFluid) { |
| + translatedHint = WebMediaStreamTrack::ContentHint::VideoFluid; |
| + } else if (hint == contentHintStringVideoDetailed) { |
| + translatedHint = WebMediaStreamTrack::ContentHint::VideoDetailed; |
| + } else { |
| + // TODO(pbos): Log warning? |
|
esprehn
2016/12/09 02:30:09
ditto
pbos
2016/12/09 17:34:46
Done.
|
| + return; |
| + } |
| + } |
| + |
| + m_component->setContentHint(translatedHint); |
| +} |
| + |
| bool MediaStreamTrack::remote() const { |
| return m_component->source()->remote(); |
| } |