2 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef __TIZEN_MEDIA_STREAMER_PRIVATE_H__
18 #define __TIZEN_MEDIA_STREAMER_PRIVATE_H__
22 #include <restriction.h>
23 #include <mm_resource_manager.h>
24 #include "media_streamer.h"
25 #include "media_streamer_util.h"
26 #include "media_streamer_http_server.h"
32 struct media_streamer_node_s;
35 * @brief Media Streamer callbacks structure.
40 } media_streamer_callback_s;
43 * @brief Media Streamer sink callbacks structure.
46 media_streamer_callback_s data_ready_cb;
47 media_streamer_callback_s eos_cb;
48 } media_streamer_sink_callbacks_s;
51 * @brief Media Streamer webrtc node callbacks structure.
54 media_streamer_callback_s message_cb;
55 media_streamer_callback_s decoded_ready_cb;
56 } media_streamer_webrtc_callbacks_s;
59 * @brief Media Streamer param type handle.
67 * @brief Media Streamer node_info type handle.
75 * @brief Media Streamer node_plug type handle.
81 gchar **exclude_names;
85 * @brief Media Streamer type handle.
88 media_streamer_ini_t ini;
93 GstElement *transform_bin;
95 GHashTable *nodes_table;
97 GList *autoplug_sig_list;
98 GList *pads_types_list;
104 media_streamer_state_e state;
105 media_streamer_state_e pend_state;
106 gboolean need_paused_by_live_source;
108 media_streamer_callback_s error_cb;
109 media_streamer_callback_s state_changed_cb;
110 media_streamer_callback_s seek_done_cb;
111 media_streamer_callback_s interrupted_cb;
113 gboolean is_interrupted;
114 mm_resource_manager_h resource_manager;
115 mm_resource_manager_res_h video_decoder_resource;
117 media_streamer_http_server_h http_server;
121 * @brief Media Streamer node type handle.
124 GstElement *gst_element;
125 media_streamer_s *parent_streamer;
128 media_streamer_node_type_e type;
131 gboolean linked_by_user;
135 void *callbacks_structure;
137 mm_resource_manager_res_h resource;
138 device_policy_manager_h dpm_handle;
139 int policy_changed_cb_id;
140 } media_streamer_node_s;
143 * @brief Gets the play position of Media streamer element.
145 int ms_get_position(media_streamer_s *ms_streamer, int *time);
148 * @brief Gets the duration of Media streamer element.
150 int ms_get_duration(media_streamer_s *ms_streamer, int *time);
153 * @brief Seeks Media streamer element to the pointed position.
155 int ms_seek(media_streamer_s *ms_streamer, int time, bool flag);
158 * @brief Destroys media streamer structure.
160 int ms_destroy(media_streamer_s *ms_streamer);
163 * @brief Creates media streamer structure.
165 int ms_create(media_streamer_s *ms_streamer);
168 * @brief Set state of media streamer.
170 int ms_set_state(media_streamer_s *ms_streamer, media_streamer_state_e state);
172 void ms_update_state_from_pend_state(media_streamer_s *ms_streamer);
176 #endif /* __cplusplus */
178 #endif /* __TIZEN_MEDIA_STREAMER_PRIVATE_H__ */