blob: b3465b5193601a67786fb03633da3a72be46d9c3 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "modules/srcobject/HTMLMediaElementSrcObject.h"
#include "core/html/HTMLMediaElement.h"
#include "modules/mediastream/MediaStream.h"
#include "platform/mediastream/MediaStreamDescriptor.h"
#include "public/platform/WebMediaPlayerSource.h"
#include "public/platform/WebMediaStream.h"
namespace blink {
// static
MediaStream* HTMLMediaElementSrcObject::srcObject(HTMLMediaElement& element)
{
const WebMediaPlayerSource& source = element.getSrcObject();
if (source.isMediaStream()) {
MediaStreamDescriptor* descriptor = source.getAsMediaStream();
MediaStream* stream = toMediaStream(descriptor);
return stream;
}
return nullptr;
}
// static
void HTMLMediaElementSrcObject::setSrcObject(HTMLMediaElement& element, MediaStream* mediaStream)
{
if (!mediaStream) {
element.setSrcObject(WebMediaPlayerSource());
return;
}
WebMediaStream webStream = WebMediaStream(mediaStream->descriptor());
WebMediaPlayerSource source(webStream);
element.setSrcObject(source);
}
} // namespace blink