summaryrefslogtreecommitdiffstats
path: root/media/blink
diff options
context:
space:
mode:
authorservolk <servolk@chromium.org>2015-08-12 11:22:20 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-12 18:23:22 +0000
commitb21b828451bfe2f3befc8f1735846b0cad3f1310 (patch)
tree736e4730d96bf9fb9e8d9793c34c5d19a680b948 /media/blink
parent5ccc9c0d110738a84fd4ab85b7494d6c29b44f28 (diff)
downloadchromium_src-b21b828451bfe2f3befc8f1735846b0cad3f1310.zip
chromium_src-b21b828451bfe2f3befc8f1735846b0cad3f1310.tar.gz
chromium_src-b21b828451bfe2f3befc8f1735846b0cad3f1310.tar.bz2
Media: Introduce addSourceBuffer which takes an unparsed codecs string
Introduce an overload of WebMediaSourceImpl::addSourceBuffer that takes codecs as an unparsed string and parses it using media::ParseCodecString. This will allow us to remove the other overload, which expects a parsed vector of codecs. This will consolidate parsing of the codecs string in media and will allow us to remove duplicated parsing code in blink::ContentType::codecs BUG=none Review URL: https://codereview.chromium.org/1281663003 Cr-Commit-Position: refs/heads/master@{#343058}
Diffstat (limited to 'media/blink')
-rw-r--r--media/blink/webmediasource_impl.cc20
-rw-r--r--media/blink/webmediasource_impl.h4
2 files changed, 24 insertions, 0 deletions
diff --git a/media/blink/webmediasource_impl.cc b/media/blink/webmediasource_impl.cc
index 4760a49..90af0a1 100644
--- a/media/blink/webmediasource_impl.cc
+++ b/media/blink/webmediasource_impl.cc
@@ -5,6 +5,7 @@
#include "media/blink/webmediasource_impl.h"
#include "base/guid.h"
+#include "media/base/mime_util.h"
#include "media/blink/websourcebuffer_impl.h"
#include "media/filters/chunk_demuxer.h"
#include "third_party/WebKit/public/platform/WebCString.h"
@@ -51,6 +52,25 @@ WebMediaSource::AddStatus WebMediaSourceImpl::addSourceBuffer(
return result;
}
+WebMediaSource::AddStatus WebMediaSourceImpl::addSourceBuffer(
+ const blink::WebString& type,
+ const blink::WebString& codecs,
+ blink::WebSourceBuffer** source_buffer) {
+ std::string id = base::GenerateGUID();
+
+ std::vector<std::string> parsed_codec_ids;
+ media::ParseCodecString(codecs.utf8().data(), &parsed_codec_ids, false);
+
+ WebMediaSource::AddStatus result =
+ static_cast<WebMediaSource::AddStatus>(
+ demuxer_->AddId(id, type.utf8().data(), parsed_codec_ids));
+
+ if (result == WebMediaSource::AddStatusOk)
+ *source_buffer = new WebSourceBufferImpl(id, demuxer_);
+
+ return result;
+}
+
double WebMediaSourceImpl::duration() {
return demuxer_->GetDuration();
}
diff --git a/media/blink/webmediasource_impl.h b/media/blink/webmediasource_impl.h
index 5d6d4ba..5a9587d 100644
--- a/media/blink/webmediasource_impl.h
+++ b/media/blink/webmediasource_impl.h
@@ -27,6 +27,10 @@ class MEDIA_EXPORT WebMediaSourceImpl
const blink::WebString& type,
const blink::WebVector<blink::WebString>& codecs,
blink::WebSourceBuffer** source_buffer);
+ virtual AddStatus addSourceBuffer(
+ const blink::WebString& type,
+ const blink::WebString& codecs,
+ blink::WebSourceBuffer** source_buffer);
virtual double duration();
virtual void setDuration(double duration);
virtual void markEndOfStream(EndOfStreamStatus status);