Jan Schmidt
c47c6b4c2b
isomp4: Use a function pointer for buffer splitting.
...
Swap the `need_process` boolean check on qtdemux streams
for a direct function pointer to the splitting function,
so we can stop adding extra cases to the single growing
`gst_qtdemux_process_buffer()` function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1182 >
2021-10-19 08:56:58 +00:00
Thibault Saunier
20f6af7e3c
qtmux: Allow more fields changes renegotiating h264
...
And consider interlace-mode=progress as equivalent to the field not
being specified.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1062 >
2021-10-18 10:10:24 -03:00
Thibault Saunier
32a88fe16f
matroskamux: Ignore some fields when renegotiating
...
Those values are never used in the muxer so we should not fail the
negotiation if those are changing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1062 >
2021-10-18 10:10:24 -03:00
Olivier Crête
c272d0bfcd
rtopuspay: Set marker bit inside RTP packet too
...
At the end of a talk spurt, not only set the marker flag on the
GstBuffer, but also set the bit inside the RTP header as recommended
by the RFC.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1124 >
2021-10-12 17:18:19 -04: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
Olivier Crête
5ec82c1c4e
rtphdrext: Pass just the attributes to the subclass
...
Since the base class now does the parsing, there is no need
to reproduce that code in all the subclasses, just pass the attributes
which are the only relevant bit anyway.
Also, only store the direction if the subclass accepted the caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906 >
2021-09-28 20:04:55 +00:00
Olivier Crête
2db9f42b36
rtphdrext-rfc6464: Use helper function to set caps field
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906 >
2021-09-28 20:04:55 +00:00
Olivier Crête
ba328fb98d
rtphdrext: Set caps without attributes as the default
...
Most subclasses just use the simple function, so just let the base class
do it. It makes less code in subclasses.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906 >
2021-09-28 20:04:55 +00:00
Olivier Crête
498740fe57
rtphdrext: Put simple caps generation as the base class default
...
Instead of having a helper function that gets called by almost every
subclass, just let the base class set the caps fields automatically.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906 >
2021-09-28 20:04:55 +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