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..a43232c3f3731cac69787f82c1e52ef3f2edbf54 100644 |
| --- a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| +++ b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| @@ -107,6 +107,62 @@ bool MediaStreamTrack::muted() const { |
| return m_component->muted(); |
| } |
| +String MediaStreamTrack::contentHint() const { |
| + DEFINE_STATIC_LOCAL(String, none, ("")); |
| + DEFINE_STATIC_LOCAL(String, speech, ("speech")); |
|
Guido Urdaneta
2016/12/08 10:35:36
Do you really need these? You are only using them
pbos
2016/12/08 16:58:32
Done, do you prefer this over inlining the strings
|
| + DEFINE_STATIC_LOCAL(String, music, ("music")); |
| + DEFINE_STATIC_LOCAL(String, fluid, ("fluid")); |
| + DEFINE_STATIC_LOCAL(String, detailed, ("detailed")); |
| + WebMediaStreamTrack::ContentHint hint = m_component->contentHint(); |
| + switch (hint) { |
| + case WebMediaStreamTrack::ContentHint::None: |
| + return none; |
| + case WebMediaStreamTrack::ContentHint::AudioSpeech: |
| + return speech; |
| + case WebMediaStreamTrack::ContentHint::AudioMusic: |
| + return music; |
| + case WebMediaStreamTrack::ContentHint::VideoFluid: |
| + return fluid; |
| + case WebMediaStreamTrack::ContentHint::VideoDetailed: |
| + return detailed; |
| + } |
| + |
| + 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 == "") { |
| + translatedHint = WebMediaStreamTrack::ContentHint::None; |
| + } else if (hint == "speech") { |
| + translatedHint = WebMediaStreamTrack::ContentHint::AudioSpeech; |
| + } else if (hint == "music") { |
| + translatedHint = WebMediaStreamTrack::ContentHint::AudioMusic; |
| + } else { |
| + // TODO(pbos): Log warning? |
| + return; |
| + } |
| + break; |
| + case MediaStreamSource::TypeVideo: |
| + if (hint == "") { |
| + translatedHint = WebMediaStreamTrack::ContentHint::None; |
| + } else if (hint == "fluid") { |
| + translatedHint = WebMediaStreamTrack::ContentHint::VideoFluid; |
| + } else if (hint == "detailed") { |
| + translatedHint = WebMediaStreamTrack::ContentHint::VideoDetailed; |
| + } else { |
| + // TODO(pbos): Log warning? |
| + return; |
| + } |
| + } |
| + |
| + m_component->setContentHint(translatedHint); |
| +} |
| + |
| bool MediaStreamTrack::remote() const { |
| return m_component->source()->remote(); |
| } |