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 /* From dev/ppp_video_capture_dev.idl modified Mon Oct 01 14:26:07 2012. */
      7 
      8 #ifndef PPAPI_C_DEV_PPP_VIDEO_CAPTURE_DEV_H_
      9 #define PPAPI_C_DEV_PPP_VIDEO_CAPTURE_DEV_H_
     10 
     11 #include "ppapi/c/dev/pp_video_capture_dev.h"
     12 #include "ppapi/c/pp_instance.h"
     13 #include "ppapi/c/pp_macros.h"
     14 #include "ppapi/c/pp_resource.h"
     15 #include "ppapi/c/pp_stdint.h"
     16 
     17 #define PPP_VIDEO_CAPTURE_DEV_INTERFACE_0_1 "PPP_VideoCapture(Dev);0.1"
     18 #define PPP_VIDEO_CAPTURE_DEV_INTERFACE PPP_VIDEO_CAPTURE_DEV_INTERFACE_0_1
     19 
     20 /**
     21  * @file
     22  * This file defines the <code>PPP_VideoCapture_Dev</code> interface.
     23  */
     24 
     25 
     26 /**
     27  * @addtogroup Interfaces
     28  * @{
     29  */
     30 /**
     31  * Video Capture client interface. See |PPB_VideoCapture_Dev| for general theory
     32  * of operation.
     33  */
     34 struct PPP_VideoCapture_Dev_0_1 {
     35   /**
     36    * Signals the capture device information, such as resolution and frame rate,
     37    * and the array of buffers that the browser will use to send pixel data.
     38    *
     39    * |info| is a pointer to the PP_VideoCaptureDeviceInfo_Dev structure
     40    * containing resolution and frame rate.
     41    * |buffer_count| is the number of buffers, and |buffers| is the array of
     42    * PPB_Buffer_Dev buffers.
     43    *
     44    * Note: the buffers are passed without an extra reference. The plugin is
     45    * expected to add its own references to the buffers.
     46    */
     47   void (*OnDeviceInfo)(PP_Instance instance,
     48                        PP_Resource video_capture,
     49                        const struct PP_VideoCaptureDeviceInfo_Dev* info,
     50                        uint32_t buffer_count,
     51                        const PP_Resource buffers[]);
     52   /**
     53    * Signals status changes on the VideoCapture. |status| is a
     54    * one of the values from PP_VideoCaptureStatus_Dev;
     55    */
     56   void (*OnStatus)(PP_Instance instance,
     57                    PP_Resource video_capture,
     58                    uint32_t status);
     59   /**
     60    * Signals an error from the video capture system.
     61    *
     62    * Errors that can be generated:
     63    * - PP_ERROR_NOMEMORY: not enough memory was available to allocate buffers.
     64    * - PP_ERROR_FAILED: video capture could not start.
     65    */
     66   void (*OnError)(PP_Instance instance,
     67                   PP_Resource video_capture,
     68                   uint32_t error_code);
     69   /**
     70    * Signals that a buffer is available for consumption by the plugin.
     71    *
     72    * |buffer| is the index of the buffer, in the array returned by OnDeviceInfo.
     73    */
     74   void (*OnBufferReady)(PP_Instance instance,
     75                         PP_Resource video_capture,
     76                         uint32_t buffer);
     77 };
     78 
     79 typedef struct PPP_VideoCapture_Dev_0_1 PPP_VideoCapture_Dev;
     80 /**
     81  * @}
     82  */
     83 
     84 #endif  /* PPAPI_C_DEV_PPP_VIDEO_CAPTURE_DEV_H_ */
     85 
     86