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
Implement Component Queue get/set services
  • Loading branch information
rjhowell44 committed Jun 12, 2024
commit cd44c3e18df720e3268d7875c3255768d70bc597
293 changes: 290 additions & 3 deletions dsl.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,14 @@
DSL_V4L2_DEVICE_TYPE_TUNER = 0x00010000
DSL_V4L2_DEVICE_TYPE_AUDIO = 0x00020000

DSL_COMPONENT_QUEUE_LEAKY_NO = 0
DSL_COMPONENT_QUEUE_LEAKY_UPSTREAM = 1
DSL_COMPONENT_QUEUE_LEAKY_DOWNSTREAM = 2

DSL_COMPONENT_QUEUE_UNIT_OF_BUFFERS = 0
DSL_COMPONENT_QUEUE_UNIT_OF_BYTES = 1
DSL_COMPONENT_QUEUE_UNIT_OF_TIME = 2

DSL_STATE_NULL = 1
DSL_STATE_READY = 2
DSL_STATE_PAUSED = 3
Expand Down Expand Up @@ -540,6 +548,14 @@ class dsl_threshold_value(Structure):
DSL_SINK_APP_NEW_DATA_HANDLER = \
CFUNCTYPE(c_uint, c_uint, c_void_p, c_void_p)

# dsl_component_queue_overrun_listener_cb
DSL_COMPONENT_QUEUE_OVERRUN_LISTENER = \
CFUNCTYPE(None, c_wchar_p, c_void_p)

# dsl_component_queue_underrun_listener_cb
DSL_COMPONENT_QUEUE_UNDERRUN_LISTENER = \
CFUNCTYPE(None, c_wchar_p, c_void_p)

##
## TODO: CTYPES callback management needs to be completed before any of
## the callback remove wrapper functions will work correctly.
Expand Down Expand Up @@ -7172,6 +7188,277 @@ def dsl_component_list_size():
result =_dsl.dsl_component_list_size()
return int(result)

##
## dsl_component_queue_current_level_get()
##
_dsl.dsl_component_queue_current_level_get.argtypes = [c_wchar_p,
c_uint, POINTER(c_uint64)]
_dsl.dsl_component_queue_current_level_get.restype = c_uint
def dsl_component_queue_current_level_get(name, unit):
global _dsl
current_level = c_uint64(0)
result = _dsl.dsl_component_queue_current_level_get(name,
unit, DSL_UINT64_P(current_level))
return int(result), current_level.value

##
## dsl_component_queue_current_level_print()
##
_dsl.dsl_component_queue_current_level_print.argtypes = [c_wchar_p,
c_uint]
_dsl.dsl_component_queue_current_level_print.restype = c_uint
def dsl_component_queue_current_level_print(name, unit):
global _dsl
result =_dsl.dsl_component_queue_current_level_print(name, unit)
return int(result)

##
## dsl_component_queue_current_level_print_many()
##
# _dsl.dsl_component_queue_current_level_print_many.argtypes = [c_wchar_pp,
# c_uint]
_dsl.dsl_component_queue_current_level_print_many.restype = c_uint
def dsl_component_queue_current_level_print_many(names, unit):
global _dsl
arr = (c_wchar_p * len(names))()
arr[:] = names
result =_dsl.dsl_component_queue_current_level_print_many(arr, unit)
return int(result)

##
## dsl_component_queue_leaky_get()
##
_dsl.dsl_component_queue_leaky_get.argtypes = [c_wchar_p,
POINTER(c_uint)]
_dsl.dsl_component_queue_leaky_get.restype = c_uint
def dsl_component_queue_leaky_get(name):
global _dsl
leaky = c_uint(0)
result = _dsl.dsl_component_queue_leaky_get(name, DSL_UINT_P(leaky))
return int(result), leaky.value

##
## dsl_component_queue_leaky_set()
##
_dsl.dsl_component_queue_leaky_set.argtypes = [c_wchar_p, c_uint]
_dsl.dsl_component_queue_leaky_set.restype = c_uint
def dsl_component_queue_leaky_set(name, leaky):
global _dsl
result =_dsl.dsl_component_queue_leaky_set(name, leaky)
return int(result)

##
## dsl_component_queue_leaky_set_many()
##
#_dsl.dsl_component_queue_leaky_set_many.argtypes = []?
_dsl.dsl_component_queue_leaky_set_many.restype = c_uint
def dsl_component_queue_leaky_set_many(names, leaky):
global _dsl
arr = (c_wchar_p * len(names))()
arr[:] = names
result =_dsl.dsl_component_queue_leaky_set_many(arr, leaky)
return int(result)

##
## dsl_component_queue_max_size_get()
##
_dsl.dsl_component_queue_max_size_get.argtypes = [c_wchar_p,
c_uint, POINTER(c_uint64)]
_dsl.dsl_component_queue_max_size_get.restype = c_uint
def dsl_component_queue_max_size_get(name, unit):
global _dsl
max_size = c_uint64(0)
result = _dsl.dsl_component_queue_max_size_get(name,
unit, DSL_UINT64_P(max_size))
return int(result), max_size.value

##
## dsl_component_queue_max_size_set()
##
_dsl.dsl_component_queue_max_size_set.argtypes = [c_wchar_p,
c_uint, c_uint64]
_dsl.dsl_component_queue_max_size_set.restype = c_uint
def dsl_component_queue_max_size_set(name, unit, max_size):
global _dsl
result =_dsl.dsl_component_queue_max_size_set(name,
unit, max_size)
return int(result)

##
## dsl_component_queue_max_size_set_many()
##
# _dsl.dsl_component_queue_max_size_set_many.argtypes = [] ??
_dsl.dsl_component_queue_max_size_set_many.restype = c_uint
def dsl_component_queue_max_size_set_many(names, unit, max_size):
global _dsl
arr = (c_wchar_p * len(names))()
arr[:] = names
result =_dsl.dsl_component_queue_max_size_set_many(arr,
unit, max_size)
return int(result)

##
## dsl_component_queue_min_threshold_get()
##
_dsl.dsl_component_queue_min_threshold_get.argtypes = [c_wchar_p,
c_uint, POINTER(c_uint64)]
_dsl.dsl_component_queue_min_threshold_get.restype = c_uint
def dsl_component_queue_min_threshold_get(name, unit):
global _dsl
min_threshold = c_uint64(0)
result = _dsl.dsl_component_queue_min_threshold_get(name,
unit, DSL_UINT64_P(min_threshold))
return int(result), min_threshold.value

##
## dsl_component_queue_min_threshold_set()
##
_dsl.dsl_component_queue_min_threshold_set.argtypes = [c_wchar_p,
c_uint, c_uint64]
_dsl.dsl_component_queue_min_threshold_set.restype = c_uint
def dsl_component_queue_min_threshold_set(name, unit, min_threshold):
global _dsl
result =_dsl.dsl_component_queue_min_threshold_set(name,
unit, min_threshold)
return int(result)

##
## dsl_component_queue_min_threshold_set_many()
##
# _dsl.dsl_component_queue_min_threshold_set_many.argtypes = [] ??
_dsl.dsl_component_queue_min_threshold_set_many.restype = c_uint
def dsl_component_queue_min_threshold_set_many(names, unit, min_threshold):
global _dsl
arr = (c_wchar_p * len(names))()
arr[:] = names
result =_dsl.dsl_component_queue_min_threshold_set_many(arr,
unit, min_threshold)
return int(result)

##
## dsl_component_queue_overrun_listener_add()
##
_dsl.dsl_component_queue_overrun_listener_add.argtypes = [c_wchar_p,
DSL_COMPONENT_QUEUE_OVERRUN_LISTENER, c_void_p]
_dsl.dsl_component_queue_overrun_listener_add.restype = c_uint
def dsl_component_queue_overrun_listener_add(name, client_listener, client_data):
global _dsl
c_client_listener = DSL_COMPONENT_QUEUE_OVERRUN_LISTENER(client_listener)
callbacks.append(c_client_listener)
c_client_data=cast(pointer(py_object(client_data)), c_void_p)
clientdata.append(c_client_data)
result = _dsl.dsl_component_queue_overrun_listener_add(name,
c_client_listener, c_client_data)
return int(result)

##
## dsl_component_queue_overrun_listener_add_many()
##
# _dsl.dsl_component_queue_overrun_listener_add_many.argtypes = [c_wchar_p,
# DSL_COMPONENT_QUEUE_OVERRUN_LISTENER, c_void_p]
_dsl.dsl_component_queue_overrun_listener_add_many.restype = c_uint
def dsl_component_queue_overrun_listener_add_many(names, client_listener, client_data):
global _dsl
arr = (c_wchar_p * len(names))()
arr[:] = names
c_client_listener = DSL_COMPONENT_QUEUE_OVERRUN_LISTENER(client_listener)
callbacks.append(c_client_listener)
c_client_data=cast(pointer(py_object(client_data)), c_void_p)
clientdata.append(c_client_data)
result = _dsl.dsl_component_queue_overrun_listener_add_many(arr,
c_client_listener, c_client_data)
return int(result)

##
## dsl_component_queue_overrun_listener_remove()
##
_dsl.dsl_component_queue_overrun_listener_remove.argtypes = [c_wchar_p,
DSL_COMPONENT_QUEUE_OVERRUN_LISTENER]
_dsl.dsl_component_queue_overrun_listener_remove.restype = c_uint
def dsl_component_queue_overrun_listener_remove(name, client_listener):
global _dsl
c_client_listener = DSL_COMPONENT_QUEUE_OVERRUN_LISTENER(client_listener)
result = _dsl.dsl_component_queue_overrun_listener_remove(name,
c_client_listener)
return int(result)

##
## dsl_component_queue_overrun_listener_remove_many()
##
#_dsl.dsl_component_queue_overrun_listener_remove_many.argtypes = [c_wchar_p,
# DSL_COMPONENT_QUEUE_OVERRUN_LISTENER]
_dsl.dsl_component_queue_overrun_listener_remove.restype = c_uint
def dsl_component_queue_overrun_listener_remove(names, client_listener):
global _dsl
arr = (c_wchar_p * len(names))()
arr[:] = names
c_client_listener = DSL_COMPONENT_QUEUE_OVERRUN_LISTENER(client_listener)
result = _dsl.dsl_component_queue_overrun_listener_remove(arr,
c_client_listener)
return int(result)

##
## dsl_component_queue_underrun_listener_add()
##
_dsl.dsl_component_queue_underrun_listener_add.argtypes = [c_wchar_p,
DSL_COMPONENT_QUEUE_UNDERRUN_LISTENER, c_void_p]
_dsl.dsl_component_queue_underrun_listener_add.restype = c_uint
def dsl_component_queue_underrun_listener_add(name, client_listener, client_data):
global _dsl
c_client_listener = DSL_COMPONENT_QUEUE_UNDERRUN_LISTENER(client_listener)
callbacks.append(c_client_listener)
c_client_data=cast(pointer(py_object(client_data)), c_void_p)
clientdata.append(c_client_data)
result = _dsl.dsl_component_queue_underrun_listener_add(name,
c_client_listener, c_client_data)
return int(result)

##
## dsl_component_queue_underrun_listener_add_many()
##
_dsl.dsl_component_queue_underrun_listener_add_many.argtypes = [c_wchar_p,
DSL_COMPONENT_QUEUE_UNDERRUN_LISTENER, c_void_p]
_dsl.dsl_component_queue_underrun_listener_add_many.restype = c_uint
def dsl_component_queue_underrun_listener_add_many(names, client_listener, client_data):
global _dsl
arr = (c_wchar_p * len(names))()
arr[:] = names
c_client_listener = DSL_COMPONENT_QUEUE_UNDERRUN_LISTENER(client_listener)
callbacks.append(c_client_listener)
c_client_data=cast(pointer(py_object(client_data)), c_void_p)
clientdata.append(c_client_data)
result = _dsl.dsl_component_queue_underrun_listener_add_many(arr,
c_client_listener, c_client_data)
return int(result)

##
## dsl_component_queue_underrun_listener_remove()
##
_dsl.dsl_component_queue_underrun_listener_remove.argtypes = [c_wchar_p,
DSL_COMPONENT_QUEUE_UNDERRUN_LISTENER]
_dsl.dsl_component_queue_underrun_listener_remove.restype = c_uint
def dsl_component_queue_underrun_listener_remove(name, client_listener):
global _dsl
c_client_listener = DSL_COMPONENT_QUEUE_UNDERRUN_LISTENER(client_listener)
result = _dsl.dsl_component_queue_underrun_listener_remove(name,
c_client_listener)
return int(result)

##
## dsl_component_queue_underrun_listener_remove_many()
##
_dsl.dsl_component_queue_underrun_listener_remove_many.argtypes = [c_wchar_p,
DSL_COMPONENT_QUEUE_UNDERRUN_LISTENER]
_dsl.dsl_component_queue_underrun_listener_remove_many.restype = c_uint
def dsl_component_queue_underrun_listener_remove_many(names, client_listener):
global _dsl
arr = (c_wchar_p * len(names))()
arr[:] = names
c_client_listener = DSL_COMPONENT_QUEUE_UNDERRUN_LISTENER(client_listener)
result = _dsl.dsl_component_queue_underrun_listener_remove_many(arr,
c_client_listener)
return int(result)

##
## dsl_component_gpuid_get()
##
Expand All @@ -7198,10 +7485,10 @@ def dsl_component_gpuid_set(name, gpuid):
##
#_dsl.dsl_component_gpuid_set_many.argtypes = [Array]
_dsl.dsl_component_gpuid_set_many.restype = c_uint
def dsl_component_gpuid_set_many(components, gpuid):
def dsl_component_gpuid_set_many(names, gpuid):
global _dsl
arr = (c_wchar_p * len(components))()
arr[:] = components
arr = (c_wchar_p * len(names))()
arr[:] = names
result =_dsl.dsl_component_gpuid_set_many(arr, gpuid)
return int(result)

Expand Down
Loading