Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(253)

Unified Diff: third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp

Issue 2501623003: Implement MediaStreamTrack contentHint skeleton. (Closed)
Patch Set: ContentHint -> ContentHintType Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 ff048784a8114ce14d50b4ec4ddca46ea9aaab32..5fbc2949aa3254756aeab5266b99cb8f45c68bbd 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 kContentHintStringNone[] = "";
+static const char kContentHintStringAudioSpeech[] = "speech";
+static const char kContentHintStringAudioMusic[] = "music";
+static const char kContentHintStringVideoFluid[] = "fluid";
+static const char kContentHintStringVideoDetailed[] = "detailed";
+} // namespace
+
MediaStreamTrack* MediaStreamTrack::create(ExecutionContext* context,
MediaStreamComponent* component) {
MediaStreamTrack* track = new MediaStreamTrack(context, component);
@@ -107,6 +115,61 @@ bool MediaStreamTrack::muted() const {
return m_component->muted();
}
+String MediaStreamTrack::contentHint() const {
+ WebMediaStreamTrack::ContentHintType hint = m_component->contentHint();
+ switch (hint) {
+ case WebMediaStreamTrack::ContentHintType::None:
+ return kContentHintStringNone;
+ case WebMediaStreamTrack::ContentHintType::AudioSpeech:
+ return kContentHintStringAudioSpeech;
+ case WebMediaStreamTrack::ContentHintType::AudioMusic:
+ return kContentHintStringAudioMusic;
+ case WebMediaStreamTrack::ContentHintType::VideoFluid:
+ return kContentHintStringVideoFluid;
+ case WebMediaStreamTrack::ContentHintType::VideoDetailed:
+ return kContentHintStringVideoDetailed;
+ }
+
+ NOTREACHED();
+ return String();
+}
+
+void MediaStreamTrack::setContentHint(const String& hint) {
+ WebMediaStreamTrack::ContentHintType translatedHint =
+ WebMediaStreamTrack::ContentHintType::None;
+ switch (m_component->source()->type()) {
+ case MediaStreamSource::TypeAudio:
+ if (hint == kContentHintStringNone) {
+ translatedHint = WebMediaStreamTrack::ContentHintType::None;
+ } else if (hint == kContentHintStringAudioSpeech) {
+ translatedHint = WebMediaStreamTrack::ContentHintType::AudioSpeech;
+ } else if (hint == kContentHintStringAudioMusic) {
+ translatedHint = WebMediaStreamTrack::ContentHintType::AudioMusic;
+ } else {
+ // TODO(pbos): Log warning?
+ // Invalid values for audio are to be ignored (similar to invalid enum
+ // values).
+ return;
+ }
+ break;
+ case MediaStreamSource::TypeVideo:
+ if (hint == kContentHintStringNone) {
+ translatedHint = WebMediaStreamTrack::ContentHintType::None;
+ } else if (hint == kContentHintStringVideoFluid) {
+ translatedHint = WebMediaStreamTrack::ContentHintType::VideoFluid;
+ } else if (hint == kContentHintStringVideoDetailed) {
+ translatedHint = WebMediaStreamTrack::ContentHintType::VideoDetailed;
+ } else {
+ // TODO(pbos): Log warning?
+ // Invalid values for video are to be ignored (similar to invalid enum
+ // values).
+ return;
+ }
+ }
+
+ m_component->setContentHint(translatedHint);
+}
+
bool MediaStreamTrack::remote() const {
return m_component->source()->remote();
}

Powered by Google App Engine
This is Rietveld 408576698