prominenceai / deepstream-services-library

A shared library of on-demand DeepStream Pipeline Services for Python and C/C++
MIT License
288 stars 67 forks source link

Refactor PipelineSourcesBintr to optionally support both Audio and/or Video using two Streammuxers #1305

Open rjhowell44 opened 3 weeks ago

rjhowell44 commented 3 weeks ago

New symbolic constant to control the default media support for all Pipelines.

/**
 * @brief Default Media Support for all new Pipelines.
 */
#define DSL_DEFAULT_PIPELINE_MEDIA_TYPE                             DSL_MEDIA_TYPE_VIDEO_ONLY

New services to get and set the Streammuxer's enabled state. Note: all current pipeline streammux services will be renamed to videomux - covered in a separate issue.

/**
 * @brief Returns the current setting - enabled/disabled - for named Pipeline's
 * Video Streammux.
 * @param[in] name name of the Pipeline to query
 * @param[out] enable true if the Video Streammux is enabled, false if not.
 * @return DSL_RESULT_SUCCESS on successful query, one of 
 * DSL_RESULT_PIPELINE_RESULT on failure. 
 */
DslReturnType dsl_pipeline_videomux_enabled_get(const wchar_t* name, 
    boolean* enabled);

/**
 * @brief Updates the current setting - enabled/disabled - for named Pipeline's
 * Video Streammuxer. 
 * @param[in] name name of the Pipeline to update
 * @param[in] enable set to true to enable the Video Streammuxer, false to disable.
 * @return DSL_RESULT_SUCCESS on successful update, one of 
 * DSL_RESULT_PIPELINE_RESULT on failure. 
 */
DslReturnType dsl_pipeline_videomux_enabled_set(const wchar_t* name, 
    boolean enabled);

/**
 * @brief Returns the current setting - enabled/disabled - for named Pipeline's
 * Audio Streammuxer.
 * @param[in] name name of the Pipeline to query
 * @param[out] enable true if the Audio Streammuxer is enabled, false if not.
 * @return DSL_RESULT_SUCCESS on successful query, one of 
 * DSL_RESULT_PIPELINE_RESULT on failure. 
 */
DslReturnType dsl_pipeline_audiomux_enabled_get(const wchar_t* name, 
    boolean* enabled);

/**
 * @param[in] name name of the Pipeline to update
 * @brief Updates the current setting - enabled/disabled - for named Pipeline's
 * Audio Streammux. 
 * @param[in] enable set to true to enable the Audio Streammuxer, false to disable.
 * @return DSL_RESULT_SUCCESS on successful update, one of 
 * DSL_RESULT_PIPELINE_RESULT on failure. 
 */
DslReturnType dsl_pipeline_audiomux_enabled_set(const wchar_t* name, 
    boolean enabled);