- 08 Jul, 2021 1 commit
-
-
Mathieu Duponchelle authored
Part-of: <!1024>
-
- 05 May, 2021 1 commit
-
-
Instead of the deprecated gst_element_get_request_pad. Part-of: <!958>
-
- 29 Mar, 2021 1 commit
-
-
Stéphane Cerveau authored
Split plugin into features including dynamic types which can be indiviually registered during a static build. More details here: gst-build!199 !661 Part-of: <gst-plugins-good!876>
-
- 16 Dec, 2020 1 commit
-
-
Might not drain correctly Part-of: <!838>
-
- 11 Dec, 2020 1 commit
-
-
Jan Schmidt authored
!798 introduced a check in the need-new-fragment logic to avoid starting a new fragment unless there has been some data on the reference stream, but the check is done against the number of bytes that have been received on the input, not the number that were released for output into the current fragment. Fix the check to remember and test against bytes that have been sent for output. This also fixes a problem where starting a new fragment fails to request a new filename from the format-location signal. Part-of: <!833>
-
- 08 Dec, 2020 2 commits
-
-
Jan Schmidt authored
When posting fragment-opened and fragment-closed messages, put a debug statement in the logs Part-of: <!833>
-
Jan Schmidt authored
Change some g_assert into element errors so that they can be caught and the pipeline shut down. Part-of: <!833>
-
- 31 Oct, 2020 5 commits
-
-
Add a new state for ending the overall stream, and use it to decide whether to pass the final EOS message up the bus instead of dropping it. Fixes a small race that makes the testsuite sometimes not generate the last fragment(s) sometimes because the wrong EOS gets allowed through too early. Part-of: <!798>
-
Using the element state lock to avoid splitmuxsink shutting down while doing element manipulations can lead to a deadlock on shutdown if a fragment switch happens at exactly the wrong moment. Use a private mutex and a shutdown boolean instead. Part-of: <!798>
-
If a pad gets into the check_completed_gop method and then the underlying conditions change on the reference context, things could get stuck in a busy loop when the context should instead jump back out and wait for more data. Part-of: <!798>
-
Re-enable forwarding EOS messages from fragments that are completing asynchronously, so that splitmuxsink itself won't go EOS until they are complete. This was disabled to work around a bug in core that is fixed in gstreamer!683 Part-of: <!798>
-
If there has been no bytes from the reference stream muxed into the current fragment, then time can't have advanced, there's no GOP... this fragment would be broken or empty, so wait for some data on the reference buffer. Part-of: <!798>
-
- 09 Sep, 2020 1 commit
-
-
Mathieu Duponchelle authored
- Release the split mux lock while removing the probes - Flush the sinkpad to unblock other pads - Turn check_completed_gop into a do while statement, when waking up we want to recheck whether the current GOP is ready for sending Part-of: <!719>
-
- 04 Aug, 2020 1 commit
-
-
* Trying to disconnect a stream from a running splitmuxsink by flushing it results in the FLUSH_START blocking in the stream queue's gst_pad_pause_task because the flush did not unblock complete_or_wait_on_out, so add a check for ctx->flushing there. * Add a GST_SPLITMUX_BROADCAST_INPUT so check_completed_gop notices flushing changed and the incoming push is unblocked. * Pass the FLUSH_STOP along to the muxer without waiting. Part-of: <!687>
-
- 26 Jun, 2020 1 commit
- 25 Jun, 2020 1 commit
-
-
Sebastian Dröge authored
Part-of: <!644>
-
- 20 Apr, 2020 1 commit
-
-
Seungha Yang authored
The calculated threshold for timecode might be varying depending on "max-size-timecode" and framerate. For instance, with framerate 29.97 (30000/1001) and "max-size-timecode=00:02:00;02", every fragment will have identical number of frames 3598. However, when "max-size-timecode=00:02:00;00", calculated next keyframe via gst_video_time_code_add_interval() can be different per fragment, but this is the nature of timecode. To compensate such timecode drift, we should keep track of expected timecode of next fragment based on observed timecode.
-
- 19 Apr, 2020 1 commit
-
-
Seungha Yang authored
In case we cannot rely on max-size-timecode for split decision, post error instead of crashing
-
- 15 Apr, 2020 2 commits
-
-
Sebastian Dröge authored
If the start of the GOP is >= the requested running time, put it into a new fragment. That is, split-at-running-time would always ensure that a split happens as early as possible after the given running time. Previously it was comparing against the current incoming timestamp, which does not tell us what we actually want to know as it has no direct relation to the GOP start/end.
-
Sebastian Dröge authored
If we get a keyframe exactly at the requested running time we would only split on the next keyframe afterwards due to wrong usage of > vs. >=.
-
- 03 Apr, 2020 1 commit
-
-
Seungha Yang authored
splitmuxsink should requst keyframe depending on configured threshold and previously requested time in order to avoid too many keyframe request.
-
- 25 Mar, 2020 2 commits
-
-
Seungha Yang authored
The queued time includes the duration of the last queued frame (i.e., new keyframe) so the condition check should not be inclusive. Note that the new fragment will be cut excluding the last frame and therefore if the condition is inclusive way, the fragment might have one frame shorter duration for all keyframe stream such as jpeg or all-inter video streams.
-
Seungha Yang authored
Since the commit 94bb76b6, splitmuxsink will split fragments based on queued time and the threshold of that. So don't need to store the next timecode for split decision.
-
- 24 Mar, 2020 2 commits
-
-
Seungha Yang authored
The change of various criteria for split decision while muxing is on progress wouldn't work well as expected.
-
Seungha Yang authored
Not only the requested keyframe time, the queued size should be a criterion for the split decision of timecode based mode (same as max-size-time based split case).
-
- 19 Mar, 2020 2 commits
-
-
Reset the splitmuxsink completely when changing states so that it can be reused. Fixes gst-plugins-bad#1241
-
Split the decision for keyframe request and fragmentation in order to ensure periodic keyframe request.
-
- 29 Jan, 2020 1 commit
-
-
If not configuring the sinks via the "location" property this can be useful to know for which sink the fragment was actually opened/closed, especially if finalization of the fragments is happening asynchronously.
-
- 27 Jan, 2020 1 commit
-
-
Sebastian Dröge authored
-
- 06 Jan, 2020 1 commit
-
-
Seungha Yang authored
GValue might have null object. (gst-inspect-1.0:10304): GStreamer-CRITICAL ... gst_object_ref_sink: assertion 'object != NULL' failed
-
- 13 Dec, 2019 1 commit
-
-
Applications might handle locations and generally configuration of the sink by themselves instead of having splitmuxsink set the location on the sink. Nonetheless it makes sense to increment the fragment_id that is passed to the signal so that applications know which fragment is requested.
-
- 05 Dec, 2019 1 commit
-
-
Allow to change the fragment-id start index.
-
- 18 Nov, 2019 1 commit
-
-
An application might try to access splitmuxsink from sync message handler by g_object_{get,set} which takes lock also. In general, we don't take lock around message handler.
-
- 07 Nov, 2019 1 commit
-
-
Stéphane Cerveau authored
fakesink does not support "location" property and was generating a warning.
-
- 05 Oct, 2019 1 commit
-
-
- 06 Sep, 2019 3 commits
-
-
Add a property which explicitly maps splitmuxsink pads to the muxer pads they should connect to, overriding the implicit logic that tries to match pads but yields arbitrary names.
-
When running in async-finalize mode, request new pads from the muxer using the same names as old pads, instead of letting the muxer assign new ones based on the pad template name.
-
Add the G_SIGNAL_ACTION flag to the split-* signals on splitmuxsink, and make some improvements to their docstrings
-
- 15 Jul, 2019 1 commit
-
-
The primary video stream is used to select fragment cut points at keyframe boundaries. Auxilliary video streams may be broken up at any packet - so fragments may not start with a keyframe for those streams.
-
- 13 Jun, 2019 1 commit
-
-
Mathieu Duponchelle authored
It's currently not made mandatory by aggregator, but it might eventually be, and is more consistent behaviour See gst-plugins-bad#977
-