Nicolas Dufresne
0f15580853
matroska: Fix AV1 alignment to TU
...
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837 >
2022-03-04 21:58:15 +00:00
Tristan Matthews
9d0d001d19
matroskamux: allow width+height caps changes for VP8/9
...
For VP8 and VP9, width+height changes are signalled inband.
Refs https://github.com/Kurento/bugtracker/issues/535 and
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047/diffs?commit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1657 >
2022-03-04 14:17:20 -05:00
Tristan Matthews
c6ba57eb8e
matroskamux: allow width + height changes for avc3|hev1
...
For avc3 and hev1, the intent was to allow more flexibility for caps changes
(see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047/diffs?commit_id=9bd8d608d5bae27ec5ff09e733f76ca32b17420c )
however width and resolution were previously omitted.
avc3 and hev1 specifically support changing stream-parameters on the fly, whereas avc1/hvc1 disallow in-band SPS.
This commit allows for changes to width and height for these which is in line with matroskamux's behaviour prior to 1.14.0.
Practically speaking, one use case where this is commonly seen is when capturing a WebRTC stream, as the browser will adapt the resolution live.
Suggested-by: Mathieu Duponchelle "<mathieu@centricular.com>"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1657 >
2022-03-04 14:17:20 -05:00
Sebastian Dröge
9f798776e5
matroska-mux: Handle pixel-aspect-ratio caps field correctly when checking caps equality
...
Not having this field is equivalent with it being 1/1 so consider
it like that. The generic caps functions are not aware of these
semantics and would consider the caps different, causing a negotiation
failure when caps are changing from caps with to caps without or the
other way around.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1826 >
2022-03-02 10:27:47 +00:00
Sebastian Dröge
1b851ae23f
matroska-mux: Handle multiview-mode/flags caps fields correctly when checking caps equality
...
Not having these fields is equivalent with them being mono/0 so consider
them like that. The generic caps functions are not aware of these
semantics and would consider the caps different, causing a negotiation
failure when caps are changing from caps with to caps without or the
other way around.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1826 >
2022-03-02 10:27:47 +00:00
Jan Schmidt
cebf769725
matroska-mux: If a stream has a TITLE tag, use it for the name.
...
If a title tag is pushed to a pad, store it as the Track name.
This means that players will use it as the human readable
description of the track, instead of something generic like 'Video'
or 'Subtitle'
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1798 >
2022-03-01 13:17:40 +00:00
Jan Schmidt
7efdc9c7f5
matroskademux: Don't parse Tracks element twice
...
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1798 >
2022-03-01 13:17:40 +00:00
Nirbheek Chauhan
4e22ef5bd2
matroska-demux: Emit a warning when no codec data found
...
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1739 >
2022-02-21 08:49:28 +00:00
Sebastian Wick
e61e069189
matroska: default prores fourcc apcn
...
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1734 >
2022-02-18 08:38:31 +00:00
Rafał Dzięgiel
41385ab6f7
matroska: Ref index table when updating track info
...
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1203 >
2021-11-12 12:28:40 +00:00
Rafał Dzięgiel
478f94edc7
matroska: Use g_array_unref everywhere
...
Instead of using g_array_free which is not thread safe use g_array_unref instead
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1203 >
2021-11-12 12:28:40 +00:00
Rafał Dzięgiel
b57a7c3de7
matroska: Set image/attachment structure mimetype
...
Set structure mimetype to fix data detection by mimetype in other plugins.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1205 >
2021-10-21 21:42:00 +00:00
Rafał Dzięgiel
0ba65a00c9
matroska: Treat non-image structure as attachment
...
Otherwise each structure is named as GstTagImageInfo even if
it does not contain any images which is misleading.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1205 >
2021-10-21 21:42:00 +00: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
Thibault Saunier
5ff769d731
Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir
2021-09-24 16:13:50 -03:00