#define MEDIA_STREAMER_PARAM_VISIBLE "visible"
/**
+ * @brief Definition for use-tbm parameter of sink node.
+ * @details Use Tizen Buffer Memory instead of Shared Memory.
+ * The sink node must receive the tbm-buffer created by the previous node.
+ * The value is changeable only in the #MEDIA_STREAMER_STATE_IDLE state.
+ * Data type is boolean and default value is false.
+ * @since_tizen 5.5
+ * @see media_streamer_node_get_params()
+ */
+#define MEDIA_STREAMER_PARAM_USE_TBM "use-tbm"
+
+/**
* @brief Definition for host parameter of sink node.
* @details The host/IP/Multicast group to send the packets to.
* Data type is string and default value is "localhost".
* @pre Create a media streamer handle by calling media_streamer_create() function
* @post media_streamer_state_changed_cb() will be invoked.
* @see media_streamer_unset_state_change_cb()
- * @see media_streamer_state_change_cb()
+ * @see media_streamer_state_changed_cb()
*/
int media_streamer_set_state_change_cb(media_streamer_h streamer, media_streamer_state_changed_cb callback, void *user_data);
/**
* @brief Creates media streamer source node.
* @since_tizen 3.0
- * @remarks The internet privilege(http://tizen.org/privilege/internet) should be added if any URIs are used to play from network.
- * The camera privilege(http://tizen.org/privilege/camera) should be added if the src node handle the camera device.
- * The recorder privilege(http://tizen.org/privilege/recorder) should be added if the src node handle the recorder device.
+ * @remarks The internet privilege(%http://tizen.org/privilege/internet) should be added if any URIs are used to play from network.
+ * The camera privilege(%http://tizen.org/privilege/camera) should be added if the src node handle the camera device.
+ * The recorder privilege(%http://tizen.org/privilege/recorder) should be added if the src node handle the recorder device.
* You can release source node using media_streamer_node_destroy() function.
* @param[in] type Media streamer source node type
* @param[out] src Media streamer source node handle
/**
* @brief Creates media streamer sink node.
* @since_tizen 3.0
- * @remarks The internet privilege(http://tizen.org/privilege/internet) should be added if any URIs are used to transmit the output data.
+ * @remarks The internet privilege(%http://tizen.org/privilege/internet) should be added if any URIs are used to transmit the output data.
* You can release @a sink node using media_streamer_node_destroy()
* @remarks If @a type is #MEDIA_STREAMER_NODE_SINK_TYPE_ADAPTIVE, the HTTP server will be started and the server will be able to transmit the output data to the other device.
* The application must have an authentication responsibility between a server and client because the data transmission is not secure.
* @retval #MEDIA_STREAMER_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #MEDIA_STREAMER_ERROR_INVALID_OPERATION Invalid operation
* @pre Create a sink node handle by calling media_streamer_node_create_sink() function
- * @pre Set media_streamer_data_ready_cb by calling media_streamer_set_data_ready_cb() function.
+ * @pre Set media_streamer_sink_data_ready_cb by calling media_streamer_sink_set_data_ready_cb() function.
* @see #media_packet_h
* @see media_streamer_node_create_sink()
*/
* and output data.
* @since_tizen 3.0
* @remarks The node type should not be #MEDIA_STREAMER_NODE_TYPE_SRC and #MEDIA_STREAMER_NODE_TYPE_SINK.
- * To create src/sink type node, media_streamer_node_create_src()/media_streamer_node_create_sink() should be called.
+ * To create src / sink type node, media_streamer_node_create_src() / media_streamer_node_create_sink() should be called.
* You can release @a node using media_streamer_node_destroy() function
* @param[in] type Created node type
* @param[in] in_fmt Media format handle for input data
* @brief Sets parameters of node.
* @details Many parameters can be set at one time all together by using bundle.
* @since_tizen 3.0
- * @remarks The mediastorage privilege(http://tizen.org/privilege/mediastorage) should be added if any video/audio files are written in the internal storage devices.
- * The externalstorage privilege(http://tizen.org/privilege/externalstorage) should be added if any video/audio files are written in the external storage devices.
+ * @remarks The mediastorage privilege(%http://tizen.org/privilege/mediastorage) should be added if any video/audio files are written in the internal storage devices.
+ * The externalstorage privilege(%http://tizen.org/privilege/externalstorage) should be added if any video/audio files are written in the external storage devices.
* @param[in] node Media streamer node handle
* @param[in] param_list Key value array of media streamer node parameters
* @return @c 0 on success,
* @pre Create a node handle by calling media_streamer_node_createXXX() function
* @post Set params which are needed to set by calling media_streamer_node_set_params() or media_streamer_node_set_param() function.
* @see media_streamer_node_create()
- * @see media_streamer_src_create()
- * @see media_streamer_sink_create()
+ * @see media_streamer_node_create_src()
+ * @see media_streamer_node_create_sink()
* @see media_streamer_node_set_params()
* @see media_streamer_node_set_param()
*/
* @brief Sets single parameter of node.
* @details Sets parameter one by one without creating param bundle.
* @since_tizen 3.0
- * @remarks The mediastorage privilege(http://tizen.org/privilege/mediastorage) should be added if any video/audio files are written in the internal storage devices.
- * The externalstorage privilege(http://tizen.org/privilege/externalstorage) should be added if any video/audio files are written in the external storage devices.
+ * @remarks The mediastorage privilege(%http://tizen.org/privilege/mediastorage) should be added if any video/audio files are written in the internal storage devices.
+ * The externalstorage privilege(%http://tizen.org/privilege/externalstorage) should be added if any video/audio files are written in the external storage devices.
* @param[in] node Media streamer node handle
* @param[in] param_name Param name of node
* @param[in] param_value Param value of node
* @pre Create a node handle by calling media_streamer_node_createXXX() function.
* @pre Get param list to set by calling media_streamer_node_get_params() function.
* @see media_streamer_node_create()
- * @see media_streamer_src_create()
- * @see media_streamer_sink_create()
+ * @see media_streamer_node_create_src()
+ * @see media_streamer_node_create_sink()
* @see media_streamer_node_get_params()
* @see media_streamer_node_get_param()
*/
* @pre Create a node handle by calling media_streamer_node_createXXX() function.
* @pre Get param list to know the param name by calling media_streamer_node_get_params() function.
* @see media_streamer_node_create()
- * @see media_streamer_src_create()
- * @see media_streamer_sink_create()
+ * @see media_streamer_node_create_src()
+ * @see media_streamer_node_create_sink()
* @see media_streamer_node_get_params()
* @see media_streamer_node_set_param()
*/
{MEDIA_STREAMER_PARAM_DISPLAY_GEOMETRY_METHOD, "display-geometry-method"},
{MEDIA_STREAMER_PARAM_DISPLAY, "display"},
{MEDIA_STREAMER_PARAM_VISIBLE, "visible"},
+ {MEDIA_STREAMER_PARAM_USE_TBM, "use-tbm"},
{MEDIA_STREAMER_PARAM_HOST, "host"},
{MEDIA_STREAMER_PARAM_SEGMENT_LOCATION, "location"},
{MEDIA_STREAMER_PARAM_PLAYLIST_LOCATION, "playlist-location"},
case MEDIA_STREAMER_NODE_SINK_TYPE_OVERLAY:
plugin_name = __ms_ini_get_string("node type 2:overlay", DEFAULT_VIDEO_SINK);
node->gst_element = __ms_element_create(plugin_name, NULL);
- g_object_set(node->gst_element, "use-tbm", FALSE, NULL);
break;
case MEDIA_STREAMER_NODE_SINK_TYPE_FAKE:
plugin_name = __ms_ini_get_string("node type 2:fake", DEFAULT_FAKE_SINK);
string_val = g_strdup_printf("%u", g_value_get_uint(&value));
} else if (!g_strcmp0(param->param_name, MEDIA_STREAMER_PARAM_IS_LIVE_STREAM) ||
!g_strcmp0(param->param_name, MEDIA_STREAMER_PARAM_CLOCK_SYNCHRONIZED) ||
+ !g_strcmp0(param->param_name, MEDIA_STREAMER_PARAM_USE_TBM) ||
!g_strcmp0(param->param_name, MEDIA_STREAMER_PARAM_VISIBLE)) {
string_val = g_strdup(g_value_get_boolean(&value) ? "true" : "false");
} else if (!g_strcmp0(param->param_name, MEDIA_STREAMER_PARAM_URI) ||
g_object_set(ms_node->gst_element, param->origin_name, (int)strtol(param_value, NULL, 10), NULL);
} else if (!g_strcmp0(param->param_name, MEDIA_STREAMER_PARAM_IS_LIVE_STREAM) ||
!g_strcmp0(param->param_name, MEDIA_STREAMER_PARAM_CLOCK_SYNCHRONIZED) ||
+ !g_strcmp0(param->param_name, MEDIA_STREAMER_PARAM_USE_TBM) ||
!g_strcmp0(param->param_name, MEDIA_STREAMER_PARAM_VISIBLE)) {
g_object_set(ms_node->gst_element, param->origin_name, !g_ascii_strcasecmp(param_value, "true"), NULL);
} else if (!g_strcmp0(param->param_name, MEDIA_STREAMER_PARAM_URI)) {