TAI Clock Information (`taic`) will be defined in ISO/IEC 23001-17 Amendment 1.
The TAI Clock Information box appears in the sample entry for the applicable track.
The clock information is metadata about the type and quality of a TAI clock. That
can be set via a stream tag. For example:
gst-launch-1.0 -v videotestsrc num-buffers=50 ! video/x-raw,width=1280,height=720,format=I420 ! taginject tags=precision-clock-type=can-sync-to-tai,precision-clock-time-uncertainty-nanoseconds=30000 ! isomp4mux ! filesink location=taic.mp4
This version writes compliant taic boxes if either or both of the tags are set. There
are two values in taic (for clock resolution and clock drift rate) that will be set to
reasonable default values.
taic is intended to be used (in video) with a TAITimestampPacket instance that is
per-sample auxilary information (i.e. via saio and saiz entries). That will be
provided as a follow-up change, based on a meta.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2246>
Commit abf97ba2 introduced an API break by adding a new Consumer peer
role and adding a new field to the existing List message.
This caused older clients to crash as soon as a 'new' webrtcsrc
registered due to their inability to parse the new role.
This fix consists of two parts:
- makes webrtcsrc only register as a Consumer when it's actually waiting
for a producer session request, instead of doing that in all cases
- Reverts the List message to the old version, and instead adds a
ListConsumers message for the purpose of retrieving the list of
'awaiting' consumers
This is still technically an API break, and older clients will *still*
crash if a webrtcsrc registers as a Consumer. However, if ran the 'old'
way - either with a peer ID set or with connect-to-first-producer=true -
it won't do that anymore.
It's a band-aid fix to not break too many things while GStreamer 1.26
still follows the main branch here. After gst-plugins-rs 0.14 branches
away we'll be able to do a proper API break, aimed at making similar
changes possible in the future without causing old clients to crash.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2259>
- At startup the system might not have enough entropy to generate a
Uuid and attempting to create one block till enough entropy has been
accumulated. This cause delay to start discovery after system reboot.
- Uuid is not required, we only need uniqueness between local
discoveries
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2260>
The contents of the current test for cea608tott can be a bit shocking
without context about the source.
This patch adds more cues to the test so that a reader just trying to
understand the elements has more context that this is a news program.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2249>
This means we can still output sentences as a single unit, even when
using span-based mode.
Update `awspolly` to concatenate buffer lists together before sending
them out for synthesis, and remove the now-useless textwrap element from
transcriberbin's synthesis channels.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2235>
Actually negative DTS (i.e. < 0) was handled correctly before when
queueing buffers, but this didn't handle the case correctly where the
very same stream has DTS/PTS shifted to be positive (i.e. start DTS is
before earliest PTS).
To solve this, pass through all DTS as signed values and at the very end
for every fragment calculate the offset between the two in addition to
the PTS/DTS offset of each buffer, and adjust the composition time
offsets accordingly.
This way the final PTS of each buffer after demuxing is equal to the
actual running time of the very same buffer before muxing. Previously
all PTS would've been shifted forwards by a couple of frames, which then
broke A/V synchronization.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2232>