diff options
author | servolk <servolk@chromium.org> | 2015-08-12 11:22:20 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-12 18:23:22 +0000 |
commit | b21b828451bfe2f3befc8f1735846b0cad3f1310 (patch) | |
tree | 736e4730d96bf9fb9e8d9793c34c5d19a680b948 /media/blink | |
parent | 5ccc9c0d110738a84fd4ab85b7494d6c29b44f28 (diff) | |
download | chromium_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.cc | 20 | ||||
-rw-r--r-- | media/blink/webmediasource_impl.h | 4 |
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); |