Index: services/media/framework/parts/reader.cc |
diff --git a/services/media/framework/parts/reader.cc b/services/media/framework/parts/reader.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..31da7fcc06802076bd374afb39a8d6e5203254b7 |
--- /dev/null |
+++ b/services/media/framework/parts/reader.cc |
@@ -0,0 +1,37 @@ |
+// 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, ReaderPtr* reader_out) { |
+ if (!gurl.is_valid()) { |
+ return Result::kInvalidArgument; |
+ } |
+ |
+ ReaderPtr 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 |