/* Copyright (c) 2012 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. */ /** * This file defines the PPP_VideoCapture_Dev interface. */ label Chrome { M15 = 0.1 }; /** * Video Capture client interface. See |PPB_VideoCapture_Dev| for general theory * of operation. */ [macro="PPP_VIDEO_CAPTURE_DEV_INTERFACE"] interface PPP_VideoCapture_Dev { /** * Signals the capture device information, such as resolution and frame rate, * and the array of buffers that the browser will use to send pixel data. * * |info| is a pointer to the PP_VideoCaptureDeviceInfo_Dev structure * containing resolution and frame rate. * |buffer_count| is the number of buffers, and |buffers| is the array of * PPB_Buffer_Dev buffers. * * Note: the buffers are passed without an extra reference. The plugin is * expected to add its own references to the buffers. */ void OnDeviceInfo([in] PP_Instance instance, [in] PP_Resource video_capture, [in] PP_VideoCaptureDeviceInfo_Dev info, [in] uint32_t buffer_count, [in, size_is(buffer_count)] PP_Resource[] buffers); /** * Signals status changes on the VideoCapture. |status| is a * one of the values from PP_VideoCaptureStatus_Dev; */ void OnStatus([in] PP_Instance instance, [in] PP_Resource video_capture, [in] uint32_t status); /** * Signals an error from the video capture system. * * Errors that can be generated: * - PP_ERROR_NOMEMORY: not enough memory was available to allocate buffers. * - PP_ERROR_FAILED: video capture could not start. */ void OnError([in] PP_Instance instance, [in] PP_Resource video_capture, [in] uint32_t error_code); /** * Signals that a buffer is available for consumption by the plugin. * * |buffer| is the index of the buffer, in the array returned by OnDeviceInfo. */ void OnBufferReady([in] PP_Instance instance, [in] PP_Resource video_capture, [in] uint32_t buffer); };