Sebastian Dröge
241a26631d
splitmuxsink: Warn when calculating the next fragment time in timecode mode fails
...
But only if timecode mode is enabled as it will fail all the time
otherwise.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1557 >
2022-01-25 12:08:20 +00:00
Sebastian Dröge
2d4491e195
splitmuxsink: Don't assert on the input side if no GOP is available when shutting down
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1119 >
2021-10-12 19:34:16 +00:00
Sebastian Dröge
4316be6571
splitmuxsink: Keep track of the pending input GOPs in a queue
...
This cleans up input GOP handling and makes it possible to handle more
than 2 pending GOPs, which could happen before if keyframes are arriving
with too short of a distance between them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Sebastian Dröge
ae8ceb801c
splitmuxsink: Handle frame reordering due to B frames better
...
Instead of assuming that the PTS of a keyframe is the lowest PTS of a
GOP, wait until the DTS has passed this PTS and take the minimum PTS up
to that point. That way the minimum PTS of a GOP can be determined, at
least for closed GOP streams. Open GOP streams still can't be handled
properly.
By knowing the minimum PTS of each GOP, keyframes can be requested at
the correct time relative to the GOP (and thus fragment) start and
fragment overflow calculations can calculate the correct durations of
the GOPs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Sebastian Dröge
f83ed50c20
splitmuxsink: Reset timecodes when resetting the sink
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Sebastian Dröge
ed6823ad67
splitmuxsink: Use GST_CLOCK_STIME_NONE instead of 0 to initialize max out running time
...
Otherwise streams with only DTS would misbehave while it is negative.
For outputting everything immediately at EOS, use G_MAXINT64 instead
which is bigger-or-equal to any other running time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Sebastian Dröge
eed843eea0
splitmuxsink: Only update max in/out running time if it's actually bigger
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Sebastian Dröge
68683d15c4
splitmuxsink: Only count keyframes for the reference context, consistently
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Thibault Saunier
5ff769d731
Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir
2021-09-24 16:13:50 -03:00