prominenceai/deepstream-services-library

Implement new Custom Sink Component API - A Custom Video Sink made from Custom GST Elements

Closed this issue · 0 comments

New Custom Sink API

/**
 * @brief Creates a new, uniquely named Custom Sink Component.
 * @param[in] name unique name for the new Custom Sink.
 * @return DSL_RESULT_SUCCESS on success, DSL_RESULT_SINK_RESULT otherwise.
 */
DslReturnType dsl_sink_custom_new(const wchar_t* name);

/**
 * @brief Creates a new Custom Sink Component and adds a GST Element to it.
 * @param[in] name unique name for the new Custom Sink.
 * @param[in] element name of the GST Element to add.
 * @return DSL_RESULT_SUCCESS on success, DSL_RESULT_SINK_RESULT otherwise.
 */
DslReturnType dsl_sink_custom_new_element_add(const wchar_t* name, 
    const wchar_t* element);

/**
 * @brief Creates a new Custom Sink Component and adds a list of GST Elements to it.
 * @param[in] name unique name for the new Custom Sink.
 * @param[in] elements NULL terminated array of GST Element names to add.
 * @return DSL_RESULT_SUCCESS on success, DSL_RESULT_SINK_RESULT otherwise.
 */
DslReturnType dsl_sink_custom_new_element_add_many(const wchar_t* name, 
    const wchar_t** elements);

/**
 * @brief Adds a single GST Element to a Custom Sink Component.
 * @param[in] name name of the Custom Sink to update.
 * @param[in] element Element names to add.
 * @return DSL_RESULT_SUCCESS on success, DSL_RESULT_SINK_RESULT otherwise.
 */
DslReturnType dsl_sink_custom_element_add(const wchar_t* name, 
    const wchar_t* elements);

/**
 * @brief Adds a list of GST Elements to a Custom Sink Component.
 * @param[in] name name of the Custom Sink to update.
 * @param[in] elements NULL terminated array of GST Element names to add.
 * @return DSL_RESULT_SUCCESS on success, DSL_RESULT_SINK_RESULT otherwise.
 */
DslReturnType dsl_sink_custom_element_add_many(const wchar_t* name, 
    const wchar_t** elements);

/**
 * @brief Removes a GST Element from a Custom Sink Component.
 * @param[in] name name of the Custom Sink to update.
 * @param[in] elements name of the GST Element to remove.
 * @return DSL_RESULT_SUCCESS on success, DSL_RESULT_SINK_RESULT otherwise.
 */
DslReturnType dsl_sink_custom_element_remove(const wchar_t* name, 
    const wchar_t* elements);

/**
 * @brief Removes a list of GST Elements from a Custom Sink Component.
 * @param[in] name name of the Custom Sink to update.
 * @param[in] elements NULL terminated array of GST Element names to remove.
 * @return DSL_RESULT_SUCCESS on success, DSL_RESULT_SINK_RESULT otherwise.
 */
DslReturnType dsl_sink_custom_element_remove_many(const wchar_t* name, 
    const wchar_t** elements);