Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(426)

Side by Side Diff: services/media/factory_service/media_source_impl.h

Issue 1945903006: Motown: Move responsibility for binding to MediaFactoryService::Product (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Change per feedback - rename Abort to UnbindAndReleaseFromOwner Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MOJO_SERVICES_MEDIA_FACTORY_MEDIA_SOURCE_IMPL_H_ 5 #ifndef MOJO_SERVICES_MEDIA_FACTORY_MEDIA_SOURCE_IMPL_H_
6 #define MOJO_SERVICES_MEDIA_FACTORY_MEDIA_SOURCE_IMPL_H_ 6 #define MOJO_SERVICES_MEDIA_FACTORY_MEDIA_SOURCE_IMPL_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
11 #include "mojo/public/cpp/bindings/binding.h" 11 #include "mojo/public/cpp/bindings/binding.h"
12 #include "mojo/services/media/control/interfaces/media_source.mojom.h" 12 #include "mojo/services/media/control/interfaces/media_source.mojom.h"
13 #include "mojo/services/media/core/interfaces/seeking_reader.mojom.h" 13 #include "mojo/services/media/core/interfaces/seeking_reader.mojom.h"
14 #include "services/media/factory_service/factory_service.h" 14 #include "services/media/factory_service/factory_service.h"
15 #include "services/media/factory_service/mojo_publisher.h" 15 #include "services/media/factory_service/mojo_publisher.h"
16 #include "services/media/framework/graph.h" 16 #include "services/media/framework/graph.h"
17 #include "services/media/framework/parts/decoder.h" 17 #include "services/media/framework/parts/decoder.h"
18 #include "services/media/framework/parts/demux.h" 18 #include "services/media/framework/parts/demux.h"
19 #include "services/media/framework/parts/null_sink.h" 19 #include "services/media/framework/parts/null_sink.h"
20 #include "services/media/framework/parts/reader.h" 20 #include "services/media/framework/parts/reader.h"
21 #include "services/media/framework/util/incident.h" 21 #include "services/media/framework/util/incident.h"
22 #include "services/media/framework_mojo/mojo_producer.h" 22 #include "services/media/framework_mojo/mojo_producer.h"
23 #include "services/media/framework_mojo/mojo_pull_mode_producer.h" 23 #include "services/media/framework_mojo/mojo_pull_mode_producer.h"
24 24
25 namespace mojo { 25 namespace mojo {
26 namespace media { 26 namespace media {
27 27
28 // Mojo agent that produces streams from an origin specified by URL. 28 // Mojo agent that produces streams from an origin specified by URL.
29 class MediaSourceImpl : public MediaFactoryService::Product, 29 class MediaSourceImpl : public MediaFactoryService::Product<MediaSource>,
30 public MediaSource { 30 public MediaSource {
31 public: 31 public:
32 static std::shared_ptr<MediaSourceImpl> Create( 32 static std::shared_ptr<MediaSourceImpl> Create(
33 InterfaceHandle<SeekingReader> reader, 33 InterfaceHandle<SeekingReader> reader,
34 const Array<MediaTypeSetPtr>& allowed_media_types, 34 const Array<MediaTypeSetPtr>& allowed_media_types,
35 InterfaceRequest<MediaSource> request, 35 InterfaceRequest<MediaSource> request,
36 MediaFactoryService* owner); 36 MediaFactoryService* owner);
37 37
38 ~MediaSourceImpl() override; 38 ~MediaSourceImpl() override;
39 39
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 std::shared_ptr<NullSink> null_sink_; 105 std::shared_ptr<NullSink> null_sink_;
106 }; 106 };
107 107
108 // Handles the completion of demux initialization. 108 // Handles the completion of demux initialization.
109 void OnDemuxInitialized(Result result); 109 void OnDemuxInitialized(Result result);
110 110
111 // Runs a seek callback. 111 // Runs a seek callback.
112 static void RunSeekCallback(const SeekCallback& callback); 112 static void RunSeekCallback(const SeekCallback& callback);
113 113
114 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 114 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
115 Binding<MediaSource> binding_;
116 Array<MediaTypeSetPtr> allowed_media_types_; 115 Array<MediaTypeSetPtr> allowed_media_types_;
117 Graph graph_; 116 Graph graph_;
118 PartRef demux_part_; 117 PartRef demux_part_;
119 std::shared_ptr<Demux> demux_; 118 std::shared_ptr<Demux> demux_;
120 Incident init_complete_; 119 Incident init_complete_;
121 std::vector<std::unique_ptr<Stream>> streams_; 120 std::vector<std::unique_ptr<Stream>> streams_;
122 MediaState state_ = MediaState::UNPREPARED; 121 MediaState state_ = MediaState::UNPREPARED;
123 MojoPublisher<GetStatusCallback> status_publisher_; 122 MojoPublisher<GetStatusCallback> status_publisher_;
124 }; 123 };
125 124
126 } // namespace media 125 } // namespace media
127 } // namespace mojo 126 } // namespace mojo
128 127
129 #endif // MOJO_SERVICES_MEDIA_FACTORY_MEDIA_SOURCE_IMPL_H_ 128 #endif // MOJO_SERVICES_MEDIA_FACTORY_MEDIA_SOURCE_IMPL_H_
OLDNEW
« no previous file with comments | « services/media/factory_service/media_sink_impl.cc ('k') | services/media/factory_service/media_source_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698