Edward Hervey
e276d3c836
decodebin3: Protect input freeing with the input lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784 >
2022-11-16 14:01:46 +00:00
Edward Hervey
f091d2445f
decodebin3: Refactor parsebin output handling
...
* Instead of creating temporary `PendingPad` structures, always create a
DecodebinInputStream for every pad of parsebin
* Remove never used `pending_stream` field from DecodebinInputStream
* When unblocking a given DecodebinInput (i.e. wrapping a parsebin), also make
sure that other parsebins from the same GstStreamCollection are unblocked
since they come from the same source
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784 >
2022-11-16 14:01:46 +00:00
Edward Hervey
d14c14dcc4
decodebin3: Store GstStreamCollection from upstream
...
If upstream provides stream collection, use/store them as soon as possible
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784 >
2022-11-16 14:01:46 +00:00
Aleksandr Slobodeniuk
89fc20931b
decodebin3: allow to call "dispose" multiple times
...
https://docs.gtk.org/gobject/concepts.html#reference-counts-and-cycles
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3135 >
2022-10-10 10:24:52 +00:00
Aleksandr Slobodeniuk
67caa45a4c
decodebin3: fix mutex leaks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3126 >
2022-10-06 14:25:27 +00:00
Jan Schmidt
aae7b5416c
decodebin3: Make sure event is writable before modifying
...
Make sure we're operating on a private copy of an event when
modifying it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3107 >
2022-10-03 16:40:49 +00:00
Jan Schmidt
e5828c8295
decodebin3: Don't lose a ref on EOS event
...
Make sure not to give away the ref on the final EOS
event for which the probe handler is returning GST_PAD_PROBE_REMOVE
when pushing the event manually.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3107 >
2022-10-03 16:40:49 +00:00
Edward Hervey
c22ddbc187
decodebin3: Fix memory issues with active selection list
...
This had a couple of issues:
* The backing strings (from GstStream) could disappear
* The actual list wasn't properly reset/freed when decodebin3 was re-used
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3083 >
2022-09-27 16:21:25 +02:00
James Hilliard
f34ee92999
decodebin3: fix EOS event sequence
...
See docs:
https://gstreamer.freedesktop.org/documentation/additional/design/seqnums.html?gi-language=c#seqnums-sequence-numbers
Per docs:
When a sink element receives an EOS event and creates a new EOS
message to post, it should copy the seqnum from the event to the
message because the EOS message is a consequence of the EOS event
being received.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2588 >
2022-06-15 07:19:30 +00:00
Edward Hervey
4be8b1b0a1
playbin3: Don't use unknown types for default selection
...
When creating a fallback default selection from a collection, don't attempt to
use unknown stream types
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2353 >
2022-05-04 07:26:39 +00:00
Guillaume Desmottes
e482b995fb
decodebin3: fix collection leak
...
get_merged_collection() returns an owned stream collection and was
leaked in the else block.
Fix leak when running:
GST_TRACERS=leaks GST_DEBUG="GST_TRACER:7,leaks:6" gst-play-1.0 --use-playbin3 test.mkv
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/954 >
2022-04-18 09:41:12 +03:00
Edward Hervey
ed5db9bce7
decodebin3: Don't duplicate stream selections
...
Make sure that the requested stream selection isn't identical to the current
one. If that's the case, just carry on as usual.
This avoids multiple `streams-selected` posting ... when the selection didn't
change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2185 >
2022-04-16 00:56:14 +00:00
Edward Hervey
7eea928dd0
decodebin3: Handle upstream selection
...
Detect if upstream handles stream-selection, and if so bypass all stream
selection handling (streams are forwarded as-is).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905 >
2022-03-30 14:30:54 +00:00
Edward Hervey
4a436b5c14
decodebin3: Reset parsebin when new caps arrive
...
Check if parsebin can handle the new caps, and if not reset it so that it can
reconfigure itself for the new stream format.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900 >
2022-03-11 15:02:02 +01:00
Edward Hervey
c658e29d09
decodebin3: Convert checks to assertions
...
"decodebin.input" is never resetted and should always be present, therefore make
it an assertion check
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900 >
2022-03-11 15:02:02 +01:00
Thibault Saunier
2fd28195ca
Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir
2021-09-24 16:13:26 -03:00