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

Unified Diff: services/video_capture/receiver_mojo_to_media_adapter.h

Issue 2824883005: [Mojo Video Capture] Stop service when last client disconnects. (Closed)
Patch Set: Incorporate suggestions from PatchSet #4 Created 3 years, 8 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/video_capture/receiver_mojo_to_media_adapter.h
diff --git a/services/video_capture/receiver_mojo_to_media_adapter.h b/services/video_capture/receiver_mojo_to_media_adapter.h
index 080d30a60d160a8060b11082d7285fd32f1a37c3..8a0fd61d84c8e973c267cc64d7378e8ebb72e019 100644
--- a/services/video_capture/receiver_mojo_to_media_adapter.h
+++ b/services/video_capture/receiver_mojo_to_media_adapter.h
@@ -10,6 +10,35 @@
namespace video_capture {
+class ReceiverOnTaskRunner : public media::VideoFrameReceiver {
+ public:
+ ReceiverOnTaskRunner(std::unique_ptr<media::VideoFrameReceiver> receiver,
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner);
+ ~ReceiverOnTaskRunner() override;
+
+ // media::VideoFrameReceiver implementation.
+ void OnNewBufferHandle(
+ int buffer_id,
+ std::unique_ptr<media::VideoCaptureDevice::Client::Buffer::HandleProvider>
+ handle_provider) override;
+ void OnFrameReadyInBuffer(
+ int buffer_id,
+ int frame_feedback_id,
+ std::unique_ptr<
+ media::VideoCaptureDevice::Client::Buffer::ScopedAccessPermission>
+ buffer_read_permission,
+ media::mojom::VideoFrameInfoPtr frame_info) override;
+ void OnBufferRetired(int buffer_id) override;
+ void OnError() override;
+ void OnLog(const std::string& message) override;
+ void OnStarted() override;
+ void OnStartedUsingGpuDecode() override;
+
+ private:
+ std::unique_ptr<media::VideoFrameReceiver> receiver_;
+ const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+};
+
// Adapter that allows a mojom::VideoFrameReceiver to be used in place of
// a media::VideoFrameReceiver.
class ReceiverMojoToMediaAdapter : public media::VideoFrameReceiver {
@@ -17,7 +46,9 @@ class ReceiverMojoToMediaAdapter : public media::VideoFrameReceiver {
ReceiverMojoToMediaAdapter(mojom::ReceiverPtr receiver);
~ReceiverMojoToMediaAdapter() override;
- // media::VideoFrameReceiver:
+ void ResetConnectionErrorHandler();
+
+ // media::VideoFrameReceiver implementation.
void OnNewBufferHandle(
int buffer_id,
std::unique_ptr<media::VideoCaptureDevice::Client::Buffer::HandleProvider>
« no previous file with comments | « services/video_capture/public/interfaces/service.mojom ('k') | services/video_capture/receiver_mojo_to_media_adapter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698