summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorwolenetz@chromium.org <wolenetz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-03 18:31:35 +0000
committerwolenetz@chromium.org <wolenetz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-03 18:31:35 +0000
commit4c1f811773bfc768f47b44c11931ed7864cc29d0 (patch)
treea8da1ba418453b95ac5381f6ec9a84f03a189ebb /content
parent6d717c40c2d0e0c6a29d6a72922968c851fc1113 (diff)
downloadchromium_src-4c1f811773bfc768f47b44c11931ed7864cc29d0.zip
chromium_src-4c1f811773bfc768f47b44c11931ed7864cc29d0.tar.gz
chromium_src-4c1f811773bfc768f47b44c11931ed7864cc29d0.tar.bz2
MSE: Pick frame processor in ChunkDemuxer::AddId; prepare unit tests to pick processor
In preparation for landing the new FrameProcessor, this change parameterizes WebMediaSourceImpl::addSourceBuffer() and ChunkDemuxer::AddId() to select which of legacy or new processor to use to process frames appended to the source buffer. This change also parameterizes ChunkDemuxerTests and the MSE subset of PipelineIntegrationTests to allow testing of both frame processors in the short term until the new processor has landed and stabilized enough. Since the MSE WebSourceBuffer API for Chromium platform in Blink is not yet stabilized, this change also removes related OVERRIDEs. R=acolwell@chromium.org BUG=249422 TEST=All media unittests pass locally on Linux with ChromeOS ffmpeg branding and proprietary codecs enabled, and no local MSE layout test regression Review URL: https://codereview.chromium.org/220113002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261485 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/renderer/media/webmediasource_impl.cc14
-rw-r--r--content/renderer/media/webmediasource_impl.h11
2 files changed, 19 insertions, 6 deletions
diff --git a/content/renderer/media/webmediasource_impl.cc b/content/renderer/media/webmediasource_impl.cc
index 365fc01..0969281 100644
--- a/content/renderer/media/webmediasource_impl.cc
+++ b/content/renderer/media/webmediasource_impl.cc
@@ -36,14 +36,26 @@ WebMediaSourceImpl::~WebMediaSourceImpl() {}
WebMediaSource::AddStatus WebMediaSourceImpl::addSourceBuffer(
const blink::WebString& type,
const blink::WebVector<blink::WebString>& codecs,
+ const WebMediaSource::FrameProcessorChoice frame_processor_choice,
blink::WebSourceBuffer** source_buffer) {
std::string id = base::GenerateGUID();
std::vector<std::string> new_codecs(codecs.size());
for (size_t i = 0; i < codecs.size(); ++i)
new_codecs[i] = codecs[i].utf8().data();
+
+ bool use_legacy_frame_processor = false;
+ switch (frame_processor_choice) {
+ case UseLegacyFrameProcessor:
+ use_legacy_frame_processor = true;
+ break;
+ case UseNewFrameProcessor:
+ break;
+ }
+
WebMediaSource::AddStatus result =
static_cast<WebMediaSource::AddStatus>(
- demuxer_->AddId(id, type.utf8().data(), new_codecs));
+ demuxer_->AddId(id, type.utf8().data(), new_codecs,
+ use_legacy_frame_processor));
if (result == WebMediaSource::AddStatusOk)
*source_buffer = new WebSourceBufferImpl(id, demuxer_);
diff --git a/content/renderer/media/webmediasource_impl.h b/content/renderer/media/webmediasource_impl.h
index 42d5eef9..e9dae1b 100644
--- a/content/renderer/media/webmediasource_impl.h
+++ b/content/renderer/media/webmediasource_impl.h
@@ -26,11 +26,12 @@ class WebMediaSourceImpl : public blink::WebMediaSource {
virtual AddStatus addSourceBuffer(
const blink::WebString& type,
const blink::WebVector<blink::WebString>& codecs,
- blink::WebSourceBuffer** source_buffer) OVERRIDE;
- virtual double duration() OVERRIDE;
- virtual void setDuration(double duration) OVERRIDE;
- virtual void markEndOfStream(EndOfStreamStatus status) OVERRIDE;
- virtual void unmarkEndOfStream() OVERRIDE;
+ const FrameProcessorChoice frame_processor_choice,
+ blink::WebSourceBuffer** source_buffer);
+ virtual double duration();
+ virtual void setDuration(double duration);
+ virtual void markEndOfStream(EndOfStreamStatus status);
+ virtual void unmarkEndOfStream();
private:
media::ChunkDemuxer* demuxer_; // Owned by WebMediaPlayerImpl.