- 19 Jan, 2023 1 commit
-
-
Sebastian Dröge authored
Anything else is not allowed in Matroska/WebM. Part-of: <!3740>
-
- 14 Nov, 2022 1 commit
- 27 Oct, 2022 2 commits
- 15 Jun, 2022 1 commit
-
-
blocksize + WAVPACK4_HEADER_SIZE might overflow gsize, which then results in allocating a very small buffer. Into that buffer blocksize data is memcpy'd later which then causes out of bound writes and can potentially lead to anything from crashes to remote code execution. Thanks to Adam Doupe for analyzing and reporting the issue. CVE: CVE-2022-1920 https://gstreamer.freedesktop.org/security/sa-2022-0004.html Fixes #1226 Part-of: <!2612>
-
- 04 Mar, 2022 1 commit
-
-
Matroska stores AV1 in temporal unit, so that all OBU sharing the same timestamp are put together. This was previously just assumed, which isn't safe now that we have more alignments. Part-of: <!1837>
-
- 01 Mar, 2022 1 commit
-
-
If the tracks element was parsed from the SeekEntry, don't parse it a second time and recreate tracks, as this loses any tags that were read using the seek table. If a genuinely new Tracks element is found, do read that as it is needed for MSE support. Part-of: <!1798>
-
- 21 Feb, 2022 1 commit
-
-
It is bad if an mkv file does not have codec data for the ProRes variant, so we should emit a warning. ffmpeg does the same thing. Part-of: <!1739>
-
- 18 Feb, 2022 1 commit
-
-
If there is no codec private data for prores it should default to Apple ProRes 422 Standard Definition (apcn). Can be tested with strobe_scientist.mkv from https://developers.google.com/media/vp9/hdr-encoding Part-of: <!1734>
-
- 12 Nov, 2021 2 commits
-
-
Track index table array was being lost during track info update. Ref it over to updated info, so it can be used for finding nearest seek points. Part-of: <gstreamer/gstreamer!1203>
-
Instead of using g_array_free which is not thread safe use g_array_unref instead Part-of: <gstreamer/gstreamer!1203>
-
- 24 Sep, 2021 1 commit
-
-
Thibault Saunier authored
-
- 13 Sep, 2021 1 commit
-
-
Sebastian Dröge authored
Previously only demuxing when stored via the RIFF/AVI mapping was supported. See https://github.com/FFmpeg/FFV1/blob/master/ffv1.md#matroska-file-format Fixes #923 Part-of: <!1080>
-
- 17 Aug, 2021 2 commits
-
-
The stream_start_time can be less than the first detected. In case of B-Frame based media, the first frame PTS might be greater than the next one. Need to keep the segment.start if a seek has been performed. Part-of: <gst-plugins-good!1030>
-
Nicolas Dufresne authored
The segment.position is unconditionnaly set few lines below. Part-of: <gst-plugins-good!1030>
-
- 02 Jun, 2021 1 commit
-
-
Tim-Philipp Müller authored
- ebml-read: add some sanity checks when going from 64-bit to 32-bit length - matroska-ids: codec_data_size has been checked via gst_ebml_read_binary(), is existing allocation. - matroska-demux: alloc size is from existing allocations g_memdup() is deprecated since GLib 2.68 and we want to avoid deprecation warnings with recent versions of GLib. Also use gst_buffer_new_memdup() instead of _wrapped(g_memdup(),..). Part-of: <gst-plugins-good!993>
-
- 20 May, 2021 1 commit
-
-
Stéphane Cerveau authored
To avoid decoder starvation causing glitches on screen, the demuxer shall clip only when the buffer is a key frame and the lace time is greater than the stop time. Fixes gst-editing-services#128 Part-of: <gst-plugins-good!973>
-
- 11 May, 2021 3 commits
-
-
Nicolas Dufresne authored
This will be used to select the appropriate decoders. We also only attach the GstVideoCodecAlphaMeta if the AlphaMode element is set, this is to stay on the safe side and mimic what browsers (verified in Firefox and Chromium code) do. Part-of: <gst-plugins-good!968>
-
Nicolas Dufresne authored
This generalize the feature over using mini object quark data. If that feature was Matroska specifc, using the new CustomMeta would have been enough and arguably cleaner then QData, though it seems that similar technique is use with AV1 Image Format (AVIF). Part-of: <gst-plugins-good!968>
-
And put it on buffers as qdata (which is easier in this case than a private custom meta because it can be picked up easily in other modules). Part-of: <gst-plugins-good!968>
-
- 31 Mar, 2021 1 commit
-
-
Otherwise, in the case of e.g. a deferred seek event, the segment stop would be replaced with GST_CLOCK_TIME_NONE. Part-of: <gst-plugins-good!929>
-
- 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>
-
- 15 Mar, 2021 2 commits
-
-
The old code had a couple of issues that all lead to potential memory safety bugs. - Use a constant for the Wavpack4Header size instead of using sizeof. It's written out into the data and not from the struct and who knows what special alignment/padding requirements some C compilers have. - gst_buffer_set_size() does not realloc the buffer when setting a bigger size than allocated, it only allows growing up to the maximum allocated size. Instead use a GstAdapter to collect all the blocks and take out everything at once in the end. - Check that enough data is actually available in the input and otherwise handle it an error in all cases instead of silently ignoring it. Among other things this fixes out of bounds writes because the code assumed gst_buffer_set_size() can grow the buffer and simply wrote after the end of the buffer. Thanks to Natalie Silvanovich for reporting. Fixes gst-plugins-good#859 Part-of: <gst-plugins-good!902>
-
Various error return paths don't set it to NULL and callers are only checking if the pointer is NULL. As it's allocated on the stack this usually contains random stack memory, and more often than not the memory of a previously parsed track. This then causes all kinds of memory corruptions further down the line. Thanks to Natalie Silvanovich for reporting. Fixes gst-plugins-good#858 Part-of: <gst-plugins-good!902>
-
- 04 Mar, 2021 1 commit
-
-
Otherwise sending seek events would fail to actually seek. Part-of: <gst-plugins-good!891>
-
- 07 Sep, 2020 1 commit
-
-
Sebastian Dröge authored
Part-of: <gst-plugins-good!715>
-
- 02 Apr, 2020 2 commits
-
-
gst_segment_do_seek() can fail.
-
Short-circuit instant rate change events by generating a downstream instant-rate-change event and doing no further seek processing.
-
- 01 Apr, 2020 1 commit
-
-
Seungha Yang authored
See the change of -base gst-plugins-base!594
-
- 05 Oct, 2019 1 commit
-
-
- 07 Aug, 2019 2 commits
-
-
Various audio formats require an audio lead-in to decode it properly. Most parsers would take care of it, but when a container like matroska is involved, the demuxer handles the seeking and without its own lead-in handling would never even pass the lead-in data to the parser. This commit provides an initial implementation of that for audio/mpeg, audio/x-ac3 and audio/x-eac3 by calculating the worst case lead-in time needed from known samplerate, potential lead-in frames need and the maximum blocksize possible for the format (as we don't parse that out exactly in matroskademux) and seeking that much earlier in case of accurate seeks. This is especially important for NLE use-cases with GES. If accurate seeking to a position that happens to have a video keyframe, it'll go back to the previous keyframe than needed, but with typical video files that's the best we can do anyway without falling back to scanning the clusters, as typically only keyframes are indexed in Cueing Data. If the media doesn't have a CUE, then we bisect for the cluster to seek to with the same modified time as well in case of accurate seeking, ensuring sufficient lead-in. This code path is typically hit only with (suboptimal) audio-only matroska files, e.g. when created with ffmpeg, which doesn't add a CUE for audio-only mkv muxing.
-
-
- 27 Jul, 2019 1 commit
-
-
Doug Nazar authored
-
- 15 Jul, 2019 1 commit
-
-
Seungha Yang authored
... and remove duplicated code.
-
- 09 Jul, 2019 1 commit
-
-
Seungha Yang authored
TransferCharacteristics(18) should be ARIB STD-B67 (HLG) See https://www.webmproject.org/docs/container/#TransferCharacteristics Also map more color primaries indexes which have been handled by matroska-mux.
-
- 24 May, 2019 1 commit
-
-
Seungha Yang authored
The direct use of newly added transfer functions
-
- 13 May, 2019 1 commit
-
-
Thibault Saunier authored
-
- 01 May, 2019 1 commit
-
-
Seungha Yang authored
Set SMPTE ST 2086 mastering-display-metadata and content-light-level to caps, if any
-
- 01 Mar, 2019 1 commit
-
-
Tim-Philipp Müller authored
There is no "byte-stream" format for AV1 in Matroska, this was probably cargo-culted from H.264. codec_data / CodecPrivate is now mandatory for AV1 in Matroska[*], but there are sample files out there which don't have it (e.g. some Elecard ones). [*] https://github.com/Matroska-Org/matroska-specification/blob/master/codec/av1.md#codecprivate-1
-
- 26 Dec, 2018 1 commit
-
-
Seungha Yang authored
Don't forget to free returned memory from _search_pos()
-