Pepper_37_C_interfaces
ppb_media_source_samsung.h
Go to the documentation of this file.
1 /* Copyright 2013 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 samsung/ppb_media_source_samsung.idl,
7  * modified Tue Feb 3 14:18:58 2015.
8  */
9 
10 #ifndef PPAPI_C_SAMSUNG_PPB_MEDIA_SOURCE_SAMSUNG_H_
11 #define PPAPI_C_SAMSUNG_PPB_MEDIA_SOURCE_SAMSUNG_H_
12 
13 #include "ppapi/c/pp_array_output.h"
14 #include "ppapi/c/pp_bool.h"
15 #include "ppapi/c/pp_completion_callback.h"
16 #include "ppapi/c/pp_instance.h"
17 #include "ppapi/c/pp_macros.h"
18 #include "ppapi/c/pp_resource.h"
19 #include "ppapi/c/pp_stdint.h"
20 #include "ppapi/c/pp_var.h"
21 #include "ppapi/c/samsung/pp_media_common_samsung.h"
22 #include "ppapi/c/samsung/pp_media_control_samsung.h"
23 #include "ppapi/c/samsung/pp_media_source_samsung.h"
24 #include "ppapi/c/samsung/ppp_media_control_samsung.h"
25 #include "ppapi/c/samsung/ppp_media_source_samsung.h"
26 
27 #define PPB_MEDIASOURCE_SAMSUNG_INTERFACE_0_9 "PPB_MediaSource_Samsung;0.9"
28 #define PPB_MEDIASOURCE_SAMSUNG_INTERFACE_0_10 "PPB_MediaSource_Samsung;0.10"
29 #define PPB_MEDIASOURCE_SAMSUNG_INTERFACE PPB_MEDIASOURCE_SAMSUNG_INTERFACE_0_10
30 
31 /**
32  * @file
33  * This file defines the <code>PPB_MediaSource_Samsung</code> interface. */
34 
35 
36 /**
37  * @addtogroup Interfaces
38  * @{
39  */
40 /*
41  * This interface is used to manage sources of media streams. It's aim is
42  * to provide similar API as those defined in Media Source Extensions (MSE)
43  * for JavaScirpt.
44  * Simplified typical scenario:
45  * 1. Creating Media Source
46  * 2. Binding it to appropriate html media element
47  * 3. Adding source(s) to Media Source.
48  */
50  /**
51  * Creates new instance of Media Source associated with both PPP interfaces
52  * |media_control_interface| and |media_source_interface|.
53  *
54  * |user_data| will be data passed to calls of methods from
55  * PPP_MediaControl_Samsung and PPP_MediaSource_Samsung interfaces.
56  */
58  PP_Instance instance,
59  const struct PPP_MediaControl_Samsung_0_9* media_control_interface,
60  const struct PPP_MediaSource_Samsung_0_10* media_source_interface,
61  void* user_data);
62  /**
63  * Checks if given resource is Media Source. If this method returns PP_TRUE,
64  * then also PPB_MediaControl_Samsung.IsMediaControl will return PP_TRUE.
65  */
67  /**
68  * Binds given MediaSource represented by |media| resource, to video/audio
69  * object of given |id| (html element <video> or <audio>) present on HTML page
70  * on which given module is embedded.
71  * Execution is confirmed by calling |callback|.
72  */
73  int32_t (*BindToHTMLPlayer)(PP_Resource media,
74  struct PP_Var id,
75  struct PP_CompletionCallback callback);
76  /**
77  *Adds to MediaSource, represented by |media|, a source for which data will
78  * be appended using Append method. Added source is container of type |type|
79  * encoded using codecs on |codecs| list.
80  * Execution is confirmed by calling |callback|.
81  */
82  int32_t (*AddSource)(PP_Resource media,
83  struct PP_Var type,
84  struct PP_Var codecs,
85  PP_Resource* sourceBuffer,
86  struct PP_CompletionCallback callback);
87  /**
88  * Removes source of given |id| and frees associated resources with it.
89  * Execution is confirmed by calling |callback|.
90  */
91  int32_t (*RemoveSource)(PP_Resource media,
92  PP_Resource sourceBuffer,
93  struct PP_CompletionCallback callback);
94  /**
95  * Sets duration, in microseconds, of currently played stream
96  * Execution is confirmed by calling |callback|.
97  */
98  int32_t (*SetDuration)(PP_Resource media,
99  PP_MicrosecondsDelta duration,
100  struct PP_CompletionCallback callback);
101  /**
102  * Gets duration, in microseconds, of currently played stream
103  * Execution is confirmed by calling |callback|.
104  */
105  int32_t (*GetDuration)(PP_Resource media,
106  PP_MicrosecondsDelta* output,
107  struct PP_CompletionCallback callback);
108  /**
109  * Sets end of stream. |error| argument represents whether it is just end
110  * of the stream (PP_MEDIAERROR_NO_ERROR) or some kind of error occurred.
111  * Execution is confirmed by calling |callback|.
112  */
113  int32_t (*SetEndOfStream)(PP_Resource media,
114  PP_SourceEndedStatus error,
115  struct PP_CompletionCallback callback);
116  /**
117  * Gets a current time of media.
118  * Execution is confirmed by calling |callback|.
119  */
120  int32_t (*GetMediaTime)(PP_Resource media,
121  PP_MicrosecondsDelta* output,
122  struct PP_CompletionCallback callback);
123  /**
124  * Gets a ReadyState of media.
125  * Execution is confirmed by calling |callback|.
126  */
127  int32_t (*GetReadyState)(PP_Resource media,
128  PP_MediaReadyState* output,
129  struct PP_CompletionCallback callback);
130 };
131 
133 
136  PP_Instance instance,
137  const struct PPP_MediaControl_Samsung_0_9* media_control_interface,
138  const struct PPP_MediaSource_Samsung_0_9* media_source_interface,
139  void* user_data);
143  struct PP_Var type,
144  struct PP_Var codecs,
145  struct PP_Var* id);
146  PP_Bool (*IsSourceActive)(PP_Resource media, struct PP_Var id);
147  void (*RemoveSource)(PP_Resource media, struct PP_Var id);
148  void (*Append)(PP_Resource media, struct PP_Var id, PP_Resource data);
149  void (*Abort)(PP_Resource media, struct PP_Var id);
150  void (*SetDuration)(PP_Resource media, PP_MicrosecondsDelta duration);
152  void (*SetEndOfStream)(PP_Resource media, PP_MediaError error);
154  struct PP_Var id,
155  PP_MicrosecondsDelta offset);
157  struct PP_Var id,
158  struct PP_ArrayOutput output);
161 };
162 /**
163  * @}
164  */
165 
166 #endif /* PPAPI_C_SAMSUNG_PPB_MEDIA_SOURCE_SAMSUNG_H_ */
167 
PP_Bool(* ReadTimeRanges)(PP_Resource media, struct PP_Var id, struct PP_ArrayOutput output)
PP_SourceAddStatus(* AddSource)(PP_Resource media, struct PP_Var type, struct PP_Var codecs, struct PP_Var *id)
void(* SetDuration)(PP_Resource media, PP_MicrosecondsDelta duration)
int32_t(* GetMediaTime)(PP_Resource media, PP_MicrosecondsDelta *output, struct PP_CompletionCallback callback)
PP_Bool(* IsMediaSource)(PP_Resource resource)
int64_t PP_MicrosecondsDelta
PP_MicrosecondsDelta(* GetDuration)(PP_Resource media)
int32_t(* SetDuration)(PP_Resource media, PP_MicrosecondsDelta duration, struct PP_CompletionCallback callback)
int32_t(* RemoveSource)(PP_Resource media, PP_Resource sourceBuffer, struct PP_CompletionCallback callback)
PP_VarType type
Definition: pp_var.h:167
PP_Bool(* BindToHTMLPlayer)(PP_Resource media, struct PP_Var id)
int32_t PP_Resource
Definition: pp_resource.h:40
PP_MicrosecondsDelta(* GetMediaTime)(PP_Resource media)
int32_t(* AddSource)(PP_Resource media, struct PP_Var type, struct PP_Var codecs, PP_Resource *sourceBuffer, struct PP_CompletionCallback callback)
void(* Append)(PP_Resource media, struct PP_Var id, PP_Resource data)
int32_t(* GetDuration)(PP_Resource media, PP_MicrosecondsDelta *output, struct PP_CompletionCallback callback)
void(* SetEndOfStream)(PP_Resource media, PP_MediaError error)
PP_Bool(* IsMediaSource)(PP_Resource resource)
PP_SourceEndedStatus
PP_Resource(* Create)(PP_Instance instance, const struct PPP_MediaControl_Samsung_0_9 *media_control_interface, const struct PPP_MediaSource_Samsung_0_10 *media_source_interface, void *user_data)
Definition: pp_var.h:166
int32_t(* SetEndOfStream)(PP_Resource media, PP_SourceEndedStatus error, struct PP_CompletionCallback callback)
int32_t PP_Instance
Definition: pp_instance.h:34
PP_Bool(* SetTimestampOffset)(PP_Resource media, struct PP_Var id, PP_MicrosecondsDelta offset)
int32_t(* BindToHTMLPlayer)(PP_Resource media, struct PP_Var id, struct PP_CompletionCallback callback)
void(* Abort)(PP_Resource media, struct PP_Var id)
PP_Bool
Definition: pp_bool.h:30
int32_t(* GetReadyState)(PP_Resource media, PP_MediaReadyState *output, struct PP_CompletionCallback callback)
PP_MediaReadyState(* GetReadyState)(PP_Resource media)
PP_Bool(* IsSourceActive)(PP_Resource media, struct PP_Var id)
void(* RemoveSource)(PP_Resource media, struct PP_Var id)
PP_Resource(* Create)(PP_Instance instance, const struct PPP_MediaControl_Samsung_0_9 *media_control_interface, const struct PPP_MediaSource_Samsung_0_9 *media_source_interface, void *user_data)