Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use meson built in support for dependency to threads lib #10

Open
wants to merge 392 commits into
base: tulio/dcsctp
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
392 commits
Select commit Hold shift + click to select a range
9b07c30
rtpfunnel: revert back to pexip version [pexhack]
havardgraff Apr 7, 2022
91514cc
rtpmanager/rtpsource: minor warning log fix
camilo-celis Oct 14, 2020
bfd0be0
rtpptdemux: send lost-event to all pads
havardgraff Feb 2, 2021
f22c4a6
tests/rtpbin: add test for rtp and rtcp arriving simultaneously
havardgraff May 22, 2021
7a6dc66
vp9enc: if VP9E_SET_ROW_MT is not available, don't use it
havardgraff Aug 11, 2021
4e29484
rtpvp8pay: add back "increment pic ID on GAP event"
havardgraff Aug 25, 2021
5fe85b0
rtpvp8depay: pexip changes
havardgraff Aug 23, 2021
ad9980a
vp9enc: disable VP9E_SET_COLOR_SPACE for now
havardgraff Aug 27, 2021
eeca121
rtpvp8depay: upgrade to use custom meta (FIXUP)
havardgraff Aug 27, 2021
850e6cf
rtpmanager: add header-extension for Region of Interest.
havardgraff Sep 1, 2021
382fedc
rtpvp9depay: revert to pexip-changes (for now)
havardgraff Sep 2, 2021
aeec498
rtpvp9pay: add back incrementing gap-id on GAPs
havardgraff Sep 10, 2021
26037c3
rtph261depay: don't set the DELTA_UNIT flag for H.261
havardgraff Sep 20, 2021
221af44
vpxenc: move temporal-scalability-layer to GValueArray
havardgraff Sep 20, 2021
90cb0dc
[pexhack] find out about -objc-arc stuff
havardgraff Oct 24, 2019
3713ab5
gstgdiscreencapsrc: added window property
tbeloqui Jun 26, 2020
bdd30fc
SCTP: expose gi bindings
jmb202 Mar 15, 2019
3dd78af
SCTP: expose gi bindings for send meta
jmb202 Mar 26, 2019
91e8ca5
SCTP: increase default streams to 65535
jmb202 Mar 26, 2019
d188d25
SCTP: remove unnecessary preprocessor definitions
jmb202 Aug 14, 2019
3120837
SCTP: add property to tweak heartbeat configuration
jmb202 Aug 14, 2019
0ae9161
SCTP: change state on connection lost.
jmb202 Aug 14, 2019
8ecc85d
SCTP: change state on shutdown
jmb202 Aug 15, 2019
e04fa91
SCTP: record association id on connection.
jmb202 Aug 15, 2019
0b2ed54
SCTP: set association id when resetting streams
jmb202 Aug 15, 2019
7c9a53c
SCTP: require lock to be held before changing state
thomas-pexip Aug 25, 2021
4d4a7a6
SCTP: only reset streams in connected state
jmb202 Aug 16, 2019
8c29204
SCTP: factor out association changed event handlers
jmb202 Aug 16, 2019
935b3c3
SCTP: reset association when disconnected
thomas-pexip Aug 26, 2021
bbed90a
SCTP: permit starting association when disconnected
jmb202 Aug 16, 2019
e08d7a7
SCTP: expose a reconnect action
jmb202 Aug 16, 2019
1cc9afb
SCTP: emit signal when association is restarted
jmb202 Aug 16, 2019
5449d2a
SCTP: apply aggressive heartbeat using setsockopt
jmb202 Aug 17, 2019
1acf79d
SCTP: handle reconnect race
jmb202 Aug 17, 2019
65b695f
SCTP: add action for explicit disconnection
jmb202 Aug 17, 2019
0c7071d
SCTP: move handle_sctp_comm_lost_or_shutdown
jmb202 Aug 18, 2019
99db846
SCTP: shutdown stream sockets
jmb202 Aug 18, 2019
829f50b
SCTP: delay sctp-association-established(FALSE)
jmb202 Sep 18, 2019
eab4545
SCTP: isolate sticky events on sctpdec src pads
jmb202 Sep 19, 2019
bc1419a
SCTPDec: ignore buffers pushed after cleanup
jmb202 Sep 19, 2019
ef7cdd6
SCTP: add missing declaration
jmb202 Sep 24, 2019
82232b3
SCTP: track association validity
jmb202 Sep 24, 2019
b27bf31
SCTP: dispose associations
thomas-pexip Aug 26, 2021
c200d69
SCTP: unref association in dispose
jmb202 Sep 24, 2019
b06de7a
usrsctp: port pexip/usrsctp 'Fix deadlock during shutdown'
thomas-pexip Aug 18, 2021
ccf8cc9
usrsctp: port pexip/usrsctp 'Forcibly cancel iterator thread'
thomas-pexip Aug 18, 2021
65b2d89
usrsctp: port pexip/usrsctp 'Remove iterator thread'
thomas-pexip Aug 18, 2021
3151696
usrsctp: port pexip/usrsctp 'init_random rename to init_usrsctp_rando…
thomas-pexip Aug 18, 2021
0917f10
SCTP: Downgrade data on disconnect log message
thomas-pexip Sep 16, 2021
68a77ab
SCTP: retry after failure to bind with EADDRINUSE
thomas-pexip Sep 17, 2021
e727bea
SCTP: Fix deadlock during usrsctp_shutdown or usrsctp_close (2)
thomas-pexip Oct 6, 2021
6607f26
SCTP: disconnect-reconnect association in unexpected state
thomas-pexip Oct 6, 2021
285b53a
SCTP: On EADDRINUSE increase retries for usrsctp_bind
thomas-pexip Dec 16, 2021
4319b91
gst-plugins-base/rtpdummyhdrextimpl: unused variable
havardgraff Sep 30, 2021
111de24
bytewriter: fix msvc warnings
havardgraff Oct 6, 2021
72649e8
[pexhack] re-add gst_debug_syslog option
w-miller Oct 8, 2021
fa474f6
gstharness: make removal of peer pad thread safe
thomas-pexip Sep 15, 2021
2cb91c8
gstharness: Limited support for bufferlists.
frederik-vestre-pexip Jan 24, 2022
7e6b9f7
gstreamer/harness: make pull timesout configurable
camilo-celis Mar 18, 2022
56b7ddf
rtprtxsend: add "limiting" and "stuffing"
havardgraff Mar 31, 2022
9f38255
rtprtxsend: fixed copying twcc ext-hdr if present
tbeloqui Apr 6, 2022
6d29786
[pexhack] rtphdrextroi: tmp support of multiple roi-types
camilo-celis Oct 28, 2021
f131923
gstelement: log warning when pad name doesn't match any template
w-miller Dec 14, 2021
d10dfdd
check: Fix valgrid suppresion for debug function list
amberik1 Dec 20, 2021
bdde997
gst/gst_gdb: allow doing a gst-dot of a local bin
camilo-celis Mar 1, 2022
36dd564
gstvideodecoder: set all-headers to TRUE in the GstForceKeyUnit when
tbeloqui Mar 14, 2022
9df5b9f
gstgdiscreencapsrc: fixed type conversion
tbeloqui Apr 8, 2022
0e00c92
gstglcolorconver: only set target target texture if any
camilo-celis Apr 18, 2022
9baf1cf
gstglcolorconvert: fix possible out of bounds read
camilo-celis Apr 18, 2022
52268d8
meson: [msvc] only add warnings 4013, 4101 and 4189 if glib_checks is
tbeloqui Apr 8, 2022
593595c
rtprtx: add test to copy custom RoI ext-hdr
camilo-celis May 26, 2022
0ab7d19
rtprtx: fix copying ext-hdr if present
tbeloqui Apr 6, 2022
6066aa7
srtp: fix missing dep if srtp is disabled
havardgraff Jun 13, 2022
ae95a29
libcheck: use SIGABRT instead of SIGKILL on timeout
camilo-celis Jun 11, 2022
f8f9a09
ahc2src: Introduce a new source for Android Camera 2 NDK API
havardgraff Apr 25, 2022
05f84e5
androidmedia: PEXHACK comment out camera properties
Apr 28, 2022
8c787bb
androidmedia: added gstacamdeviceprovider
tbeloqui May 25, 2022
5e84e1a
gstamdeviceprovider: added audio device provider for android
tbeloqui May 31, 2022
3d53270
SCTPDec: don't unref NULL association
w-miller Jun 21, 2022
2a21d75
gstamdeviceprovider: fixed a race condition in which the callback would
tbeloqui Jun 29, 2022
63cadcf
applemedia/vtenc: fix deadlock
havardgraff Jul 3, 2022
846c9b2
SCTP: moving the removal of the associations from dispose() to finali…
tbeloqui Aug 3, 2022
a48937f
applemedia/avaudiodeviceprovider: initial commit
tbeloqui Jul 26, 2022
ab38595
winks/ksvideohelper: do not throw a warning if the media type is not
tbeloqui Aug 9, 2022
cdb83e1
gstpad: gst-indent
havardgraff Aug 22, 2022
9434083
gstpad: PEXHACK: log chain(list)funcs that take longer than 100ms
havardgraff Sep 2, 2022
ebe3f59
ahc2src: cleanups and fixes
havardgraff Aug 26, 2022
7ad6b42
amcvideoenc: fix mess around level and profile for H.264
havardgraff Aug 30, 2022
786c51f
ahc2src: improve the memory-handling of AImage to GstBuffer
havardgraff Aug 30, 2022
e9058c6
vpxenc: FIXME: revert upstream changes
havardgraff Sep 5, 2022
2d42e81
rtpsession: FIXUP don't set running_time to -1 for no latency
havardgraff Sep 7, 2022
1ae1695
vtenc: PEXHACK don't do B-frames from encoder if we can help it
havardgraff Sep 9, 2022
9eab3d2
rtpsession: don't report same stats twice
havardgraff Sep 23, 2022
08cb9f0
SCTP: fixing pthread_mutex_destroy call on a destroyed mutex
tbeloqui Sep 23, 2022
e9eeba7
gstclock: FIXUP removal of weakref
havardgraff Sep 26, 2022
46e1288
remove "medias" subproject
havardgraff Sep 28, 2022
83e8e04
SCTP: refactoring encoder and decoder
tbeloqui Sep 27, 2022
419fd4e
SCTP: fixed race condition and memory leak
tbeloqui Sep 28, 2022
e876bbe
gstelement: do not hold the element lock when activating the pad in
tbeloqui Sep 29, 2022
063c345
SCTP: add the srcpad to the sctpdec element before activing it
tbeloqui Sep 29, 2022
5e0fed2
androidmedia: populate devices list before starting the GstAcamDevice…
tbeloqui Oct 6, 2022
4b9f5dd
gstahc2src: added camera_status_t logging
tbeloqui Oct 6, 2022
bdcbfd2
amdeviceprovider: fixing device-id property default value
tbeloqui Oct 10, 2022
aa1f907
gstleaks: add "objects-alive-list" to the checkpoint
havardgraff Oct 14, 2022
c737130
vp9dec: don't offer 10bit if libvpx does not support it
havardgraff Oct 17, 2022
a86619c
rtpjitterbuffer: Default do-lost to TRUE for rtpjitterbuffer [pexhack]
haaspors May 26, 2014
bf9827b
Revert "rtpjitterbuffer: Ensure to not take caps with the wrong pt fo…
havardgraff May 21, 2016
ca55ad0
rtpjitterbuffer: remove GFunc cast to silence GCC warnings
havardgraff Oct 28, 2020
408e689
rtpjitterbuffer: rtspsrc: Rename seqnum-base caps field to seqnum-offset
haaspors May 26, 2014
00328bd
rtpjitterbuffer: improve calculation of jitter and add more stats
havardgraff May 18, 2018
70d541e
rtpjitterbuffer: Optimize stats by caching quarks
havardgraff Oct 1, 2018
2d740fc
rtpjitterbuffer: Send a latency-changed event when latency changes
havardgraff Jun 12, 2019
289ac2b
rtpjitterbuffer: don't calculate packet-rate for jumping seqnums
havardgraff Apr 16, 2020
863e22e
rtpjitterbuffer: add failing test that reproduces a stall
havardgraff Mar 31, 2020
190f6e6
rtpjitterbuffer: remove reset-on-many-timers
havardgraff Apr 3, 2020
5b4754d
rtpjitterbuffer: add option to prepend events when inserting
havardgraff Mar 31, 2020
7284f57
rtpjitterbuffer: DTX implementation
havardgraff Apr 23, 2021
60b199b
rtpjitterbuffer: fixing ulpfec packets used in pts and skew calculati…
tbeloqui May 31, 2021
b39a2b6
gstrtpjitterbuffer: Fix integer arithmetic issue
amberik1 Jun 16, 2022
eb68f14
gstrtpjitterbuffer: Improve avg_jitter calculation.
amberik1 Jun 16, 2022
9c8ef95
gstrtpjitterbuffer: Add to JB stats latency_estimation
amberik1 Jun 17, 2022
a6ee00d
PEXHACK: revert gstvideorate to old version
havardgraff Oct 23, 2022
2e01bfd
gstleaks: FIXUP remove unused variable
havardgraff Oct 27, 2022
d56b7aa
gstamc: downgrading unsupported and unknowns messages to DEBUG
tbeloqui Oct 26, 2022
7472535
gstamc-codec-jni: added NULL check before unrefing codec->surface
tbeloqui Nov 1, 2022
180da6f
gstamcvideoenc: avoid flushing the encoder twice if we have already f…
tbeloqui Nov 1, 2022
0943cbc
ahc2src: logging camera error messages
tbeloqui Nov 3, 2022
a9fd896
ahc2src: add PROP_EXPOSURE_MODE stub to avoid error of not implementing
tbeloqui Nov 3, 2022
0e5b1fb
good/jitterbuffer: initialize SSRC on RTCP chain method
camilo-celis Nov 17, 2022
9995bb6
gstvalue/test: initialize unset string
camilo-celis Nov 17, 2022
3c7dcac
gstv4l2deviceprovider: return the device list in the same order of
tbeloqui Nov 21, 2022
8a36826
Media: Try to improve locking for gstvideoencoder
frederik-vestre-pexip Nov 21, 2022
09b8049
More videoenc lock fixes
frederik-vestre-pexip Nov 24, 2022
cb30324
gstvideorate: Fix of buffer duration.
amberik1 Dec 7, 2022
2de52d4
SCTP: build with invariants checks in
tbeloqui Dec 19, 2022
6f36269
SCTP: added null checks
tbeloqui Nov 28, 2022
cbff58d
SCTP: cleaned up code in gst_sctp_association_change_state
tbeloqui Nov 28, 2022
c173e47
SCTP: applied gst-indent
tbeloqui Nov 28, 2022
483e1f2
SCTP: ensure thread-safe access in gst_sctp_association_reset_stream
tbeloqui Nov 28, 2022
258c2a0
SCTP: access sctp_ass_sock with a lock in gst_sctp_association_send_data
tbeloqui Nov 28, 2022
fddc320
SCTP: removed manual counting of associations, use the hash table dir…
tbeloqui Nov 28, 2022
fda49d5
SCTP: replace g_object_bind_property with g_object_set
tbeloqui Dec 20, 2022
94d85da
Build MoltenVK for iOS and macOS
vadymmarkov Nov 25, 2022
1adde14
rtptwcc: create a separate debug category for rtptwcc
havardgraff Nov 30, 2022
0b1ba8d
rtptwcc: handle reordered packets within the same report-interval
havardgraff Nov 30, 2022
d60a9d6
rtptwcc: mimic chrome behavior in reporting reordered packets
havardgraff Dec 2, 2022
b9bf7fb
video-info: PEXHACK reduce warning levels for spammy log
havardgraff Dec 16, 2022
779bc8f
multiudpsink: use "current-time" not "running-time" for TWCC
havardgraff Dec 9, 2022
f1d9900
rtptwcc: big refactoring
havardgraff Dec 2, 2022
60f798b
rtptwcc: fixing leaks
tbeloqui Jan 4, 2023
ceea6d7
Revert "gstpad: PEXHACK: log chain(list)funcs that take longer than 1…
havardgraff Jan 23, 2023
d2d4c9f
SCTP: fixed scanbuild logic issues in user_mbuf.c
tbeloqui Jan 27, 2023
59fdbac
gst-plugins-base/playback: scanbuild fixes
tbeloqui Feb 6, 2023
0c04553
SCTP: refactor to fix encoder use-after-free bug
tbeloqui Feb 3, 2023
9729feb
rtptwcc: update with scan-build fixes
havardgraff Feb 3, 2023
1b0d273
rtptwcc: use the same size-per-packet as on the wire
havardgraff Feb 15, 2023
6a9c397
rtprtxsend: introduce stuffing-max-burst-packets and use padding
havardgraff Feb 14, 2023
729695c
funnel: only forward events on active pads
havardgraff Feb 28, 2023
c944289
Revert "rtpjitterbuffer: DTX implementation"
tbeloqui Mar 1, 2023
62afe0a
gstaudiodecoder: implemented DTX API
tbeloqui Feb 23, 2023
69e35cc
rtptwcc: fixed wrap-around bug in the tx feedback code
tbeloqui Mar 6, 2023
fd45849
rtpjitterbuffer: new packet spacing heuristic
Mar 16, 2023
ac8fe87
SCTP: do not assert on the decoders pad, as the association might be
tbeloqui Mar 21, 2023
e655834
SCTP: changes to handle usrsctp bugs
tbeloqui Mar 23, 2023
74f381c
SCTP: removed extra assertion on association id
tbeloqui Mar 24, 2023
a120437
SCTP: do not hold the association mutex when calling GstSctpAssociati…
tbeloqui Mar 29, 2023
ab2b82b
Revert "SCTP: do not hold the association mutex when calling GstSctpA…
tbeloqui Apr 3, 2023
3f0b4fd
rtpjitterbuffer: test for non-utf8 cname
havardgraff Apr 26, 2023
8a46c90
rtpvp8pay, rtpvp9pay: small refactor around PictureID
camilo-celis Apr 25, 2023
1a32a60
rtpopuspay: pass buffer offset to base_payload_push
w-miller Apr 21, 2023
8f0a4ad
rtpbasedepayload: set default buffer offset based on RTP timestamp
w-miller Apr 21, 2023
d9885dd
rtpbasedepayload: test: correct order of fields
camilo-celis May 4, 2023
63005d8
vp8pay: dont store partition_size
camilo-celis May 24, 2023
78a6af4
vp8pay: introduce new property parse-frame
camilo-celis May 24, 2023
93c956e
vp8pay: add additional comments around bitstream parsing
camilo-celis May 24, 2023
17ab430
vp8pay: use DELTA_UNIT buffer flag know a frame type
camilo-celis May 24, 2023
92e2997
rtpvp9pay: add parse-frames property
w-miller May 24, 2023
19cfd7c
check: compile libcompat when building statically
havardgraff Jan 31, 2023
cb66fcc
gstaudiodecoder: FIXUP implemented DTX API
tbeloqui Feb 23, 2023
a1f4cda
rtpsession: make an action-signal for requesting TWCC stats
havardgraff Mar 7, 2023
fcbdd40
rtptwcc: FIXUP for twcc-reorder patch
havardgraff Jun 11, 2023
36c5a06
pexhack: do not use macos-bison-binary subproject
MichaelOultram-pexip Mar 9, 2023
7415949
ahc2src: add proper GstVideoMeta to the buffers
MishaBaranov Mar 8, 2023
e9ea58d
glshader: unlock before notify, and use dispose instead of finalize
havardgraff Mar 20, 2023
a3b419c
glupload: use attached buffer-alignment when uploading a VideoFrame
havardgraff Mar 20, 2023
b50e077
amcvideoenc: default to -1 as I_FRAME_INTERVAL_DEFAULT
havardgraff Apr 12, 2023
3092c8c
amcvideoenc: various fixes
havardgraff Apr 18, 2023
dd72476
gstamc: various fixes
havardgraff Jun 2, 2023
b9bfbc5
gstreamer-full-static: fix plugins option parse for Windows
tbeloqui Apr 24, 2023
a2caee0
netsim: introduce throttling
havardgraff Feb 22, 2023
877a349
netsim: improvements to the token bucket algorithm for limiting bw
havardgraff May 8, 2023
a9271e8
gst: use GST_API to properly import/export functions in gstevent and …
tbeloqui May 4, 2023
2aa47be
rtpvp8pay: don't payload partitions when forced not to parse the frame
camilo-celis Jul 4, 2023
86d1d53
audiodecoder: do not account for upstream latency when producing DTX …
tbeloqui Jul 11, 2023
0c93862
gstahcsrc: override GST_PHOTOGRAPHY_PROP_EXPOSURE_MODE property
tbeloqui Jul 12, 2023
0f38a87
gstamcvideoenc: fixed minimum value for PROP_I_FRAME_INTERVAL_FLOAT
tbeloqui Jul 12, 2023
aa35370
applemedia/vtenc: reset the encoder session if we fail to encode a frame
tbeloqui Aug 29, 2023
493bd28
applemedia/vtenc: fixed deadlock on reset stream
tbeloqui Aug 29, 2023
a4b2b14
rtpvp9pay: extract resolution from sink caps (#9)
camilo-celis Aug 30, 2023
5505cfe
gl+vulkan/cocoa: rename _invoke_on_main to allow gstreamer-full to build
tbeloqui Aug 30, 2023
f14ef2f
vulkan: fix building for simulator
vadymmarkov Aug 31, 2023
ef66754
vulkan: set default value for needs_exe_wrapper external property
vadymmarkov Aug 31, 2023
d9b6e73
vulkan: implemented set_window_handle in gstvkwindow_cocoa
tbeloqui Sep 5, 2023
d6fcf4b
vulkan: removed extra log
tbeloqui Sep 6, 2023
7728fae
vulkan: gstvkwindow_cocoa use _gst_vulkan_cocoa_invoke_on_main rather
tbeloqui Sep 6, 2023
8cdd248
vulkan: fixed main thread checker warning
tbeloqui Sep 7, 2023
d1db003
gstaes: fixed missing symbols and rework on dependencies
tbeloqui Sep 11, 2023
3ce91a7
gstvkwindow: do not depend on close signal handlers to close the window
tbeloqui Sep 11, 2023
3b42686
winks: rework on devices
tbeloqui Sep 12, 2023
de8447b
SCTP: acquire lock in gst_sctp_association_incoming_packet()
tbeloqui Aug 11, 2023
cfcc705
SCTP: removing usrsctp_shutdown() call, usrsctp_close() should have
tbeloqui Jun 22, 2023
da7df33
SCTP: restructure usrsctp to live aside with dcsctp
tbeloqui Sep 24, 2023
abc12ab
dcSCTP: initial commit
tbeloqui Sep 24, 2023
b98e07d
first meson lib version
tbeloqui Sep 24, 2023
6b945e4
removed all unit tests
tbeloqui Sep 24, 2023
a951ab7
removed all BUILD.gn
tbeloqui Sep 24, 2023
f8e8529
removed mocks
tbeloqui Sep 24, 2023
c4c8fd2
removed DEPS
tbeloqui Sep 24, 2023
98d1876
removed fuzzers
tbeloqui Sep 24, 2023
e05f45d
updates to meson
tbeloqui Sep 24, 2023
daea53f
moved dcsctp lib into net/dcsctp
tbeloqui Sep 24, 2023
adf6651
started transport implementation
tbeloqui Sep 25, 2023
d204c51
first building version
tbeloqui Sep 27, 2023
206f648
started transport impl
tbeloqui Sep 27, 2023
1bd8e7a
removed more tests
tbeloqui Sep 27, 2023
a00e360
replacing usrsctp with dcsctp
tbeloqui Sep 27, 2023
b264084
started to re-implement the sctpassociation around dcSCTP
tbeloqui Sep 27, 2023
9c97874
base socket skeleton
tbeloqui Sep 27, 2023
7d7e832
wip on socket + association
tbeloqui Sep 27, 2023
9ab1ccd
sctpassociation: implemented gst_sctp_association_incoming_packet
tbeloqui Sep 27, 2023
743d551
sctpassociation: continue impl
tbeloqui Sep 27, 2023
71e1e55
sctpassociation+socket: more wip
tbeloqui Sep 27, 2023
85cff5c
more wip
tbeloqui Sep 27, 2023
bad7b7f
moved sctpsocket layer into dcsctp lib itself
tbeloqui Sep 27, 2023
0e567d3
continue with socket impl
tbeloqui Sep 28, 2023
8d885a8
restoring plugin build
tbeloqui Sep 28, 2023
5f574b3
make the decoder copy data for now
tbeloqui Sep 28, 2023
5b2de73
sctpenc: log state as a string
tbeloqui Sep 28, 2023
9da94b0
first working version!
tbeloqui Sep 29, 2023
b620721
updated license info
tbeloqui Sep 29, 2023
f2aaab7
SCTP: keep a manual count of references, do not depend on association…
tbeloqui Oct 2, 2023
4eaac80
added SctpSocket_Options
tbeloqui Oct 2, 2023
4b4889e
sctpassociation:
tbeloqui Oct 2, 2023
253fcd1
gst_sctp_association_send_data: set bytes_sent
tbeloqui Oct 3, 2023
d29c712
sctpassociation: downgraded logs from WARN to INFO
tbeloqui Oct 3, 2023
a6f19cd
sctpassociation: logging send status on error
tbeloqui Oct 3, 2023
05903a9
sctp: fixed logging warnings and moved to use the object for better d…
tbeloqui Oct 6, 2023
ab08edb
sctpassociation: fixed options setup
tbeloqui Oct 6, 2023
2b2460a
sctp: fixup part 2
tbeloqui Oct 6, 2023
9c05dd5
Use meson built in support for dependency to threads lib
JohanSternerup Oct 6, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,6 @@ subprojects/*/
!subprojects/macos-bison-binary
!subprojects/win-flex-bison-binaries
!subprojects/win-nasm

# from gdb Python helper scripts
__pycache__
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
[submodule "subprojects/gst-integration-testsuites/medias"]
path = subprojects/gst-integration-testsuites/medias
url = https://gitlab.freedesktop.org/gstreamer/gst-integration-testsuites.git
2 changes: 0 additions & 2 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,6 @@ subprojects = [
if build_system == 'windows'
subproject('win-flex-bison-binaries')
subproject('win-nasm')
elif build_system == 'darwin'
subproject('macos-bison-binary')
endif

orc_option = get_option('orc')
Expand Down
3 changes: 2 additions & 1 deletion scripts/generate_init_static_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import argparse
import os
import platform
from string import Template

TEMPLATE = Template('''
Expand Down Expand Up @@ -92,7 +93,7 @@ def process_features(features_list, plugins, feature_prefix):
giomodules_declaration = []
giomodules_registration = []

if ',' in options.plugins or ':' in options.plugins:
if ',' in options.plugins or (platform.system() != 'Windows' and ':' in options.plugins):
print("Only ';' is allowed in the list of plugins.")
exit(1)

Expand Down
1 change: 0 additions & 1 deletion subprojects/gst-integration-testsuites/medias
Submodule medias deleted from 966350
10 changes: 6 additions & 4 deletions subprojects/gst-plugins-bad/ext/aes/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,22 @@ aes_sources = [
]

aes_cargs = []
aes_dep = dependency('openssl', version : '>= 1.1.0', required : get_option('aes'))
if aes_dep.found()
openssl_dep = dependency('openssl', version : '>= 1.1.0', required : get_option('aes'))
if openssl_dep.found()
aes_cargs += ['-DHAVE_OPENSSL']
else
subdir_done()
endif

winsock2_dep = cc.find_library('ws2_32', required : false)
gst_aes_deps = [gstpbutils_dep, gstvideo_dep, openssl_dep, winsock2_dep, gio_dep, libm]

gstaes = library('gstaes',
aes_sources,
c_args : gst_plugins_bad_args + aes_cargs,
link_args : noseh_link_args,
include_directories : [configinc],
dependencies : [gstpbutils_dep, gstvideo_dep,
aes_dep, gio_dep, libm],
dependencies : gst_aes_deps,
install : true,
install_dir : plugins_install_dir,
)
Expand Down
301 changes: 301 additions & 0 deletions subprojects/gst-plugins-bad/ext/opencv/gsthomography.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,301 @@
/*
* GStreamer
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* Alternatively, the contents of this file may be used under the
* GNU Lesser General Public License Version 2.1 (the "LGPL"), in
* which case the following provisions apply instead of the ones
* mentioned above:
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/

#ifdef HAVE_CONFIG_H
# include <config.h>
#endif

#include "gsthomography.h"
#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2//calib3d/calib3d.hpp>

GST_DEBUG_CATEGORY_STATIC (gst_homography_debug);
#define GST_CAT_DEFAULT gst_homography_debug

/* Filter signals and args */
enum
{
/* FILL ME */
LAST_SIGNAL
};

enum
{
PROP_0,
};

/* the capabilities of the inputs and outputs.
*
* describe the real formats here.
*/
static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("RGB"))
);

static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("RGB"))
);

G_DEFINE_TYPE (GstHomography, gst_homography, GST_TYPE_OPENCV_VIDEO_FILTER);

static void gst_homography_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
static void gst_homography_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);

static GstFlowReturn gst_homography_transform (GstOpencvVideoFilter * filter,
GstBuffer * buf, IplImage * img, GstBuffer * outbuf, IplImage * outimg);

static void
gst_homography_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
GstHomography *filter = GST_HOMOGRAPHY (object);
(void)filter;
(void)value;

switch (prop_id) {
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}

static void
gst_homography_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
GstHomography *filter = GST_HOMOGRAPHY (object);
(void)filter;
(void)value;

switch (prop_id) {
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}

static GstCaps *
gst_homography_transform_caps (GstBaseTransform * trans,
GstPadDirection dir, GstCaps * caps, GstCaps * filter)
{
GstCaps * ret = gst_caps_copy (caps);
guint i;

GST_DEBUG_OBJECT (trans,
"transforming caps %"GST_PTR_FORMAT" filter %"GST_PTR_FORMAT" in direction %s",
caps, filter, (dir == GST_PAD_SINK) ? "sink" : "src");

for (i = 0; i < gst_caps_get_size (ret); ++i) {
GstStructure * s = gst_caps_get_structure (ret, i);

gst_structure_set (s,
"width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
"height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
}

if (!gst_caps_is_empty (ret) && filter) {
GstCaps *tmp = gst_caps_intersect_full (filter, ret,
GST_CAPS_INTERSECT_FIRST);
gst_caps_replace (&ret, tmp);
gst_caps_unref (tmp);
}

GST_DEBUG_OBJECT (trans, "returning caps %" GST_PTR_FORMAT, ret);

return ret;
}


static float
euclidean_distance (CvPoint2D32f * a, CvPoint2D32f * b)
{
CvPoint2D32f d;
d.x = a->x - b->x;
d.y = a->y - b->y;

return sqrtf (d.x * d.x + d.y * d.y);
}

static GstCaps *
gst_homography_fixate_caps (GstBaseTransform * trans,
GstPadDirection dir, GstCaps * caps, GstCaps * othercaps)
{
GstHomography *filter = GST_HOMOGRAPHY (trans);
GstCaps * ret;
GstStructure * out_s;

g_return_val_if_fail (gst_caps_is_fixed (caps), NULL);

GST_DEBUG_OBJECT (filter,
"fixating othercaps %" GST_PTR_FORMAT " in direction %s based on %"GST_PTR_FORMAT,
othercaps, (dir == GST_PAD_SINK) ? "sink" : "src", caps);

ret = gst_caps_intersect (othercaps, caps);
if (gst_caps_is_empty (ret)) {
gst_caps_unref (ret);
ret = gst_caps_ref (othercaps);
}

ret = gst_caps_make_writable (ret);
out_s = gst_caps_get_structure (ret, 0);

float top = euclidean_distance (&filter->src_points[0], &filter->src_points[1]);
float right = euclidean_distance (&filter->src_points[1], &filter->src_points[2]);
float bottom = euclidean_distance (&filter->src_points[2], &filter->src_points[3]);
float left = euclidean_distance (&filter->src_points[3], &filter->src_points[0]);

//float aspect_ratio = (top + bottom) / 2.0f + (right + left) / 2.0f;

gint max_width = (gint)round (MAX (top, bottom));
gint max_height = (gint)round (MAX (right, left));

gst_structure_set (out_s,
"width", G_TYPE_INT, max_width,
"height", G_TYPE_INT, max_height,
NULL);

return ret;
}

static GstFlowReturn
gst_homography_transform (GstOpencvVideoFilter * base, GstBuffer * buf,
IplImage * img, GstBuffer * outbuf, IplImage * outimg)
{
GstHomography *filter = GST_HOMOGRAPHY (base);

CvPoint2D32f dst_points[4];

dst_points[0].x = 0;
dst_points[0].y = 0;
dst_points[1].x = outimg->width - 1;
dst_points[1].y = 0;
dst_points[2].x = outimg->width - 1;
dst_points[2].y = outimg->height - 1;
dst_points[3].x = 0;
dst_points[3].y = outimg->height - 1;

CvMat src_mat = cvMat (1, 4, CV_32FC2, &filter->src_points);
CvMat dst_mat = cvMat (1, 4, CV_32FC2, &dst_points);

double H[9];
CvMat res_mat = cvMat (3, 3, CV_64F, H);

cvFindHomography(&src_mat, &dst_mat, &res_mat, CV_RANSAC);

cvWarpPerspective (img, outimg, &res_mat);

return GST_FLOW_OK;
}


/* initialize the homography's class */
static void
gst_homography_class_init (GstHomographyClass * klass)
{
GObjectClass *gobject_class = (GObjectClass *) klass;
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
GstBaseTransformClass *trans_class = (GstBaseTransformClass *) klass;
GstOpencvVideoFilterClass *gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass;

gobject_class->set_property = gst_homography_set_property;
gobject_class->get_property = gst_homography_get_property;

trans_class->transform_caps = GST_DEBUG_FUNCPTR (gst_homography_transform_caps);
trans_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_homography_fixate_caps);

gstopencvbasefilter_class->cv_trans_func = gst_homography_transform;

gst_element_class_set_static_metadata (element_class,
"homography",
"Filter/Effect/Video",
"Performs homography.",
"Michael Sheldon <[email protected]>");

gst_element_class_add_static_pad_template (element_class, &src_factory);
gst_element_class_add_static_pad_template (element_class, &sink_factory);
}

/* initialize the new element
* instantiate pads and add them to element
* set pad calback functions
* initialize instance structure
*/
static void
gst_homography_init (GstHomography * filter)
{
filter->src_points[0].x = 740;
filter->src_points[0].y = 187;

filter->src_points[1].x = 1043;
filter->src_points[1].y = 165;

filter->src_points[2].x = 1115;
filter->src_points[2].y = 604;

filter->src_points[3].x = 771;
filter->src_points[3].y = 616;

gst_opencv_video_filter_set_in_place (GST_OPENCV_VIDEO_FILTER_CAST (filter),
FALSE);
}


/* entry point to initialize the plug-in
* initialize the plug-in itself
* register the element factories and other features
*/
gboolean
gst_homography_plugin_init (GstPlugin * plugin)
{
/* debug category for fltering log messages */
GST_DEBUG_CATEGORY_INIT (gst_homography_debug, "homography",
0, "Performs homography on videos and images");

return gst_element_register (plugin, "homography", GST_RANK_NONE,
GST_TYPE_HOMOGRAPHY);
}
Loading