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

Unified Diff: services/media/factory_service/media_sink_impl.h

Issue 2069873003: Motown: Define MediaRenderer and make it the way we identify renderers. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Fix build break...audio_track_controller.* gone for good. Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: services/media/factory_service/media_sink_impl.h
diff --git a/services/media/factory_service/media_sink_impl.h b/services/media/factory_service/media_sink_impl.h
index 1eec79b3f329ea0f20487bba120855e6976e7b7b..8b842f10caba06676577c43b9f9f96751cb6ea9a 100644
--- a/services/media/factory_service/media_sink_impl.h
+++ b/services/media/factory_service/media_sink_impl.h
@@ -10,7 +10,6 @@
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/services/media/control/interfaces/media_sink.mojom.h"
#include "mojo/services/media/core/interfaces/timeline_controller.mojom.h"
-#include "services/media/factory_service/audio_track_controller.h"
#include "services/media/factory_service/factory_service.h"
#include "services/media/framework/graph.h"
#include "services/media/framework/parts/decoder.h"
@@ -27,7 +26,7 @@ class MediaSinkImpl : public MediaFactoryService::Product<MediaSink>,
public MediaSink {
public:
static std::shared_ptr<MediaSinkImpl> Create(
- const String& destination_url,
+ InterfaceHandle<MediaRenderer> renderer,
MediaTypePtr media_type,
InterfaceRequest<MediaSink> request,
MediaFactoryService* owner);
@@ -41,7 +40,37 @@ class MediaSinkImpl : public MediaFactoryService::Product<MediaSink>,
InterfaceRequest<MediaTimelineControlSite> req) override;
private:
- MediaSinkImpl(const String& destination_url,
+ class NullTimelineControlSite : public MediaTimelineControlSite,
+ public TimelineConsumer {
+ public:
+ NullTimelineControlSite(
+ InterfaceRequest<MediaTimelineControlSite> control_site_request);
+
+ ~NullTimelineControlSite() override;
+
+ // MediaTimelineControlSite implementation.
+ void GetStatus(uint64_t version_last_seen,
+ const GetStatusCallback& callback) override;
+
+ void GetTimelineConsumer(
+ InterfaceRequest<TimelineConsumer> timeline_consumer) override;
+
+ // TimelineConsumer implementation.
+ void SetTimelineTransform(
+ int64_t subject_time,
+ uint32_t reference_delta,
+ uint32_t subject_delta,
+ int64_t effective_reference_time,
+ int64_t effective_subject_time,
+ const SetTimelineTransformCallback& callback) override;
+
+ private:
+ Binding<MediaTimelineControlSite> control_site_binding_;
+ Binding<TimelineConsumer> consumer_binding_;
+ GetStatusCallback get_status_callback_;
+ };
+
+ MediaSinkImpl(InterfaceHandle<MediaRenderer> renderer,
MediaTypePtr media_type,
InterfaceRequest<MediaSink> request,
MediaFactoryService* owner);
@@ -50,7 +79,10 @@ class MediaSinkImpl : public MediaFactoryService::Product<MediaSink>,
Graph graph_;
std::shared_ptr<MojoConsumer> consumer_;
std::shared_ptr<MojoProducer> producer_;
- std::unique_ptr<AudioTrackController> controller_;
+ MediaRendererPtr renderer_;
+ // The following fields are just temporaries used to solve lambda capture
+ // problems.
+ std::unique_ptr<StreamType> input_stream_type_;
};
} // namespace media
« no previous file with comments | « services/media/factory_service/media_player_impl.cc ('k') | services/media/factory_service/media_sink_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698