gstreamer/gst
Johan Bjäreholt ce802f033c matroska-mux: Fix incorrect rounding of timestamps
Previously we saved the buffer_timestamp straight into
mux->cluster_time. Since the cluster time saved into the file does not
have as high precision as GstClockTime depending on the timecodescale
the rounding of relative_timestamp was invalid as mux->cluster_time
which it was calculated relative to was not equal to the cluster time
written to the matroska file.

Example of "mkvinfo -v" of how it looks before and after this change in
an scenario where previously timestamps got out of order because of this
issue.

Notice the timestamp of the SimpleBlock right before and right after the
Cluster now being in order. The consequence of this however is that the
cluster timestamp is not necessarily the same as the timestamp of the
first buffer in the cluster however (in case it's rounded up).

Before

| + SimpleBlock (track number 1, 1 frame(s), timecode 126.922s = 00:02:06.922)
|  + Frame with size 432
| + SimpleBlock (track number 2, 1 frame(s), timecode 126.933s = 00:02:06.933)
|  + Frame with size 329
| + SimpleBlock (track number 2, 1 frame(s), timecode 126.955s = 00:02:06.955)
|  + Frame with size 333
|+ Cluster
| + Cluster timecode: 126.954s
| + Cluster previous size: 97344
| + SimpleBlock (key, track number 1, 1 frame(s), timecode 126.954s = 00:02:06.954)
|  + Frame with size 61239
| + SimpleBlock (track number 2, 1 frame(s), timecode 126.975s = 00:02:06.975)
|  + Frame with size 338

After

| + SimpleBlock (track number 1, 1 frame(s), timecode 135.456s = 00:02:15.456)
|  + Frame with size 2260
| + SimpleBlock (track number 2, 1 frame(s), timecode 135.468s = 00:02:15.468)
|  + Frame with size 332
| + SimpleBlock (track number 2, 1 frame(s), timecode 135.490s = 00:02:15.490)
|  + Frame with size 335
|+ Cluster
| + Cluster timecode: 135.489s
| + Cluster previous size: 158758
| + SimpleBlock (key, track number 1, 1 frame(s), timecode 135.490s = 00:02:15.490)
|  + Frame with size 88070
| + SimpleBlock (track number 2, 1 frame(s), timecode 135.511s = 00:02:15.511)
|  + Frame with size 336
2020-02-21 12:49:28 +00:00
..
alpha alpha: Cleanup using G_DECLARE_FINAL_TYPE 2019-12-28 04:05:13 +00:00
apetag Remove autotools build system 2019-10-14 11:04:18 +01:00
audiofx Remove autotools build system 2019-10-14 11:04:18 +01:00
audioparsers aacparse: fix wrong offset of adts channel 2019-11-18 01:06:41 +00:00
auparse Remove autotools build system 2019-10-14 11:04:18 +01:00
autodetect Remove autotools build system 2019-10-14 11:04:18 +01:00
avi avimux: Add support for >2 raw audio channels 2020-01-19 12:09:38 +00:00
cutter Remove autotools build system 2019-10-14 11:04:18 +01:00
debugutils good: Avoid usage of deprecated API 2019-10-16 07:46:58 +00:00
deinterlace Remove autotools build system 2019-10-14 11:04:18 +01:00
dtmf Remove autotools build system 2019-10-14 11:04:18 +01:00
effectv Remove autotools build system 2019-10-14 11:04:18 +01:00
equalizer Remove autotools build system 2019-10-14 11:04:18 +01:00
flv flvmux: Support rollover in timestamp 2020-02-18 18:39:31 +09:00
flx Remove autotools build system 2019-10-14 11:04:18 +01:00
goom Remove autotools build system 2019-10-14 11:04:18 +01:00
goom2k1 Remove autotools build system 2019-10-14 11:04:18 +01:00
icydemux Remove autotools build system 2019-10-14 11:04:18 +01:00
id3demux Remove autotools build system 2019-10-14 11:04:18 +01:00
imagefreeze imagefreeze: Add support for replacing the output buffer 2020-01-11 08:04:43 +00:00
interleave Remove autotools build system 2019-10-14 11:04:18 +01:00
isomp4 qtdemux: Parse VP Codec Configuration Box 2020-02-19 23:18:51 +09:00
law Remove autotools build system 2019-10-14 11:04:18 +01:00
level Remove autotools build system 2019-10-14 11:04:18 +01:00
matroska matroska-mux: Fix incorrect rounding of timestamps 2020-02-21 12:49:28 +00:00
monoscope Remove autotools build system 2019-10-14 11:04:18 +01:00
multifile splitmuxsink: Include actual sink element in the fragment-opened/closed messages 2020-01-29 13:30:00 +00:00
multipart good: use of g_value_dup_string 2019-12-20 09:30:26 +00:00
replaygain Remove autotools build system 2019-10-14 11:04:18 +01:00
rtp rtph265pay: TID for NALU type 48 was always set to 7 2020-01-13 15:41:30 +01:00
rtpmanager rtpbin: fix typo setting max-dropout/misorder-time 2020-02-20 13:46:06 +11:00
rtsp rtspsrc: remove useless function calls 2020-02-20 08:27:35 +00:00
shapewipe Remove autotools build system 2019-10-14 11:04:18 +01:00
smpte Remove autotools build system 2019-10-14 11:04:18 +01:00
spectrum Remove autotools build system 2019-10-14 11:04:18 +01:00
udp Don't pass default GLib marshallers for signals 2019-11-17 15:32:30 +00:00
videobox Remove autotools build system 2019-10-14 11:04:18 +01:00
videocrop videocrop: allow properties to be animated by GstController 2020-01-03 15:16:02 +01:00
videofilter Remove autotools build system 2019-10-14 11:04:18 +01:00
videomixer Remove autotools build system 2019-10-14 11:04:18 +01:00
wavenc wavenc: Fix writing of the channel mask with >2 channels 2020-01-13 19:50:06 +00:00
wavparse Remove autotools build system 2019-10-14 11:04:18 +01:00
y4m Remove autotools build system 2019-10-14 11:04:18 +01:00
meson.build meson: Add feature options for all plugins 2018-07-27 18:42:54 +05:30