blob: d1d992ead3bde8cbf06e5870ed683a7bfc1f8dea [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 "base/logging.h"
#include "services/media/framework/parts/file_reader.h"
#include "services/media/framework/parts/reader.h"
#include "url/gurl.h"
namespace mojo {
namespace media {
Result Reader::Create(const GURL& gurl, std::shared_ptr<Reader>* reader_out) {
if (!gurl.is_valid()) {
return Result::kInvalidArgument;
}
std::shared_ptr<Reader> reader = nullptr;
if (gurl.SchemeIsFile()) {
reader = FileReader::Create();
}
// TODO(dalesat): More schemes.
if (reader == nullptr) {
return Result::kUnsupportedOperation;
}
Result result = reader->Init(gurl);
if (result == Result::kOk) {
*reader_out = reader;
}
return result;
}
} // namespace media
} // namespace mojo