Home | History | Annotate | Download | only in dev
      1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2  * Use of this source code is governed by a BSD-style license that can be
      3  * found in the LICENSE file.
      4  */
      5 
      6 /**
      7  * This file defines the <code>PPP_VideoCapture_Dev</code> interface.
      8  */
      9 label Chrome {
     10   M15 = 0.1
     11 };
     12 
     13 /**
     14  * Video Capture client interface. See |PPB_VideoCapture_Dev| for general theory
     15  * of operation.
     16  */
     17 [macro="PPP_VIDEO_CAPTURE_DEV_INTERFACE"]
     18 interface PPP_VideoCapture_Dev {
     19   /**
     20    * Signals the capture device information, such as resolution and frame rate,
     21    * and the array of buffers that the browser will use to send pixel data.
     22    *
     23    * |info| is a pointer to the PP_VideoCaptureDeviceInfo_Dev structure
     24    * containing resolution and frame rate.
     25    * |buffer_count| is the number of buffers, and |buffers| is the array of
     26    * PPB_Buffer_Dev buffers.
     27    *
     28    * Note: the buffers are passed without an extra reference. The plugin is
     29    * expected to add its own references to the buffers.
     30    */
     31   void OnDeviceInfo([in] PP_Instance instance,
     32                     [in] PP_Resource video_capture,
     33                     [in] PP_VideoCaptureDeviceInfo_Dev info,
     34                     [in] uint32_t buffer_count,
     35                     [in, size_is(buffer_count)] PP_Resource[] buffers);
     36 
     37   /**
     38    * Signals status changes on the VideoCapture. |status| is a
     39    * one of the values from PP_VideoCaptureStatus_Dev;
     40    */
     41   void OnStatus([in] PP_Instance instance,
     42                 [in] PP_Resource video_capture,
     43                 [in] uint32_t status);
     44 
     45   /**
     46    * Signals an error from the video capture system.
     47    *
     48    * Errors that can be generated:
     49    * - PP_ERROR_NOMEMORY: not enough memory was available to allocate buffers.
     50    * - PP_ERROR_FAILED: video capture could not start.
     51    */
     52   void OnError([in] PP_Instance instance,
     53                [in] PP_Resource video_capture,
     54                [in] uint32_t error_code);
     55 
     56   /**
     57    * Signals that a buffer is available for consumption by the plugin.
     58    *
     59    * |buffer| is the index of the buffer, in the array returned by OnDeviceInfo.
     60    */
     61   void OnBufferReady([in] PP_Instance instance,
     62                      [in] PP_Resource video_capture,
     63                      [in] uint32_t buffer);
     64 };
     65