Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
f63e5af
Create v0.01.beta dev branch
rjhowell44 May 31, 2024
ab5439b
Implement Component Queue get/set services
rjhowell44 Jun 4, 2024
4d80b29
Implement Component Queue get/set services
rjhowell44 Jun 4, 2024
b63417c
Implement Component Queue get/set services
rjhowell44 Jun 4, 2024
24b15f2
Implement Component Queue get/set services
rjhowell44 Jun 5, 2024
f7f5133
Implement Component Queue get/set services
rjhowell44 Jun 5, 2024
b8b9947
Implement Component Queue get/set services
rjhowell44 Jun 6, 2024
3b9bd81
Implement Component Queue get/set services
rjhowell44 Jun 6, 2024
019e8c2
Implement Component Queue get/set services
rjhowell44 Jun 7, 2024
3158b5e
Implement Component Queue get/set services
rjhowell44 Jun 7, 2024
4bff5ba
Implement Component Queue get/set services
rjhowell44 Jun 9, 2024
af1f440
Implement Component Queue get/set services
rjhowell44 Jun 9, 2024
cd44c3e
Implement Component Queue get/set services
rjhowell44 Jun 12, 2024
971d4ac
Implement Component Queue get/set services
rjhowell44 Jun 13, 2024
29c729e
Implement Component Queue get/set services
rjhowell44 Jun 15, 2024
8d0c47a
Implement Component Queue get/set services
rjhowell44 Jun 15, 2024
a917af2
Document Component Queue get/set services
rjhowell44 Jun 17, 2024
53bfc7d
Merge pull request #1228 from prominenceai/queue_services
rjhowell44 Jun 17, 2024
223a789
Refactor VideoSource, DuplicateSouce, and Dewarper
rjhowell44 Jun 20, 2024
7943570
Merge pull request #1229 from prominenceai/refactor_sources
rjhowell44 Jun 20, 2024
e21d5b4
Rename dsl_gst_bin_* to dsl_component_custom_*
rjhowell44 Jun 21, 2024
7ba048e
Rename/move dsl_gst_bin_* to dsl_component_custom_*
rjhowell44 Jun 22, 2024
b3b683b
Rename/move dsl_gst_bin_* to dsl_component_custom_*
rjhowell44 Jun 24, 2024
d4a7acd
Merge pull request #1232 from prominenceai/custom_component
rjhowell44 Jun 24, 2024
b9245e2
Implement Custom Source Component
rjhowell44 Jun 28, 2024
cd93cdc
Implement GST Caps Services for GST Elements
rjhowell44 Jun 28, 2024
69d80b4
Add GST Caps Services and GST Element updates
rjhowell44 Jun 30, 2024
5ab7b8d
Add GST Caps Services and GST Element updates
rjhowell44 Jul 2, 2024
60bb57c
Implement Custom Source Component
rjhowell44 Jul 5, 2024
787056a
Add Custom Source examples
rjhowell44 Jul 7, 2024
3b88dca
Document GST Caps Object services
rjhowell44 Jul 7, 2024
8408026
Fix GST API section title
rjhowell44 Jul 7, 2024
12e9fc9
Fix number of Sources supported in Overview
rjhowell44 Jul 7, 2024
de5c8b7
Merge pull request #1237 from prominenceai/custom_source
rjhowell44 Jul 7, 2024
c0d7e91
Free memory returned from gst_object_get_name
rjhowell44 Jul 19, 2024
f2a0511
Fix Copyright data range
rjhowell44 Jul 19, 2024
acb438f
Free memory returned from gst_object_get_name
rjhowell44 Jul 19, 2024
e2630a1
Fix Copyright data range
rjhowell44 Jul 19, 2024
2290883
Fix missing unref statement
rjhowell44 Jul 19, 2024
4847fcf
Fix use of uninitialized variable
rjhowell44 Jul 20, 2024
fde77b4
Minor logging fixes
rjhowell44 Jul 25, 2024
3675f30
UnlinkCommon needs to test/unlink front element
rjhowell44 Jul 25, 2024
9584b29
Fix memory leaks and incomplete trow statements
rjhowell44 Jul 28, 2024
497d361
Add Valgrind memtest assets
rjhowell44 Jul 29, 2024
dc22cfd
Merge pull request #1245 from prominenceai/mem_leaks
rjhowell44 Jul 29, 2024
49eb34a
Support/test new method to EOS pipeline on stop
rjhowell44 Jul 30, 2024
41a6e22
Merge pull request #1247 from prominenceai/eos_methods
rjhowell44 Jul 30, 2024
275ac87
Implement dsl_pipeline_buffering_message_handler_add/remove services
rjhowell44 Jul 31, 2024
a23ea9c
Document dsl_pipeline_buffering_message_handler_add/remove services
rjhowell44 Aug 1, 2024
fbb9908
Merge pull request #1249 from prominenceai/buffering_message_handler
rjhowell44 Aug 1, 2024
67a20e4
Create v0.01.beta dev branch
rjhowell44 May 31, 2024
6dfabdd
Implement Component Queue get/set services
rjhowell44 Jun 4, 2024
796e7cf
Implement Component Queue get/set services
rjhowell44 Jun 4, 2024
bad17bb
Implement Component Queue get/set services
rjhowell44 Jun 4, 2024
f8ae21b
Implement Component Queue get/set services
rjhowell44 Jun 5, 2024
b518676
Implement Component Queue get/set services
rjhowell44 Jun 5, 2024
e1ec392
Implement Component Queue get/set services
rjhowell44 Jun 6, 2024
60ccbf9
Implement Component Queue get/set services
rjhowell44 Jun 6, 2024
0ddb3c4
Implement Component Queue get/set services
rjhowell44 Jun 7, 2024
541480f
Implement Component Queue get/set services
rjhowell44 Jun 7, 2024
f459296
Implement Component Queue get/set services
rjhowell44 Jun 9, 2024
5482eae
Implement Component Queue get/set services
rjhowell44 Jun 9, 2024
6f10437
Implement Component Queue get/set services
rjhowell44 Jun 12, 2024
8079a08
Implement Component Queue get/set services
rjhowell44 Jun 13, 2024
17e66d1
Implement Component Queue get/set services
rjhowell44 Jun 15, 2024
ac5f190
Implement Component Queue get/set services
rjhowell44 Jun 15, 2024
df8be38
Document Component Queue get/set services
rjhowell44 Jun 17, 2024
05e7db0
Refactor VideoSource, DuplicateSouce, and Dewarper
rjhowell44 Jun 20, 2024
e502b48
Rename dsl_gst_bin_* to dsl_component_custom_*
rjhowell44 Jun 21, 2024
09e848a
Rename/move dsl_gst_bin_* to dsl_component_custom_*
rjhowell44 Jun 22, 2024
4118d67
Rename/move dsl_gst_bin_* to dsl_component_custom_*
rjhowell44 Jun 24, 2024
4214ddd
Implement Custom Source Component
rjhowell44 Jun 28, 2024
810f95e
Implement GST Caps Services for GST Elements
rjhowell44 Jun 28, 2024
0c83f1a
Add GST Caps Services and GST Element updates
rjhowell44 Jun 30, 2024
adc90b0
Add GST Caps Services and GST Element updates
rjhowell44 Jul 2, 2024
98b5cce
Implement Custom Source Component
rjhowell44 Jul 5, 2024
d60bd5b
Add Custom Source examples
rjhowell44 Jul 7, 2024
cacded9
Document GST Caps Object services
rjhowell44 Jul 7, 2024
5c3fd18
Fix GST API section title
rjhowell44 Jul 7, 2024
5d40d27
Fix number of Sources supported in Overview
rjhowell44 Jul 7, 2024
bdf16d2
Free memory returned from gst_object_get_name
rjhowell44 Jul 19, 2024
67d98f8
Fix Copyright data range
rjhowell44 Jul 19, 2024
b8b9bfc
Free memory returned from gst_object_get_name
rjhowell44 Jul 19, 2024
c60f70e
Fix Copyright data range
rjhowell44 Jul 19, 2024
89205a8
Fix missing unref statement
rjhowell44 Jul 19, 2024
8321f28
Fix use of uninitialized variable
rjhowell44 Jul 20, 2024
5ba3e3e
Minor logging fixes
rjhowell44 Jul 25, 2024
eac78a0
UnlinkCommon needs to test/unlink front element
rjhowell44 Jul 25, 2024
ca2ea7b
Fix memory leaks and incomplete trow statements
rjhowell44 Jul 28, 2024
d450541
Add Valgrind memtest assets
rjhowell44 Jul 29, 2024
4ab1d0a
Support/test new method to EOS pipeline on stop
rjhowell44 Jul 30, 2024
a6a4c85
Implement dsl_pipeline_buffering_message_handler_add/remove services
rjhowell44 Jul 31, 2024
df46559
Document dsl_pipeline_buffering_message_handler_add/remove services
rjhowell44 Aug 1, 2024
347d3ea
Merge branch 'v0.01.beta' of https://github.com/prominenceai/deepstre…
rjhowell44 Aug 1, 2024
2816553
Implement Custom Sink and complete Custom Source
rjhowell44 Aug 7, 2024
93a47e4
Merge pull request #1251 from prominenceai/custom_sink
rjhowell44 Aug 7, 2024
4d40fb1
Fix missing file in custom_sink commit
rjhowell44 Aug 7, 2024
872d5b3
Derive Remuxer from QBintr - use queue for Metamuxer
rjhowell44 Aug 8, 2024
e3eaf4b
Merge pull request #1252 from prominenceai/remuxer_queue
rjhowell44 Aug 8, 2024
1387c2e
Eliminate secondary queue from OSD Component
rjhowell44 Aug 8, 2024
26c9b34
Merge pull request #1254 from prominenceai/osd_update
rjhowell44 Aug 8, 2024
1a8ec92
Fix null pointer dereferencing bug in ODE Actions
rjhowell44 Aug 9, 2024
ab170e1
Fix incorrect handling of ghost pad when removing last duplicate
rjhowell44 Aug 9, 2024
f9d6108
Fix overflow error in distance trigger
rjhowell44 Aug 10, 2024
c81da37
Reorganize behavior tests and fix all test failures
rjhowell44 Aug 10, 2024
de888a3
Merge pull request #1257 from prominenceai/bug_fixes
rjhowell44 Aug 11, 2024
3f83701
Remove the Non-Maximum Processor PPH
rjhowell44 Aug 11, 2024
c884dc8
Remove the Non-Maximum Processor PPH
rjhowell44 Aug 11, 2024
01d19a0
Merge pull request #1259 from prominenceai/remove_nmp_pph
rjhowell44 Aug 11, 2024
426f410
Remove NMP PPH from dsl.py
rjhowell44 Aug 11, 2024
42ed040
Implement new dsl_source_rtsp_udp_buffer_size_get/set services
rjhowell44 Aug 16, 2024
62d3134
Merge pull request #1262 from prominenceai/udp_buffer_size
rjhowell44 Aug 16, 2024
c0b2727
Merge v0.30.b.alpha updates into v0.01.beta
rjhowell44 Aug 25, 2024
227d0ac
Add missing null pointer guards
rjhowell44 Aug 26, 2024
efcac5a
Implement EncodeSinkBintr::LinkToCommon and EncodeSinkBintr::UnlinkFr…
rjhowell44 Aug 26, 2024
fcd505f
Implement EncodeSinkBintr::LinkToCommon and EncodeSinkBintr::UnlinkFr…
rjhowell44 Aug 26, 2024
c63af29
Implement software encoding for all Encode Sinks
rjhowell44 Aug 27, 2024
d7bc251
Implement software encoding for all Encode Sinks
rjhowell44 Aug 27, 2024
d29a145
Implement software encoding for all Encode Sinks
rjhowell44 Aug 28, 2024
157be53
Implement software encoding for all Encode Sinks
rjhowell44 Aug 28, 2024
81b1d7a
Implement software encoding for all Encode Sinks
rjhowell44 Aug 29, 2024
87e2140
Implement SW Encoding and update Encode Sink parameters
rjhowell44 Sep 2, 2024
e515460
Add encoder parameter to RTMP Sink
rjhowell44 Sep 2, 2024
a22db68
Update interval parameter to iframe_interval
rjhowell44 Sep 2, 2024
bedbf72
Update interval parameter to iframe_interval
rjhowell44 Sep 2, 2024
79594d8
Merge pull request #1276 from prominenceai/sw_encode
rjhowell44 Sep 2, 2024
d67f7d5
Extend webrtc_sink to support software encoding
rjhowell44 Sep 3, 2024
87cd1d7
Update WebRTC Sink to not add Fake Sink to Pipeline
rjhowell44 Sep 3, 2024
3000672
Merge pull request #1277 from prominenceai/webrtc_sink
rjhowell44 Sep 3, 2024
2380343
Fix version check for conditionally setting bufapi-version
rjhowell44 Sep 3, 2024
b3b6904
Merge pull request #1278 from prominenceai/csi_source
rjhowell44 Sep 3, 2024
d508aa0
Fix RTSP remote URL documentation
rjhowell44 Sep 3, 2024
a20d6aa
Merge pull request #1281 from prominenceai/rtsp_sink_docs
rjhowell44 Sep 3, 2024
78d21a9
Create v0.31.alpha.dev branch
rjhowell44 Sep 3, 2024
4603e87
Create Release Notes for v0.31.alpha
rjhowell44 Sep 4, 2024
275d190
Workaround for nvvideoconvert bug on Jetson
rjhowell44 Sep 5, 2024
3e5b6f9
Merge pull request #1283 from prominenceai/nvvideoconv
rjhowell44 Sep 5, 2024
a0631c8
Complete v0.31.alpha Release Notes
rjhowell44 Sep 5, 2024
5c36432
Update release version to v0.31.alpha
rjhowell44 Sep 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add GST Caps Services and GST Element updates
  • Loading branch information
rjhowell44 committed Jun 30, 2024
commit 69d80b45052c0c2994ef7f9787bdb649c0a9d72a
59 changes: 59 additions & 0 deletions src/DslApi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3748,6 +3748,29 @@ DslReturnType dsl_gst_caps_new(const wchar_t* name, const wchar_t* factory_name)
cstrFactoryName.c_str());
}

DslReturnType dsl_gst_caps_string_get(const wchar_t* name, const wchar_t** caps)
{
RETURN_IF_PARAM_IS_NULL(name);
RETURN_IF_PARAM_IS_NULL(caps);

std::wstring wstrName(name);
std::string cstrName(wstrName.begin(), wstrName.end());

const char* cCaps;
static std::string cstrCaps;
static std::wstring wcstrCaps;

uint retval = DSL::Services::GetServices()->GstCapsStringGet(
cstrName.c_str(), &cCaps);
if (retval == DSL_RESULT_SUCCESS)
{
cstrCaps.assign(cCaps);
wcstrCaps.assign(cstrCaps.begin(), cstrCaps.end());
*caps = wcstrCaps.c_str();
}
return retval;
}

DslReturnType dsl_gst_caps_delete(const wchar_t* name)
{
RETURN_IF_PARAM_IS_NULL(name);
Expand Down Expand Up @@ -4090,6 +4113,42 @@ DslReturnType dsl_gst_element_property_string_set(const wchar_t* name,
cstrName.c_str(), cstrProperty.c_str(), cstrValue.c_str());
}

DslReturnType dsl_gst_element_property_caps_get(const wchar_t* name,
const wchar_t* property, const wchar_t* caps)
{
RETURN_IF_PARAM_IS_NULL(name);
RETURN_IF_PARAM_IS_NULL(property);
RETURN_IF_PARAM_IS_NULL(caps);

std::wstring wstrName(name);
std::string cstrName(wstrName.begin(), wstrName.end());
std::wstring wstrProperty(property);
std::string cstrProperty(wstrProperty.begin(), wstrProperty.end());
std::wstring wstrCaps(caps);
std::string cstrCaps(wstrCaps.begin(), wstrCaps.end());

return DSL::Services::GetServices()->GstElementPropertyCapsGet(
cstrName.c_str(), cstrProperty.c_str(), cstrCaps.c_str());
}

DslReturnType dsl_gst_element_property_caps_set(const wchar_t* name,
const wchar_t* property, const wchar_t* caps)
{
RETURN_IF_PARAM_IS_NULL(name);
RETURN_IF_PARAM_IS_NULL(property);
RETURN_IF_PARAM_IS_NULL(caps);

std::wstring wstrName(name);
std::string cstrName(wstrName.begin(), wstrName.end());
std::wstring wstrProperty(property);
std::string cstrProperty(wstrProperty.begin(), wstrProperty.end());
std::wstring wstrCaps(caps);
std::string cstrCaps(wstrCaps.begin(), wstrCaps.end());

return DSL::Services::GetServices()->GstElementPropertyCapsSet(
cstrName.c_str(), cstrProperty.c_str(), cstrCaps.c_str());
}

DslReturnType dsl_gst_element_pph_add(const wchar_t* name,
const wchar_t* handler, uint pad)
{
Expand Down
75 changes: 52 additions & 23 deletions src/DslApi.h
Original file line number Diff line number Diff line change
Expand Up @@ -4537,39 +4537,47 @@ DslReturnType dsl_pph_delete_all();
uint dsl_pph_list_size();

/**
* @brief Creates a uniquely named GStreamer Caps Object from a string representation.
* @param[in] name unique name for the GStreamer Caps Object to create.
* @brief Creates a uniquely named GSTCaps Object from a string representation.
* @param[in] name unique name for the GST Caps Object to create.
* @param[in] caps a string defining the caps to create.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_CAPS_RESULT otherwise.
*/
DslReturnType dsl_gst_caps_new(const wchar_t* name, const wchar_t* caps);

/**
* @brief Queries a uniquely named GST Caps Object for its current caps string representation.
* @param[in] name unique name for the GST Caps Object to query.
* @param[out] caps a string representation of the Caps Object current caps.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_CAPS_RESULT otherwise.
*/
DslReturnType dsl_gst_caps_string_get(const wchar_t* name, const wchar_t** caps);

/**
* @brief Deletes a GStreamer Caps Object by name.
* @param[in] name unique name of the Element to delete.
* @brief Deletes a GST Caps Object by name.
* @param[in] name unique name of the GST Caps Object to delete.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_CAPS_RESULT otherwise.
*/
DslReturnType dsl_gst_caps_delete(const wchar_t* name);

/**
* @brief deletes a NULL terminated list of Caps Objects.
* @brief deletes a NULL terminated list of GST Caps Objects.
* @param[in] names NULL terminated list of names of Caps Objects to delete.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_CAPS_RESULT otherwise.
*/
DslReturnType dsl_gst_caps_delete_many(const wchar_t** names);

/**
* @brief deletes all GStreamer Caps Objects in memory.
* @brief deletes all GST Caps Objects in memory.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_CAPS_RESULT otherwise.

*/
DslReturnType dsl_gst_caps_delete_all();

/**
* @brief returns the current number of GStreamer Caps Objects.
* @return size of the list of GStreamer Caps Objects.
* @brief returns the current number of GST Caps Objects.
* @return size of the list of GST Caps Objects.
*/
uint dsl_gst_element_list_size();
uint dsl_gst_caps_list_size();

/**
* @brief Creates a uniquely named GStreamer Element from a plugin factory name.
Expand Down Expand Up @@ -4616,7 +4624,7 @@ DslReturnType dsl_gst_element_get(const wchar_t* name, void** element);

/**
* @brief Gets a named boolean property from a named Element.
* @param[in] name unique name for the Element to query.
* @param[in] name unique name of the Element to query.
* @param[in] property unique name of the property to query.
* @param[out] value current value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4626,7 +4634,7 @@ DslReturnType dsl_gst_element_property_boolean_get(const wchar_t* name,

/**
* @brief Sets a named boolean property for a named Element.
* @param[in] name unique name for the Element to update.
* @param[in] name unique name of the Element to update.
* @param[in] property unique name of the property to update.
* @param[in] value new value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4636,7 +4644,7 @@ DslReturnType dsl_gst_element_property_boolean_set(const wchar_t* name,

/**
* @brief Gets a named float property from a named Element.
* @param[in] name unique name for the Element to query.
* @param[in] name unique name of the Element to query.
* @param[in] property unique name of the property to query.
* @param[out] value current value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4646,7 +4654,7 @@ DslReturnType dsl_gst_element_property_float_get(const wchar_t* name,

/**
* @brief Sets a named float property for a named Element.
* @param[in] name unique name for the Element to update.
* @param[in] name unique name of the Element to update.
* @param[in] property unique name of the property to update.
* @param[in] value new value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4656,7 +4664,7 @@ DslReturnType dsl_gst_element_property_float_set(const wchar_t* name,

/**
* @brief Gets a named unsigned int property from a named Element.
* @param[in] name unique name for the Element to query.
* @param[in] name unique name of the Element to query.
* @param[in] property unique name of the property to query.
* @param[out] value current value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4666,7 +4674,7 @@ DslReturnType dsl_gst_element_property_uint_get(const wchar_t* name,

/**
* @brief Sets a named unsigned int property for a named Element.
* @param[in] name unique name for the Element to update.
* @param[in] name unique name of the Element to update.
* @param[in] property unique name of the property to update.
* @param[in] value new value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4676,7 +4684,7 @@ DslReturnType dsl_gst_element_property_uint_set(const wchar_t* name,

/**
* @brief Gets a named signed int property from a named Element.
* @param[in] name unique name for the Element to query.
* @param[in] name unique name of the Element to query.
* @param[in] property unique name of the property to query.
* @param[out] value current value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4686,7 +4694,7 @@ DslReturnType dsl_gst_element_property_int_get(const wchar_t* name,

/**
* @brief Sets a named signed int property for a named Element.
* @param[in] name unique name for the Element to update.
* @param[in] name unique name of the Element to update.
* @param[in] property unique name of the property to update.
* @param[in] value new value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4696,7 +4704,7 @@ DslReturnType dsl_gst_element_property_int_set(const wchar_t* name,

/**
* @brief Gets a named uint64_t property from a named Element.
* @param[in] name unique name for the Element to query.
* @param[in] name unique name of the Element to query.
* @param[in] property unique name of the property to query.
* @param[out] value current value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4706,7 +4714,7 @@ DslReturnType dsl_gst_element_property_uint64_get(const wchar_t* name,

/**
* @brief Sets a named uint64_t property for a named Element.
* @param[in] name unique name for the Element to update.
* @param[in] name unique name of the Element to update.
* @param[in] property unique name of the property to update.
* @param[in] value new value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4715,7 +4723,7 @@ DslReturnType dsl_gst_element_property_uint64_set(const wchar_t* name,
const wchar_t* property, uint64_t value);
/**
* @brief Gets a named signed int64_t property from a named Element.
* @param[in] name unique name for the Element to query.
* @param[in] name unique name of the Element to query.
* @param[in] property unique name of the property to query.
* @param[out] value current value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4725,7 +4733,7 @@ DslReturnType dsl_gst_element_property_int64_get(const wchar_t* name,

/**
* @brief Sets a named signed int64_t property for a named Element.
* @param[in] name unique name for the Element to update.
* @param[in] name unique name of the Element to update.
* @param[in] property unique name of the property to update.
* @param[in] value new value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4735,7 +4743,7 @@ DslReturnType dsl_gst_element_property_int64_set(const wchar_t* name,

/**
* @brief Gets a named string property from a named Element.
* @param[in] name unique name for the Element to query.
* @param[in] name unique name of the Element to query.
* @param[in] property unique name of the property to query.
* @param[out] value current value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
Expand All @@ -4745,14 +4753,35 @@ DslReturnType dsl_gst_element_property_string_get(const wchar_t* name,

/**
* @brief Sets a named string property for a named Element.
* @param[in] name unique name for the Element to update.
* @param[in] name unique name of the Element to update.
* @param[in] property unique name of the property to update.
* @param[in] value new value for the named property.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
*/
DslReturnType dsl_gst_element_property_string_set(const wchar_t* name,
const wchar_t* property, const wchar_t* value);

/**
* @brief Updates a named GST Caps Object from a named Element.
* @param[in] name unique name for the Element to query.
* @param[in] property unique name of the property to query, typically "caps".
* @param[in] caps unique name for the Caps Object to update. The updated caps
* string can be queried by calling dsl_gst_caps_string_get.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
*/
DslReturnType dsl_gst_element_property_caps_get(const wchar_t* name,
const wchar_t* property, const wchar_t* caps);

/**
* @brief Sets a named caps property for a named Element.
* @param[in] name unique name of the Element to update.
* @param[in] property unique name of the property to update, typically "caps".
* @param[in] caps unique name of the Caps Object to use.
* @return DSL_RESULT_SUCCESS on success, DSL_RESULT_GST_ELEMENT_RESULT otherwise.
*/
DslReturnType dsl_gst_element_property_caps_set(const wchar_t* name,
const wchar_t* property, const wchar_t* caps);

/**
* @brief Adds a pad-probe-handler to a named GStreamer Element.
* A GStreamer Element can have multiple Sink and Source pad-probe-handlers
Expand Down
19 changes: 19 additions & 0 deletions src/DslCaps.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,25 @@ namespace DSL
}

/**
* @brief ctor for DslCaps class
*/
DslCaps(GstCaps* caps)
{
LOG_FUNC();

m_pGstCaps = caps;

gchar* capsString = gst_caps_serialize(caps, GST_SERIALIZE_FLAG_NONE);
m_capsString = capsString;

LOG_INFO("Created new DslCaps from GstCaps* with string = '"
<< m_capsString << "'");

// need to free the string allocated with gst_caps_serialize
g_free(capsString);
}

/**
* @brief dtor for DslCaps class
*/
~DslCaps()
Expand Down
15 changes: 15 additions & 0 deletions src/DslElementr.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,21 @@ namespace DSL
<< "' returned uint64_t '" << *value << "'");
}

/**
* @brief Gets a GST Element's attributeof type GstCaps.
* @param[in] name name of the attribute to set
* @param[in] value c
*/
void GetAttribute(const char* name, GstCaps ** value)
{
LOG_FUNC();

g_object_get(GetGObject(), name, value, NULL);

LOG_DEBUG("Attribute '" << name
<< "' returned GstCaps* value '");
}

/**
* @brief Sets a GST Element's attribute, owned by this Elementr to a
* value of int
Expand Down
2 changes: 2 additions & 0 deletions src/DslServices.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,11 @@ namespace DSL
PlayerDeleteAll(false);
ComponentDeleteAll();
GstElementDeleteAll();
GstCapsDeleteAll();
PphDeleteAll();
OdeTriggerDeleteAll();
OdeAccumulatorDeleteAll();
OdeHeatMapperDeleteAll();
OdeAreaDeleteAll();
OdeActionDeleteAll();
DisplayTypeDeleteAll();
Expand Down
8 changes: 8 additions & 0 deletions src/DslServices.h
Original file line number Diff line number Diff line change
Expand Up @@ -696,6 +696,8 @@ namespace DSL {

DslReturnType GstCapsNew(const char* name, const char* caps);

DslReturnType GstCapsStringGet(const char* name, const char** caps);

DslReturnType GstCapsDelete(const char* name);

DslReturnType GstCapsDeleteAll();
Expand Down Expand Up @@ -754,6 +756,12 @@ namespace DSL {
DslReturnType GstElementPropertyStringSet(const char* name,
const char* property, const char* value);

DslReturnType GstElementPropertyCapsGet(const char* name,
const char* property, const char* caps);

DslReturnType GstElementPropertyCapsSet(const char* name,
const char* property, const char* caps);

DslReturnType GstElementPphAdd(const char* name,
const char* handler, uint pad);

Expand Down
Loading