Mathieu Duponchelle
4abb389269
socket based sources: close socket stream on unprepare
...
the socket was otherwise leaked
2020-02-04 20:09:27 +01:00
Sebastian Dröge
1e778e9827
Update for Seqnum/GroupId API changes
2020-01-25 01:21:22 +02:00
Mathieu Duponchelle
c50aa09034
threadshare: fix latency query handlers
...
Returning 0 as the max latency in those sources is incorrect,
and may lead to sinks incorrectly complaining about insufficient
buffering elements.
Reproduce with:
gst-launch-1.0 ts-udpsrc port=50000 address=127.0.0.1 \
caps="application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMA, payload=(int)8" ! \
rtppcmadepay ! alawdec ! autoaudiosink
gst-launch-1.0 audiotestsrc do-timestamp=true samplesperbuffer=400 ! \
alawenc ! rtppcmapay max-ptime=50000000 min-ptime=50000000 ! \
udpsink host=127.0.0.1 port=50000
Logs:
Not enough buffering available for the processing deadline of 0:00:00.020000000,
add enough queues to buffer 0:00:00.020000000 additional data.
Shortening processing latency to 0:00:00.000000000.
This then causes glitches, there are many other ways for the problems
to manifest.
2020-01-23 15:36:22 +00:00
Mathieu Duponchelle
decc1e2029
threadshare: make live sources return NoPreroll from PlayingToPaused
...
Not returning NoPreroll in that transition causes downstream sinks
to wait for preroll forever.
Reproduce with:
gst-launch-1.0 audiotestsrc ! udpsink host=127.0.0.1 port=50000
gst-launch-1.0 ts-udpsrc address=127.0.0.1 port=50000 ! fakesink
ctrl + C in the receiver pipeline -> hangs forever
2020-01-23 15:56:11 +01:00
François Laignel
7a4fea8669
ts-udpsrc: prepare socket immediately
...
Now that we can `Context::enter`, it is no longer necessary to spawn
a `Future` to prepare the `UdpSocket` and beneficiate from the
`Context`'s IO driver.
2020-01-16 00:44:48 +01:00
François Laignel
a15d60105b
ts: fix FlushStart / FlushStop events handling
2020-01-16 00:44:45 +01:00
François Laignel
3eed2f69d9
ts: have block_on panic if running on a Context thread
2020-01-16 00:18:16 +01:00
François Laignel
0221524a10
Update to tokio release 0.2.5 + throttling
2019-12-21 08:56:43 +01:00
François Laignel
e8f5191ee7
ts: Pad wrapper for async processing
...
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/merge_requests/170#note_276334
and https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/merge_requests/204
2019-12-21 08:56:43 +01:00
François Laignel
8eec141517
threadsharing: migrate to async/await and tokio 0.2.0-alpha.6
...
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/merge_requests/164
2019-12-19 20:44:00 +01:00
Sebastian Dröge
1ae57967ae
Move debug categories from an instance member to lazy_static
...
Simplifies the code a bit and less state to carry around.
2019-10-31 23:35:11 +01:00
Sebastian Dröge
04bc1a6b65
ts-udpsrc: Remove redundant semicolons
2019-10-04 12:06:47 +03:00
François Laignel
0e11ac87d3
Update for new {Value, StructureRef}::get
signature
...
See https://github.com/gtk-rs/glib/pull/513
and https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/merge_requests/310
2019-08-13 15:29:28 +02:00
Ray Tiley
ccd607707d
threadsharing/udpsrc: Fix build on Windows
2019-08-08 10:32:19 -04:00
Sebastian Dröge
caeff6f968
threadshare/udpsrc: Use MaybeUninit instead of mem::zeroed()
2019-07-10 17:20:45 +03:00
Sebastian Dröge
b4efa42d8f
Fix various clippy warnings
2019-07-04 18:56:33 +03:00
Sebastian Dröge
50037325ff
Explicitly add dyn
keyword to trait objects
...
Trait objects without are deprecated with the latest nightly and this
makes it more clear that we're doing dynamic dispatch anyway.
2019-06-06 09:26:02 +03:00
Guillaume Desmottes
53e530f7db
port all plugins to new register API
...
Rank is now an enum rather than a u32
2019-06-04 14:35:10 +05:30
Sebastian Dröge
2fc89ced15
Fix various compiler warnings
2019-05-28 04:43:54 +02:00
Sebastian Dröge
9bccc50add
Update for gstreamer-rs API changes
2019-05-24 13:09:32 +02:00
Sebastian Dröge
129f6a28b0
Update for gstreamer-rs/glib/etc API changes and add more explicit Some()
2019-04-16 10:10:16 +03:00
Abdul Rehman
2f3139dea2
ts-udpsrc: Add retrieve-sender-address property
...
Fixes #41
2019-03-13 21:07:53 +05:00
Sebastian Dröge
aa325ea98d
Fix various clippy warnings
2019-02-21 20:12:09 +02:00
Sebastian Dröge
01911b0ca7
ts-udpsrc: Fix build on Windows
2019-02-07 10:31:47 +02:00
Sebastian Dröge
a2582afed3
ts-udpsrc: Fix build on Windows
...
By disabling socket sharing there. This is blocked by PRs to mio/tokio
currently.
2019-02-07 10:31:47 +02:00
Sebastian Dröge
9db02cb55e
Fixes for gstreamer-rs API changes
...
Creating pad templates can return None now.
2019-01-29 17:33:06 +02:00
François Laignel
e930133bdf
Update for gstreamer-rs MR 200
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/merge_requests/200
2019-01-12 18:00:04 +01:00
Sebastian Dröge
f374d7fedf
Remove unneeded ObjectSubclass::new() functions where not needed
2018-12-19 13:23:02 +02:00
Sebastian Dröge
fb741f26f3
Update for glib property API changes
2018-12-18 11:23:45 +02:00
Sebastian Dröge
e64a9b4a1a
Port threadshare plugin to new subclassing API
2018-12-06 13:03:04 +02:00
Sebastian Dröge
4d87c11293
Run everything through latest rustfmt again
2018-12-04 19:01:40 +02:00
Sebastian Dröge
3026e56cfb
ts-udpsrc: Creating a gio::Socket from a raw fd/socket is unsafe
...
So put it into an unsafe block.
2018-12-03 13:02:35 +02:00
Sebastian Dröge
9750195caa
ts-udpsrc: Dup the socket so that both tokio and GIO can take ownership of it
...
Otherwise both would be closing the same socket, which a) breaks the
second user of the socket if any and b) could on the second close cause
a completely unrelated socket to be closed.
Windows part of the code is untested.
2018-11-30 19:39:39 +02:00
Sebastian Dröge
40426a2cf6
Use new boxed type support from the GLib bindings
2018-11-29 21:01:02 +02:00
Sebastian Dröge
ab08cbd412
ts-udpsrc: Implement socket and used-socket properties like in udpsrc
2018-11-13 14:13:23 +02:00
Sebastian Dröge
73a7be5ef5
Run gst-plugin-threadshare through cargo fmt
2018-11-05 13:43:38 +02:00
Sebastian Dröge
6c32b702f0
Fix build with gst-plugin-rs API changes
2018-11-05 13:43:11 +02:00
Sebastian Dröge
fbc0a04cff
threadshare: Run everything through rustfmt again
2018-11-05 13:36:47 +02:00
Sebastian Dröge
55f9b84008
threadshare: Drop support for multi-threaded runtime as it is consistently slower
...
And switch to the new built-in spawning support of CurrentThread
2018-11-05 13:36:47 +02:00
LEE Dongjun
df86b67117
threadshare: Rename udpsocket file to socket file
2018-11-05 13:36:47 +02:00
LEE Dongjun
1ac85c91e5
threadshare: Generalize UdpSocket to Socket.
2018-11-05 13:36:47 +02:00
Sebastian Dröge
8cdb47e61e
threadshare: Also set reuse address/port settings for non-multicast sockets
...
And share more code between unicast/multicast socket creation
2018-11-05 13:36:47 +02:00
Sebastian Dröge
9adf663073
threadshare: Add property to udpsrc for allowing port/address reuse
2018-11-05 13:36:47 +02:00
Sebastian Dröge
3a8ce35e60
threadshare: Revert "Push io-context sharing event before stream-start and anything else"
...
This reverts commit 083948e8ea1471f1d8a013a225200729cfcef2a9.
This has no effect because core is reordering events to have
stream-start and others always first.
2018-11-05 13:36:47 +02:00
Sebastian Dröge
135ec5ee7d
threadshare: Push io-context sharing event before stream-start and anything else
2018-11-05 13:36:47 +02:00
Sebastian Dröge
be0403ce24
threadshare: Switch to gobject-subclass
2018-11-05 13:36:47 +02:00
Sebastian Dröge
30b2df753c
threadshare: Set element flags correctly for sources and sinks
...
And let proxysink post EOS events
2018-11-05 13:36:20 +02:00
Sebastian Dröge
099093e9be
threadshare: Refactor pending future draining to get rid of some duplicated code
2018-11-05 13:36:20 +02:00
Sebastian Dröge
a9d979a988
threadshare: Use catch_panic_pad_function from gst-plugin crate
2018-11-05 13:36:20 +02:00
Sebastian Dröge
88933790e7
threadshare: Add FIXME comment for refactoring opportunities
2018-11-05 13:36:20 +02:00