summaryrefslogtreecommitdiffstats
path: root/dom/media/systemservices/PCameras.ipdl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/systemservices/PCameras.ipdl')
-rw-r--r--dom/media/systemservices/PCameras.ipdl65
1 files changed, 65 insertions, 0 deletions
diff --git a/dom/media/systemservices/PCameras.ipdl b/dom/media/systemservices/PCameras.ipdl
new file mode 100644
index 000000000..b9fa58329
--- /dev/null
+++ b/dom/media/systemservices/PCameras.ipdl
@@ -0,0 +1,65 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+include protocol PContent;
+include protocol PBackground;
+
+using mozilla::camera::CaptureEngine from "mozilla/media/CamerasTypes.h";
+
+namespace mozilla {
+namespace camera {
+
+struct CaptureCapability
+{
+ int width;
+ int height;
+ int maxFPS;
+ int expectedCaptureDelay;
+ int rawType;
+ int codecType;
+ bool interlaced;
+};
+
+async protocol PCameras
+{
+ manager PBackground;
+
+child:
+ async FrameSizeChange(CaptureEngine capEngine, int cap_id, int w, int h);
+ // transfers ownership of |buffer| from parent to child
+ async DeliverFrame(CaptureEngine capEngine, int cap_id,
+ Shmem buffer, size_t size, uint32_t time_stamp,
+ int64_t ntp_time, int64_t render_time);
+ async DeviceChange();
+ async ReplyNumberOfCaptureDevices(int numdev);
+ async ReplyNumberOfCapabilities(int numdev);
+ async ReplyAllocateCaptureDevice(int numdev);
+ async ReplyGetCaptureCapability(CaptureCapability cap);
+ async ReplyGetCaptureDevice(nsCString device_name, nsCString device_id, bool scary);
+ async ReplyFailure();
+ async ReplySuccess();
+ async __delete__();
+
+parent:
+ async NumberOfCaptureDevices(CaptureEngine engine);
+ async NumberOfCapabilities(CaptureEngine engine, nsCString deviceUniqueIdUTF8);
+
+ async GetCaptureCapability(CaptureEngine engine, nsCString unique_idUTF8, int capability_number);
+ async GetCaptureDevice(CaptureEngine engine, int num);
+
+ async AllocateCaptureDevice(CaptureEngine engine, nsCString unique_idUTF8, nsCString origin);
+ async ReleaseCaptureDevice(CaptureEngine engine, int numdev);
+ async StartCapture(CaptureEngine engine, int numdev, CaptureCapability capability);
+ async StopCapture(CaptureEngine engine, int numdev);
+ // transfers frame back
+ async ReleaseFrame(Shmem s);
+
+ // Ask parent to delete us
+ async AllDone();
+ // setup camera engine
+ async EnsureInitialized(CaptureEngine engine);
+};
+
+} // namespace camera
+} // namespace mozilla